package commands;
import java.util.Iterator;
import java.util.Set;
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.User;
import de.skuzzle.polly.sdk.exceptions.DuplicatedSignatureException;
public class VarCommand extends Command {
public VarCommand(MyPolly polly) throws DuplicatedSignatureException {
super(polly, "var"); //$NON-NLS-1$
this.createSignature(MSG.varSig0Desc,
MyPlugin.LIST_VARS_PERMISSION);
this.createSignature(MSG.varSig1Desc,
MyPlugin.LIST_VARS_PERMISSION,
new Parameter(MSG.varSig1Namespace, Types.STRING));
this.createSignature(MSG.varSig2Desc,
MyPlugin.LIST_VARS_PERMISSION,
new Parameter(MSG.varSig2User, Types.USER));
this.setHelpText(MSG.varHelp);
}
@Override
protected boolean executeOnBoth(User executer, String channel,
Signature signature) {
String ns = executer.getName();
if (this.match(signature, 1) || this.match(signature, 2)) {
ns = signature.getStringValue(0);
}
StringBuilder b = new StringBuilder();
Set<String> d = this.getMyPolly().users().getDeclaredIdentifiers(ns);
b.append(MSG.varDeclarations);
Iterator<String> it = d.iterator();
while (it.hasNext()) {
b.append(it.next());
if (it.hasNext()) {
b.append(", "); //$NON-NLS-1$
}
}
this.reply(channel, b.toString());
return false;
}
}