import java.io.File;
import org.pircbotx.Channel;
import pl.shockah.shocky.Module;
import pl.shockah.shocky.Shocky;
import pl.shockah.shocky.cmds.Command;
import pl.shockah.shocky.cmds.CommandCallback;
import pl.shockah.shocky.cmds.Parameters;
public class ModuleSay extends Module {
protected Command cmdSay, cmdAction;
public String name() {return "say";}
public void onEnable(File dir) {
Command.addCommands(this, cmdSay = new CmdSay(),cmdAction = new CmdAction());
}
public void onDisable() {
Command.removeCommands(cmdSay,cmdAction);
}
private boolean send(Command.EType type, Parameters params, CommandCallback callback) {
if (!params.hasMoreParams())
return false;
String chan = params.nextParam();
String msg = params.input;
Channel channel = params.channel;
if (!chan.startsWith("#")) {
if (params.type != Command.EType.Channel)
{
callback.append(msg);
return true;
}
}
else {
channel = Shocky.getChannel(chan);
msg = params.getParams(0);
}
if (channel == null || !channel.isOp(params.sender))
return false;
Shocky.send(channel.getBot(), type, channel, null, msg);
return true;
}
public class CmdSay extends Command {
public String command() {return "say";}
public String help(Parameters params) {
return "[r:op] say [channel] {phrase} - makes the bot say {phrase}";
}
public void doCommand(Parameters params, CommandCallback callback) {
if (!send(EType.Channel, params, callback)) {
callback.type = EType.Notice;
callback.append(help(params));
}
}
}
public class CmdAction extends Command {
public String command() {return "action";}
public String help(Parameters params) {
return "[r:op] action [channel] {action} - /me {action}";
}
public void doCommand(Parameters params, CommandCallback callback) {
if (!send(EType.Action, params, callback)) {
callback.type = EType.Notice;
callback.append(help(params));
}
}
}
}