示例#1
0
 private function broadcastMessage($username, $message)
 {
     $recipients = array_filter(Server::getInstance()->getPluginManager()->getPermissionSubscriptions(Server::BROADCAST_CHANNEL_USERS), function ($recipient) {
         return !$recipient instanceof EventHandler;
     });
     $lines = explode("\n", $message);
     foreach ($lines as $line) {
         Server::getInstance()->broadcastMessage(PocketTelegram::translateString("chat.type.text", [$username, $line]), $recipients);
     }
 }
示例#2
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;
     }
 }