コード例 #1
0
 public function onCompletion(Server $server)
 {
     if ($this->hasResult()) {
         PocketTelegram::debug("Result: " . $this->getResult());
         if (!is_null($this->callback)) {
             call_user_func($this->callback, $this->getResult());
         }
     }
 }
コード例 #2
0
 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();
     });
 }
コード例 #3
0
 public function onPlayerQuit(PlayerQuitEvent $event)
 {
     $event->getPlayer()->setDisplayName(substr($event->getPlayer()->getDisplayName(), strlen(PocketTelegram::getInstance()->getConfig()->get("minecraftUserPrefix", "~"))));
     $event->setQuitMessage($event->getPlayer()->getLeaveMessage());
 }
コード例 #4
0
 /**
  * @param TextMessage|TranslationContainer|string $message
  * @param Chat|string $chatId
  * @param Message|int $replyToMessage
  */
 public static function sendMessage($message, $chatId, $replyToMessage = null)
 {
     if (is_null($message) or $message === "" or is_null($chatId) or $chatId === "") {
         return;
     }
     if ($message instanceof TextMessage) {
         $message = $message->getText();
     } else {
         if ($message instanceof TranslationContainer) {
             $message = PocketTelegram::translateString($message);
         }
     }
     $message = TextFormat::clean($message);
     if ($chatId instanceof Chat) {
         $chatId = $chatId->getId();
     }
     if ($replyToMessage instanceof Message) {
         $replyToMessage = $replyToMessage->getMessageId();
     }
     while (true) {
         $nextMessage = null;
         if (($len = mb_strlen($message, 'UTF-8')) >= 4096) {
             $nextMessage = mb_substr($message, 4096, $len, 'UTF-8');
             $message = mb_substr($message, 0, 4096, 'UTF-8');
         }
         $params = ['chat_id' => $chatId, 'text' => $message];
         if (self::$enableMarkdownParsing) {
             $params['parse_mode'] = "Markdown";
         }
         if (self::$disableWebPagePreview) {
             $params['disable_web_page_preview'] = "true";
         }
         if (!is_null($replyToMessage)) {
             $params['reply_to_message_id'] = $replyToMessage;
         }
         PocketTelegram::request("sendMessage", $params);
         if (is_null($nextMessage) or $nextMessage === "") {
             break;
         }
         $message = $nextMessage;
     }
 }
コード例 #5
0
 public function __construct(Message $message)
 {
     parent::__construct(PocketTelegram::getInstance());
     $this->message = $message;
 }