Advertisement
Guest User

UGH

a guest
Jan 19th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.87 KB | None | 0 0
  1. import java.io.PrintStream;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import net.milkbowl.vault.economy.Economy;
  7. import net.milkbowl.vault.economy.EconomyResponse;
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.Material;
  10. import org.bukkit.Server;
  11. import org.bukkit.block.Block;
  12. import org.bukkit.block.BlockState;
  13. import org.bukkit.block.CreatureSpawner;
  14. import org.bukkit.block.Sign;
  15. import org.bukkit.command.Command;
  16. import org.bukkit.command.CommandSender;
  17. import org.bukkit.command.ConsoleCommandSender;
  18. import org.bukkit.configuration.ConfigurationSection;
  19. import org.bukkit.configuration.file.FileConfiguration;
  20. import org.bukkit.configuration.file.FileConfigurationOptions;
  21. import org.bukkit.entity.EntityType;
  22. import org.bukkit.entity.Player;
  23. import org.bukkit.event.EventHandler;
  24. import org.bukkit.event.EventPriority;
  25. import org.bukkit.event.Listener;
  26. import org.bukkit.event.block.Action;
  27. import org.bukkit.event.block.BlockBreakEvent;
  28. import org.bukkit.event.block.BlockPlaceEvent;
  29. import org.bukkit.event.player.PlayerInteractEvent;
  30. import org.bukkit.event.player.PlayerLoginEvent;
  31. import org.bukkit.inventory.ItemStack;
  32. import org.bukkit.inventory.PlayerInventory;
  33. import org.bukkit.inventory.meta.ItemMeta;
  34. import org.bukkit.plugin.PluginManager;
  35. import org.bukkit.plugin.RegisteredServiceProvider;
  36. import org.bukkit.plugin.ServicesManager;
  37. import org.bukkit.plugin.java.JavaPlugin;
  38.  
  39. public class SpawnerRankup
  40.   extends JavaPlugin
  41.   implements Listener
  42. {
  43.   HashMap<String, Integer> level = new HashMap();
  44.   static ArrayList<EntityType> mobs = new ArrayList();
  45.   String s = "";
  46.   Economy econ = null;
  47.  
  48.   public void onEnable()
  49.   {
  50.     getServer().getPluginManager().registerEvents(this, this);
  51.     getConfig().options().copyDefaults(true);
  52.     saveDefaultConfig();
  53.     if (!setupEconomy())
  54.     {
  55.       getServer().getConsoleSender().sendMessage(this.s + "�c�lSetupEconomy FAILED -- You need Vault AND an Economy Plugin for this plugin to work");
  56.       getServer().getPluginManager().disablePlugin(this);
  57.     }
  58.     if (getConfig().getConfigurationSection("Player-Levels") != null) {
  59.       for (String s : getConfig().getConfigurationSection("Player-Levels").getValues(true).keySet()) {
  60.         this.level.put(s, Integer.valueOf(getConfig().getConfigurationSection("Player-Levels").getInt(s)));
  61.       }
  62.     }
  63.     for (Player p : getServer().getOnlinePlayers()) {
  64.       if (!this.level.containsKey(p.getName())) {
  65.         this.level.put(p.getName(), Integer.valueOf(1));
  66.       }
  67.     }
  68.     for (int i = 1; i < 11; i++) {
  69.       mobs.add(EntityType.fromName(getConfig().getString("level-" + i)));
  70.     }
  71.   }
  72.  
  73.   public void onDisable()
  74.   {
  75.     if (getConfig().getConfigurationSection("Player-Levels") == null) {
  76.       getConfig().createSection("Player-Levels", this.level);
  77.     } else {
  78.       getConfig().set("Player-Levels", this.level);
  79.     }
  80.     saveConfig();
  81.   }
  82.  
  83.   boolean setupEconomy()
  84.   {
  85.     if (getServer().getPluginManager().getPlugin("Vault") == null) {
  86.       return false;
  87.     }
  88.     RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
  89.     if (rsp == null) {
  90.       return false;
  91.     }
  92.     this.econ = ((Economy)rsp.getProvider());
  93.     return this.econ != null;
  94.   }
  95.  
  96.   boolean isInt(String s)
  97.   {
  98.     try
  99.     {
  100.       Integer.parseInt(s);return true;
  101.     }
  102.     catch (NumberFormatException e) {}
  103.     return false;
  104.   }
  105.  
  106.   @EventHandler
  107.   public void login(PlayerLoginEvent e)
  108.   {
  109.     if (!this.level.containsKey(e.getPlayer().getName())) {
  110.       this.level.put(e.getPlayer().getName(), Integer.valueOf(1));
  111.     }
  112.   }
  113.  
  114.   @EventHandler(priority=EventPriority.HIGHEST)
  115.   public void blockBreak(BlockBreakEvent e)
  116.   {
  117.     if (e.isCancelled()) {
  118.       return;
  119.     }
  120.     if (getConfig().getBoolean("all-spawners"))
  121.     {
  122.       if (e.getBlock().getType() != Material.MOB_SPAWNER) {
  123.         return;
  124.       }
  125.       if (!(e.getBlock().getState() instanceof CreatureSpawner)) {
  126.         return;
  127.       }
  128.       CreatureSpawner state = (CreatureSpawner)e.getBlock().getState();
  129.       EntityType et = state.getSpawnedType();
  130.       if (!mobs.subList(0, ((Integer)this.level.get(e.getPlayer().getName())).intValue()).contains(et))
  131.       {
  132.         e.setCancelled(true);
  133.         e.getPlayer().sendMessage(this.s + "�cYou are not allowed to break that type of spawner!");
  134.       }
  135.     }
  136.   }
  137.  
  138.   @EventHandler(priority=EventPriority.HIGHEST)
  139.   public void blockPlace(BlockPlaceEvent e)
  140.   {
  141.     if (e.isCancelled()) {
  142.       return;
  143.     }
  144.     if (e.getBlock().getType() != Material.MOB_SPAWNER) {
  145.       return;
  146.     }
  147.     if (!(e.getBlock().getState() instanceof CreatureSpawner)) {
  148.       return;
  149.     }
  150.     ItemStack item = e.getItemInHand();
  151.     ItemMeta itemMeta = item.getItemMeta();
  152.     if (!item.hasItemMeta()) {
  153.       item.setItemMeta(itemMeta);
  154.     }
  155.     if (!itemMeta.hasDisplayName()) {
  156.       itemMeta.setDisplayName("�e" + EntityType.fromId(((CreatureSpawner)e.getBlock().getState()).getTypeId()) + " �fSpawner");
  157.     }
  158.     item.setItemMeta(itemMeta);
  159.     CreatureSpawner state = (CreatureSpawner)e.getBlock().getState();
  160.     EntityType et = state.getSpawnedType();
  161.     String name = itemMeta.getDisplayName();
  162.     if (EntityType.fromName(ChatColor.stripColor(name.substring(0, name.length() - 10))) != null) {
  163.       state.setSpawnedType(EntityType.fromName(ChatColor.stripColor(name.substring(0, name.length() - 10))));
  164.     } else {
  165.       state.setSpawnedType(EntityType.PIG);
  166.     }
  167.     if ((getConfig().getBoolean("all-spawners")) && (!mobs.subList(0, ((Integer)this.level.get(e.getPlayer().getName())).intValue()).contains(et)))
  168.     {
  169.       e.setCancelled(true);
  170.       e.getPlayer().sendMessage(this.s + "�cYou are not allowed to place that type of spawner!");
  171.       return;
  172.     }
  173.     e.getBlock().setData((byte)et.getTypeId());
  174.     e.getBlock().getState().update();
  175.   }
  176.  
  177.   @EventHandler
  178.   public void sign(PlayerInteractEvent e)
  179.   {
  180.     Player p = e.getPlayer();
  181.     if ((e.getAction() == Action.RIGHT_CLICK_BLOCK) &&
  182.       ((e.getClickedBlock().getState() instanceof Sign)))
  183.     {
  184.       Sign sign = (Sign)e.getClickedBlock().getState();
  185.       int length = 1;
  186.       String one = ChatColor.translateAlternateColorCodes('&', sign.getLine(0));
  187.       String config = ChatColor.translateAlternateColorCodes('&', getConfig().getString("Sign-Line-1"));
  188.       if (ChatColor.stripColor(sign.getLine(3)).equals("10")) {
  189.         length = 2;
  190.       }
  191.       if ((one.equalsIgnoreCase(config)) &&
  192.         (EntityType.valueOf(ChatColor.stripColor(sign.getLine(1).toUpperCase())) != null) &&
  193.         (isInt(ChatColor.stripColor(sign.getLine(2).replaceAll("[$,]", "")))) &&
  194.         (isInt(ChatColor.stripColor(sign.getLine(3).substring(sign.getLine(3).length() - 1)))))
  195.       {
  196.         if (((Integer)this.level.get(p.getName())).intValue() >= Integer.parseInt(ChatColor.stripColor(sign.getLine(3))
  197.           .substring(ChatColor.stripColor(sign.getLine(3)).length() - length).replaceAll("[ A-Za-z]", "")))
  198.         {
  199.           EconomyResponse t = this.econ.withdrawPlayer(p, Integer.parseInt(ChatColor.stripColor(sign.getLine(2).replaceAll("[$,]", ""))));
  200.           if (p.getInventory().firstEmpty() != -1)
  201.           {
  202.             if (t.transactionSuccess())
  203.             {
  204.               ItemStack item = new ItemStack(Material.MOB_SPAWNER);
  205.               ItemMeta meta = item.getItemMeta();
  206.               item.setDurability(EntityType.valueOf(ChatColor.stripColor(sign.getLine(1).toUpperCase())).getTypeId());
  207.               meta.setDisplayName("�e" + ChatColor.stripColor(sign.getLine(1).substring(0, 1).toUpperCase()) +
  208.                 ChatColor.stripColor(sign.getLine(1).substring(1, sign.getLine(1).length())) + " �fSpawner");
  209.               item.setItemMeta(meta);
  210.               p.sendMessage(this.s + "�aBought a �e" + sign.getLine(1) + " �aspawner for �6" + sign.getLine(2));
  211.               p.getInventory().addItem(new ItemStack[] { item });
  212.               p.updateInventory();
  213.             }
  214.             else
  215.             {
  216.               p.sendMessage(this.s + "�cNot enough money!");
  217.             }
  218.           }
  219.           else {
  220.             p.sendMessage(this.s + "�cNot enough inventory space!");
  221.           }
  222.         }
  223.         else
  224.         {
  225.           p.sendMessage(this.s + "�cYou are not high enough level to purchase that spawner!");
  226.         }
  227.       }
  228.       else if ((sign.getLine(0).equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Sign-Line-1")))) &&
  229.         (EntityType.valueOf(sign.getLine(1).toUpperCase()) == null) && (e.getPlayer().isOp()) &&
  230.         (isInt(ChatColor.stripColor(sign.getLine(2).replaceAll("[$,]", "")))) &&
  231.         (isInt(sign.getLine(3).substring(sign.getLine(3).length() - 1))))
  232.       {
  233.         p.sendMessage(this.s + "�a" + sign.getLine(1).toUpperCase() + " �cis not a valid Mob type");
  234.         p.sendMessage(this.s + "�cList of Entities: �ehttps://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html");
  235.       }
  236.     }
  237.   }
  238.  
  239.   public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
  240.   {
  241.     if ((sender instanceof Player))
  242.     {
  243.       Player p = (Player)sender;
  244.       if (label.equalsIgnoreCase("rankup"))
  245.       {
  246.         if (!this.level.containsKey(p.getName())) {
  247.           this.level.put(p.getName(), Integer.valueOf(1));
  248.         }
  249.         if (((Integer)this.level.get(p.getName())).intValue() < 10)
  250.         {
  251.           if (p.getLevel() >= getConfig().getInt("rankup-level-cost-" + (((Integer)this.level.get(p.getName())).intValue() + 1)))
  252.           {
  253.             p.setLevel(p.getLevel() - getConfig().getInt("rankup-level-cost-" + (((Integer)this.level.get(p.getName())).intValue() + 1)));
  254.             this.level.put(p.getName(), Integer.valueOf(((Integer)this.level.get(p.getName())).intValue() + 1));
  255.             getServer().broadcastMessage(this.s + "�a" + p.getDisplayName() + " ranked up to Level " + this.level.get(p.getName()));
  256.           }
  257.           else
  258.           {
  259.             p.sendMessage(this.s + "�cNot enough exp to rankup! You need " + getConfig().getInt(new StringBuilder("rankup-level-cost-")
  260.               .append(((Integer)this.level.get(p.getName())).intValue() + 1).toString()) + " exp levels to rankup!");
  261.           }
  262.         }
  263.         else {
  264.           p.sendMessage(this.s + "�cYou are the max level!");
  265.         }
  266.       }
  267.       else if (label.equalsIgnoreCase("checklevel"))
  268.       {
  269.         if (!this.level.containsKey(p.getName())) {
  270.           this.level.put(p.getName(), Integer.valueOf(1));
  271.         }
  272.         p.sendMessage(this.s + "�aYou are currently level: �e" + this.level.get(p.getName()));
  273.       }
  274.     }
  275.     else
  276.     {
  277.       System.out.println(this.s + "�eYou can only send commands in-game!");
  278.     }
  279.     return false;
  280.   }
  281. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement