mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-25 22:56:45 +01:00
Clean up listeners for legacy versions
This commit is contained in:
parent
11ccfe7ac4
commit
adc2d980f4
@ -576,34 +576,6 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
} catch (final NoSuchMethodException | ClassNotFoundException ignored) {
|
} catch (final NoSuchMethodException | ClassNotFoundException ignored) {
|
||||||
PlotSquared.debug("Not running Spigot. Skipping EntitySpawnListener event.");
|
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() {
|
@Override public void registerInventoryEvents() {
|
||||||
@ -613,11 +585,6 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
@Override public void registerPlotPlusEvents() {
|
@Override public void registerPlotPlusEvents() {
|
||||||
PlotPlusListener.startRunnable(this);
|
PlotPlusListener.startRunnable(this);
|
||||||
getServer().getPluginManager().registerEvents(new PlotPlusListener(), 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() {
|
@Override public void registerForceFieldEvents() {
|
||||||
|
@ -296,7 +296,7 @@ public class BukkitPlotGenerator extends ChunkGenerator
|
|||||||
ChunkManager.postProcessChunk(result);
|
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) {
|
BiomeGrid grid) {
|
||||||
GenChunk result = this.chunkSetter;
|
GenChunk result = this.chunkSetter;
|
||||||
// Set the chunk location
|
// Set the chunk location
|
||||||
|
@ -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<MetadataValue> 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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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.Location;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.Plot;
|
import com.github.intellectualsites.plotsquared.plot.object.Plot;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotArea;
|
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.Entity;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Vehicle;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||||
import org.bukkit.event.entity.EntitySpawnEvent;
|
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.FixedMetadataValue;
|
||||||
|
import org.bukkit.metadata.MetadataValue;
|
||||||
import org.bukkit.plugin.Plugin;
|
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<MetadataValue> 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)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void creatureSpawnEvent(EntitySpawnEvent event) {
|
public void creatureSpawnEvent(EntitySpawnEvent event) {
|
||||||
Entity entity = event.getEntity();
|
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());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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.BukkitLazyBlock;
|
||||||
import com.github.intellectualsites.plotsquared.bukkit.object.BukkitPlayer;
|
import com.github.intellectualsites.plotsquared.bukkit.object.BukkitPlayer;
|
||||||
import com.github.intellectualsites.plotsquared.bukkit.util.BukkitUtil;
|
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.PlotSquared;
|
||||||
import com.github.intellectualsites.plotsquared.plot.config.C;
|
import com.github.intellectualsites.plotsquared.plot.config.C;
|
||||||
import com.github.intellectualsites.plotsquared.plot.config.Settings;
|
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.entity.*;
|
||||||
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
|
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
|
||||||
import org.bukkit.event.hanging.HangingPlaceEvent;
|
import org.bukkit.event.hanging.HangingPlaceEvent;
|
||||||
|
import org.bukkit.event.inventory.InventoryAction;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||||
import org.bukkit.event.player.*;
|
import org.bukkit.event.player.*;
|
||||||
@ -39,6 +39,8 @@ import org.bukkit.event.vehicle.VehicleMoveEvent;
|
|||||||
import org.bukkit.event.world.StructureGrowEvent;
|
import org.bukkit.event.world.StructureGrowEvent;
|
||||||
import org.bukkit.help.HelpTopic;
|
import org.bukkit.help.HelpTopic;
|
||||||
import org.bukkit.inventory.ItemStack;
|
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.FixedMetadataValue;
|
||||||
import org.bukkit.metadata.MetadataValue;
|
import org.bukkit.metadata.MetadataValue;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
@ -46,9 +48,7 @@ import org.bukkit.projectiles.BlockProjectileSource;
|
|||||||
import org.bukkit.projectiles.ProjectileSource;
|
import org.bukkit.projectiles.ProjectileSource;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import java.lang.reflect.Constructor;
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@ -64,8 +64,6 @@ import java.util.regex.Pattern;
|
|||||||
private boolean tmpTeleport = true;
|
private boolean tmpTeleport = true;
|
||||||
private Field fieldPlayer;
|
private Field fieldPlayer;
|
||||||
private PlayerMoveEvent moveTmp;
|
private PlayerMoveEvent moveTmp;
|
||||||
private boolean v112 =
|
|
||||||
PlotSquared.get().checkVersion(PlotSquared.imp().getServerVersion(), BukkitVersion.v1_12_0);
|
|
||||||
|
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
@ -646,11 +644,7 @@ import java.util.regex.Pattern;
|
|||||||
moveTmp.setCancelled(false);
|
moveTmp.setCancelled(false);
|
||||||
fieldPlayer.set(moveTmp, player);
|
fieldPlayer.set(moveTmp, player);
|
||||||
|
|
||||||
List<Entity> passengers;
|
List<Entity> passengers = vehicle.getPassengers();
|
||||||
if (v112)
|
|
||||||
passengers = vehicle.getPassengers();
|
|
||||||
else
|
|
||||||
passengers = null;
|
|
||||||
|
|
||||||
this.playerMove(moveTmp);
|
this.playerMove(moveTmp);
|
||||||
org.bukkit.Location dest;
|
org.bukkit.Location dest;
|
||||||
@ -945,9 +939,8 @@ import java.util.regex.Pattern;
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (PlotSquared.get().worldedit != null && pp.getAttribute("worldedit")) {
|
if (PlotSquared.get().worldedit != null && pp.getAttribute("worldedit")) {
|
||||||
if (player.getInventory().getItemInMainHand().getType() == LegacyMappings
|
if (player.getInventory().getItemInMainHand().getType() == Material
|
||||||
.fromLegacyId(PlotSquared.get().worldedit.getConfiguration().wandItem)
|
.getMaterial(PlotSquared.get().worldedit.getConfiguration().wandItem)) {
|
||||||
.getMaterial()) {
|
|
||||||
return;
|
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<String> lore = newMeta.getLore();
|
||||||
|
if (lore != null) {
|
||||||
|
newLore = lore.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String oldLore = "";
|
||||||
|
if (oldMeta != null) {
|
||||||
|
List<String> 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<Material> 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<Block> 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)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onInteract(PlayerInteractEvent event) {
|
public void onInteract(PlayerInteractEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
@ -1682,9 +1874,8 @@ import java.util.regex.Pattern;
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (PlotSquared.get().worldedit != null && pp.getAttribute("worldedit")) {
|
if (PlotSquared.get().worldedit != null && pp.getAttribute("worldedit")) {
|
||||||
if (player.getInventory().getItemInMainHand().getType() == LegacyMappings
|
if (player.getInventory().getItemInMainHand().getType() == Material
|
||||||
.fromLegacyId(PlotSquared.get().worldedit.getConfiguration().wandItem)
|
.getMaterial(PlotSquared.get().worldedit.getConfiguration().wandItem)) {
|
||||||
.getMaterial()) {
|
|
||||||
return;
|
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)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onInventoryClose(InventoryCloseEvent event) {
|
public void onInventoryClose(InventoryCloseEvent event) {
|
||||||
HumanEntity closer = event.getPlayer();
|
HumanEntity closer = event.getPlayer();
|
||||||
@ -2253,24 +2427,8 @@ import java.util.regex.Pattern;
|
|||||||
@SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.HIGHEST)
|
@SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onEntityCombustByEntity(EntityCombustByEntityEvent event) {
|
public void onEntityCombustByEntity(EntityCombustByEntityEvent event) {
|
||||||
EntityDamageByEntityEvent eventChange = null;
|
EntityDamageByEntityEvent eventChange = null;
|
||||||
if (PlotSquared.get()
|
eventChange = new EntityDamageByEntityEvent(event.getCombuster(), event.getEntity(),
|
||||||
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_11_0)) {
|
EntityDamageEvent.DamageCause.FIRE_TICK, (double) event.getDuration());
|
||||||
eventChange = new EntityDamageByEntityEvent(event.getCombuster(), event.getEntity(),
|
|
||||||
EntityDamageEvent.DamageCause.FIRE_TICK, (double) event.getDuration());
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
Constructor<EntityDamageByEntityEvent> 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;
|
|
||||||
}
|
|
||||||
onEntityDamageByEntityEvent(eventChange);
|
onEntityDamageByEntityEvent(eventChange);
|
||||||
if (eventChange.isCancelled()) {
|
if (eventChange.isCancelled()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
@ -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<Block> 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()))));
|
|
||||||
}
|
|
||||||
}
|
|
@ -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<String> lore = newMeta.getLore();
|
|
||||||
if (lore != null) {
|
|
||||||
newLore = lore.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String oldLore = "";
|
|
||||||
if (oldMeta != null) {
|
|
||||||
List<String> 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<Material> 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -12,6 +12,7 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
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.BlockBreakEvent;
|
||||||
import org.bukkit.event.block.BlockDamageEvent;
|
import org.bukkit.event.block.BlockDamageEvent;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.bukkit.event.entity.EntityPickupItemEvent;
|
||||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
@ -162,6 +164,22 @@ import java.util.UUID;
|
|||||||
healRunnable.remove(name);
|
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 {
|
private static class Interval {
|
||||||
|
|
||||||
final int interval;
|
final int interval;
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,5 @@
|
|||||||
package com.github.intellectualsites.plotsquared.bukkit.object.entity;
|
package com.github.intellectualsites.plotsquared.bukkit.object.entity;
|
||||||
|
|
||||||
import com.github.intellectualsites.plotsquared.bukkit.util.BukkitVersion;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
@ -53,21 +52,15 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
if (depth == 1) {
|
if (depth == 1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (PlotSquared.get()
|
if (!entity.hasGravity()) {
|
||||||
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_10_0)
|
this.noGravity = true;
|
||||||
|| entity instanceof ArmorStand) {
|
|
||||||
if (!entity.hasGravity()) {
|
|
||||||
this.noGravity = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
switch (entity.getType()) {
|
switch (entity.getType()) {
|
||||||
case ARROW:
|
|
||||||
case BOAT:
|
case BOAT:
|
||||||
if (PlotSquared.get()
|
Boat boat = (Boat) entity;
|
||||||
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
this.dataByte = getOrdinal(TreeSpecies.values(), boat.getWoodType());
|
||||||
Boat boat = (Boat) entity;
|
return;
|
||||||
this.dataByte = getOrdinal(TreeSpecies.values(), boat.getWoodType());
|
case ARROW:
|
||||||
}
|
|
||||||
case COMPLEX_PART:
|
case COMPLEX_PART:
|
||||||
case EGG:
|
case EGG:
|
||||||
case ENDER_CRYSTAL:
|
case ENDER_CRYSTAL:
|
||||||
@ -103,9 +96,6 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
case AREA_EFFECT_CLOUD:
|
case AREA_EFFECT_CLOUD:
|
||||||
// Do this stuff later
|
// Do this stuff later
|
||||||
return;
|
return;
|
||||||
default:
|
|
||||||
PlotSquared.debug("&cCOULD NOT IDENTIFY ENTITY: " + entity.getType());
|
|
||||||
return;
|
|
||||||
// MISC //
|
// MISC //
|
||||||
case DROPPED_ITEM:
|
case DROPPED_ITEM:
|
||||||
Item item = (Item) entity;
|
Item item = (Item) entity;
|
||||||
@ -284,6 +274,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
}
|
}
|
||||||
storeLiving((LivingEntity) entity);
|
storeLiving((LivingEntity) entity);
|
||||||
// END LIVING //
|
// 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) {
|
void restoreEquipment(LivingEntity entity) {
|
||||||
EntityEquipment equipment = entity.getEquipment();
|
EntityEquipment equipment = entity.getEquipment();
|
||||||
if (PlotSquared.get()
|
equipment.setItemInMainHand(this.lived.mainHand);
|
||||||
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
equipment.setItemInOffHand(this.lived.offHand);
|
||||||
equipment.setItemInMainHand(this.lived.mainHand);
|
|
||||||
equipment.setItemInOffHand(this.lived.offHand);
|
|
||||||
} else {
|
|
||||||
equipment.setItemInHand(this.lived.mainHand);
|
|
||||||
}
|
|
||||||
equipment.setHelmet(this.lived.helmet);
|
equipment.setHelmet(this.lived.helmet);
|
||||||
equipment.setChestplate(this.lived.chestplate);
|
equipment.setChestplate(this.lived.chestplate);
|
||||||
equipment.setLeggings(this.lived.leggings);
|
equipment.setLeggings(this.lived.leggings);
|
||||||
@ -369,14 +356,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void storeEquipment(EntityEquipment equipment) {
|
void storeEquipment(EntityEquipment equipment) {
|
||||||
if (PlotSquared.get()
|
this.lived.mainHand = equipment.getItemInMainHand().clone();
|
||||||
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
this.lived.offHand = equipment.getItemInOffHand().clone();
|
||||||
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.boots = equipment.getBoots().clone();
|
this.lived.boots = equipment.getBoots().clone();
|
||||||
this.lived.leggings = equipment.getLeggings().clone();
|
this.lived.leggings = equipment.getLeggings().clone();
|
||||||
this.lived.chestplate = equipment.getChestplate().clone();
|
this.lived.chestplate = equipment.getChestplate().clone();
|
||||||
@ -461,22 +442,18 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
if (this.depth == 1) {
|
if (this.depth == 1) {
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
if (PlotSquared.get()
|
if (this.noGravity) {
|
||||||
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_10_0)
|
entity.setGravity(false);
|
||||||
|| entity instanceof ArmorStand) {
|
|
||||||
if (this.noGravity) {
|
|
||||||
entity.setGravity(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
switch (entity.getType()) {
|
switch (entity.getType()) {
|
||||||
case ARROW:
|
|
||||||
case BOAT:
|
case BOAT:
|
||||||
if (PlotSquared.get()
|
Boat boat = (Boat) entity;
|
||||||
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
boat.setWoodType(TreeSpecies.values()[dataByte]);
|
||||||
Boat boat = (Boat) entity;
|
return entity;
|
||||||
boat.setWoodType(TreeSpecies.values()[dataByte]);
|
case SLIME:
|
||||||
}
|
((Slime) entity).setSize(this.dataByte);
|
||||||
|
return entity;
|
||||||
|
case ARROW:
|
||||||
case COMPLEX_PART:
|
case COMPLEX_PART:
|
||||||
case EGG:
|
case EGG:
|
||||||
case ENDER_CRYSTAL:
|
case ENDER_CRYSTAL:
|
||||||
@ -496,10 +473,6 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
case MINECART_TNT:
|
case MINECART_TNT:
|
||||||
case PLAYER:
|
case PLAYER:
|
||||||
case PRIMED_TNT:
|
case PRIMED_TNT:
|
||||||
return entity;
|
|
||||||
case SLIME:
|
|
||||||
((Slime) entity).setSize(this.dataByte);
|
|
||||||
return entity;
|
|
||||||
case SMALL_FIREBALL:
|
case SMALL_FIREBALL:
|
||||||
case SNOWBALL:
|
case SNOWBALL:
|
||||||
case SPLASH_POTION:
|
case SPLASH_POTION:
|
||||||
@ -516,9 +489,6 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
case UNKNOWN:
|
case UNKNOWN:
|
||||||
// Do this stuff later
|
// Do this stuff later
|
||||||
return entity;
|
return entity;
|
||||||
default:
|
|
||||||
PlotSquared.debug("&cCOULD NOT IDENTIFY ENTITY: " + entity.getType());
|
|
||||||
return entity;
|
|
||||||
// MISC //
|
// MISC //
|
||||||
case ITEM_FRAME:
|
case ITEM_FRAME:
|
||||||
ItemFrame itemframe = (ItemFrame) entity;
|
ItemFrame itemframe = (ItemFrame) entity;
|
||||||
@ -703,6 +673,9 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
}
|
}
|
||||||
restoreLiving((LivingEntity) entity);
|
restoreLiving((LivingEntity) entity);
|
||||||
return entity;
|
return entity;
|
||||||
|
default:
|
||||||
|
PlotSquared.debug("&cCOULD NOT IDENTIFY ENTITY: " + entity.getType());
|
||||||
|
return entity;
|
||||||
// END LIVING
|
// END LIVING
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,33 +1,20 @@
|
|||||||
package com.github.intellectualsites.plotsquared.bukkit.titles;
|
package com.github.intellectualsites.plotsquared.bukkit.titles;
|
||||||
|
|
||||||
import com.github.intellectualsites.plotsquared.bukkit.object.BukkitPlayer;
|
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.object.PlotPlayer;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.AbstractTitle;
|
import com.github.intellectualsites.plotsquared.plot.util.AbstractTitle;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation") public class DefaultTitle_111 extends AbstractTitle {
|
@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
|
@Override
|
||||||
public void sendTitle(PlotPlayer player, String head, String sub, int in, int delay, int out) {
|
public void sendTitle(PlotPlayer player, String head, String sub, int in, int delay, int out) {
|
||||||
if (valid) {
|
try {
|
||||||
try {
|
final Player playerObj = ((BukkitPlayer) player).player;
|
||||||
final Player playerObj = ((BukkitPlayer) player).player;
|
TitleManager_1_11 title = new TitleManager_1_11(head, sub, in, delay, out);
|
||||||
TitleManager_1_11 title = new TitleManager_1_11(head, sub, in, delay, out);
|
title.send(playerObj);
|
||||||
title.send(playerObj);
|
return;
|
||||||
return;
|
} catch (Throwable ignored) {
|
||||||
} catch (Throwable ignored) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
AbstractTitle.TITLE_CLASS = new DefaultTitle_180();
|
|
||||||
AbstractTitle.TITLE_CLASS.sendTitle(player, head, sub, in, delay, out);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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.*;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.schematic.PlotItem;
|
import com.github.intellectualsites.plotsquared.plot.object.schematic.PlotItem;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.*;
|
import com.github.intellectualsites.plotsquared.plot.util.*;
|
||||||
|
import com.sk89q.worldedit.bukkit.BukkitWorld;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
@ -1,17 +1,7 @@
|
|||||||
package com.github.intellectualsites.plotsquared.bukkit.util;
|
package com.github.intellectualsites.plotsquared.bukkit.util;
|
||||||
|
|
||||||
public class BukkitVersion {
|
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_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};
|
|
||||||
}
|
}
|
||||||
|
@ -50,19 +50,7 @@ public class SendChunk {
|
|||||||
RefClass classChunk = getRefClass("{nms}.Chunk");
|
RefClass classChunk = getRefClass("{nms}.Chunk");
|
||||||
this.methodInitLighting = classChunk.getMethod("initLighting");
|
this.methodInitLighting = classChunk.getMethod("initLighting");
|
||||||
RefClass classMapChunk = getRefClass("{nms}.PacketPlayOutMapChunk");
|
RefClass classMapChunk = getRefClass("{nms}.PacketPlayOutMapChunk");
|
||||||
if (PlotSquared.get()
|
tempMapChunk = classMapChunk.getConstructor(classChunk.getRealClass(), int.class);
|
||||||
.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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.mapChunk = tempMapChunk;
|
this.mapChunk = tempMapChunk;
|
||||||
RefClass classEntityPlayer = getRefClass("{nms}.EntityPlayer");
|
RefClass classEntityPlayer = getRefClass("{nms}.EntityPlayer");
|
||||||
this.connection = classEntityPlayer.getField("playerConnection");
|
this.connection = classEntityPlayer.getField("playerConnection");
|
||||||
@ -119,22 +107,9 @@ public class SendChunk {
|
|||||||
chunks.remove(chunk);
|
chunks.remove(chunk);
|
||||||
Object con = this.connection.of(entity).get();
|
Object con = this.connection.of(entity).get();
|
||||||
Object packet = null;
|
Object packet = null;
|
||||||
if (PlotSquared.get()
|
try {
|
||||||
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_4)) {
|
packet = this.mapChunk.create(c, 65535);
|
||||||
try {
|
} catch (Exception ignored) {
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (packet == null) {
|
if (packet == null) {
|
||||||
PlotSquared.debug("Error with PacketPlayOutMapChunk reflection.");
|
PlotSquared.debug("Error with PacketPlayOutMapChunk reflection.");
|
||||||
|
Loading…
Reference in New Issue
Block a user