refactoring

pull/6/head
bvn13 2019-03-16 12:03:24 +03:00
parent 8cade905ef
commit b9b8d7e10f
12 changed files with 159 additions and 128 deletions

View File

@ -4,8 +4,10 @@ import org.pircbotx.hooks.ListenerAdapter;
import org.pircbotx.hooks.events.MessageEvent; import org.pircbotx.hooks.events.MessageEvent;
import org.pircbotx.hooks.types.GenericChannelEvent; import org.pircbotx.hooks.types.GenericChannelEvent;
import org.pircbotx.hooks.types.GenericEvent; import org.pircbotx.hooks.types.GenericEvent;
import org.pircbotx.hooks.types.GenericMessageEvent;
import java.util.List; import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Collectors; 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<String> 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<String> commands) {
return isApplicable(event, commands, null);
}
protected boolean isApplicable(GenericMessageEvent event, List<String> commands, Consumer<String> 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;
}
} }

View File

@ -116,7 +116,7 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio
super.onJoin(event); super.onJoin(event);
if (event.getChannel().getName().startsWith("#")) { 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"); event.getBot().sendRaw().rawLineNow("MODE " + event.getBot().getUserBot().getNick() + " +B");
try { try {
channelSettingsService.createChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), event.getChannel().getName()); channelSettingsService.createChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), event.getChannel().getName());
@ -136,13 +136,13 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio
return; return;
} }
if (event.getUser().isVerified() if (event.getUser() != null && event.getUser().isVerified()
&& !config.getMasterNick().isEmpty() && !config.getMasterNick().isEmpty()
&& config.getMasterNick().equals(event.getUser().getNick())) { && config.getMasterNick().equals(event.getUser().getNick())) {
if (event.getMessage().startsWith(COMMAND)) { if (event.getMessage().startsWith(COMMAND)) {
String command = event.getMessage().substring(COMMAND.length()); 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("-")) { if (commands[0].startsWith("+") || commands[0].startsWith("-")) {
boolean isApply = commands[0].startsWith("+"); boolean isApply = commands[0].startsWith("+");
@ -196,20 +196,20 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio
return; return;
} }
if (event.getUser().isVerified() if (event.getUser() != null && event.getUser().isVerified()
&& !config.getMasterNick().isEmpty() && !config.getMasterNick().isEmpty()
&& config.getMasterNick().equals(event.getUser().getNick())) { && config.getMasterNick().equals(event.getUser().getNick())) {
if (event.getMessage().startsWith(COMMAND)) { if (event.getMessage().startsWith(COMMAND)) {
String command = event.getMessage().substring(COMMAND.length()); String command = event.getMessage().substring(COMMAND.length());
String commands[] = command.trim().split(" ", 2); String[] commands = command.trim().split(" ", 2);
if (commands.length != 2) { if (commands.length != 2) {
event.respondPrivateMessage("Wrong command"); event.respondPrivateMessage("Wrong command");
return; return;
} }
String args[] = null; String[] args = null;
switch (commands[0].toLowerCase()) { switch (commands[0].toLowerCase()) {
case "restart": case "restart":
event.getBot().stopBotReconnect(); break; event.getBot().stopBotReconnect(); break;
@ -273,8 +273,8 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio
} }
private boolean sameServer(String s1, String s2) { private boolean sameServer(String s1, String s2) {
String d1[] = s1.split("[\\.]"); String[] d1 = s1.split("[\\.]");
String d2[] = s2.split("[\\.]"); String[] d2 = s2.split("[\\.]");
if (d1.length >= 2 && d2.length >= 2) { if (d1.length >= 2 && d2.length >= 2) {
if (d1[d1.length - 1].equals(d2[d2.length - 1]) if (d1[d1.length - 1].equals(d2[d2.length - 1])
@ -302,8 +302,7 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio
return null; return null;
} }
Config config = aConfig.get(); return aConfig.get();
return config;
} }
private void changeSettings(String serverHost, String channelName, String set, String modeStr) { private void changeSettings(String serverHost, String channelName, String set, String modeStr) {

View File

@ -32,10 +32,12 @@ public class AutoRejoinListener extends ImprovedListenerAdapter {
return; return;
} }
if (event.getRecipient().getUserId().equals(event.getBot().getUserBot().getUserId())) { if (event.getRecipient() != null && event.getRecipient().getUserId().equals(event.getBot().getUserBot().getUserId())) {
wasKicked = true; wasKicked = true;
offender = event.getUser().getNick(); if (event.getUser() != null) {
event.getBot().sendIRC().joinChannel(event.getChannel().getName()); offender = event.getUser().getNick();
event.getBot().sendIRC().joinChannel(event.getChannel().getName());
}
} }
} }

View File

@ -5,6 +5,8 @@ import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element; import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; import org.jsoup.select.Elements;
import org.pircbotx.hooks.events.MessageEvent; import org.pircbotx.hooks.events.MessageEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter; import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
@ -29,6 +31,8 @@ import static ru.bvn13.jircbot.documentation.ListenerDescription.CommandDescript
@Component @Component
public class BashOrgListener extends ImprovedListenerAdapter implements DescriptionProvided { 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 COMMAND = "?bash";
private static final String USER_AGENT = "Mozilla/5.0"; private static final String USER_AGENT = "Mozilla/5.0";
@ -66,16 +70,14 @@ public class BashOrgListener extends ImprovedListenerAdapter implements Descript
return; return;
} }
if (!event.getMessage().startsWith(COMMAND)) { isApplicable(event, COMMAND, message -> {
return; try {
} event.respond(getRandomBashQuote());
} catch (Exception e) {
try { event.respond("ERROR: "+e.getMessage());
event.respond(getRandomBashQuote()); logger.error("", e);
} catch (Exception e) { }
event.respond("ERROR: "+e.getMessage()); });
e.printStackTrace();
}
} }
@ -108,12 +110,12 @@ public class BashOrgListener extends ImprovedListenerAdapter implements Descript
throw new Exception("Could not get a random quote!"); throw new Exception("Could not get a random quote!");
} }
String contentType = con.getContentType(); // String contentType = con.getContentType();
Matcher matcher = PATTERN_CHARSET.matcher(contentType); // Matcher matcher = PATTERN_CHARSET.matcher(contentType);
String charset = "utf-8"; // String charset = "utf-8";
if (matcher.find()) { // if (matcher.find()) {
charset = matcher.group(1); // charset = matcher.group(1);
} // }
String response = getDataFromConnection(con); String response = getDataFromConnection(con);
Document doc = Jsoup.parse(response); Document doc = Jsoup.parse(response);

View File

@ -80,47 +80,49 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter implements
return; return;
} }
String userName = event.getUser().getNick(); if (event.getUser() != null) {
String channelName = this.getChannelName(event); String userName = event.getUser().getNick();
String userIdent = event.getUser().getNick() + "!" + event.getUser().getLogin() + "@" + event.getUser().getHostname(); String channelName = this.getChannelName(event);
String userIdent = event.getUser().getNick() + "!" + event.getUser().getLogin() + "@" + event.getUser().getHostname();
if (event.getMessage().startsWith(COMMAND)) { if (event.getMessage().startsWith(COMMAND)) {
String message = event.getMessage().replace(COMMAND, "").trim(); String message = event.getMessage().substring(COMMAND.length()).trim();
String commands[] = message.split(" ", 2); String[] commands = message.split(" ", 2);
if (commands.length != 2) { if (commands.length != 2) {
event.respond("Deferred messages usage: ?tell <UserNick/ME/Ident> your message here"); event.respond("Deferred messages usage: ?tell <UserNick/ME/Ident> your message here");
return; return;
} }
if (commands[0].equalsIgnoreCase("me") || userName.equalsIgnoreCase(commands[0])) { if (commands[0].equalsIgnoreCase("me") || userName.equalsIgnoreCase(commands[0])) {
// deferred to myself // deferred to myself
deferredMessageService.saveDeferredMessage(channelName, userName, userName.toLowerCase(), commands[1]); deferredMessageService.saveDeferredMessage(channelName, userName, userName.toLowerCase(), commands[1]);
event.respond("Saved message to "+userName); event.respond("Saved message to "+userName);
} else {
if (commands[0].equalsIgnoreCase(event.getBot().getUserBot().getNick())) {
event.respond("Sorry, message cannot be deferred to me.");
} else { } else {
// deferred to somebody if (commands[0].equalsIgnoreCase(event.getBot().getUserBot().getNick())) {
if (isUserOnline(event, commands[0])) { event.respond("Sorry, message cannot be deferred to me.");
event.respond(String.format("%s is online, tell him/her directly, please.", commands[0]));
} else { } else {
deferredMessageService.saveDeferredMessage(channelName, userName, commands[0].toLowerCase(), commands[1]); // deferred to somebody
event.respond("Saved message to " + commands[0]); 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<DeferredMessage> 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<DeferredMessage> 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) { 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<DeferredMessage> deferredMessages = deferredMessageService.getDeferredMessagesForUser(this.getChannelName(event), event.getUser().getNick().toLowerCase(), userIdent); List<DeferredMessage> deferredMessages = deferredMessageService.getDeferredMessagesForUser(this.getChannelName(event), event.getUser().getNick().toLowerCase(), userIdent);
if (deferredMessages != null && deferredMessages.size() > 0) { if (deferredMessages != null && deferredMessages.size() > 0) {
DeferredMessage msg = deferredMessages.get(0); DeferredMessage msg = deferredMessages.get(0);
String more = "" + (deferredMessages.size() > 1 ? " ("+(deferredMessages.size()-1)+" message/-s more)" : ""); 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()); event.respond("User " + msg.getSender() + " at " + dt.format(msg.getDtCreated()) + " told you" + more + ": " + msg.getMessage());
deferredMessageService.markMessageWasSent(msg); deferredMessageService.markMessageWasSent(msg);
}
} }
} }
@Override @Override
@ -149,13 +152,14 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter implements
return; 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<DeferredMessage> deferredMessages = deferredMessageService.getDeferredMessagesForUser(this.getChannelName(event), event.getUser().getNick().toLowerCase(), userIdent); List<DeferredMessage> deferredMessages = deferredMessageService.getDeferredMessagesForUser(this.getChannelName(event), event.getUser().getNick().toLowerCase(), userIdent);
if (deferredMessages != null && deferredMessages.size() > 0) { if (deferredMessages != null && deferredMessages.size() > 0) {
event.respond("You have "+deferredMessages.size()+" unread message(-s)"); event.respond("You have " + deferredMessages.size() + " unread message(-s)");
}
} }
} }
@Autowired @Autowired

View File

@ -61,15 +61,15 @@ public class DuckDuckGoSearchListener extends ImprovedListenerAdapter implements
return; return;
} }
if (!event.getMessage().startsWith(COMMAND)) { isApplicable(event, COMMAND, message -> {
return; 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 { private String search(String phrase) throws Exception {

View File

@ -74,10 +74,10 @@ public class GrammarCorrectorListener extends ImprovedListenerAdapter {
private void onCommand(final GenericMessageEvent event) throws Exception { private void onCommand(final GenericMessageEvent event) throws Exception {
String message = event.getMessage().replace(COMMAND, "").trim(); String message = event.getMessage().replace(COMMAND, "").trim();
String commands[] = message.split(" ", 2); String[] commands = message.split(" ", 2);
if (commands.length == 2) { if (commands.length == 2) {
if (commands[0].trim().equalsIgnoreCase("add")) { if (commands[0].trim().equalsIgnoreCase("add")) {
String params[] = commands[1].trim().split(">"); String[] params = commands[1].trim().split(">");
if (params.length != 2) { if (params.length != 2) {
event.respond(helpMessage()); event.respond(helpMessage());
} else { } else {
@ -85,7 +85,7 @@ public class GrammarCorrectorListener extends ImprovedListenerAdapter {
event.respond("added correction: "+params[0].trim()+" > "+params[1].trim()); event.respond("added correction: "+params[0].trim()+" > "+params[1].trim());
} }
} else if (commands[0].trim().equalsIgnoreCase("remove")) { } else if (commands[0].trim().equalsIgnoreCase("remove")) {
String params[] = commands[1].trim().split(">"); String[] params = commands[1].trim().split(">");
if (params.length == 1) { if (params.length == 1) {
// by word // by word
if (grammarCorrectionService.removeAllCorrectionsByWord(commands[1].trim())) { if (grammarCorrectionService.removeAllCorrectionsByWord(commands[1].trim())) {

View File

@ -22,7 +22,7 @@ import java.util.Optional;
@Component @Component
public class HelpListener extends ImprovedListenerAdapter implements DescriptionProvided { public class HelpListener extends ImprovedListenerAdapter implements DescriptionProvided {
private static final List<String> COMMAND = Arrays.asList("?help", "?h"); private static final List<String> COMMANDS = Arrays.asList("?help", "?h");
private JircBotConfiguration configuration; private JircBotConfiguration configuration;
private DocumentationProvider documentationProvider; private DocumentationProvider documentationProvider;
@ -42,33 +42,17 @@ public class HelpListener extends ImprovedListenerAdapter implements Description
return; return;
} }
answer(event); isApplicable(event, COMMANDS, message -> answer(event, message));
} }
@Override @Override
public void onPrivateMessage(PrivateMessageEvent event) throws Exception { public void onPrivateMessage(PrivateMessageEvent event) throws Exception {
super.onPrivateMessage(event); super.onPrivateMessage(event);
answer(event); isApplicable(event, COMMANDS, message -> answer(event, message));
} }
private void answer(GenericMessageEvent event) { private void answer(GenericMessageEvent event, String message) {
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();
if (message.isEmpty()) { if (message.isEmpty()) {
event.respond(adviceToFollowMainUrl); event.respond(adviceToFollowMainUrl);
} else { } else {
@ -79,12 +63,12 @@ public class HelpListener extends ImprovedListenerAdapter implements Description
private void answerWithHelp(GenericMessageEvent event, String message) { private void answerWithHelp(GenericMessageEvent event, String message) {
String[] words = message.replace(" ", "").split(" "); String[] words = message.replace(" ", "").split(" ");
if (words.length > 1 || words[0].equalsIgnoreCase("all")) { if (words.length > 1 || words[0].equalsIgnoreCase("all")) {
event.respond(String.format("help syntax: ?help | ?help <COMMAND> | Commands: %s", documentationProvider.getAllCommands())); event.respond(String.format("help syntax: ?help | ?help <COMMANDS> | Commands: %s", documentationProvider.getAllCommands()));
} else { } else {
Optional<ListenerDescription.CommandDescription> description = documentationProvider.findByCommand(words[0].toLowerCase()); Optional<ListenerDescription.CommandDescription> description = documentationProvider.findByCommand(words[0].toLowerCase());
if (description.isPresent()) { if (description.isPresent()) {
ListenerDescription.CommandDescription d = description.get(); 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 { } else {
event.respond(String.format("wrong command %s. %s%s", words[0], adviceToFollowMainUrl.substring(0, 1).toUpperCase(), adviceToFollowMainUrl.substring(1))); event.respond(String.format("wrong command %s. %s%s", words[0], adviceToFollowMainUrl.substring(0, 1).toUpperCase(), adviceToFollowMainUrl.substring(1)));
} }

View File

@ -61,7 +61,7 @@ public class LinkPreviewListener extends ImprovedListenerAdapter implements Desc
List<String> links = findLink(event.getMessage()); List<String> links = findLink(event.getMessage());
for (String link : links) { for (String link : links) {
String info = parseLink(link); String info = parseLink(link);
if (info != null && !info.isEmpty()) { if (!info.isEmpty()) {
//event.respond(info); //event.respond(info);
event.getChannel().send().message(info); event.getChannel().send().message(info);
} }
@ -70,7 +70,7 @@ public class LinkPreviewListener extends ImprovedListenerAdapter implements Desc
} }
public List<String> findLink(String message) { private List<String> findLink(String message) {
Matcher matcher = REGEX.matcher(message); Matcher matcher = REGEX.matcher(message);
List<String> links = new ArrayList<>(); List<String> links = new ArrayList<>();
while (matcher.find()) { while (matcher.find()) {
@ -84,19 +84,19 @@ public class LinkPreviewListener extends ImprovedListenerAdapter implements Desc
String content = internetAccessor.retrieveContentByLink(link); String content = internetAccessor.retrieveContentByLink(link);
String encoding = null; //getCharsetFromHeaders(content.toString()); String encoding = null; //getCharsetFromHeaders(content.toString());
if (encoding == null) { // if (encoding == null) {
encoding = getCharsetFromBody(content.toString()); // encoding = getCharsetFromBody(content.toString());
} // }
String title = ""; String title = "";
if (encoding != null && !encoding.isEmpty()) { // if (encoding != null && !encoding.isEmpty()) {
content = internetAccessor.retrieveContentByLinkWithEncoding(link, encoding); // content = internetAccessor.retrieveContentByLinkWithEncoding(link, encoding);
} // }
title = content.substring(content.indexOf("<title>") + 7, content.indexOf("</title>")); title = content.substring(content.indexOf("<title>") + 7, content.indexOf("</title>"));
return "Title: "+title.toString(); return "Title: "+title;
} }
@ -115,9 +115,7 @@ public class LinkPreviewListener extends ImprovedListenerAdapter implements Desc
w.flush(); w.flush();
w.close(); w.close();
String encodedTitle = out.toString(); return out.toString();
return encodedTitle;
} }
String decodeTitle(String title, String encoding) throws UnsupportedEncodingException { String decodeTitle(String title, String encoding) throws UnsupportedEncodingException {

View File

@ -4,6 +4,7 @@ import org.pircbotx.hooks.ListenerAdapter;
import org.pircbotx.hooks.events.MessageEvent; import org.pircbotx.hooks.events.MessageEvent;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
import ru.bvn13.jircbot.documentation.DescriptionProvided; import ru.bvn13.jircbot.documentation.DescriptionProvided;
import ru.bvn13.jircbot.documentation.DocumentationProvider; import ru.bvn13.jircbot.documentation.DocumentationProvider;
import ru.bvn13.jircbot.documentation.ListenerDescription; import ru.bvn13.jircbot.documentation.ListenerDescription;
@ -11,7 +12,7 @@ import ru.bvn13.jircbot.documentation.ListenerDescription;
import static ru.bvn13.jircbot.documentation.ListenerDescription.CommandDescription; import static ru.bvn13.jircbot.documentation.ListenerDescription.CommandDescription;
@Component @Component
public class PingPongListener extends ListenerAdapter implements DescriptionProvided { public class PingPongListener extends ImprovedListenerAdapter implements DescriptionProvided {
private static final String COMMAND = "?ping"; private static final String COMMAND = "?ping";
@ -23,11 +24,7 @@ public class PingPongListener extends ListenerAdapter implements DescriptionProv
return; return;
} }
if (!event.getMessage().startsWith(COMMAND)) { isApplicable(event, COMMAND, message -> event.respond("pong!"));
return;
}
event.respond("pong!");
} }

View File

@ -60,7 +60,7 @@ public class RegexCheckerListener extends ImprovedListenerAdapter implements Des
return; return;
} }
if (!event.getMessage().startsWith(COMMAND)) { if (!isApplicable(event, COMMAND)) {
return; return;
} }

View File

@ -59,7 +59,7 @@ public class StatisticsListener extends ImprovedListenerAdapter implements Descr
return; return;
} }
String commands[] = event.getMessage().toLowerCase().split(" "); String[] commands = event.getMessage().toLowerCase().split(" ");
if (commands.length > 3) { if (commands.length > 3) {
sendHelp(event); sendHelp(event);