Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.epicminions.events;
- import fr.epicminions.Main;
- import fr.epicminions.minion.Minion;
- import fr.epicminions.utils.Manager;
- import fr.epicminions.utils.User;
- import fr.epicminions.utils.Utils;
- import fr.epicminions.utils.commons.inventory.ItemsUtils;
- import org.bukkit.Material;
- import org.bukkit.entity.ArmorStand;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityDamageEvent;
- import org.bukkit.event.entity.PlayerDeathEvent;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.event.player.*;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.scheduler.BukkitRunnable;
- import java.util.UUID;
- public class Events implements Listener {
- private ItemStack item = ItemsUtils.create(
- Material.getMaterial((String) Utils.gfc("config", "menu-item.type")),
- (byte) 0, Utils.colorize((String) Utils.gfc("config", "menu-item.name")));
- @EventHandler
- public void onJoin(PlayerJoinEvent event) {
- if ((boolean) Utils.gfc("config", "use-sql")){
- new BukkitRunnable(){
- public void run(){
- Main.getInstance().db.saveInAsync(event.getPlayer().getUniqueId());
- new BukkitRunnable(){
- public void run(){
- Main.getInstance().db.setMinionBack(event.getPlayer().getUniqueId());
- }
- }.runTaskLater(Main.getInstance(), 40);
- }
- }.runTaskLater(Main.getInstance(), 40);
- }
- if ((boolean) Utils.gfc("config", "menu-item.give-on-join"))
- event.getPlayer().getInventory().setItem(
- (int) Utils.gfc("config", "menu-item.slot"),
- item);
- }
- @EventHandler
- public void leave(PlayerQuitEvent e) {
- UUID uuid = e.getPlayer().getUniqueId();
- if ((boolean) Utils.gfc("config", "use-sql")) Main.getInstance().db.saveOutAsync(uuid);
- if (User.getUsers().containsKey(uuid) && User.getUser(uuid).getMinion() != null)
- User.getUser(uuid).getMinion().despawn(User.getUser(uuid));
- }
- @EventHandler
- public void onRespawn(PlayerRespawnEvent event) {
- if ((boolean) Utils.gfc("config", "menu-item.give-on-join"))
- event.getPlayer().getInventory().setItem(
- (int) Utils.gfc("config", "menu-item.slot"),
- item);
- }
- @EventHandler
- public void onDeath(PlayerDeathEvent event) {
- User user = User.getUser(event.getEntity().getUniqueId());
- if (user.getMinion() != null) user.getMinion().despawn(user);
- }
- @EventHandler
- public void onDrop(PlayerDropItemEvent event) {
- if (event.getItemDrop().getItemStack() != null && event.getItemDrop().getItemStack().isSimilar(item)) event.setCancelled(true);
- }
- @EventHandler
- public void onPickup(PlayerPickupItemEvent event) {
- if (event.getItem().getItemStack() != null && event.getItem().getItemStack().isSimilar(item)) event.setCancelled(true);
- }
- @EventHandler
- public void onClick(InventoryClickEvent event) {
- if (event.getInventory() == null || event.getCurrentItem() == null || event.getWhoClicked() == null) {
- return;
- }
- if (event.getCurrentItem().isSimilar(item)) {
- event.setCancelled(true);
- }
- if (event.getView().getTitle().equalsIgnoreCase(Utils.colorize((String)Utils.gfc("messages", "menu.minion")))) {
- event.setCancelled(true);
- if (!event.getCurrentItem().hasItemMeta() || !event.getCurrentItem().getItemMeta().hasDisplayName()) {
- return;
- }
- String despawn = Utils.colorize((String)Utils.gfc("messages", "menu.despawn"));
- String spawn = Utils.colorize((String)Utils.gfc("messages", "menu.spawn"));
- User user = User.getUser(event.getWhoClicked().getUniqueId());
- if (event.getCurrentItem().getItemMeta().getDisplayName().startsWith(despawn) && user.getMinion() != null) {
- user.getMinion().despawn(user);
- event.getWhoClicked().closeInventory();
- }
- if (event.getCurrentItem().getItemMeta().getDisplayName().startsWith(spawn)) {
- if (user.getMinion() != null) {
- user.getMinion().despawn(user);
- }
- String displayName = event.getCurrentItem().getItemMeta().getDisplayName();
- Minion minion = Minion.from(m -> displayName.substring(spawn.length()+1).equalsIgnoreCase(m.getDisplayName()))
- .orElseThrow(() -> new NullPointerException("Minion "+displayName.substring(spawn.length()+1)+" doesn't exists"));
- if (!user.getPlayer().hasPermission(Minion.getInstance().getPermission())) {
- user.getPlayer().sendMessage(Utils.colorize(((String) Utils.gfc("messages", "no-permission")).replace("%prefix%", Main.prefix)));
- event.getWhoClicked().closeInventory();
- return;
- }
- event.getWhoClicked().sendMessage(Utils.colorize(((String) Utils.gfc("messages", "minions.spawn")).replace("%minion%", Utils.gfc("messages", "minions."+minion.getName()+".name" )+ "").replace("%prefix%", Main.prefix)));
- user.setMinion(minion);
- int code = user.getMinion().spawn(user);
- if (code == 0) {
- }
- event.getWhoClicked().closeInventory();
- }
- }
- }
- @EventHandler
- public void onInteract(PlayerInteractEvent event) {
- if (event.getItem() != null && event.getItem().isSimilar(item)) {
- event.setCancelled(true);
- Manager.buildInventory(User.getUser(event.getPlayer().getUniqueId())).open(event.getPlayer());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement