package commands; import java.util.List; import polly.core.MSG; import polly.core.MyPlugin; import de.skuzzle.polly.sdk.Command; import de.skuzzle.polly.sdk.MyPolly; import de.skuzzle.polly.sdk.Parameter; import de.skuzzle.polly.sdk.Signature; import de.skuzzle.polly.sdk.Types; import de.skuzzle.polly.sdk.Types.UserType; import de.skuzzle.polly.sdk.User; import de.skuzzle.polly.sdk.exceptions.DuplicatedSignatureException; public class KickCommand extends Command { public KickCommand(MyPolly polly) throws DuplicatedSignatureException { super(polly, "kick"); //$NON-NLS-1$ this.createSignature(MSG.kickSig0Desc, MyPlugin.KICK_PERMISSION, new Parameter(MSG.kickSig0User, Types.USER)); this.createSignature(MSG.kickSig1Desc, MyPlugin.KICK_PERMISSION, new Parameter(MSG.kickSig1User, Types.USER), new Parameter(MSG.kickSig1Reason, Types.STRING)); this.createSignature(MSG.kickSig2Desc, MyPlugin.KICK_PERMISSION, new Parameter(MSG.kickSig2Channel, Types.CHANNEL), new Parameter(MSG.kickSig2User, Types.USER)); this.createSignature(MSG.kickSig3Desc, MyPlugin.KICK_PERMISSION, new Parameter(MSG.kickSig3Channel, Types.CHANNEL), new Parameter(MSG.kickSig3User, Types.USER), new Parameter(MSG.kickSig3Reason, Types.STRING)); this.createSignature(MSG.kickSig4Desc, new Parameter(MSG.kickSig4Users, new Types.ListType(Types.USER))); this.createSignature(MSG.kickSig5Desc, new Parameter(MSG.kickSig5Users, new Types.ListType(Types.USER)), new Parameter(MSG.kickSig5Channel, Types.CHANNEL)); this.setRegisteredOnly(); this.setHelpText(MSG.kickHelp); } @Override protected boolean executeOnBoth(User executer, String channel, Signature signature) { return true; } @Override protected void executeOnChannel(User executer, String channel, Signature signature) { if (this.match(signature, 0)) { String user = signature.getStringValue(0); this.getMyPolly().irc().kick(channel, user, ""); //$NON-NLS-1$ } else if (this.match(signature, 1)) { String user = signature.getStringValue(0); String reason = signature.getStringValue(1); this.getMyPolly().irc().kick(channel, user, reason); } else if(this.match(signature, 2)) { String from = signature.getStringValue(0); String user = signature.getStringValue(1); this.getMyPolly().irc().kick(from, user, ""); //$NON-NLS-1$ } else if (this.match(signature, 3)) { String from = signature.getStringValue(0); String user = signature.getStringValue(1); String reason = signature.getStringValue(2); this.getMyPolly().irc().kick(from, user, reason); } else if (this.match(signature, 4)) { List<Types.UserType> users = signature.getListValue(Types.UserType.class, 0); for (final UserType user : users) { this.getMyPolly().irc().kick(channel, user.getValue(), ""); //$NON-NLS-1$ } } else if (this.match(signature, 5)) { List<Types.UserType> users = signature.getListValue(Types.UserType.class, 0); String from = signature.getStringValue(1); for (final UserType user : users) { this.getMyPolly().irc().kick(from, user.getValue(), ""); //$NON-NLS-1$ } } } @Override protected void executeOnQuery(User executer, Signature signature) { if (signature.getId() > 1) { this.executeOnChannel(executer, executer.getCurrentNickName(), signature); } } }