diff --git a/TeamVento.iml b/TeamVento.iml index bfa888d..cdafa29 100644 --- a/TeamVento.iml +++ b/TeamVento.iml @@ -11,25 +11,6 @@ - - - - - - - - - - - - - - - - - - - @@ -43,5 +24,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 75e78cc..519e654 100644 --- a/pom.xml +++ b/pom.xml @@ -51,19 +51,7 @@ - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - - - eu.univento - Core - 1.0-SNAPSHOT - org.spigotmc spigot-api @@ -82,7 +70,21 @@ 1.10.2-R0.1-SNAPSHOT provided + + eu.univento + CloudCommons + 1.0-SNAPSHOT + + + eu.univento + Commons + 1.0-SNAPSHOT + + + eu.univento + Core + 1.0-SNAPSHOT + - \ 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 2d218dc..c571150 100644 --- a/src/main/java/eu/univento/teamvento/TeamVento.java +++ b/src/main/java/eu/univento/teamvento/TeamVento.java @@ -57,7 +57,6 @@ public class TeamVento extends JavaPlugin { new Sel(this, "sel", "removes block selection"); new WorldList(this, "worldlist", "lists all worlds", "wl"); new PlotInfo(this, "plotinfo", "info about a plot", "pi"); - new Pack(this, "pack", "sets resource pack"); for(String world : getCfg().getKeys(true)) { String generator = getCfg().getString(world); diff --git a/src/main/java/eu/univento/teamvento/commands/Pack.java b/src/main/java/eu/univento/teamvento/commands/Pack.java deleted file mode 100644 index a2f4daa..0000000 --- a/src/main/java/eu/univento/teamvento/commands/Pack.java +++ /dev/null @@ -1,47 +0,0 @@ -package eu.univento.teamvento.commands; - -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.ResourcePack; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author joethei - * @version 0.1 - */ -public class Pack extends AutoCommand{ - - public Pack(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((Player) sender); - if(args.length == 1) { - p.setResourcePack(ResourcePack.valueOf(args[0]).getUrl()); - }else{ - p.sendMessage("§cDa stimmt was mit den Argumenten nicht"); - } - }else{ - sender.sendMessage(Messages.Console.NOT_A_PLAYER); - } - return true; - } - - @Override - public List tabComplete(CommandSender sender, String label, String[] args) { - ArrayList list = new ArrayList<>(); - for(ResourcePack pack : ResourcePack.values()) { - list.add(pack.name()); - } - return list; - } -} \ 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 9f467fe..dd0cab7 100644 --- a/src/main/java/eu/univento/teamvento/commands/PlotInfo.java +++ b/src/main/java/eu/univento/teamvento/commands/PlotInfo.java @@ -8,10 +8,6 @@ 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 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.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -33,13 +29,13 @@ public class PlotInfo extends AutoCommand{ Plot plot = PlotManager.getPlotByLocation(p.getLocation()); assert plot != null; Bukkit.getScheduler().runTaskAsynchronously(TeamVento.getInstance(), () -> { + p.sendMessage("§eName: " + plot.getName()); p.sendMessage("§eErsteller: " + UUIDFetcher.getName(plot.getOwner())); p.sendMessage("§eErstellt am: " + PlotManager.getCreatedDate(plot.getOwner().toString())); - p.sendMessage("§eResourcePack: " + plot.getResourcePack().getName()); - TextComponent text = new TextComponent("§eResourcePack: " + plot.getResourcePack().getName()); - text.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "pack " + plot.getResourcePack().getName())); - text.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("§eLade ResourcePack").create())); - p.spigot().sendMessage(text); + p.sendMessage("§eKontakt: " + plot.getContact()); + p.sendMessage("§eBiom: " + plot.getBiome().name()); + p.sendMessage("§eZeit: " + plot.getTime().name()); + p.sendMessage("§Wetter: " + plot.getWeather().name()); }); }else{ p.sendMessage("§cHier ist leider kein Plot"); diff --git a/src/main/java/eu/univento/teamvento/listener/Events.java b/src/main/java/eu/univento/teamvento/listener/Events.java index e130c87..4237ebf 100644 --- a/src/main/java/eu/univento/teamvento/listener/Events.java +++ b/src/main/java/eu/univento/teamvento/listener/Events.java @@ -23,13 +23,11 @@ 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.InventoryAction; import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryDragEvent; -import org.bukkit.event.inventory.InventoryMoveItemEvent; 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.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitTask; @@ -61,80 +59,30 @@ public class Events implements Listener{ @EventHandler public void onBlockBreak(BlockBreakEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(PlotManager.getPlotByLocation(e.getBlock().getLocation()) == null) { - e.setCancelled(true); - return; - } - Plot plot = PlotManager.getPlotByLocation(e.getBlock().getLocation()); - assert plot != null; - if(!plot.isOwner(p)) e.setCancelled(true); - if(!e.getBlock().getWorld().getName().equals("plots")) e.setCancelled(false); - if(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) e.setCancelled(false); - /* - if (p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if (!e.getBlock().getWorld().getName().equalsIgnoreCase("plots")) return; - if (PlotManager.getPlotByLocation(e.getBlock().getLocation()) == null) { - e.setCancelled(true); - return; - } - if (!PlotManager.getPlotByLocation(e.getBlock().getLocation()).isOwner(p)) 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.getPlotByLocation(e.getBlockPlaced().getLocation()) == null) { - e.setCancelled(true); - return; - } - Plot plot = PlotManager.getPlotByLocation(e.getBlockPlaced().getLocation()); - assert plot != null; - if(!plot.isOwner(p)) e.setCancelled(true); - if(!e.getBlockPlaced().getWorld().getName().equals("plots")) e.setCancelled(false); - if(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) e.setCancelled(false); - /* - CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if (p.getDatabasePlayer().isAllowed(Ranks.SrDeveloper)) return; - if (!e.getBlock().getWorld().getName().equalsIgnoreCase("plots")) return; - if (PlotManager.getPlotByLocation(e.getBlock().getLocation()) == null) { - e.setCancelled(true); - return; - } - if (!PlotManager.getPlotByLocation(e.getBlock().getLocation()).isOwner(p)) 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 (!e.getBlock().getWorld().getName().equalsIgnoreCase("plots")) return; - if (p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if (PlotManager.getPlotByLocation(e.getBlock().getLocation()) == null) e.setCancelled(true); - Plot plot = PlotManager.getPlotByLocation(e.getBlock().getLocation()); - assert plot != null; - if(!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); } @EventHandler public void onHangingBreakByEntity(HangingBreakByEntityEvent e) { if(e.getRemover() instanceof Projectile) { CustomPlayer p = CustomPlayer.getPlayer((Player) ((Projectile) e.getRemover()).getShooter()); - if (!e.getEntity().getWorld().getName().equalsIgnoreCase("plots")) return; - if (p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if (PlotManager.getPlotByLocation(e.getEntity().getLocation()) == null) e.setCancelled(true); - Plot plot = PlotManager.getPlotByLocation(e.getEntity().getLocation()); - assert plot != null; - if(!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); } if(e.getRemover() instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer((Player) e.getRemover()); - if (!e.getEntity().getWorld().getName().equalsIgnoreCase("plots")) return; - if (p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if (PlotManager.getPlotByLocation(e.getEntity().getLocation()) == null) e.setCancelled(true); - Plot plot = PlotManager.getPlotByLocation(e.getEntity().getLocation()); - assert plot != null; - if(!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); }else{ e.setCancelled(true); } @@ -144,27 +92,11 @@ public class Events implements Listener{ public void onEntityDamageByEntity(EntityDamageByEntityEvent e) { if (e.getDamager() instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer((Player) e.getDamager()); - if (!e.getEntity().getWorld().getName().equalsIgnoreCase("plots")) return; - if (p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if (PlotManager.getPlotByLocation(e.getDamager().getLocation()) == null) { - e.setCancelled(true); - return; - } - Plot plot = PlotManager.getPlotByLocation(e.getEntity().getLocation()); - assert plot != null; - if (!plot.isOwner(p)) e.setCancelled(true); + 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 (!e.getEntity().getWorld().getName().equalsIgnoreCase("plots")) return; - if(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if (PlotManager.getPlotByLocation(e.getDamager().getLocation()) == null) { - e.setCancelled(true); - return; - } - Plot plot = PlotManager.getPlotByLocation(e.getEntity().getLocation()); - assert plot != null; - if (!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true); } } @@ -176,17 +108,12 @@ public class Events implements Listener{ @EventHandler public void onBlockIgnite(BlockIgniteEvent e) { - if (e.getCause() != BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL) { + if (e.getCause() != BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL && e.getCause() != BlockIgniteEvent.IgniteCause.FIREBALL) { e.setCancelled(true); return; } CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if (!e.getBlock().getWorld().getName().equalsIgnoreCase("plots")) return; - if (p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if (PlotManager.getPlotByLocation(e.getBlock().getLocation()) == null) e.setCancelled(true); - Plot plot = PlotManager.getPlotByLocation(e.getBlock().getLocation()); - assert plot != null; - if (!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true); } @EventHandler @@ -231,6 +158,11 @@ public class Events implements Listener{ e.setCancelled(true); } + @EventHandler + public void onPiston(BlockPistonEvent e) { + e.setCancelled(true); + } + @EventHandler public void onInteract(PlayerInteractEvent e) { if (e.getAction() == Action.PHYSICAL && e.getClickedBlock().getType() == Material.SOIL) @@ -240,43 +172,26 @@ 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(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if(PlotManager.getPlotByLocation(block.getLocation()) == null) e.setCancelled(true); - Plot plot = PlotManager.getPlotByLocation(e.getClickedBlock().getLocation()); - assert plot != null; - if (!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getClickedBlock().getLocation())) e.setCancelled(true); } } if(e.getAction() == Action.RIGHT_CLICK_BLOCK) { - Plot plot = PlotManager.getPlotByLocation(p.getLocation()); - if(plot == null) return; - if(!plot.isOwner(p)) e.setCancelled(true); + 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().getWorld().getName().equalsIgnoreCase("plots")) - return; if(e.getRightClicked().getType() == EntityType.ITEM_FRAME) { - if(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if(PlotManager.getPlotByLocation(e.getRightClicked().getLocation()) == null) e.setCancelled(true); - Plot plot = PlotManager.getPlotByLocation(e.getRightClicked().getLocation()); - assert plot != null; - if (!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true); } } @EventHandler public void onArmorStandManipulate(PlayerArmorStandManipulateEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if (!e.getRightClicked().getWorld().getName().equalsIgnoreCase("plots")) return; - if(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if(PlotManager.getPlotByLocation(e.getRightClicked().getLocation()) == null) e.setCancelled(true); - Plot plot = PlotManager.getPlotByLocation(e.getRightClicked().getLocation()); - assert plot != null; - if (!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true); } @EventHandler @@ -294,34 +209,18 @@ public class Events implements Listener{ e.setCancelled(true); } - @EventHandler - public void onInventoryMove(InventoryMoveItemEvent e) { - assert e.getItem() != null; - assert e.getItem().hasItemMeta(); - assert e.getItem().getItemMeta().hasDisplayName(); - //if(e.getItem().getItemMeta().getDisplayName().equalsIgnoreCase("§eErweiterungen")) e.setCancelled(true); - if(e.getItem().getType() == Material.WATCH) { - e.setCancelled(true); - Core.getCommons().getLoggingHandler().getTeamVento().info("Item has been moved"); - } - } - - @EventHandler - public void onInventoryDrag(InventoryDragEvent e) { - assert e.getCursor() != null; - assert e.getCursor().hasItemMeta(); - assert e.getCursor().getItemMeta().hasDisplayName(); - //if(e.getCursor().getItemMeta().getDisplayName().equalsIgnoreCase("§eErweiterungen")) e.setCancelled(true); - if(e.getCursor().getType() == Material.WATCH) { - e.setCancelled(true); - Core.getCommons().getLoggingHandler().getTeamVento().info("Item has been dragged"); - } - } - @EventHandler public void onInventoryClick(InventoryClickEvent e) { - if(e.getAction() == InventoryAction.SWAP_WITH_CURSOR) { - Core.getCommons().getLoggingHandler().getTeamVento().info("Inventory clicked: Swap with cursor"); + if(e.getClickedInventory() instanceof PlayerInventory) { + if(e.getSlot() == 8 || e.getHotbarButton() == 8) { + e.setCancelled(true); + } + } + } + + @EventHandler + public void onSwapHands(PlayerSwapHandItemsEvent e) { + if(e.getPlayer().getInventory().getHeldItemSlot() == 8) { e.setCancelled(true); } } @@ -334,28 +233,13 @@ public class Events implements Listener{ @EventHandler public void onBucketEmpty(PlayerBucketEmptyEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if (!e.getPlayer().getWorld().getName().equalsIgnoreCase("plots")) - return; - if(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if(PlotManager.getPlotByLocation(e.getPlayer().getLocation()) == null) { - e.setCancelled(true); - return; - } - Plot plot = PlotManager.getPlotByLocation(e.getBlockClicked().getLocation()); - assert plot != null; - if (!plot.isOwner(p)) 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 (!e.getPlayer().getWorld().getName().equalsIgnoreCase("plots")) - return; - if(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if(PlotManager.getPlotByLocation(e.getPlayer().getLocation()) == null) e.setCancelled(true); - Plot plot = PlotManager.getPlotByLocation(e.getBlockClicked().getLocation()); - assert plot != null; - if (!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getBlockClicked().getLocation())) e.setCancelled(true); } @EventHandler @@ -367,7 +251,6 @@ public class Events implements Listener{ assert plot != null; p.setPlayerTime(plot.getTime().getValue(), false); p.setPlayerWeather(plot.getWeatherType()); - p.setResourcePack(plot.getResourcePack().getUrl()); 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) { @@ -414,6 +297,39 @@ public class Events implements Listener{ } } + @EventHandler + public void onTeleport(PlayerTeleportEvent e) { + CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); + //plot enter + 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"))) + p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 999999, 2)); + if(plot.getWeather() == Weather.THUNDER) { + BukkitTask task = Bukkit.getScheduler().runTaskTimerAsynchronously(TeamVento.getInstance(), () -> { + Random random = new Random(); + int r = random.nextInt(100); + if(r < 30) { + p.strikeLightning(plot.getArea().getRandomLocation()); + } + }, 2L, 50L); + lightningTasks.put(p, task); + } + } + //plot leave + 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)) + lightningTasks.get(p).cancel(); + lightningTasks.remove(p); + } + } + @EventHandler public void onPotionSplash(PotionSplashEvent e) { e.setCancelled(true); @@ -433,12 +349,7 @@ public class Events implements Listener{ @EventHandler public void onMultiPlace(BlockMultiPlaceEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if (!e.getBlockPlaced().getWorld().getName().equalsIgnoreCase("plots")) return; - if (p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) return; - if (PlotManager.getPlotByLocation(e.getBlockPlaced().getLocation()) == null) e.setCancelled(true); - Plot plot = PlotManager.getPlotByLocation(e.getBlock().getLocation()); - assert plot != null; - if (!plot.isOwner(p)) e.setCancelled(true); + if(!PlotManager.isAllowedToBuild(p, e.getBlockPlaced().getLocation())) e.setCancelled(true); } @EventHandler diff --git a/src/main/java/eu/univento/teamvento/listener/JoinQuit.java b/src/main/java/eu/univento/teamvento/listener/JoinQuit.java index c6f2548..ed88be5 100644 --- a/src/main/java/eu/univento/teamvento/listener/JoinQuit.java +++ b/src/main/java/eu/univento/teamvento/listener/JoinQuit.java @@ -25,7 +25,7 @@ import java.util.HashMap; */ public class JoinQuit implements Listener { - static final HashMap holograms = new HashMap<>(); + public static final HashMap holograms = new HashMap<>(); @EventHandler public void onJoin(PlayerJoinEvent e) { diff --git a/src/main/java/eu/univento/teamvento/listener/MenuEvents.java b/src/main/java/eu/univento/teamvento/listener/MenuEvents.java index e55197d..b5ac197 100644 --- a/src/main/java/eu/univento/teamvento/listener/MenuEvents.java +++ b/src/main/java/eu/univento/teamvento/listener/MenuEvents.java @@ -5,19 +5,17 @@ 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.items.ScrollingInventory; 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; import org.bukkit.Material; import org.bukkit.WeatherType; import org.bukkit.block.Biome; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Pig; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -66,8 +64,7 @@ public class MenuEvents implements Listener{ p.openInventory(invs.getAnimalsInventory()); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§ePlot zurücksetzen")) { - PlotManager.clearPlot(plot); - Bukkit.getScheduler().runTaskLaterAsynchronously(TeamVento.getInstance(), () -> PlotManager.generatePlot(plot), 13 * 20L); + PlotManager.resetPlot(plot); p.closeInventory(); } if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§eFertig")) { @@ -113,6 +110,10 @@ 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")); + 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); } if(e.getCurrentItem().getItemMeta().getDisplayName().equals("Nein")) p.closeInventory(); @@ -235,16 +236,6 @@ public class MenuEvents implements Listener{ gui.open(); } - if(e.getCurrentItem().getType() == Material.DIRT) { - ScrollingInventory inventory = new ScrollingInventory(p, "§eResourcePack"); - for(ResourcePack pack : ResourcePack.values()) { - if(pack.equals(plot.getResourcePack())) - inventory.addItem(new ItemBuilder(pack.getMaterial()).glow().name(pack.getName()).make()); - else - inventory.addItem(new ItemBuilder(pack.getMaterial()).name(pack.getName()).make()); - } - inventory.openInventory(); - } } if(e.getInventory().getName().equals("§eTeleport")) { if(e.getCurrentItem().getType() == Material.SKULL_ITEM) { @@ -257,24 +248,5 @@ public class MenuEvents implements Listener{ }); } } - if(e.getInventory().getName().equals("§eResourcePack")) { - if(e.getCurrentItem() != null) { - plot.setResourcePack(ResourcePack.valueOf(e.getCurrentItem().getType())); - p.closeInventory(); - } - } - if(e.getInventory().getName().equals(invs.getAnimalsInventory().getName())) { - if(e.getCurrentItem().getType() == Material.COOKED_BEEF) { - p.closeInventory(); - Entity animal = Bukkit.getWorld("plots").spawnEntity(p.getLocation(), EntityType.PIG); - Pig pig = (Pig) animal; - pig.setAI(false); - pig.setInvulnerable(true); - pig.setRemoveWhenFarAway(false); - pig.setCollidable(false); - pig.setGravity(false); - plot.addAnimal(animal); - } - } } } \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/listener/SignInteract.java b/src/main/java/eu/univento/teamvento/listener/SignInteract.java index 850cb96..3df6aca 100644 --- a/src/main/java/eu/univento/teamvento/listener/SignInteract.java +++ b/src/main/java/eu/univento/teamvento/listener/SignInteract.java @@ -1,7 +1,5 @@ package eu.univento.teamvento.listener; -import eu.univento.core.api.Config; -import eu.univento.core.api.Hologram; import eu.univento.core.api.player.CustomPlayer; import eu.univento.teamvento.utils.Plot; import eu.univento.teamvento.utils.PlotManager; @@ -25,19 +23,12 @@ public class SignInteract implements Listener { if(e.getClickedBlock().getType() == Material.ENCHANTMENT_TABLE && e.getClickedBlock().getLocation().add(0.0D, -1.0D, 0.0D).getBlock().getType() == Material.COMMAND) { e.setCancelled(true); if (PlotManager.hasPlot(p)) { - Location loc = PlotManager.getPlotByPlayer(p).getSpawn(); - p.teleport(new Location(Bukkit.getWorld("plots"), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F)); - } else { - p.sendTitle("§eBitte warten", "§aDein Grundstück wird generiert"); - JoinQuit.holograms.get(p).hidePlayer(p); - Hologram holo = new Hologram(new String[]{"§eZu deinem Plot teleportieren", "|", "|", "▼"}, Config.readLocation("Build.Locs.Holo")); - holo.showPlayer(p); - Plot plot = PlotManager.createPlot(p); - PlotManager.createPlot(plot); - PlotManager.generatePlot(plot); - p.setFlying(true); + Plot plot = PlotManager.getPlotByPlayer(p); + assert plot != null; Location loc = plot.getSpawn(); p.teleport(new Location(Bukkit.getWorld("plots"), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F)); + } else { + PlotManager.createPlot(p); } } diff --git a/src/main/java/eu/univento/teamvento/utils/Inventorys.java b/src/main/java/eu/univento/teamvento/utils/Inventorys.java index 3973771..d984a89 100644 --- a/src/main/java/eu/univento/teamvento/utils/Inventorys.java +++ b/src/main/java/eu/univento/teamvento/utils/Inventorys.java @@ -175,14 +175,8 @@ public class Inventorys { contactMeta.setDisplayName("§eKontaktmöglichkeiten"); contact.setItemMeta(contactMeta); - ItemStack texture = new ItemStack(Material.DIRT); - ItemMeta textureMeta = texture.getItemMeta(); - textureMeta.setDisplayName("§eResourcePack"); - texture.setItemMeta(textureMeta); - inv.setItem(10, name); - inv.setItem(13, contact); - inv.setItem(16, texture); + inv.setItem(16, contact); return inv; } diff --git a/src/main/java/eu/univento/teamvento/utils/Plot.java b/src/main/java/eu/univento/teamvento/utils/Plot.java index 4e83f76..97d7a2f 100644 --- a/src/main/java/eu/univento/teamvento/utils/Plot.java +++ b/src/main/java/eu/univento/teamvento/utils/Plot.java @@ -3,18 +3,20 @@ package eu.univento.teamvento.utils; import com.mongodb.CursorType; import com.mongodb.client.FindIterable; import eu.univento.core.Core; -import eu.univento.core.api.schematic.Cuboid; import eu.univento.core.api.player.CustomPlayer; +import eu.univento.core.api.schematic.Cuboid; import org.bson.Document; -import org.bukkit.*; +import org.bukkit.Bukkit; +import org.bukkit.Chunk; +import org.bukkit.Location; +import org.bukkit.WeatherType; import org.bukkit.block.Biome; import org.bukkit.block.Block; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; -import java.util.*; -import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.Map; +import java.util.UUID; public class Plot { @@ -33,7 +35,7 @@ public class Plot { } public boolean isOwner(CustomPlayer p) { - return p.getUniqueId().toString().equals(owner.toString()); + return p.getUniqueId().equals(owner); } public Cuboid getArea() { @@ -102,14 +104,6 @@ public class Plot { return !getContact().equals(""); } - public void setResourcePack(ResourcePack pack) { - setInDatabase("pack", pack.name()); - } - - public ResourcePack getResourcePack() { - return ResourcePack.valueOf(getStringFromDatabase("pack")); - } - public void setReady() { setInDatabase("ready", true); } @@ -118,55 +112,6 @@ public class Plot { return (boolean) getObjectFromDatbase("ready"); } - public void addAnimal(Entity animal) { - Map map = new HashMap<>(); - map.put("type", animal.getType().name()); - map.put("X", String.valueOf(animal.getLocation().getX())); - map.put("Y", String.valueOf(animal.getLocation().getY())); - map.put("Z", String.valueOf(animal.getLocation().getZ())); - ArrayList> animals = (ArrayList>) getObjectFromDatbase("animals"); - animals.add(map); - setInDatabase(animals); - } - - public void removeAnimal(Entity animal) { - Map animals = getAnimalsMap(); - - //ArrayList> animals = (ArrayList>) getObjectFromDatbase("animals"); - if(animals.containsKey(animal.getLocation())) { - Map map = new HashMap<>(); - map.put("type", animal.getType().name()); - map.put("X", String.valueOf(animal.getLocation().getX())); - map.put("Y", String.valueOf(animal.getLocation().getY())); - map.put("Z", String.valueOf(animal.getLocation().getZ())); - ArrayList> list = (ArrayList>) getObjectFromDatbase("animals"); - list.remove(map); - setInDatabase(list); - } - } - - public ArrayList getAnimals() { - ArrayList animals = new ArrayList<>(); - Map map = getAnimalsMap(); - for(Map.Entry entry : map.entrySet()) - animals.addAll(Bukkit.getWorld("plots").getLivingEntities().stream().filter(entity -> entity.getLocation().equals(entry.getKey())).collect(Collectors.toList())); - return animals; - } - - private Map getAnimalsMap() { - Map map = new HashMap<>(); - ArrayList> list = (ArrayList>) getObjectFromDatbase("animals"); - assert list != null; - for(Map stringlist : list) { - double x = Double.parseDouble(stringlist.get("X")); - double y = Double.parseDouble(stringlist.get("Y")); - double z = Double.parseDouble(stringlist.get("Z")); - Location loc = new Location(Bukkit.getWorld("plots"), x, y , z); - map.put(loc, EntityType.valueOf(String.valueOf(stringlist.get("type")))); - } - return map; - } - public WeatherType getWeatherType() { if(getWeather() == Weather.THUNDER) return WeatherType.DOWNFALL; return WeatherType.valueOf(getWeather().name()); diff --git a/src/main/java/eu/univento/teamvento/utils/PlotAction.java b/src/main/java/eu/univento/teamvento/utils/PlotAction.java new file mode 100644 index 0000000..74d5406 --- /dev/null +++ b/src/main/java/eu/univento/teamvento/utils/PlotAction.java @@ -0,0 +1,69 @@ +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; + +/** + * @author joethei + * @version 0.1 + */ + +interface PlotAction { + + void execute(); + + + class Create implements PlotAction{ + + Create(CustomPlayer player) { + this.player = player; + } + + CustomPlayer player; + + @Override + public void execute() { + Plot plot = PlotManager.getPlotPosition(player); + PlotManager.addPlotToDatabase(plot); + PlotManager.generatePlot(plot); + 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); + Hologram holo = new Hologram(new String[]{"§eZu deinem Plot teleportieren", "|", "|", "▼"}, Config.readLocation("Build.Locs.Holo")); + holo.showPlayer(player); + + } + } + class Reset implements PlotAction { + + Reset(Plot plot) { + this.plot = plot; + } + + Plot plot; + + @Override + public void execute() { + PlotManager.clearPlot(plot); + Bukkit.getScheduler().scheduleSyncDelayedTask(TeamVento.getInstance(), () -> PlotManager.generatePlot(plot), 13 * 20L); + } + } + + @AllArgsConstructor + class SetFloor implements PlotAction{ + + Plot plot; + + @Override + public void execute() { + + } + } + } \ No newline at end of file diff --git a/src/main/java/eu/univento/teamvento/utils/PlotManager.java b/src/main/java/eu/univento/teamvento/utils/PlotManager.java index 49ac439..c0d2248 100644 --- a/src/main/java/eu/univento/teamvento/utils/PlotManager.java +++ b/src/main/java/eu/univento/teamvento/utils/PlotManager.java @@ -3,22 +3,26 @@ package eu.univento.teamvento.utils; import com.mongodb.BasicDBObject; import com.mongodb.CursorType; import com.mongodb.client.FindIterable; +import eu.univento.commons.player.Rank; import eu.univento.core.Core; -import eu.univento.core.api.schematic.Cuboid; import eu.univento.core.api.player.CustomPlayer; +import eu.univento.core.api.schematic.Cuboid; import eu.univento.teamvento.TeamVento; import org.bson.Document; -import org.bukkit.*; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import java.util.*; +import java.util.concurrent.LinkedBlockingDeque; public class PlotManager { - private static boolean reset = false; + private static Queue queue = new LinkedBlockingDeque<>(); private static final ArrayList plots = new ArrayList<>(); private static Plot lastPlot; @@ -56,17 +60,24 @@ public class PlotManager { return getPlotByPlayer(p) != null; } - public static void clearPlot(Plot plot) { - CustomPlayer p = CustomPlayer.getPlayer(plot.getOwner()); - assert p != null; - if (reset) { - p.sendMessage("§cEs wird bereits grade ein Plot bearbeitet."); - p.sendMessage("§cBitte versuche es später noch einmal."); - return; + public static void createPlot(CustomPlayer p) { + if(queue.isEmpty()) { + new PlotAction.Create(p).execute(); + }else { + queue.offer(new PlotAction.Create(p)); + p.sendMessage("Du wurdest zu Warteschlange hinzugefügt: " + queue.size()); } - reset = true; + } - plot.getAnimals().forEach(plot::removeAnimal); + public static void resetPlot(Plot plot) { + if(queue.isEmpty()) { + new PlotAction.Reset(plot).execute(); + }else { + queue.offer(new PlotAction.Reset(plot)); + } + } + + static void clearPlot(Plot plot) { Cuboid area = plot.getArea(); Location lower = new Location(Bukkit.getWorld("plots"), area.getLowerX(), area.getLowerY() + 17.0D, area.getLowerZ()); @@ -104,10 +115,9 @@ public class PlotManager { Bukkit.getScheduler().scheduleSyncDelayedTask(TeamVento.getInstance(), () -> b.setType(Material.AIR), i / 200); } }); - Bukkit.getScheduler().runTaskLaterAsynchronously(TeamVento.getInstance(), () -> reset = false, 13 * 20L); } - public static void generatePlot(Plot plot) { + static void generatePlot(Plot plot) { lastPlot = plot; Cuboid area = plot.getArea(); Location lower = new Location(Bukkit.getWorld("plots"), area.getLowerX(), area.getLowerY() + 17.0D, area.getLowerZ()); @@ -224,9 +234,11 @@ public class PlotManager { menu.setItemMeta(menuMeta); Bukkit.getPlayer(plot.getOwner()).getInventory().setItem(8, menu); }, 35 * 20L)); + + if(!queue.isEmpty()) queue.peek().execute(); } - public static Plot createPlot(CustomPlayer p) { + static Plot getPlotPosition(CustomPlayer p) { if (lastPlot == null) { Bukkit.broadcastMessage("Erstes Plot"); Location lower = new Location(Bukkit.getWorld("plots"), Bukkit.getWorld("plots").getSpawnLocation().getX(), Bukkit.getWorld("plots").getSpawnLocation().getY() - 20.0D, Bukkit.getWorld("plots").getSpawnLocation().getZ()); @@ -247,90 +259,90 @@ public class PlotManager { north.getBlock().setType(Material.STONE); south.getBlock().setType(Material.ACACIA_STAIRS); - Plot westPlot = getPlotByLocation(west); - Plot eastPlot = getPlotByLocation(east); - Plot northPlot = getPlotByLocation(north); - Plot southPlot = getPlotByLocation(south); + boolean westPlot = getPlotByLocation(west) != null; + boolean eastPlot = getPlotByLocation(east) != null; + boolean northPlot = getPlotByLocation(north) != null; + boolean southPlot = getPlotByLocation(south) != null; - if (westPlot == null && eastPlot == null && northPlot == null && southPlot == null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Westen"); upper.setX(upper.getX() + 55); lower.setX(lower.getX() + 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot == null && eastPlot != null && northPlot == null && southPlot == null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Norden"); upper.setZ(upper.getZ() - 55); lower.setZ(lower.getZ() - 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot == null && eastPlot == null && northPlot == null && southPlot != null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Osten"); upper.setX(upper.getX() - 55); lower.setX(lower.getX() - 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot != null && eastPlot == null && northPlot == null && southPlot != null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Osten 2"); upper.setX(upper.getX() - 55); lower.setX(lower.getX() - 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot != null && eastPlot == null && northPlot == null && southPlot == null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Süden"); upper.setZ(upper.getZ() + 55); lower.setZ(lower.getZ() + 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot != null && eastPlot == null && northPlot != null && southPlot == null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Süden 2"); upper.setZ(upper.getZ() + 55); lower.setZ(upper.getZ() + 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot == null && eastPlot == null && northPlot != null && southPlot == null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Westen 2"); upper.setX(upper.getX() + 55); lower.setX(lower.getX() + 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot == null && eastPlot != null && northPlot == null && southPlot == null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Norden 2"); upper.setZ(upper.getZ() - 55); lower.setZ(lower.getZ() - 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot == null && eastPlot != null && northPlot == null && southPlot != null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Norden 3"); upper.setZ(upper.getZ() - 55); lower.setZ(lower.getZ() - 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot == null && eastPlot == null && northPlot == null && southPlot != null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Osten 3"); upper.setX(upper.getX() - 55); lower.setX(lower.getX() - 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot != null && eastPlot == null && northPlot == null && southPlot != null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Osten 4"); upper.setX(upper.getX() - 55); lower.setX(lower.getX() - 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot != null && eastPlot == null && northPlot == null && southPlot != null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Süden 3"); upper.setZ(upper.getZ() + 55); lower.setZ(lower.getZ() + 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot == null && eastPlot == null && northPlot != null && southPlot == null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Westen 3"); upper.setX(upper.getX() + 55); lower.setX(lower.getX() + 55); return getPlot(p.getUniqueId(), upper, lower); } - if (westPlot == null && eastPlot != null && northPlot != null && southPlot == null) { + if (westPlot && eastPlot && northPlot && southPlot) { Bukkit.broadcastMessage("Plot im Westen 4"); upper.setX(upper.getX() + 55); lower.setX(lower.getX() + 55); @@ -348,7 +360,7 @@ public class PlotManager { return plot; } - public static void createPlot(Plot plot) { + static void addPlotToDatabase(Plot plot) { Document doc = new Document("uuid", plot.getOwner().toString()); Date date = new Date(); @@ -367,16 +379,13 @@ public class PlotManager { spawn.put("Y", plot.getSpawn().getY()); spawn.put("Z", plot.getSpawn().getZ()); - ArrayList> animals = new ArrayList<>(); - 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", "DAY"); - doc.put("weather", "CLEAR"); - doc.put("biome", "PLAINS"); - doc.put("pack", "DEFAULT"); + 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); @@ -386,16 +395,14 @@ public class PlotManager { } public static Plot getPlotByLocation(Location location) { - for (Plot plot : plots) { + for (Plot plot : plots) if (plot.isInPlot(location)) return plot; - } return null; } public static Plot getPlotByOwner(String owner) { - for (Plot plot : plots) { + for (Plot plot : plots) if (plot.getOwner().equals(UUID.fromString(owner))) return plot; - } return null; } @@ -408,6 +415,42 @@ 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; + Plot plot = getPlotByLocation(loc); + return plot != null && plot.isOwner(p); + }else { + return true; + } + } private static Date getDateFromDatabase(String uuid) { FindIterable cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", uuid)); diff --git a/src/main/java/eu/univento/teamvento/utils/ResourcePack.java b/src/main/java/eu/univento/teamvento/utils/ResourcePack.java deleted file mode 100644 index 7ffe1b9..0000000 --- a/src/main/java/eu/univento/teamvento/utils/ResourcePack.java +++ /dev/null @@ -1,48 +0,0 @@ -package eu.univento.teamvento.utils; - -import org.bukkit.Material; - -/** - * @author joethei - * @version 0.1 - */ -public enum ResourcePack { - - //FIXME: sends empty resource packs - DEFAULT("§eDefault", Material.DIRT, ""), - PURE_BD_CRAFT("§ePureBDCraft", Material.GLOWSTONE, "http://bdcraft.net/download/?z=PureBDcraft%20%2016x%20MC110&dl=bdcee96e7a816b6eb3ebda4549acd222641"), - FAITHFUL("§eFaithful", Material.WOOD, "http://mods.curse.com/texture-packs/minecraft/236821-faithful-1-10/2310424#"), - CHROMA_HILLS("§eChroma Hills", Material.SAND, "http://chromahills.com/zipfiles/ChromaHills128x-1.9-v.1.zip"), - DOKUCRAFT("§eDokucraft", Material.BRICK, "https://www.dokucraft.co.uk/dl/1.9-Dokucraft-TSC-Light.zip"), - SOARTEX_FANVER("§eSoartex Fanver", Material.MOSSY_COBBLESTONE, "http://mods.curse.com/texture-packs/minecraft/soartex-fanver-vanilla/2311293#"), - DANDELION("§eDandelion", Material.YELLOW_FLOWER, "http://www.mediafire.com/download/7mmk531lf41f7ex/Dandelion+v1.8.1.zip"); - - private final String name; - private final Material material; - private final String url; - - ResourcePack(String name, Material material, String url) { - this.name = name; - this.material = material; - this.url = url; - } - - public static ResourcePack valueOf(Material material) { - for(ResourcePack pack : values()) { - if(material == pack.getMaterial()) return pack; - } - return null; - } - - public String getName() { - return name; - } - - public Material getMaterial() { - return material; - } - - public String getUrl() { - return url; - } -} \ No newline at end of file