From adc2d980f45269f3d666432bea1488d088e42037 Mon Sep 17 00:00:00 2001 From: dordsor21 Date: Wed, 19 Dec 2018 23:49:35 +0000 Subject: [PATCH] Clean up listeners for legacy versions --- .../plotsquared/bukkit/BukkitMain.java | 33 --- .../bukkit/generator/BukkitPlotGenerator.java | 2 +- .../bukkit/listeners/EntityPortal_1_7_9.java | 95 ------- .../bukkit/listeners/EntitySpawnListener.java | 83 +++++- .../bukkit/listeners/PlayerEvents.java | 260 ++++++++++++++---- .../bukkit/listeners/PlayerEvents183.java | 45 --- .../bukkit/listeners/PlayerEvents_1_8.java | 184 ------------- .../bukkit/listeners/PlayerEvents_1_9.java | 31 --- .../bukkit/listeners/PlotPlusListener.java | 18 ++ .../listeners/PlotPlusListener_1_12.java | 32 --- .../listeners/PlotPlusListener_Legacy.java | 28 -- .../entity/ReplicatingEntityWrapper.java | 75 ++--- .../titles/DefaultTitleManager_183.java | 73 ----- .../bukkit/titles/DefaultTitle_111.java | 25 +- .../bukkit/titles/DefaultTitle_180.java | 19 -- .../bukkit/titles/DefaultTitle_183.java | 19 -- .../bukkit/titles/DefaultTitle_19.java | 26 -- .../plotsquared/bukkit/util/BukkitUtil.java | 1 + .../bukkit/util/BukkitVersion.java | 14 +- .../plotsquared/bukkit/util/SendChunk.java | 33 +-- 20 files changed, 347 insertions(+), 749 deletions(-) delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/EntityPortal_1_7_9.java delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents183.java delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_8.java delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_9.java delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener_1_12.java delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener_Legacy.java delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitleManager_183.java delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_180.java delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_183.java delete mode 100644 Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_19.java diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/BukkitMain.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/BukkitMain.java index 70e3301ce..f7b9239a2 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/BukkitMain.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/BukkitMain.java @@ -576,34 +576,6 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain } catch (final NoSuchMethodException | ClassNotFoundException ignored) { PlotSquared.debug("Not running Spigot. Skipping EntitySpawnListener event."); } - if (PlotSquared.get().checkVersion(getServerVersion(), 1, 7, 9)) { - try { - getServer().getPluginManager().registerEvents(new EntityPortal_1_7_9(), this); - } catch (Throwable e) { - e.printStackTrace(); - } - } - if (PlotSquared.get().checkVersion(getServerVersion(), BukkitVersion.v1_8_0)) { - try { - getServer().getPluginManager().registerEvents(new PlayerEvents_1_8(), this); - } catch (Throwable e) { - e.printStackTrace(); - } - } - if (PlotSquared.get().checkVersion(getServerVersion(), BukkitVersion.v1_8_3)) { - try { - getServer().getPluginManager().registerEvents(new PlayerEvents183(), this); - } catch (Throwable e) { - e.printStackTrace(); - } - } - if (PlotSquared.get().checkVersion(getServerVersion(), BukkitVersion.v1_9_0)) { - try { - getServer().getPluginManager().registerEvents(new PlayerEvents_1_9(main), this); - } catch (Throwable e) { - e.printStackTrace(); - } - } } @Override public void registerInventoryEvents() { @@ -613,11 +585,6 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain @Override public void registerPlotPlusEvents() { PlotPlusListener.startRunnable(this); getServer().getPluginManager().registerEvents(new PlotPlusListener(), this); - if (PlotSquared.get().checkVersion(getServerVersion(), BukkitVersion.v1_12_0)) { - getServer().getPluginManager().registerEvents(new PlotPlusListener_1_12(), this); - } else { - getServer().getPluginManager().registerEvents(new PlotPlusListener_Legacy(), this); - } } @Override public void registerForceFieldEvents() { diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/generator/BukkitPlotGenerator.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/generator/BukkitPlotGenerator.java index fb19c1e93..0d1128fc9 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/generator/BukkitPlotGenerator.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/generator/BukkitPlotGenerator.java @@ -296,7 +296,7 @@ public class BukkitPlotGenerator extends ChunkGenerator ChunkManager.postProcessChunk(result); } - @Override public short[][] generateExtBlockSections(World world, Random r, int cx, int cz, + public short[][] generateExtBlockSections(World world, Random r, int cx, int cz, BiomeGrid grid) { GenChunk result = this.chunkSetter; // Set the chunk location diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/EntityPortal_1_7_9.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/EntityPortal_1_7_9.java deleted file mode 100644 index a168d8069..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/EntityPortal_1_7_9.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.listeners; - -import com.github.intellectualsites.plotsquared.plot.PlotSquared; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.entity.ArmorStand; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Vehicle; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.EntityTeleportEvent; -import org.bukkit.event.vehicle.*; -import org.bukkit.metadata.FixedMetadataValue; -import org.bukkit.metadata.MetadataValue; -import org.bukkit.plugin.Plugin; - -import java.util.List; - -@SuppressWarnings("unused") public class EntityPortal_1_7_9 implements Listener { - private static boolean ignoreTP = false; - - public EntityPortal_1_7_9() { - } - - public static void test(Entity entity) { - List meta = entity.getMetadata("plotworld"); - World world = entity.getLocation().getWorld(); - if (meta == null || meta.isEmpty()) { - if (PlotSquared.get().hasPlotArea(world.getName())) { - entity.setMetadata("plotworld", - new FixedMetadataValue((Plugin) PlotSquared.get().IMP, entity.getLocation())); - } - } else { - Location origin = (Location) meta.get(0).value(); - World originWorld = origin.getWorld(); - if (!originWorld.equals(world)) { - if (!ignoreTP) { - if (!world.getName().equalsIgnoreCase(originWorld + "_the_end")) { - try { - ignoreTP = true; - entity.teleport(origin); - } finally { - ignoreTP = false; - } - if (entity.getLocation().getWorld().equals(world)) { - entity.remove(); - } - } - } else { - entity.remove(); - } - } - } - } - - @EventHandler public void onVehicle(VehicleUpdateEvent event) { - test(event.getVehicle()); - } - - @EventHandler public void onVehicle(VehicleDestroyEvent event) { - test(event.getVehicle()); - } - - @EventHandler public void onVehicle(VehicleEntityCollisionEvent event) { - test(event.getVehicle()); - } - - @EventHandler public void onVehicle(VehicleCreateEvent event) { - test(event.getVehicle()); - } - - @EventHandler public void onVehicle(VehicleBlockCollisionEvent event) { - test(event.getVehicle()); - } - - @EventHandler public void onTeleport(EntityTeleportEvent event) { - Entity ent = event.getEntity(); - if (ent instanceof Vehicle || ent instanceof ArmorStand) - test(event.getEntity()); - } - - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void vehicleMove(VehicleMoveEvent event) throws IllegalAccessException { - test(event.getVehicle()); - } - - @EventHandler public void spawn(CreatureSpawnEvent event) { - switch (event.getEntityType()) { - case ARMOR_STAND: - test(event.getEntity()); - } - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/EntitySpawnListener.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/EntitySpawnListener.java index dc24740c3..8532b2d0e 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/EntitySpawnListener.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/EntitySpawnListener.java @@ -7,16 +7,59 @@ import com.github.intellectualsites.plotsquared.plot.flag.Flags; import com.github.intellectualsites.plotsquared.plot.object.Location; import com.github.intellectualsites.plotsquared.plot.object.Plot; import com.github.intellectualsites.plotsquared.plot.object.PlotArea; +import org.bukkit.World; +import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; +import org.bukkit.entity.Vehicle; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.entity.EntityTeleportEvent; +import org.bukkit.event.vehicle.*; import org.bukkit.metadata.FixedMetadataValue; +import org.bukkit.metadata.MetadataValue; import org.bukkit.plugin.Plugin; -@SuppressWarnings("unused") public class EntitySpawnListener implements Listener { +import java.util.List; + +public class EntitySpawnListener implements Listener { + + private static boolean ignoreTP = false; + + public static void test(Entity entity) { + List meta = entity.getMetadata("plotworld"); + World world = entity.getLocation().getWorld(); + if (meta == null || meta.isEmpty()) { + if (PlotSquared.get().hasPlotArea(world.getName())) { + entity.setMetadata("plotworld", + new FixedMetadataValue((Plugin) PlotSquared.get().IMP, entity.getLocation())); + } + } else { + org.bukkit.Location origin = (org.bukkit.Location) meta.get(0).value(); + World originWorld = origin.getWorld(); + if (!originWorld.equals(world)) { + if (!ignoreTP) { + if (!world.getName().equalsIgnoreCase(originWorld + "_the_end")) { + try { + ignoreTP = true; + entity.teleport(origin); + } finally { + ignoreTP = false; + } + if (entity.getLocation().getWorld().equals(world)) { + entity.remove(); + } + } + } else { + entity.remove(); + } + } + } + } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void creatureSpawnEvent(EntitySpawnEvent event) { Entity entity = event.getEntity(); @@ -58,4 +101,42 @@ import org.bukkit.plugin.Plugin; } } } + + @EventHandler public void onVehicle(VehicleUpdateEvent event) { + test(event.getVehicle()); + } + + @EventHandler public void onVehicle(VehicleDestroyEvent event) { + test(event.getVehicle()); + } + + @EventHandler public void onVehicle(VehicleEntityCollisionEvent event) { + test(event.getVehicle()); + } + + @EventHandler public void onVehicle(VehicleCreateEvent event) { + test(event.getVehicle()); + } + + @EventHandler public void onVehicle(VehicleBlockCollisionEvent event) { + test(event.getVehicle()); + } + + @EventHandler public void onTeleport(EntityTeleportEvent event) { + Entity ent = event.getEntity(); + if (ent instanceof Vehicle || ent instanceof ArmorStand) + test(event.getEntity()); + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void vehicleMove(VehicleMoveEvent event) throws IllegalAccessException { + test(event.getVehicle()); + } + + @EventHandler public void spawn(CreatureSpawnEvent event) { + switch (event.getEntityType()) { + case ARMOR_STAND: + test(event.getEntity()); + } + } } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents.java index 41b8ec34f..0d875a701 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents.java @@ -4,7 +4,6 @@ import com.github.intellectualsites.plotsquared.bukkit.BukkitMain; import com.github.intellectualsites.plotsquared.bukkit.object.BukkitLazyBlock; import com.github.intellectualsites.plotsquared.bukkit.object.BukkitPlayer; import com.github.intellectualsites.plotsquared.bukkit.util.BukkitUtil; -import com.github.intellectualsites.plotsquared.bukkit.util.BukkitVersion; import com.github.intellectualsites.plotsquared.plot.PlotSquared; import com.github.intellectualsites.plotsquared.plot.config.C; import com.github.intellectualsites.plotsquared.plot.config.Settings; @@ -30,6 +29,7 @@ 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.InventoryCloseEvent; import org.bukkit.event.player.*; @@ -39,6 +39,8 @@ import org.bukkit.event.vehicle.VehicleMoveEvent; import org.bukkit.event.world.StructureGrowEvent; import org.bukkit.help.HelpTopic; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.PlayerInventory; +import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.MetadataValue; import org.bukkit.plugin.Plugin; @@ -46,9 +48,7 @@ import org.bukkit.projectiles.BlockProjectileSource; import org.bukkit.projectiles.ProjectileSource; import org.bukkit.util.Vector; -import java.lang.reflect.Constructor; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.util.*; import java.util.Map.Entry; import java.util.regex.Pattern; @@ -64,8 +64,6 @@ import java.util.regex.Pattern; private boolean tmpTeleport = true; private Field fieldPlayer; private PlayerMoveEvent moveTmp; - private boolean v112 = - PlotSquared.get().checkVersion(PlotSquared.imp().getServerVersion(), BukkitVersion.v1_12_0); { try { @@ -646,11 +644,7 @@ import java.util.regex.Pattern; moveTmp.setCancelled(false); fieldPlayer.set(moveTmp, player); - List passengers; - if (v112) - passengers = vehicle.getPassengers(); - else - passengers = null; + List passengers = vehicle.getPassengers(); this.playerMove(moveTmp); org.bukkit.Location dest; @@ -945,9 +939,8 @@ import java.util.regex.Pattern; return; } if (PlotSquared.get().worldedit != null && pp.getAttribute("worldedit")) { - if (player.getInventory().getItemInMainHand().getType() == LegacyMappings - .fromLegacyId(PlotSquared.get().worldedit.getConfiguration().wandItem) - .getMaterial()) { + if (player.getInventory().getItemInMainHand().getType() == Material + .getMaterial(PlotSquared.get().worldedit.getConfiguration().wandItem)) { return; } } @@ -1489,6 +1482,205 @@ import java.util.regex.Pattern; } } + @SuppressWarnings("deprecation") + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onInventoryClick(InventoryClickEvent event) { + if (!event.isLeftClick() || (event.getAction() != InventoryAction.PLACE_ALL) || event + .isShiftClick()) { + return; + } + HumanEntity entity = event.getWhoClicked(); + if (!(entity instanceof Player) || !PlotSquared.get() + .hasPlotArea(entity.getWorld().getName())) { + return; + } + + HumanEntity clicker = event.getWhoClicked(); + if (!(clicker instanceof Player)) { + return; + } + Player player = (Player) clicker; + PlotPlayer pp = BukkitUtil.getPlayer(player); + PlotInventory inventory = pp.getMeta("inventory"); + if (inventory != null && event.getRawSlot() == event.getSlot()) { + if (!inventory.onClick(event.getSlot())) { + event.setCancelled(true); + inventory.close(); + } + } + PlayerInventory inv = player.getInventory(); + int slot = inv.getHeldItemSlot(); + if ((slot > 8) || !event.getEventName().equals("InventoryCreativeEvent")) { + return; + } + ItemStack current = inv.getItemInHand(); + ItemStack newItem = event.getCursor(); + ItemMeta newMeta = newItem.getItemMeta(); + ItemMeta oldMeta = newItem.getItemMeta(); + String newLore = ""; + if (newMeta != null) { + List lore = newMeta.getLore(); + if (lore != null) { + newLore = lore.toString(); + } + } + String oldLore = ""; + if (oldMeta != null) { + List lore = oldMeta.getLore(); + if (lore != null) { + oldLore = lore.toString(); + } + } + if (!"[(+NBT)]".equals(newLore) || (current.equals(newItem) && newLore.equals(oldLore))) { + switch (newItem.getType()) { + case LEGACY_BANNER: + case PLAYER_HEAD: + if (newMeta != null) + break; + default: + return; + } + } + + HashSet blocks = null; + Block block = player.getTargetBlock(blocks, 7); + BlockState state = block.getState(); + if (state == null) { + return; + } + Material stateType = state.getType(); + Material itemType = newItem.getType(); + if (stateType != itemType) { + switch (stateType) { + case LEGACY_STANDING_BANNER: + case LEGACY_WALL_BANNER: + if (itemType == Material.LEGACY_BANNER) + break; + case LEGACY_SKULL: + if (itemType == Material.LEGACY_SKULL_ITEM) + break; + default: + return; + } + } + Location l = BukkitUtil.getLocation(state.getLocation()); + PlotArea area = l.getPlotArea(); + if (area == null) { + return; + } + Plot plot = area.getPlotAbs(l); + boolean cancelled = false; + if (plot == null) { + if (!Permissions.hasPermission(pp, "plots.admin.interact.road")) { + MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.road"); + cancelled = true; + } + } else if (!plot.hasOwner()) { + if (!Permissions.hasPermission(pp, "plots.admin.interact.unowned")) { + MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.unowned"); + cancelled = true; + } + } else { + UUID uuid = pp.getUUID(); + if (!plot.isAdded(uuid)) { + if (!Permissions.hasPermission(pp, "plots.admin.interact.other")) { + MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.other"); + cancelled = true; + } + } + } + if (cancelled) { + if ((current.getType() == newItem.getType()) && (current.getDurability() == newItem + .getDurability())) { + event.setCursor( + new ItemStack(newItem.getType(), newItem.getAmount(), newItem.getDurability())); + event.setCancelled(true); + return; + } + event.setCursor( + new ItemStack(newItem.getType(), newItem.getAmount(), newItem.getDurability())); + } + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onPotionSplash(LingeringPotionSplashEvent event) { + LingeringPotion entity = event.getEntity(); + Location l = BukkitUtil.getLocation(entity); + if (!PlotSquared.get().hasPlotArea(l.getWorld())) { + return; + } + if (!this.onProjectileHit(event)) { + event.setCancelled(true); + } + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onInteract(PlayerInteractAtEntityEvent e) { + Entity entity = e.getRightClicked(); + if (!(entity instanceof ArmorStand)) { + return; + } + Location l = BukkitUtil.getLocation(e.getRightClicked().getLocation()); + PlotArea area = l.getPlotArea(); + if (area == null) { + return; + } + + EntitySpawnListener.test(entity); + + Plot plot = area.getPlotAbs(l); + PlotPlayer pp = BukkitUtil.getPlayer(e.getPlayer()); + if (plot == null) { + if (!Permissions.hasPermission(pp, "plots.admin.interact.road")) { + MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.road"); + e.setCancelled(true); + } + } else if (!plot.hasOwner()) { + if (!Permissions.hasPermission(pp, "plots.admin.interact.unowned")) { + MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.unowned"); + e.setCancelled(true); + } + } else { + UUID uuid = pp.getUUID(); + if (!plot.isAdded(uuid)) { + if (Flags.MISC_INTERACT.isTrue(plot)) { + return; + } + if (!Permissions.hasPermission(pp, "plots.admin.interact.other")) { + MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.other"); + e.setCancelled(true); + } + } + } + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBigBoom(BlockExplodeEvent event) { + Block block = event.getBlock(); + Location location = BukkitUtil.getLocation(block.getLocation()); + String world = location.getWorld(); + if (!PlotSquared.get().hasPlotArea(world)) { + return; + } + PlotArea area = location.getPlotArea(); + if (area == null) { + Iterator iterator = event.blockList().iterator(); + while (iterator.hasNext()) { + location = BukkitUtil.getLocation(iterator.next().getLocation()); + if (location.getPlotArea() != null) { + iterator.remove(); + } + } + return; + } + Plot plot = area.getOwnedPlot(location); + if (plot == null || !plot.getFlag(Flags.EXPLOSION).or(false)) { + event.setCancelled(true); + } + event.blockList().removeIf( + b -> !plot.equals(area.getOwnedPlot(BukkitUtil.getLocation(b.getLocation())))); + } + @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onInteract(PlayerInteractEvent event) { Player player = event.getPlayer(); @@ -1682,9 +1874,8 @@ import java.util.regex.Pattern; return; } if (PlotSquared.get().worldedit != null && pp.getAttribute("worldedit")) { - if (player.getInventory().getItemInMainHand().getType() == LegacyMappings - .fromLegacyId(PlotSquared.get().worldedit.getConfiguration().wandItem) - .getMaterial()) { + if (player.getInventory().getItemInMainHand().getType() == Material + .getMaterial(PlotSquared.get().worldedit.getConfiguration().wandItem)) { return; } } @@ -1933,23 +2124,6 @@ import java.util.regex.Pattern; } } - @EventHandler(priority = EventPriority.HIGHEST) - public void onInventoryClick(InventoryClickEvent event) { - HumanEntity clicker = event.getWhoClicked(); - if (!(clicker instanceof Player)) { - return; - } - Player player = (Player) clicker; - PlotPlayer pp = BukkitUtil.getPlayer(player); - PlotInventory inventory = pp.getMeta("inventory"); - if (inventory != null && event.getRawSlot() == event.getSlot()) { - if (!inventory.onClick(event.getSlot())) { - event.setCancelled(true); - inventory.close(); - } - } - } - @EventHandler(priority = EventPriority.HIGHEST) public void onInventoryClose(InventoryCloseEvent event) { HumanEntity closer = event.getPlayer(); @@ -2253,24 +2427,8 @@ import java.util.regex.Pattern; @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.HIGHEST) public void onEntityCombustByEntity(EntityCombustByEntityEvent event) { EntityDamageByEntityEvent eventChange = null; - if (PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_11_0)) { - eventChange = new EntityDamageByEntityEvent(event.getCombuster(), event.getEntity(), - EntityDamageEvent.DamageCause.FIRE_TICK, (double) event.getDuration()); - } else { - try { - Constructor constructor = EntityDamageByEntityEvent.class - .getConstructor(Entity.class, Entity.class, EntityDamageEvent.DamageCause.class, - Integer.TYPE); - eventChange = constructor.newInstance(event.getCombuster(), event.getEntity(), - EntityDamageEvent.DamageCause.FIRE_TICK, event.getDuration()); - } catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { - e.printStackTrace(); - } - } - if (eventChange == null) { - return; - } + eventChange = new EntityDamageByEntityEvent(event.getCombuster(), event.getEntity(), + EntityDamageEvent.DamageCause.FIRE_TICK, (double) event.getDuration()); onEntityDamageByEntityEvent(eventChange); if (eventChange.isCancelled()) { event.setCancelled(true); diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents183.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents183.java deleted file mode 100644 index 4b3b83045..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents183.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.listeners; - -import com.github.intellectualsites.plotsquared.bukkit.util.BukkitUtil; -import com.github.intellectualsites.plotsquared.plot.PlotSquared; -import com.github.intellectualsites.plotsquared.plot.flag.Flags; -import com.github.intellectualsites.plotsquared.plot.object.Location; -import com.github.intellectualsites.plotsquared.plot.object.Plot; -import com.github.intellectualsites.plotsquared.plot.object.PlotArea; -import org.bukkit.block.Block; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.block.BlockExplodeEvent; - -import java.util.Iterator; - -@SuppressWarnings("unused") public class PlayerEvents183 implements Listener { - - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void onBigBoom(BlockExplodeEvent event) { - Block block = event.getBlock(); - Location location = BukkitUtil.getLocation(block.getLocation()); - String world = location.getWorld(); - if (!PlotSquared.get().hasPlotArea(world)) { - return; - } - PlotArea area = location.getPlotArea(); - if (area == null) { - Iterator iterator = event.blockList().iterator(); - while (iterator.hasNext()) { - location = BukkitUtil.getLocation(iterator.next().getLocation()); - if (location.getPlotArea() != null) { - iterator.remove(); - } - } - return; - } - Plot plot = area.getOwnedPlot(location); - if (plot == null || !plot.getFlag(Flags.EXPLOSION).or(false)) { - event.setCancelled(true); - } - event.blockList().removeIf( - b -> !plot.equals(area.getOwnedPlot(BukkitUtil.getLocation(b.getLocation())))); - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_8.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_8.java deleted file mode 100644 index a8757ab97..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_8.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.listeners; - -import com.github.intellectualsites.plotsquared.bukkit.util.BukkitUtil; -import com.github.intellectualsites.plotsquared.plot.PlotSquared; -import com.github.intellectualsites.plotsquared.plot.config.C; -import com.github.intellectualsites.plotsquared.plot.flag.Flags; -import com.github.intellectualsites.plotsquared.plot.listener.PlotListener; -import com.github.intellectualsites.plotsquared.plot.object.Location; -import com.github.intellectualsites.plotsquared.plot.object.Plot; -import com.github.intellectualsites.plotsquared.plot.object.PlotArea; -import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; -import com.github.intellectualsites.plotsquared.plot.util.MainUtil; -import com.github.intellectualsites.plotsquared.plot.util.Permissions; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.entity.ArmorStand; -import org.bukkit.entity.Entity; -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryAction; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.PlayerInventory; -import org.bukkit.inventory.meta.ItemMeta; - -import java.util.HashSet; -import java.util.List; -import java.util.UUID; - -@SuppressWarnings("unused") public class PlayerEvents_1_8 extends PlotListener implements Listener { - - @SuppressWarnings("deprecation") - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void onInventoryClick(InventoryClickEvent event) { - if (!event.isLeftClick() || (event.getAction() != InventoryAction.PLACE_ALL) || event - .isShiftClick()) { - return; - } - HumanEntity entity = event.getWhoClicked(); - if (!(entity instanceof Player) || !PlotSquared.get() - .hasPlotArea(entity.getWorld().getName())) { - return; - } - Player player = (Player) entity; - PlayerInventory inv = player.getInventory(); - int slot = inv.getHeldItemSlot(); - if ((slot > 8) || !event.getEventName().equals("InventoryCreativeEvent")) { - return; - } - ItemStack current = inv.getItemInHand(); - ItemStack newItem = event.getCursor(); - ItemMeta newMeta = newItem.getItemMeta(); - ItemMeta oldMeta = newItem.getItemMeta(); - String newLore = ""; - if (newMeta != null) { - List lore = newMeta.getLore(); - if (lore != null) { - newLore = lore.toString(); - } - } - String oldLore = ""; - if (oldMeta != null) { - List lore = oldMeta.getLore(); - if (lore != null) { - oldLore = lore.toString(); - } - } - if (!"[(+NBT)]".equals(newLore) || (current.equals(newItem) && newLore.equals(oldLore))) { - switch (newItem.getType()) { - case LEGACY_BANNER: - case PLAYER_HEAD: - if (newMeta != null) - break; - default: - return; - } - } - - HashSet blocks = null; - Block block = player.getTargetBlock(blocks, 7); - BlockState state = block.getState(); - if (state == null) { - return; - } - Material stateType = state.getType(); - Material itemType = newItem.getType(); - if (stateType != itemType) { - switch (stateType) { - case LEGACY_STANDING_BANNER: - case LEGACY_WALL_BANNER: - if (itemType == Material.LEGACY_BANNER) - break; - case LEGACY_SKULL: - if (itemType == Material.LEGACY_SKULL_ITEM) - break; - default: - return; - } - } - Location l = BukkitUtil.getLocation(state.getLocation()); - PlotArea area = l.getPlotArea(); - if (area == null) { - return; - } - Plot plot = area.getPlotAbs(l); - PlotPlayer pp = BukkitUtil.getPlayer(player); - boolean cancelled = false; - if (plot == null) { - if (!Permissions.hasPermission(pp, "plots.admin.interact.road")) { - MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.road"); - cancelled = true; - } - } else if (!plot.hasOwner()) { - if (!Permissions.hasPermission(pp, "plots.admin.interact.unowned")) { - MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.unowned"); - cancelled = true; - } - } else { - UUID uuid = pp.getUUID(); - if (!plot.isAdded(uuid)) { - if (!Permissions.hasPermission(pp, "plots.admin.interact.other")) { - MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.other"); - cancelled = true; - } - } - } - if (cancelled) { - if ((current.getType() == newItem.getType()) && (current.getDurability() == newItem - .getDurability())) { - event.setCursor( - new ItemStack(newItem.getType(), newItem.getAmount(), newItem.getDurability())); - event.setCancelled(true); - return; - } - event.setCursor( - new ItemStack(newItem.getType(), newItem.getAmount(), newItem.getDurability())); - } - } - - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void onInteract(PlayerInteractAtEntityEvent e) { - Entity entity = e.getRightClicked(); - if (!(entity instanceof ArmorStand)) { - return; - } - Location l = BukkitUtil.getLocation(e.getRightClicked().getLocation()); - PlotArea area = l.getPlotArea(); - if (area == null) { - return; - } - - EntityPortal_1_7_9.test(entity); - - Plot plot = area.getPlotAbs(l); - PlotPlayer pp = BukkitUtil.getPlayer(e.getPlayer()); - if (plot == null) { - if (!Permissions.hasPermission(pp, "plots.admin.interact.road")) { - MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.road"); - e.setCancelled(true); - } - } else if (!plot.hasOwner()) { - if (!Permissions.hasPermission(pp, "plots.admin.interact.unowned")) { - MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.unowned"); - e.setCancelled(true); - } - } else { - UUID uuid = pp.getUUID(); - if (!plot.isAdded(uuid)) { - if (Flags.MISC_INTERACT.isTrue(plot)) { - return; - } - if (!Permissions.hasPermission(pp, "plots.admin.interact.other")) { - MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, "plots.admin.interact.other"); - e.setCancelled(true); - } - } - } - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_9.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_9.java deleted file mode 100644 index 51c64ea42..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_9.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.listeners; - -import com.github.intellectualsites.plotsquared.bukkit.util.BukkitUtil; -import com.github.intellectualsites.plotsquared.plot.PlotSquared; -import com.github.intellectualsites.plotsquared.plot.object.Location; -import org.bukkit.entity.LingeringPotion; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.LingeringPotionSplashEvent; - -@SuppressWarnings("unused") public class PlayerEvents_1_9 implements Listener { - - private final PlayerEvents parent; - - public PlayerEvents_1_9(PlayerEvents parent) { - this.parent = parent; - } - - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void onPotionSplash(LingeringPotionSplashEvent event) { - LingeringPotion entity = event.getEntity(); - Location l = BukkitUtil.getLocation(entity); - if (!PlotSquared.get().hasPlotArea(l.getWorld())) { - return; - } - if (!parent.onProjectileHit(event)) { - event.setCancelled(true); - } - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener.java index 0daeeb26f..ac6641832 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener.java @@ -12,6 +12,7 @@ import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.block.Block; import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -19,6 +20,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityPickupItemEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; @@ -162,6 +164,22 @@ import java.util.UUID; healRunnable.remove(name); } + @EventHandler public void onItemPickup(EntityPickupItemEvent event) { + LivingEntity ent = event.getEntity(); + if (ent instanceof Player) { + Player player = (Player) ent; + PlotPlayer pp = BukkitUtil.getPlayer(player); + Plot plot = BukkitUtil.getLocation(player).getOwnedPlot(); + if (plot == null) { + return; + } + UUID uuid = pp.getUUID(); + if (!plot.isAdded(uuid) && Flags.DROP_PROTECTION.isTrue(plot)) { + event.setCancelled(true); + } + } + } + private static class Interval { final int interval; diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener_1_12.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener_1_12.java deleted file mode 100644 index 007d8b2b3..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener_1_12.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.listeners; - -import com.github.intellectualsites.plotsquared.bukkit.util.BukkitUtil; -import com.github.intellectualsites.plotsquared.plot.flag.Flags; -import com.github.intellectualsites.plotsquared.plot.object.Plot; -import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntityPickupItemEvent; - -import java.util.UUID; - -@SuppressWarnings("unused") public class PlotPlusListener_1_12 implements Listener { - - @EventHandler public void onItemPickup(EntityPickupItemEvent event) { - LivingEntity ent = event.getEntity(); - if (ent instanceof Player) { - Player player = (Player) ent; - PlotPlayer pp = BukkitUtil.getPlayer(player); - Plot plot = BukkitUtil.getLocation(player).getOwnedPlot(); - if (plot == null) { - return; - } - UUID uuid = pp.getUUID(); - if (!plot.isAdded(uuid) && Flags.DROP_PROTECTION.isTrue(plot)) { - event.setCancelled(true); - } - } - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener_Legacy.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener_Legacy.java deleted file mode 100644 index 28215f192..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlotPlusListener_Legacy.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.listeners; - -import com.github.intellectualsites.plotsquared.bukkit.util.BukkitUtil; -import com.github.intellectualsites.plotsquared.plot.flag.Flags; -import com.github.intellectualsites.plotsquared.plot.object.Plot; -import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerPickupItemEvent; - -import java.util.UUID; - -@SuppressWarnings("unused") public class PlotPlusListener_Legacy implements Listener { - - @EventHandler public void onItemPickup(PlayerPickupItemEvent event) { - Player player = event.getPlayer(); - PlotPlayer pp = BukkitUtil.getPlayer(player); - Plot plot = BukkitUtil.getLocation(player).getOwnedPlot(); - if (plot == null) { - return; - } - UUID uuid = pp.getUUID(); - if (!plot.isAdded(uuid) && Flags.DROP_PROTECTION.isTrue(plot)) { - event.setCancelled(true); - } - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/ReplicatingEntityWrapper.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/ReplicatingEntityWrapper.java index 04e9d2f5e..e71373771 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/ReplicatingEntityWrapper.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/ReplicatingEntityWrapper.java @@ -1,6 +1,5 @@ package com.github.intellectualsites.plotsquared.bukkit.object.entity; -import com.github.intellectualsites.plotsquared.bukkit.util.BukkitVersion; import com.github.intellectualsites.plotsquared.plot.PlotSquared; import org.bukkit.*; import org.bukkit.block.BlockFace; @@ -53,21 +52,15 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { if (depth == 1) { return; } - if (PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_10_0) - || entity instanceof ArmorStand) { - if (!entity.hasGravity()) { - this.noGravity = true; - } + if (!entity.hasGravity()) { + this.noGravity = true; } switch (entity.getType()) { - case ARROW: case BOAT: - if (PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) { - Boat boat = (Boat) entity; - this.dataByte = getOrdinal(TreeSpecies.values(), boat.getWoodType()); - } + Boat boat = (Boat) entity; + this.dataByte = getOrdinal(TreeSpecies.values(), boat.getWoodType()); + return; + case ARROW: case COMPLEX_PART: case EGG: case ENDER_CRYSTAL: @@ -103,9 +96,6 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { case AREA_EFFECT_CLOUD: // Do this stuff later return; - default: - PlotSquared.debug("&cCOULD NOT IDENTIFY ENTITY: " + entity.getType()); - return; // MISC // case DROPPED_ITEM: Item item = (Item) entity; @@ -284,6 +274,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { } storeLiving((LivingEntity) entity); // END LIVING // + default: + PlotSquared.debug("&cCOULD NOT IDENTIFY ENTITY: " + entity.getType()); } } @@ -324,13 +316,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { void restoreEquipment(LivingEntity entity) { EntityEquipment equipment = entity.getEquipment(); - if (PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) { - equipment.setItemInMainHand(this.lived.mainHand); - equipment.setItemInOffHand(this.lived.offHand); - } else { - equipment.setItemInHand(this.lived.mainHand); - } + equipment.setItemInMainHand(this.lived.mainHand); + equipment.setItemInOffHand(this.lived.offHand); equipment.setHelmet(this.lived.helmet); equipment.setChestplate(this.lived.chestplate); equipment.setLeggings(this.lived.leggings); @@ -369,14 +356,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { } void storeEquipment(EntityEquipment equipment) { - if (PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) { - this.lived.mainHand = equipment.getItemInMainHand().clone(); - this.lived.offHand = equipment.getItemInOffHand().clone(); - } else { - this.lived.mainHand = equipment.getItemInHand().clone(); - this.lived.offHand = null; - } + this.lived.mainHand = equipment.getItemInMainHand().clone(); + this.lived.offHand = equipment.getItemInOffHand().clone(); this.lived.boots = equipment.getBoots().clone(); this.lived.leggings = equipment.getLeggings().clone(); this.lived.chestplate = equipment.getChestplate().clone(); @@ -461,22 +442,18 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { if (this.depth == 1) { return entity; } - if (PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_10_0) - || entity instanceof ArmorStand) { - if (this.noGravity) { - entity.setGravity(false); - } + if (this.noGravity) { + entity.setGravity(false); } switch (entity.getType()) { - case ARROW: case BOAT: - if (PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) { - Boat boat = (Boat) entity; - boat.setWoodType(TreeSpecies.values()[dataByte]); - } - + Boat boat = (Boat) entity; + boat.setWoodType(TreeSpecies.values()[dataByte]); + return entity; + case SLIME: + ((Slime) entity).setSize(this.dataByte); + return entity; + case ARROW: case COMPLEX_PART: case EGG: case ENDER_CRYSTAL: @@ -496,10 +473,6 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { case MINECART_TNT: case PLAYER: case PRIMED_TNT: - return entity; - case SLIME: - ((Slime) entity).setSize(this.dataByte); - return entity; case SMALL_FIREBALL: case SNOWBALL: case SPLASH_POTION: @@ -516,9 +489,6 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { case UNKNOWN: // Do this stuff later return entity; - default: - PlotSquared.debug("&cCOULD NOT IDENTIFY ENTITY: " + entity.getType()); - return entity; // MISC // case ITEM_FRAME: ItemFrame itemframe = (ItemFrame) entity; @@ -703,6 +673,9 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { } restoreLiving((LivingEntity) entity); return entity; + default: + PlotSquared.debug("&cCOULD NOT IDENTIFY ENTITY: " + entity.getType()); + return entity; // END LIVING } } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitleManager_183.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitleManager_183.java deleted file mode 100644 index 7f9f7aef7..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitleManager_183.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.titles; - -import com.github.intellectualsites.plotsquared.bukkit.chat.Reflection; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import java.lang.reflect.Method; - -public class DefaultTitleManager_183 extends DefaultTitleManager { - - /** - * Create a new 1.8 title. - * - * @param title Title text - * @param subtitle Subtitle text - * @param fadeInTime Fade in time - * @param stayTime Stay on screen time - * @param fadeOutTime Fade out time - */ - DefaultTitleManager_183(String title, String subtitle, int fadeInTime, int stayTime, - int fadeOutTime) { - super(title, subtitle, fadeInTime, stayTime, fadeOutTime); - } - - /** - * Load spigot and NMS classes. - */ - @Override void loadClasses() { - this.packetTitle = Reflection.getNMSClass("PacketPlayOutTitle"); - this.chatBaseComponent = Reflection.getNMSClass("IChatBaseComponent"); - this.packetActions = Reflection.getNMSClass("PacketPlayOutTitle$EnumTitleAction"); - this.nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - } - - @Override public void send(Player player) - throws IllegalArgumentException, ReflectiveOperationException, SecurityException { - if (this.packetTitle != null) { - // First reset previous settings - resetTitle(player); - // Send timings first - Object handle = getHandle(player); - Object connection = getField(handle.getClass(), "playerConnection").get(handle); - Object[] actions = this.packetActions.getEnumConstants(); - Method sendPacket = getMethod(connection.getClass(), "sendPacket"); - Object packet = this.packetTitle - .getConstructor(this.packetActions, this.chatBaseComponent, Integer.TYPE, - Integer.TYPE, Integer.TYPE) - .newInstance(actions[2], null, this.fadeInTime * (this.ticks ? 1 : 20), - this.stayTime * (this.ticks ? 1 : 20), - this.fadeOutTime * (this.ticks ? 1 : 20)); - // Send if set - if ((this.fadeInTime != -1) && (this.fadeOutTime != -1) && (this.stayTime != -1)) { - sendPacket.invoke(connection, packet); - } - // Send title - Object serialized = getMethod(this.nmsChatSerializer, "a", String.class).invoke(null, - "{text:\"" + ChatColor.translateAlternateColorCodes('&', this.getTitle()) - + "\",color:" + this.titleColor.name().toLowerCase() + "}"); - packet = this.packetTitle.getConstructor(this.packetActions, this.chatBaseComponent) - .newInstance(actions[0], serialized); - sendPacket.invoke(connection, packet); - if (!this.getSubtitle().isEmpty()) { - // Send subtitle if present - serialized = getMethod(this.nmsChatSerializer, "a", String.class).invoke(null, - "{text:\"" + ChatColor.translateAlternateColorCodes('&', this.getSubtitle()) - + "\",color:" + this.subtitleColor.name().toLowerCase() + "}"); - packet = this.packetTitle.getConstructor(this.packetActions, this.chatBaseComponent) - .newInstance(actions[1], serialized); - sendPacket.invoke(connection, packet); - } - } - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_111.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_111.java index 8b8f14e61..c0d176019 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_111.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_111.java @@ -1,33 +1,20 @@ package com.github.intellectualsites.plotsquared.bukkit.titles; import com.github.intellectualsites.plotsquared.bukkit.object.BukkitPlayer; -import com.github.intellectualsites.plotsquared.bukkit.util.BukkitVersion; -import com.github.intellectualsites.plotsquared.plot.PlotSquared; import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; import com.github.intellectualsites.plotsquared.plot.util.AbstractTitle; import org.bukkit.entity.Player; @SuppressWarnings("deprecation") public class DefaultTitle_111 extends AbstractTitle { - private final boolean valid; - - public DefaultTitle_111() { - this.valid = PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_11_0); - } - @Override public void sendTitle(PlotPlayer player, String head, String sub, int in, int delay, int out) { - if (valid) { - try { - final Player playerObj = ((BukkitPlayer) player).player; - TitleManager_1_11 title = new TitleManager_1_11(head, sub, in, delay, out); - title.send(playerObj); - return; - } catch (Throwable ignored) { - } + try { + final Player playerObj = ((BukkitPlayer) player).player; + TitleManager_1_11 title = new TitleManager_1_11(head, sub, in, delay, out); + title.send(playerObj); + return; + } catch (Throwable ignored) { } - AbstractTitle.TITLE_CLASS = new DefaultTitle_180(); - AbstractTitle.TITLE_CLASS.sendTitle(player, head, sub, in, delay, out); } } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_180.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_180.java deleted file mode 100644 index 89662bad5..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_180.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.titles; - -import com.github.intellectualsites.plotsquared.bukkit.object.BukkitPlayer; -import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; -import com.github.intellectualsites.plotsquared.plot.util.AbstractTitle; - -public class DefaultTitle_180 extends AbstractTitle { - - @Override - public void sendTitle(PlotPlayer player, String head, String sub, int in, int delay, int out) { - try { - DefaultTitleManager title = new DefaultTitleManager(head, sub, in, delay, out); - title.send(((BukkitPlayer) player).player); - } catch (Exception ignored) { - AbstractTitle.TITLE_CLASS = new DefaultTitle_19(); - AbstractTitle.TITLE_CLASS.sendTitle(player, head, sub, in, delay, out); - } - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_183.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_183.java deleted file mode 100644 index cc87ea67b..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_183.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.titles; - -import com.github.intellectualsites.plotsquared.bukkit.object.BukkitPlayer; -import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; -import com.github.intellectualsites.plotsquared.plot.util.AbstractTitle; - -public class DefaultTitle_183 extends AbstractTitle { - - @Override - public void sendTitle(PlotPlayer player, String head, String sub, int in, int delay, int out) { - try { - DefaultTitleManager_183 title = new DefaultTitleManager_183(head, sub, in, delay, out); - title.send(((BukkitPlayer) player).player); - } catch (Exception ignored) { - AbstractTitle.TITLE_CLASS = new HackTitle(); - AbstractTitle.TITLE_CLASS.sendTitle(player, head, sub, in, delay, out); - } - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_19.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_19.java deleted file mode 100644 index 5795b3364..000000000 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_19.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.intellectualsites.plotsquared.bukkit.titles; - -import com.github.intellectualsites.plotsquared.bukkit.object.BukkitPlayer; -import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; -import com.github.intellectualsites.plotsquared.plot.util.AbstractTitle; -import com.github.intellectualsites.plotsquared.plot.util.TaskManager; -import org.bukkit.entity.Player; - -@SuppressWarnings("deprecation") public class DefaultTitle_19 extends AbstractTitle { - - @Override - public void sendTitle(PlotPlayer player, String head, String sub, int in, int delay, int out) { - try { - final Player playerObj = ((BukkitPlayer) player).player; - playerObj.sendTitle(head, sub); - TaskManager.runTaskLater(new Runnable() { - @Override public void run() { - playerObj.sendTitle("", ""); - } - }, delay * 20); - } catch (Throwable ignored) { - AbstractTitle.TITLE_CLASS = new DefaultTitle_183(); - AbstractTitle.TITLE_CLASS.sendTitle(player, head, sub, in, delay, out); - } - } -} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitUtil.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitUtil.java index dd4320484..f3981c152 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitUtil.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitUtil.java @@ -6,6 +6,7 @@ import com.github.intellectualsites.plotsquared.plot.config.C; import com.github.intellectualsites.plotsquared.plot.object.*; import com.github.intellectualsites.plotsquared.plot.object.schematic.PlotItem; import com.github.intellectualsites.plotsquared.plot.util.*; +import com.sk89q.worldedit.bukkit.BukkitWorld; import lombok.NonNull; import org.bukkit.Bukkit; import org.bukkit.Material; diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitVersion.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitVersion.java index 99226ea31..8bfa3da59 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitVersion.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitVersion.java @@ -1,17 +1,7 @@ package com.github.intellectualsites.plotsquared.bukkit.util; public class BukkitVersion { + public static int[] v1_13_2 = {1, 13, 2}; + public static int[] v1_13_1 = {1, 13, 1}; public static int[] v1_13_0 = {1, 13, 0}; - public static int[] v1_12_1 = {1, 12, 1}; - public static int[] v1_12_0 = {1, 12, 0}; - public static int[] v1_11_0 = {1, 11, 0}; - public static int[] v1_10_2 = {1, 10, 2}; - public static int[] v1_10_0 = {1, 10, 0}; - public static int[] v1_9_4 = {1, 9, 4}; - public static int[] v1_9_0 = {1, 9, 0}; - public static int[] v1_8_3 = {1, 8, 3}; - public static int[] v1_8_0 = {1, 8, 0}; - public static int[] v1_7_6 = {1, 7, 6}; - public static int[] v1_7_0 = {1, 7, 0}; - public static int[] v1_6_0 = {1, 6, 0}; } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SendChunk.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SendChunk.java index b82be5ca5..f0987b219 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SendChunk.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SendChunk.java @@ -50,19 +50,7 @@ public class SendChunk { RefClass classChunk = getRefClass("{nms}.Chunk"); this.methodInitLighting = classChunk.getMethod("initLighting"); RefClass classMapChunk = getRefClass("{nms}.PacketPlayOutMapChunk"); - if (PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_4)) { - //this works for 1.9.4 and 1.10 - tempMapChunk = classMapChunk.getConstructor(classChunk.getRealClass(), int.class); - } else { - try { - tempMapChunk = classMapChunk - .getConstructor(classChunk.getRealClass(), boolean.class, int.class); - } catch (NoSuchMethodException ignored) { - tempMapChunk = classMapChunk - .getConstructor(classChunk.getRealClass(), boolean.class, int.class, int.class); - } - } + tempMapChunk = classMapChunk.getConstructor(classChunk.getRealClass(), int.class); this.mapChunk = tempMapChunk; RefClass classEntityPlayer = getRefClass("{nms}.EntityPlayer"); this.connection = classEntityPlayer.getField("playerConnection"); @@ -119,22 +107,9 @@ public class SendChunk { chunks.remove(chunk); Object con = this.connection.of(entity).get(); Object packet = null; - if (PlotSquared.get() - .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_4)) { - try { - packet = this.mapChunk.create(c, 65535); - } catch (Exception ignored) { - } - } else { - try { - packet = this.mapChunk.create(c, true, 65535); - } catch (ReflectiveOperationException | IllegalArgumentException e) { - try { - packet = this.mapChunk.create(c, true, 65535, 5); - } catch (ReflectiveOperationException | IllegalArgumentException e1) { - e1.printStackTrace(); - } - } + try { + packet = this.mapChunk.create(c, 65535); + } catch (Exception ignored) { } if (packet == null) { PlotSquared.debug("Error with PacketPlayOutMapChunk reflection.");