From dab81840203ead90f23778c8c8965f3b35d9d865 Mon Sep 17 00:00:00 2001 From: joethei Date: Thu, 24 Nov 2016 20:00:03 +0100 Subject: [PATCH] + 1.11 Update --- TeamVento.iml | 60 ++--- pom.xml | 35 ++- .../java/eu/univento/teamvento/TeamVento.java | 3 +- .../univento/teamvento/listener/Events.java | 16 +- .../univento/teamvento/listener/JoinQuit.java | 4 +- .../teamvento/listener/MenuEvents.java | 58 ++-- .../teamvento/listener/SignInteract.java | 18 +- .../teamvento/utils/InventoryManager.java | 111 ++++++++ .../univento/teamvento/utils/Inventorys.java | 253 ------------------ .../eu/univento/teamvento/utils/Plot.java | 19 +- .../univento/teamvento/utils/PlotAction.java | 8 +- .../univento/teamvento/utils/PlotManager.java | 46 +--- .../eu/univento/teamvento/utils/Time.java | 5 + .../eu/univento/teamvento/utils/Weather.java | 6 + 14 files changed, 244 insertions(+), 398 deletions(-) create mode 100644 src/main/java/eu/univento/teamvento/utils/InventoryManager.java delete mode 100644 src/main/java/eu/univento/teamvento/utils/Inventorys.java diff --git a/TeamVento.iml b/TeamVento.iml index cdafa29..e15cdc5 100644 --- a/TeamVento.iml +++ b/TeamVento.iml @@ -1,5 +1,5 @@ - + @@ -11,42 +11,34 @@ - + - - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 519e654..61849aa 100644 --- a/pom.xml +++ b/pom.xml @@ -51,39 +51,48 @@ + + + univentoEU + http://dev.joethei.de:8081/repository/public/ + + + + + com.destroystokyo.paper + paper-api + 1.11-R0.1-SNAPSHOT + provided + org.spigotmc spigot-api - 1.10.2-R0.1-SNAPSHOT + 1.11-R0.1-SNAPSHOT provided org.bukkit bukkit - 1.10.2-R0.1-SNAPSHOT + 1.11-R0.1-SNAPSHOT provided org.bukkit craftbukkit - 1.10.2-R0.1-SNAPSHOT + 1.11-R0.1-SNAPSHOT provided - - eu.univento - CloudCommons - 1.0-SNAPSHOT - - - eu.univento - Commons - 1.0-SNAPSHOT - eu.univento Core 1.0-SNAPSHOT + provided + + + org.projectlombok + lombok + 1.16.10 diff --git a/src/main/java/eu/univento/teamvento/TeamVento.java b/src/main/java/eu/univento/teamvento/TeamVento.java index c571150..534e739 100644 --- a/src/main/java/eu/univento/teamvento/TeamVento.java +++ b/src/main/java/eu/univento/teamvento/TeamVento.java @@ -18,8 +18,9 @@ import java.io.File; /** * @author joethei - * @version 0.1 + * @version 1.0 */ + public class TeamVento extends JavaPlugin { private static final File file = new File("plugins/Core", "worlds.yml"); diff --git a/src/main/java/eu/univento/teamvento/listener/Events.java b/src/main/java/eu/univento/teamvento/listener/Events.java index 4237ebf..5be1fe7 100644 --- a/src/main/java/eu/univento/teamvento/listener/Events.java +++ b/src/main/java/eu/univento/teamvento/listener/Events.java @@ -77,8 +77,12 @@ public class Events implements Listener{ @EventHandler public void onHangingBreakByEntity(HangingBreakByEntityEvent e) { if(e.getRemover() instanceof Projectile) { - CustomPlayer p = CustomPlayer.getPlayer((Player) ((Projectile) e.getRemover()).getShooter()); - if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); + if(((Projectile) e.getRemover()).getShooter() instanceof Player) { + CustomPlayer p = CustomPlayer.getPlayer((Player) ((Projectile) e.getRemover()).getShooter()); + if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); + }else { + e.setCancelled(true); + } } if(e.getRemover() instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer((Player) e.getRemover()); @@ -95,8 +99,12 @@ public class Events implements Listener{ if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); } if(e.getDamager() instanceof Projectile) { - CustomPlayer p = CustomPlayer.getPlayer((Player) ((Projectile) e.getDamager()).getShooter()); - if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); + if(((Projectile) e.getDamager()).getShooter() instanceof Player) { + CustomPlayer p = CustomPlayer.getPlayer((Player) ((Projectile) e.getDamager()).getShooter()); + if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); + }else { + e.setCancelled(true); + } } } diff --git a/src/main/java/eu/univento/teamvento/listener/JoinQuit.java b/src/main/java/eu/univento/teamvento/listener/JoinQuit.java index ed88be5..4655592 100644 --- a/src/main/java/eu/univento/teamvento/listener/JoinQuit.java +++ b/src/main/java/eu/univento/teamvento/listener/JoinQuit.java @@ -7,7 +7,7 @@ import eu.univento.core.api.player.CustomPlayer; import eu.univento.teamvento.TeamVento; import eu.univento.teamvento.utils.Plot; import eu.univento.teamvento.utils.PlotManager; -import net.minecraft.server.v1_10_R1.EnumParticle; +import net.minecraft.server.v1_11_R1.EnumParticle; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.event.EventHandler; @@ -56,7 +56,7 @@ public class JoinQuit implements Listener { Bukkit.getScheduler().runTaskTimerAsynchronously(TeamVento.getInstance(), () -> p.playParticle(Config.readLocation("Build.Locs.Holo").add(0.0D, 1.0D, 0.0D), EnumParticle.SPELL_WITCH, 0.4F, 10), 20L, 5L); - Hologram holo = new Hologram(text, Config.readLocation("Build.Locs.Holo")); + Hologram holo = new Hologram(new ItemStack(Material.GRASS), text, Config.readLocation("Build.Locs.Holo")); holograms.put(p, holo); holo.showPlayer(p); } diff --git a/src/main/java/eu/univento/teamvento/listener/MenuEvents.java b/src/main/java/eu/univento/teamvento/listener/MenuEvents.java index b5ac197..1d12937 100644 --- a/src/main/java/eu/univento/teamvento/listener/MenuEvents.java +++ b/src/main/java/eu/univento/teamvento/listener/MenuEvents.java @@ -9,7 +9,6 @@ import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.utils.UUIDFetcher; import eu.univento.teamvento.TeamVento; import eu.univento.teamvento.utils.*; -import net.gpedro.integrations.slack.SlackApi; import net.gpedro.integrations.slack.SlackMessage; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -33,10 +32,10 @@ public class MenuEvents implements Listener{ @EventHandler public void onInteract(PlayerInteractEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - Inventorys invs = new Inventorys(p); + InventoryManager inventoryManager = new InventoryManager(p); if(e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) { if(p.getItemInHand().getType() == Material.WATCH && p.getItemInHand().getItemMeta().getDisplayName().equals("§eErweiterungen")) { - p.openInventory(invs.getMainInventory()); + p.openInventory(inventoryManager.getMainInventory()); } } } @@ -44,7 +43,7 @@ public class MenuEvents implements Listener{ @EventHandler public void onInventoryClick(InventoryClickEvent e) { CustomPlayer p = CustomPlayer.getPlayer((Player) e.getWhoClicked()); - Inventorys invs = new Inventorys(p); + InventoryManager inventoryManager = new InventoryManager(p); if(e.isShiftClick() && e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§eErweiterungen")) e.setCancelled(true); if(!PlotManager.hasPlot(p)) return; if(e.getCurrentItem() == null) return; @@ -52,17 +51,13 @@ public class MenuEvents implements Listener{ if(!e.getCurrentItem().getItemMeta().hasDisplayName()) return; Plot plot = PlotManager.getPlotByPlayer(p); assert plot != null; - if(e.getInventory().getName().equals(invs.getMainInventory().getName())) { + if(e.getInventory().getName().equals(inventoryManager.getMainInventory().getName())) { e.setCancelled(true); if(e.getCurrentItem().getType() == Material.BED) { p.closeInventory(); Location loc = plot.getSpawn(); p.teleport(new Location(Bukkit.getWorld("plots"), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F)); } - if(e.getCurrentItem().getType() == Material.LEASH) { - p.closeInventory(); - p.openInventory(invs.getAnimalsInventory()); - } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§ePlot zurücksetzen")) { PlotManager.resetPlot(plot); p.closeInventory(); @@ -70,25 +65,25 @@ public class MenuEvents implements Listener{ if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§eFertig")) { p.closeInventory(); if(plot.hasName() && plot.hasContact()) - p.openInventory(invs.getReadyInventory()); + p.openInventory(inventoryManager.getReadyInventory()); else p.sendMessage("§cName und Kontaktinformationen müssen angegeben werden"); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§eBiom ändern")) { p.closeInventory(); - p.openInventory(invs.getBiomeInventory()); + p.openInventory(inventoryManager.getBiomeInventory()); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§eWetter ändern")) { p.closeInventory(); - p.openInventory(invs.getWeatherInventory()); + p.openInventory(inventoryManager.getWeatherInventory()); } if(e.getCurrentItem().getType() == Material.WATCH) { p.closeInventory(); - p.openInventory(invs.getTimeInventory()); + p.openInventory(inventoryManager.getTimeInventory()); } if(e.getCurrentItem().getType() == Material.LADDER) { p.closeInventory(); - p.openInventory(invs.getSettingsInventory()); + p.openInventory(inventoryManager.getSettingsInventory()); } if(e.getCurrentItem().getType() == Material.MINECART) { p.closeInventory(); @@ -97,28 +92,27 @@ public class MenuEvents implements Listener{ ArrayList items = new ArrayList<>(); for(Plot plots : PlotManager.getPlots()) { String name = UUIDFetcher.getName(plots.getOwner()); - items.add(new ItemBuilder(Material.SKULL_ITEM).durability().skullOwner(name).name("§e" + plots.getName()).lore("§evon " + name).make()); + items.add(new ItemBuilder(Material.SKULL_ITEM).durability((short) 3).skullOwner(name).name("§e" + plots.getName()).lore("§evon " + name).make()); } inventory.setPages(items); inventory.openInventory(); }); } } - if(e.getInventory().getName().equals(invs.getReadyInventory().getName())) { + if(e.getInventory().getName().equals(inventoryManager.getReadyInventory().getName())) { if(e.getCurrentItem().getItemMeta().getDisplayName().equals("Ja")) { p.closeInventory(); plot.setReady(); p.getInventory().remove(p.getInventory().getItem(8)); Core.getOnlinePlayers().stream().filter(player -> player.getDatabasePlayer().isAllowed(Rank.Builder)).forEach(player -> player.sendMessage("§a[Plot]§e" + p.getName() + " ist fertig")); - SlackApi api = new SlackApi("https://hooks.slack.com/services/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"); SlackMessage message = new SlackMessage("#bauevent", p.getName(), " ist nun fertig mit bauen"); message.setIcon("http://cravatar.eu/head/" + p.getUniqueId().toString()); - api.call(message); + Core.getCommons().getSlackHandler().getSlackAPI().call(message); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("Nein")) p.closeInventory(); } - if(e.getInventory().getName().equals(invs.getBiomeInventory().getName())) { + if(e.getInventory().getName().equals(inventoryManager.getBiomeInventory().getName())) { e.setCancelled(true); if(e.getCurrentItem().getType() == Material.WATER_LILY) { p.closeInventory(); @@ -153,7 +147,7 @@ public class MenuEvents implements Listener{ plot.setBiome(Biome.JUNGLE); } } - if(e.getInventory().getName().equals(invs.getTimeInventory().getName())) { + if(e.getInventory().getName().equals(inventoryManager.getTimeInventory().getName())) { e.setCancelled(true); if(e.getCurrentItem().getType() == Material.MILK_BUCKET) { p.closeInventory(); @@ -176,7 +170,7 @@ public class MenuEvents implements Listener{ if(plot.isInPlot(p.getLocation()))p.setPlayerTime(Time.NIGHT.getValue(), false); } } - if(e.getInventory().getName().equals(invs.getWeatherInventory().getName())) { + if(e.getInventory().getName().equals(inventoryManager.getWeatherInventory().getName())) { e.setCancelled(true); if(e.getCurrentItem().getType() == Material.DOUBLE_PLANT) { p.closeInventory(); @@ -194,45 +188,45 @@ public class MenuEvents implements Listener{ if(plot.isInPlot(p.getLocation()))p.setPlayerWeather(WeatherType.DOWNFALL); } } - if(e.getInventory().getName().equals(invs.getSettingsInventory().getName())) { + if(e.getInventory().getName().equals(inventoryManager.getSettingsInventory().getName())) { e.setCancelled(true); if(e.getCurrentItem().getType() == Material.SIGN) { AnvilGUI gui = new AnvilGUI(p, event -> { if(event.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) { - event.setWillClose(); - event.setWillDestroy(); + event.setWillClose(true); + event.setWillDestroy(true); plot.setName(event.getName()); p.refreshExperience(); }else{ - event.setWillDestroy(); - event.setWillClose(); + event.setWillDestroy(true); + event.setWillClose(true); } }); ItemStack name = new ItemStack(Material.SIGN); ItemMeta nameMeta = name.getItemMeta(); nameMeta.setDisplayName(plot.getName() == null ? "§cunbennantes Plot" : plot.getName()); name.setItemMeta(nameMeta); - gui.setSlot(name); + gui.setSlot(AnvilGUI.AnvilSlot.INPUT_RIGHT, name); gui.open(); } if(e.getCurrentItem().getType() == Material.NAME_TAG) { AnvilGUI gui = new AnvilGUI(p, event -> { if(event.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) { - event.setWillClose(); - event.setWillDestroy(); + event.setWillClose(true); + event.setWillDestroy(true); plot.setContact(event.getName()); p.refreshExperience(); }else{ - event.setWillDestroy(); - event.setWillClose(); + event.setWillDestroy(true); + event.setWillClose(true); } }); ItemStack name = new ItemStack(Material.NAME_TAG); ItemMeta nameMeta = name.getItemMeta(); nameMeta.setDisplayName(plot.getContact() == null ? "§cKontaktdaten" : plot.getContact()); name.setItemMeta(nameMeta); - gui.setSlot(name); + gui.setSlot(AnvilGUI.AnvilSlot.INPUT_RIGHT, name); gui.open(); } diff --git a/src/main/java/eu/univento/teamvento/listener/SignInteract.java b/src/main/java/eu/univento/teamvento/listener/SignInteract.java index 3df6aca..8008a63 100644 --- a/src/main/java/eu/univento/teamvento/listener/SignInteract.java +++ b/src/main/java/eu/univento/teamvento/listener/SignInteract.java @@ -43,23 +43,23 @@ public class SignInteract implements Listener { int z = midZ; int f = 1; List points = new ArrayList<>(); - while(f <= radius * 2) { // der Radius ist Länge der Strecke zwischen dem Rand und dem Mittelpunkt ohne die Mitte selbst, in deinem Beispiel 2. - for(int e = z + f; z < e; z++) { // nach oben + while(f <= radius * 2) { + for(int e = z + f; z < e; z++) { points.add(new Point(x, z)); } - for(int e = x + f; x < e; x++) { // nach rechts + for(int e = x + f; x < e; x++) { points.add(new Point(x, z)); } - f++; // die Linie muss ja eins länger sein, sonst würde es sich überschneiden - for(int e = z - f; z > e; z--) { // nach unten + f++; + for(int e = z - f; z > e; z--) { points.add(new Point(x, z)); } - for(int e = x - f; x > e; x--) { // nach links + for(int e = x - f; x > e; x--) { points.add(new Point(x, z)); } - f++; // dasselbe wie oben - } // dann alles von vorne, bis man in der unteren linken Ecke mit dem vorgegebenen Radius angelangt ist. - for(int e = z + f - 1; z < e; z++) { // nach oben damit die Spirale fertigestellt wird + f++; + } + for(int e = z + f - 1; z < e; z++) { points.add(new Point(x, z)); } for(Point point : points) diff --git a/src/main/java/eu/univento/teamvento/utils/InventoryManager.java b/src/main/java/eu/univento/teamvento/utils/InventoryManager.java new file mode 100644 index 0000000..5c9155b --- /dev/null +++ b/src/main/java/eu/univento/teamvento/utils/InventoryManager.java @@ -0,0 +1,111 @@ +package eu.univento.teamvento.utils; + +import eu.univento.core.api.items.ItemBuilder; +import eu.univento.core.api.player.CustomPlayer; +import org.bukkit.Bukkit; +import org.bukkit.Color; +import org.bukkit.DyeColor; +import org.bukkit.Material; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.material.Dye; + +/** + * @author joethei + * @version 1.0 + */ + +public class InventoryManager { + + private final CustomPlayer player; + + public InventoryManager(CustomPlayer player) { + this.player = player; + } + + public Inventory getMainInventory() { + Inventory inv = Bukkit.createInventory(player, 27, "§eGrundstücksverwaltung"); + + inv.setItem(0, new ItemBuilder(Material.MINECART).name("§eZu anderen Plots teleportieren").make()); + inv.setItem(2, new ItemBuilder(Material.DOUBLE_PLANT).data(4).name("§eBiom ändern").make()); + inv.setItem(8, new ItemBuilder(Material.LADDER).name("§eEinstellungen").make()); + inv.setItem(10, new ItemBuilder(Material.WATCH).name("§eZeit ändern").make()); + inv.setItem(13, new ItemBuilder(Material.BED).name("§ezu deinem Plot").make()); + inv.setItem(16, new ItemBuilder(Material.DOUBLE_PLANT).name("§eWetter ändern").make()); + inv.setItem(20, new ItemBuilder(Material.SKULL_ITEM).durability((short) 3).skullOwner("conorf1807").make()); + + Dye resetDye = new Dye(); + resetDye.setColor(DyeColor.RED); + ItemStack reset = resetDye.toItemStack(1); + ItemMeta resetMeta = reset.getItemMeta(); + resetMeta.setDisplayName("§ePlot zurücksetzen"); + reset.setItemMeta(resetMeta); + + Dye readyDye = new Dye(); + readyDye.setColor(DyeColor.LIME); + ItemStack ready = readyDye.toItemStack(1); + ItemMeta readyMeta = ready.getItemMeta(); + readyMeta.setDisplayName("§eFertig"); + ready.setItemMeta(readyMeta); + + inv.setItem(18, reset); + inv.setItem(26, ready); + + return inv; + } + + public Inventory getReadyInventory() { + Inventory inv = Bukkit.createInventory(player, 27, "§ePlot fertig ?"); + + inv.setItem(5, new ItemBuilder(Material.WOOL).color(Color.LIME).name("Ja").make()); + inv.setItem(10, new ItemBuilder(Material.WOOL).color(Color.RED).name("Nein").make()); + + return inv; + } + + public Inventory getBiomeInventory() { + Inventory inv = Bukkit.createInventory(player, 27, "§eBiom ändern"); + + inv.setItem(0, new ItemBuilder(Material.STAINED_CLAY).durability((short) 1).name("§eMessa").make()); + inv.setItem(4, new ItemBuilder(Material.SAPLING).durability((short) 3).name("§eDschungel").make()); + inv.setItem(8, new ItemBuilder(Material.WATER_LILY).name("§eSumpfgebiet").make()); + inv.setItem(11, new ItemBuilder(Material.SAPLING).name("Wald").make()); + inv.setItem(15, new ItemBuilder(Material.LONG_GRASS).durability((short) 1).name("§eFlachland").make()); + inv.setItem(18, new ItemBuilder(Material.DEAD_BUSH).name("§eWüste").make()); + inv.setItem(22, new ItemBuilder(Material.SNOW_BALL).name("§eTundra").make()); + + return inv; + } + + public Inventory getSettingsInventory() { + Inventory inv = Bukkit.createInventory(player, 27, "§eEinstellungen"); + + inv.setItem(10, new ItemBuilder(Material.SIGN).name("§eName ändern").make()); + inv.setItem(16, new ItemBuilder(Material.NAME_TAG).name("§eKontaktmöglichkeiten").make()); + + return inv; + } + + public Inventory getTimeInventory() { + Inventory inv = Bukkit.createInventory(player, 27, "§eZeit ändern"); + + inv.setItem(10, new ItemBuilder(Material.MILK_BUCKET).name("§eMorgen").make()); + inv.setItem(12, new ItemBuilder(Material.DOUBLE_PLANT).name("§eTag").make()); + inv.setItem(14, new ItemBuilder(Material.BEETROOT_SOUP).name("§eAbend").make()); + inv.setItem(16, new ItemBuilder(Material.COAL).name("§eNacht").durability((short) 1).make()); + + return inv; + } + + public Inventory getWeatherInventory() { + Inventory inv = Bukkit.createInventory(player, 27, "§eWetter ändern"); + + inv.setItem(11, new ItemBuilder(Material.DOUBLE_PLANT).name("§eSonne").make()); + inv.setItem(13, new ItemBuilder(Material.WATER_BUCKET).name("§eRegen").make()); + inv.setItem(15, new ItemBuilder(Material.BLAZE_ROD).name("§eGewitter").make()); + + return inv; + } + +} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/utils/Inventorys.java b/src/main/java/eu/univento/teamvento/utils/Inventorys.java deleted file mode 100644 index d984a89..0000000 --- a/src/main/java/eu/univento/teamvento/utils/Inventorys.java +++ /dev/null @@ -1,253 +0,0 @@ -package eu.univento.teamvento.utils; - -import eu.univento.core.api.items.ItemBuilder; -import eu.univento.core.api.player.CustomPlayer; -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.DyeColor; -import org.bukkit.Material; -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; - -public class Inventorys { - - private final CustomPlayer player; - - public Inventorys(CustomPlayer player) { - this.player = player; - } - - public Inventory getMainInventory() { - Inventory inv = Bukkit.createInventory(player, 27, "§eGrundstücksverwaltung"); - - ItemStack teleport = new ItemStack(Material.MINECART); - ItemMeta teleportMeta = teleport.getItemMeta(); - teleportMeta.setDisplayName("§eZu anderen Plots teleportieren"); - teleport.setItemMeta(teleportMeta); - - ItemStack biome = new ItemStack(Material.DOUBLE_PLANT, 1, (short) 4); - ItemMeta biomeMeta = biome.getItemMeta(); - biomeMeta.setDisplayName("§eBiom ändern"); - biome.setItemMeta(biomeMeta); - - ItemStack animals = new ItemStack(Material.LEASH); - ItemMeta animalsMeta = animals.getItemMeta(); - animalsMeta.setDisplayName("§eTiere"); - animals.setItemMeta(animalsMeta); - - ItemStack settings = new ItemStack(Material.LADDER); - ItemMeta settingsMeta = settings.getItemMeta(); - settingsMeta.setDisplayName("§eEinstellungen"); - settings.setItemMeta(settingsMeta); - - ItemStack time = new ItemStack(Material.WATCH); - ItemMeta timeMeta = time.getItemMeta(); - timeMeta.setDisplayName("§eZeit ändern"); - time.setItemMeta(timeMeta); - - ItemStack home = new ItemStack(Material.BED); - ItemMeta homeMeta = home.getItemMeta(); - homeMeta.setDisplayName("§ezu deinem Plot"); - home.setItemMeta(homeMeta); - - ItemStack weather = new ItemStack(Material.DOUBLE_PLANT); - ItemMeta weatherMeta = weather.getItemMeta(); - weatherMeta.setDisplayName("§eWetter ändern"); - weather.setItemMeta(weatherMeta); - - Dye resetDye = new Dye(); - resetDye.setColor(DyeColor.RED); - ItemStack reset = resetDye.toItemStack(1); - ItemMeta resetMeta = reset.getItemMeta(); - resetMeta.setDisplayName("§ePlot zurücksetzen"); - reset.setItemMeta(resetMeta); - - ItemStack skulls = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); - SkullMeta skullMeta = (SkullMeta) skulls.getItemMeta(); - skullMeta.setOwner("conorf1807"); - skullMeta.setDisplayName("§eKöpfe"); - skulls.setItemMeta(skullMeta); - - ItemStack particle = new ItemStack(Material.BLAZE_POWDER); - ItemMeta particleMeta = particle.getItemMeta(); - particleMeta.setDisplayName("§ePartikel"); - particle.setItemMeta(particleMeta); - - Dye readyDye = new Dye(); - readyDye.setColor(DyeColor.LIME); - ItemStack ready = readyDye.toItemStack(1); - ItemMeta readyMeta = ready.getItemMeta(); - readyMeta.setDisplayName("§eFertig"); - ready.setItemMeta(readyMeta); - - inv.setItem(0, teleport); - inv.setItem(2, biome); - //inv.setItem(6, animals); - inv.setItem(8, settings); - inv.setItem(10, time); - inv.setItem(13, home); - inv.setItem(16, weather); - inv.setItem(18, reset); - inv.setItem(20, skulls); - //inv.setItem(24, particle); - inv.setItem(26, ready); - - return inv; - } - - public Inventory getReadyInventory() { - Inventory inv = Bukkit.createInventory(player, 27, "§ePlot fertig ?"); - - inv.setItem(5, new ItemBuilder(Material.WOOL).color(Color.LIME).name("Ja").make()); - inv.setItem(10, new ItemBuilder(Material.WOOL).color(Color.RED).name("Nein").make()); - - return inv; - } - - public Inventory getBiomeInventory() { - Inventory inv = Bukkit.createInventory(player, 27, "§eBiom ändern"); - - ItemStack mesa = new ItemStack(Material.STAINED_CLAY, 1, (short) 1); - ItemMeta mesaMeta = mesa.getItemMeta(); - mesaMeta.setDisplayName("§eMesa"); - mesa.setItemMeta(mesaMeta); - - ItemStack jungle = new ItemStack(Material.SAPLING, 1, (short) 3); - ItemMeta jungleMeta = jungle.getItemMeta(); - jungleMeta.setDisplayName("§eDschungel"); - jungle.setItemMeta(jungleMeta); - - ItemStack swamp = new ItemStack(Material.WATER_LILY); - ItemMeta swampMeta = swamp.getItemMeta(); - swampMeta.setDisplayName("§eSumpfgebiet"); - swamp.setItemMeta(swampMeta); - - ItemStack forest = new ItemStack(Material.SAPLING); - ItemMeta forestMeta = forest.getItemMeta(); - forestMeta.setDisplayName("§eWald"); - forest.setItemMeta(forestMeta); - - ItemStack flatland = new ItemStack(Material.LONG_GRASS, 1, (short) 1); - ItemMeta flatlandMeta = flatland.getItemMeta(); - flatlandMeta.setDisplayName("§eFlachland"); - flatland.setItemMeta(flatlandMeta); - - ItemStack desert = new ItemStack(Material.DEAD_BUSH); - ItemMeta desertMeta = desert.getItemMeta(); - desertMeta.setDisplayName("§eWüste"); - desert.setItemMeta(desertMeta); - - ItemStack taiga = new ItemStack(Material.LONG_GRASS, 1, (short) 2); - ItemMeta taigaMeta = taiga.getItemMeta(); - taigaMeta.setDisplayName("§eTaiga"); - taiga.setItemMeta(taigaMeta); - - ItemStack tundra = new ItemStack(Material.SNOW_BALL); - ItemMeta tundraMeta = tundra.getItemMeta(); - tundraMeta.setDisplayName("§eTundra"); - tundra.setItemMeta(tundraMeta); - - inv.setItem(0, mesa); - inv.setItem(4, jungle); - inv.setItem(8, swamp); - inv.setItem(11, forest); - inv.setItem(15, flatland); - inv.setItem(18, desert); - inv.setItem(22, taiga); - inv.setItem(26, tundra); - - return inv; - } - - public Inventory getSettingsInventory() { - Inventory inv = Bukkit.createInventory(player, 27, "§eEinstellungen"); - - ItemStack name = new ItemStack(Material.SIGN); - ItemMeta nameMeta = name.getItemMeta(); - nameMeta.setDisplayName("§eName ändern"); - name.setItemMeta(nameMeta); - - ItemStack contact = new ItemStack(Material.NAME_TAG); - ItemMeta contactMeta = contact.getItemMeta(); - contactMeta.setDisplayName("§eKontaktmöglichkeiten"); - contact.setItemMeta(contactMeta); - - inv.setItem(10, name); - inv.setItem(16, contact); - - return inv; - } - - public Inventory getTimeInventory() { - Inventory inv = Bukkit.createInventory(player, 27, "§eZeit ändern"); - - ItemStack morning = new ItemStack(Material.MILK_BUCKET); - ItemMeta morningMeta = morning.getItemMeta(); - morningMeta.setDisplayName("§eMorgen"); - morning.setItemMeta(morningMeta); - - ItemStack day = new ItemStack(Material.DOUBLE_PLANT); - ItemMeta dayMeta = day.getItemMeta(); - dayMeta.setDisplayName("§eTag"); - day.setItemMeta(dayMeta); - - ItemStack evening = new ItemStack(Material.BEETROOT_SOUP); - ItemMeta eveningMeta = evening.getItemMeta(); - eveningMeta.setDisplayName("§eAbend"); - evening.setItemMeta(eveningMeta); - - ItemStack night = new ItemStack(Material.COAL, 1, (short) 1); - ItemMeta nightMeta = night.getItemMeta(); - nightMeta.setDisplayName("§eNacht"); - night.setItemMeta(nightMeta); - - inv.setItem(10, morning); - inv.setItem(12, day); - inv.setItem(14, evening); - inv.setItem(16, night); - - return inv; - } - - public Inventory getWeatherInventory() { - Inventory inv = Bukkit.createInventory(player, 27, "§eWetter ändern"); - - ItemStack sun = new ItemStack(Material.DOUBLE_PLANT); - ItemMeta sunMeta = sun.getItemMeta(); - sunMeta.setDisplayName("§eSonne"); - sun.setItemMeta(sunMeta); - - ItemStack rain = new ItemStack(Material.WATER_BUCKET); - ItemMeta rainMeta = rain.getItemMeta(); - rainMeta.setDisplayName("§eRegen"); - rain.setItemMeta(rainMeta); - - ItemStack thunder = new ItemStack(Material.BLAZE_ROD); - ItemMeta thunderMeta = thunder.getItemMeta(); - thunderMeta.setDisplayName("§eGewitter"); - thunder.setItemMeta(thunderMeta); - - inv.setItem(11, sun); - inv.setItem(13, rain); - inv.setItem(15, thunder); - - return inv; - } - - public Inventory getAnimalsInventory() { - Inventory inv = Bukkit.createInventory(player, 27, "§eTiere spawnen"); - - ItemStack pig = new ItemStack(Material.COOKED_BEEF); - ItemMeta pigMeta = pig.getItemMeta(); - pigMeta.setDisplayName("Schwein gehabt"); - pig.setItemMeta(pigMeta); - - inv.setItem(0, pig); - - return inv; - } - -} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/utils/Plot.java b/src/main/java/eu/univento/teamvento/utils/Plot.java index 97d7a2f..0689738 100644 --- a/src/main/java/eu/univento/teamvento/utils/Plot.java +++ b/src/main/java/eu/univento/teamvento/utils/Plot.java @@ -14,10 +14,13 @@ import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.entity.LivingEntity; -import java.util.ArrayList; -import java.util.Map; import java.util.UUID; +/** + * @author joethei + * @version 1.0 + */ + public class Plot { private final Cuboid area; @@ -117,14 +120,6 @@ public class Plot { return WeatherType.valueOf(getWeather().name()); } - private Map getMapFromDatabase(String name) { - return (Map) getObjectFromDatbase(name); - } - - private ArrayList getArrayListFromDatabase(String name) { - return (ArrayList) getObjectFromDatbase(name); - } - private Object getObjectFromDatbase(String name) { FindIterable cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", owner.toString())); cursor.cursorType(CursorType.NonTailable); @@ -148,8 +143,4 @@ public class Plot { private void setInDatabase(String name, Object obj) { Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").updateOne(new Document("uuid", owner.toString()), new Document("$set", new Document(name, obj))); } - - private void setInDatabase(ArrayList> obj) { - Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").updateOne(new Document("uuid", owner.toString()), new Document("$set", new Document("animals", obj))); - } } \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/utils/PlotAction.java b/src/main/java/eu/univento/teamvento/utils/PlotAction.java index 74d5406..7bb4ce2 100644 --- a/src/main/java/eu/univento/teamvento/utils/PlotAction.java +++ b/src/main/java/eu/univento/teamvento/utils/PlotAction.java @@ -1,17 +1,18 @@ package eu.univento.teamvento.utils; import eu.univento.core.api.Config; -import eu.univento.core.api.Hologram; import eu.univento.core.api.player.CustomPlayer; import eu.univento.teamvento.TeamVento; import eu.univento.teamvento.listener.JoinQuit; import lombok.AllArgsConstructor; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; /** * @author joethei - * @version 0.1 + * @version 1.0 */ interface PlotAction { @@ -36,8 +37,7 @@ interface PlotAction { Location loc = plot.getSpawn(); player.teleport(new Location(Bukkit.getWorld("plots"), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F)); JoinQuit.holograms.get(player).hidePlayer(player); - Hologram holo = new Hologram(new String[]{"§eZu deinem Plot teleportieren", "|", "|", "▼"}, Config.readLocation("Build.Locs.Holo")); - holo.showPlayer(player); + player.sendHologram(new ItemStack(Material.GRASS), Config.readLocation("Build.Locs.Holo"), "§eZu deinem Plot teleportieren", "|", "|", "▼"); } } diff --git a/src/main/java/eu/univento/teamvento/utils/PlotManager.java b/src/main/java/eu/univento/teamvento/utils/PlotManager.java index c0d2248..8298d6d 100644 --- a/src/main/java/eu/univento/teamvento/utils/PlotManager.java +++ b/src/main/java/eu/univento/teamvento/utils/PlotManager.java @@ -20,6 +20,11 @@ import org.bukkit.inventory.meta.ItemMeta; import java.util.*; import java.util.concurrent.LinkedBlockingDeque; +/** + * @author joethei + * @version 1.0 + */ + public class PlotManager { private static Queue queue = new LinkedBlockingDeque<>(); @@ -65,7 +70,7 @@ public class PlotManager { new PlotAction.Create(p).execute(); }else { queue.offer(new PlotAction.Create(p)); - p.sendMessage("Du wurdest zu Warteschlange hinzugefügt: " + queue.size()); + p.sendMessage("Du wurdest zur Warteschlange hinzugefügt: (" + queue.size() + ")"); } } @@ -259,10 +264,10 @@ public class PlotManager { north.getBlock().setType(Material.STONE); south.getBlock().setType(Material.ACACIA_STAIRS); - boolean westPlot = getPlotByLocation(west) != null; - boolean eastPlot = getPlotByLocation(east) != null; - boolean northPlot = getPlotByLocation(north) != null; - boolean southPlot = getPlotByLocation(south) != null; + boolean westPlot = isPlot(west); + boolean eastPlot = isPlot(east); + boolean northPlot = isPlot(north); + boolean southPlot = isPlot(south); if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Westen"); @@ -394,6 +399,10 @@ public class PlotManager { Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").insertOne(doc); } + private static boolean isPlot(Location location) { + return getPlotByLocation(location) != null; + } + public static Plot getPlotByLocation(Location location) { for (Plot plot : plots) if (plot.isInPlot(location)) return plot; @@ -415,33 +424,6 @@ public class PlotManager { return new Location(Bukkit.getWorld("plots"), Double.valueOf(String.valueOf(map.get("X"))), Double.valueOf(String.valueOf(map.get("Y"))), Double.valueOf(String.valueOf(map.get("Z")))); } - private static List spiral(int midX, int midZ, int radius) { - int x = midX; - int z = midZ; - int f = 1; - List locations = new ArrayList<>(); - while(f <= radius * 2) { - for(int i = z + f; z < i; z++) { - locations.add(new Location(Bukkit.getWorld("plots"), x, 25, z)); - } - for(int i = z + f; z > i; x++) { - locations.add(new Location(Bukkit.getWorld("plots"), x, 25, z)); - } - f++; - for(int i = z -f; z > i; z--) { - locations.add(new Location(Bukkit.getWorld("plots"), x, 25, z)); - } - for(int i = x - f; x > i; x--) { - locations.add(new Location(Bukkit.getWorld("plots"), x, 25, z)); - } - f++; - } - for(int i = z + f - 1; z < i; z++) { - locations.add(new Location(Bukkit.getWorld("plots"), x, 25, z)); - } - return locations; - } - public static boolean isAllowedToBuild(CustomPlayer p, Location loc) { if(loc.getWorld().getName().equalsIgnoreCase("plots")) { if (p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return true; diff --git a/src/main/java/eu/univento/teamvento/utils/Time.java b/src/main/java/eu/univento/teamvento/utils/Time.java index 8bb83a3..f3f10bd 100644 --- a/src/main/java/eu/univento/teamvento/utils/Time.java +++ b/src/main/java/eu/univento/teamvento/utils/Time.java @@ -1,5 +1,10 @@ package eu.univento.teamvento.utils; +/** + * @author joethei + * @version 1.0 + */ + public enum Time { MORNING(0), DAY(6000), diff --git a/src/main/java/eu/univento/teamvento/utils/Weather.java b/src/main/java/eu/univento/teamvento/utils/Weather.java index bfdad61..bb99256 100644 --- a/src/main/java/eu/univento/teamvento/utils/Weather.java +++ b/src/main/java/eu/univento/teamvento/utils/Weather.java @@ -1,6 +1,12 @@ package eu.univento.teamvento.utils; public enum Weather { + + /** + * @author joethei + * @version 1.0 + */ + CLEAR, DOWNFALL, THUNDER