diff --git a/src/main/java/ru/bvn13/jircbot/bot/ImprovedListenerAdapter.java b/src/main/java/ru/bvn13/jircbot/bot/ImprovedListenerAdapter.java index 7571d64..8dafd15 100644 --- a/src/main/java/ru/bvn13/jircbot/bot/ImprovedListenerAdapter.java +++ b/src/main/java/ru/bvn13/jircbot/bot/ImprovedListenerAdapter.java @@ -4,8 +4,10 @@ import org.pircbotx.hooks.ListenerAdapter; import org.pircbotx.hooks.events.MessageEvent; import org.pircbotx.hooks.types.GenericChannelEvent; import org.pircbotx.hooks.types.GenericEvent; +import org.pircbotx.hooks.types.GenericMessageEvent; import java.util.List; +import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -36,4 +38,47 @@ public class ImprovedListenerAdapter extends ListenerAdapter { } + protected boolean isApplicable(GenericMessageEvent event, String command) { + return isApplicable(event, command); + } + + protected boolean isApplicable(GenericMessageEvent event, String command, Consumer callback) { + String[] words = event.getMessage().split(" "); + if (words.length > 0) { + if (words[0].equalsIgnoreCase(command)) { + if (callback != null) { + callback.accept(event.getMessage().substring(words[0].length()).trim()); + return true; + } + } + } + return false; + } + + protected boolean isApplicable(GenericMessageEvent event, List commands) { + return isApplicable(event, commands, null); + } + + protected boolean isApplicable(GenericMessageEvent event, List commands, Consumer callback) { + String[] words = event.getMessage().split(" "); + if (words.length > 0) { + boolean isApplicable = false; + String command = ""; + for (String c : commands) { + if (words[0].equalsIgnoreCase(c)) { + isApplicable = true; + command = words[0]; + break; + } + } + + if (isApplicable) { + if (callback != null) { + callback.accept(event.getMessage().substring(command.length()).trim()); + } + return true; + } + } + return false; + } } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/AdminListener.java b/src/main/java/ru/bvn13/jircbot/listeners/AdminListener.java index b621b38..bb868aa 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/AdminListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/AdminListener.java @@ -116,7 +116,7 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio super.onJoin(event); if (event.getChannel().getName().startsWith("#")) { - if (event.getUser().getNick().equals(event.getBot().getNick())) { + if (event.getUser() != null && event.getBot().getNick().equalsIgnoreCase(event.getUser().getNick())) { event.getBot().sendRaw().rawLineNow("MODE " + event.getBot().getUserBot().getNick() + " +B"); try { channelSettingsService.createChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), event.getChannel().getName()); @@ -136,13 +136,13 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio return; } - if (event.getUser().isVerified() + if (event.getUser() != null && event.getUser().isVerified() && !config.getMasterNick().isEmpty() && config.getMasterNick().equals(event.getUser().getNick())) { if (event.getMessage().startsWith(COMMAND)) { String command = event.getMessage().substring(COMMAND.length()); - String commands[] = command.trim().split(" ", 2); + String[] commands = command.trim().split(" ", 2); if (commands[0].startsWith("+") || commands[0].startsWith("-")) { boolean isApply = commands[0].startsWith("+"); @@ -196,20 +196,20 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio return; } - if (event.getUser().isVerified() + if (event.getUser() != null && event.getUser().isVerified() && !config.getMasterNick().isEmpty() && config.getMasterNick().equals(event.getUser().getNick())) { if (event.getMessage().startsWith(COMMAND)) { String command = event.getMessage().substring(COMMAND.length()); - String commands[] = command.trim().split(" ", 2); + String[] commands = command.trim().split(" ", 2); if (commands.length != 2) { event.respondPrivateMessage("Wrong command"); return; } - String args[] = null; + String[] args = null; switch (commands[0].toLowerCase()) { case "restart": event.getBot().stopBotReconnect(); break; @@ -273,8 +273,8 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio } private boolean sameServer(String s1, String s2) { - String d1[] = s1.split("[\\.]"); - String d2[] = s2.split("[\\.]"); + String[] d1 = s1.split("[\\.]"); + String[] d2 = s2.split("[\\.]"); if (d1.length >= 2 && d2.length >= 2) { if (d1[d1.length - 1].equals(d2[d2.length - 1]) @@ -302,8 +302,7 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio return null; } - Config config = aConfig.get(); - return config; + return aConfig.get(); } private void changeSettings(String serverHost, String channelName, String set, String modeStr) { diff --git a/src/main/java/ru/bvn13/jircbot/listeners/AutoRejoinListener.java b/src/main/java/ru/bvn13/jircbot/listeners/AutoRejoinListener.java index bc6ecbf..9f5ab06 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/AutoRejoinListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/AutoRejoinListener.java @@ -32,10 +32,12 @@ public class AutoRejoinListener extends ImprovedListenerAdapter { return; } - if (event.getRecipient().getUserId().equals(event.getBot().getUserBot().getUserId())) { + if (event.getRecipient() != null && event.getRecipient().getUserId().equals(event.getBot().getUserBot().getUserId())) { wasKicked = true; - offender = event.getUser().getNick(); - event.getBot().sendIRC().joinChannel(event.getChannel().getName()); + if (event.getUser() != null) { + offender = event.getUser().getNick(); + event.getBot().sendIRC().joinChannel(event.getChannel().getName()); + } } } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/BashOrgListener.java b/src/main/java/ru/bvn13/jircbot/listeners/BashOrgListener.java index 67de033..0c57a9c 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/BashOrgListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/BashOrgListener.java @@ -5,6 +5,8 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.pircbotx.hooks.events.MessageEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import ru.bvn13.jircbot.bot.ImprovedListenerAdapter; @@ -29,6 +31,8 @@ import static ru.bvn13.jircbot.documentation.ListenerDescription.CommandDescript @Component public class BashOrgListener extends ImprovedListenerAdapter implements DescriptionProvided { + private static final Logger logger = LoggerFactory.getLogger(BashOrgListener.class); + private static final String COMMAND = "?bash"; private static final String USER_AGENT = "Mozilla/5.0"; @@ -66,16 +70,14 @@ public class BashOrgListener extends ImprovedListenerAdapter implements Descript return; } - if (!event.getMessage().startsWith(COMMAND)) { - return; - } - - try { - event.respond(getRandomBashQuote()); - } catch (Exception e) { - event.respond("ERROR: "+e.getMessage()); - e.printStackTrace(); - } + isApplicable(event, COMMAND, message -> { + try { + event.respond(getRandomBashQuote()); + } catch (Exception e) { + event.respond("ERROR: "+e.getMessage()); + logger.error("", e); + } + }); } @@ -108,12 +110,12 @@ public class BashOrgListener extends ImprovedListenerAdapter implements Descript throw new Exception("Could not get a random quote!"); } - String contentType = con.getContentType(); - Matcher matcher = PATTERN_CHARSET.matcher(contentType); - String charset = "utf-8"; - if (matcher.find()) { - charset = matcher.group(1); - } +// String contentType = con.getContentType(); +// Matcher matcher = PATTERN_CHARSET.matcher(contentType); +// String charset = "utf-8"; +// if (matcher.find()) { +// charset = matcher.group(1); +// } String response = getDataFromConnection(con); Document doc = Jsoup.parse(response); diff --git a/src/main/java/ru/bvn13/jircbot/listeners/DeferredMessagesListener.java b/src/main/java/ru/bvn13/jircbot/listeners/DeferredMessagesListener.java index 39c06c2..77b7c04 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/DeferredMessagesListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/DeferredMessagesListener.java @@ -80,47 +80,49 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter implements return; } - String userName = event.getUser().getNick(); - String channelName = this.getChannelName(event); - String userIdent = event.getUser().getNick() + "!" + event.getUser().getLogin() + "@" + event.getUser().getHostname(); + if (event.getUser() != null) { + String userName = event.getUser().getNick(); + String channelName = this.getChannelName(event); + String userIdent = event.getUser().getNick() + "!" + event.getUser().getLogin() + "@" + event.getUser().getHostname(); - if (event.getMessage().startsWith(COMMAND)) { - String message = event.getMessage().replace(COMMAND, "").trim(); - String commands[] = message.split(" ", 2); + if (event.getMessage().startsWith(COMMAND)) { + String message = event.getMessage().substring(COMMAND.length()).trim(); + String[] commands = message.split(" ", 2); - if (commands.length != 2) { - event.respond("Deferred messages usage: ?tell your message here"); - return; - } + if (commands.length != 2) { + event.respond("Deferred messages usage: ?tell your message here"); + return; + } - if (commands[0].equalsIgnoreCase("me") || userName.equalsIgnoreCase(commands[0])) { - // deferred to myself - deferredMessageService.saveDeferredMessage(channelName, userName, userName.toLowerCase(), commands[1]); - event.respond("Saved message to "+userName); - } else { - if (commands[0].equalsIgnoreCase(event.getBot().getUserBot().getNick())) { - event.respond("Sorry, message cannot be deferred to me."); + if (commands[0].equalsIgnoreCase("me") || userName.equalsIgnoreCase(commands[0])) { + // deferred to myself + deferredMessageService.saveDeferredMessage(channelName, userName, userName.toLowerCase(), commands[1]); + event.respond("Saved message to "+userName); } else { - // deferred to somebody - if (isUserOnline(event, commands[0])) { - event.respond(String.format("%s is online, tell him/her directly, please.", commands[0])); + if (commands[0].equalsIgnoreCase(event.getBot().getUserBot().getNick())) { + event.respond("Sorry, message cannot be deferred to me."); } else { - deferredMessageService.saveDeferredMessage(channelName, userName, commands[0].toLowerCase(), commands[1]); - event.respond("Saved message to " + commands[0]); + // deferred to somebody + if (isUserOnline(event, commands[0])) { + event.respond(String.format("%s is online, tell him/her directly, please.", commands[0])); + } else { + deferredMessageService.saveDeferredMessage(channelName, userName, commands[0].toLowerCase(), commands[1]); + event.respond("Saved message to " + commands[0]); + } } } + } else if (event.getMessage().startsWith(COMMAND_FORGET)) { + int count = deferredMessageService.forgetAllMessages(channelName, userName, userIdent); + event.respond("All "+count+" messages to "+userName+" were deleted"); + } else if (event.getMessage().startsWith(COMMAND_READ)) { + List deferredMessages = deferredMessageService.getDeferredMessagesForUser(channelName, userName, userIdent); + deferredMessages.forEach(msg -> { + event.respondPrivateMessage("User "+msg.getSender()+" at "+dt.format(msg.getDtCreated())+" told you: "+msg.getMessage()); + deferredMessageService.markMessageWasSent(msg); + }); + } else { + this.sendDeferredMessage(event); } - } else if (event.getMessage().startsWith(COMMAND_FORGET)) { - int count = deferredMessageService.forgetAllMessages(channelName, userName, userIdent); - event.respond("All "+count+" messages to "+userName+" were deleted"); - } else if (event.getMessage().startsWith(COMMAND_READ)) { - List deferredMessages = deferredMessageService.getDeferredMessagesForUser(channelName, userName, userIdent); - deferredMessages.forEach(msg -> { - event.respondPrivateMessage("User "+msg.getSender()+" at "+dt.format(msg.getDtCreated())+" told you: "+msg.getMessage()); - deferredMessageService.markMessageWasSent(msg); - }); - } else { - this.sendDeferredMessage(event); } } @@ -128,16 +130,17 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter implements private void sendDeferredMessage(final MessageEvent event) { - String userIdent = event.getUser().getNick() + "!" + event.getUser().getLogin() + "@" + event.getUser().getHostname(); + if (event.getUser() != null) { + String userIdent = event.getUser().getNick() + "!" + event.getUser().getLogin() + "@" + event.getUser().getHostname(); - List deferredMessages = deferredMessageService.getDeferredMessagesForUser(this.getChannelName(event), event.getUser().getNick().toLowerCase(), userIdent); - if (deferredMessages != null && deferredMessages.size() > 0) { - DeferredMessage msg = deferredMessages.get(0); - String more = "" + (deferredMessages.size() > 1 ? " ("+(deferredMessages.size()-1)+" message/-s more)" : ""); - event.respond("User "+msg.getSender()+" at "+dt.format(msg.getDtCreated())+" told you"+more+": "+msg.getMessage()); - deferredMessageService.markMessageWasSent(msg); + List deferredMessages = deferredMessageService.getDeferredMessagesForUser(this.getChannelName(event), event.getUser().getNick().toLowerCase(), userIdent); + if (deferredMessages != null && deferredMessages.size() > 0) { + DeferredMessage msg = deferredMessages.get(0); + String more = "" + (deferredMessages.size() > 1 ? " (" + (deferredMessages.size() - 1) + " message/-s more)" : ""); + event.respond("User " + msg.getSender() + " at " + dt.format(msg.getDtCreated()) + " told you" + more + ": " + msg.getMessage()); + deferredMessageService.markMessageWasSent(msg); + } } - } @Override @@ -149,13 +152,14 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter implements return; } - String userIdent = event.getUser().getNick() + "!" + event.getUser().getLogin() + "@" + event.getUser().getHostname(); + if (event.getUser() != null) { + String userIdent = event.getUser().getNick() + "!" + event.getUser().getLogin() + "@" + event.getUser().getHostname(); - List deferredMessages = deferredMessageService.getDeferredMessagesForUser(this.getChannelName(event), event.getUser().getNick().toLowerCase(), userIdent); - if (deferredMessages != null && deferredMessages.size() > 0) { - event.respond("You have "+deferredMessages.size()+" unread message(-s)"); + List deferredMessages = deferredMessageService.getDeferredMessagesForUser(this.getChannelName(event), event.getUser().getNick().toLowerCase(), userIdent); + if (deferredMessages != null && deferredMessages.size() > 0) { + event.respond("You have " + deferredMessages.size() + " unread message(-s)"); + } } - } @Autowired diff --git a/src/main/java/ru/bvn13/jircbot/listeners/DuckDuckGoSearchListener.java b/src/main/java/ru/bvn13/jircbot/listeners/DuckDuckGoSearchListener.java index 47d268a..cf76e25 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/DuckDuckGoSearchListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/DuckDuckGoSearchListener.java @@ -61,15 +61,15 @@ public class DuckDuckGoSearchListener extends ImprovedListenerAdapter implements return; } - if (!event.getMessage().startsWith(COMMAND)) { - return; - } + isApplicable(event, COMMAND, message -> { + try { + String result = search(message); + event.respond(result); + } catch (Exception e) { + event.respond("error is occurred while searching"); + } + }); - String message = event.getMessage().replace(COMMAND, "").trim(); - - String result = search(message); - - event.respond(result); } private String search(String phrase) throws Exception { diff --git a/src/main/java/ru/bvn13/jircbot/listeners/GrammarCorrectorListener.java b/src/main/java/ru/bvn13/jircbot/listeners/GrammarCorrectorListener.java index 0817d62..5bd76ad 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/GrammarCorrectorListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/GrammarCorrectorListener.java @@ -74,10 +74,10 @@ public class GrammarCorrectorListener extends ImprovedListenerAdapter { private void onCommand(final GenericMessageEvent event) throws Exception { String message = event.getMessage().replace(COMMAND, "").trim(); - String commands[] = message.split(" ", 2); + String[] commands = message.split(" ", 2); if (commands.length == 2) { if (commands[0].trim().equalsIgnoreCase("add")) { - String params[] = commands[1].trim().split(">"); + String[] params = commands[1].trim().split(">"); if (params.length != 2) { event.respond(helpMessage()); } else { @@ -85,7 +85,7 @@ public class GrammarCorrectorListener extends ImprovedListenerAdapter { event.respond("added correction: "+params[0].trim()+" > "+params[1].trim()); } } else if (commands[0].trim().equalsIgnoreCase("remove")) { - String params[] = commands[1].trim().split(">"); + String[] params = commands[1].trim().split(">"); if (params.length == 1) { // by word if (grammarCorrectionService.removeAllCorrectionsByWord(commands[1].trim())) { diff --git a/src/main/java/ru/bvn13/jircbot/listeners/HelpListener.java b/src/main/java/ru/bvn13/jircbot/listeners/HelpListener.java index 5643fbc..a799db0 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/HelpListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/HelpListener.java @@ -22,7 +22,7 @@ import java.util.Optional; @Component public class HelpListener extends ImprovedListenerAdapter implements DescriptionProvided { - private static final List COMMAND = Arrays.asList("?help", "?h"); + private static final List COMMANDS = Arrays.asList("?help", "?h"); private JircBotConfiguration configuration; private DocumentationProvider documentationProvider; @@ -42,33 +42,17 @@ public class HelpListener extends ImprovedListenerAdapter implements Description return; } - answer(event); + isApplicable(event, COMMANDS, message -> answer(event, message)); } @Override public void onPrivateMessage(PrivateMessageEvent event) throws Exception { super.onPrivateMessage(event); - answer(event); + isApplicable(event, COMMANDS, message -> answer(event, message)); } - private void answer(GenericMessageEvent event) { - boolean isHelp = false; - String command = ""; - for (String c : COMMAND) { - if (event.getMessage().startsWith(c)) { - isHelp = true; - command = c; - break; - } - } - - if (!isHelp) { - return; - } - - String message = event.getMessage().replace(command, "").trim(); - + private void answer(GenericMessageEvent event, String message) { if (message.isEmpty()) { event.respond(adviceToFollowMainUrl); } else { @@ -79,12 +63,12 @@ public class HelpListener extends ImprovedListenerAdapter implements Description private void answerWithHelp(GenericMessageEvent event, String message) { String[] words = message.replace(" ", "").split(" "); if (words.length > 1 || words[0].equalsIgnoreCase("all")) { - event.respond(String.format("help syntax: ?help | ?help | Commands: %s", documentationProvider.getAllCommands())); + event.respond(String.format("help syntax: ?help | ?help | Commands: %s", documentationProvider.getAllCommands())); } else { Optional description = documentationProvider.findByCommand(words[0].toLowerCase()); if (description.isPresent()) { ListenerDescription.CommandDescription d = description.get(); - event.respond(String.format("COMMAND: %s, DESCRIPTION: %s, EXAMPLE: %s", d.getCommand(), d.getDescription(), d.getExample())); + event.respond(String.format("COMMANDS: %s, DESCRIPTION: %s, EXAMPLE: %s", d.getCommand(), d.getDescription(), d.getExample())); } else { event.respond(String.format("wrong command %s. %s%s", words[0], adviceToFollowMainUrl.substring(0, 1).toUpperCase(), adviceToFollowMainUrl.substring(1))); } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/LinkPreviewListener.java b/src/main/java/ru/bvn13/jircbot/listeners/LinkPreviewListener.java index acfc54e..5416fe5 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/LinkPreviewListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/LinkPreviewListener.java @@ -61,7 +61,7 @@ public class LinkPreviewListener extends ImprovedListenerAdapter implements Desc List links = findLink(event.getMessage()); for (String link : links) { String info = parseLink(link); - if (info != null && !info.isEmpty()) { + if (!info.isEmpty()) { //event.respond(info); event.getChannel().send().message(info); } @@ -70,7 +70,7 @@ public class LinkPreviewListener extends ImprovedListenerAdapter implements Desc } - public List findLink(String message) { + private List findLink(String message) { Matcher matcher = REGEX.matcher(message); List links = new ArrayList<>(); while (matcher.find()) { @@ -84,19 +84,19 @@ public class LinkPreviewListener extends ImprovedListenerAdapter implements Desc String content = internetAccessor.retrieveContentByLink(link); String encoding = null; //getCharsetFromHeaders(content.toString()); - if (encoding == null) { - encoding = getCharsetFromBody(content.toString()); - } +// if (encoding == null) { +// encoding = getCharsetFromBody(content.toString()); +// } String title = ""; - if (encoding != null && !encoding.isEmpty()) { - content = internetAccessor.retrieveContentByLinkWithEncoding(link, encoding); - } +// if (encoding != null && !encoding.isEmpty()) { +// content = internetAccessor.retrieveContentByLinkWithEncoding(link, encoding); +// } title = content.substring(content.indexOf("") + 7, content.indexOf("")); - return "Title: "+title.toString(); + return "Title: "+title; } @@ -115,9 +115,7 @@ public class LinkPreviewListener extends ImprovedListenerAdapter implements Desc w.flush(); w.close(); - String encodedTitle = out.toString(); - - return encodedTitle; + return out.toString(); } String decodeTitle(String title, String encoding) throws UnsupportedEncodingException { diff --git a/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java b/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java index 49f1ebc..3c992a7 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java @@ -4,6 +4,7 @@ import org.pircbotx.hooks.ListenerAdapter; import org.pircbotx.hooks.events.MessageEvent; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import ru.bvn13.jircbot.bot.ImprovedListenerAdapter; import ru.bvn13.jircbot.documentation.DescriptionProvided; import ru.bvn13.jircbot.documentation.DocumentationProvider; import ru.bvn13.jircbot.documentation.ListenerDescription; @@ -11,7 +12,7 @@ import ru.bvn13.jircbot.documentation.ListenerDescription; import static ru.bvn13.jircbot.documentation.ListenerDescription.CommandDescription; @Component -public class PingPongListener extends ListenerAdapter implements DescriptionProvided { +public class PingPongListener extends ImprovedListenerAdapter implements DescriptionProvided { private static final String COMMAND = "?ping"; @@ -23,11 +24,7 @@ public class PingPongListener extends ListenerAdapter implements DescriptionProv return; } - if (!event.getMessage().startsWith(COMMAND)) { - return; - } - - event.respond("pong!"); + isApplicable(event, COMMAND, message -> event.respond("pong!")); } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java b/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java index 66927f0..d70b88a 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java @@ -60,7 +60,7 @@ public class RegexCheckerListener extends ImprovedListenerAdapter implements Des return; } - if (!event.getMessage().startsWith(COMMAND)) { + if (!isApplicable(event, COMMAND)) { return; } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/StatisticsListener.java b/src/main/java/ru/bvn13/jircbot/listeners/StatisticsListener.java index 623df00..4bf0fee 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/StatisticsListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/StatisticsListener.java @@ -59,7 +59,7 @@ public class StatisticsListener extends ImprovedListenerAdapter implements Descr return; } - String commands[] = event.getMessage().toLowerCase().split(" "); + String[] commands = event.getMessage().toLowerCase().split(" "); if (commands.length > 3) { sendHelp(event);