Package uk.co.jacekk.bukkit.simpleirc.command

Source Code of uk.co.jacekk.bukkit.simpleirc.command.IRCCommandExecutor

package uk.co.jacekk.bukkit.simpleirc.command;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.pircbotx.Channel;
import org.pircbotx.User;

import uk.co.jacekk.bukkit.baseplugin.command.BaseCommandExecutor;
import uk.co.jacekk.bukkit.baseplugin.command.CommandHandler;
import uk.co.jacekk.bukkit.baseplugin.command.CommandTabCompletion;
import uk.co.jacekk.bukkit.baseplugin.command.SubCommandHandler;
import uk.co.jacekk.bukkit.simpleirc.Config;
import uk.co.jacekk.bukkit.simpleirc.Permission;
import uk.co.jacekk.bukkit.simpleirc.SimpleIRC;

public class IRCCommandExecutor extends BaseCommandExecutor<SimpleIRC> {
 
  public IRCCommandExecutor(SimpleIRC plugin){
    super(plugin);
  }
 
  @CommandHandler(names = {"irc"}, description = "Allowes a player to manage the IRC channel", usage = "[action] <args>")
  @CommandTabCompletion({"kick|ban|op|deop|voice|devoice|leave|join|disconnect|connect"})
  public void irc(CommandSender sender, String label, String[] args){
    sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <action> <args>");
    sender.sendMessage(ChatColor.RED + "Actions:");
   
    if (Permission.KICK.has(sender)){
      sender.sendMessage(ChatColor.RED + "  kick - Kicks a user from a channel");
    }
   
    if (Permission.BAN.has(sender)){
      sender.sendMessage(ChatColor.RED + "  ban - Bans a hostmask from a channel");
    }
   
    if (Permission.OP.has(sender)){
      sender.sendMessage(ChatColor.RED + "  op - Gives a user OP");
      sender.sendMessage(ChatColor.RED + "  deop - Takes OP from a user");
    }
   
    if (Permission.VOICE.has(sender)){
      sender.sendMessage(ChatColor.RED + "  voice - Gives voice to a user");
      sender.sendMessage(ChatColor.RED + "  devoice - Takes voice from a user");
    }
   
    if (Permission.LEAVE.has(sender)){
      sender.sendMessage(ChatColor.RED + "  leave - Leaves all channels");
    }
   
    if (Permission.JOIN.has(sender)){
      sender.sendMessage(ChatColor.RED + "  join - Joins the configured channels");
    }
   
    if (Permission.DISCONNECT.has(sender)){
      sender.sendMessage(ChatColor.RED + "  disconnect - Disconnects from the server");
    }
   
    if (Permission.CONNECT.has(sender)){
      sender.sendMessage(ChatColor.RED + "  connect - Connects to the server");
    }
  }
 
  public List<String> getChannelList(CommandSender sender, String[] args){
    return plugin.config.getStringList(Config.IRC_BOT_CHANNELS);
  }
 
  public List<String> getNickList(CommandSender sender, String[] args){
    ArrayList<String> nicks = new ArrayList<String>();
   
    for (User user : plugin.bot.getUsers(plugin.bot.getChannel(args[0]))){
      nicks.add(user.getNick());
    }
   
    return nicks;
  }
 
  @SubCommandHandler(parent = "irc", name = "kick")
  @CommandTabCompletion({"[getChannelList]", "[getNickList]"})
  public void ircKick(CommandSender sender, String label, String[] args){
    if (!Permission.KICK.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    if (args.length < 2){
      sender.sendMessage(ChatColor.RED + "Usage: /" + label + " kick <channel> <nick> <reason>");
      return;
    }
   
    Channel channel = plugin.bot.getChannel(args[0]);
    User user = plugin.bot.getUser(args[1]);
   
    if (args.length > 2){
      String reason = args[2];
     
      for (int i = 3; i < args.length; ++i){
        reason += " " + args[i];
      }
     
      plugin.bot.kick(channel, user, reason);
    }else{
      plugin.bot.kick(channel, user);
    }
   
    sender.sendMessage(ChatColor.GREEN + args[1] + " has been kicked from " + args[0]);
  }
 
  @SubCommandHandler(parent = "irc", name = "ban")
  @CommandTabCompletion({"[getChannelList]"})
  public void ircBan(CommandSender sender, String label, String[] args){
    if (!Permission.BAN.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    if (args.length != 2){
      sender.sendMessage(ChatColor.RED + "Usage: /" + label + " ban <channel> <hostmask>");
      return;
    }
   
    Channel channel = plugin.bot.getChannel(args[0]);
   
    plugin.bot.ban(channel, args[1]);
   
    sender.sendMessage(ChatColor.GREEN + args[1] + " has been banned from " + args[0]);
  }
 
  @SubCommandHandler(parent = "irc", name = "op")
  @CommandTabCompletion({"[getChannelList]", "[getNickList]"})
  public void ircOp(CommandSender sender, String label, String[] args){
    if (!Permission.OP.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    if (args.length < 3){
      sender.sendMessage(ChatColor.RED + "Usage: /" + label + " op <channel> <nick>");
      return;
    }
   
    Channel channel = plugin.bot.getChannel(args[0]);
    User user = plugin.bot.getUser(args[1]);
   
    plugin.bot.op(channel, user);
   
    sender.sendMessage(ChatColor.GREEN + args[1] + " has been oped in " + args[0]);
  }
 
  @SubCommandHandler(parent = "irc", name = "deop")
  @CommandTabCompletion({"[getChannelList]", "[getNickList]"})
  public void ircDeop(CommandSender sender, String label, String[] args){
    if (!Permission.OP.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    if (args.length < 3){
      sender.sendMessage(ChatColor.RED + "Usage: /" + label + " deop <channel> <nick>");
      return;
    }
   
    Channel channel = plugin.bot.getChannel(args[0]);
    User user = plugin.bot.getUser(args[1]);
   
    plugin.bot.deOp(channel, user);
   
    sender.sendMessage(ChatColor.GREEN + args[1] + " has been deoped in " + args[0]);
  }
 
  @SubCommandHandler(parent = "irc", name = "voice")
  @CommandTabCompletion({"[getChannelList]", "[getNickList]"})
  public void ircVoice(CommandSender sender, String label, String[] args){
    if (!Permission.VOICE.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    if (args.length != 2){
      sender.sendMessage(ChatColor.RED + "Usage: /" + label + " voice <channel> <nick>");
      return;
    }
   
    Channel channel = plugin.bot.getChannel(args[0]);
    User user = plugin.bot.getUser(args[1]);
   
    plugin.bot.voice(channel, user);
   
    sender.sendMessage(ChatColor.GREEN + args[1] + " has been given voice in " + args[0]);
  }
 
  @SubCommandHandler(parent = "irc", name = "devoice")
  @CommandTabCompletion({"[getChannelList]", "[getNickList]"})
  public void ircDevoice(CommandSender sender, String label, String[] args){
    if (!Permission.VOICE.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    if (args.length != 2){
      sender.sendMessage(ChatColor.RED + "Usage: /" + label + " devoice <channel> <nick>");
      return;
    }
   
    Channel channel = plugin.bot.getChannel(args[0]);
    User user = plugin.bot.getUser(args[1]);
   
    plugin.bot.deVoice(channel, user);
   
    sender.sendMessage(ChatColor.GREEN + args[1] + " no longer has voice in " + args[0]);
  }
 
  @SubCommandHandler(parent = "irc", name = "leave")
  public void ircLeave(CommandSender sender, String label, String[] args){
    if (!Permission.LEAVE.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    for (Channel channel : plugin.bot.getChannels()){
      plugin.bot.partChannel(channel);
    }
   
    sender.sendMessage(ChatColor.GREEN + "Left all channels");
  }
 
  @SubCommandHandler(parent = "irc", name = "join")
  public void ircJoin(CommandSender sender, String label, String[] args){
    if (!Permission.JOIN.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    for (String channel : plugin.config.getStringList(Config.IRC_BOT_CHANNELS)){
      plugin.bot.joinChannel(channel);
    }
   
    sender.sendMessage(ChatColor.GREEN + "Joined all channels");
  }
 
  @SubCommandHandler(parent = "irc", name = "disconnect")
  public void ircDisconnect(CommandSender sender, String label, String[] args){
    if (!Permission.DISCONNECT.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    plugin.bot.disconnect();
   
    sender.sendMessage(ChatColor.GREEN + "Disconnected from IRC server");
  }
 
  @SubCommandHandler(parent = "irc", name = "connect")
  public void ircConnect(CommandSender sender, String label, String[] args){
    if (!Permission.CONNECT.has(sender)){
      sender.sendMessage(ChatColor.RED + "You do not have permission to use this command.");
      return;
    }
   
    plugin.bot.connect();
   
    sender.sendMessage(ChatColor.GREEN + "Connected to IRC server");
  }
 
}
TOP

Related Classes of uk.co.jacekk.bukkit.simpleirc.command.IRCCommandExecutor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.