Events.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package de.Linus122.customoregen;
  2. import java.util.Random;
  3. import org.bukkit.Material;
  4. import org.bukkit.block.Block;
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.event.EventHandler;
  7. import org.bukkit.event.Listener;
  8. import org.bukkit.event.block.BlockFormEvent;
  9. public class Events implements Listener {
  10. @SuppressWarnings("deprecation")
  11. @EventHandler
  12. public void onCobbleGen(BlockFormEvent event) {
  13. if (Main.disabledWorlds.contains(event.getBlock().getLocation().getWorld().getName())) {
  14. return;
  15. }
  16. Material newBlock = event.getNewState().getType();
  17. Block b = event.getBlock();
  18. //System.out.println("From: " + event.getBlock().getType().name());
  19. //System.out.println("To: " + newBlock.name());
  20. if (newBlock.equals(Material.COBBLESTONE) || newBlock.equals(Material.STONE)) {
  21. GeneratorConfig gc = null;
  22. Player p = Main.getOwner(b.getLocation());
  23. if (p == null) {
  24. gc = Main.generatorConfigs.get(0);
  25. } else {
  26. int islandLevel = Main.getLevel(p);
  27. if (Main.activeInWorld.getName().equals(b.getWorld().getName())) {
  28. for (GeneratorConfig gc2 : Main.generatorConfigs) {
  29. if (gc2 == null) {
  30. continue;
  31. }
  32. if (p.hasPermission(gc2.permission) && islandLevel >= gc2.unlock_islandLevel) {
  33. // Weiter
  34. gc = gc2;
  35. }
  36. }
  37. }
  38. }
  39. if (gc == null)
  40. return;
  41. if (getObject(gc) == null)
  42. return;
  43. GeneratorItem winning = getObject(gc);
  44. if (Material.getMaterial(winning.name) == null)
  45. return;
  46. if (Material.getMaterial(winning.name).equals(Material.COBBLESTONE) && winning.damage == 0) {
  47. return;
  48. }
  49. event.setCancelled(true);
  50. b.setTypeIdAndData(Material.getMaterial(winning.name).getId(), winning.damage, true);
  51. }
  52. }
  53. public GeneratorItem getObject(GeneratorConfig gc) {
  54. Random random = new Random();
  55. double d = random.nextDouble() * 100;
  56. for (GeneratorItem key : gc.itemList) {
  57. if ((d -= key.chance) < 0)
  58. return key;
  59. }
  60. return new GeneratorItem("COBBLESTONE", (byte) 0, 0); // DEFAULT
  61. }
  62. }