From 3c667990dc4e348c7e7ad7fc61bbad8f0f54e84c Mon Sep 17 00:00:00 2001 From: DustinRepo Date: Mon, 21 Mar 2022 06:58:49 -0400 Subject: [PATCH] Added NumberCountProcess --- config.cfg | 3 + src/me/dustin/chatbot/config/Config.java | 6 ++ .../chatbot/network/ClientConnection.java | 2 + .../process/impl/NumberCountProcess.java | 56 +++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 src/me/dustin/chatbot/process/impl/NumberCountProcess.java diff --git a/config.cfg b/config.cfg index 1b6ee76..b7b4e56 100644 --- a/config.cfg +++ b/config.cfg @@ -48,6 +48,9 @@ announcementDelay=300 #Quotes - Stores all player messages to be quoted later quotes=true +#NumberCount - Checks if all numbers in a message add to 420 or 69 +numberCount=true + #2b2t message check - Counts the amount of messages before someone mentions 2b2t in chat 2b2tCheck=true diff --git a/src/me/dustin/chatbot/config/Config.java b/src/me/dustin/chatbot/config/Config.java index 4e5ae6b..d0d4f1c 100644 --- a/src/me/dustin/chatbot/config/Config.java +++ b/src/me/dustin/chatbot/config/Config.java @@ -37,6 +37,7 @@ public class Config { private boolean twoB2tCheck; private boolean twoB2tCount; private boolean quotes; + private boolean numberCount; private int protocolVersion; private int reconnectDelay; @@ -82,6 +83,7 @@ public void loadConfig() throws IOException { twoB2tCheck = parser.readBoolean("2b2tCheck"); twoB2tCount = parser.readBoolean("2b2tCount"); quotes = parser.readBoolean("quotes"); + numberCount = parser.readBoolean("numberCount"); reconnectDelay = parser.readInt("reconnectDelay"); messageDelay = parser.readInt("messageDelay"); @@ -194,6 +196,10 @@ public boolean isQuotes() { return quotes; } + public boolean isNumberCount() { + return numberCount; + } + public boolean isPasswordCreateUseTwice() { return passwordCreateUseTwice; } diff --git a/src/me/dustin/chatbot/network/ClientConnection.java b/src/me/dustin/chatbot/network/ClientConnection.java index e648f6a..586ac95 100644 --- a/src/me/dustin/chatbot/network/ClientConnection.java +++ b/src/me/dustin/chatbot/network/ClientConnection.java @@ -124,6 +124,8 @@ public void loadProcesses() { getProcessManager().addProcess(new Chat2b2tCountProcess(this)); if (ChatBot.getConfig().isQuotes()) getProcessManager().addProcess(new QuoteProcess(this)); + if (ChatBot.getConfig().isNumberCount()) + getProcessManager().addProcess(new NumberCountProcess(this)); } public void connect() { diff --git a/src/me/dustin/chatbot/process/impl/NumberCountProcess.java b/src/me/dustin/chatbot/process/impl/NumberCountProcess.java new file mode 100644 index 0000000..d38f1b1 --- /dev/null +++ b/src/me/dustin/chatbot/process/impl/NumberCountProcess.java @@ -0,0 +1,56 @@ +package me.dustin.chatbot.process.impl; + +import me.dustin.chatbot.event.EventReceiveChatMessage; +import me.dustin.chatbot.helper.GeneralHelper; +import me.dustin.chatbot.helper.MCAPIHelper; +import me.dustin.chatbot.network.ClientConnection; +import me.dustin.chatbot.process.ChatBotProcess; +import me.dustin.events.core.EventListener; +import me.dustin.events.core.annotate.EventPointer; + +import java.util.StringJoiner; + +public class NumberCountProcess extends ChatBotProcess { + + public NumberCountProcess(ClientConnection clientConnection) { + super(clientConnection); + } + + @Override + public void init() { + getClientConnection().getEventManager().register(this); + } + + @EventPointer + private final EventListener eventReceiveChatMessageEventListener = new EventListener<>(event -> { + if (event.getChatMessagePacket().getSender() == null || GeneralHelper.matchUUIDs(event.getChatMessagePacket().getSender().toString(), getClientConnection().getSession().getUuid())) + return; + String senderName = MCAPIHelper.getNameFromUUID(event.getChatMessagePacket().getSender()); + String[] split = event.getChatMessagePacket().getMessage().getBody().split(" "); + int num = 0; + StringJoiner sj = new StringJoiner(" + "); + for (String s : split) { + try { + int n = Integer.parseInt(s); + sj.add(s); + num += n; + } catch (NumberFormatException e) { + } + } + if (num == 420) { + sendChat("All of the numers in " + senderName + "'s message add to 420! " + sj.toString() + " = 420"); + } else if (num == 69) { + sendChat("All of the numers in " + senderName + "'s message add to 69! " + sj.toString() + " = 69"); + } + }); + + @Override + public void tick() { + + } + + @Override + public void stop() { + getClientConnection().getEventManager().unregister(this); + } +}