camdenorrb

First Plugin

Jul 23rd, 2016
624
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 18.33 KB | None | 0 0
  1. package me.camdenorrb.bukkit.plugins;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.UUID;
  9.  
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.ChatColor;
  12. import org.bukkit.command.Command;
  13. import org.bukkit.command.CommandExecutor;
  14. import org.bukkit.command.CommandSender;
  15. import org.bukkit.command.ConsoleCommandSender;
  16. import org.bukkit.configuration.file.FileConfiguration;
  17. import org.bukkit.entity.Player;
  18. import org.bukkit.event.EventHandler;
  19. import org.bukkit.event.Listener;
  20. import org.bukkit.event.inventory.InventoryClickEvent;
  21. import org.bukkit.event.player.AsyncPlayerChatEvent;
  22. import org.bukkit.event.player.PlayerJoinEvent;
  23. import org.bukkit.inventory.Inventory;
  24. import org.bukkit.inventory.ItemStack;
  25. import org.bukkit.inventory.meta.ItemMeta;
  26. import org.bukkit.plugin.Plugin;
  27. import org.bukkit.plugin.java.JavaPlugin;
  28.  
  29. public class Chat extends JavaPlugin implements Listener, CommandExecutor {
  30.  
  31.  
  32.     private final Map<UUID, ChatColor> playerColors = new HashMap<>();
  33.     private final ArrayList<String> words = new ArrayList<>(Arrays.asList("badwords here"));
  34.     private final ArrayList<String> WhiteList = new ArrayList<>(Arrays.asList("bass", "derp"));
  35.     private static Plugin plugin;
  36.     private static Listener plugin2;
  37.     private static boolean bool;
  38.     FileConfiguration config = getConfig();
  39.  
  40.     public Inventory inv;
  41.  
  42.     List<String> toggled = new ArrayList<>();
  43.  
  44.     @Override
  45.     public void onEnable() {
  46.         plugin = this;
  47.         plugin2 = this;
  48.  
  49.         getServer().getPluginManager().registerEvents(plugin2, plugin);
  50.         intializeConfig();
  51.        
  52.         for (Player p : Bukkit.getOnlinePlayers()) {
  53.             playerJoin(p.getUniqueId());
  54.         }
  55.  
  56.     }
  57.  
  58.  
  59.     @Override
  60.     public void onDisable() {
  61.         plugin = null;
  62.         plugin2 = null;
  63.  
  64.         // TODO: Place any custom disable code here.
  65.     }
  66.  
  67.     private void intializeConfig() {
  68.  
  69.         config.addDefault("BlockMessageOn?", true);
  70.         config.addDefault("words", words);
  71.         config.addDefault("whitelist", WhiteList);
  72.         config.addDefault("Showmessage", "&cThe use of foul language is prohibited.");
  73.         config.addDefault("message", "&4Please do not use foul language.");
  74.         config.addDefault("InventoryLength", 18);
  75.         config.addDefault("InventoryItems.LRedColor.ItemSlot", 0);
  76.         config.addDefault("InventoryItems.LRedColor.ItemID", 102);
  77.         config.addDefault("InventoryItems.LRedColor.DataValue", 0);
  78.         config.addDefault("InventoryItems.DRedColor.ItemSlot", 1);
  79.         config.addDefault("InventoryItems.DRedColor.ItemID", 102);
  80.         config.addDefault("InventoryItems.DRedColor.DataValue", 0);
  81.         config.addDefault("InventoryItems.OrangeColor.ItemSlot", 2);
  82.         config.addDefault("InventoryItems.OrangeColor.ItemID", 35);
  83.         config.addDefault("InventoryItems.OrangeColor.DataValue", 1);
  84.         config.addDefault("InventoryItems.YellowColor.ItemSlot", 3);
  85.         config.addDefault("InventoryItems.YellowColor.ItemID", 41);
  86.         config.addDefault("InventoryItems.YellowColor.DataValue", 0);
  87.         config.addDefault("InventoryItems.LGreenColor.ItemSlot", 4);
  88.         config.addDefault("InventoryItems.LGreenColor.ItemID", 31);
  89.         config.addDefault("InventoryItems.LGreenColor.DataValue", 0);
  90.         config.addDefault("InventoryItems.DGreenColor.ItemSlot", 5);
  91.         config.addDefault("InventoryItems.DGreenColor.ItemID", 133);
  92.         config.addDefault("InventoryItems.DGreenColor.DataValue", 0);
  93.         config.addDefault("InventoryItems.AquaColor.ItemSlot", 10);
  94.         config.addDefault("InventoryItems.AquaColor.ItemID", 57);
  95.         config.addDefault("InventoryItems.AquaColor.DataValue", 0);
  96.         config.addDefault("InventoryItems.CyanColor.ItemSlot", 6);
  97.         config.addDefault("InventoryItems.CyanColor.ItemID", 35);
  98.         config.addDefault("InventoryItems.CyanColor.DataValue", 9);
  99.         config.addDefault("InventoryItems.LBlueColor.ItemSlot", 7);
  100.         config.addDefault("InventoryItems.LBlueColor.ItemID", 102);
  101.         config.addDefault("InventoryItems.LBlueColor.DataValue", 0);
  102.         config.addDefault("InventoryItems.DBlueColor.ItemSlot", 8);
  103.         config.addDefault("InventoryItems.DBlueColor.ItemID", 22);
  104.         config.addDefault("InventoryItems.DBlueColor.DataValue", 0);
  105.         config.addDefault("InventoryItems.PurpleColor.ItemSlot", 9);
  106.         config.addDefault("InventoryItems.PurpleColor.ItemID", 35);
  107.         config.addDefault("InventoryItems.PurpleColor.DataValue", 10);
  108.         config.addDefault("InventoryItems.PinkColor.ItemSlot", 10);
  109.         config.addDefault("InventoryItems.PinkColor.ItemID", 35);
  110.         config.addDefault("InventoryItems.PinkColor.DataValue", 6);
  111.  
  112.         config.options().copyDefaults(true);
  113.         saveConfig();
  114.     }
  115.  
  116.     public void openGUI(Player p) {
  117.  
  118.         inv = Bukkit.createInventory(null, config.getInt("InventoryLength"), ChatColor.RED + "Colors!"); //format: null, size of inventory (must be divisible by 9), "GUI name"
  119.  final ItemStack lightred = new ItemStack(config.getInt("InventoryItems.LRedColor.ItemID"), config.getInt("InventoryItems.LRedColor.DataValue"));
  120.         final ItemStack darkred = new ItemStack(config.getInt("InventoryItems.DRedColor.ItemID"), config.getInt("InventoryItems.DRedColor.DataValue"));
  121.         final ItemStack orange = new ItemStack(config.getInt("InventoryItems.OrangeColor.ItemID"), config.getInt("InventoryItems.OrangeColor.DataValue"));
  122.         final ItemStack yellow = new ItemStack(config.getInt("InventoryItems.YellowColor.ItemID"), config.getInt("InventoryItems.YellowColor.DataValue"));
  123.         final ItemStack lightgreen = new ItemStack(config.getInt("InventoryItems.LGreenColor.ItemID"), config.getInt("InventoryItems.LGreenColor.DataValue"));
  124.         final ItemStack darkgreen = new ItemStack(config.getInt("InventoryItems.DGreenColor.ItemID"), config.getInt("InventoryItems.DGreenColor.DataValue"));
  125.         final ItemStack aqua = new ItemStack(config.getInt("InventoryItems.AquaColor.ItemID"), config.getInt("InventoryItems.AquaColor.DataValue"));
  126.         final ItemStack cyan = new ItemStack(config.getInt("InventoryItems.CyanColor.ItemID"), config.getInt("InventoryItems.CyanColor.DataValue"));
  127.         final ItemStack lightblue = new ItemStack(config.getInt("InventoryItems.LBlueColor.ItemID"), config.getInt("InventoryItems.LBlueColor.DataValue"));
  128.         final ItemStack darkblue = new ItemStack(config.getInt("InventoryItems.DBlueColor.ItemID"), config.getInt("InventoryItems.DBlueColor.DataValue"));
  129.         final ItemStack purple = new ItemStack(config.getInt("InventoryItems.PurpleColor.ItemID"), config.getInt("InventoryItems.PurpleColor.DataValue"));
  130.         final ItemStack pink = new ItemStack(config.getInt("InventoryItems.PinkColor.ItemID"), config.getInt("InventoryItems.PinkColor.DataValue"));
  131.         final ItemMeta lightredid = lightred.getItemMeta();
  132.         final ItemMeta darkredid = darkred.getItemMeta();
  133.         final ItemMeta orangeid = orange.getItemMeta();
  134.         final ItemMeta yellowid = yellow.getItemMeta();
  135.         final ItemMeta lightgreenid = lightgreen.getItemMeta();
  136.         final ItemMeta darkgreenid = darkgreen.getItemMeta();
  137.         final ItemMeta aquaid = aqua.getItemMeta();
  138.         final ItemMeta cyanid = cyan.getItemMeta();
  139.         final ItemMeta lightblueid = lightblue.getItemMeta();
  140.         final ItemMeta darkblueid = lightred.getItemMeta();
  141.         final ItemMeta purpleid = lightred.getItemMeta();
  142.         final ItemMeta pinkid = pink.getItemMeta();
  143.         darkredid.setDisplayName(ChatColor.DARK_RED + "Dark Red");
  144.         darkred.setItemMeta(darkredid);
  145.         orangeid.setDisplayName(ChatColor.GOLD + "Orange");
  146.         orange.setItemMeta(orangeid);
  147.         yellowid.setDisplayName(ChatColor.YELLOW + "Yellow");
  148.         yellow.setItemMeta(yellowid);
  149.         lightgreenid.setDisplayName(ChatColor.GREEN + "Light Green");
  150.         lightgreen.setItemMeta(lightgreenid);
  151.         darkgreenid.setDisplayName(ChatColor.DARK_GREEN + "Dark Green");
  152.         darkgreen.setItemMeta(darkgreenid);
  153.         aquaid.setDisplayName(ChatColor.AQUA + "AQUA");
  154.         aqua.setItemMeta(aquaid);
  155.         cyanid.setDisplayName(ChatColor.DARK_AQUA + "Cyan");
  156.         cyan.setItemMeta(cyanid);
  157.         lightblueid.setDisplayName(ChatColor.BLUE + "Light Blue");
  158.         lightblue.setItemMeta(lightblueid);
  159.         darkblueid.setDisplayName(ChatColor.DARK_BLUE + "Dark Blue");
  160.         darkblue.setItemMeta(darkblueid);
  161.         purpleid.setDisplayName(ChatColor.DARK_PURPLE + "Purple");
  162.         purple.setItemMeta(purpleid);
  163.         pinkid.setDisplayName(ChatColor.RED + "Pink");
  164.         pink.setItemMeta(pinkid);
  165.         lightredid.setDisplayName(ChatColor.RED + "Light Red");
  166.         lightred.setItemMeta(lightredid);
  167.         inv.setItem(config.getInt("InventoryItems.DRedColor.ItemSlot"), new ItemStack(darkred));
  168.  
  169.         inv.setItem(config.getInt("InventoryItems.OrangeColor.ItemSlot"), new ItemStack(orange));
  170.         inv.setItem(config.getInt("InventoryItems.YellowColor.ItemSlot"), new ItemStack(yellow));
  171.         inv.setItem(config.getInt("InventoryItems.LGreenColor.ItemSlot"), new ItemStack(lightgreen));
  172.         inv.setItem(config.getInt("InventoryItems.DGreenColor.ItemSlot"), new ItemStack(darkgreen));
  173.         inv.setItem(config.getInt("InventoryItems.AquaColor.ItemSlot"), new ItemStack(aqua));
  174.         inv.setItem(config.getInt("InventoryItems.CyanColor.ItemSlot"), new ItemStack(cyan));
  175.         inv.setItem(config.getInt("InventoryItems.LBlueColor.ItemSlot"), new ItemStack(lightblue));
  176.         inv.setItem(config.getInt("InventoryItems.DBlueColor.ItemSlot"), new ItemStack(darkblue));
  177.         inv.setItem(config.getInt("InventoryItems.PurpleColor.ItemSlot"), new ItemStack(purple));
  178.         inv.setItem(config.getInt("InventoryItems.PinkColor.ItemSlot"), new ItemStack(pink));
  179.         inv.setItem(config.getInt("InventoryItems.LRedColor.ItemSlot"), new ItemStack(lightred));
  180.         p.openInventory(inv);
  181.     }
  182.  
  183.     @Override
  184.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  185.  
  186.         if (cmd.getLabel().equalsIgnoreCase("color") && args.length == 1) {
  187.             if (sender instanceof ConsoleCommandSender) {
  188.                 sender.sendMessage("This command can only be run by a player.");
  189.  
  190.                 return false;
  191.             } else {
  192.                 Player player = (Player) sender;
  193.  
  194.                 if (args[0].equalsIgnoreCase("toggle")) {
  195.                     if (sender instanceof ConsoleCommandSender) {
  196.                         sender.sendMessage("This command can only be run by a player.");
  197.                         return false;
  198.                     } else {
  199.  
  200.                         if (toggled.contains(player.getName())) {
  201.                             sender.sendMessage(ChatColor.GREEN + "Turn On Color With /color");
  202.                             toggled.add(player.getName());
  203.                             return true;
  204.                         } else {
  205.  
  206.                             playerColors.put(player.getUniqueId(), ChatColor.RESET);
  207.                             sender.sendMessage(ChatColor.GREEN + "You DeActivated Your Chat Color!@!");
  208.                             toggled.remove(player.getName());
  209.                             return true;
  210.                         }
  211.                     }
  212.                 } else if (args[0].equalsIgnoreCase("reset")) {
  213.                     if (player.hasPermission("color.clear")) {
  214.                         for (int i = 0; i < 100; i++) {
  215.                             for (Player p : Bukkit.getOnlinePlayers()) {
  216.                                 p.sendMessage("");
  217.                             }
  218.  
  219.                         }
  220.                         Bukkit.broadcastMessage(ChatColor.AQUA + "Chat has been cleared");
  221.  
  222.                         return true;
  223.                     } else {
  224.                         player.sendMessage(ChatColor.GREEN + "You Do Not Have Permissions Required To " + ChatColor.RED + "Clear");
  225.  
  226.                         return true;
  227.                     }
  228.  
  229.                 }
  230.             }
  231.         } else if (cmd.getLabel().equalsIgnoreCase("color") && args.length == 0) {
  232.  
  233.             if (sender instanceof ConsoleCommandSender) {
  234.                 sender.sendMessage("This command can only be run by a player.");
  235.                 return false;
  236.             } else {
  237.                
  238.                 Player player = (Player) sender;
  239.                 openGUI(player);
  240.                 return true;
  241.             }
  242.         }
  243.  
  244.         return false;
  245.     }
  246.  
  247.     @EventHandler
  248.     public void playerChat(AsyncPlayerChatEvent e) {
  249.  
  250.         String message = getConfig().getString("message").replaceAll("(&([a-f0-9]))", "\u00A7$2").replaceAll("($([a-f0-9]))", "\u00A7$2").replaceAll("(%([a-f0-9]))", "\u00A7$2");
  251.         String Showmessage = getConfig().getString("Showmessage").replaceAll("(&([a-f0-9]))", "\u00A7$2").replaceAll("($([a-f0-9]))", "\u00A7$2").replaceAll("(%([a-f0-9]))", "\u00A7$2");
  252.  
  253.         if (config.getStringList("whitelist").contains(e.getMessage().toLowerCase())) {
  254.  
  255.             bool = false;
  256.             if (e.getPlayer().getWorld().getName().equalsIgnoreCase("island-0")) {
  257.                 e.setCancelled(true);
  258.                 Bukkit.broadcastMessage(e.getMessage());
  259.             }
  260.         } else {
  261.             bool = true;
  262.  
  263.             if (bool == true) {
  264.                 for (String word : getConfig().getStringList("words")) {
  265.                     String sent = e.getMessage().toLowerCase().replaceAll("\\.", "").replaceAll("&", "");
  266.                     if (sent.contains(word)) {
  267.  
  268.                         bool = true;
  269.  
  270.                         if (config.getBoolean("BlockMessageOn?") == true && bool == true) {
  271.  
  272.                             e.setMessage(Showmessage.replaceAll("'", "").replaceAll("’", "").replaceAll("‘", ""));
  273.                             e.getPlayer().sendMessage(message.replaceAll("'", "").replaceAll("’", "").replaceAll("‘", ""));
  274.  
  275.                         } else {
  276.  
  277.                             bool = false;
  278.                         }
  279.                     }
  280.                 }
  281.             }
  282.         }
  283.  
  284.         ChatColor test = playerColors.get(e.getPlayer().getUniqueId());
  285.         e.setMessage(test + e.getMessage());
  286.  
  287.     }
  288.  
  289.     @EventHandler
  290.     public void onJoinEvent(PlayerJoinEvent e) {
  291.        
  292.         if (playerColors.get(e.getPlayer().getUniqueId()) != null) {
  293.         } else {
  294.             playerJoin(e.getPlayer().getUniqueId());
  295.         }
  296.     }
  297.  
  298.     public void playerJoin(UUID u) {
  299. String b = getConfig().getString("DefaultColor");
  300.          
  301.          
  302.         playerColors.put(u, ChatColor.WHITE);
  303.    
  304.     }
  305.     @EventHandler //MAKE SURE YOU HAVE THIS
  306.     public void InventoryClick(InventoryClickEvent e) {
  307.         Player p = (Player) e.getWhoClicked();
  308.  
  309.         if (e.getInventory().getTitle().contains(ChatColor.RED + "Colors!")) {
  310.             e.setCancelled(true); //Cancel the event so they can't take items out of the GUI
  311.  
  312.             if (e.getCurrentItem().getItemMeta() == null) {
  313.             } else {
  314.  
  315.            
  316.  
  317.             if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.LRedColor.ItemSlot")).getItemMeta())) {
  318.                 //gets called when the current item's type (The item the player clicked) is a diamond
  319.  
  320.                 playerColors.put(p.getUniqueId(), ChatColor.RED);
  321.                 p.closeInventory(); //call if you want to close the inventory when they click it
  322.  
  323.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.DRedColor.ItemSlot")).getItemMeta())) {
  324.                 playerColors.put(p.getUniqueId(), ChatColor.DARK_RED);
  325.                 p.closeInventory();
  326.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.OrangeColor.ItemSlot")).getItemMeta())) {
  327.                 playerColors.put(p.getUniqueId(), ChatColor.GOLD);
  328.                 p.closeInventory();
  329.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.YellowColor.ItemSlot")).getItemMeta())) {
  330.                 playerColors.put(p.getUniqueId(), ChatColor.YELLOW);
  331.                 p.closeInventory();
  332.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.LGreenColor.ItemSlot")).getItemMeta())) {
  333.                 playerColors.put(p.getUniqueId(), ChatColor.GREEN);
  334.                 p.closeInventory();
  335.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.DGreenColor.ItemSlot")).getItemMeta())) {
  336.                 playerColors.put(p.getUniqueId(), ChatColor.DARK_GREEN);
  337.                 p.closeInventory();
  338.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.AquaColor.ItemSlot")).getItemMeta())) {
  339.                 playerColors.put(p.getUniqueId(), ChatColor.AQUA);
  340.                 p.closeInventory();
  341.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.LBlueColor.ItemSlot")).getItemMeta())) {
  342.                 playerColors.put(p.getUniqueId(), ChatColor.BLUE);
  343.                 p.closeInventory();
  344.  
  345.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.DBlueColor.ItemSlot")).getItemMeta())) {
  346.                 playerColors.put(p.getUniqueId(), ChatColor.DARK_BLUE);
  347.                 p.closeInventory();
  348.                  } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.DBlueColor.ItemSlot")).getItemMeta())) {
  349.                 playerColors.put(p.getUniqueId(), ChatColor.DARK_BLUE);
  350.                 p.closeInventory();
  351.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.PurpleColor.ItemSlot")).getItemMeta())) {
  352.                 playerColors.put(p.getUniqueId(), ChatColor.DARK_PURPLE);
  353.                 p.closeInventory();
  354.             } else if (e.getCurrentItem().getItemMeta().equals(inv.getItem(config.getInt("InventoryItems.PinkColor.ItemSlot")).getItemMeta())) {
  355.                 playerColors.put(p.getUniqueId(), ChatColor.LIGHT_PURPLE);
  356.                 p.closeInventory();
  357.             } else {
  358.  
  359.             }
  360.         }
  361.         }
  362.     }
  363. }
Add Comment
Please, Sign In to add comment