package eu.univento.lobby.listeners; import eu.univento.core.Core; import eu.univento.core.api.Config; import eu.univento.core.api.effects.Effects; import eu.univento.core.api.player.CustomPlayer; import eu.univento.lobby.Lobby; import eu.univento.lobby.utils.InventoryManager; import net.minecraft.server.v1_11_R1.EnumParticle; import org.bukkit.*; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.inventory.InventoryType.SlotType; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.util.Vector; import java.util.ArrayList; import java.util.List; /** * handles teleport menus * @author joethei * @version 1.0 */ public class MenuEvents implements Listener { private ArrayList heartPlayers = new ArrayList<>(); private ArrayList lavaPlayers = new ArrayList<>(); @EventHandler public void onClick(InventoryClickEvent e) { if (e.getWhoClicked() instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer(e.getWhoClicked().getName()); InventoryManager invs = new InventoryManager(p); //Messages msgs = new Messages(p); if(!e.getSlotType().equals(SlotType.OUTSIDE) && e.getInventory().getType() == InventoryType.CHEST) { if (e.getInventory().getName().equals(invs.getNavigatorInventory().getName())) { if (e.getCurrentItem().getType() == Material.GOLD_BLOCK) { teleport(p, "TheBlock"); p.closeInventory(); } if (e.getCurrentItem().getType() == Material.SNOW_BALL) { teleport(p, "FlagAttack"); p.closeInventory(); } if (e.getCurrentItem().getType() == Material.LEATHER_HELMET) { teleport(p, "TrashGames"); p.closeInventory(); } if (e.getCurrentItem().getType() == Material.MAGMA_CREAM) { teleport(p, "Spawn"); p.closeInventory(); } if (e.getCurrentItem().getType() == Material.EYE_OF_ENDER) { teleport(p, "PremiumHub"); p.closeInventory(); } if (e.getCurrentItem().getType() == Material.LEATHER_BOOTS) { teleport(p, "TempleRun"); p.closeInventory(); } if (e.getCurrentItem().getType() == Material.SLIME_BALL) { teleport(p, "HulkFight"); p.closeInventory(); } if (e.getCurrentItem().getType() == Material.FLOWER_POT_ITEM) { p.closeInventory(); p.connectToServer("build"); } else { e.setCancelled(true); } } if (e.getInventory().getName().equals(invs.getProfileInventory().getName())) { if (e.getCurrentItem().getType() == Material.COMPASS) { p.closeInventory(); p.openInventory(invs.getStatsInventory()); } if (e.getCurrentItem().getType() == Material.PUMPKIN) { p.closeInventory(); p.openInventory(invs.getFriendsInventory()); } if (e.getCurrentItem().getType() == Material.NAME_TAG) { p.closeInventory(); p.openInventory(invs.getSettingsInventory()); } else { e.setCancelled(true); } } if (e.getInventory().getName().equals(invs.getSettingsInventory().getName())) { if(e.getSlot() == 0) { p.getDatabasePlayer().getSettings().setPartyRequests(!p.getDatabasePlayer().getSettings().hasPartyRequestsEnabled()); p.closeInventory(); p.openInventory(invs.getSettingsInventory()); } } if(e.getInventory().getName().equals(invs.getLanguagesInventory().getName())) { if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§eDeutsch")) { p.getDatabasePlayer().getSettings().setLanguage("DE"); p.closeInventory(); //p.sendMessage(msgs.PREFIX() + "§7Sprache auf §eDeutsch §7geändert"); invs.setMainInventory(true); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§eEnglish")) { p.getDatabasePlayer().getSettings().setLanguage("EN"); p.closeInventory(); //p.sendMessage(msgs.PREFIX() + "§7Language changed to §eenglish"); invs.setMainInventory(true); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§eitaliano")) { p.getDatabasePlayer().getSettings().setLanguage("IT"); p.closeInventory(); //p.sendMessage(msgs.PREFIX() + "§7Da fehlt doch noch was"); invs.setMainInventory(true); } } if (e.getInventory().getName().equals(invs.getFunChestInventory().getName())) { e.setCancelled(true); if (e.getCurrentItem().getType() == Material.RECORD_3) { p.closeInventory(); p.openInventory(invs.getMusicInventory()); } if (e.getCurrentItem().getType() == Material.ARMOR_STAND) { p.closeInventory(); p.openInventory(invs.getGadgetsInventory()); } if (e.getCurrentItem().getType() == Material.NOTE_BLOCK) { p.closeInventory(); p.openInventory(invs.getParticleInventory()); } if(e.getCurrentItem().getType() == Material.MONSTER_EGG) { p.closeInventory(); p.openInventory(invs.getPetsInventory()); } } if (e.getInventory().getName().equals(invs.getStatsInventory().getName())) { e.setCancelled(true); } if (e.getInventory().getName().equals(invs.getFriendsInventory().getName())) { e.setCancelled(true); } if (e.getInventory().getName().equals(invs.getMusicInventory().getName())) { e.setCancelled(true); if (e.getCurrentItem().getType() == Material.RECORD_3) { p.closeInventory(); p.playSound(p.getEyeLocation(), "records.11", 100000000000.0F, 1.0F); //p.sendActionBar(msgs.Lobby_PLAYING_MUSIC_PREFIX() + ": Milky Way Stars | Janji feat. TR"); } } if (e.getInventory().getName().equals(invs.getGadgetsInventory().getName())) { e.setCancelled(true); if (e.getCurrentItem().getType() == Material.SUGAR) { p.closeInventory(); if (p.getWalkSpeed() == 0.2F) { p.setWalkSpeed(0.5F); } else { p.setWalkSpeed(0.2F); } } if (e.getCurrentItem().getType() == Material.FEATHER) { p.closeInventory(); } } if (e.getInventory().getName().equals(invs.getParticleInventory().getName())) { e.setCancelled(true); if (e.getCurrentItem().getType() == Material.RED_ROSE) { if (heartPlayers.contains(p)) { heartPlayers.remove(p); } else { heartPlayers.add(p); } }else if(e.getCurrentItem().getType() == Material.LAVA_BUCKET) { if(lavaPlayers.contains(p)) { lavaPlayers.remove(p); }else{ lavaPlayers.add(p); } } /* }if (e.getInventory().getName().equals(invs.getPetsInventory().getName())) { e.setCancelled(true); if(e.getCurrentItem().getItemMeta().getDisplayName().contains(msgs.LobbyItems_PETS_PIG())) { p.closeInventory(); PetManager.setPet(p, EntityType.PIG); p.sendMessage(msgs.PREFIX() + msgs.Lobby_PET_ADD()); } if(e.getCurrentItem().getItemMeta().getDisplayName().contains(msgs.LobbyItems_PETS_COW())) { p.closeInventory(); PetManager.setPet(p, EntityType.COW); p.sendMessage(msgs.PREFIX() + msgs.Lobby_PET_ADD()); } if(e.getCurrentItem().getItemMeta().getDisplayName().contains(msgs.LobbyItems_PETS_CHICKEN())) { p.closeInventory(); PetManager.setPet(p, EntityType.CHICKEN); p.sendMessage(msgs.PREFIX() + msgs.Lobby_PET_ADD()); } if(e.getCurrentItem().getItemMeta().getDisplayName().contains(msgs.LobbyItems_PETS_RABBIT())) { p.closeInventory(); PetManager.setPet(p, EntityType.RABBIT); p.sendMessage(msgs.PREFIX() + msgs.Lobby_PET_ADD()); } if(e.getCurrentItem().getItemMeta().getDisplayName().contains(msgs.LobbyItems_PETS_MUSHROM_COW())) { p.closeInventory(); PetManager.setPet(p, EntityType.MUSHROOM_COW); p.sendMessage(msgs.PREFIX() + msgs.Lobby_PET_ADD()); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("Horse")) { p.closeInventory(); PetManager.setPet(p, EntityType.HORSE); Horse horse = (Horse) PetManager.getPet(p); horse.setJumpStrength(20.0D); horse.setVariant(Horse.Variant.UNDEAD_HORSE); horse.setTamed(true); p.sendMessage(msgs.PREFIX() + msgs.Lobby_PET_ADD()); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("PolarBear")) { p.closeInventory(); PetManager.setPet(p, EntityType.POLAR_BEAR); PolarBear polarBear = (PolarBear) PetManager.getPet(p); polarBear.setAI(false); p.sendMessage(msgs.PREFIX() + msgs.Lobby_PET_ADD()); } if(e.getCurrentItem().getType() == Material.BARRIER) { p.closeInventory(); PetManager.removePet(p); p.sendMessage(msgs.PREFIX() + msgs.Lobby_PET_REMOVE()); } */ }else { e.setCancelled(true); } } } } @EventHandler public void onMove(PlayerMoveEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); List players = new ArrayList<>(); players.addAll(Core.getOnlinePlayers()); if(heartPlayers.contains(p)) Effects.playEffect(p.getLocation(), EnumParticle.HEART, 5); if(lavaPlayers.contains(p)) Effects.playEffect(p.getLocation(), EnumParticle.DRIP_LAVA, 5); } private void teleport(CustomPlayer p, String location) { Vector v = p.getLocation().getDirection().multiply(0D).setY(2D); p.setVelocity(v); p.playSound(p.getEyeLocation(), Sound.ENTITY_GENERIC_EXPLODE, 5.0F, 1.0F); p.playEffect(p.getEyeLocation(), Effect.CHORUS_FLOWER_DEATH, 20); Location loc = Config.readLocation("Lobby.Locs." + location); Bukkit.getScheduler().scheduleAsyncDelayedTask(Lobby.getInstance(), () -> { for (Player players : Bukkit.getOnlinePlayers()) { players.playSound(p.getEyeLocation(), Sound.ENTITY_GENERIC_EXPLODE, 1.0F, 1.0F); players.playEffect(p.getEyeLocation(), Effect.DRAGON_BREATH, 20); p.teleport(loc); players.playSound(p.getEyeLocation(), Sound.ENTITY_GENERIC_EXPLODE, 1.0F, 1.0F); players.playEffect(p.getEyeLocation(), Effect.SMOKE, 20); } }, 40L); } }