Advertisement
thebmanswan541

HubPlugin - MainClass (Bukkit)

Sep 20th, 2014
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 51.10 KB | None | 0 0
  1. package me.thebmanswan541;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.DataOutputStream;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.List;
  8.  
  9. import me.thebmanswan541.ServerInfo.Connection;
  10.  
  11. import org.bukkit.Bukkit;
  12. import org.bukkit.ChatColor;
  13. import org.bukkit.Color;
  14. import org.bukkit.FireworkEffect;
  15. import org.bukkit.GameMode;
  16. import org.bukkit.FireworkEffect.Type;
  17. import org.bukkit.Location;
  18. import org.bukkit.Material;
  19. import org.bukkit.World;
  20. import org.bukkit.command.Command;
  21. import org.bukkit.command.CommandSender;
  22. import org.bukkit.entity.Firework;
  23. import org.bukkit.entity.Player;
  24. import org.bukkit.event.EventHandler;
  25. import org.bukkit.event.Listener;
  26. import org.bukkit.event.block.Action;
  27. import org.bukkit.event.entity.ProjectileLaunchEvent;
  28. import org.bukkit.event.inventory.InventoryClickEvent;
  29. import org.bukkit.event.player.AsyncPlayerChatEvent;
  30. import org.bukkit.event.player.PlayerInteractEvent;
  31. import org.bukkit.event.player.PlayerJoinEvent;
  32. import org.bukkit.inventory.ItemStack;
  33. import org.bukkit.inventory.meta.FireworkMeta;
  34. import org.bukkit.inventory.meta.ItemMeta;
  35. import org.bukkit.plugin.java.JavaPlugin;
  36. import org.bukkit.scheduler.BukkitRunnable;
  37. import org.bukkit.scoreboard.DisplaySlot;
  38. import org.bukkit.scoreboard.Objective;
  39. import org.bukkit.scoreboard.Score;
  40. import org.bukkit.scoreboard.Scoreboard;
  41. import org.kitteh.tag.TagAPI;
  42.  
  43. public class MainClass extends JavaPlugin implements Listener{
  44.    
  45.     // ------------------------ TAGS ------------------------------
  46.     public static String TAG = ChatColor.DARK_GRAY+"["+ChatColor.RED+"Hub"+ChatColor.YELLOW+"Plugin"+ChatColor.DARK_GRAY+"]: ";
  47.     public static String PTAG = ChatColor.BLUE+"PlayerVisibility"+ChatColor.DARK_GRAY+">> ";
  48.     public static String RTAG = ChatColor.YELLOW+"Ranks"+ChatColor.GRAY+">> ";
  49.    
  50.     // ----------------- RANK TAGS ----------------------
  51.     public static String AdminTag = ChatColor.GRAY+"["+ChatColor.RED+"Admin"+ChatColor.GRAY+"] ";
  52.     public static String ModTag = ChatColor.GRAY+"["+ChatColor.DARK_PURPLE+"Mod"+ChatColor.GRAY+"] ";
  53.     public static String HelperTag = ChatColor.GRAY+"["+ChatColor.AQUA+"Helper"+ChatColor.GRAY+"] ";
  54.    
  55.     // --------------- FOR SCOREBOARD -------------------
  56.     private Scoreboard board;
  57.     private Objective o;
  58.    
  59.     // ---------------- ITEMSTACKS ----------------------
  60.     public static ItemStack Factions;
  61.     public static ItemStack Prison;
  62.     public static ItemStack SG;
  63.     public static ItemStack Creative;
  64.     public static ItemStack Factions1;
  65.     public static ItemStack Prison1;
  66.     public static ItemStack SG1;
  67.     public static ItemStack Creative1;
  68.    
  69.     // ------------------------RANKS ---------------------------------
  70.     SettingsManager settings = SettingsManager.getInstance();
  71.    
  72.     // ---------------- COOLDOWN FOR BOW -------------------------
  73.     private HashMap<Player, Integer> cooldownTime;
  74.     private HashMap<Player, BukkitRunnable> cooldownTask;
  75.    
  76.     // ---------------- COOLDOWN FOR PLAYERVISIBILITY --------------------------
  77.     private HashMap<Player, Integer> cooldownTime1;
  78.     private HashMap<Player, BukkitRunnable> cooldownTask1;
  79.    
  80.     // ------------------- ARRAYLIST THING -----------------------
  81.     public static ArrayList<String> admin = new ArrayList<String>();
  82.     public static ArrayList<String> mod = new ArrayList<String>();
  83.     public static ArrayList<String> helper = new ArrayList<String>();
  84.     public static ArrayList<String> user = new ArrayList<String>();
  85.    
  86.    
  87.     private int num = 1;
  88.     private int num1 = 1;
  89.     private int num2 = 1;
  90.     private int num3 = 1;
  91.    
  92.     @Override
  93.     public void onEnable() {
  94.         Bukkit.getServer().getPluginManager().registerEvents(this, this);
  95.         Bukkit.getServer().getPluginManager().registerEvents(new JoinListener(), this);
  96.         Bukkit.getServer().getPluginManager().registerEvents(new RestricListener(), this);
  97.        
  98.         getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
  99.        
  100.         board = Bukkit.getServer().getScoreboardManager().getNewScoreboard();
  101.        
  102.         cooldownTime = new HashMap<Player, Integer>();
  103.         cooldownTask = new HashMap<Player, BukkitRunnable>();
  104.        
  105.         cooldownTime1 = new HashMap<Player, Integer>();
  106.         cooldownTask1 = new HashMap<Player, BukkitRunnable>();
  107.        
  108.         o = board.registerNewObjective("servers", "dummy");
  109.        
  110.         o.setDisplayName(ChatColor.BOLD+"Servers");
  111.         o.setDisplaySlot(DisplaySlot.SIDEBAR);
  112.        
  113.         // ------------------------- RANKS --------------------------------
  114.         settings.setup(this);
  115.        
  116.        
  117.         // ------------------ SCOREBOARD AUTORELOAD ------------------------
  118.         Score hub = o.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.BOLD+">> "+ChatColor.GREEN+""+ChatColor.BOLD+"Hub"));
  119.         Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  120.             public void run() {
  121.                 hub.setScore(Bukkit.getServer().getOnlinePlayers().length);
  122.             }
  123.         }, 20, 1);
  124.        
  125.         Score factions = o.getScore(Bukkit.getServer().getOfflinePlayer(">> "+ChatColor.AQUA+"Factions"));
  126.         ServerInfo factionsserver = new ServerInfo("0.0.0.0", 25567);
  127.         Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  128.             public void run() {
  129.                 factions.setScore(factionsserver.parseData(Connection.PLAYERS_ONLINE));
  130.             }
  131.         }, 20, 1);
  132.        
  133.         Score prison = o.getScore(Bukkit.getServer().getOfflinePlayer(">> "+ChatColor.GRAY+"Prison"));
  134.         ServerInfo prisonserver = new ServerInfo("0.0.0.0", 25568);
  135.         Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  136.             public void run() {
  137.                 prison.setScore(prisonserver.parseData(Connection.PLAYERS_ONLINE));
  138.             }
  139.         }, 20, 1);
  140.        
  141.         Score survivalgames = o.getScore(Bukkit.getServer().getOfflinePlayer(">> "+ChatColor.YELLOW+"S-G"));
  142.         ServerInfo sgserver = new ServerInfo("0.0.0.0", 25569);
  143.         Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  144.             public void run() {
  145.                 survivalgames.setScore(sgserver.parseData(Connection.PLAYERS_ONLINE));
  146.             }
  147.         }, 20, 1);
  148.        
  149.         Score creative = o.getScore(Bukkit.getServer().getOfflinePlayer(">> "+ChatColor.GOLD+"Creative"));
  150.         ServerInfo creativeserver = new ServerInfo("0.0.0.0", 25560);
  151.         Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  152.             public void run() {
  153.                 creative.setScore(creativeserver.parseData(Connection.PLAYERS_ONLINE));
  154.             }
  155.         }, 20, 1);
  156.        
  157.        
  158.         // ---------------- SERVER STATUS AUTORELOAD -------------------------
  159.             Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  160.                 public void run() {
  161.                     if (num == 1) {
  162.                     Factions = new ItemStack(Material.DIAMOND); {
  163.                     ItemMeta FactionsMeta = Factions.getItemMeta();
  164.                     FactionsMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.AQUA+"Factions");
  165.                     ArrayList<String> FactionsLore = new ArrayList<String>();
  166.                     FactionsLore.add("");
  167.                     FactionsLore.add(ChatColor.GREEN+"  >"+ChatColor.YELLOW+"Click to play!");
  168.                     FactionsLore.add("");
  169.                     FactionsLore.add(ChatColor.WHITE+"Status"+ChatColor.YELLOW+": "+factionsserver.parseData2(Connection.ONLINE));
  170.                     FactionsLore.add(ChatColor.WHITE+"Players"+ChatColor.YELLOW+": "+ChatColor.GREEN+factionsserver.parseData1(Connection.PLAYERS_FRACTION));
  171.                     FactionsMeta.setLore(FactionsLore);
  172.                     Factions.setItemMeta(FactionsMeta);
  173.                     JoinListener.TPMenuGui.setItem(9, Factions);
  174.                     num++;
  175.                     }
  176.                 }else if (num == 2) {
  177.                     Factions1 = new ItemStack(Material.DIAMOND); {
  178.                     ItemMeta FactionsMeta = Factions1.getItemMeta();
  179.                     FactionsMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.AQUA+"Factions");
  180.                     ArrayList<String> FactionsLore = new ArrayList<String>();
  181.                     FactionsLore.add("");
  182.                     FactionsLore.add(ChatColor.YELLOW+"  Click to play!");
  183.                     FactionsLore.add("");
  184.                     FactionsLore.add(ChatColor.WHITE+"Status"+ChatColor.YELLOW+": "+factionsserver.parseData2(Connection.ONLINE));
  185.                     FactionsLore.add(ChatColor.WHITE+"Players"+ChatColor.YELLOW+": "+ChatColor.GREEN+factionsserver.parseData1(Connection.PLAYERS_FRACTION));
  186.                     FactionsMeta.setLore(FactionsLore);
  187.                     Factions1.setItemMeta(FactionsMeta);
  188.                     JoinListener.TPMenuGui.setItem(9, Factions1);
  189.                     num = 1;                   
  190.                   }
  191.                  }
  192.                 }
  193.             }, 1, 7);
  194.             Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  195.                 public void run() {
  196.                     if (num1 == 1) {
  197.                     Prison = new ItemStack(Material.IRON_FENCE); {
  198.                     ItemMeta PrisonMeta = Prison.getItemMeta();
  199.                     PrisonMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.GRAY+"Prison");
  200.                     ArrayList<String> PrisonLore = new ArrayList<String>();
  201.                     PrisonLore.add("");
  202.                     PrisonLore.add(ChatColor.GREEN+" >"+ChatColor.YELLOW+"Click to play!");
  203.                     PrisonLore.add("");
  204.                     PrisonLore.add(ChatColor.WHITE+"Status"+ChatColor.YELLOW+": "+prisonserver.parseData2(Connection.ONLINE));
  205.                     PrisonLore.add(ChatColor.WHITE+"Players"+ChatColor.YELLOW+": "+ChatColor.GREEN+prisonserver.parseData1(Connection.PLAYERS_FRACTION));
  206.                     PrisonMeta.setLore(PrisonLore);
  207.                     Prison.setItemMeta(PrisonMeta);
  208.                     JoinListener.TPMenuGui.setItem(11, Prison);
  209.                     num1++;
  210.                     }
  211.                 }else if (num1 == 2) {
  212.                     Prison1 = new ItemStack(Material.IRON_FENCE); {
  213.                         ItemMeta PrisonMeta = Prison1.getItemMeta();
  214.                         PrisonMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.GRAY+"Prison");
  215.                         ArrayList<String> PrisonLore = new ArrayList<String>();
  216.                         PrisonLore.add("");
  217.                         PrisonLore.add(ChatColor.WHITE+" "+ChatColor.YELLOW+"Click to play!");
  218.                         PrisonLore.add("");
  219.                         PrisonLore.add(ChatColor.WHITE+"Status"+ChatColor.YELLOW+": "+prisonserver.parseData2(Connection.ONLINE));
  220.                         PrisonLore.add(ChatColor.WHITE+"Players"+ChatColor.YELLOW+": "+ChatColor.GREEN+prisonserver.parseData1(Connection.PLAYERS_FRACTION));
  221.                         PrisonMeta.setLore(PrisonLore);
  222.                         Prison1.setItemMeta(PrisonMeta);
  223.                         JoinListener.TPMenuGui.setItem(11, Prison1);
  224.                         num1 = 1;
  225.                 }
  226.                 }
  227.                 }
  228.             }, 1, 7);
  229.             Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  230.                 public void run() {
  231.                     if (num2 == 1) {
  232.                     SG = new ItemStack(Material.IRON_SWORD); {
  233.                     ItemMeta SGMeta = SG.getItemMeta();
  234.                     SGMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.YELLOW+"Survival Games");
  235.                     ArrayList<String> SGLore = new ArrayList<String>();
  236.                     SGLore.add("");
  237.                     SGLore.add(ChatColor.GREEN+"  >"+ChatColor.YELLOW+"Click to play!");
  238.                     SGLore.add("");
  239.                     SGLore.add(ChatColor.WHITE+"Status"+ChatColor.YELLOW+": "+sgserver.parseData2(Connection.ONLINE));
  240.                     SGLore.add(ChatColor.WHITE+"Players"+ChatColor.YELLOW+": "+ChatColor.GREEN+sgserver.parseData1(Connection.PLAYERS_FRACTION));
  241.                     SGMeta.setLore(SGLore);
  242.                     SG.setItemMeta(SGMeta);
  243.                     JoinListener.TPMenuGui.setItem(15, SG);
  244.                     num2++;
  245.                     }
  246.                 }else if (num2 == 2){
  247.                     SG1 = new ItemStack(Material.IRON_SWORD); {
  248.                         ItemMeta SGMeta = SG1.getItemMeta();
  249.                         SGMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.YELLOW+"Survival Games");
  250.                         ArrayList<String> SGLore = new ArrayList<String>();
  251.                         SGLore.add("");
  252.                         SGLore.add("  "+ChatColor.YELLOW+"Click to play!");
  253.                         SGLore.add("");
  254.                         SGLore.add(ChatColor.WHITE+"Status"+ChatColor.YELLOW+": "+sgserver.parseData2(Connection.ONLINE));
  255.                         SGLore.add(ChatColor.WHITE+"Players"+ChatColor.YELLOW+": "+ChatColor.GREEN+sgserver.parseData1(Connection.PLAYERS_FRACTION));
  256.                         SGMeta.setLore(SGLore);
  257.                         SG1.setItemMeta(SGMeta);
  258.                         JoinListener.TPMenuGui.setItem(15, SG1);
  259.                         num2 = 1;                  
  260.                 }
  261.                 }
  262.                 }
  263.             }, 1, 7);
  264.         Creative = new ItemStack(Material.WORKBENCH); {
  265.             ItemMeta CreativeMeta = Creative.getItemMeta();
  266.             CreativeMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.GOLD+"Creative");
  267.             Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  268.                 public void run() {
  269.                     if (num3 == 1){
  270.                     Creative = new ItemStack(Material.WORKBENCH); {
  271.                     ItemMeta CreativeMeta = Creative.getItemMeta();
  272.                     CreativeMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.GOLD+"Creative");
  273.                     ArrayList<String> CreativeLore = new ArrayList<String>();
  274.                     CreativeLore.add("");
  275.                     CreativeLore.add(ChatColor.GREEN+"  >"+ChatColor.YELLOW+"Click to play!");
  276.                     CreativeLore.add("");
  277.                     CreativeLore.add(ChatColor.WHITE+"Status"+ChatColor.YELLOW+": "+creativeserver.parseData2(Connection.ONLINE));
  278.                     CreativeLore.add(ChatColor.WHITE+"Players"+ChatColor.YELLOW+": "+ChatColor.GREEN+creativeserver.parseData1(Connection.PLAYERS_FRACTION));
  279.                     CreativeMeta.setLore(CreativeLore);
  280.                     Creative.setItemMeta(CreativeMeta);
  281.                     JoinListener.TPMenuGui.setItem(17, Creative);
  282.                     num3++;
  283.                     }
  284.                     }else if (num3 == 2){
  285.                         Creative1 = new ItemStack(Material.WORKBENCH); {
  286.                             ItemMeta CreativeMeta = Creative1.getItemMeta();
  287.                             CreativeMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.GOLD+"Creative");
  288.                             ArrayList<String> CreativeLore = new ArrayList<String>();
  289.                             CreativeLore.add("");
  290.                             CreativeLore.add(ChatColor.WHITE+"  "+ChatColor.YELLOW+"Click to play!");
  291.                             CreativeLore.add("");
  292.                             CreativeLore.add(ChatColor.WHITE+"Status"+ChatColor.YELLOW+": "+creativeserver.parseData2(Connection.ONLINE));
  293.                             CreativeLore.add(ChatColor.WHITE+"Players"+ChatColor.YELLOW+": "+ChatColor.GREEN+creativeserver.parseData1(Connection.PLAYERS_FRACTION));
  294.                             CreativeMeta.setLore(CreativeLore);
  295.                             Creative1.setItemMeta(CreativeMeta);
  296.                             JoinListener.TPMenuGui.setItem(17, Creative1);
  297.                             num3 = 1;
  298.                             }
  299.                             }
  300.                 }
  301.             }, 1, 7);
  302.         }
  303.         }
  304.    
  305.      public void sendToServer(Player p, String targetserver) {
  306.             ByteArrayOutputStream b = new ByteArrayOutputStream();
  307.             DataOutputStream out = new DataOutputStream(b);
  308.             try {
  309.                 out.writeUTF("Connect");
  310.                 out.writeUTF(targetserver);
  311.             }catch(Exception e) {
  312.                 e.printStackTrace();
  313.             }
  314.             p.sendPluginMessage(this, "BungeeCord", b.toByteArray());
  315.          }
  316.  
  317.    
  318.      
  319.      
  320.      // ----------------------------------- COMMANDS -----------------------------------------------
  321.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  322.         if (!(sender instanceof Player)) {
  323.             sender.sendMessage(ChatColor.RED+"Only players can execute commands!");
  324.             return true;
  325.         }
  326.         Player p = (Player) sender;
  327.         List<String> admins = settings.getAdmins().getStringList("Admins");
  328.         List<String> mods = settings.getMods().getStringList("Mods");
  329.         List<String> helpers = settings.getHelpers().getStringList("Helpers");
  330.         List<String> muted = settings.getMuted().getStringList("Muted");
  331.         List<String> banned = settings.getBanned().getStringList("Banned");
  332.        
  333.         // ------------------- RELOADS ADMIN CONFIG ------------------------
  334.         if (label.equalsIgnoreCase("reloadadmins")) {
  335.             if (!(admins.contains(p.getName()))) {
  336.                 p.sendMessage(RTAG+ChatColor.RED+"You don't have permission to do this.");
  337.             }else{
  338.             settings.reloadAdmins();
  339.             p.sendMessage(RTAG+ChatColor.GREEN+"Admins file reloaded!");
  340.             return true;
  341.           }
  342.         }
  343.        
  344.         // ------------------- RELOADS MOD CONFIG ------------------------
  345.         if (label.equalsIgnoreCase("reloadmods")) {
  346.             if (!(admins.contains(p.getName()))) {
  347.                 p.sendMessage(RTAG+ChatColor.RED+"You don't have permission to do this.");
  348.             }else{
  349.             settings.reloadMods();
  350.             p.sendMessage(RTAG+ChatColor.GREEN+"Mods file reloaded!");
  351.             return true;
  352.           }
  353.         }
  354.        
  355.         // ------------------- RELOADS HELPER CONFIG ------------------------
  356.         if (label.equalsIgnoreCase("reloadhelpers")) {
  357.             if (!(admins.contains(p.getName()))) {
  358.                 p.sendMessage(RTAG+ChatColor.RED+"You don't have permission to do this.");
  359.             }else{
  360.             settings.reloadHelpers();
  361.             p.sendMessage(RTAG+ChatColor.GREEN+"Helpers file reloaded!");
  362.           }
  363.         }
  364.         // ---------------------------- ADMIN COMMAND ------------------------------------
  365.         if (label.equalsIgnoreCase("admin")) {
  366.             if (!(admins.contains(p.getName()))) {
  367.                 p.sendMessage(RTAG+ChatColor.RED+"You don't have permission to do this.");
  368.             }else{
  369.             if (args.length == 0) {
  370.                 p.sendMessage(RTAG+ChatColor.RED+"Please specify a player.");
  371.                 return true;
  372.             }
  373.             Player target = Bukkit.getServer().getPlayer(args[0]);
  374.             if (args.length == 1) {
  375.             if (!(target.isOnline())) {
  376.                 p.sendMessage(RTAG+ChatColor.RED+args[0]+" is currently not online.");
  377.                 return true;
  378.             }
  379.             if (settings.getAdmins().getStringList("Admins").contains(target.getName())) {
  380.                 p.sendMessage(RTAG+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+" is already an "+ChatColor.GRAY+"["+ChatColor.RED+"Admin"+ChatColor.GRAY+"]"+ChatColor.WHITE+".");
  381.                 return true;
  382.             }
  383.             if (helpers.contains(target.getName())) {
  384.                 helpers.remove(target.getName());
  385.                 settings.getHelpers().set("Helpers", helpers);
  386.                 settings.saveHelpers();
  387.                 admins.add(target.getName());
  388.                 settings.getAdmins().set("Admins", admins);
  389.                 settings.saveAdmins();
  390.                 target.sendMessage(RTAG+ChatColor.WHITE+"Congrats, you were promoted to "+AdminTag+ChatColor.WHITE+"by "+AdminTag+ChatColor.RED+p.getName()+ChatColor.WHITE+"!");
  391.                 Bukkit.getServer().broadcastMessage(RTAG+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+" was promoted to "+ChatColor.GRAY+"["+ChatColor.RED+"Admin"+ChatColor.GRAY+"]"+ChatColor.WHITE+"!");
  392.                 TagAPI.refreshPlayer(target);
  393.                 return true;
  394.             }
  395.             if (mods.contains(target.getName())) {
  396.                 mods.remove(target.getName());
  397.                 settings.getMods().set("Mods", mods);
  398.                 settings.saveMods();
  399.                 admins.add(target.getName());
  400.                 settings.getAdmins().set("Admins", admins);
  401.                 settings.saveAdmins();
  402.                 target.sendMessage(RTAG+ChatColor.WHITE+"Congrats, you were promoted to "+AdminTag+ChatColor.WHITE+"by "+AdminTag+ChatColor.RED+p.getName()+ChatColor.WHITE+"!");
  403.                 Bukkit.getServer().broadcastMessage(RTAG+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+" was promoted to "+ChatColor.GRAY+"["+ChatColor.RED+"Admin"+ChatColor.GRAY+"]"+ChatColor.WHITE+"!");
  404.                 TagAPI.refreshPlayer(target);
  405.                 return true;
  406.             }
  407.                 admins.add(target.getName());
  408.                 settings.getAdmins().set("Admins", admins);
  409.                 settings.saveAdmins();
  410.                 target.sendMessage(RTAG+ChatColor.WHITE+"Congrats, you were promoted to "+AdminTag+ChatColor.WHITE+"by "+AdminTag+ChatColor.RED+p.getName()+ChatColor.WHITE+"!");
  411.                 Bukkit.getServer().broadcastMessage(RTAG+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+" was promoted to "+ChatColor.GRAY+"["+ChatColor.RED+"Admin"+ChatColor.GRAY+"]"+ChatColor.WHITE+"!");
  412.                 TagAPI.refreshPlayer(target);
  413.                 return true;
  414.             }
  415.           }
  416.         }
  417.        
  418.         // ---------------------------- MOD COMMAND ------------------------------------
  419.         if (label.equalsIgnoreCase("mod")) {
  420.             if (!(admins.contains(p.getName()))) {
  421.                 p.sendMessage(RTAG+ChatColor.RED+"You don't have permission to do this.");
  422.             }else{
  423.             if (args.length == 0) {
  424.                 p.sendMessage(RTAG+ChatColor.RED+"Please specify a player.");
  425.                 return true;
  426.             }
  427.             Player target = Bukkit.getServer().getPlayer(args[0]);
  428.             if (args.length == 1) {
  429.             if (!(target.isOnline())) {
  430.                 p.sendMessage(RTAG+ChatColor.RED+args[0]+" is currently not online.");
  431.                 return true;
  432.             }
  433.             if (settings.getMods().getStringList("Mods").contains(target.getName())) {
  434.                 p.sendMessage(RTAG+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+" is already a "+ChatColor.GRAY+"["+ChatColor.DARK_PURPLE+"Mod"+ChatColor.GRAY+"]"+ChatColor.WHITE+".");
  435.                 return true;
  436.             }
  437.             if (helpers.contains(target.getName())) {
  438.                 helpers.remove(target.getName());
  439.                 settings.getHelpers().set("Helpers", helpers);
  440.                 settings.saveHelpers();
  441.                 mods.add(target.getName());
  442.                 settings.getMods().set("Mods", mods);
  443.                 settings.saveMods();
  444.                 target.sendMessage(RTAG+ChatColor.WHITE+"Congrats, you were promoted to "+ModTag+ChatColor.WHITE+"by "+AdminTag+ChatColor.RED+p.getName()+ChatColor.WHITE+"!");
  445.                 Bukkit.getServer().broadcastMessage(RTAG+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+" was promoted to "+ChatColor.GRAY+"["+ChatColor.DARK_PURPLE+"Mod"+ChatColor.GRAY+"]"+ChatColor.WHITE+"!");
  446.                 TagAPI.refreshPlayer(target);
  447.                 return true;
  448.             }
  449.             if (admins.contains(target.getName())) {
  450.                 admins.remove(target.getName());
  451.                 settings.getAdmins().set("Admins", admins);
  452.                 settings.saveAdmins();
  453.                 mods.add(target.getName());
  454.                 settings.getMods().set("Mods", mods);
  455.                 settings.saveMods();
  456.                 target.sendMessage(RTAG+ChatColor.WHITE+"You were demoted to "+ChatColor.GRAY+"["+ChatColor.DARK_PURPLE+"Mod"+ChatColor.GRAY+"]"+ChatColor.WHITE+".");
  457.                 p.sendMessage(RTAG+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+" was demoted to "+ChatColor.GRAY+"["+ChatColor.DARK_PURPLE+"Mod"+ChatColor.GRAY+"]"+ChatColor.WHITE+".");
  458.                 TagAPI.refreshPlayer(target);
  459.                 return true;
  460.             }
  461.                 mods.add(target.getName());
  462.                 settings.getMods().set("Mods", mods);
  463.                 settings.saveMods();
  464.                 target.sendMessage(RTAG+ChatColor.WHITE+"Congrats, you were promoted to "+ModTag+ChatColor.WHITE+"by "+AdminTag+ChatColor.RED+p.getName()+ChatColor.WHITE+"!");
  465.                 Bukkit.getServer().broadcastMessage(RTAG+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+" was promoted to "+ChatColor.GRAY+"["+ChatColor.DARK_PURPLE+"Mod"+ChatColor.GRAY+"]"+ChatColor.WHITE+"!");
  466.                 TagAPI.refreshPlayer(target);
  467.                 return true;
  468.             }
  469.           }
  470.         }
  471.        
  472.         // ---------------------------- HELPER COMMAND ------------------------------------
  473.         if (label.equalsIgnoreCase("helper")) {
  474.             if (!(admins.contains(p.getName()))) {
  475.                 p.sendMessage(RTAG+ChatColor.RED+"You don't have permission to do this.");
  476.             }else{
  477.             if (args.length == 0) {
  478.                 p.sendMessage(RTAG+ChatColor.RED+"Please specify a player.");
  479.                 return true;
  480.             }
  481.             Player target = Bukkit.getServer().getPlayer(args[0]);
  482.             if (args.length == 1) {
  483.             if (!(target.isOnline())) {
  484.                 p.sendMessage(RTAG+ChatColor.RED+args[0]+" is currently not online.");
  485.                 return true;
  486.             }
  487.             if (settings.getHelpers().getStringList("Helpers").contains(target.getName())) {
  488.                 p.sendMessage(RTAG+HelperTag+ChatColor.BLUE+target.getName()+ChatColor.WHITE+" is already an "+ChatColor.GRAY+"["+ChatColor.AQUA+"Helper"+ChatColor.GRAY+"]"+ChatColor.WHITE+".");
  489.                 return true;
  490.             }
  491.             if (mods.contains(target.getName())) {
  492.                 mods.remove(target.getName());
  493.                 settings.getMods().set("Mods", mods);
  494.                 settings.saveMods();
  495.                 helpers.add(target.getName());
  496.                 settings.getHelpers().set("Helpers", helpers);
  497.                 settings.saveHelpers();
  498.                 target.sendMessage(RTAG+ChatColor.WHITE+"You were demoted to "+ChatColor.GRAY+"["+ChatColor.AQUA+"Helper"+ChatColor.GRAY+"]"+ChatColor.WHITE+".");
  499.                 p.sendMessage(RTAG+HelperTag+ChatColor.BLUE+target.getName()+ChatColor.WHITE+" was demoted to "+ChatColor.GRAY+"["+ChatColor.AQUA+"Helper"+ChatColor.GRAY+"]"+ChatColor.WHITE+".");
  500.                 TagAPI.refreshPlayer(target);
  501.                 return true;
  502.             }
  503.             if (admins.contains(target.getName())) {
  504.                 admins.remove(target.getName());
  505.                 settings.getAdmins().set("Admins", admins);
  506.                 settings.saveAdmins();
  507.                 helpers.add(target.getName());
  508.                 settings.getHelpers().set("Helpers", helpers);
  509.                 settings.saveHelpers();
  510.                 target.sendMessage(RTAG+ChatColor.WHITE+"You were demoted to "+ChatColor.GRAY+"["+ChatColor.AQUA+"Helper"+ChatColor.GRAY+"]"+ChatColor.WHITE+".");
  511.                 p.sendMessage(RTAG+HelperTag+ChatColor.BLUE+target.getName()+ChatColor.WHITE+" was demoted to "+ChatColor.GRAY+"["+ChatColor.AQUA+"Helper"+ChatColor.GRAY+"]"+ChatColor.WHITE+".");
  512.                 TagAPI.refreshPlayer(target);
  513.                 return true;
  514.             }
  515.                 helpers.add(target.getName());
  516.                 settings.getHelpers().set("Helpers", helpers);
  517.                 settings.saveHelpers();
  518.                 target.sendMessage(RTAG+ChatColor.WHITE+"Congrats, you were promoted to "+HelperTag+ChatColor.WHITE+"by "+AdminTag+ChatColor.RED+p.getName()+ChatColor.WHITE+"!"); 
  519.                 p.sendMessage(RTAG+HelperTag+ChatColor.BLUE+target.getName()+ChatColor.WHITE+" was promoted to "+ChatColor.GRAY+"["+ChatColor.AQUA+"Helper"+ChatColor.GRAY+"]"+ChatColor.WHITE+"!");
  520.                 TagAPI.refreshPlayer(target);
  521.                 return true;
  522.                }
  523.             }
  524.         }
  525.        
  526.         // ------------------------------------------- DEMOTE COMMAND -----------------------------------------------------
  527.         if (label.equalsIgnoreCase("demote")) {
  528.             if (!(admins.contains(p.getName()))) {
  529.                 p.sendMessage(RTAG+ChatColor.RED+"You don't have permission to do this.");
  530.             }else{
  531.             if (args.length == 0) {
  532.                 p.sendMessage(RTAG+ChatColor.RED+"Please specify a staff member.");
  533.             }
  534.             Player target = Bukkit.getServer().getPlayer(args[0]);
  535.             if (args.length == 1) {
  536.             if (target.isOnline()) {
  537.                 if (!(admins.contains(target.getName()) || mods.contains(target.getName()) || helpers.contains(target.getName()))) {
  538.                     p.sendMessage(RTAG+ChatColor.GRAY+target.getName()+ChatColor.WHITE+" is already a default player!");
  539.                 }
  540.                 else if (admins.contains(target.getName())) {
  541.                        admins.remove(target.getName());
  542.                        settings.getAdmins().set("Admins", admins);
  543.                        settings.saveAdmins();
  544.                         TagAPI.refreshPlayer(target);
  545.                        p.sendMessage(RTAG+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+" was demoted.");
  546.                 }
  547.                 else if (mods.contains(target.getName())) {
  548.                     mods.remove(target.getName());
  549.                     settings.getMods().set("Mods", mods);
  550.                     settings.saveMods();
  551.                     TagAPI.refreshPlayer(target);
  552.                     p.sendMessage(RTAG+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+" was demoted.");
  553.                 }
  554.                 else if (helpers.contains(target.getName())) {
  555.                     helpers.remove(target.getName());
  556.                     settings.getHelpers().set("Helpers", helpers);
  557.                     settings.saveHelpers();
  558.                     TagAPI.refreshPlayer(target);
  559.                     p.sendMessage(RTAG+HelperTag+ChatColor.BLUE+target.getName()+ChatColor.WHITE+" was demoted.");
  560.                 }
  561.             }
  562.             }
  563.             return true;
  564.           }
  565.         }
  566.        
  567.         // ---------------- SETS THE HUB --------------------
  568.         if (cmd.getName().equalsIgnoreCase("sethub")) {
  569.             if (admins.contains(p.getName())) {
  570.             if (args.length == 0) {
  571.             getConfig().set("spawn.world", p.getWorld().getName());
  572.             getConfig().set("spawn.x", p.getLocation().getX());
  573.             getConfig().set("spawn.y", p.getLocation().getY());
  574.             getConfig().set("spawn.z", p.getLocation().getZ());
  575.             saveConfig();
  576.             p.sendMessage(MainClass.TAG+ChatColor.GREEN+"Hub spawn location set!");
  577.             return true;
  578.         }
  579.             }else{
  580.                 p.sendMessage(MainClass.TAG+ChatColor.RED+"You don't have permission to do this.");
  581.             }
  582.         }
  583.        
  584.         // ------------------------- TELEPORTS TO HUB -----------------------------------
  585.         if (cmd.getName().equalsIgnoreCase("hub")) {
  586.             World w = Bukkit.getServer().getWorld(getConfig().getString("spawn.world"));
  587.             double x = getConfig().getDouble("spawn.x");
  588.             double y = getConfig().getDouble("spawn.y");
  589.             double z = getConfig().getDouble("spawn.z");
  590.             p.sendMessage(MainClass.TAG+ChatColor.GREEN+"Teleporting back to hub...");
  591.             p.teleport(new Location(w, x, y, z));
  592.             return true;
  593.         } else if (Bukkit.getServer().getWorld(getConfig().getString("spawn.world")) == null) {
  594.             p.sendMessage(MainClass.TAG+ChatColor.RED+"The hub has not yet been set!");
  595.         }
  596.        
  597.         // ------------------------------ SENDS PLAYER TO A SERVER ------------------------------------------
  598.         if (label.equalsIgnoreCase("sendplayer")) {
  599.             if (admins.contains(p.getName())) {
  600.             if (args.length == 0) {
  601.                 p.sendMessage(ChatColor.RED+"Incorrect arguments! "+ChatColor.GOLD+"/"+ChatColor.YELLOW+"sendplayer "+ChatColor.GOLD+"<"+ChatColor.YELLOW+"Player"+ChatColor.GOLD+"> "+ChatColor.GOLD+"<"+ChatColor.YELLOW+"Server"+ChatColor.GOLD+">");
  602.             }else if (args.length == 1) {
  603.                 p.sendMessage(ChatColor.RED+"Incorrect arguments! "+ChatColor.GOLD+"/"+ChatColor.YELLOW+"sendplayer "+ChatColor.GOLD+"<"+ChatColor.YELLOW+"Player"+ChatColor.GOLD+"> "+ChatColor.GOLD+"<"+ChatColor.YELLOW+"Server"+ChatColor.GOLD+">");
  604.             }else if (args.length == 2) {
  605.                 Player target = Bukkit.getServer().getPlayer(args[0]);
  606.                 if (target == null) {
  607.                     p.sendMessage(ChatColor.RED+"Player "+args[0]+" does not exist!");
  608.                 }
  609.                 sendToServer(target, args[1]);
  610.                 return true;
  611.               }
  612.             }else{
  613.                 p.sendMessage(MainClass.TAG+ChatColor.RED+"You don't have permission to do this.");
  614.                 return true;
  615.             }
  616.         }
  617.        
  618.         // --------------------------------- KICKS A PLAYER ---------------------------------------------
  619.         if (label.equalsIgnoreCase("kick")) {
  620.             if (!(admins.contains(p.getName()) || mods.contains(p.getName()) || helpers.contains(p.getName()))) {
  621.                 p.sendMessage(MainClass.TAG+ChatColor.RED+"You don't have permission to do this.");
  622.             }else{
  623.                 if (args.length == 0) {
  624.                     p.sendMessage(ChatColor.RED+"Please specify a player!");
  625.                 }
  626.                 if (args.length == 1) {
  627.                     Player target = Bukkit.getServer().getPlayer(args[0]);
  628.                     if (!(target.isOnline())) {
  629.                         p.sendMessage(ChatColor.RED+"Player "+args[0]+" could not be found!");
  630.                     }
  631.                     target.kickPlayer(ChatColor.YELLOW+"You were kicked by "+p.getName()+"!");
  632.                     Bukkit.getServer().broadcastMessage(ChatColor.RED+p.getName()+ChatColor.YELLOW+" kicked "+target.getName()+" from the server!");
  633.                     return true;
  634.                 }
  635.             }
  636.         }
  637.        
  638.         // --------------------------------------- MUTES A PLAYER -----------------------------------------
  639.         if (label.equalsIgnoreCase("mute")) {
  640.             if (!(admins.contains(p.getName()) || mods.contains(p.getName()))) {
  641.                 p.sendMessage(TAG+ChatColor.RED+"You don't have permission to do this.");
  642.             }else{
  643.                 if (args.length == 0) {
  644.                     p.sendMessage(ChatColor.RED+"Please specify a player!");
  645.                 }
  646.                 if (args.length == 1) {
  647.                     Player target = Bukkit.getServer().getPlayer(args[0]);
  648.                     if (!(target.isOnline())) {
  649.                         p.sendMessage(ChatColor.RED+"Player "+args[0]+" could not be found!");
  650.                     }
  651.                     if (admins.contains(target.getName()) || mods.contains(target.getName())) {
  652.                         p.sendMessage(TAG+ChatColor.RED+"You may not mute this player!");
  653.                         return true;
  654.                     }
  655.                     muted.add(target.getName());
  656.                     settings.getMuted().set("Muted", muted);
  657.                     settings.saveMuted();
  658.                     target.sendMessage(TAG+ChatColor.RED+"You have been muted!");
  659.                     if (helpers.contains(target.getName())) {
  660.                         p.sendMessage(TAG+HelperTag+ChatColor.BLUE+target.getName()+ChatColor.WHITE+" has been muted!");
  661.                         return true;
  662.                     }
  663.                     p.sendMessage(TAG+ChatColor.GRAY+target.getName()+ChatColor.WHITE+" has been muted!");
  664.                     return true;
  665.                 }
  666.             }
  667.         }
  668.        
  669.         // --------------------------------------- UNMUTES A PLAYER -----------------------------------------
  670.         if (label.equalsIgnoreCase("unmute")) {
  671.             if (!(admins.contains(p.getName()) || mods.contains(p.getName()))) {
  672.                 p.sendMessage(TAG+ChatColor.RED+"You don't have permission to do this.");
  673.             }else{
  674.                 if (args.length == 0) {
  675.                     p.sendMessage(ChatColor.RED+"Please specify a player!");
  676.                 }
  677.                 if (args.length == 1) {
  678.                     Player target = Bukkit.getServer().getPlayer(args[0]);
  679.                     if (!(target.isOnline())) {
  680.                         p.sendMessage(ChatColor.RED+"Player "+args[0]+" could not be found!");
  681.                     }
  682.                     if (!muted.contains(target.getName())) {
  683.                         if (helpers.contains(target.getName())) {
  684.                             p.sendMessage(HelperTag+target.getName()+ChatColor.RED+" isn't muted!");
  685.                         }else{
  686.                             p.sendMessage(ChatColor.GRAY+target.getName()+ChatColor.RED+" isn't muted!");
  687.                         }
  688.                     }
  689.                     muted.remove(target.getName());
  690.                     settings.getMuted().set("Muted", muted);
  691.                     settings.saveMuted();
  692.                     target.sendMessage(TAG+ChatColor.WHITE+"You have been unmuted!");
  693.                     if (helpers.contains(target.getName())) {
  694.                         p.sendMessage(TAG+HelperTag+ChatColor.BLUE+target.getName()+ChatColor.WHITE+" has been unmuted!");
  695.                         return true;
  696.                     }
  697.                     p.sendMessage(TAG+ChatColor.GRAY+target.getName()+ChatColor.WHITE+" has been unmuted!");
  698.                     return true;
  699.                 }
  700.             }
  701.         }
  702.        
  703.         // --------------------------------------- BANS A PLAYER -----------------------------------------
  704.         if (label.equalsIgnoreCase("ban")) {
  705.             if (!(admins.contains(p.getName()) || mods.contains(p.getName()))) {
  706.                 p.sendMessage(TAG+ChatColor.RED+"You don't have permission to do this.");
  707.             }else{
  708.                 if (args.length == 0) {
  709.                     p.sendMessage(ChatColor.RED+"Please specify a player.");
  710.                 }
  711.                 if (args.length == 1) {
  712.                     Player target = Bukkit.getServer().getPlayer(args[0]);
  713.                     if (!(target.isOnline())) {
  714.                         p.sendMessage(ChatColor.RED+"Player "+args[0]+" could not be found!");
  715.                     }
  716.                     if (admins.contains(target.getName()) || mods.contains(target.getName()) || helpers.contains(target.getName())) {
  717.                         p.sendMessage(TAG+ChatColor.RED+"You may not ban this player!");
  718.                         return true;
  719.                     }
  720.                     banned.add(target.getName());
  721.                     settings.getBanned().set("Banned", banned);
  722.                     settings.saveBanned();
  723.                     target.kickPlayer(ChatColor.YELLOW+"You were kicked from the server! Reason: "+ChatColor.RED+"Banned.");
  724.                     p.sendMessage(TAG+ChatColor.YELLOW+"You successfully banned "+ChatColor.GRAY+target.getName()+ChatColor.YELLOW+"!");
  725.                     return true;
  726.                 }
  727.             }
  728.             return true;
  729.         }
  730.        
  731.         // --------------------------------------- UNBANS A PLAYER -----------------------------------------
  732.         if (label.equalsIgnoreCase("unban")) {
  733.             if (!(admins.contains(p.getName()) || mods.contains(p.getName()))) {
  734.                 p.sendMessage(TAG+ChatColor.RED+"You don't have permission to do this.");
  735.             }else{
  736.                 if (args.length == 0) {
  737.                     p.sendMessage(ChatColor.RED+"Please specify a player.");
  738.                 }
  739.                 if (args.length == 1) {
  740.                     Bukkit.getServer().getOfflinePlayer(args[0]);
  741.                     if (!(banned.contains(args[0]))) {
  742.                         p.sendMessage(TAG+ChatColor.GRAY+args[0] +ChatColor.RED+" isn't banned.");
  743.                         return true;
  744.                     }
  745.                     banned.remove(args[0]);
  746.                     settings.getBanned().set("Banned", banned);
  747.                     settings.saveBanned();
  748.                     p.sendMessage(TAG+ChatColor.YELLOW+"You successfully unbanned "+ChatColor.GRAY+args[0]+ChatColor.YELLOW+"!");
  749.                     return true;
  750.                 }
  751.             }
  752.             return true;
  753.         }
  754.        
  755.         // --------------------------------------- SETS PLAYER GAMEMODE TO CREATIVE -------------------------------------------
  756.         if (label.equalsIgnoreCase("creative")) {
  757.             if (!(admins.contains(p.getName()))) {
  758.                 p.sendMessage(TAG+ChatColor.RED+"You don't have permission to do this.");
  759.             }else{
  760.                 if (args.length == 0) {
  761.                     if (p.getGameMode().equals(GameMode.CREATIVE)) {
  762.                         p.sendMessage(TAG+ChatColor.WHITE+"Your gamemode is already set to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  763.                         return true;
  764.                     }
  765.                     p.setGameMode(GameMode.CREATIVE);
  766.                     p.sendMessage(TAG+ChatColor.WHITE+"Set your gamemode to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  767.                 }
  768.                 if (args.length == 1) {
  769.                     Player target = Bukkit.getServer().getPlayer(args[0]);
  770.                     if (!(target.isOnline())) {
  771.                         p.sendMessage(ChatColor.RED+"Player "+args[0]+" could not be found!");
  772.                         return true;
  773.                     }
  774.                     if (target.getGameMode().equals(GameMode.CREATIVE)) {
  775.                         if (admins.contains(target.getName())) {
  776.                             p.sendMessage(TAG+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  777.                             return true;
  778.                         }
  779.                         if (mods.contains(target.getName())) {
  780.                             p.sendMessage(TAG+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  781.                             return true;
  782.                         }
  783.                         if (helpers.contains(target.getName())) {
  784.                             p.sendMessage(TAG+HelperTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  785.                             return true;
  786.                         }else{
  787.                             p.sendMessage(TAG+ChatColor.GRAY+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  788.                             return true;
  789.                         }
  790.                     }
  791.                     target.setGameMode(GameMode.CREATIVE);
  792.                     if (admins.contains(target.getName())) {
  793.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  794.                         return true;
  795.                     }
  796.                     if (mods.contains(target.getName())) {
  797.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  798.                         return true;
  799.                     }
  800.                     if (helpers.contains(target.getName())) {
  801.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+HelperTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  802.                         return true;
  803.                     }else{
  804.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+ChatColor.GRAY+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.RED+"creative"+ChatColor.WHITE+".");
  805.                         return true;
  806.                     }
  807.                 }
  808.             }
  809.         }
  810.        
  811.         // --------------------------------------- SETS PLAYER GAMEMODE TO SURVIVAL -------------------------------------------
  812.         if (label.equalsIgnoreCase("survival")) {
  813.             if (!(admins.contains(p.getName()))) {
  814.                 p.sendMessage(TAG+ChatColor.RED+"You don't have permission to do this.");
  815.             }else{
  816.                 if (args.length == 0) {
  817.                     if (p.getGameMode().equals(GameMode.SURVIVAL)) {
  818.                         p.sendMessage(TAG+ChatColor.WHITE+"Your gamemode is already set to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  819.                         return true;
  820.                     }
  821.                     p.setGameMode(GameMode.SURVIVAL);
  822.                     p.sendMessage(TAG+ChatColor.WHITE+"Set your gamemode to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  823.                 }
  824.                 if (args.length == 1) {
  825.                     Player target = Bukkit.getServer().getPlayer(args[0]);
  826.                     if (!(target.isOnline())) {
  827.                         p.sendMessage(ChatColor.RED+"Player "+args[0]+" could not be found!");
  828.                         return true;
  829.                     }
  830.                     if (target.getGameMode().equals(GameMode.SURVIVAL)) {
  831.                         if (admins.contains(target.getName())) {
  832.                             p.sendMessage(TAG+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  833.                             return true;
  834.                         }
  835.                         if (mods.contains(target.getName())) {
  836.                             p.sendMessage(TAG+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  837.                             return true;
  838.                         }
  839.                         if (helpers.contains(target.getName())) {
  840.                             p.sendMessage(TAG+HelperTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  841.                             return true;
  842.                         }else{
  843.                             p.sendMessage(TAG+ChatColor.GRAY+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  844.                             return true;
  845.                         }
  846.                     }
  847.                     target.setGameMode(GameMode.SURVIVAL);
  848.                     if (admins.contains(target.getName())) {
  849.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  850.                         return true;
  851.                     }
  852.                     if (mods.contains(target.getName())) {
  853.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  854.                         return true;
  855.                     }
  856.                     if (helpers.contains(target.getName())) {
  857.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+HelperTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  858.                         return true;
  859.                     }else{
  860.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+ChatColor.GRAY+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.YELLOW+"survival"+ChatColor.WHITE+".");
  861.                         return true;
  862.                     }
  863.                 }
  864.             }
  865.         }
  866.        
  867.         // --------------------------------------- SETS PLAYER GAMEMODE TO CREATIVE -------------------------------------------
  868.         if (label.equalsIgnoreCase("adventure")) {
  869.             if (!(admins.contains(p.getName()))) {
  870.                 p.sendMessage(TAG+ChatColor.RED+"You don't have permission to do this.");
  871.             }else{
  872.                 if (args.length == 0) {
  873.                     if (p.getGameMode().equals(GameMode.ADVENTURE)) {
  874.                         p.sendMessage(TAG+ChatColor.WHITE+"Your gamemode is already set to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  875.                         return true;
  876.                     }
  877.                     p.setGameMode(GameMode.ADVENTURE);
  878.                     p.sendMessage(TAG+ChatColor.WHITE+"Set your gamemode to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  879.                 }
  880.                 if (args.length == 1) {
  881.                     Player target = Bukkit.getServer().getPlayer(args[0]);
  882.                     if (!(target.isOnline())) {
  883.                         p.sendMessage(ChatColor.RED+"Player "+args[0]+" could not be found!");
  884.                         return true;
  885.                     }
  886.                     if (target.getGameMode().equals(GameMode.ADVENTURE)) {
  887.                         if (admins.contains(target.getName())) {
  888.                             p.sendMessage(TAG+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  889.                             return true;
  890.                         }
  891.                         if (mods.contains(target.getName())) {
  892.                             p.sendMessage(TAG+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  893.                             return true;
  894.                         }
  895.                         if (helpers.contains(target.getName())) {
  896.                             p.sendMessage(TAG+HelperTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  897.                             return true;
  898.                         }else{
  899.                             p.sendMessage(TAG+ChatColor.GRAY+target.getName()+ChatColor.WHITE+"'s gamemode is already set to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  900.                             return true;
  901.                         }
  902.                     }
  903.                     target.setGameMode(GameMode.ADVENTURE);
  904.                     if (admins.contains(target.getName())) {
  905.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+AdminTag+ChatColor.RED+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  906.                         return true;
  907.                     }
  908.                     if (mods.contains(target.getName())) {
  909.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+ModTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  910.                         return true;
  911.                     }
  912.                     if (helpers.contains(target.getName())) {
  913.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+HelperTag+ChatColor.LIGHT_PURPLE+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  914.                         return true;
  915.                     }else{
  916.                         p.sendMessage(TAG+ChatColor.WHITE+"Set "+ChatColor.GRAY+target.getName()+ChatColor.WHITE+"'s gamemode to "+ChatColor.GREEN+"adventure"+ChatColor.WHITE+".");
  917.                         return true;
  918.                     }
  919.                 }
  920.             }
  921.         }
  922.         return true;
  923.     }
  924.    
  925.     @EventHandler
  926.     public void onChat(AsyncPlayerChatEvent e) {
  927.         Player p = e.getPlayer();
  928.         List<String> muted = settings.getMuted().getStringList("Muted");
  929.         List<String> admins = settings.getAdmins().getStringList("Admins");
  930.         List<String> mods = settings.getMods().getStringList("Mods");
  931.         List<String> helpers = settings.getHelpers().getStringList("Helpers");
  932.         String message = e.getMessage();
  933.         if (admins.contains(p.getName())) {
  934.             if (muted.contains(p.getName())) {
  935.                 e.setCancelled(true);
  936.                 p.sendMessage(ChatColor.RED+"You are muted.");
  937.                 return;
  938.             }else{
  939.             e.setCancelled(true);
  940.             Bukkit.getServer().broadcastMessage(MainClass.AdminTag+ChatColor.RED+p.getName()+ChatColor.GRAY+": "+ChatColor.RESET+ChatColor.translateAlternateColorCodes('&', message));
  941.             return;
  942.           }
  943.         }else if (mods.contains(p.getName())) {
  944.             if (muted.contains(p.getName())) {
  945.                 p.sendMessage(ChatColor.RED+"You are muted.");
  946.                 return;
  947.             }else{
  948.             e.setCancelled(true);
  949.             Bukkit.getServer().broadcastMessage(MainClass.ModTag+ChatColor.LIGHT_PURPLE+p.getName()+ChatColor.GRAY+": "+ChatColor.WHITE+message);
  950.             return;
  951.             }
  952.         } else if (helpers.contains(p.getName())) {
  953.             if (muted.contains(p.getName())) {
  954.                 e.setCancelled(true);
  955.                 p.sendMessage(ChatColor.RED+"You are muted.");
  956.                 return;
  957.             }else{
  958.                 e.setCancelled(true);
  959.             Bukkit.getServer().broadcastMessage(MainClass.HelperTag+ChatColor.BLUE+p.getName()+ChatColor.GRAY+": "+ChatColor.WHITE+message);
  960.             return;
  961.             }
  962.         } else if (muted.contains(p.getName())){
  963.             e.setCancelled(true);
  964.             p.sendMessage(ChatColor.RED+"You are muted.");
  965.             return;
  966.         }else{
  967.             e.setCancelled(true);
  968.             Bukkit.getServer().broadcastMessage(ChatColor.GRAY+p.getName()+": "+ChatColor.GRAY+message);
  969.             return;
  970.         }
  971.     }
  972.    
  973.     @EventHandler
  974.     public void onInvClick(InventoryClickEvent e) {
  975.         Player p = (Player) e.getWhoClicked();
  976.         List<String> admins = settings.getAdmins().getStringList("Admins");
  977.         if (admins.contains(p.getName())) {
  978.             e.setCancelled(false);
  979.         }else{
  980.             e.setCancelled(true);
  981.         }
  982.         if (e.getCurrentItem().getType() == null) return;
  983.         if (e.getCurrentItem().getType() == Material.GOLD_NUGGET) {
  984.             p.sendMessage(MainClass.TAG+ChatColor.GREEN+"Teleporting to hub...");
  985.             World w = Bukkit.getServer().getWorld(getConfig().getString("spawn.world"));
  986.             double x = getConfig().getDouble("spawn.x");
  987.             double y = getConfig().getDouble("spawn.y");
  988.             double z = getConfig().getDouble("spawn.z");
  989.             p.teleport(new Location(w, x, y, z));
  990.             p.closeInventory();
  991.             return;
  992.         }
  993.             if (e.getCurrentItem().getType() == Material.DIAMOND) {
  994.                 sendToServer(p, "Factions");
  995.             }
  996.             if (e.getCurrentItem().getType() == Material.IRON_FENCE) {
  997.                 sendToServer(p, "Prison");
  998.             }
  999.             if (e.getCurrentItem().getType() == Material.IRON_SWORD) {
  1000.                 sendToServer(p, "SurvivalGames");
  1001.             }
  1002.             if (e.getCurrentItem().getType() == Material.WORKBENCH) {
  1003.                 sendToServer(p, "Creative");
  1004.             }
  1005.     }
  1006.  
  1007.    
  1008.     @EventHandler
  1009.     public void onJoin(PlayerJoinEvent e) {
  1010.         Player p = e.getPlayer();
  1011.         p.setScoreboard(board);
  1012.        
  1013.         World w = Bukkit.getServer().getWorld(getConfig().getString("spawn.world"));
  1014.         double x = getConfig().getDouble("spawn.x");
  1015.         double y = getConfig().getDouble("spawn.y");
  1016.         double z = getConfig().getDouble("spawn.z");
  1017.         p.teleport(new Location(w, x, y, z));
  1018.        
  1019.         Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
  1020.             public void run() {
  1021.                 Firework f = (Firework) p.getWorld().spawn(p.getLocation(), Firework.class);
  1022.                 FireworkMeta fm = f.getFireworkMeta();
  1023.                 fm.addEffect(FireworkEffect.builder()
  1024.                         .flicker(true)
  1025.                         .trail(true)
  1026.                         .with(Type.BALL_LARGE)
  1027.                         .withColor(Color.RED)
  1028.                         .withFade(Color.YELLOW)
  1029.                         .build());
  1030.                 fm.setPower(1);
  1031.                 f.setFireworkMeta(fm);
  1032.             }
  1033.         }, 10);
  1034.         return;
  1035.     }
  1036.    
  1037.     @EventHandler
  1038.     public void onLaunch(ProjectileLaunchEvent e) {
  1039.         Player p = (Player) e.getEntity().getShooter();
  1040.        
  1041.         if (cooldownTime.containsKey(p)) {
  1042.             e.setCancelled(true);
  1043.             if (cooldownTime.get(p) > 1) {
  1044.                 p.sendMessage(TAG+ChatColor.RED+"You may not do this action for another "+cooldownTime.get(p)+" seconds!");
  1045.             }else if (cooldownTime.get(p) == 1) {
  1046.                 p.sendMessage(TAG+ChatColor.RED+"You may not do this action for "+cooldownTime.get(p)+" second!");
  1047.             }
  1048.         }
  1049.         cooldownTime.put(p, 2);
  1050.         cooldownTask.put(p, new BukkitRunnable() {
  1051.             public void run() {
  1052.                 if (!(cooldownTime.containsKey(p))) {
  1053.                     cooldownTime.put(p, 2);
  1054.                 }
  1055.                 cooldownTime.put(p, cooldownTime.get(p) - 1);
  1056.                 if (cooldownTime.get(p) == 0) {
  1057.                     cooldownTime.remove(p);
  1058.                     cooldownTask.remove(p);
  1059.                     cancel();
  1060.                     return;
  1061.                 }
  1062.             }
  1063.         });
  1064.        
  1065.         cooldownTask.get(p).runTaskTimer(this, 20, 20);
  1066.         return;
  1067.     }
  1068.    
  1069.     @EventHandler
  1070.     public void onInteract(PlayerInteractEvent e) {
  1071.         Player p = e.getPlayer();
  1072.        
  1073.         if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
  1074.             if (p.getItemInHand().getType() == Material.REDSTONE_TORCH_ON) {
  1075.                 if (cooldownTime1.containsKey(p)) {
  1076.                     e.setCancelled(true);
  1077.                     if (cooldownTime1.get(p) > 1) {
  1078.                         p.sendMessage(PTAG+ChatColor.RED+"You may not do this action for another "+cooldownTime1.get(p)+" seconds!");
  1079.                     }else if (cooldownTime1.get(p) == 1) {
  1080.                         p.sendMessage(PTAG+ChatColor.RED+"You may not do this action for "+cooldownTime1.get(p)+" second!");
  1081.                     }
  1082.                     return;
  1083.                 }
  1084.                 for (Player all : Bukkit.getServer().getOnlinePlayers()) {
  1085.                     p.hidePlayer(all);
  1086.                 }
  1087.                 p.setItemInHand(JoinListener.PlayersInvisible);
  1088.                 p.sendMessage(PTAG+ChatColor.GRAY+"All players are now invisible"+ChatColor.RED+".");
  1089.                 cooldownTime1.put(p, 3);
  1090.                 cooldownTask1.put(p, new BukkitRunnable() {
  1091.                     public void run() {
  1092.                         if (!(cooldownTime1.containsKey(p))) {
  1093.                             cooldownTime1.put(p, 3);
  1094.                         }
  1095.                         cooldownTime1.put(p, cooldownTime1.get(p) - 1);
  1096.                         if (cooldownTime1.get(p) == 0) {
  1097.                             cooldownTime1.remove(p);
  1098.                             cooldownTask1.remove(p);
  1099.                             cancel();
  1100.                             return;
  1101.                         }
  1102.                     }
  1103.                 });
  1104.                
  1105.                 cooldownTask1.get(p).runTaskTimer(this, 20, 20);
  1106.                 return;
  1107.             }
  1108.             if (p.getItemInHand().getType() == Material.LEVER) {
  1109.                 if (cooldownTime1.containsKey(p)) {
  1110.                     e.setCancelled(true);
  1111.                     if (cooldownTime1.get(p) > 1) {
  1112.                         p.sendMessage(PTAG+ChatColor.RED+"You may not do this action for another "+cooldownTime1.get(p)+" seconds!");
  1113.                     }else if (cooldownTime1.get(p) == 1) {
  1114.                         p.sendMessage(PTAG+ChatColor.RED+"You may not do this action for "+cooldownTime1.get(p)+" second!");
  1115.                     }
  1116.                     return;
  1117.                 }
  1118.                 for (Player all : Bukkit.getServer().getOnlinePlayers()) {
  1119.                     p.showPlayer(all);
  1120.                 }
  1121.                 p.setItemInHand(JoinListener.PlayersVisible);
  1122.                 p.sendMessage(PTAG+ChatColor.RED+"All players are now visible"+ChatColor.GRAY+".");
  1123.                 cooldownTime1.put(p, 3);
  1124.                 cooldownTask1.put(p, new BukkitRunnable() {
  1125.                     public void run() {
  1126.                         if (!(cooldownTime1.containsKey(p))) {
  1127.                             cooldownTime1.put(p, 3);
  1128.                         }
  1129.                         cooldownTime1.put(p, cooldownTime1.get(p) - 1);
  1130.                         if (cooldownTime1.get(p) == 0) {
  1131.                             cooldownTime1.remove(p);
  1132.                             cooldownTask1.remove(p);
  1133.                             cancel();
  1134.                             return;
  1135.                         }
  1136.                     }
  1137.                 });
  1138.                
  1139.                 cooldownTask1.get(p).runTaskTimer(this, 20, 20);
  1140.                 return;
  1141.             }
  1142.         }
  1143.     }
  1144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement