diff --git a/.gitignore b/.gitignore index 65776c3..229ab8b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -/bin/ \ No newline at end of file +/bin/ +/target/ +Lobby.iml \ No newline at end of file diff --git a/Lobby.iml b/Lobby.iml index 29f8247..783f833 100644 --- a/Lobby.iml +++ b/Lobby.iml @@ -20,31 +20,35 @@ - + + + + + + + + - - - - - - + + + + - - - + + - - - + + + + - @@ -65,6 +69,7 @@ + @@ -74,17 +79,13 @@ + + - - - - - - + + - - - - + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 01408c9..10fdfa7 100644 --- a/pom.xml +++ b/pom.xml @@ -48,38 +48,26 @@ - - - univentoEU - http://dev.joethei.de:8081/repository/public/ - - - com.destroystokyo.paper paper-api - 1.11-R0.1-SNAPSHOT - provided - - - org.spigotmc - spigot-api - 1.11-R0.1-SNAPSHOT - provided - - - org.bukkit - bukkit - 1.11-R0.1-SNAPSHOT + 1.12-R0.1-SNAPSHOT provided org.bukkit craftbukkit - 1.11-R0.1-SNAPSHOT + 1.12-R0.1-SNAPSHOT provided + + + org.projectlombok + lombok + 1.16.10 + + eu.univento Core diff --git a/src/main/Lobby.iml b/src/main/Lobby.iml deleted file mode 100644 index 4ab866e..0000000 --- a/src/main/Lobby.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/Lobby.java b/src/main/java/eu/univento/lobby/Lobby.java index 6f4de1f..02b3c55 100644 --- a/src/main/java/eu/univento/lobby/Lobby.java +++ b/src/main/java/eu/univento/lobby/Lobby.java @@ -1,10 +1,15 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + package eu.univento.lobby; import eu.univento.commons.server.ServerType; import eu.univento.core.api.server.ServerSettings; -import eu.univento.lobby.commands.DropItem; import eu.univento.lobby.commands.Setloc; import eu.univento.lobby.listeners.*; +import lombok.Getter; import org.bukkit.Bukkit; import org.bukkit.Difficulty; import org.bukkit.GameMode; @@ -19,42 +24,30 @@ import org.bukkit.plugin.java.JavaPlugin; */ public class Lobby extends JavaPlugin{ - private static Lobby instance; + @Getter private static Lobby instance; - public static Lobby getInstance() { - return instance; - } - - @Override public void onEnable() { instance = this; - PluginManager pm = Bukkit.getPluginManager();; + PluginManager pm = Bukkit.getPluginManager(); pm.registerEvents(new Jumppads(), this); pm.registerEvents(new JoinQuit(), this); - pm.registerEvents(new MenuEvents(), this); pm.registerEvents(new Events(), this); - pm.registerEvents(new Menu(), this); pm.registerEvents(new PlayerHider(), this); pm.registerEvents(new ItemEvents(), this); - pm.registerEvents(new FoundItems(), this); pm.registerEvents(new Parkour(), this); - pm.registerEvents(new PetInteract(), this); pm.registerEvents(new PlayerInteract(), this); + pm.registerEvents(new FunStuff(), this); + //pm.registerEvents(new MenuEvents(), this); new Setloc(this, "setloc", "Setzt Teleport Punkte"); - new DropItem(this, "dropitem", "Setzt EasterEggs"); - if(ServerSettings.isDebug()) System.out.println("Befehle registriert"); - + for(World w : Bukkit.getWorlds()) w.setDifficulty(Difficulty.PEACEFUL); - ServerSettings.setGameMode(GameMode.ADVENTURE); - ServerSettings.setLobby(true); - ServerSettings.setServerType(ServerType.LOBBY); + ServerSettings.setup(ServerType.LOBBY, GameMode.ADVENTURE); System.out.println(" Plugin ver." + getDescription().getVersion() + " gestartet"); - } @Override diff --git a/src/main/java/eu/univento/lobby/listeners/Events.java b/src/main/java/eu/univento/lobby/listeners/Events.java index c30fa70..df56742 100644 --- a/src/main/java/eu/univento/lobby/listeners/Events.java +++ b/src/main/java/eu/univento/lobby/listeners/Events.java @@ -1,22 +1,16 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + package eu.univento.lobby.listeners; import eu.univento.core.api.Config; import eu.univento.core.api.player.CustomPlayer; -import eu.univento.lobby.Lobby; -import eu.univento.lobby.story.missions.StartMission; import eu.univento.lobby.utils.CustomMapRenderer; -import eu.univento.lobby.utils.PetManager; -import eu.univento.lobby.utils.Pets; -import eu.univento.lobby.utils.Scoreboards; -import net.minecraft.server.v1_11_R1.EnumParticle; -import org.bukkit.Bukkit; -import org.bukkit.GameMode; import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.block.Skull; -import org.bukkit.entity.Creature; import org.bukkit.entity.ItemFrame; -import org.bukkit.entity.Player; +import org.bukkit.entity.LivingEntity; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; @@ -33,7 +27,6 @@ import org.bukkit.event.server.MapInitializeEvent; import org.bukkit.event.weather.WeatherChangeEvent; import org.bukkit.event.world.StructureGrowEvent; import org.bukkit.map.MapView; -import org.bukkit.util.Vector; /** * some short events @@ -137,31 +130,9 @@ public class Events implements Listener { if (e.getClickedBlock().getType() == Material.SPRUCE_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.WOOD_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.WOODEN_DOOR) e.setCancelled(true); - if (e.getClickedBlock().getType() == Material.SKULL) { - Skull skull = (Skull) e.getClickedBlock().getState(); - if (skull.getOwner().equals("MHF_Chest")) { - p.playSound(p.getEyeLocation(), Sound.BLOCK_PORTAL_TRAVEL, 5.0F, 1.0F); - p.playParticle(skull.getLocation().add(0.5D, 1.5D, 0.5D), EnumParticle.ENCHANTMENT_TABLE, 0.3F, 500); - Bukkit.getScheduler().scheduleAsyncDelayedTask(Lobby.getInstance(), () -> { - p.playParticle(skull.getLocation().add(0.5D, 0.0D, 0.5D), EnumParticle.SPELL_WITCH, 0.4F, 500); - p.sendTitle(10, 50, 10, "Versteck", "§eDu hast ein Versteck gefunden"); - p.getDatabasePlayer().addCoins(100); - Scoreboards.updateScoreboard(p); - }, 3 * 20L); - - } - } - if(e.getClickedBlock().getType() == Material.STONE_BUTTON) { - new StartMission(p); - } } } - @EventHandler - public void onItemDespawn(ItemDespawnEvent e) { - e.setCancelled(true); - } - @EventHandler public void onHangingBreak(HangingBreakByEntityEvent e) { if (e.getEntity() instanceof ItemFrame) @@ -192,62 +163,24 @@ public class Events implements Listener { if (PlayerHider.getSilentlobby().contains(p)) e.setCancelled(true); } - @EventHandler - public void onMove(PlayerMoveEvent e) { - CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if (PetManager.hasPet(p)) { - new Pets().followPlayer((Creature) PetManager.getPet(p), p, 1.4); - } - if ((p.getLocation().getBlock().getType() == Material.STATIONARY_WATER) - && (p.getLocation().subtract(0.0D, 3.0D, 0.0D).getBlock().getType() == Material.STATIONARY_WATER) - && (p.getVehicle() == null) && (p.getGameMode() != GameMode.CREATIVE) - && (!p.isFlying())) { - p.setGliding(true); - } - if ((p.getLocation().getBlock().getType() != Material.STATIONARY_WATER) - && (p.getLocation().subtract(0.0D, 3.0D, 0.0D).getBlock().getType() != Material.STATIONARY_WATER) - && (p.getVehicle() == null)) { - p.setGliding(false); - } - //only for debugging purposes - if(p.getLocation().getY() >= 5.0D && p.getLocation().getBlock().getType() == Material.STATIONARY_WATER) { - Vector v = p.getLocation().getDirection().multiply(0D).setY(3D); - p.setVelocity(v); - } - } - - @EventHandler - public void onEntityToggleGlideEvent(EntityToggleGlideEvent e) { - if(e.getEntity() instanceof Player) { - final CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity()); - if(p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock().getType() != Material.STATIONARY_WATER) { - p.setVelocity(new Vector(p.getLocation().getDirection().getX() * 1, 1 * -1.0, p.getLocation().getDirection().getZ() * 0.1)); - e.setCancelled(true); - } - if(p.isSneaking()) { - e.setCancelled(true); - } - } - } - - @EventHandler - public void onToogleSneak(PlayerToggleSneakEvent e) { - CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(!p.isSneaking()) { - p.setGliding(true); - } - } - @EventHandler public void onEntityBlockChange(EntityChangeBlockEvent e) { e.setCancelled(true); } + /* @EventHandler public void onCreatureSpawn(CreatureSpawnEvent e) { if (e.getSpawnReason() != CreatureSpawnEvent.SpawnReason.CUSTOM) { e.setCancelled(true); } } + */ + + @EventHandler + public void onEntityInteract(EntityInteractEvent e) { + if (e.getBlock().getType() == Material.CROPS && e.getEntity() instanceof LivingEntity) + e.setCancelled(true); + } } \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/listeners/FoundItems.java b/src/main/java/eu/univento/lobby/listeners/FoundItems.java deleted file mode 100644 index 9c52438..0000000 --- a/src/main/java/eu/univento/lobby/listeners/FoundItems.java +++ /dev/null @@ -1,73 +0,0 @@ -package eu.univento.lobby.listeners; - -import org.bukkit.event.Listener; - -/** - * handels all posible easter eggs - * @author joethei - * @version 0.1 - */ -public class FoundItems implements Listener{ - - /* - @EventHandler - public void onItemPickup(PlayerPickupItemEvent e) { - CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - Messages msgs = new Messages(p); - if(e.getItem().getItemStack().getType() == Material.RECORD_3) { - if(!hasFound("music_3")) { - setFound("music_3"); - p.sendTitle(5, 5, 5, msgs.Lobby_FOUND_ITEM_PREFIX(), "Music_3"); - p.addExperience(5); - } - } - if(e.getItem().getItemStack().getType() == Material.SUGAR) { - if(!hasFound("sugar")) { - setFound("su1gar"); - p.sendTitle(5, 5, 5, msgs.Lobby_FOUND_ITEM_PREFIX(), "Sugar"); - p.addExperience(5); - } - } - if(e.getItem().getItemStack().getType() == Material.RED_ROSE) { - if(!hasFound("hearts")) { - setFound("hearts"); - p.sendTitle(5, 5, 5, msgs.Lobby_FOUND_ITEM_PREFIX(), "Hearts"); - p.addExperience(3); - } - } - if(e.getItem().getItemStack().getType() == Material.FEATHER) { - if(!hasFound("feather")) { - setFound("feather"); - p.sendTitle(5, 5, 5, msgs.Lobby_FOUND_ITEM_PREFIX(), "Feather"); - } - } - e.setCancelled(true); - } - - public static boolean hasFound(String item) { - int id = 8; - MySQL sql = Core.getCommons().getDatabaseManager().getMySQL(); - try { - PreparedStatement st = sql.getConnection().prepareStatement("SELECT * FROM FoundItems WHERE ID='" + id + "';"); - ResultSet rs = st.executeQuery(); - return rs.next() && rs.getInt(item) == 1; - } catch (SQLException e) { - e.printStackTrace(); - return false; - } - - } - - private void setFound(String item) { - int id = 8; - MySQL sql = Core.getCommons().getDatabaseManager().getMySQL(); - try { - PreparedStatement st = sql.getConnection().prepareStatement("UPDATE FoundItems SET " + item + "='1' WHERE ID='" + id + "';"); - st.execute(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - */ - -} \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/listeners/FunStuff.java b/src/main/java/eu/univento/lobby/listeners/FunStuff.java new file mode 100644 index 0000000..8e55dde --- /dev/null +++ b/src/main/java/eu/univento/lobby/listeners/FunStuff.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + +package eu.univento.lobby.listeners; + +import eu.univento.core.api.player.CustomPlayer; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.entity.Creature; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityToggleGlideEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.util.Vector; + +/** + * @author joethei + * @version 1.0 + */ +public class FunStuff implements Listener{ + + @EventHandler + public void onMove(PlayerMoveEvent e) { + CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); + if ((p.getLocation().getBlock().getType() == Material.STATIONARY_WATER) + && (p.getLocation().subtract(0.0D, 3.0D, 0.0D).getBlock().getType() == Material.STATIONARY_WATER) + && (p.getVehicle() == null) && (p.getGameMode() != GameMode.CREATIVE) + && (!p.isFlying())) { + p.setGliding(true); + } + if ((p.getLocation().getBlock().getType() != Material.STATIONARY_WATER) + && (p.getLocation().subtract(0.0D, 3.0D, 0.0D).getBlock().getType() != Material.STATIONARY_WATER) + && (p.getVehicle() == null)) { + p.setGliding(false); + } + //only for debugging purposes + if(p.getLocation().getY() <= 5.0D && p.getLocation().getBlock().getType() == Material.STATIONARY_WATER) { + Vector v = p.getLocation().getDirection().multiply(0D).setY(3D); + p.setVelocity(v); + } + } + + @EventHandler + public void onEntityToggleGlideEvent(EntityToggleGlideEvent e) { + if(e.getEntity() instanceof Player) { + final CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity()); + if(p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock().getType() != Material.STATIONARY_WATER) { + p.setVelocity(new Vector(p.getLocation().getDirection().getX() * 1, 1 * -1.0, p.getLocation().getDirection().getZ() * 0.1)); + e.setCancelled(true); + } + if(p.isSneaking()) { + e.setCancelled(true); + } + } + } + + @EventHandler + public void onToogleSneak(PlayerToggleSneakEvent e) { + CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); + if(!p.isSneaking()) { + p.setGliding(true); + } + } + + @EventHandler + public void onEntityHit(EntityDamageByEntityEvent e) { + if(e.getDamager() instanceof Player && e.getEntity() instanceof Creature) { + Creature creature = (Creature) e.getEntity(); + CustomPlayer p = CustomPlayer.getPlayer((Player) e.getDamager()); + creature.setGlowing(true); + creature.setCustomName(p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " §8hat mir das angetan"); + creature.setCustomNameVisible(true); + creature.addPotionEffect(new PotionEffect(PotionEffectType.LEVITATION, 60, 5, false)); + + } + } +} \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/listeners/ItemEvents.java b/src/main/java/eu/univento/lobby/listeners/ItemEvents.java index 9c0660c..697cbc7 100644 --- a/src/main/java/eu/univento/lobby/listeners/ItemEvents.java +++ b/src/main/java/eu/univento/lobby/listeners/ItemEvents.java @@ -1,7 +1,16 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + package eu.univento.lobby.listeners; import eu.univento.commons.player.rank.Rank; +import eu.univento.commons.server.ServerType; import eu.univento.core.Core; +import eu.univento.core.api.Config; +import eu.univento.core.api.gui.inventory.InventoryGUI; +import eu.univento.core.api.items.ItemBuilder; import eu.univento.core.api.player.CustomPlayer; import eu.univento.lobby.Lobby; import org.bukkit.*; @@ -53,6 +62,30 @@ public class ItemEvents implements Listener { e.setCancelled(true); } + if(item.getType() == Material.COMPASS) { + e.setCancelled(true); + InventoryGUI gui = new InventoryGUI(p, 9, "§aNavigator"); + gui.addItem(2, new ItemBuilder(Material.ENCHANTMENT_TABLE).name("§cBalance").build(), player -> { + player.closeInventory(); + //CloudProxy.getInstance().sendPlayer(p.getUniqueId(), CloudNetAPI.getInstance().getServerInfos("Free4All").get(0)); + player.connectToServer(ServerType.SECRET_GAME_FREE4ALL); + player.teleport(Config.readLocation("Lobby.Locs.FFA")); + + }); + gui.addItem(4, new ItemBuilder(Material.FLOWER_POT_ITEM).name("§aBauserver").build(), player -> { + player.closeInventory(); + //CloudProxy.getInstance().sendPlayer(p.getUniqueId(), Core.getCloudNetAPI().getServerInfos("TeamVento").get(0)); + player.connectToServer(ServerType.TEAM_BUILD); + player.teleport(Config.readLocation("Lobby.Locs.Build")); + }); + gui.addItem(6, new ItemBuilder(Material.BOOK).name("§bDevelopment").build(), player -> { + player.closeInventory(); + //CloudProxy.getInstance().sendPlayer(p.getUniqueId(), Core.getCloudNetAPI().getServerInfos("TrashGames").get(0)); + player.connectToServer(ServerType.SECRET_GAME_TRASHGAMES); + player.teleport(Config.readLocation("Lobby.Locs.TrashGames")); + }); + gui.open(); + } } } diff --git a/src/main/java/eu/univento/lobby/listeners/JoinQuit.java b/src/main/java/eu/univento/lobby/listeners/JoinQuit.java index 352fd67..cd0cca8 100644 --- a/src/main/java/eu/univento/lobby/listeners/JoinQuit.java +++ b/src/main/java/eu/univento/lobby/listeners/JoinQuit.java @@ -1,9 +1,14 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + package eu.univento.lobby.listeners; import eu.univento.commons.player.rank.Rank; import eu.univento.core.api.Hologram; +import eu.univento.core.api.items.ItemBuilder; import eu.univento.core.api.player.CustomPlayer; -import eu.univento.lobby.utils.PetManager; import eu.univento.lobby.utils.Scoreboards; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -36,6 +41,8 @@ public class JoinQuit implements Listener { p.setFoodLevel(20); p.setExp(0F); p.setLevel(0); + p.getInventory().clear(); + p.getInventory().setItem(4, new ItemBuilder(Material.COMPASS).name("§aNavigator").glow().build()); //InventoryManager invs = new InventoryManager(p); @@ -55,16 +62,17 @@ public class JoinQuit implements Listener { } }); - String[] text = {"§e@univentoEU"}; + String[] text = {"§2univento§8.§aeu"}; Hologram holo = new Hologram(new ItemStack(Material.WOOD_AXE), text, p.getWorld().getSpawnLocation()); holo.showPlayer(p); - BossBar bar = Bukkit.createBossBar("§cAchtung, frisch gestrichen", BarColor.GREEN, BarStyle.SEGMENTED_6, BarFlag.CREATE_FOG); + BossBar bar = Bukkit.createBossBar("§7Nutze den §aNavigator§8!", BarColor.GREEN, BarStyle.SEGMENTED_6, BarFlag.CREATE_FOG); bar.addPlayer(p); //p.sendActionBar(p.getMessages().LobbyBoard_NEW() + " " + p.getMessages().LobbyBoard_NEWS()); Scoreboards.updateScoreboard(p); + p.getLastLocation().whenComplete((location, throwable) -> p.teleport(location)); } @@ -81,8 +89,6 @@ public class JoinQuit implements Listener { e.setQuitMessage(null); if (PlayerHider.getHidden().contains(p)) PlayerHider.getHidden().remove(p); - if (PetManager.hasPet(p)) - PetManager.removePet(p); } } \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/listeners/Menu.java b/src/main/java/eu/univento/lobby/listeners/Menu.java deleted file mode 100644 index dbd93cc..0000000 --- a/src/main/java/eu/univento/lobby/listeners/Menu.java +++ /dev/null @@ -1,54 +0,0 @@ -package eu.univento.lobby.listeners; - -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.lobby.utils.InventoryManager; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.inventory.ItemStack; - -/** - * opens menus - * @author joethei - * @version 1.0 - */ -public class Menu implements Listener{ - - @EventHandler - public void onInteract(PlayerInteractEvent e) { - CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer().getName()); - if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) { - ItemStack item = p.getItemInHand(); - if(!p.hasOpenInventory()) { - InventoryManager invs = new InventoryManager(p); - if(item.getType() == Material.WORKBENCH) { - p.setOpenInventory(true); - p.openInventory(invs.getNavigatorInventory()); - } - if(item.getType() == Material.CHEST) { - p.setOpenInventory(true); - p.openInventory(invs.getFunChestInventory()); - e.getPlayer().playSound(p.getEyeLocation(), Sound.BLOCK_CHEST_OPEN, 10.0F, 1.0F); - } - if(item.getType() == Material.SKULL_ITEM) { - p.setOpenInventory(true); - p.openInventory(invs.getProfileInventory()); - } - if(item.getType() == Material.EXP_BOTTLE) { - e.setCancelled(true); - invs.setYoutuberInventory(); - } - if(item.getType() == Material.BARRIER) { - invs.setMainInventory(true); - }if(item.getType() == Material.BLAZE_ROD) { - p.setOpenInventory(true); - p.openInventory(invs.getLobbySwitcherInventory()); - } - } - } - } - -} \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/listeners/MenuEvents.java b/src/main/java/eu/univento/lobby/listeners/MenuEvents.java index dce4869..73561d3 100644 --- a/src/main/java/eu/univento/lobby/listeners/MenuEvents.java +++ b/src/main/java/eu/univento/lobby/listeners/MenuEvents.java @@ -1,275 +1,75 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + package eu.univento.lobby.listeners; +import eu.univento.commons.player.rank.Rank; +import eu.univento.commons.server.ServerType; import eu.univento.core.Core; -import eu.univento.core.api.Config; -import eu.univento.core.api.effects.Effects; +import eu.univento.core.api.gui.inventory.InventoryGUI; +import eu.univento.core.api.items.ItemBuilder; 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.ChatColor; +import org.bukkit.Material; +import org.bukkit.Sound; 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; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.Inventory; /** - * handles teleport menus * @author joethei * @version 1.0 */ public class MenuEvents implements Listener { - private ArrayList heartPlayers = new ArrayList<>(); - private ArrayList lavaPlayers = new ArrayList<>(); + private Inventory lobbySwitcher; - @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); - } - } + @EventHandler + public void onPlayerInteract(PlayerInteractEvent e) { + CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); + if (e.getItem().getType() == Material.BUCKET) { + p.openInventory(lobbySwitcher); + p.playSound(p.getEyeLocation(), Sound.BLOCK_CHEST_OPEN, 1.0F, 1.0F); + } + if(e.getItem().getType() == Material.NETHER_STAR) { + InventoryGUI gui = new InventoryGUI(p, 27, "Lobby Navigator"); - 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()); - } - } + //spawn teleport + gui.addItem(1, new ItemBuilder(p, Material.SLIME_BALL).name("Spawn").build(), player -> { + player.closeInventory(); + player.teleport(player.getWorld().getSpawnLocation()); + }); - 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); + //build server teleport + if(p.getDatabasePlayer().isAllowed(Rank.Sound)) { + gui.addItem(0, new ItemBuilder(p, Material.GRASS).name("Bau Server").build(), player -> { + player.closeInventory(); + player.connectToServer(ServerType.TEAM_BUILD); + }); } - }, 40L); - } + gui.open(); + } + } + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + CustomPlayer p = CustomPlayer.getPlayer((Player) e.getWhoClicked()); + if (e.getClickedInventory() == null && e.getCurrentItem() == null) return; + if (e.getClickedInventory() == lobbySwitcher) { + e.setCancelled(true); + String server = ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName()); + if (Core.getCloudAPI().getServerId().equals(server)) { + p.sendMessage("Nope, da bist du doch schon"); + return; + } + p.connectToServer(server); + p.closeInventory(); + } + } } \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/listeners/Parkour.java b/src/main/java/eu/univento/lobby/listeners/Parkour.java index 6174c2e..1d95e7c 100644 --- a/src/main/java/eu/univento/lobby/listeners/Parkour.java +++ b/src/main/java/eu/univento/lobby/listeners/Parkour.java @@ -1,11 +1,18 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + package eu.univento.lobby.listeners; import eu.univento.core.Core; import eu.univento.core.api.events.MoveEventFilter; import eu.univento.core.api.player.CustomPlayer; import eu.univento.lobby.Lobby; -import eu.univento.lobby.utils.PetManager; -import org.bukkit.*; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -29,16 +36,15 @@ public class Parkour implements Listener{ public void onBlockMove(MoveEventFilter.PlayerBlockMoveEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); //Messages msgs = new Messages(p); - Block block = p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock(); + Block block = e.getTo().subtract(0.0D, 1.0D, 0.0D).getBlock(); if (block.getType() == Material.STAINED_CLAY) { if (players.contains(p)) { spawnRandomBlock(block.getLocation()); - }else if(p.getLocation().getBlock().getType() == Material.IRON_PLATE) { + }else if(e.getTo().getBlock().getType() == Material.IRON_PLATE) { players.add(p); //p.sendMessage(msgs.PREFIX() + msgs.Lobby_PARKOUR_ON()); spawnRandomBlock(block.getLocation()); p.setWalkSpeed(0.2F); - if(PetManager.hasPet(p)) PetManager.removePet(p); } } else { if (block.getType() != Material.AIR && players.contains(p) && block.getType() != Material.IRON_PLATE) { diff --git a/src/main/java/eu/univento/lobby/listeners/PetInteract.java b/src/main/java/eu/univento/lobby/listeners/PetInteract.java deleted file mode 100644 index 56a721f..0000000 --- a/src/main/java/eu/univento/lobby/listeners/PetInteract.java +++ /dev/null @@ -1,124 +0,0 @@ -package eu.univento.lobby.listeners; - -import eu.univento.core.api.gui.AnvilGUI; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.lobby.utils.PetManager; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.entity.Ageable; -import org.bukkit.entity.Entity; -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.player.PlayerInteractEntityEvent; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -/** - * @author joethei - * @version 1.0 - */ -public class PetInteract implements Listener { - - @EventHandler - public void onEntityInteract(PlayerInteractEntityEvent e) { - e.setCancelled(true); - CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - Entity entity = e.getRightClicked(); - if (PetManager.getPet(p) == entity) { - p.openInventory(getInventory(p)); - } - } - - Inventory getInventory(CustomPlayer p) { - //Messages msgs = new Messages(p); - Inventory inv = Bukkit.createInventory(p, 9,"Nachricht"); - - ItemStack name = new ItemStack(Material.NAME_TAG); - ItemMeta nameMeta = name.getItemMeta(); - //nameMeta.setDisplayName(msgs.LobbyItems_PETS_NAME()); - name.setItemMeta(nameMeta); - - ItemStack baby = new ItemStack(Material.SUGAR); - ItemMeta babyMeta = baby.getItemMeta(); - //babyMeta.setDisplayName(msgs.LobbyItems_PETS_AGE()); - baby.setItemMeta(babyMeta); - - ItemStack mount = new ItemStack(Material.SADDLE); - ItemMeta mountMeta = mount.getItemMeta(); - //mountMeta.setDisplayName(msgs.LobbyItems_PETS_RIDE()); - mount.setItemMeta(mountMeta); - - ItemStack delete = new ItemStack(Material.BARRIER); - ItemMeta deleteMeta = delete.getItemMeta(); - //deleteMeta.setDisplayName(msgs.LobbyItems_PETS_REMOVE()); - delete.setItemMeta(deleteMeta); - - inv.setItem(0, name); - inv.setItem(1, baby); - inv.setItem(2, mount); - inv.setItem(8, delete); - - return inv; - } - - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - if (e.getWhoClicked() instanceof Player) { - CustomPlayer p = CustomPlayer.getPlayer(e.getWhoClicked().getName()); - //Messages msgs = new Messages(p); - if (e.getInventory().getName().equals(getInventory(p).getName())) { - if (e.getCurrentItem().getType() == Material.NAME_TAG) { - assert p != null; - p.closeInventory(); - AnvilGUI gui = new AnvilGUI(p, event -> { - if(event.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) { - event.setWillClose(true); - event.setWillDestroy(true); - PetManager.setName(p, p.getDatabasePlayer().getRank().getColor() + event.getName()); - }else{ - event.setWillDestroy(true); - event.setWillClose(true); - } - }); - - ItemStack name = new ItemStack(Material.NAME_TAG); - ItemMeta nameMeta = name.getItemMeta(); - nameMeta.setDisplayName(PetManager.getName(p)); - name.setItemMeta(nameMeta); - - gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, name); - - gui.open(); - - } - if(e.getCurrentItem().getType() == Material.SUGAR) { - p.closeInventory(); - Entity pet = PetManager.getPet(p); - Ageable age = (Ageable) pet; - if(age.isAdult()) { - age.setBaby(); - }else { - age.setAdult(); - } - } - if(e.getCurrentItem().getType() == Material.SADDLE) { - p.closeInventory(); - Entity pet = PetManager.getPet(p); - if(pet.getPassenger() != null) { - pet.setPassenger(null); - }else { - pet.setPassenger(p); - } - } - if (e.getCurrentItem().getType() == Material.BARRIER) { - p.closeInventory(); - PetManager.removePet(p); - //p.sendMessage(msgs.PREFIX() + msgs.Lobby_PET_REMOVE()); - } - } - } - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/listeners/PlayerHider.java b/src/main/java/eu/univento/lobby/listeners/PlayerHider.java index 49946f0..61dbc38 100644 --- a/src/main/java/eu/univento/lobby/listeners/PlayerHider.java +++ b/src/main/java/eu/univento/lobby/listeners/PlayerHider.java @@ -1,8 +1,13 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + package eu.univento.lobby.listeners; import eu.univento.commons.player.rank.Rank; import eu.univento.core.api.player.CustomPlayer; -import eu.univento.lobby.utils.InventoryManager; +import lombok.Getter; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Sound; @@ -24,15 +29,9 @@ import java.util.ArrayList; public class PlayerHider implements Listener{ - private static ArrayList hidden = new ArrayList<>(); - public static ArrayList getHidden() { - return hidden; - } + @Getter private static ArrayList hidden = new ArrayList<>(); - private static ArrayList silentlobby = new ArrayList<>(); - public static ArrayList getSilentlobby() { - return silentlobby; - } + @Getter private static ArrayList silentlobby = new ArrayList<>(); private ItemStack getHide(CustomPlayer p) { //Messages msgs = new Messages(p); @@ -92,9 +91,8 @@ public class PlayerHider implements Listener{ if(p.getDatabasePlayer().isAllowed(Rank.VIP)) { if(silentlobby.contains(p)) { silentlobby.remove(p); - InventoryManager invs = new InventoryManager(p); p.getInventory().clear(); - invs.setMainInventory(true); + //p.sendMessage(msgs.PREFIX() + msgs.Lobby_SILENT_LOBBY_OFF()); for(Player players : Bukkit.getOnlinePlayers()) { p.showPlayer(players); diff --git a/src/main/java/eu/univento/lobby/utils/CustomMapRenderer.java b/src/main/java/eu/univento/lobby/utils/CustomMapRenderer.java index ebe2435..4e68b83 100644 --- a/src/main/java/eu/univento/lobby/utils/CustomMapRenderer.java +++ b/src/main/java/eu/univento/lobby/utils/CustomMapRenderer.java @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + package eu.univento.lobby.utils; import eu.univento.core.api.player.CustomPlayer; @@ -17,8 +22,7 @@ public class CustomMapRenderer extends MapRenderer{ public void render(MapView mapView, MapCanvas mapCanvas, Player player) { CustomPlayer p = CustomPlayer.getPlayer(player); mapCanvas.drawText(1, 10, MinecraftFont.Font, "Hallo " + p.getName()); - mapCanvas.drawText(1, 20, MinecraftFont.Font, "Du bist ein " + p.getDatabasePlayer().getRank().name()); - mapCanvas.drawText(1, 30, MinecraftFont.Font, p.getDatabasePlayer().getFirstLogin().toString()); - mapCanvas.drawText(1, 40, MinecraftFont.Font, "Sprache " + p.getDatabasePlayer().getLanguage()); + mapCanvas.drawText(1, 20, MinecraftFont.Font, "Du bist ein " + p.getDatabasePlayer().getRank().getColor() + p.getDatabasePlayer().getRank().name()); + mapCanvas.drawText(1, 40, MinecraftFont.Font, "Sprache " + p.getDatabasePlayer().getLanguage().getLocale().getLanguage()); } } \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/utils/InventoryManager.java b/src/main/java/eu/univento/lobby/utils/InventoryManager.java deleted file mode 100644 index 7bb5e3b..0000000 --- a/src/main/java/eu/univento/lobby/utils/InventoryManager.java +++ /dev/null @@ -1,555 +0,0 @@ -package eu.univento.lobby.utils; - -import eu.univento.commons.player.language.Language; -import eu.univento.commons.player.rank.Rank; -import eu.univento.core.api.items.ItemBuilder; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.commons.server.ServerInfo; -import eu.univento.lobby.Lobby; -import org.bukkit.Bukkit; -import org.bukkit.DyeColor; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.inventory.meta.SkullMeta; -import org.bukkit.material.Dye; - -import java.util.ArrayList; -import java.util.List; - -/** - * opens inventorys for players - * - * @author joethei - * @version 1.0 - */ -public class InventoryManager { - - private CustomPlayer player; - private Language language; - private ItemStack empty = new ItemStack(Material.AIR); - - - public InventoryManager(CustomPlayer player) { - this.player = player; - this.language = player.getDatabasePlayer().getLanguage(); - } - - public void setMainInventory(boolean forcetime) { - Inventory inv = player.getInventory(); - - ItemStack nav = new ItemStack(Material.WORKBENCH); - ItemMeta navMeta = nav.getItemMeta(); - navMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.Navigator")); - nav.setItemMeta(navMeta); - - ItemStack lobby = new ItemStack(Material.BLAZE_POWDER); - ItemMeta lobbyMeta = lobby.getItemMeta(); - lobbyMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.LobbySwitcher")); - lobby.setItemMeta(lobbyMeta); - - ItemStack adventure = new ItemStack(Material.GLOWSTONE_DUST); - ItemMeta adventureMeta = adventure.getItemMeta(); - adventureMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.Adventure")); - adventure.setItemMeta(adventureMeta); - - ItemStack fun = new ItemStack(Material.CHEST); - ItemMeta funMeta = fun.getItemMeta(); - funMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.FunChest")); - fun.setItemMeta(funMeta); - - ItemStack youtube = new ItemStack(Material.EXP_BOTTLE); - ItemMeta youtubeMeta = youtube.getItemMeta(); - youtubeMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.Youtuber")); - youtube.setItemMeta(youtubeMeta); - - ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); - SkullMeta meta = (SkullMeta) skull.getItemMeta(); - meta.setOwner(player.getName()); - meta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.Profile")); - skull.setItemMeta(meta); - - inv.setItem(2, empty); - inv.setItem(3, empty); - inv.setItem(4, empty); - inv.setItem(6, empty); - timeItem(inv, 0, nav, Sound.ENTITY_CHICKEN_EGG, 20L, false, forcetime); - timeItem(inv, 8, skull, Sound.ENTITY_CHICKEN_EGG, 40L, false, forcetime); - timeItem(inv, 1, lobby, Sound.ENTITY_CHICKEN_EGG, 60L, false, forcetime); - timeItem(inv, 7, fun, Sound.ENTITY_CHICKEN_EGG, 80L, false, forcetime); - if (player.getDatabasePlayer().isAllowed(Rank.VIP)) { - timeItem(inv, 5, youtube, Sound.ENTITY_CHICKEN_EGG, 120L, false, forcetime); - timeItem(inv, 3, adventure, Sound.ENTITY_CHICKEN_DEATH, 140L, false, forcetime); - } else { - timeItem(inv, 5, adventure, Sound.ENTITY_CHICKEN_EGG, 120L, false, forcetime); - } - - } - - /** - * gets inventory for navigation - * - * @return Inventory - */ - public Inventory getNavigatorInventory() { - Inventory inv = Bukkit.createInventory(player, 45, "Navigator"); - inv.setItem(31, new ItemBuilder(Material.FIREWORK_CHARGE).name(language.getWord("Lobby.Menu.Nav.Spawn")).make()); - - if(player.getDatabasePlayer().isAllowed(Rank.Supporter)) { - ServerInfo.getServerInfo("build").whenComplete((serverInfo, throwable) -> - inv.setItem(26, new ItemBuilder(Material.FLOWER_POT_ITEM).name(language.getWord("Lobby.Menu.Nav.Build")).lore(serverInfo.getPlayers() + "Spieler online").make())); - } - - return inv; - } - - public Inventory getLobbySwitcherInventory() { - Inventory inv = Bukkit.createInventory(player, 18, "Lobbys"); - - return inv; - } - - public void setYoutuberInventory() { - Inventory inv = player.getInventory(); - - String nickState; - if(player.getDatabasePlayer().getSettings().isNicked()) nickState = "on"; else nickState = "off"; - - ItemStack nick = new ItemStack(Material.NAME_TAG); - ItemMeta nickMeta = nick.getItemMeta(); - nickMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.YT.Nick." + nickState)); - nick.setItemMeta(nickMeta); - - ItemStack silent = new ItemStack(Material.TNT); - ItemMeta silentMeta = silent.getItemMeta(); - silentMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.YT.SilentLobby")); - silent.setItemMeta(silentMeta); - - ItemStack force = new ItemStack(Material.EYE_OF_ENDER); - ItemMeta forceMeta = force.getItemMeta(); - forceMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.YT.Forcefield")); - force.setItemMeta(forceMeta); - - ItemStack extras = new ItemStack(Material.MILK_BUCKET); - ItemMeta extrasMeta = extras.getItemMeta(); - extrasMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.YT.Extras")); - extras.setItemMeta(extrasMeta); - - Dye dye = new Dye(); - dye.setColor(DyeColor.RED); - ItemStack back = dye.toItemStack(); - ItemMeta backMeta = back.getItemMeta(); - backMeta.setDisplayName(player.getDatabasePlayer().getLanguage().getWord("Lobby.Item.YT.Back")); - back.setItemMeta(backMeta); - - inv.setItem(0, force); - inv.setItem(1, empty); - inv.setItem(2, nick); - inv.setItem(3, empty); - inv.setItem(4, silent); - inv.setItem(5, empty); - inv.setItem(6, extras); - inv.setItem(7, empty); - inv.setItem(8, back); - } - - /** - * gets inventory for funchest - * - * @return Inventory - */ - public Inventory getFunChestInventory() { - Inventory inv = Bukkit.createInventory(player, 45, "FunChest"); - - ItemStack music = new ItemStack(Material.RECORD_3); - ItemMeta musicMeta = music.getItemMeta(); - musicMeta.setLore(null); - //musicMeta.setDisplayName(player.getMessages().LobbyItems_MUSIC()); - music.setItemMeta(musicMeta); - - ItemStack gadgets = new ItemStack(Material.ARMOR_STAND); - ItemMeta gadgetsMeta = gadgets.getItemMeta(); - //gadgetsMeta.setDisplayName(player.getMessages().LobbyItems_GADGETS()); - gadgets.setItemMeta(gadgetsMeta); - - ItemStack particle = new ItemStack(Material.NOTE_BLOCK); - ItemMeta particleMeta = particle.getItemMeta(); - //particleMeta.setDisplayName(player.getMessages().LobbyItems_PARTICLE()); - particle.setItemMeta(particleMeta); - - ItemStack pets = new ItemStack(Material.MONSTER_EGG); - ItemMeta petsMeta = pets.getItemMeta(); - //petsMeta.setDisplayName(player.getMessages().LobbyItems_PETS()); - pets.setItemMeta(petsMeta); - - inv.setItem(11, music); - inv.setItem(15, gadgets); - inv.setItem(29, particle); - inv.setItem(33, pets); - - return inv; - } - - /** - * gets inventory for music - * - * @return Inventory - */ - public Inventory getMusicInventory() { - Inventory inv = Bukkit.createInventory(player, 45, "Music"); - - - ItemStack music_3 = new ItemStack(Material.RECORD_3); - ItemMeta music_3Meta = music_3.getItemMeta(); - List music_3Lore = new ArrayList<>(); - music_3Lore.add("§6Jetzt abspielen"); - music_3Meta.setDisplayName("§5Milky Way Stars | Janji feat. TR"); - music_3Meta.setLore(music_3Lore); - music_3.setItemMeta(music_3Meta); - - - //if (FoundItems.hasFound("music_3")) inv.setItem(2, music_3); - - return inv; - } - - /** - * gets inventory for gadgets - * - * @return Inventory - */ - public Inventory getGadgetsInventory() { - Inventory inv = Bukkit.createInventory(player, 45, "Gadgets"); - - ItemStack sugar = new ItemStack(Material.SUGAR); - ItemMeta sugarMeta = sugar.getItemMeta(); - sugarMeta.setDisplayName("§6Einen Teelöffel Zucker"); - sugar.setItemMeta(sugarMeta); - - ItemStack feather = new ItemStack(Material.FEATHER); - ItemMeta featherMeta = feather.getItemMeta(); - featherMeta.setDisplayName("§6Federleicht"); - feather.setItemMeta(featherMeta); - - //if (FoundItems.hasFound("sugar")) inv.setItem(0, sugar); - //if (FoundItems.hasFound("feather")) inv.setItem(1, feather); - - return inv; - } - - /** - * gets inventory for particle effects - * - * @return Inventory - */ - public Inventory getParticleInventory() { - Inventory inv = Bukkit.createInventory(player, 45, "Particle"); - - ItemStack hearts = new ItemStack(Material.RED_ROSE); - ItemMeta heartsMeta = hearts.getItemMeta(); - heartsMeta.setDisplayName("§6Herzen"); - hearts.setItemMeta(heartsMeta); - - ItemStack lava = new ItemStack(Material.LAVA_BUCKET); - ItemMeta lavaMeta = lava.getItemMeta(); - lavaMeta.setDisplayName("§6Lava"); - lava.setItemMeta(lavaMeta); - - //if (FoundItems.hasFound("hearts")) inv.setItem(0, hearts); - //if(FoundItems.hasFound("lava", player)) inv.setItem(1, lava); - - return inv; - } - - public Inventory getPetsInventory() { - Inventory inv = Bukkit.createInventory(player, 45, "Pets"); - - ItemStack pig = new ItemStack(Material.MONSTER_EGG, 1, (short) 90); - ItemMeta pigMeta = pig.getItemMeta(); - //pigMeta.setDisplayName(player.getMessages().LobbyItems_PETS_PIG()); - pig.setItemMeta(pigMeta); - - ItemStack cow = new ItemStack(Material.MONSTER_EGG, 1, (short) 92); - ItemMeta cowMeta = cow.getItemMeta(); - //cowMeta.setDisplayName(player.getMessages().LobbyItems_PETS_COW()); - cow.setItemMeta(cowMeta); - - ItemStack chicken = new ItemStack(Material.MONSTER_EGG, 1, (short) 93); - ItemMeta chickenMeta = chicken.getItemMeta(); - //chickenMeta.setDisplayName(player.getMessages().LobbyItems_PETS_CHICKEN()); - chicken.setItemMeta(chickenMeta); - - ItemStack rabbit = new ItemStack(Material.MONSTER_EGG, 1, (short) 101); - ItemMeta rabbitMeta = rabbit.getItemMeta(); - //rabbitMeta.setDisplayName(player.getMessages().LobbyItems_PETS_RABBIT()); - rabbit.setItemMeta(rabbitMeta); - - ItemStack mushroom = new ItemStack(Material.MONSTER_EGG, 1, (short) 96); - ItemMeta mushroomMeta = mushroom.getItemMeta(); - //mushroomMeta.setDisplayName(player.getMessages().LobbyItems_PETS_MUSHROM_COW()); - mushroom.setItemMeta(mushroomMeta); - - ItemStack horse = new ItemStack(Material.MONSTER_EGG, 1, (short) 101); - ItemMeta horseMeta = horse.getItemMeta(); - horseMeta.setDisplayName("Horse"); - horse.setItemMeta(horseMeta); - - ItemStack polar = new ItemStack(Material.MONSTER_EGG, 1, (short) 101); - ItemMeta polarMeta = polar.getItemMeta(); - polarMeta.setDisplayName("PolarBear"); - polar.setItemMeta(polarMeta); - - ItemStack delete = new ItemStack(Material.BARRIER); - ItemMeta deleteMeta = delete.getItemMeta(); - //deleteMeta.setDisplayName(player.getMessages().LobbyItems_PETS_REMOVE()); - delete.setItemMeta(deleteMeta); - - inv.setItem(0, pig); - inv.setItem(1, cow); - inv.setItem(2, chicken); - inv.setItem(3, rabbit); - inv.setItem(4, mushroom); - inv.setItem(5, horse); - inv.setItem(6, polar); - inv.setItem(44, delete); - - return inv; - } - - /** - * gets inventory for profile - * - * @return Inventory - */ - public Inventory getProfileInventory() { - Inventory inv = Bukkit.createInventory(player, 9, "Profil"); - - ItemStack stats = new ItemStack(Material.COMPASS); - ItemMeta statsMeta = stats.getItemMeta(); - //statsMeta.setDisplayName(player.getMessages().LobbyItems_STATS()); - stats.setItemMeta(statsMeta); - - ItemStack quests = new ItemStack(Material.PRISMARINE_SHARD); - - ItemStack secrets = new ItemStack(Material.CHEST); - - ItemStack friends = new ItemStack(Material.PUMPKIN); - ItemMeta friendsMeta = friends.getItemMeta(); - //friendsMeta.setDisplayName(player.getMessages().LobbyItems_FRIENDS()); - friends.setItemMeta(friendsMeta); - - ItemStack settings = new ItemStack(Material.NAME_TAG); - ItemMeta settingsMeta = settings.getItemMeta(); - //settingsMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS()); - settings.setItemMeta(settingsMeta); - - inv.setItem(0, stats); - inv.setItem(1, friends); - inv.setItem(2, quests); - inv.setItem(3, secrets); - inv.setItem(8, settings); - - return inv; - } - - /** - * gets inventory for settings - * - * @return Inventory - */ - public Inventory getSettingsInventory() { - Inventory inv = Bukkit.createInventory(player, 18, "Settings"); - - ArrayList on = new ArrayList<>(); - //on.add(player.getMessages().LobbyItems_SETTINGS_ON()); - - ArrayList off = new ArrayList<>(); - //off.add(player.getMessages().LobbyItems_SETTINGS_OFF()); - - ItemStack fastMenu = new ItemStack(Material.ANVIL); - ItemMeta fastMenuMeta = fastMenu.getItemMeta(); - //fastMenuMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_FASTMENU()); - if (player.getDatabasePlayer().getSettings().hasInventoryAnimationEnabled()) fastMenuMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - if (player.getDatabasePlayer().getSettings().hasInventoryAnimationEnabled()) fastMenuMeta.setLore(on); - else fastMenuMeta.setLore(off); - fastMenu.setItemMeta(fastMenuMeta); - - ItemStack teleport = new ItemStack(Material.ENDER_PEARL); - ItemMeta teleportMeta = teleport.getItemMeta(); - //teleportMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_SERVER_TELEPORT()); - if (player.getDatabasePlayer().getSettings().hasTeleportAnimationEnabled()) teleportMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - if (player.getDatabasePlayer().getSettings().hasTeleportAnimationEnabled()) teleportMeta.setLore(on); - else fastMenuMeta.setLore(off); - teleport.setItemMeta(teleportMeta); - - ItemStack requestsParty = new ItemStack(Material.FIREWORK); - ItemMeta requestsPartyMeta = requestsParty.getItemMeta(); - //requestsPartyMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_PARTY_REQUESTS()); - if (player.getDatabasePlayer().getSettings().hasPartyRequestsEnabled()) requestsPartyMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - if (player.getDatabasePlayer().getSettings().hasPartyRequestsEnabled()) requestsPartyMeta.setLore(on); - else requestsPartyMeta.setLore(off); - requestsParty.setItemMeta(requestsPartyMeta); - - ItemStack requestsFriends = new ItemStack(Material.PUMPKIN); - ItemMeta requestsFriendsMeta = requestsFriends.getItemMeta(); - //requestsFriendsMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_FRIEND_REQUESTS()); - if (player.getDatabasePlayer().getSettings().hasFriendRequestsEnabled()) requestsFriendsMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - if (player.getDatabasePlayer().getSettings().hasFriendRequestsEnabled()) requestsFriendsMeta.setLore(on); - else requestsFriendsMeta.setLore(off); - requestsFriends.setItemMeta(requestsFriendsMeta); - - ItemStack friendJump = new ItemStack(Material.ELYTRA); - ItemMeta friendJumpMeta = friendJump.getItemMeta(); - friendJumpMeta.setDisplayName("Freunde springen nicht gerne"); - if (player.getDatabasePlayer().getSettings().hasFriendJumpEnabled()) friendJumpMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - if (player.getDatabasePlayer().getSettings().hasFriendJumpEnabled()) friendJumpMeta.setLore(on); - else friendJumpMeta.setLore(off); - friendJump.setItemMeta(friendJumpMeta); - - ItemStack chat = new ItemStack(Material.SIGN); - ItemMeta chatMeta = chat.getItemMeta(); - //chatMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_CHATSOUNDS()); - if (player.getDatabasePlayer().getSettings().hasChatSoundsEnabled()) chatMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - if (player.getDatabasePlayer().getSettings().hasChatSoundsEnabled()) chatMeta.setLore(on); - else chatMeta.setLore(off); - chat.setItemMeta(chatMeta); - - ItemStack effects = new ItemStack(Material.BLAZE_POWDER); - ItemMeta effectsMeta = effects.getItemMeta(); - //effectsMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_EFFECTS()); - if (player.getDatabasePlayer().getSettings().hasEffectsEnabled()) effectsMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - if (player.getDatabasePlayer().getSettings().hasEffectsEnabled()) effectsMeta.setLore(on); - else effectsMeta.setLore(off); - effects.setItemMeta(effectsMeta); - - ItemStack storyMode = new ItemStack(Material.BOOK_AND_QUILL); - ItemMeta storyModeMeta = storyMode.getItemMeta(); - storyModeMeta.setDisplayName("Geschichtsmodus ist auch noch da"); - if (player.getDatabasePlayer().getSettings().hasStoryModeEnabled()) storyModeMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - if (player.getDatabasePlayer().getSettings().hasStoryModeEnabled()) storyModeMeta.setLore(on); - else storyModeMeta.setLore(off); - storyMode.setItemMeta(storyModeMeta); - - ItemStack languages = new ItemStack(Material.BOOK); - ItemMeta languagesMeta = languages.getItemMeta(); - //languagesMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_LANGUAGES()); - languages.setItemMeta(languagesMeta); - - - inv.setItem(0, fastMenu); - inv.setItem(1, teleport); - inv.setItem(2, requestsParty); - inv.setItem(3, requestsFriends); - inv.setItem(4, friendJump); - inv.setItem(5, chat); - inv.setItem(6, effects); - inv.setItem(7, storyMode); - inv.setItem(17, languages); - - return inv; - } - - public Inventory getLanguagesInventory() { - Inventory inv = Bukkit.createInventory(player, 9, "Languages"); - - ItemStack de = new ItemStack(Material.PAPER); - ItemMeta deMeta = de.getItemMeta(); - deMeta.setDisplayName("§eDeutsch"); - if (player.getDatabasePlayer().getSettings().getLanguage().equals("DE")) deMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - de.setItemMeta(deMeta); - - ItemStack en = new ItemStack(Material.PAPER); - ItemMeta enMeta = en.getItemMeta(); - enMeta.setDisplayName("§eEnglish"); - if (player.getDatabasePlayer().getSettings().getLanguage().equals("EN")) enMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - en.setItemMeta(enMeta); - - ItemStack it = new ItemStack(Material.PAPER); - ItemMeta itMeta = it.getItemMeta(); - itMeta.setDisplayName("§eitaliano"); - if (player.getDatabasePlayer().getSettings().getLanguage().equals("IT")) itMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false); - it.setItemMeta(itMeta); - - inv.setItem(0, de); - inv.setItem(1, en); - inv.setItem(2, it); - - return inv; - } - - /** - * gets friends inventory - * - * @return Inventory - */ - public Inventory getFriendsInventory() { - Inventory inv = Bukkit.createInventory(player, 45, "Friens"); - /** - ArrayList list = player.getFriends(); - - for(int i = 0; i >= list.size(); i++) { - OfflinePlayer p = Bukkit.getOfflinePlayer(list.get(i)); - ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); - SkullMeta meta = (SkullMeta) skull.getItemMeta(); - meta.setOwner(p.getName()); - meta.setDisplayName(p.getName()); - skull.setItemMeta(meta); - - inv.addItem(skull); - } - */ - - return inv; - } - - public Inventory getStatsInventory() { - Inventory inv = Bukkit.createInventory(player, 45, "stats"); - - return inv; - } - - /** - * time item appearance of item - * - * @param inv inventory - * @param slot Inventory slot - * @param item ItemStack - * @param sound Sound - * @param time long - * @param menu is menu ? - * @param forcedtime if true settings will be ignored - */ - private void timeItem(Inventory inv, int slot, ItemStack item, Sound sound, long time, boolean menu, boolean forcedtime) { - if (!player.getDatabasePlayer().getSettings().hasInventoryAnimationEnabled() || forcedtime) { - addItem(inv, slot, item, null, menu); - } else { - Bukkit.getScheduler().scheduleAsyncDelayedTask(Lobby.getInstance(), () -> addItem(inv, slot, item, sound, menu), time); - } - } - - /** - * add item to inventory - * - * @param inv inventory - * @param slot Inventory slot - * @param item ItemStack - * @param sound Sound - * @param menu is menu ? - */ - public void addItem(Inventory inv, int slot, ItemStack item, Sound sound, boolean menu) { - if (menu) { - String name = inv.getTitle(); - if (player.getOpenInventory().getTitle().equals(name)) { - inv.setItem(slot, item); - player.playSound(player.getEyeLocation(), sound, 1.0F, 1.0F); - } - } else { - inv.setItem(slot, item); - player.playSound(player.getEyeLocation(), sound, 1.0F, 1.0F); - } - } - -} \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/utils/PetManager.java b/src/main/java/eu/univento/lobby/utils/PetManager.java deleted file mode 100644 index 6edede3..0000000 --- a/src/main/java/eu/univento/lobby/utils/PetManager.java +++ /dev/null @@ -1,57 +0,0 @@ -package eu.univento.lobby.utils; - -import eu.univento.core.api.player.CustomPlayer; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; - -import java.util.HashMap; - -/** - * @author joethei - * @version 1.0 - */ -public class PetManager { - - private static HashMap pets = new HashMap<>(); - - public static HashMap getPets() { - return pets; - } - - public static boolean hasPet(CustomPlayer p) { - return pets.containsKey(p); - } - - public static Entity getPet(CustomPlayer p) { - return pets.get(p); - } - - public static void removePet(CustomPlayer p) { - pets.get(p).remove(); - } - - public static void setPet(CustomPlayer p, EntityType e) { - if(hasPet(p)) { - removePet(p); - } - new Pets().createPet(p, e); - } - - public static void setName(CustomPlayer p, String name) { - if(hasPet(p)) { - getPet(p).setCustomName(name); - } - } - - public static String getName(CustomPlayer p) { - if(hasPet(p)) { - return getPet(p).getCustomName(); - }else { - return null; - } - } - - public static void clearPets() { - pets.values().forEach(Entity::remove); - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/utils/Pets.java b/src/main/java/eu/univento/lobby/utils/Pets.java deleted file mode 100644 index 73d39a0..0000000 --- a/src/main/java/eu/univento/lobby/utils/Pets.java +++ /dev/null @@ -1,69 +0,0 @@ -package eu.univento.lobby.utils; - -import eu.univento.core.api.pet.NMSHandler; -import eu.univento.core.api.player.CustomPlayer; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_11_R1.entity.CraftCreature; -import org.bukkit.entity.Creature; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; - -import java.util.Random; - -/** - * @author joethei - * @version 1.0 - */ -public class Pets { - - public Pets(){ - } - - void createPet(CustomPlayer p, EntityType type){ - Entity entity = NMSHandler.spawn(type, p.getLocation()); - assert entity != null; - entity.setCustomName(p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + "'s"); - entity.setCustomNameVisible(true); - PetManager.getPets().put(p, entity); - } - - public void followPlayer(Creature creature, Player player, double speed){ - Location location = player.getLocation(); - - - Random rnd = new Random(); - int rand = rnd.nextInt(6); - switch(rand){ - case 0: - location.add(1.5,0,1.5); - break; - case 1: - location.add(0,0,1.5); - break; - case 2: - location.add(1.5,0,0); - break; - case 3: - location.subtract(1.5,0,1.5); - break; - case 4: - location.subtract(0,0,1.5); - break; - case 5: - location.subtract(1.5,0,0); - break; - } - - - if(location.distanceSquared(creature.getLocation()) > 100){ - if(player.isFlying()){ - return; - } - creature.teleport(location); - }else{ - ((CraftCreature)creature).getHandle().getNavigation().a(location.getX(),location.getY(),location.getZ(),speed); - } - } - -} \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/utils/Scoreboards.java b/src/main/java/eu/univento/lobby/utils/Scoreboards.java index 1f26ebf..3e72956 100644 --- a/src/main/java/eu/univento/lobby/utils/Scoreboards.java +++ b/src/main/java/eu/univento/lobby/utils/Scoreboards.java @@ -1,61 +1,128 @@ +/* + * Copyright (c) 2018 univento.eu - All rights reserved + * You are not allowed to use, distribute or modify this code + */ + package eu.univento.lobby.utils; +import eu.univento.core.Core; import eu.univento.core.api.player.CustomPlayer; +import io.vertx.core.json.JsonObject; +import org.bukkit.Bukkit; +import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Score; import org.bukkit.scoreboard.Scoreboard; +import java.util.ArrayList; +import java.util.List; + /** * @author joethei - * @version 1.0 + * @version 2.0 */ public class Scoreboards { public static void updateScoreboard(CustomPlayer p) { - //Messages msgs = p.getMessages(); - Scoreboard board = p.getScoreboard(); - if(board.getObjective("Lobby") != null) board.getObjective("Lobby").unregister(); - Objective obj = board.registerNewObjective("Lobby", "dummy"); - obj.setDisplaySlot(DisplaySlot.SIDEBAR); - //obj.setDisplayName(msgs.TAB_PREFIX()); + p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR); - Score empty = obj.getScore(" "); - empty.setScore(13); + List general = new ArrayList<>(); + List dev = new ArrayList<>(); + List build = new ArrayList<>(); + List team = new ArrayList<>(); - //Score coinsMsg = obj.getScore(msgs.LobbyBoard_COINS()); - //coinsMsg.setScore(12); + Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("updates", new JsonObject().put("category", "general"), null, event -> { + if(event.failed()) return; + event.result().getJsonArray("news").forEach(o -> general.add((String) o)); + }); - //Score coins = obj.getScore("§7" + p.getDatabasePlayer().getCoins()); - //coins.setScore(11); + Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("updates", new JsonObject().put("category", "development"), null, event -> { + if(event.failed()) return; + event.result().getJsonArray("news").forEach(o -> dev.add((String) o)); + }); - Score empty1 = obj.getScore(" "); - empty1.setScore(10); + Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("updates", new JsonObject().put("category", "build"), null, event -> { + if(event.failed()) return; + event.result().getJsonArray("news").forEach(o -> build.add((String) o)); + }); - Score empty2 = obj.getScore(" "); - empty2.setScore(7); + Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("updates", new JsonObject().put("category", "team"), null, event -> { + if(event.failed()) return; + event.result().getJsonArray("news").forEach(o -> team.add((String) o)); + }); - //Score forumMsg = obj.getScore(msgs.LobbyBoard_FORUM()); - //forumMsg.setScore(6); + Bukkit.getScheduler().scheduleSyncDelayedTask(Core.getInstance(), new BukkitRunnable() { + @Override + public void run() { + int size = general.size() + dev.size() + build.size() + team.size() + 8; - Score forum = obj.getScore("§7forum.univento.eu"); - forum.setScore(5); + Scoreboard board = p.getScoreboard(); + if(board.getObjective("Lobby") != null) board.getObjective("Lobby").unregister(); - Score empty3 = obj.getScore(" "); - empty3.setScore(4); + Objective obj = board.registerNewObjective("Lobby", "dummy"); + obj.setDisplaySlot(DisplaySlot.SIDEBAR); + obj.setDisplayName("§8§l♣ §2updates"); - //Score tsMsg = obj.getScore(msgs.LobbyBoard_TS()); - //tsMsg.setScore(3); + Score generalSpace = obj.getScore("§8§l"); + generalSpace.setScore(size); + size--; - Score ts = obj.getScore("§7ts.univento.eu"); - ts.setScore(2); + Score generalHead = obj.getScore("§7§l✸ §aAllgemeines"); + generalHead.setScore(size); + size--; - Score empty4 = obj.getScore(" "); - empty4.setScore(1); + for(String news : general) { + Score score = obj.getScore(news); + score.setScore(size); + size--; + } + + Score devSpace = obj.getScore("§5§l"); + devSpace.setScore(size); + size--; + + Score devHead = obj.getScore("§7§l⚡ §aEntwicklung"); + devHead.setScore(size); + size--; + + for(String news : dev) { + Score score = obj.getScore(news); + score.setScore(size); + size--; + } + + Score buildSpace = obj.getScore("§3§l"); + buildSpace.setScore(size); + size--; + + Score buildHead = obj.getScore("§7§l⚒ §aBuilding"); + buildHead.setScore(size); + size--; + + for(String news : build) { + Score score = obj.getScore(news); + score.setScore(size); + size--; + } + + Score teamSpace = obj.getScore("§6§l"); + teamSpace.setScore(size); + size--; + + Score teamHead = obj.getScore("§7§l☯ §aTeam"); + teamHead.setScore(size); + size--; + + for(String news : team) { + Score score = obj.getScore(news); + score.setScore(size); + size--; + } + } + }, 2 * 20L); - Score end = obj.getScore(" §8-*-"); - end.setScore(0); } } \ No newline at end of file