From 78d6d7eaa4c9e18e2e8f0198f13b683fc3497b89 Mon Sep 17 00:00:00 2001 From: joethei Date: Sun, 4 Jun 2017 13:47:12 +0200 Subject: [PATCH] ~ refactoring --- .gitignore | 2 + TeamVento.iml | 78 +++++-- pom.xml | 31 +-- .../java/eu/univento/teamvento/TeamVento.java | 115 ++++++---- .../univento/teamvento/commands/PlotInfo.java | 13 +- .../eu/univento/teamvento/commands/Sel.java | 41 ---- .../eu/univento/teamvento/commands/Set.java | 84 ------- .../univento/teamvento/commands/Setloc.java | 58 ----- .../teamvento/commands/WorldCommands.java | 84 +++++++ .../teamvento/commands/WorldCreate.java | 78 ------- .../teamvento/commands/WorldImport.java | 60 ----- .../teamvento/commands/WorldList.java | 52 ----- .../univento/teamvento/commands/WorldTP.java | 55 ----- .../teamvento/generator/Generator.java | 11 + .../teamvento/generator/GeneratorManager.java | 31 +++ .../{utils => generator}/VoidGenerator.java | 2 +- .../univento/teamvento/listener/Events.java | 212 +++++++++++------- .../univento/teamvento/listener/JoinQuit.java | 32 +-- .../teamvento/listener/MenuEvents.java | 22 +- .../teamvento/listener/PositionSetter.java | 36 --- .../teamvento/listener/SignInteract.java | 5 +- .../{utils => plot}/InventoryManager.java | 2 +- .../teamvento/{utils => plot}/Plot.java | 24 +- .../teamvento/{utils => plot}/PlotAction.java | 4 +- .../{utils => plot}/PlotManager.java | 78 +++---- .../teamvento/{utils => plot}/Time.java | 2 +- .../teamvento/{utils => plot}/Weather.java | 2 +- .../univento/teamvento/utils/WorldEdit.java | 42 ---- src/main/resources/plugin.yml | 2 +- 29 files changed, 491 insertions(+), 767 deletions(-) create mode 100644 .gitignore delete mode 100644 src/main/java/eu/univento/teamvento/commands/Sel.java delete mode 100644 src/main/java/eu/univento/teamvento/commands/Set.java delete mode 100644 src/main/java/eu/univento/teamvento/commands/Setloc.java create mode 100644 src/main/java/eu/univento/teamvento/commands/WorldCommands.java delete mode 100644 src/main/java/eu/univento/teamvento/commands/WorldCreate.java delete mode 100644 src/main/java/eu/univento/teamvento/commands/WorldImport.java delete mode 100644 src/main/java/eu/univento/teamvento/commands/WorldList.java delete mode 100644 src/main/java/eu/univento/teamvento/commands/WorldTP.java create mode 100644 src/main/java/eu/univento/teamvento/generator/Generator.java create mode 100644 src/main/java/eu/univento/teamvento/generator/GeneratorManager.java rename src/main/java/eu/univento/teamvento/{utils => generator}/VoidGenerator.java (94%) delete mode 100644 src/main/java/eu/univento/teamvento/listener/PositionSetter.java rename src/main/java/eu/univento/teamvento/{utils => plot}/InventoryManager.java (99%) rename src/main/java/eu/univento/teamvento/{utils => plot}/Plot.java (74%) rename src/main/java/eu/univento/teamvento/{utils => plot}/PlotAction.java (91%) rename src/main/java/eu/univento/teamvento/{utils => plot}/PlotManager.java (89%) rename src/main/java/eu/univento/teamvento/{utils => plot}/Time.java (87%) rename src/main/java/eu/univento/teamvento/{utils => plot}/Weather.java (76%) delete mode 100644 src/main/java/eu/univento/teamvento/utils/WorldEdit.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..de3406a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/target +TeamVento.iml \ No newline at end of file diff --git a/TeamVento.iml b/TeamVento.iml index e15cdc5..fe6cb03 100644 --- a/TeamVento.iml +++ b/TeamVento.iml @@ -1,6 +1,15 @@ - - + + + + + + PAPER + + + + + @@ -11,34 +20,77 @@ - + - + - + - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 61849aa..2a6ac9d 100644 --- a/pom.xml +++ b/pom.xml @@ -51,20 +51,14 @@ - - - univentoEU - http://dev.joethei.de:8081/repository/public/ - - - com.destroystokyo.paper paper-api - 1.11-R0.1-SNAPSHOT + 1.11.2-R0.1-SNAPSHOT provided + org.bukkit craftbukkit - 1.11-R0.1-SNAPSHOT + 1.11.2-R0.1-SNAPSHOT provided + + + org.projectlombok + lombok + 1.16.10 + + + + com.boydti + fawe-api + latest + + eu.univento Core 1.0-SNAPSHOT provided - - org.projectlombok - lombok - 1.16.10 - \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/TeamVento.java b/src/main/java/eu/univento/teamvento/TeamVento.java index 534e739..1fcb4aa 100644 --- a/src/main/java/eu/univento/teamvento/TeamVento.java +++ b/src/main/java/eu/univento/teamvento/TeamVento.java @@ -1,20 +1,32 @@ package eu.univento.teamvento; +import eu.univento.commons.server.ServerType; import eu.univento.core.Core; import eu.univento.core.api.Config; +import eu.univento.core.api.command.CommandFramework; +import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.server.ServerSettings; -import eu.univento.teamvento.commands.*; -import eu.univento.teamvento.listener.*; -import eu.univento.teamvento.utils.PlotManager; -import eu.univento.teamvento.utils.VoidGenerator; +import eu.univento.teamvento.commands.WorldCommands; +import eu.univento.teamvento.listener.Events; +import eu.univento.teamvento.listener.JoinQuit; +import eu.univento.teamvento.listener.MenuEvents; +import eu.univento.teamvento.listener.SignInteract; +import eu.univento.teamvento.generator.GeneratorManager; +import eu.univento.teamvento.plot.PlotManager; import org.bukkit.*; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Firework; +import org.bukkit.entity.Sheep; +import org.bukkit.inventory.meta.FireworkMeta; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.util.Vector; import java.io.File; +import java.util.Random; /** * @author joethei @@ -39,64 +51,79 @@ public class TeamVento extends JavaPlugin { return instance; } + private Random random = new Random(); + @Override public void onEnable() { - Core.getInstance().registerPlugin(this); instance = this; - PluginManager pm = Bukkit.getPluginManager(); - pm.registerEvents(new JoinQuit(), this); - pm.registerEvents(new Events(), this); - pm.registerEvents(new PositionSetter(), this); - pm.registerEvents(new SignInteract(), this); - pm.registerEvents(new MenuEvents(), this); + /* + if(Bukkit.getWorld("plots") == null) { + WorldCreator creator = new WorldCreator("plots"); + creator.generator(new VoidGenerator()); + creator.type(WorldType.CUSTOMIZED); + creator.generateStructures(false); + Bukkit.createWorld(creator); + getCfg().set("plots", "void"); + try { + getCfg().save(getConfigFile()); + } catch (IOException e) { + e.printStackTrace(); + } + } + */ - new Setloc(this, "setloc", "sets locations"); - new WorldTP(this, "worldteleport", "teleports players to other worlds", "wtp"); - new WorldCreate(this, "worldcreate", "creates new worlds", "wc"); - new WorldImport(this, "worldimport", "imports worlds", "wi"); - new Set(this, "set", "sets the material of selected blocks"); - new Sel(this, "sel", "removes block selection"); - new WorldList(this, "worldlist", "lists all worlds", "wl"); - new PlotInfo(this, "plotinfo", "info about a plot", "pi"); + CommandFramework commandFramework = new CommandFramework(this); + commandFramework.registerCommands(new WorldCommands()); + + PluginManager pm = Bukkit.getPluginManager(); + pm.registerEvents(new JoinQuit(), getInstance()); + pm.registerEvents(new SignInteract(), getInstance()); + pm.registerEvents(new MenuEvents(), getInstance()); + pm.registerEvents(new Events(), getInstance()); + + //new PlotInfo(this, "plotinfo", "info about a plot", "pi"); for(String world : getCfg().getKeys(true)) { - String generator = getCfg().getString(world); - WorldCreator creator = new WorldCreator(world); - creator.generateStructures(false); - if(generator.equals("normal")) { - creator.environment(World.Environment.NORMAL); - creator.type(WorldType.NORMAL); - } - if(generator.equals("flat")) { - creator.environment(World.Environment.NORMAL); - creator.type(WorldType.FLAT); - creator.generateStructures(false); - } - if(generator.equals("void")) { - creator.generator(new VoidGenerator()); - creator.type(WorldType.CUSTOMIZED); - creator.generateStructures(false); - } - Bukkit.createWorld(creator); - World loadedWorld = Bukkit.getWorld(world); - loadedWorld.setDifficulty(Difficulty.PEACEFUL); + World loadedWorld = Bukkit.createWorld(GeneratorManager.getWorldCreator(world, getCfg().getString(world))); + loadedWorld.setDifficulty(Difficulty.HARD); loadedWorld.setPVP(false); loadedWorld.setAnimalSpawnLimit(0); } - + ServerSettings.setServerType(ServerType.TEAM_BUILD); ServerSettings.setGameMode(GameMode.CREATIVE); - ServerSettings.setBuild(false); - PlotManager.update(); - PlotManager.setLastPlot(PlotManager.getPlotByOwner(Config.readString("lastPlot"))); + //PlotManager.update(); + //PlotManager.setLastPlot(PlotManager.getPlotByOwner(Config.readString("lastPlot"))); Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> Bukkit.getWorlds().stream().filter(world -> world.getTime() > 7698).forEach(world -> world.setTime(0)), 100 * 20L, 20L); Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> Events.redstone = 0, 1L, 10 * 20L); + + Bukkit.getScheduler().runTaskTimer(this, () -> { + for(CustomPlayer player : Core.getOnlinePlayers()) { + if(player.getItemInHand().getType() == Material.SHEARS) { + Sheep sheep = (Sheep) player.getWorld().spawnEntity(player.getEyeLocation(), EntityType.SHEEP); + sheep.setColor(DyeColor.values()[random.nextInt(DyeColor.values().length)]); + sheep.setVelocity(new Vector(random.nextDouble() * (random.nextBoolean() ? 1 : -1), 2, random.nextDouble() * (random.nextBoolean() ? 1 : -1))); + sheep.setAI(true); + + Bukkit.getScheduler().runTaskLater(this, () -> { + Location loc = sheep.getEyeLocation(); + final Firework firework = (Firework) player.getWorld().spawnEntity(loc, EntityType.FIREWORK); + FireworkMeta meta = firework.getFireworkMeta(); + FireworkEffect effect = FireworkEffect.builder().withColor(sheep.getColor().getColor()).with(FireworkEffect.Type.BALL).build(); + meta.addEffect(effect); + firework.setFireworkMeta(meta); + + Bukkit.getScheduler().runTaskLater(this, firework::detonate, 1L); + sheep.remove(); + }, 20L); + } + } + }, 20L, 10L); } @Override public void onDisable() { Config.write(PlotManager.getLastPlot().getOwner().toString()); Bukkit.getWorld("plots").getLivingEntities().forEach(Entity::remove); - Core.getInstance().unregisterPlugin(this); } } \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/commands/PlotInfo.java b/src/main/java/eu/univento/teamvento/commands/PlotInfo.java index dd0cab7..963c3e0 100644 --- a/src/main/java/eu/univento/teamvento/commands/PlotInfo.java +++ b/src/main/java/eu/univento/teamvento/commands/PlotInfo.java @@ -1,13 +1,12 @@ package eu.univento.teamvento.commands; -import eu.univento.commons.player.Rank; +import eu.univento.commons.player.rank.Rank; +import eu.univento.commons.player.uuid.NameFetcher; import eu.univento.core.api.AutoCommand; -import eu.univento.core.api.languages.Messages; import eu.univento.core.api.player.CustomPlayer; -import eu.univento.core.api.utils.UUIDFetcher; import eu.univento.teamvento.TeamVento; -import eu.univento.teamvento.utils.Plot; -import eu.univento.teamvento.utils.PlotManager; +import eu.univento.teamvento.plot.Plot; +import eu.univento.teamvento.plot.PlotManager; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -30,7 +29,7 @@ public class PlotInfo extends AutoCommand{ assert plot != null; Bukkit.getScheduler().runTaskAsynchronously(TeamVento.getInstance(), () -> { p.sendMessage("§eName: " + plot.getName()); - p.sendMessage("§eErsteller: " + UUIDFetcher.getName(plot.getOwner())); + p.sendMessage("§eErsteller: " + NameFetcher.getRequest(plot.getOwner())); p.sendMessage("§eErstellt am: " + PlotManager.getCreatedDate(plot.getOwner().toString())); p.sendMessage("§eKontakt: " + plot.getContact()); p.sendMessage("§eBiom: " + plot.getBiome().name()); @@ -41,10 +40,8 @@ public class PlotInfo extends AutoCommand{ p.sendMessage("§cHier ist leider kein Plot"); } }else{ - p.sendMessage(p.getMessages().NO_PERMS()); } }else{ - sender.sendMessage(Messages.Console.NOT_A_PLAYER); } return true; } diff --git a/src/main/java/eu/univento/teamvento/commands/Sel.java b/src/main/java/eu/univento/teamvento/commands/Sel.java deleted file mode 100644 index 94a520f..0000000 --- a/src/main/java/eu/univento/teamvento/commands/Sel.java +++ /dev/null @@ -1,41 +0,0 @@ -package eu.univento.teamvento.commands; - -import eu.univento.commons.player.Rank; -import eu.univento.core.api.AutoCommand; -import eu.univento.core.api.languages.Messages; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.teamvento.TeamVento; -import eu.univento.teamvento.utils.WorldEdit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.List; - -public class Sel extends AutoCommand{ - - public Sel(TeamVento plugin, String command, String description, String... aliases) { - super(plugin, command, description, aliases); - } - - @Override - public boolean execute(CommandSender sender, String label, String[] args) { - if(sender instanceof Player) { - CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); - if(p.getDatabasePlayer().isAllowed(Rank.Builder)) { - WorldEdit.setPos1(p, null); - WorldEdit.setPos2(p, null); - p.sendMessage(p.getMessages().PREFIX() + "selection cleared"); - }else{ - p.sendMessage(p.getMessages().PREFIX() + p.getMessages().NO_PERMS()); - } - }else{ - sender.sendMessage(Messages.Console.NOT_A_PLAYER); - } - return true; - } - - @Override - public List tabComplete(CommandSender sender, String label, String[] args) { - return null; - } -} diff --git a/src/main/java/eu/univento/teamvento/commands/Set.java b/src/main/java/eu/univento/teamvento/commands/Set.java deleted file mode 100644 index b9f5846..0000000 --- a/src/main/java/eu/univento/teamvento/commands/Set.java +++ /dev/null @@ -1,84 +0,0 @@ -package eu.univento.teamvento.commands; - -import eu.univento.commons.player.Rank; -import eu.univento.core.api.AutoCommand; -import eu.univento.core.api.languages.Messages; -import eu.univento.core.api.schematic.Cuboid; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.teamvento.TeamVento; -import eu.univento.teamvento.utils.WorldEdit; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.List; - -/** - * @author joethei - * @version 0.1 - */ -public class Set extends AutoCommand{ - - public Set(TeamVento plugin, String command, String description, String... aliases) { - super(plugin, command, description, aliases); - } - - @Override - public boolean execute(CommandSender sender, String label, String[] args) { - if(sender instanceof Player) { - CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); - if(p.getDatabasePlayer().isAllowed(Rank.Builder)) { - Material material; - if(args.length == 0) { - material = p.getInventory().getItemInMainHand().getType(); - setBlocks(material, p); - } - if(args.length == 1) { - if(Material.getMaterial(args[0]) != null) { - material = Material.getMaterial(args[0]); - setBlocks(material, p); - }else{ - int id = Integer.parseInt(args[0]); - material = Material.getMaterial(id); - setBlocks(material, p); - } - - }else{ - p.sendMessage(p.getMessages().PREFIX() + "§cYou need to give me some kind of stuff"); - } - }else{ - p.sendMessage(p.getMessages().PREFIX() + p.getMessages().NO_PERMS()); - } - }else{ - sender.sendMessage(Messages.Console.NOT_A_PLAYER); - } - return true; - } - - @Override - public List tabComplete(CommandSender sender, String label, String[] args) { - return null; - } - - private void setBlocks(Material material, CustomPlayer p) { - if(material.isBlock()) { - if(WorldEdit.getPos1(p) == null || WorldEdit.getPos2(p) == null) { - p.sendMessage(p.getMessages().PREFIX() + "§ca location has not been set"); - return; - } - Cuboid cb = new Cuboid(WorldEdit.getPos1(p).getLocation(), WorldEdit.getPos2(p).getLocation()); - Bukkit.getScheduler().runTaskAsynchronously(TeamVento.getInstance(), () -> { - long i = 0; - for(Block b : cb.getBlocks()) { - i++; - Bukkit.getScheduler().scheduleSyncDelayedTask(TeamVento.getInstance(), () -> b.setType(material), i / 90); - } - }); - p.sendMessage(p.getMessages().PREFIX() + "§ayou have changed the material of the blocks"); - }else{ - p.sendMessage(p.getMessages().PREFIX() + "§cthe item needs to be a block"); - } - } -} diff --git a/src/main/java/eu/univento/teamvento/commands/Setloc.java b/src/main/java/eu/univento/teamvento/commands/Setloc.java deleted file mode 100644 index 194cbb4..0000000 --- a/src/main/java/eu/univento/teamvento/commands/Setloc.java +++ /dev/null @@ -1,58 +0,0 @@ -package eu.univento.teamvento.commands; - -import eu.univento.commons.player.Rank; -import eu.univento.core.api.AutoCommand; -import eu.univento.core.api.Config; -import eu.univento.core.api.languages.Messages; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.teamvento.TeamVento; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author joethei - * @version 0.2 - */ -public class Setloc extends AutoCommand{ - - /** - * @param plugin main class - * @param command commons to execute - * @param description describes the commons - * @param aliases aliases of commons - */ - public Setloc(TeamVento plugin, String command, String description, String... aliases) { - super(plugin, command, description, aliases); - } - - @Override - public boolean execute(CommandSender sender, String label, String[] args) { - if(sender instanceof Player) { - CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); - Messages msgs = new Messages(p); - if(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) { - if(args.length == 1) { - Config.write("Build.Locs." + args[0], p.getLocation()); - p.sendMessage("§aLocation gesetzt"); - }else { - p.sendMessage("§6Nutze /setloc "); - } - }else { - p.sendMessage(msgs.NO_PERMS()); - } - }else { - sender.sendMessage(Messages.Console.NOT_A_PLAYER); - } - return false; - } - - @Override - public List tabComplete(CommandSender sender, String label, String[] args) { - List list = new ArrayList<>(); - list.add("Spawn"); - return list; - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/commands/WorldCommands.java b/src/main/java/eu/univento/teamvento/commands/WorldCommands.java new file mode 100644 index 0000000..c242091 --- /dev/null +++ b/src/main/java/eu/univento/teamvento/commands/WorldCommands.java @@ -0,0 +1,84 @@ +package eu.univento.teamvento.commands; + +import eu.univento.commons.player.rank.Rank; +import eu.univento.core.api.command.Command; +import eu.univento.core.api.command.CommandArgs; +import eu.univento.core.api.command.Completer; +import eu.univento.teamvento.TeamVento; +import eu.univento.teamvento.generator.GeneratorManager; +import org.bukkit.Bukkit; +import org.bukkit.World; + +import java.io.File; +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author joethei + * @version 1.0 + */ +public class WorldCommands { + + @Command(name = "world.teleport", aliases = {"wtp"}, description = "teleport through the worlds", usage = "/world teleport ", rank = Rank.JrSupporter, inGameOnly = true) + public void teleport(CommandArgs args) { + if(args.length() == 1) { + if(Bukkit.getWorld(args.getArg(0)) != null) { + args.getPlayer().teleport(Bukkit.getWorld(args.getArg(0)).getSpawnLocation()); + args.getPlayer().sendMessage("§aDu hast die Welt gewechselt"); + }else { + args.getPlayer().sendMessage("§cDie Welt " + args.getArg(0) + " exsistiert nicht"); + } + }else args.getPlayer().sendMessage("§cDie Anzahl der Argumente stimmt nicht"); + + } + + @Completer(name = "world.teleport", aliases = "wtp") + public List teleportCompletor(CommandArgs args) { + return Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toCollection(LinkedList::new)); + } + + @Command(name = "world.list", aliases = {"wl"}, description = "list all worlds", usage = "/world list", rank = Rank.JrSupporter) + public void list(CommandArgs args) { + args.getSender().sendMessage("§cAll worlds"); + for(String world : TeamVento.getCfg().getKeys(true)) { + args.getSender().sendMessage("§a-" + world); + } + } + + @Command(name = "world.import", aliases = "wi", description = "import already existing worlds", usage = "/world import ", rank = Rank.Admin) + public void importWorld(CommandArgs args) { + if(args.length() == 2) { + if(Bukkit.getWorld(args.getArg(0)) == null && !new File(args.getArg(0)).exists()) { + Bukkit.createWorld(GeneratorManager.getWorldCreator(args.getArg(0), args.getArg(1))); + TeamVento.getCfg().set(args.getArg(0), args.getArg(1)); + try { + TeamVento.getCfg().save(TeamVento.getConfigFile()); + } catch (IOException e) { + e.printStackTrace(); + } + args.getSender().sendMessage("§ayour world has been imported"); + }else args.getSender().sendMessage("3cthe chosen world already exists"); + }else { + args.getSender().sendMessage("§cplease use /world import "); + } + } + + @Command(name = "world.create", aliases = "wc", description = "create new worlds", usage = "/world create ", rank = Rank.SrBuilder) + public void create(CommandArgs args) { + if(args.length() == 2) { + if(Bukkit.getWorld(args.getArg(0)) == null && GeneratorManager.getWorldCreator(args.getArg(0), args.getArg(1)) != null) { + Bukkit.createWorld(GeneratorManager.getWorldCreator(args.getArg(0), args.getArg(1))); + TeamVento.getCfg().set(args.getArg(0), args.getArg(1)); + try { + TeamVento.getCfg().save(TeamVento.getConfigFile()); + } catch (IOException e) { + e.printStackTrace(); + } + args.getSender().sendMessage("§aYour world has been created"); + } + + }else args.getSender().sendMessage("§cPlease use /world create "); + } +} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/commands/WorldCreate.java b/src/main/java/eu/univento/teamvento/commands/WorldCreate.java deleted file mode 100644 index 77d2e06..0000000 --- a/src/main/java/eu/univento/teamvento/commands/WorldCreate.java +++ /dev/null @@ -1,78 +0,0 @@ -package eu.univento.teamvento.commands; - -import eu.univento.commons.player.Rank; -import eu.univento.core.api.AutoCommand; -import eu.univento.core.api.languages.Messages; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.teamvento.TeamVento; -import eu.univento.teamvento.utils.VoidGenerator; -import org.bukkit.Bukkit; -import org.bukkit.World; -import org.bukkit.WorldCreator; -import org.bukkit.WorldType; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.io.IOException; -import java.util.List; - -/** - * @author joethei - * @version 0.1 - */ -public class WorldCreate extends AutoCommand{ - - public WorldCreate(TeamVento plugin, String command, String description, String... aliases) { - super(plugin, command, description, aliases); - } - - @Override - public boolean execute(CommandSender sender, String label, String[] args) { - if(sender instanceof Player) { - CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); - if(p.getDatabasePlayer().isAllowed(Rank.SrBuilder)) { - if(args.length == 2) { - if(Bukkit.getWorld(args[0]) == null && (args[1].equalsIgnoreCase("normal") || args[1].equalsIgnoreCase("flat") || args[1].equalsIgnoreCase("void"))) { - WorldCreator creator = new WorldCreator(args[0]); - if(args[1].equalsIgnoreCase("normal")) { - creator.environment(World.Environment.NORMAL); - creator.type(WorldType.NORMAL); - } - if(args[1].equalsIgnoreCase("flat")) { - creator.environment(World.Environment.NORMAL); - creator.type(WorldType.FLAT); - creator.generateStructures(false); - } - if(args[1].equalsIgnoreCase("void")) { - creator.generator(new VoidGenerator()); - creator.type(WorldType.CUSTOMIZED); - creator.generateStructures(false); - } - Bukkit.createWorld(creator); - TeamVento.getCfg().set(args[0], args[1]); - try { - TeamVento.getCfg().save(TeamVento.getConfigFile()); - } catch (IOException e) { - e.printStackTrace(); - } - p.sendMessage(p.getMessages().PREFIX() + "§aYour world has been created"); - }else{ - p.sendMessage(p.getMessages().PREFIX() + "§cPlease use /worldcreate "); - } - }else{ - p.sendMessage(p.getMessages().PREFIX() + "§cPlease use /worldcreate "); - } - }else{ - p.sendMessage(p.getMessages().PREFIX() + p.getMessages().NO_PERMS()); - } - }else{ - sender.sendMessage(Messages.Console.NOT_A_PLAYER); - } - return true; - } - - @Override - public List tabComplete(CommandSender sender, String label, String[] args) { - return null; - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/commands/WorldImport.java b/src/main/java/eu/univento/teamvento/commands/WorldImport.java deleted file mode 100644 index 3e314a9..0000000 --- a/src/main/java/eu/univento/teamvento/commands/WorldImport.java +++ /dev/null @@ -1,60 +0,0 @@ -package eu.univento.teamvento.commands; - -import eu.univento.commons.player.Rank; -import eu.univento.core.api.AutoCommand; -import eu.univento.core.api.languages.Messages; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.teamvento.TeamVento; -import org.bukkit.Bukkit; -import org.bukkit.WorldCreator; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.io.IOException; -import java.util.List; - -/** - * @author joethei - * @version 0.1 - */ -public class WorldImport extends AutoCommand{ - - public WorldImport(TeamVento plugin, String command, String description, String... aliases) { - super(plugin, command, description, aliases); - } - - @Override - public boolean execute(CommandSender sender, String label, String[] args) { - if(sender instanceof Player) { - CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); - if (p.getDatabasePlayer().isAllowed(Rank.SrBuilder)) { - if(args.length == 1) { - if(Bukkit.getWorld(args[0]) == null) { - Bukkit.createWorld(new WorldCreator(args[0])); - TeamVento.getCfg().set(args[0], args[1]); - try { - TeamVento.getCfg().save(TeamVento.getConfigFile()); - } catch (IOException e) { - e.printStackTrace(); - } - p.sendMessage(p.getMessages().PREFIX() + "§ayour world has been imported"); - }else{ - p.sendMessage(p.getMessages().PREFIX() + "§cthe chosen world already exists"); - } - }else{ - p.sendMessage(p.getMessages().PREFIX() + "§cplease use /worldimport "); - } - }else{ - p.sendMessage(p.getMessages().NO_PERMS()); - } - }else{ - sender.sendMessage(Messages.Console.NOT_A_PLAYER); - } - return true; - } - - @Override - public List tabComplete(CommandSender sender, String label, String[] args) { - return null; - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/commands/WorldList.java b/src/main/java/eu/univento/teamvento/commands/WorldList.java deleted file mode 100644 index 8d2ae4e..0000000 --- a/src/main/java/eu/univento/teamvento/commands/WorldList.java +++ /dev/null @@ -1,52 +0,0 @@ -package eu.univento.teamvento.commands; - -import eu.univento.commons.player.Rank; -import eu.univento.core.api.AutoCommand; -import eu.univento.core.api.languages.Messages; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.teamvento.TeamVento; -import net.md_5.bungee.api.chat.ClickEvent; -import net.md_5.bungee.api.chat.ComponentBuilder; -import net.md_5.bungee.api.chat.HoverEvent; -import net.md_5.bungee.api.chat.TextComponent; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.List; - -/** - * @author joethei - * @version 0.1 - */ -public class WorldList extends AutoCommand { - - public WorldList(TeamVento plugin, String command, String description, String... aliases) { - super(plugin, command, description, aliases); - } - - @Override - public boolean execute(CommandSender sender, String label, String[] args) { - if(sender instanceof Player) { - CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); - if(p.getDatabasePlayer().isAllowed(Rank.Supporter)) { - p.sendMessage("§cAll worlds"); - for(String world : TeamVento.getCfg().getKeys(true)) { - TextComponent text = new TextComponent("§a- " + world); - text.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/wtp " + world)); - text.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("In die Welt").create())); - p.spigot().sendMessage(text); - } - }else{ - p.sendMessage(p.getMessages().NO_PERMS()); - } - }else{ - sender.sendMessage(Messages.Console.NOT_A_PLAYER); - } - return true; - } - - @Override - public List tabComplete(CommandSender sender, String label, String[] args) { - return null; - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/commands/WorldTP.java b/src/main/java/eu/univento/teamvento/commands/WorldTP.java deleted file mode 100644 index 065c913..0000000 --- a/src/main/java/eu/univento/teamvento/commands/WorldTP.java +++ /dev/null @@ -1,55 +0,0 @@ -package eu.univento.teamvento.commands; - -import eu.univento.commons.player.Rank; -import eu.univento.core.api.AutoCommand; -import eu.univento.core.api.languages.Messages; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.teamvento.TeamVento; -import org.bukkit.Bukkit; -import org.bukkit.World; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @author joethei - * @version 0.1 - */ -public class WorldTP extends AutoCommand{ - - public WorldTP(TeamVento plugin, String command, String description, String... aliases) { - super(plugin, command, description, aliases); - } - - @Override - public boolean execute(CommandSender sender, String label, String[] args) { - if(sender instanceof Player) { - CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); - if(p.getDatabasePlayer().isAllowed(Rank.Supporter)) { - if(args.length == 1) { - if(Bukkit.getWorld(args[0]) != null) { - p.teleport(Bukkit.getWorld(args[0]).getSpawnLocation()); - p.sendMessage(p.getMessages().PREFIX() + "§aDu hast die Welt gewechselt"); - }else{ - p.sendMessage(p.getMessages().PREFIX() + "§cDie Welt " + args[0] + " exsistiert nicht"); - } - }else { - p.sendMessage(p.getMessages().PREFIX() + "§cDie Anzahl der Argumente stimmt nicht"); - } - }else{ - p.sendMessage(p.getMessages().NO_PERMS()); - } - }else{ - sender.sendMessage(Messages.Console.NOT_A_PLAYER); - } - return true; - } - - @Override - public List tabComplete(CommandSender sender, String label, String[] args) { - return Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toCollection(ArrayList::new)); - } -} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/generator/Generator.java b/src/main/java/eu/univento/teamvento/generator/Generator.java new file mode 100644 index 0000000..880abdd --- /dev/null +++ b/src/main/java/eu/univento/teamvento/generator/Generator.java @@ -0,0 +1,11 @@ +package eu.univento.teamvento.generator; + +/** + * @author joethei + * @version 1.0 + */ +public enum Generator { + NORMAL, + FLAT, + VOID; +} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/generator/GeneratorManager.java b/src/main/java/eu/univento/teamvento/generator/GeneratorManager.java new file mode 100644 index 0000000..dd80af5 --- /dev/null +++ b/src/main/java/eu/univento/teamvento/generator/GeneratorManager.java @@ -0,0 +1,31 @@ +package eu.univento.teamvento.generator; + +import org.bukkit.World; +import org.bukkit.WorldCreator; +import org.bukkit.WorldType; + +/** + * @author joethei + * @version 0.1 + */ +public class GeneratorManager { + + public static WorldCreator getWorldCreator(String name, String generator) { + WorldCreator creator = new WorldCreator(name); + if(generator.equals("normal")) { + creator.environment(World.Environment.NORMAL); + creator.type(WorldType.NORMAL); + } + if(generator.equals("flat")) { + creator.environment(World.Environment.NORMAL); + creator.type(WorldType.FLAT); + creator.generateStructures(false); + } + if(generator.equals("void")) { + creator.generator(new VoidGenerator()); + creator.type(WorldType.CUSTOMIZED); + creator.generateStructures(false); + }else return null; + return creator; + } +} \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/utils/VoidGenerator.java b/src/main/java/eu/univento/teamvento/generator/VoidGenerator.java similarity index 94% rename from src/main/java/eu/univento/teamvento/utils/VoidGenerator.java rename to src/main/java/eu/univento/teamvento/generator/VoidGenerator.java index edbafe0..43b4e13 100644 --- a/src/main/java/eu/univento/teamvento/utils/VoidGenerator.java +++ b/src/main/java/eu/univento/teamvento/generator/VoidGenerator.java @@ -1,4 +1,4 @@ -package eu.univento.teamvento.utils; +package eu.univento.teamvento.generator; import org.bukkit.Location; import org.bukkit.World; diff --git a/src/main/java/eu/univento/teamvento/listener/Events.java b/src/main/java/eu/univento/teamvento/listener/Events.java index 5be1fe7..242ac5e 100644 --- a/src/main/java/eu/univento/teamvento/listener/Events.java +++ b/src/main/java/eu/univento/teamvento/listener/Events.java @@ -1,48 +1,49 @@ package eu.univento.teamvento.listener; -import eu.univento.commons.player.Rank; -import eu.univento.core.Core; +import eu.univento.commons.player.rank.Rank; import eu.univento.core.api.Config; import eu.univento.core.api.events.MoveEventFilter; 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 eu.univento.teamvento.utils.Time; -import eu.univento.teamvento.utils.Weather; +import eu.univento.teamvento.plot.Plot; +import eu.univento.teamvento.plot.PlotManager; +import eu.univento.teamvento.plot.Time; +import eu.univento.teamvento.plot.Weather; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Sign; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.entity.Projectile; +import org.bukkit.entity.*; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.*; import org.bukkit.event.entity.*; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.hanging.HangingPlaceEvent; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.*; import org.bukkit.event.weather.WeatherChangeEvent; import org.bukkit.event.world.StructureGrowEvent; -import org.bukkit.inventory.PlayerInventory; +import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; +import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; +import org.bukkit.util.EulerAngle; +import org.bukkit.util.Vector; import java.util.HashMap; import java.util.Random; +import java.util.Set; import java.util.UUID; /** * @author joethei * @version 0.3 */ -public class Events implements Listener{ +public class Events implements Listener { - public static int redstone; + public static int redstone = 0; + private Random random = new Random(); private final HashMap lightningTasks = new HashMap<>(); @@ -59,35 +60,35 @@ public class Events implements Listener{ @EventHandler public void onBlockBreak(BlockBreakEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true); } @EventHandler public void onBlockPlace(BlockPlaceEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true); } @EventHandler public void onHangingPlace(HangingPlaceEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); } @EventHandler public void onHangingBreakByEntity(HangingBreakByEntityEvent e) { - if(e.getRemover() instanceof Projectile) { - if(((Projectile) e.getRemover()).getShooter() instanceof Player) { + if (e.getRemover() instanceof Projectile) { + 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 { + if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); + } else { e.setCancelled(true); } } - if(e.getRemover() instanceof Player) { + if (e.getRemover() instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer((Player) e.getRemover()); - if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); - }else{ + if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); + } else { e.setCancelled(true); } } @@ -96,13 +97,13 @@ public class Events implements Listener{ public void onEntityDamageByEntity(EntityDamageByEntityEvent e) { if (e.getDamager() instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer((Player) e.getDamager()); - if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); } - if(e.getDamager() instanceof Projectile) { - if(((Projectile) e.getDamager()).getShooter() instanceof Player) { + if (e.getDamager() instanceof Projectile) { + 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 { + if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); + } else { e.setCancelled(true); } } @@ -121,7 +122,7 @@ public class Events implements Listener{ return; } CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true); } @EventHandler @@ -131,7 +132,7 @@ public class Events implements Listener{ @EventHandler public void onBlockRedstone(BlockRedstoneEvent e) { - if(e.getBlock().getWorld().getName().equalsIgnoreCase("EinfachAFK")) return; + if (e.getBlock().getWorld().getName().equalsIgnoreCase("world")) return; redstone++; if (redstone > 100) { e.getBlock().setType(Material.SIGN_POST); @@ -147,11 +148,11 @@ public class Events implements Listener{ @EventHandler public void onCreatureSpawn(CreatureSpawnEvent e) { - if(e.getSpawnReason() == CreatureSpawnEvent.SpawnReason.CUSTOM) return; - if(PlotManager.getPlotByLocation(e.getEntity().getLocation()) == null) { - e.setCancelled(true); - return; - } + //if(e.getSpawnReason() != CreatureSpawnEvent.SpawnReason.CUSTOM) e.setCancelled(true); + //if(e.getSpawnReason() != CreatureSpawnEvent.SpawnReason.SPAWNER_EGG) e.setCancelled(true); + e.getEntity().setAI(false); + e.getEntity().setSilent(true); + if (e.getEntity().getWorld().getName().equalsIgnoreCase("world")) return; Plot plot = PlotManager.getPlotByLocation(e.getEntity().getLocation()); assert plot != null; if (e.getEntity().getType() != EntityType.ITEM_FRAME && e.getEntity().getType() != EntityType.ARMOR_STAND && e.getEntity().getType() != EntityType.PAINTING) { @@ -159,6 +160,12 @@ public class Events implements Listener{ } } + @EventHandler + public void onEntityDeath(EntityDeathEvent e) { + e.getDrops().clear(); + e.setDroppedExp(0); + } + @EventHandler public void onBlockFromTo(BlockFromToEvent e) { Material type = e.getBlock().getType(); @@ -167,7 +174,14 @@ public class Events implements Listener{ } @EventHandler - public void onPiston(BlockPistonEvent e) { + public void onPistonExtend(BlockPistonExtendEvent e) { + if (e.getBlock().getWorld().getName().equalsIgnoreCase("world")) return; + e.setCancelled(true); + } + + @EventHandler + public void onPistonRetract(BlockPistonRetractEvent e) { + if (e.getBlock().getWorld().getName().equalsIgnoreCase("world")) return; e.setCancelled(true); } @@ -180,33 +194,35 @@ public class Events implements Listener{ Block block = e.getClickedBlock().getRelative(BlockFace.UP); if (!e.getPlayer().getWorld().getName().equalsIgnoreCase("plots")) return; if (block.getType() == Material.FIRE) { - if(!PlotManager.isAllowedToBuild(p, e.getClickedBlock().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getClickedBlock().getLocation())) e.setCancelled(true); } } - if(e.getAction() == Action.RIGHT_CLICK_BLOCK) { - if(!PlotManager.isAllowedToBuild(p, e.getClickedBlock().getLocation())) e.setCancelled(true); + if (e.getAction() == Action.RIGHT_CLICK_BLOCK) { + if (!PlotManager.isAllowedToBuild(p, e.getClickedBlock().getLocation())) e.setCancelled(true); } } @EventHandler public void onPlayerInteractEntity(PlayerInteractEntityEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(e.getRightClicked().getType() == EntityType.ITEM_FRAME) { - if(!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true); + if (e.getRightClicked().getType() == EntityType.ITEM_FRAME) { + if (!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true); } } @EventHandler public void onArmorStandManipulate(PlayerArmorStandManipulateEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true); } + @EventHandler public void onDrop(PlayerDropItemEvent e) { e.setCancelled(true); } + /* @EventHandler public void onPickup(PlayerPickupItemEvent e) { e.setCancelled(true); @@ -219,8 +235,8 @@ public class Events implements Listener{ @EventHandler public void onInventoryClick(InventoryClickEvent e) { - if(e.getClickedInventory() instanceof PlayerInventory) { - if(e.getSlot() == 8 || e.getHotbarButton() == 8) { + if (e.getClickedInventory() instanceof PlayerInventory) { + if (e.getSlot() == 8 || e.getHotbarButton() == 8) { e.setCancelled(true); } } @@ -228,10 +244,11 @@ public class Events implements Listener{ @EventHandler public void onSwapHands(PlayerSwapHandItemsEvent e) { - if(e.getPlayer().getInventory().getHeldItemSlot() == 8) { + if (e.getPlayer().getInventory().getHeldItemSlot() == 8) { e.setCancelled(true); } } + */ @EventHandler public void onConsume(PlayerItemConsumeEvent e) { @@ -241,31 +258,31 @@ public class Events implements Listener{ @EventHandler public void onBucketEmpty(PlayerBucketEmptyEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(!PlotManager.isAllowedToBuild(p, e.getBlockClicked().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getBlockClicked().getLocation())) e.setCancelled(true); } @EventHandler public void onBucketFill(PlayerBucketFillEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(!PlotManager.isAllowedToBuild(p, e.getBlockClicked().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getBlockClicked().getLocation())) e.setCancelled(true); } @EventHandler public void onBlockMove(MoveEventFilter.PlayerBlockMoveEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); //plot enter - if(PlotManager.getPlotByLocation(e.getFrom()) == null && PlotManager.getPlotByLocation(e.getTo()) != null) { + if (PlotManager.getPlotByLocation(e.getFrom()) == null && PlotManager.getPlotByLocation(e.getTo()) != null) { Plot plot = PlotManager.getPlotByLocation(e.getTo()); assert plot != null; p.setPlayerTime(plot.getTime().getValue(), false); p.setPlayerWeather(plot.getWeatherType()); - if(!plot.isOwner(p) && !plot.getOwner().equals(UUID.fromString("c35f6ece-c430-4fc0-b61e-18b55be19ee3"))) + if (!plot.isOwner(p) && !plot.getOwner().equals(UUID.fromString("c35f6ece-c430-4fc0-b61e-18b55be19ee3"))) p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 999999, 2)); - if(plot.getWeather() == Weather.THUNDER) { + if (plot.getWeather() == Weather.THUNDER) { BukkitTask task = Bukkit.getScheduler().runTaskTimerAsynchronously(TeamVento.getInstance(), () -> { Random random = new Random(); int r = random.nextInt(100); - if(r < 30) { + if (r < 30) { p.strikeLightning(plot.getArea().getRandomLocation()); } }, 2L, 50L); @@ -273,16 +290,16 @@ public class Events implements Listener{ } } //plot leave - if(PlotManager.getPlotByLocation(e.getFrom()) != null && PlotManager.getPlotByLocation(e.getTo()) == null) { + if (PlotManager.getPlotByLocation(e.getFrom()) != null && PlotManager.getPlotByLocation(e.getTo()) == null) { p.setPlayerTime(Time.DAY.getValue(), false); p.setPlayerWeather(WeatherType.CLEAR); p.clearPotionEffects(); - if(lightningTasks.containsKey(p)) + if (lightningTasks.containsKey(p)) lightningTasks.get(p).cancel(); - lightningTasks.remove(p); + lightningTasks.remove(p); } - if(e.getTo().getY() <= -5) { - if(!PlotManager.hasPlot(p)) { + if (e.getTo().getY() <= -5) { + if (!PlotManager.hasPlot(p)) { p.teleport(Config.readLocation("Build.Locs.Spawn")); return; } @@ -292,16 +309,9 @@ public class Events implements Listener{ p.teleport(new Location(Bukkit.getWorld("plots"), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F)); } Block up = p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock(); - Block down = p.getLocation().subtract(0.0D, 2.0D, 0.0D).getBlock(); - if(p.getLocation().getBlock().getType() == Material.GOLD_PLATE && up.getType() == Material.COAL_BLOCK) { - Core.getCommons().getLoggingHandler().getTeamVento().info("Platte und Coal"); - if(down.getType() == Material.COMMAND_CHAIN && p.getDatabasePlayer().isAllowed(Rank.Supporter)){ - p.teleport(Bukkit.getWorld("EinfachAFK").getSpawnLocation()); - p.setGameMode(GameMode.ADVENTURE); - } - } - if(up.getType() == Material.COAL_BLOCK && down.getType() == Material.COMMAND_CHAIN) { - Core.getCommons().getLoggingHandler().getTeamVento().info("Coal und Chain"); + if (p.getLocation().getBlock().getType() == Material.GOLD_PLATE && up.getType() == Material.COAL_BLOCK && p.getDatabasePlayer().isAllowed(Rank.JrSupporter)) { + p.teleport(Bukkit.getWorld("Planning").getSpawnLocation()); + p.setGameMode(GameMode.ADVENTURE); } } @@ -309,18 +319,18 @@ public class Events implements Listener{ public void onTeleport(PlayerTeleportEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); //plot enter - if(PlotManager.getPlotByLocation(e.getFrom()) == null && PlotManager.getPlotByLocation(e.getTo()) != null) { + if (PlotManager.getPlotByLocation(e.getFrom()) == null && PlotManager.getPlotByLocation(e.getTo()) != null) { Plot plot = PlotManager.getPlotByLocation(e.getTo()); assert plot != null; p.setPlayerTime(plot.getTime().getValue(), false); p.setPlayerWeather(plot.getWeatherType()); - if(!plot.isOwner(p) && !plot.getOwner().equals(UUID.fromString("c35f6ece-c430-4fc0-b61e-18b55be19ee3"))) + if (!plot.isOwner(p) && !plot.getOwner().equals(UUID.fromString("c35f6ece-c430-4fc0-b61e-18b55be19ee3"))) p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 999999, 2)); - if(plot.getWeather() == Weather.THUNDER) { + if (plot.getWeather() == Weather.THUNDER) { BukkitTask task = Bukkit.getScheduler().runTaskTimerAsynchronously(TeamVento.getInstance(), () -> { Random random = new Random(); int r = random.nextInt(100); - if(r < 30) { + if (r < 30) { p.strikeLightning(plot.getArea().getRandomLocation()); } }, 2L, 50L); @@ -328,11 +338,11 @@ public class Events implements Listener{ } } //plot leave - if(PlotManager.getPlotByLocation(e.getFrom()) != null && PlotManager.getPlotByLocation(e.getTo()) == null) { + if (PlotManager.getPlotByLocation(e.getFrom()) != null && PlotManager.getPlotByLocation(e.getTo()) == null) { p.setPlayerTime(Time.DAY.getValue(), false); p.setPlayerWeather(WeatherType.CLEAR); p.clearPotionEffects(); - if(lightningTasks.containsKey(p)) + if (lightningTasks.containsKey(p)) lightningTasks.get(p).cancel(); lightningTasks.remove(p); } @@ -345,7 +355,7 @@ public class Events implements Listener{ @EventHandler public void onBlockGrow(BlockGrowEvent e) { - if(e.getBlock().getType() != Material.CROPS) + if (e.getBlock().getType() != Material.CROPS) e.setCancelled(true); } @@ -357,7 +367,7 @@ public class Events implements Listener{ @EventHandler public void onMultiPlace(BlockMultiPlaceEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(!PlotManager.isAllowedToBuild(p, e.getBlockPlaced().getLocation())) e.setCancelled(true); + if (!PlotManager.isAllowedToBuild(p, e.getBlockPlaced().getLocation())) e.setCancelled(true); } @EventHandler @@ -373,19 +383,32 @@ public class Events implements Listener{ @EventHandler public void onEntityShootBow(EntityShootBowEvent e) { - if(e.getEntityType() != EntityType.PLAYER) return; + if (e.getEntityType() != EntityType.PLAYER) return; CustomPlayer p = CustomPlayer.getPlayer(e.getEntity().getName()); - if(p.getUniqueId().toString().equals("682ebd10-3661-49ec-ba4d-4f24b761b1a7")) { + if (p.getUniqueId().toString().equals("682ebd10-3661-49ec-ba4d-4f24b761b1a7")) { Projectile projectile = (Projectile) e.getProjectile(); projectile.setCustomNameVisible(true); projectile.setCustomName("§cNope " + p.getDisplayName() + ", Nope"); - projectile.setPassenger(projectile.getWorld().spawnEntity(projectile.getLocation(), EntityType.CHICKEN)); + projectile.setGravity(false); + projectile.setGlowing(true); + projectile.setBounce(false); + Bukkit.getScheduler().scheduleSyncDelayedTask(TeamVento.getInstance(), projectile::remove,3 * 20L); } + if(p.getUniqueId().toString().equals("c35f6ece-c430-4fc0-b61e-18b55be19ee3")) { + e.setCancelled(true); + for(int i = 0; i < 100; i++) { + p.getWorld().spawnArrow(p.getEyeLocation(), new Vector(poop(), (random.nextInt(1200) - 200) / 1000, poop()), 1.2F, 12); + } + } + } + + private double poop() { + return random.nextBoolean() ? random.nextDouble() : -random.nextDouble(); } @EventHandler public void onProjectileHit(ProjectileHitEvent e) { - if(e.getEntity().getPassenger() != null) { + if (e.getEntity().getPassenger() != null) { e.getEntity().getPassenger().remove(); e.getEntity().remove(); } @@ -393,7 +416,7 @@ public class Events implements Listener{ @EventHandler public void onProjectileLaunch(ProjectileLaunchEvent e) { - if(e.getEntityType() == EntityType.FISHING_HOOK || e.getEntityType() == EntityType.SNOWBALL) { + if (e.getEntityType() == EntityType.FISHING_HOOK || e.getEntityType() == EntityType.SNOWBALL) { if (e.getEntity().getShooter() instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity().getShooter()); if (p.getUniqueId().toString().equals("682ebd10-3661-49ec-ba4d-4f24b761b1a7")) { @@ -403,4 +426,35 @@ public class Events implements Listener{ } } } + + @EventHandler + public void onPlayerInteract(PlayerInteractEvent e) { + CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); + if(e.getItem() == null || e.getItem().getType() != Material.STICK) return; + if(p.getLocation().clone().add(0, -1, 0).getBlock().getType() != Material.GRASS) return; + final Block target = p.getTargetBlock((Set) null, 50); + if(target == null) return; + new BukkitRunnable() { + Location loc = p.getLocation(); + int i = 0; + @Override + public void run() { + final ArmorStand armorStand = (ArmorStand) loc.getWorld().spawnEntity(loc.clone().add(random.nextDouble() * 2 -1, -1, random.nextDouble() * 2 -1), EntityType.ARMOR_STAND); + armorStand.setVisible(true); + armorStand.setGravity(false); + armorStand.setArms(true); + armorStand.setHeadPose(new EulerAngle(Math.toRadians(random.nextInt(360)), Math.toRadians(random.nextInt(360)), Math.toRadians(random.nextInt(360)))); + armorStand.setHelmet(new ItemStack(Material.GRASS)); + Bukkit.getScheduler().runTaskLater(TeamVento.getInstance(), armorStand::remove, 40L); + i++; + if(i > 50) { + loc.getWorld().createExplosion(loc, 3); + for(Entity entity : loc.getWorld().getNearbyEntities(loc, 8, 8, 8)) { + if(entity instanceof LivingEntity) entity.setVelocity(new Vector(0, 2, 0)); + } + cancel(); + } + } + }; + } } \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/listener/JoinQuit.java b/src/main/java/eu/univento/teamvento/listener/JoinQuit.java index 4655592..8cdb307 100644 --- a/src/main/java/eu/univento/teamvento/listener/JoinQuit.java +++ b/src/main/java/eu/univento/teamvento/listener/JoinQuit.java @@ -1,13 +1,8 @@ package eu.univento.teamvento.listener; -import eu.univento.commons.player.Rank; -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.utils.Plot; -import eu.univento.teamvento.utils.PlotManager; -import net.minecraft.server.v1_11_R1.EnumParticle; +import eu.univento.teamvento.plot.Plot; +import eu.univento.teamvento.plot.PlotManager; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.event.EventHandler; @@ -17,25 +12,24 @@ import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import java.util.HashMap; - /** * @author joethei * @version 0.1 */ public class JoinQuit implements Listener { - public static final HashMap holograms = new HashMap<>(); + //public static final HashMap holograms = new HashMap<>(); @EventHandler public void onJoin(PlayerJoinEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); e.setJoinMessage(null); + p.getDatabasePlayer().getRankAsync().whenComplete((rank, throwable) -> Bukkit.broadcastMessage(p.getDatabasePlayer().getRank().getPrefix() + p.getName() + p.getDatabasePlayer().getRank().getSuffix() + "ist beigetreten")); p.resetAttackSpeed(); - if(PlotManager.hasPlot(p)) { + if (PlotManager.hasPlot(p)) { Plot plot = PlotManager.getPlotByPlayer(p); assert plot != null; - if(!plot.isReady()) { + if (!plot.isReady()) { ItemStack menu = new ItemStack(Material.WATCH); ItemMeta menuMeta = menu.getItemMeta(); menuMeta.setDisplayName("§eErweiterungen"); @@ -43,30 +37,28 @@ public class JoinQuit implements Listener { p.getInventory().setItem(8, menu); } } - if(p.getDatabasePlayer().getRank() == Rank.Builder || p.getDatabasePlayer().getRank() == Rank.SrBuilder) - Bukkit.broadcastMessage(p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " §8hat den Server §bbetreten"); - else - p.teleport(Config.readLocation("Build.Locs.Spawn")); + p.teleport(Bukkit.getWorld("world").getSpawnLocation()); + /* String[] text; if(PlotManager.hasPlot(p)) text = new String[]{"§eZu deinem Plot teleportieren", "|", "|", "▼"}; else text = new String[]{"§eNeues Plot erstellen", "|", "|", "▼",}; + 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(new ItemStack(Material.GRASS), text, Config.readLocation("Build.Locs.Holo")); holograms.put(p, holo); holo.showPlayer(p); + */ } @EventHandler public void onQuit(PlayerQuitEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - e.setQuitMessage(null); - holograms.remove(p); - if(p.getDatabasePlayer().getRank() == Rank.Builder || p.getDatabasePlayer().getRank() == Rank.SrBuilder) - Bukkit.broadcastMessage(p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " §8hat den Server §cverlassen"); + e.setQuitMessage(p.getDatabasePlayer().getRank().getPrefix() + p.getName() + p.getDatabasePlayer().getRank().getSuffix() + "ist von uns gegangen"); + //holograms.remove(p); } } \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/listener/MenuEvents.java b/src/main/java/eu/univento/teamvento/listener/MenuEvents.java index 1d12937..f6037a8 100644 --- a/src/main/java/eu/univento/teamvento/listener/MenuEvents.java +++ b/src/main/java/eu/univento/teamvento/listener/MenuEvents.java @@ -1,15 +1,15 @@ package eu.univento.teamvento.listener; -import eu.univento.commons.player.Rank; +import eu.univento.commons.player.rank.Rank; +import eu.univento.commons.player.uuid.NameFetcher; +import eu.univento.commons.player.uuid.UUIDFetcher; import eu.univento.core.Core; import eu.univento.core.api.gui.AnvilGUI; import eu.univento.core.api.items.ItemBuilder; import eu.univento.core.api.items.PageInventory; 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.SlackMessage; +import eu.univento.teamvento.plot.*; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -27,6 +27,11 @@ import org.bukkit.inventory.meta.SkullMeta; import java.util.ArrayList; +/** + * @author joethei + * @version 1.0 + */ + public class MenuEvents implements Listener{ @EventHandler @@ -91,7 +96,7 @@ public class MenuEvents implements Listener{ PageInventory inventory = new PageInventory("§eTeleport", p, true); ArrayList items = new ArrayList<>(); for(Plot plots : PlotManager.getPlots()) { - String name = UUIDFetcher.getName(plots.getOwner()); + String name = NameFetcher.getRequest(plot.getOwner()); items.add(new ItemBuilder(Material.SKULL_ITEM).durability((short) 3).skullOwner(name).name("§e" + plots.getName()).lore("§evon " + name).make()); } inventory.setPages(items); @@ -105,9 +110,6 @@ public class MenuEvents implements Listener{ 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")); - SlackMessage message = new SlackMessage("#bauevent", p.getName(), " ist nun fertig mit bauen"); - message.setIcon("http://cravatar.eu/head/" + p.getUniqueId().toString()); - Core.getCommons().getSlackHandler().getSlackAPI().call(message); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("Nein")) p.closeInventory(); @@ -196,7 +198,6 @@ public class MenuEvents implements Listener{ event.setWillClose(true); event.setWillDestroy(true); plot.setName(event.getName()); - p.refreshExperience(); }else{ event.setWillDestroy(true); event.setWillClose(true); @@ -216,7 +217,6 @@ public class MenuEvents implements Listener{ event.setWillClose(true); event.setWillDestroy(true); plot.setContact(event.getName()); - p.refreshExperience(); }else{ event.setWillDestroy(true); event.setWillClose(true); @@ -235,7 +235,7 @@ public class MenuEvents implements Listener{ if(e.getCurrentItem().getType() == Material.SKULL_ITEM) { SkullMeta skull = (SkullMeta) e.getCurrentItem().getItemMeta(); Bukkit.getScheduler().runTaskAsynchronously(TeamVento.getInstance(), () -> { - Plot tpPlot = PlotManager.getPlotByOwner(UUIDFetcher.getUUID(skull.getOwner()).toString()); + Plot tpPlot = PlotManager.getPlotByOwner(UUIDFetcher.getRequest(skull.getOwner()).toString()); assert tpPlot != null; Location loc = tpPlot.getSpawn(); Bukkit.getScheduler().runTask(TeamVento.getInstance(), () -> p.teleport(new Location(loc.getWorld(), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F))); diff --git a/src/main/java/eu/univento/teamvento/listener/PositionSetter.java b/src/main/java/eu/univento/teamvento/listener/PositionSetter.java deleted file mode 100644 index 7897647..0000000 --- a/src/main/java/eu/univento/teamvento/listener/PositionSetter.java +++ /dev/null @@ -1,36 +0,0 @@ -package eu.univento.teamvento.listener; - -import eu.univento.commons.player.Rank; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.teamvento.utils.WorldEdit; -import org.bukkit.Material; -import org.bukkit.block.Block; -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; - -/** - * @author joethei - * @version 0.1 - */ -public class PositionSetter implements Listener{ - - @EventHandler - public void onInteract(PlayerInteractEvent e) { - CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - Block b = e.getClickedBlock(); - ItemStack item = p.getInventory().getItemInMainHand(); - if (p.getDatabasePlayer().isAllowed(Rank.Builder)) { - if(e.getAction() == Action.LEFT_CLICK_BLOCK && item.getType() == Material.WOOD_AXE) { - WorldEdit.setPos1(p, b); - p.sendMessage(p.getMessages().PREFIX() + "§aset pos1"); - } - if(e.getAction() == Action.RIGHT_CLICK_BLOCK && item.getType() == Material.WOOD_AXE) { - WorldEdit.setPos2(p, b); - p.sendMessage(p.getMessages().PREFIX() + "§aset pos2"); - } - } - } -} diff --git a/src/main/java/eu/univento/teamvento/listener/SignInteract.java b/src/main/java/eu/univento/teamvento/listener/SignInteract.java index 8008a63..034081d 100644 --- a/src/main/java/eu/univento/teamvento/listener/SignInteract.java +++ b/src/main/java/eu/univento/teamvento/listener/SignInteract.java @@ -1,8 +1,8 @@ package eu.univento.teamvento.listener; import eu.univento.core.api.player.CustomPlayer; -import eu.univento.teamvento.utils.Plot; -import eu.univento.teamvento.utils.PlotManager; +import eu.univento.teamvento.plot.Plot; +import eu.univento.teamvento.plot.PlotManager; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -27,6 +27,7 @@ public class SignInteract implements Listener { assert plot != null; Location loc = plot.getSpawn(); p.teleport(new Location(Bukkit.getWorld("plots"), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F)); + p.setFlying(true); } else { PlotManager.createPlot(p); diff --git a/src/main/java/eu/univento/teamvento/utils/InventoryManager.java b/src/main/java/eu/univento/teamvento/plot/InventoryManager.java similarity index 99% rename from src/main/java/eu/univento/teamvento/utils/InventoryManager.java rename to src/main/java/eu/univento/teamvento/plot/InventoryManager.java index 5c9155b..172f7d2 100644 --- a/src/main/java/eu/univento/teamvento/utils/InventoryManager.java +++ b/src/main/java/eu/univento/teamvento/plot/InventoryManager.java @@ -1,4 +1,4 @@ -package eu.univento.teamvento.utils; +package eu.univento.teamvento.plot; import eu.univento.core.api.items.ItemBuilder; import eu.univento.core.api.player.CustomPlayer; diff --git a/src/main/java/eu/univento/teamvento/utils/Plot.java b/src/main/java/eu/univento/teamvento/plot/Plot.java similarity index 74% rename from src/main/java/eu/univento/teamvento/utils/Plot.java rename to src/main/java/eu/univento/teamvento/plot/Plot.java index 0689738..bb511a2 100644 --- a/src/main/java/eu/univento/teamvento/utils/Plot.java +++ b/src/main/java/eu/univento/teamvento/plot/Plot.java @@ -1,11 +1,7 @@ -package eu.univento.teamvento.utils; +package eu.univento.teamvento.plot; -import com.mongodb.CursorType; -import com.mongodb.client.FindIterable; -import eu.univento.core.Core; import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.schematic.Cuboid; -import org.bson.Document; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.Location; @@ -121,26 +117,14 @@ public class Plot { } private Object getObjectFromDatbase(String name) { - FindIterable cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", owner.toString())); - cursor.cursorType(CursorType.NonTailable); - - Document doc = cursor.first(); - if (doc == null) return null; - - return doc.get(name); + return null; } private String getStringFromDatabase(String name) { - FindIterable cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", owner.toString())); - cursor.cursorType(CursorType.NonTailable); - - Document doc = cursor.first(); - if (doc == null) return null; - - return doc.getString(name); + return ""; } 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))); + } } \ 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/plot/PlotAction.java similarity index 91% rename from src/main/java/eu/univento/teamvento/utils/PlotAction.java rename to src/main/java/eu/univento/teamvento/plot/PlotAction.java index 7bb4ce2..f8f8918 100644 --- a/src/main/java/eu/univento/teamvento/utils/PlotAction.java +++ b/src/main/java/eu/univento/teamvento/plot/PlotAction.java @@ -1,9 +1,8 @@ -package eu.univento.teamvento.utils; +package eu.univento.teamvento.plot; import eu.univento.core.api.Config; 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; @@ -36,7 +35,6 @@ interface PlotAction { assert plot != null; 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); 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/plot/PlotManager.java similarity index 89% rename from src/main/java/eu/univento/teamvento/utils/PlotManager.java rename to src/main/java/eu/univento/teamvento/plot/PlotManager.java index 8298d6d..c01e373 100644 --- a/src/main/java/eu/univento/teamvento/utils/PlotManager.java +++ b/src/main/java/eu/univento/teamvento/plot/PlotManager.java @@ -1,14 +1,11 @@ -package eu.univento.teamvento.utils; +package eu.univento.teamvento.plot; -import com.mongodb.BasicDBObject; -import com.mongodb.CursorType; -import com.mongodb.client.FindIterable; -import eu.univento.commons.player.Rank; +import eu.univento.commons.player.rank.Rank; import eu.univento.core.Core; import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.schematic.Cuboid; import eu.univento.teamvento.TeamVento; -import org.bson.Document; +import io.vertx.core.json.JsonObject; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -17,7 +14,9 @@ import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import java.time.Instant; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.LinkedBlockingDeque; /** @@ -45,13 +44,16 @@ public class PlotManager { } public static void update() { - FindIterable cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(); - for (Document doc : cursor) { - String uuid = doc.getString("uuid"); - Plot plot = new Plot(new Cuboid(getLocation(uuid, "minPos"), getLocation(uuid, "maxPos")), UUID.fromString(uuid), getLocation(uuid, "Spawn")); - plots.add(plot); - plot.setBiome(plot.getBiome()); - } + Core.getCommons().getDatabaseManager().getMongoDB().getClient().find("plots", null, res -> { + if(res.succeeded()) { + for(JsonObject json : res.result()) { + String uuid = json.getString("uuid"); + Plot plot = new Plot(new Cuboid(getLocation(uuid, "minPos"), getLocation(uuid, "maxPos")), UUID.fromString(uuid), getLocation(uuid, "Spawn")); + plots.add(plot); + plot.setBiome(plot.getBiome()); + } + }else res.cause().printStackTrace(); + }); } public static Plot getPlotByPlayer(CustomPlayer p) { @@ -366,7 +368,7 @@ public class PlotManager { } static void addPlotToDatabase(Plot plot) { - Document doc = new Document("uuid", plot.getOwner().toString()); + JsonObject json = new JsonObject().put("uuid", plot.getOwner().toString()); Date date = new Date(); HashMap maxPos = new HashMap<>(); @@ -384,19 +386,13 @@ public class PlotManager { spawn.put("Y", plot.getSpawn().getY()); spawn.put("Z", plot.getSpawn().getZ()); - doc.put("created", date); - doc.put("maxPos", new BasicDBObject(maxPos)); - doc.put("minPos", new BasicDBObject(minPos)); - doc.put("Spawn", new BasicDBObject(spawn)); - doc.put("time", Time.DAY.name()); - doc.put("weather", Weather.CLEAR.name()); - doc.put("biome", Biome.PLAINS.name()); - doc.put("name", "§cunbenanntes Plot"); - doc.put("contact", ""); - doc.put("ready", false); + json.put("created", date).put("maxPos", new JsonObject(maxPos)).put("minPos", new JsonObject(minPos)).put("Spawn", new JsonObject(spawn)).put("time", Time.DAY.name()) + .put("weather", Weather.CLEAR.name()).put("biome", Biome.PLAINS.name()).put("name", "§cunbenanntes Plot").put("contact", "").put("ready", false); + Core.getCommons().getDatabaseManager().getMongoDB().getClient().insert("plots", json, res -> { + if(res.failed()) res.cause().printStackTrace(); + }); - Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").insertOne(doc); } private static boolean isPlot(Location location) { @@ -415,7 +411,7 @@ public class PlotManager { return null; } - public static Date getCreatedDate(String uuid) { + public static CompletableFuture getCreatedDate(String uuid) { return getDateFromDatabase(uuid); } @@ -434,24 +430,22 @@ public class PlotManager { } } - private static Date getDateFromDatabase(String uuid) { - FindIterable cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", uuid)); - cursor.cursorType(CursorType.NonTailable); - - Document doc = cursor.first(); - if (doc == null) return null; - - return doc.getDate("created"); + private static CompletableFuture getDateFromDatabase(String uuid) { + CompletableFuture future = new CompletableFuture<>(); + Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("plots", new JsonObject().put("uuid", uuid), null, res -> { + if(res.succeeded()) future.complete(res.result().getInstant("created")); + else res.cause().printStackTrace(); + }); + return future; } - private static Object getObjectFromDatbase(String uuid, String name) { - FindIterable cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", uuid)); - cursor.cursorType(CursorType.NonTailable); - - Document doc = cursor.first(); - if (doc == null) return null; - - return doc.get(name); + private static CompletableFuture getObjectFromDatbase(String uuid, String name) { + CompletableFuture future = new CompletableFuture<>(); + Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("plots", new JsonObject().put("uuid", uuid), null, res -> { + if(res.succeeded()) future.complete(res.result().getValue(name)); + else res.cause().printStackTrace(); + }); + return future; } private static Map getMapFromDatabase(String uuid, String name) { diff --git a/src/main/java/eu/univento/teamvento/utils/Time.java b/src/main/java/eu/univento/teamvento/plot/Time.java similarity index 87% rename from src/main/java/eu/univento/teamvento/utils/Time.java rename to src/main/java/eu/univento/teamvento/plot/Time.java index f3f10bd..c7d8a41 100644 --- a/src/main/java/eu/univento/teamvento/utils/Time.java +++ b/src/main/java/eu/univento/teamvento/plot/Time.java @@ -1,4 +1,4 @@ -package eu.univento.teamvento.utils; +package eu.univento.teamvento.plot; /** * @author joethei diff --git a/src/main/java/eu/univento/teamvento/utils/Weather.java b/src/main/java/eu/univento/teamvento/plot/Weather.java similarity index 76% rename from src/main/java/eu/univento/teamvento/utils/Weather.java rename to src/main/java/eu/univento/teamvento/plot/Weather.java index bb99256..9441a03 100644 --- a/src/main/java/eu/univento/teamvento/utils/Weather.java +++ b/src/main/java/eu/univento/teamvento/plot/Weather.java @@ -1,4 +1,4 @@ -package eu.univento.teamvento.utils; +package eu.univento.teamvento.plot; public enum Weather { diff --git a/src/main/java/eu/univento/teamvento/utils/WorldEdit.java b/src/main/java/eu/univento/teamvento/utils/WorldEdit.java deleted file mode 100644 index 5c0a97c..0000000 --- a/src/main/java/eu/univento/teamvento/utils/WorldEdit.java +++ /dev/null @@ -1,42 +0,0 @@ -package eu.univento.teamvento.utils; - -import eu.univento.core.api.player.CustomPlayer; -import org.bukkit.block.Block; - -import java.util.HashMap; - -/** - * @author joethei - * @version 0.1 - */ -public class WorldEdit { - - private static final HashMap pos1 = new HashMap<>(); - private static final HashMap pos2 = new HashMap<>(); - - public static Block getPos1(CustomPlayer p) { - return pos1.containsKey(p) ? pos1.get(p) : null; - } - - public static Block getPos2(CustomPlayer p) { - return pos2.containsKey(p) ? pos2.get(p) : null; - } - - public static void setPos1(CustomPlayer p, Block b) { - if(pos1.containsKey(p)) { - pos1.remove(p); - } - pos1.put(p, b); - } - - public static void setPos2(CustomPlayer p, Block b) { - if(pos2.containsKey(p)) { - pos2.remove(p); - } - pos2.put(p, b); - } - - public static boolean hasSetPos(CustomPlayer p) { - return pos1.containsKey(p) && pos2.containsKey(p); - } -} \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 60ae122..31c1a05 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,4 +4,4 @@ version: 0.1 author: joethei website: http://univento.eu/team/TeamVento description: Plugin for univento build server -depend: [Core] +depend: [Core] \ No newline at end of file