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);
     }
 }