From cd2d27e8dbb8f644eecad87afde399e3ad28a788 Mon Sep 17 00:00:00 2001 From: MasterCake Date: Tue, 4 May 2021 02:49:10 +0200 Subject: [PATCH] add telegram->mc response for group chats The telegram bot needs to be put into privacy disabled mode (see #3) Closes #3 --- .../java/de/Linus122/Telegram/Telegram.java | 46 ++++++++++++------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/src/main/java/de/Linus122/Telegram/Telegram.java b/src/main/java/de/Linus122/Telegram/Telegram.java index ee57023..a7352c8 100755 --- a/src/main/java/de/Linus122/Telegram/Telegram.java +++ b/src/main/java/de/Linus122/Telegram/Telegram.java @@ -81,7 +81,9 @@ public class Telegram { if (update.getMessage() != null) { Chat chat = update.getMessage().getChat(); + if (chat.isPrivate()) { + // private chat if (!TelegramChat.getBackend().ids.contains(chat.getId())) TelegramChat.getBackend().ids.add(chat.getId()); @@ -99,30 +101,21 @@ public class Telegram { this.sendMsg(chat2); } this.sendMsg(chat.getId(), Utils.formatMSG("can-see-but-not-chat")[0]); - } else if (TelegramChat.getBackend().getLinkCodes().containsKey(text)) { - // LINK - TelegramChat.link(TelegramChat.getBackend().getUUIDFromLinkCode(text), chat.getId()); - TelegramChat.getBackend().removeLinkCode(text); - } else if (TelegramChat.getBackend().getLinkedChats().containsKey(chat.getId())) { - ChatMessageToMc chatMsg = new ChatMessageToMc( - TelegramChat.getBackend().getUUIDFromChatID(chat.getId()), text, chat.getId()); - - for (TelegramActionListener actionListener : listeners) { - actionListener.onSendToMinecraft(chatMsg); - } - - if(!chatMsg.isCancelled()){ - TelegramChat.sendToMC(chatMsg); - } } else { - this.sendMsg(chat.getId(), Utils.formatMSG("need-to-link")[0]); + handleUserMessage(text, chat); } } } else if (!chat.isPrivate()) { + // group chat int id = chat.getId(); if (!TelegramChat.getBackend().ids.contains(id)) TelegramChat.getBackend().ids.add(id); + + if (update.getMessage().getText() != null) { + String text = update.getMessage().getText(); + handleUserMessage(text, chat); + } } } @@ -131,6 +124,27 @@ public class Telegram { } return true; } + + public void handleUserMessage(String text, Chat chat) { + if (TelegramChat.getBackend().getLinkCodes().containsKey(text)) { + // LINK + TelegramChat.link(TelegramChat.getBackend().getUUIDFromLinkCode(text), chat.getId()); + TelegramChat.getBackend().removeLinkCode(text); + } else if (TelegramChat.getBackend().getLinkedChats().containsKey(chat.getId())) { + ChatMessageToMc chatMsg = new ChatMessageToMc( + TelegramChat.getBackend().getUUIDFromChatID(chat.getId()), text, chat.getId()); + + for (TelegramActionListener actionListener : listeners) { + actionListener.onSendToMinecraft(chatMsg); + } + + if(!chatMsg.isCancelled()){ + TelegramChat.sendToMC(chatMsg); + } + } else { + this.sendMsg(chat.getId(), Utils.formatMSG("need-to-link")[0]); + } + } public void sendMsg(int id, String msg) { ChatMessageToTelegram chat = new ChatMessageToTelegram();