package tterrag.tppibot.commands; import java.util.List; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.pircbotx.Channel; import org.pircbotx.PircBotX; import org.pircbotx.User; import tterrag.tppibot.registry.PermRegistry; import tterrag.tppibot.runnables.MessageSender; import tterrag.tppibot.util.IRCUtils; public class Say extends Command { public Say() { super("say", PermLevel.TRUSTED); } @Override public void onCommand(PircBotX bot, User user, Channel channel, List<String> lines, String... args) { if (args.length < 1) { lines.add("This command requires at least one arg."); } String potentialChannel = IRCUtils.fmtChan(args[args.length - 1]); Channel sayChan = IRCUtils.getChannelByName(bot, potentialChannel).orElse(null); // meh if (sayChan != null) { args = ArrayUtils.remove(args, args.length - 1); } String text = StringUtils.join(args, " "); if (sayChan == null || IRCUtils.isPermLevelAboveOrEqualTo(PermRegistry.INSTANCE.getPermLevelForUser(sayChan, user), PermLevel.TRUSTED)) { MessageSender.INSTANCE.enqueue(bot, sayChan == null ? channel == null ? user.getNick() : channel.getName() : sayChan.getName(), text); } else { lines.add("You must be trusted or higher in that channel."); } } }