public function onRun($currentTick) { PocketTelegram::request("getUpdates", is_null(self::$lastUpdate) ? [] : ['offset' => self::$lastUpdate->getUpdateId() + 1], function ($json) { $response = json_decode($json, true); if (!isset($response['ok']) or $response['ok'] !== true) { PocketTelegram::getUpdates(GetUpdatesTask::$errorCounter *= 2); return; } foreach ($response['result'] as $result) { GetUpdatesTask::$lastUpdate = $update = Update::create($result); if (!is_null($update->getMessage())) { Server::getInstance()->getPluginManager()->callEvent(new TelegramMessageEvent($update->getMessage())); } } GetUpdatesTask::$errorCounter = 1; PocketTelegram::getUpdates(); }); }
public function onEnable() { $this->saveDefaultConfig(); self::$token = $this->getConfig()->get("token", ""); self::$defaultChannel = $this->getConfig()->get("defaultChannel", ""); self::$updateInterval = $this->getConfig()->get("updateInterval", 20); if (self::$token === "") { $this->getLogger()->alert("You need to set your Telegram bot token to enable this plugin"); $this->getLogger()->alert("-> " . $this->getDataFolder() . "config.yml"); $this->getServer()->getPluginManager()->disablePlugin($this); return; } self::$broadcastToTelegram = $this->getConfig()->get("broadcastToTelegram", true); self::$broadcastTelegramMessages = $this->getConfig()->get("broadcastTelegramMessages", true); self::$enableTelegramCommands = $this->getConfig()->get("enableTelegramCommands", true); self::$disableWebPagePreview = $this->getConfig()->get("disableWebPagePreview", true); self::$enableMarkdownParsing = $this->getConfig()->get("enableMarkdownParsing", false); self::$debugMode = $this->getConfig()->get("debugMode", false); $handler = new EventHandler(); $this->getServer()->getPluginManager()->registerEvents($handler, $this); $this->getServer()->getPluginManager()->subscribeToPermission(Server::BROADCAST_CHANNEL_USERS, $handler); PocketTelegram::getMe(); PocketTelegram::getUpdates(); if ($this->getConfig()->get("broadcastServerStart", false) === true) { PocketTelegram::sendMessage(PocketTelegram::translateString("pocketmine.server.start", [TextFormat::AQUA . $this->getServer()->getVersion()]) . PHP_EOL . PocketTelegram::translateString("pocketmine.server.defaultGameMode", [Server::getGamemodeString($this->getServer()->getGamemode())]) . PHP_EOL . PHP_EOL . "#" . $this->getServer()->getMotd(), self::$defaultChannel); } }