package io.shockah.skylark.groovy;
import org.pircbotx.Channel;
import org.pircbotx.PircBotX;
import org.pircbotx.User;
import org.pircbotx.UserHostmask;
import io.shockah.skylark.Bot;
import io.shockah.skylark.commands.CommandCall;
import io.shockah.skylark.commands.CommandResult;
public class UserGroovySandboxImpl extends GroovySandboxImpl {
public UserGroovySandboxImpl() {
super();
addBlacklistedMethods(CommandCall.class,
"respond"
);
addBlacklistedFields(Bot.class,
"manager"
);
addWhitelistedMethods(PircBotX.class,
"getNick", "getServerHostname", "getServerPort", "getUserBot", "getUserChannelDao"
);
addWhitelistedMethods(User.class,
"getAwayMessage", "getBot", "getHostmask", "getHostname", "getLogin", "getNick", "getRealName", "getServer",
"getChannels", "getChannelsHalfOpIn", "getChannelsOpIn", "getChannelsOwnerIn", "getChannelsSuperOpIn", "getChannelsVoiceIn",
"isAway", "isIrcop"
);
addWhitelistedMethods(Channel.class,
"getBot", "getChannelLimit", "getMode", "getName", "getTopic", "getTopicSetter", "getTopicTimestamp",
"getHalfOps", "getNormalUsers", "getOps", "getOwners", "getSuperOps", "getUsers", "getUsersNicks", "getVoices",
"hasVoice", "isHalfOp", "isOp", "isOwner", "isSuperOp",
"hasTopicProtection", "isChannelPrivate", "isInviteOnly", "isModerated", "isNoExternalMessages", "isSecret"
);
addWhitelistedMethods(UserHostmask.class,
"getHostmask", "getHostname", "getLogin", "getNick"
);
addWhitelistedPackages(
"io.shockah.skylark.commands"
);
addWhitelistedClasses(
CommandResult.class
);
}
}