package org.mcupdater.ravenbot.features; import org.apache.commons.lang3.StringUtils; import org.mcupdater.ravenbot.AbstractListener; import org.mcupdater.ravenbot.RavenBot; import org.pircbotx.PircBotX; import org.pircbotx.User; import org.pircbotx.hooks.events.MessageEvent; import java.sql.PreparedStatement; import java.sql.ResultSet; public class TellHandler extends AbstractListener { @Override public void onMessage(final MessageEvent event) { super.onMessage(event); try { PircBotX bot = event.getBot(); String user = event.getUser().getNick(); PreparedStatement checkTells = RavenBot.getInstance().getPreparedStatement("getTells"); checkTells.setString(1, user); ResultSet results = checkTells.executeQuery(); while (results.next()) { bot.sendIRC().notice(user, results.getString(2) + " in " + results.getString(3) + " said: " + results.getString(4)); } PreparedStatement clearTells = RavenBot.getInstance().getPreparedStatement("removeTells"); clearTells.setString(1, user); clearTells.execute(); } catch (Exception e) { e.printStackTrace(); } } @Override public void handleCommand(String sender, MessageEvent event, String command, String[] args) { PircBotX bot = event.getBot(); if (command.equals(".tell")) { try { PreparedStatement addTell = RavenBot.getInstance().getPreparedStatement("addTell"); if (args.length == 0) { event.respond("Who did you want to tell?"); return; } String recipient = args[0]; if (args.length == 1) { event.respond("What did you want to say to " + recipient + "?"); return; } String channel = event.getChannel().getName(); String message = StringUtils.join(args," ", 1, args.length); addTell.setString(1, sender); addTell.setString(2, recipient); addTell.setString(3, channel); addTell.setString(4, message); addTell.executeUpdate(); event.respond(recipient + " will be notified of this message when next seen."); } catch (Exception e) { e.printStackTrace(); event.respond("An error occurred while processing this command (.tell)"); } } } @Override protected void initCommands() { } }