Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.94 KB | None | 0 0
  1. package fr.epicminions.events;
  2.  
  3. import fr.epicminions.Main;
  4. import fr.epicminions.minion.Minion;
  5. import fr.epicminions.utils.Manager;
  6. import fr.epicminions.utils.User;
  7. import fr.epicminions.utils.Utils;
  8. import fr.epicminions.utils.commons.inventory.ItemsUtils;
  9. import org.bukkit.Material;
  10. import org.bukkit.entity.ArmorStand;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.entity.EntityDamageEvent;
  15. import org.bukkit.event.entity.PlayerDeathEvent;
  16. import org.bukkit.event.inventory.InventoryClickEvent;
  17. import org.bukkit.event.player.*;
  18. import org.bukkit.inventory.ItemStack;
  19. import org.bukkit.scheduler.BukkitRunnable;
  20.  
  21. import java.util.UUID;
  22.  
  23. public class Events implements Listener {
  24.  
  25. private ItemStack item = ItemsUtils.create(
  26. Material.getMaterial((String) Utils.gfc("config", "menu-item.type")),
  27. (byte) 0, Utils.colorize((String) Utils.gfc("config", "menu-item.name")));
  28.  
  29. @EventHandler
  30. public void onJoin(PlayerJoinEvent event) {
  31. if ((boolean) Utils.gfc("config", "use-sql")){
  32. new BukkitRunnable(){
  33. public void run(){
  34. Main.getInstance().db.saveInAsync(event.getPlayer().getUniqueId());
  35. new BukkitRunnable(){
  36. public void run(){
  37. Main.getInstance().db.setMinionBack(event.getPlayer().getUniqueId());
  38. }
  39. }.runTaskLater(Main.getInstance(), 40);
  40. }
  41. }.runTaskLater(Main.getInstance(), 40);
  42. }
  43. if ((boolean) Utils.gfc("config", "menu-item.give-on-join"))
  44. event.getPlayer().getInventory().setItem(
  45. (int) Utils.gfc("config", "menu-item.slot"),
  46. item);
  47. }
  48. @EventHandler
  49. public void leave(PlayerQuitEvent e) {
  50. UUID uuid = e.getPlayer().getUniqueId();
  51. if ((boolean) Utils.gfc("config", "use-sql")) Main.getInstance().db.saveOutAsync(uuid);
  52.  
  53. if (User.getUsers().containsKey(uuid) && User.getUser(uuid).getMinion() != null)
  54. User.getUser(uuid).getMinion().despawn(User.getUser(uuid));
  55.  
  56. }
  57. @EventHandler
  58. public void onRespawn(PlayerRespawnEvent event) {
  59. if ((boolean) Utils.gfc("config", "menu-item.give-on-join"))
  60. event.getPlayer().getInventory().setItem(
  61. (int) Utils.gfc("config", "menu-item.slot"),
  62. item);
  63. }
  64.  
  65. @EventHandler
  66. public void onDeath(PlayerDeathEvent event) {
  67. User user = User.getUser(event.getEntity().getUniqueId());
  68. if (user.getMinion() != null) user.getMinion().despawn(user);
  69. }
  70.  
  71. @EventHandler
  72. public void onDrop(PlayerDropItemEvent event) {
  73. if (event.getItemDrop().getItemStack() != null && event.getItemDrop().getItemStack().isSimilar(item)) event.setCancelled(true);
  74. }
  75.  
  76. @EventHandler
  77. public void onPickup(PlayerPickupItemEvent event) {
  78. if (event.getItem().getItemStack() != null && event.getItem().getItemStack().isSimilar(item)) event.setCancelled(true);
  79. }
  80.  
  81. @EventHandler
  82. public void onClick(InventoryClickEvent event) {
  83. if (event.getInventory() == null || event.getCurrentItem() == null || event.getWhoClicked() == null) {
  84. return;
  85. }
  86. if (event.getCurrentItem().isSimilar(item)) {
  87. event.setCancelled(true);
  88. }
  89. if (event.getView().getTitle().equalsIgnoreCase(Utils.colorize((String)Utils.gfc("messages", "menu.minion")))) {
  90. event.setCancelled(true);
  91. if (!event.getCurrentItem().hasItemMeta() || !event.getCurrentItem().getItemMeta().hasDisplayName()) {
  92. return;
  93. }
  94. String despawn = Utils.colorize((String)Utils.gfc("messages", "menu.despawn"));
  95. String spawn = Utils.colorize((String)Utils.gfc("messages", "menu.spawn"));
  96. User user = User.getUser(event.getWhoClicked().getUniqueId());
  97. if (event.getCurrentItem().getItemMeta().getDisplayName().startsWith(despawn) && user.getMinion() != null) {
  98. user.getMinion().despawn(user);
  99. event.getWhoClicked().closeInventory();
  100. }
  101. if (event.getCurrentItem().getItemMeta().getDisplayName().startsWith(spawn)) {
  102. if (user.getMinion() != null) {
  103. user.getMinion().despawn(user);
  104. }
  105. String displayName = event.getCurrentItem().getItemMeta().getDisplayName();
  106. Minion minion = Minion.from(m -> displayName.substring(spawn.length()+1).equalsIgnoreCase(m.getDisplayName()))
  107. .orElseThrow(() -> new NullPointerException("Minion "+displayName.substring(spawn.length()+1)+" doesn't exists"));
  108. if (!user.getPlayer().hasPermission(Minion.getInstance().getPermission())) {
  109. user.getPlayer().sendMessage(Utils.colorize(((String) Utils.gfc("messages", "no-permission")).replace("%prefix%", Main.prefix)));
  110. event.getWhoClicked().closeInventory();
  111. return;
  112. }
  113. event.getWhoClicked().sendMessage(Utils.colorize(((String) Utils.gfc("messages", "minions.spawn")).replace("%minion%", Utils.gfc("messages", "minions."+minion.getName()+".name" )+ "").replace("%prefix%", Main.prefix)));
  114. user.setMinion(minion);
  115. int code = user.getMinion().spawn(user);
  116. if (code == 0) {
  117. }
  118. event.getWhoClicked().closeInventory();
  119. }
  120. }
  121. }
  122.  
  123. @EventHandler
  124. public void onInteract(PlayerInteractEvent event) {
  125. if (event.getItem() != null && event.getItem().isSimilar(item)) {
  126. event.setCancelled(true);
  127. Manager.buildInventory(User.getUser(event.getPlayer().getUniqueId())).open(event.getPlayer());
  128. }
  129. }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement