Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.38 KB | None | 0 0
  1. package me.nibblesnow.spawners;
  2.  
  3. import java.text.DecimalFormat;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.Location;
  11. import org.bukkit.Material;
  12. import org.bukkit.block.Block;
  13. import org.bukkit.block.CreatureSpawner;
  14. import org.bukkit.command.Command;
  15. import org.bukkit.command.CommandSender;
  16. import org.bukkit.enchantments.Enchantment;
  17. import org.bukkit.entity.Player;
  18. import org.bukkit.event.EventHandler;
  19. import org.bukkit.event.EventPriority;
  20. import org.bukkit.event.Listener;
  21. import org.bukkit.event.block.Action;
  22. import org.bukkit.event.block.BlockBreakEvent;
  23. import org.bukkit.event.block.BlockPlaceEvent;
  24. import org.bukkit.event.entity.EntityExplodeEvent;
  25. import org.bukkit.event.player.PlayerInteractEvent;
  26. import org.bukkit.inventory.ItemStack;
  27. import org.bukkit.inventory.meta.ItemMeta;
  28. import org.bukkit.plugin.Plugin;
  29. import org.bukkit.plugin.RegisteredServiceProvider;
  30. import org.bukkit.plugin.java.JavaPlugin;
  31.  
  32. import net.milkbowl.vault.economy.Economy;
  33.  
  34. public class Spawners extends JavaPlugin implements Listener {
  35.  
  36. public static Economy economy = null;
  37. private HashMap<Location, Long> noTax = new HashMap<Location, Long>();
  38.  
  39.  
  40. Plugin main = this;
  41.  
  42. private boolean setupEconomy() {
  43. RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
  44. if (economyProvider != null) {
  45. economy = economyProvider.getProvider();
  46. }
  47. return (economy != null);
  48.  
  49. // if (economy.has(player, 25000) {
  50. // player.sendMessage("you have 25000");
  51. // return;
  52. // }
  53. }
  54.  
  55. public void onEnable() {
  56. getServer().getPluginManager().registerEvents(this, this);
  57. getCommand("givespawner").setExecutor(this);
  58. setupEconomy();
  59. // Registers all commands in this class.
  60. saveDefaultConfig();
  61. main.saveConfig();
  62.  
  63.  
  64. }
  65.  
  66. public String cc(String message) {
  67. return ChatColor.translateAlternateColorCodes('&', message);
  68. }
  69.  
  70. /**
  71. * @author Nibblesnow
  72. * @version 1.0-ALPHA (Made for AthensMC)
  73. */
  74.  
  75. @EventHandler(priority=EventPriority.HIGHEST) // Event for when you click a Mob Spawner
  76. public void onSpawnerClick(PlayerInteractEvent event) {
  77. Material block = (Material) event.getClickedBlock().getType();
  78. Player player = (Player) event.getPlayer();
  79.  
  80. if (event.getAction().equals(Action.LEFT_CLICK_BLOCK) || event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
  81. if (block.equals(Material.MOB_SPAWNER)) {
  82.  
  83. Block spawnerBlock = event.getClickedBlock();
  84. CreatureSpawner spawnerCreature = (CreatureSpawner) spawnerBlock.getState();
  85. String spawnerType = spawnerCreature.getCreatureTypeName();
  86.  
  87. int spawnerWorth = 0;
  88.  
  89. // Checking which spawner it is and how much it costs to mine.
  90. switch (spawnerType) {
  91. case "Creeper": // 52:50
  92. spawnerWorth = 390000;
  93. break;
  94. case "Skeleton": // 52:51
  95. spawnerWorth = 115000;
  96. break;
  97. case "Spider": // 52:52
  98. spawnerWorth = 95000;
  99. break;
  100. case "Giant": // 52:53
  101. spawnerWorth = 5300;
  102. break;
  103. case "Zombie": // 52:54
  104. spawnerWorth = 115000;
  105. break;
  106. case "Slime": // 52:55
  107. spawnerWorth = 1300000;
  108. break;
  109. case "Ghast": // 52:56
  110. spawnerWorth = 5600;
  111. break;
  112. case "PigZombie": // 52:57
  113. spawnerType = "Zombie Pigman";
  114. spawnerWorth = 390000;
  115. break;
  116. case "Enderman": // 52:58
  117. spawnerWorth = 390000;
  118. break;
  119. case "CaveSpider": // 52:59
  120. spawnerType = "Cave Spider";
  121. spawnerWorth = 90000;
  122. case "Silverfish": // 52:60
  123. spawnerWorth = 6000;
  124. break;
  125. case "Blaze": // 52:61
  126. spawnerWorth = 390000;
  127. break;
  128. case "LavaSlime": // 52:62
  129. spawnerType = "Magma Cube";
  130. spawnerWorth = 6200;
  131. break;
  132. case "EnderDragon": // 52:63
  133. spawnerType = "Ender Dragon";
  134. spawnerWorth = 6300;
  135. break;
  136. case "WitherBoss": // 52:64
  137. spawnerType = "Wither";
  138. spawnerWorth = 6400;
  139. break;
  140. case "Bat": // 52:65
  141. spawnerWorth = 6500;
  142. break;
  143. case "Witch": // 52:66
  144. spawnerWorth = 6600;
  145. break;
  146. case "Endermite": // 52:67
  147. spawnerWorth = 6700;
  148. break;
  149. case "Guardian": // 52:68
  150. spawnerWorth = 6800;
  151. break;
  152. case "Pig": // 52:90
  153. spawnerWorth = 65000;
  154. break;
  155. case "Sheep": // 52:91
  156. spawnerWorth = 95000;
  157. break;
  158. case "Cow": // 52:92
  159. spawnerWorth = 16250;
  160. break;
  161. case "Chicken": // 52:93
  162. spawnerWorth = 65000;
  163. break;
  164. case "Squid": // 52:94
  165. spawnerWorth = 9400;
  166. break;
  167. case "Wolf": // 52:95
  168. spawnerWorth = 97500;
  169. break;
  170. case "MushroomCow": // 52:96
  171. spawnerType = "Mooshroom Cow";
  172. spawnerWorth = 9600;
  173. break;
  174. case "SnowMan": // 52:97
  175. spawnerType = "Snow Golem";
  176. spawnerWorth = 9700;
  177. break;
  178. case "Ozelot": // 52:98
  179. spawnerType = "Ocelot";
  180. spawnerWorth = 9800;
  181. break;
  182. case "VillagerGolem": // 52:99
  183. spawnerType = "Iron Golem";
  184. spawnerWorth = 2000000;
  185. break;
  186. case "EntityHorse": // 52:100
  187. spawnerType = "Horse";
  188. spawnerWorth = 10000;
  189. break;
  190. case "Rabbit": // 52:101
  191. spawnerWorth = 10100;
  192. break;
  193. case "Villager": // 52:120
  194. spawnerWorth = 12000;
  195. break;
  196. }
  197.  
  198. int spawnerFee = (int) (spawnerWorth * 0.05);
  199. int percentage = 5;
  200.  
  201. Long remaining = (long) 0;
  202. Long last = noTax.get(event.getClickedBlock().getLocation());
  203.  
  204.  
  205. if (last != null) {
  206. Long earliest = last + 300 * 1000;
  207. Long now = System.currentTimeMillis();
  208. if (now < earliest) {
  209. remaining = (earliest - now) + 1;
  210. spawnerFee = 0;
  211. percentage = 0;
  212. }
  213. }
  214.  
  215. List<String> placedSpawners = main.getConfig().getStringList("placed-spawners");
  216.  
  217. if (!placedSpawners.contains(event.getClickedBlock().getLocation().toString())) {
  218. spawnerFee = 0;
  219. percentage = 0;
  220. }
  221.  
  222. if (main.getConfig().getBoolean("spring-cleaning")) {
  223. spawnerFee = 0;
  224. percentage = 0;
  225. }
  226.  
  227. int seconds = (int) (remaining / 1000);
  228. int minutes = (int) (seconds / 60);
  229. seconds = (int) (seconds) - (minutes * 60);
  230.  
  231. String formattedSpawnerFee = new DecimalFormat("#,###").format(spawnerFee); // Adds commas to amount e.g. 25000 changes to 25,000
  232.  
  233. boolean hasPermission = false;
  234. boolean hasSilkTouch = false;
  235. boolean hasMoney = false;
  236.  
  237. String requirementsMessage = "&c&l(!)&c To collect this &l" + spawnerType + "&c Spawner you must have...";
  238.  
  239. if (player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) { // Checks if player's item in hand has silk touch
  240. hasSilkTouch = true;
  241. requirementsMessage+="\n&c&l*&f Silk Touch Pickaxe&7 (in hand) &a&l✔";
  242. } else {
  243. requirementsMessage+="\n&c&l*&f Silk Touch Pickaxe&7 (in hand) &c&l✘";
  244. }
  245.  
  246. if (player.hasPermission("spawners.mine")) { // Checks if player has permission
  247. hasPermission = true;
  248. requirementsMessage+="\n&c&l*&6 Archer Rank&7 (or higher) &a&l✔";
  249. } else {
  250. requirementsMessage+="\n&c&l*&6 Archer Rank&7 (or higher) &c&l✘";
  251. }
  252.  
  253. if (economy.has(player, spawnerFee)) { // Checks if player has enough money
  254. hasMoney = true;
  255. requirementsMessage+="\n&c&l*&f $" + formattedSpawnerFee + " Money &7(5% of /f top Value) &a&l✔";
  256. } else {
  257. int moneyNeeded = (int) ((int) spawnerFee - economy.getBalance(player));
  258. if (moneyNeeded == 0) {
  259. requirementsMessage+="\n&c&l*&f $" + formattedSpawnerFee + " Money &7(less than $1 needed) &c&l✘";
  260. } else {
  261. requirementsMessage+="\n&c&l*&f $" + formattedSpawnerFee + " Money &7($" + (new DecimalFormat("#,###").format(moneyNeeded)) + " needed) &c&l✘";
  262. }
  263. }
  264.  
  265. if ((hasSilkTouch == true) && (hasPermission == true) && (hasMoney == true)) { // Checks if all requirements above are met.
  266. player.sendMessage(cc("&e&l(!)&e You will be charged &l$" + formattedSpawnerFee + "&e (" + percentage + "%) for mining this &l" + spawnerType + "&e Spawner. (" + minutes + "m " + seconds + "s left)\n&7Funds will be automatically taken from your balance.")
  267. .replace(" 0s", "")
  268. .replace("0m ", "")
  269. .replace(" (left)", ""));
  270.  
  271. return;
  272. }
  273.  
  274. player.sendMessage(cc(requirementsMessage));
  275. }
  276. }
  277. return;
  278. }
  279.  
  280. @EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
  281. public void onSpawnerBreak(BlockBreakEvent event) {
  282. Player player = (Player) event.getPlayer();
  283. Block block = (Block) event.getBlock();
  284.  
  285. if (block.getType() != Material.MOB_SPAWNER) {
  286. return;
  287. }
  288.  
  289. CreatureSpawner spawnerCreature = (CreatureSpawner) block.getState();
  290. String spawnerType = spawnerCreature.getCreatureTypeName();
  291. int spawnerWorth = 0;
  292.  
  293. // Checking which spawner it is and how much it costs to mine.
  294. switch (spawnerType) {
  295. case "Creeper": // 52:50
  296. spawnerWorth = 390000;
  297. break;
  298. case "Skeleton": // 52:51
  299. spawnerWorth = 115000;
  300. break;
  301. case "Spider": // 52:52
  302. spawnerWorth = 95000;
  303. break;
  304. case "Giant": // 52:53
  305. spawnerWorth = 5300;
  306. break;
  307. case "Zombie": // 52:54
  308. spawnerWorth = 115000;
  309. break;
  310. case "Slime": // 52:55
  311. spawnerWorth = 1300000;
  312. break;
  313. case "Ghast": // 52:56
  314. spawnerWorth = 5600;
  315. break;
  316. case "PigZombie": // 52:57
  317. spawnerType = "Zombie Pigman";
  318. spawnerWorth = 390000;
  319. break;
  320. case "Enderman": // 52:58
  321. spawnerWorth = 390000;
  322. break;
  323. case "CaveSpider": // 52:59
  324. spawnerType = "Cave Spider";
  325. spawnerWorth = 90000;
  326. break;
  327. case "Silverfish": // 52:60
  328. spawnerWorth = 6000;
  329. break;
  330. case "Blaze": // 52:61
  331. spawnerWorth = 390000;
  332. break;
  333. case "LavaSlime": // 52:62
  334. spawnerType = "Magma Cube";
  335. spawnerWorth = 6200;
  336. break;
  337. case "EnderDragon": // 52:63
  338. spawnerType = "Ender Dragon";
  339. spawnerWorth = 6300;
  340. break;
  341. case "WitherBoss": // 52:64
  342. spawnerType = "Wither";
  343. spawnerWorth = 6400;
  344. break;
  345. case "Bat": // 52:65
  346. spawnerWorth = 6500;
  347. break;
  348. case "Witch": // 52:66
  349. spawnerWorth = 6600;
  350. break;
  351. case "Endermite": // 52:67
  352. spawnerWorth = 6700;
  353. break;
  354. case "Guardian": // 52:68
  355. spawnerWorth = 6800;
  356. break;
  357. case "Pig": // 52:90
  358. spawnerWorth = 65000;
  359. break;
  360. case "Sheep": // 52:91
  361. spawnerWorth = 95000;
  362. break;
  363. case "Cow": // 52:92
  364. spawnerWorth = 16250;
  365. break;
  366. case "Chicken": // 52:93
  367. spawnerWorth = 65000;
  368. break;
  369. case "Squid": // 52:94
  370. spawnerWorth = 9400;
  371. break;
  372. case "Wolf": // 52:95
  373. spawnerWorth = 97500;
  374. break;
  375. case "MushroomCow": // 52:96
  376. spawnerType = "Mooshroom Cow";
  377. spawnerWorth = 9600;
  378. break;
  379. case "SnowMan": // 52:97
  380. spawnerType = "Snow Golem";
  381. spawnerWorth = 9700;
  382. break;
  383. case "Ozelot": // 52:98
  384. spawnerType = "Ocelot";
  385. spawnerWorth = 9800;
  386. break;
  387. case "VillagerGolem": // 52:99
  388. spawnerType = "Iron Golem";
  389. spawnerWorth = 2000000;
  390. break;
  391. case "EntityHorse": // 52:100
  392. spawnerType = "Horse";
  393. spawnerWorth = 10000;
  394. break;
  395. case "Rabbit": // 52:101
  396. spawnerWorth = 10100;
  397. break;
  398. case "Villager": // 52:120
  399. spawnerWorth = 12000;
  400. break;
  401. }
  402.  
  403. int spawnerFee = (int) (spawnerWorth * 0.05);
  404.  
  405.  
  406. Long last = noTax.get(event.getBlock().getLocation());
  407.  
  408. if (last != null) {
  409. Long earliest = last + 300 * 1000;
  410. Long now = System.currentTimeMillis();
  411. if (now < earliest) {
  412. //Long remaining = (earliest - now) + 1;
  413. spawnerFee = 0;
  414. }
  415. }
  416.  
  417. List<String> placedSpawners = main.getConfig().getStringList("placed-spawners");
  418.  
  419. if (!placedSpawners.contains(event.getBlock().getLocation().toString())) {
  420. spawnerFee = 0;
  421. }
  422.  
  423. if (main.getConfig().getBoolean("spring-cleaning")) {
  424. spawnerFee = 0;
  425. }
  426.  
  427. String formattedSpawnerFee = new DecimalFormat("#,###").format(spawnerFee);
  428. String formattedSpawnerWorth = new DecimalFormat("#,###").format(spawnerWorth);
  429.  
  430. if (!player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
  431. player.sendMessage(cc("&c&l(!)&c You mined a &l" + spawnerType + "&c Spawner without a Silk Touch Pickaxe.\n&7You will not receive this spawner as a placable block."));
  432. return;
  433. }
  434.  
  435. if (!economy.has(player, spawnerFee)) { // Checks if player has enough money
  436. event.setCancelled(true);
  437. return;
  438. }
  439.  
  440. event.setExpToDrop(0);
  441. ItemStack spawnerDrop = new ItemStack(Material.MOB_SPAWNER, 1);
  442. ItemMeta spawnerInfo = spawnerDrop.getItemMeta();
  443.  
  444. spawnerInfo.setDisplayName(cc("&6&l" + spawnerType + "&6 Spawner"));
  445. ArrayList<String> lore = new ArrayList<String>();
  446. lore.add(cc("&7/f top Value: &e$" + formattedSpawnerWorth));
  447. spawnerInfo.setLore(lore);
  448.  
  449. spawnerDrop.setItemMeta(spawnerInfo);
  450. event.getBlock().getWorld().dropItemNaturally(event.getBlock().getLocation(), spawnerDrop);
  451. player.sendMessage(cc("&c&l- $" + formattedSpawnerFee + "\n&a&l(!)&a You mined a(n) &6&l" + spawnerType + "&6 Spawner"));
  452. economy.withdrawPlayer(player, spawnerFee);
  453. if (placedSpawners.contains(event.getBlock().getLocation().toString())) {
  454. placedSpawners.remove(event.getBlock().getLocation().toString());
  455. main.getConfig().set("placed-spawners", placedSpawners.toString());
  456. main.saveConfig();
  457. }
  458. return;
  459. }
  460.  
  461. @EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
  462. public void onSpawnerPlace(BlockPlaceEvent event) {
  463. Player player = event.getPlayer();
  464. ItemStack item = event.getItemInHand();
  465.  
  466. if (!item.getType().equals(Material.MOB_SPAWNER)) {
  467. return;
  468. }
  469.  
  470. String spawnerType = (String) ChatColor.stripColor(item.getItemMeta().getDisplayName());
  471. spawnerType = spawnerType.substring(0, spawnerType.length() - 8);
  472.  
  473. long now = System.currentTimeMillis();
  474.  
  475. noTax.put(event.getBlockPlaced().getLocation(), (long) now);
  476.  
  477.  
  478. player.sendMessage(cc("&c&l(!)&c You placed a(n) &6&l" + spawnerType + "&6 Spawner\n&7Mine this spawner within &l5&7 minutes for no charge."));
  479.  
  480. List<String> placedSpawners = main.getConfig().getStringList("placed-spawners");
  481. placedSpawners.add(event.getBlock().getLocation().toString());
  482. main.getConfig().set("placed-spawners", placedSpawners);
  483. main.saveConfig();
  484.  
  485. if (spawnerType.equals("Iron Golem")) {
  486. spawnerType = "VillagerGolem";
  487. }
  488. if (spawnerType.equals("Snow Golem")) {
  489. spawnerType = "SnowMan";
  490. }
  491. if (spawnerType.equals("Magma Cube")) {
  492. spawnerType = "LavaSlime";
  493. }
  494. if (spawnerType.equals("Cave Spider")) {
  495. spawnerType = "CaveSpider";
  496. }
  497. if (spawnerType.equals("Ender Dragon")) {
  498. spawnerType = "EnderDragon";
  499. }
  500. if (spawnerType.equals("Zombie Pigman")) {
  501. spawnerType = "PigZombie";
  502. }
  503. if (spawnerType.equals("Mushroom Cow")) {
  504. spawnerType = "MushroomCow";
  505. }
  506.  
  507. CreatureSpawner spawner = (CreatureSpawner) event.getBlock().getState();
  508. spawner.setCreatureTypeByName(spawnerType);
  509. return;
  510. }
  511.  
  512. @EventHandler(priority=EventPriority.HIGHEST)
  513. public void onExplosionEvent(EntityExplodeEvent event) {
  514. List<Block> blownBlocks = event.blockList();
  515. for (Block block : blownBlocks) {
  516. if (block.getType() == Material.MOB_SPAWNER) {
  517.  
  518. List<String> placedSpawners = main.getConfig().getStringList("placed-spawners");
  519. if (placedSpawners.contains(block.getLocation().toString())) {
  520. placedSpawners.remove(block.getLocation().toString());
  521. main.getConfig().set("placed-spawners", placedSpawners);
  522. main.saveConfig();
  523. }
  524.  
  525. int randomNumber = (int) (Math.random() * 100);
  526.  
  527. if (randomNumber <= 30) {
  528. CreatureSpawner spawnerCreature = (CreatureSpawner) block.getState();
  529. String spawnerType = spawnerCreature.getCreatureTypeName();
  530. int spawnerWorth = 0;
  531.  
  532. // Checking which spawner it is and how much it costs to mine.
  533. switch (spawnerType) {
  534. case "Creeper": // 52:50
  535. spawnerWorth = 390000;
  536. break;
  537. case "Skeleton": // 52:51
  538. spawnerWorth = 115000;
  539. break;
  540. case "Spider": // 52:52
  541. spawnerWorth = 95000;
  542. break;
  543. case "Giant": // 52:53
  544. spawnerWorth = 5300;
  545. break;
  546. case "Zombie": // 52:54
  547. spawnerWorth = 115000;
  548. break;
  549. case "Slime": // 52:55
  550. spawnerWorth = 1300000;
  551. break;
  552. case "Ghast": // 52:56
  553. spawnerWorth = 5600;
  554. break;
  555. case "PigZombie": // 52:57
  556. spawnerType = "Zombie Pigman";
  557. spawnerWorth = 390000;
  558. break;
  559. case "Enderman": // 52:58
  560. spawnerWorth = 390000;
  561. break;
  562. case "CaveSpider": // 52:59
  563. spawnerType = "Cave Spider";
  564. spawnerWorth = 90000;
  565. break;
  566. case "Silverfish": // 52:60
  567. spawnerWorth = 6000;
  568. break;
  569. case "Blaze": // 52:61
  570. spawnerWorth = 390000;
  571. break;
  572. case "LavaSlime": // 52:62
  573. spawnerType = "Magma Cube";
  574. spawnerWorth = 6200;
  575. break;
  576. case "EnderDragon": // 52:63
  577. spawnerType = "Ender Dragon";
  578. spawnerWorth = 6300;
  579. break;
  580. case "WitherBoss": // 52:64
  581. spawnerType = "Wither";
  582. spawnerWorth = 6400;
  583. break;
  584. case "Bat": // 52:65
  585. spawnerWorth = 6500;
  586. break;
  587. case "Witch": // 52:66
  588. spawnerWorth = 6600;
  589. break;
  590. case "Endermite": // 52:67
  591. spawnerWorth = 6700;
  592. break;
  593. case "Guardian": // 52:68
  594. spawnerWorth = 6800;
  595. break;
  596. case "Pig": // 52:90
  597. spawnerWorth = 65000;
  598. break;
  599. case "Sheep": // 52:91
  600. spawnerWorth = 95000;
  601. break;
  602. case "Cow": // 52:92
  603. spawnerWorth = 16250;
  604. break;
  605. case "Chicken": // 52:93
  606. spawnerWorth = 65000;
  607. break;
  608. case "Squid": // 52:94
  609. spawnerWorth = 9400;
  610. break;
  611. case "Wolf": // 52:95
  612. spawnerWorth = 97500;
  613. break;
  614. case "MushroomCow": // 52:96
  615. spawnerType = "Mooshroom Cow";
  616. spawnerWorth = 9600;
  617. break;
  618. case "SnowMan": // 52:97
  619. spawnerType = "Snow Golem";
  620. spawnerWorth = 9700;
  621. break;
  622. case "Ozelot": // 52:98
  623. spawnerType = "Ocelot";
  624. spawnerWorth = 9800;
  625. break;
  626. case "VillagerGolem": // 52:99
  627. spawnerType = "Iron Golem";
  628. spawnerWorth = 2000000;
  629. break;
  630. case "EntityHorse": // 52:100
  631. spawnerType = "Horse";
  632. spawnerWorth = 10000;
  633. break;
  634. case "Rabbit": // 52:101
  635. spawnerWorth = 10100;
  636. break;
  637. case "Villager": // 52:120
  638. spawnerWorth = 12000;
  639. break;
  640. }
  641.  
  642. String formattedSpawnerWorth = new DecimalFormat("#,###").format(spawnerWorth);
  643.  
  644. ItemStack spawnerDrop = new ItemStack(Material.MOB_SPAWNER, 1);
  645. ItemMeta spawnerInfo = spawnerDrop.getItemMeta();
  646.  
  647. spawnerInfo.setDisplayName(cc("&6&l" + spawnerType + "&6 Spawner"));
  648. ArrayList<String> lore = new ArrayList<String>();
  649. lore.add(cc("&7/f top Value: &e$" + formattedSpawnerWorth));
  650. spawnerInfo.setLore(lore);
  651.  
  652. spawnerDrop.setItemMeta(spawnerInfo);
  653. event.getLocation().getWorld().dropItemNaturally(event.getLocation(), spawnerDrop);
  654. }
  655.  
  656.  
  657.  
  658. }
  659. }
  660. return;
  661.  
  662. }
  663.  
  664. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  665.  
  666. if (command.getName().equalsIgnoreCase("givespawner")) {
  667. if (!sender.hasPermission("spawners.givespawner")) return true;
  668.  
  669. if (args.length == 0) {
  670. sender.sendMessage(cc("&cUsage: /" + label + " <mob> [player]"));
  671. sender.sendMessage(cc("&6Mobs: &eCreeper, Skeleton, Spider, Giant, Zombie, Slime, Ghast, Pigman, ZombiePigman, PigZombie, Enderman, CaveSpider, Cave, Silverfish, Blaze, MagmaCube, Magma, EnderDragon, Dragon, Wither, Bat, Witch, Endermite, Guardian, Pig, Sheep, Cow, Chicken, Squid, Wolf, Dog, MushroomCow, Mushroom, MooshroomCow, Mooshroom, SnowGolem, SG, Ocelot, Cat, IronGolem, IG, Horse, Rabbit, Villager"));
  672. return true;
  673. }
  674.  
  675. Player player = (Player) sender;
  676. String spawnerType = args[0].toLowerCase();
  677. boolean spawnerExists = false;
  678. int spawnerWorth = 0;
  679.  
  680. switch (spawnerType) {
  681. case "creeper": // 52:50
  682. spawnerType = "Creeper";
  683. spawnerWorth = 390000;
  684. spawnerExists = true;
  685. break;
  686. case "skeleton": // 52:51
  687. spawnerType = "Skeleton";
  688. spawnerWorth = 115000;
  689. spawnerExists = true;
  690. break;
  691. case "spider": // 52:52
  692. spawnerType = "Spider";
  693. spawnerWorth = 95000;
  694. spawnerExists = true;
  695. break;
  696. case "giant": // 52:53
  697. spawnerType = "Giant";
  698. spawnerWorth = 5300;
  699. spawnerExists = true;
  700. break;
  701. case "zombie": // 52:54
  702. spawnerType = "Zombie";
  703. spawnerWorth = 115000;
  704. spawnerExists = true;
  705. break;
  706. case "slime": // 52:55
  707. spawnerType = "Slime";
  708. spawnerWorth = 1300000;
  709. spawnerExists = true;
  710. break;
  711. case "ghast": // 52:56
  712. spawnerType = "Ghast";
  713. spawnerWorth = 5600;
  714. spawnerExists = true;
  715. break;
  716. case "pigman": // 52:57
  717. spawnerType = "Zombie Pigman";
  718. spawnerWorth = 390000;
  719. spawnerExists = true;
  720. break;
  721. case "zombiepigman": // 52:57
  722. spawnerType = "Zombie Pigman";
  723. spawnerWorth = 390000;
  724. spawnerExists = true;
  725. break;
  726. case "pigzombie": // 52:57
  727. spawnerType = "Zombie Pigman";
  728. spawnerWorth = 390000;
  729. spawnerExists = true;
  730. break;
  731. case "enderman": // 52:58
  732. spawnerType = "Enderman";
  733. spawnerWorth = 390000;
  734. spawnerExists = true;
  735. break;
  736. case "cavespider": // 52:59
  737. spawnerType = "Cave Spider";
  738. spawnerWorth = 90000;
  739. spawnerExists = true;
  740. break;
  741. case "cave": // 52:59
  742. spawnerType = "Cave Spider";
  743. spawnerWorth = 90000;
  744. spawnerExists = true;
  745. break;
  746. case "silverfish": // 52:60
  747. spawnerType = "Silverfish";
  748. spawnerWorth = 6000;
  749. spawnerExists = true;
  750. break;
  751. case "blaze": // 52:61
  752. spawnerType = "Blaze";
  753. spawnerWorth = 390000;
  754. spawnerExists = true;
  755. break;
  756. case "magmacube": // 52:62
  757. spawnerType = "Magma Cube";
  758. spawnerWorth = 6200;
  759. spawnerExists = true;
  760. break;
  761. case "magma": // 52:62
  762. spawnerType = "Magma Cube";
  763. spawnerWorth = 6200;
  764. spawnerExists = true;
  765. break;
  766. case "enderdragon": // 52:63
  767. spawnerType = "Ender Dragon";
  768. spawnerWorth = 6300;
  769. spawnerExists = true;
  770. break;
  771. case "dragon": // 52:63
  772. spawnerType = "Ender Dragon";
  773. spawnerWorth = 6300;
  774. spawnerExists = true;
  775. break;
  776. case "wither": // 52:64
  777. spawnerType = "Wither";
  778. spawnerWorth = 6400;
  779. spawnerExists = true;
  780. break;
  781. case "bat": // 52:65
  782. spawnerType = "Bat";
  783. spawnerWorth = 6500;
  784. spawnerExists = true;
  785. break;
  786. case "witch": // 52:66
  787. spawnerType = "Witch";
  788. spawnerWorth = 6600;
  789. spawnerExists = true;
  790. break;
  791. case "endermite": // 52:67
  792. spawnerType = "Endermite";
  793. spawnerWorth = 6700;
  794. spawnerExists = true;
  795. break;
  796. case "guardian": // 52:68
  797. spawnerType = "Guardian";
  798. spawnerWorth = 6800;
  799. spawnerExists = true;
  800. break;
  801. case "pig": // 52:90
  802. spawnerType = "Pig";
  803. spawnerWorth = 65000;
  804. spawnerExists = true;
  805. break;
  806. case "sheep": // 52:91
  807. spawnerType = "Sheep";
  808. spawnerWorth = 95000;
  809. spawnerExists = true;
  810. break;
  811. case "cow": // 52:92
  812. spawnerType = "Cow";
  813. spawnerWorth = 16250;
  814. spawnerExists = true;
  815. break;
  816. case "chicken": // 52:93
  817. spawnerType = "Chicken";
  818. spawnerWorth = 65000;
  819. spawnerExists = true;
  820. break;
  821. case "squid": // 52:94
  822. spawnerType = "Squid";
  823. spawnerWorth = 9400;
  824. spawnerExists = true;
  825. break;
  826. case "wolf": // 52:95
  827. spawnerType = "Wolf";
  828. spawnerWorth = 97500;
  829. spawnerExists = true;
  830. break;
  831. case "dog": // 52:95
  832. spawnerType = "Wolf";
  833. spawnerWorth = 97500;
  834. spawnerExists = true;
  835. break;
  836. case "mushroomcow": // 52:96
  837. spawnerType = "Mooshroom Cow";
  838. spawnerWorth = 9600;
  839. spawnerExists = true;
  840. break;
  841. case "mushroom": // 52:96
  842. spawnerType = "Mooshroom Cow";
  843. spawnerWorth = 9600;
  844. spawnerExists = true;
  845. break;
  846. case "mooshroomcow": // 52:96
  847. spawnerType = "Mooshroom Cow";
  848. spawnerWorth = 9600;
  849. spawnerExists = true;
  850. break;
  851. case "mooshroom": // 52:96
  852. spawnerType = "Mooshroom Cow";
  853. spawnerWorth = 9600;
  854. spawnerExists = true;
  855. break;
  856. case "snowgolem": // 52:97
  857. spawnerType = "Snow Golem";
  858. spawnerWorth = 9700;
  859. spawnerExists = true;
  860. break;
  861. case "sg": // 52:97
  862. spawnerType = "Snow Golem";
  863. spawnerWorth = 9700;
  864. spawnerExists = true;
  865. break;
  866. case "ocelot": // 52:98
  867. spawnerType = "Ocelot";
  868. spawnerWorth = 9800;
  869. spawnerExists = true;
  870. break;
  871. case "cat": // 52:98
  872. spawnerType = "Ocelot";
  873. spawnerWorth = 9800;
  874. spawnerExists = true;
  875. break;
  876. case "irongolem": // 52:99
  877. spawnerType = "Iron Golem";
  878. spawnerWorth = 2000000;
  879. spawnerExists = true;
  880. break;
  881. case "ig": // 52:99
  882. spawnerType = "Iron Golem";
  883. spawnerWorth = 2000000;
  884. spawnerExists = true;
  885. break;
  886. case "horse": // 52:100
  887. spawnerType = "Horse";
  888. spawnerWorth = 10000;
  889. spawnerExists = true;
  890. break;
  891. case "rabbit": // 52:101
  892. spawnerType = "Rabbit";
  893. spawnerWorth = 10100;
  894. spawnerExists = true;
  895. break;
  896. case "villager": // 52:120
  897. spawnerType = "Villager";
  898. spawnerWorth = 12000;
  899. spawnerExists = true;
  900. break;
  901. }
  902.  
  903. if(spawnerType.equalsIgnoreCase("list")) {
  904. sender.sendMessage(cc("&6Mobs: &eCreeper, Skeleton, Spider, Giant, Zombie, Slime, Ghast, Pigman, ZombiePigman, PigZombie, Enderman, CaveSpider, Cave, Silverfish, Blaze, MagmaCube, Magma, EnderDragon, Dragon, Wither, Bat, Witch, Endermite, Guardian, Pig, Sheep, Cow, Chicken, Squid, Wolf, Dog, MushroomCow, Mushroom, MooshroomCow, Mooshroom, SnowGolem, SG, Ocelot, Cat, IronGolem, IG, Horse, Rabbit, Villager"));
  905.  
  906. return true;
  907. }
  908.  
  909. if (spawnerExists == false) {
  910. sender.sendMessage(cc("&c&l(!)&c " + spawnerType + " does not exist."));
  911. return true;
  912. }
  913.  
  914.  
  915. String formattedSpawnerWorth = new DecimalFormat("#,###").format(spawnerWorth);
  916.  
  917. ItemStack spawnerBlock = new ItemStack(Material.MOB_SPAWNER, 1);
  918. ItemMeta spawnerMeta = spawnerBlock.getItemMeta();
  919.  
  920. spawnerMeta.setDisplayName(cc("&6&l" + spawnerType + "&6 Spawner"));
  921.  
  922. ArrayList<String> lore = new ArrayList<String>();
  923. lore.add(cc("&7/f top Value: &e$" + formattedSpawnerWorth));
  924. spawnerMeta.setLore(lore);
  925.  
  926. spawnerBlock.setItemMeta(spawnerMeta);
  927.  
  928.  
  929. if (args.length >= 2) {
  930. Player target = Bukkit.getPlayer(args[1]);
  931. if (target == null) {
  932. player.sendMessage(cc("&c&l(!)&c " + target + " could not be found."));
  933. return true;
  934. }
  935. target.getInventory().addItem(new ItemStack(spawnerBlock));
  936. target.sendMessage(cc("&a&l(!)&a You were given a(n) &6&l" + spawnerType + "&6 Spawner\n&7This spawner is worth $" + formattedSpawnerWorth + " on /f top."));
  937. sender.sendMessage(cc("&a&l(!)&a You gave " + target.getName() + " a(n) &6&l" + spawnerType + "&6 Spawner\n&7This spawner is worth $" + formattedSpawnerWorth + " on /f top."));
  938. return true;
  939. }
  940.  
  941. player.sendMessage(cc("&a&l(!)&a You were given a(n) &6&l" + spawnerType + "&6 Spawner\n&7This spawner is worth $" + formattedSpawnerWorth + " on /f top."));
  942. player.getInventory().addItem(new ItemStack(spawnerBlock));
  943.  
  944. //spawnerData.setDisplayName(arg0);
  945.  
  946. return true;
  947. }
  948.  
  949.  
  950. if (command.getName().equalsIgnoreCase("givepickaxe")) {
  951. if (!sender.hasPermission("spawners.givepickaxe")) return true;
  952.  
  953. ItemStack dpickaxe = new ItemStack(Material.DIAMOND_PICKAXE, 1);
  954. dpickaxe.addEnchantment(Enchantment.SILK_TOUCH, 1);
  955.  
  956. if (args.length == 0) {
  957. Player player = (Player) sender;
  958. player.getInventory().addItem(new ItemStack(dpickaxe));
  959. player.sendMessage(cc("&a&l(!)&a You were given a &lSilk Touch&a Pickaxe"));
  960. return true;
  961. }
  962.  
  963. if (args.length >= 1) {
  964. Player target = Bukkit.getPlayer(args[0]);
  965. if (target == null) {
  966. sender.sendMessage(cc("&c&l(!)&c " + target + " could not be found."));
  967. return true;
  968. }
  969. target.getInventory().addItem(new ItemStack(dpickaxe));
  970. target.sendMessage(cc("&a&l(!)&a You were given a &lSilk Touch&a Pickaxe"));
  971. sender.sendMessage(cc("&a&l(!)&a You gave " + target.getName() + " a &lSilk Touch&a Pickaxe"));
  972. }
  973. }
  974.  
  975. if (command.getName().equalsIgnoreCase("togglespawnerfee")) {
  976. if (!sender.hasPermission("spawners.togglespawnerfee")) return true;
  977.  
  978. if (main.getConfig().getBoolean("spring-cleaning")) {
  979. main.getConfig().set("spring-cleaning", false);
  980. main.saveConfig();
  981. sender.sendMessage(cc("&a&l(!)&a You toggled Spawner Fees &lON\n&7Players will now pay to mine up spawners."));
  982. return true;
  983. }
  984. main.getConfig().set("spring-cleaning", true);
  985. main.saveConfig();
  986. sender.sendMessage(cc("&c&l(!)&c You toggled Spawner Fees &lOFF\n&7Players will no longer pay to mine up spawners."));
  987. return true;
  988. }
  989. return true;
  990. }
  991.  
  992.  
  993.  
  994. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement