package tv.mineinthebox.essentials.commands; import java.util.Arrays; import java.util.Date; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.enums.PermissionKey; import tv.mineinthebox.essentials.interfaces.CommandTemplate; import tv.mineinthebox.essentials.interfaces.XOfflinePlayer; import tv.mineinthebox.essentials.interfaces.XPlayer; public class CmdMute extends CommandTemplate { private final xEssentials pl; public CmdMute(xEssentials pl, Command cmd, CommandSender sender) { super(pl, cmd, sender); this.pl = pl; } @SuppressWarnings("deprecation") public boolean execute(CommandSender sender, Command cmd, String[] args) { if(cmd.getName().equalsIgnoreCase("mute")) { if(sender.hasPermission(PermissionKey.CMD_MUTE.getPermission())) { if(args.length == 0) { showHelp(); } else if(args.length == 1) { if(args[0].equalsIgnoreCase("help")) { showHelp(); } else { if(pl.getManagers().getPlayerManager().isOnline(args[0])) { XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(args[0]); Date date = new Date(System.currentTimeMillis()); date.setDate(date.getDate() + 1); xp.mute(date.getTime()); sendMessage("successfully muted player " + xp.getBukkitPlayer().getName() + " for one day!"); sendMessageTo(xp.getBukkitPlayer(),sender.getName() + " has muted you for one day!"); } else { try { XOfflinePlayer off = pl.getManagers().getPlayerManager().getOfflinePlayer(args[0]); Date date = new Date(System.currentTimeMillis()); date.setDate(date.getDate() + 1); off.mute(date.getTime()); sendMessage("successfully muted offline player " + off.getName() + " for one day!"); } catch(NullPointerException e) { getWarning(WarningType.NEVER_PLAYED_BEFORE); } } } } else { if(pl.getManagers().getPlayerManager().isOnline(args[0])) { XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(args[0]); Date date = new Date(System.currentTimeMillis()); String[] newArgs = Arrays.toString(args).replace(args[0]+",", "").replace("[", "").replace("]", "").split(","); for(int i = 0; i < newArgs.length;i++) { if(newArgs[i].length() == 2) { String TimeType = newArgs[i].substring(1); String number = newArgs[i].substring(0); if(isNumeric(number)) { int time = Integer.parseInt(number); if(TimeType.equalsIgnoreCase("D")) { date.setDate(date.getDate()+time); } else if(TimeType.equalsIgnoreCase("M")) { date.setMonth(date.getMonth()+time); } else if(TimeType.equalsIgnoreCase("Y")) { date.setYear(date.getYear()+time); } } } } xp.mute(date.getTime()); sendMessage("successfully muted player " + xp.getName() + " till " + date.toString() + "!"); sendMessageTo(xp.getBukkitPlayer(), sender.getName() + " has muted you till " + date.toString()); } else { try { XOfflinePlayer off = pl.getManagers().getPlayerManager().getOfflinePlayer(args[0]); Date date = new Date(System.currentTimeMillis()); String[] newArgs = Arrays.toString(args).replace(args[0]+",", "").replace("[", "").replace("]", "").split(","); for(int i = 0; i < newArgs.length;i++) { if(newArgs[i].length() == 2) { String TimeType = newArgs[i].substring(1); String number = newArgs[i].substring(0); if(isNumeric(number)) { int time = Integer.parseInt(number); if(TimeType.equalsIgnoreCase("D")) { date.setDate(date.getDate()+time); } else if(TimeType.equalsIgnoreCase("M")) { date.setMonth(date.getMonth()+time); } else if(TimeType.equalsIgnoreCase("Y")) { date.setYear(date.getYear()+time); } } } } off.mute(date.getTime()); sendMessage("successfully muted offline player " + off.getName() + " till " + date.toString() + "!"); } catch(NullPointerException e) { getWarning(WarningType.NEVER_PLAYED_BEFORE); } } } } else { getWarning(WarningType.NO_PERMISSION); } } return false; } @SuppressWarnings("unused") private boolean isNumeric(String number) { try { int i = Integer.parseInt(number); return true; } catch(NumberFormatException e) { return false; } } @Override public void showHelp() { sender.sendMessage(ChatColor.GOLD + ".oO___[mute help]___Oo."); sender.sendMessage(ChatColor.RED + "Admin: " + ChatColor.GRAY + "/mute help " + ChatColor.WHITE + ": shows help"); sender.sendMessage(ChatColor.RED + "Admin: " + ChatColor.GRAY + "/mute <player> " + ChatColor.WHITE + ": mutes a players for one day"); sender.sendMessage(ChatColor.RED + "Admin: " + ChatColor.GRAY + "/mute <player> <params> " + ChatColor.WHITE + ": mutes a player followed by the params"); sender.sendMessage(ChatColor.RED + "Params: " + ChatColor.GRAY + "1D, 1M, 1Y"); } }