From b686716b9f62731377cd7d245dc0d8d1c9706040 Mon Sep 17 00:00:00 2001 From: mex Date: Thu, 21 Oct 2010 16:49:02 +0000 Subject: [PATCH] Tidyup and added !help --- Factoids/src/Factoids/Factoids.java | 120 ++++++++++++++++------------ 1 file changed, 69 insertions(+), 51 deletions(-) diff --git a/Factoids/src/Factoids/Factoids.java b/Factoids/src/Factoids/Factoids.java index 409f4f2..3f8763b 100644 --- a/Factoids/src/Factoids/Factoids.java +++ b/Factoids/src/Factoids/Factoids.java @@ -13,48 +13,58 @@ public class Factoids extends DefaultPlugin { private static final Logger log = Logger.getLogger(Factoids.class.toString()); private final ObjectContainer database; - private static final String COMMAND_ADD = "!addfact"; - private static final String COMMAND_SET = "!setfact"; + private static final String COMMAND_ADD = "!set"; + private static final String COMMAND_SET = "!setreply"; public Factoids() { database = Db4o.openFile("Facts.db4o"); } @Override - public void onMessage(String channel, String sender, String login, - String hostname, String message) { + public void load() { + bot.addCommand(COMMAND_ADD, this); + bot.addCommand(COMMAND_SET, this); + } + + @Override + public void onMessage(String channel, String sender, String login, String hostname, + String message) { - String[] messageSplit = message.split(" "); if (message.startsWith("?") && message.split(" ").length == 1) { - Fact proto = new Fact(message.toLowerCase().substring(1), null, - null, null, true); - ObjectSet facts = database.get(proto); - if (facts.size() > 0) { - bot.Message(channel, sender + ": " + facts.get(0)); + if (message.equals("?")) { + // don't do anything } else { - bot.Message(channel, sender + ": Sorry I do not know about that"); + Fact proto = new Fact(message.toLowerCase().substring(1), null, null, null, true); + ObjectSet facts = database.get(proto); + if (facts.size() > 0) { + bot.Message(channel, sender + ": " + facts.get(0)); + } else { + bot.Message(channel, sender + ": Sorry I do not know about that"); + } } - } else if (messageSplit.length >= 3 - && messageSplit[0].equals(COMMAND_ADD)) { - String factString = messageSplit[1].toLowerCase(); - String factMessage = factString; - String tmpMessage = message.substring(messageSplit[0].length() - + messageSplit[1].length() + 1); - log.info("tmpMessage =\"" + tmpMessage + "\"" ); - String trimmedTmpMessage = tmpMessage.trim(); - log.info("trimmedtmpMessage =\"" + trimmedTmpMessage + "\"" ); - - if (trimmedTmpMessage.startsWith("is ")) { - log.info("message already has is so not adding one"); - factMessage += " " + tmpMessage.trim(); + } + } + + private void proccessAdd(String message, String sender, String channel) { + String[] messageSplit = message.split(" "); + if (messageSplit.length < 2) { + bot.sendMessage(channel, sender + ": not enough pareters set"); + } else { + + String factString = messageSplit[0].toLowerCase(); + String factMessage; + + if (messageSplit[1].trim().equals("is")) { + factMessage = message.trim(); } else { - log.info("message doesn't have an in so adding one!"); - factMessage += " is " + tmpMessage.trim(); + StringBuilder sb = new StringBuilder(message.trim()); + sb.insert(messageSplit[0].length(), " is "); + factMessage = sb.toString(); } + String factSetBy = sender; Date factDate = new Date(); - Fact fact = new Fact(factString, factMessage, factSetBy, factDate, - true); + Fact fact = new Fact(factString, factMessage, factSetBy, factDate, true); Fact proto = new Fact(factString, null, null, null, true); ObjectSet set = database.get(proto); @@ -65,42 +75,50 @@ public void onMessage(String channel, String sender, String login, database.set(fact); database.commit(); bot.sendMessage(channel, sender + ": Stored, thanks."); + } + } - } else if (messageSplit.length >= 3 - && messageSplit[0].equals(COMMAND_SET)) { - String factString = messageSplit[1].toLowerCase(); - String factMessage = message.substring(messageSplit[0].length() - + messageSplit[1].length() + 1); + private void proccessSet(String message, String channel, String sender) { + String[] messageSplit = message.split(" "); + String factString = messageSplit[0].toLowerCase(); + String factMessage = message.substring(messageSplit[0].length()).trim(); + + String factSetBy = sender; + Date factDate = new Date(); + Fact fact = new Fact(factString, factMessage, factSetBy, factDate, true); + + Fact proto = new Fact(factString, null, null, null, true); + ObjectSet set = database.get(proto); + for (Fact old : set) { + old.setOld(); + database.set(old); + } - String factSetBy = sender; - Date factDate = new Date(); - Fact fact = new Fact(factString, factMessage, factSetBy, factDate, - true); + database.set(fact); + database.commit(); + bot.sendMessage(channel, sender + ": Stored, thanks."); - Fact proto = new Fact(factString, null, null, null, true); - ObjectSet set = database.get(proto); - for (Fact old : set) { - old.setOld(); - database.set(old); - } - + } - database.set(fact); - database.commit(); - bot.sendMessage(channel, sender + ": Stored, thanks."); + @Override + public void onCommand(String command, String channel, String sender, String login, + String hostname, String message) { + if (command.equals(COMMAND_ADD)) { + proccessAdd(message, sender, channel); + } else if (command.equals(COMMAND_SET)) { + proccessSet(message, channel, sender); } - } @Override public String getHelp() { - // TODO Auto-generated method stub - return null; + return "Use " + COMMAND_ADD + " is to set a factoid. Use " + COMMAND_SET + + " to set a literal reply to a factoid."; } @Override public void unload() { database.close(); } - + }