diff --git a/src/main/java/net/aufdemrand/denizen/BukkitScriptEntryData.java b/src/main/java/net/aufdemrand/denizen/BukkitScriptEntryData.java index 8a32a72680..f2f18cc9e8 100644 --- a/src/main/java/net/aufdemrand/denizen/BukkitScriptEntryData.java +++ b/src/main/java/net/aufdemrand/denizen/BukkitScriptEntryData.java @@ -3,10 +3,8 @@ import net.aufdemrand.denizen.objects.dNPC; import net.aufdemrand.denizen.objects.dPlayer; import net.aufdemrand.denizen.tags.BukkitTagContext; -import net.aufdemrand.denizen.utilities.depends.Depends; import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.tags.TagContext; -import net.citizensnpcs.api.CitizensAPI; public class BukkitScriptEntryData extends ScriptEntryData { private dPlayer player; @@ -34,21 +32,10 @@ public boolean hasPlayer() { } public void setPlayer(dPlayer player) { - if (player != null && player.isOnline() && Depends.citizens != null - && CitizensAPI.getNPCRegistry().isNPC(player.getPlayerEntity())) { - dontFixMe = true; - setNPC(new dNPC(CitizensAPI.getNPCRegistry().getNPC(player.getPlayerEntity()))); - } - else - this.player = player; + this.player = player; } - private boolean dontFixMe = false; - public void setNPC(dNPC npc) { - if (npc == null && dontFixMe) { - dontFixMe = false; - } this.npc = npc; } diff --git a/src/main/java/net/aufdemrand/denizen/events/core/AsyncChatSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/AsyncChatSmartEvent.java index aa9c0b54ed..c1e9f4c830 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/AsyncChatSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/AsyncChatSmartEvent.java @@ -2,6 +2,7 @@ import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.Settings; +import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizencore.events.OldEventManager; import net.aufdemrand.denizencore.events.OldSmartEvent; import net.aufdemrand.denizencore.objects.Element; @@ -82,7 +83,7 @@ public void asyncPlayerChat(final AsyncPlayerChatEvent event) { context.put("message", new Element(event.getMessage())); context.put("format", new Element(event.getMessage())); - final dPlayer player = new dPlayer(event.getPlayer()); + final dPlayer player = dEntity.getPlayerFrom(event.getPlayer()); Callable> call = new Callable>() { @Override diff --git a/src/main/java/net/aufdemrand/denizen/events/core/BiomeEnterExitSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/BiomeEnterExitSmartEvent.java index 4bf4e47d0e..ed9e8e41fa 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/BiomeEnterExitSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/BiomeEnterExitSmartEvent.java @@ -1,6 +1,7 @@ package net.aufdemrand.denizen.events.core; import net.aufdemrand.denizen.BukkitScriptEntryData; +import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizencore.events.OldEventManager; import net.aufdemrand.denizencore.events.OldSmartEvent; import net.aufdemrand.denizencore.objects.Element; @@ -109,7 +110,7 @@ public void playerMoveEvent(PlayerMoveEvent event) { List determinations = OldEventManager.doEvents(Arrays.asList( "player enters biome", "player exits biome", "player enters " + to.name(), "player exits " + from.name() - ), new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null), context, true); + ), new BukkitScriptEntryData(dEntity.getPlayerFrom(event.getPlayer()), null), context, true); for (String determination: determinations) { if (determination.toUpperCase().startsWith("CANCELLED")) diff --git a/src/main/java/net/aufdemrand/denizen/events/core/CommandSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/CommandSmartEvent.java index 4b59fd2971..db2849d14a 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/CommandSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/CommandSmartEvent.java @@ -213,7 +213,7 @@ public void playerCommandPreprocess(PlayerCommandPreprocessEvent event) { // Run any event scripts and get the determination. determination = BukkitWorldScriptHelper.doEvents(events, - null, new dPlayer(event.getPlayer()), context).toUpperCase(); + null, dEntity.getPlayerFrom(event.getPlayer()), context).toUpperCase(); // If a script has determined fulfilled, cancel this event so the player doesn't // receive the default 'Invalid command' gibberish from bukkit. diff --git a/src/main/java/net/aufdemrand/denizen/events/core/CuboidEnterExitSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/CuboidEnterExitSmartEvent.java index 2061afe36f..e0d5c54493 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/CuboidEnterExitSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/CuboidEnterExitSmartEvent.java @@ -191,7 +191,7 @@ private boolean Fire(PlayerMoveEvent event, dList cuboids, String EventName) { events.add(EventName); String determination = BukkitWorldScriptHelper.doEvents(events, - null, new dPlayer(event.getPlayer()), context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) { event.setCancelled(true); diff --git a/src/main/java/net/aufdemrand/denizen/events/core/EntityDamageSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/EntityDamageSmartEvent.java index 3a59d0ca68..50f1936a7d 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/EntityDamageSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/EntityDamageSmartEvent.java @@ -105,8 +105,8 @@ public void entityDamage(EntityDamageEvent event) { context.put("final_damage", new Element(event.getFinalDamage())); context.put("cause", new Element(event.getCause().name())); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); boolean isFatal = false; @@ -227,7 +227,7 @@ public void entityDamage(EntityDamageEvent event) { events.add(entity.identifySimple() + " damaged by " + damager.identifyType()); events.add(entity.identifySimple() + " damaged by " + damager.identifySimple()); - if (damager.isNPC()) { + if (damager.isCitizensNPC()) { subNPC = damager.getDenizenNPC(); // If we had no NPC in our regular context, use this one @@ -235,7 +235,7 @@ public void entityDamage(EntityDamageEvent event) { } else if (damager.isPlayer()) { - subPlayer = new dPlayer(damager.getPlayer()); + subPlayer = damager.getDenizenPlayer(); // If we had no player in our regular context, use this one if (player == null) player = subPlayer; diff --git a/src/main/java/net/aufdemrand/denizen/events/core/EntityDeathSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/EntityDeathSmartEvent.java index 58b1ef299b..0d37fef35c 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/EntityDeathSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/EntityDeathSmartEvent.java @@ -111,8 +111,8 @@ public void entityDeath(EntityDeathEvent event) { } context.put("drops", drops_dlist); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); // If this entity has a stored killer, get it and then // remove it from the entityKillers map diff --git a/src/main/java/net/aufdemrand/denizen/events/core/EntitySpawnSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/EntitySpawnSmartEvent.java index 966af4cbb1..b2f219888d 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/EntitySpawnSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/EntitySpawnSmartEvent.java @@ -143,7 +143,7 @@ public void creatureSpawn(CreatureSpawnEvent event) { context.put("location", new dLocation(event.getLocation())); String determination = BukkitWorldScriptHelper.doEvents(events, - (entity.isNPC() ? entity.getDenizenNPC() : null), null, context, true); + (entity.isCitizensNPC() ? entity.getDenizenNPC() : null), null, context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); diff --git a/src/main/java/net/aufdemrand/denizen/events/core/ItemScrollSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/ItemScrollSmartEvent.java index 774ed76fd5..3feebed338 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/ItemScrollSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/ItemScrollSmartEvent.java @@ -89,7 +89,7 @@ public void playerScrollsHotbar(PlayerItemHeldEvent event) { context.put("previous_slot", new Element(event.getPreviousSlot() + 1)); String determination = BukkitWorldScriptHelper.doEvents(events, - null, new dPlayer(event.getPlayer()), context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); diff --git a/src/main/java/net/aufdemrand/denizen/events/core/PlayerEquipsArmorSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/PlayerEquipsArmorSmartEvent.java index b9dcd116d5..0e1bbd1966 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/PlayerEquipsArmorSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/PlayerEquipsArmorSmartEvent.java @@ -105,7 +105,7 @@ public void blockDispense(BlockDispenseEvent event) { if (isArmor(item)) { for (final Player player : location.getWorld().getPlayers()) { - if (Utilities.checkLocation(player, location, 2.5)) { + if (!dEntity.isNPC(player) && Utilities.checkLocation(player, location, 2.5)) { final ItemStack[] armor_contents = player.getInventory().getArmorContents().clone(); final Vector velocity = event.getVelocity(); new BukkitRunnable() { @@ -345,7 +345,7 @@ private boolean playerEquipsArmorEvent(final Player player, final ItemStack item "player equips " + getArmorType(item), "player equips " + armor.identifySimple(), "player equips " + armor.identifyMaterial()), - null, new dPlayer(player), context).toUpperCase(); + null, dEntity.getPlayerFrom(player), context).toUpperCase(); if (determination.startsWith("CANCELLED")) { new BukkitRunnable() { @@ -374,7 +374,7 @@ private boolean playerUnequipsArmorEvent(final Player player, final ItemStack it "player unequips " + getArmorType(item), "player unequips " + armor.identifySimple(), "player unequips " + armor.identifyMaterial()), - null, new dPlayer(player), context).toUpperCase(); + null, dEntity.getPlayerFrom(player), context).toUpperCase(); if (determination.startsWith("CANCELLED")) { new BukkitRunnable() { diff --git a/src/main/java/net/aufdemrand/denizen/events/core/PlayerJumpSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/PlayerJumpSmartEvent.java index bb994674c7..093b16911c 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/PlayerJumpSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/PlayerJumpSmartEvent.java @@ -79,7 +79,8 @@ public void onPlayerMove(PlayerMoveEvent event) { // Not perfect checking, but close enough until Bukkit adds a proper event Map context = new HashMap(); context.put("location", new dLocation(event.getTo())); - BukkitWorldScriptHelper.doEvents(Arrays.asList("player jumps"), null, new dPlayer(event.getPlayer()), context); + BukkitWorldScriptHelper.doEvents(Arrays.asList("player jumps"), null, + dEntity.getPlayerFrom(event.getPlayer()), context); } } } diff --git a/src/main/java/net/aufdemrand/denizen/events/core/PlayerStepsOnSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/PlayerStepsOnSmartEvent.java index f904625308..e13235c4a9 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/PlayerStepsOnSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/PlayerStepsOnSmartEvent.java @@ -116,7 +116,8 @@ public void onPlayerMove(PlayerMoveEvent event) { // Add in cuboids context, with either the cuboids or an empty list context.put("cuboids", cuboid_context); // Fire event - String Determination = BukkitWorldScriptHelper.doEvents(events, null, new dPlayer(event.getPlayer()), context, true); + String Determination = BukkitWorldScriptHelper.doEvents(events, null, + dEntity.getPlayerFrom(event.getPlayer()), context, true); if (Determination.equalsIgnoreCase("CANCELLED")) event.setCancelled(true); } diff --git a/src/main/java/net/aufdemrand/denizen/events/core/PlayerWalkSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/PlayerWalkSmartEvent.java index 5466d2497d..51a9b30c61 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/PlayerWalkSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/PlayerWalkSmartEvent.java @@ -1,5 +1,6 @@ package net.aufdemrand.denizen.events.core; +import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizen.scripts.containers.core.BukkitWorldScriptHelper; import net.aufdemrand.denizencore.events.OldSmartEvent; import net.aufdemrand.denizen.objects.dLocation; @@ -80,7 +81,8 @@ public void onPlayerMove(PlayerMoveEvent event) { Map context = new HashMap(); context.put("old_location", new dLocation(event.getFrom())); context.put("new_location", new dLocation(event.getTo())); - String determination = BukkitWorldScriptHelper.doEvents(Arrays.asList("player walks"), null, new dPlayer(event.getPlayer()), context, true); + String determination = BukkitWorldScriptHelper.doEvents(Arrays.asList("player walks"), null, + dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.equalsIgnoreCase("CANCELLED")) event.setCancelled(true); } diff --git a/src/main/java/net/aufdemrand/denizen/events/core/SyncChatSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/SyncChatSmartEvent.java index 6f92e8f723..86d3e9b3ee 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/SyncChatSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/SyncChatSmartEvent.java @@ -1,6 +1,7 @@ package net.aufdemrand.denizen.events.core; import net.aufdemrand.denizen.Settings; +import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizen.scripts.containers.core.BukkitWorldScriptHelper; import net.aufdemrand.denizencore.events.OldSmartEvent; import net.aufdemrand.denizencore.objects.Element; @@ -96,7 +97,7 @@ public void playerChat(final PlayerChatEvent event) { context.put("message", new Element(event.getMessage())); context.put("format", new Element(event.getMessage())); - dPlayer player = new dPlayer(event.getPlayer()); + dPlayer player = dEntity.getPlayerFrom(event.getPlayer()); String determination = BukkitWorldScriptHelper.doEvents(Arrays.asList("player chats"), null, player, context); diff --git a/src/main/java/net/aufdemrand/denizen/events/core/VehicleCollisionSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/VehicleCollisionSmartEvent.java index 6a7d33bb16..63cf085380 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/VehicleCollisionSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/VehicleCollisionSmartEvent.java @@ -134,8 +134,8 @@ public void vehicleEntityCollision(VehicleEntityCollisionEvent event) { context.put("vehicle", vehicle); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); List events = new ArrayList(); events.add("vehicle collides with entity"); diff --git a/src/main/java/net/aufdemrand/denizen/events/core/_TemplateSmartEvent.java b/src/main/java/net/aufdemrand/denizen/events/core/_TemplateSmartEvent.java index 963353c3f6..bcb0f1b067 100644 --- a/src/main/java/net/aufdemrand/denizen/events/core/_TemplateSmartEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/core/_TemplateSmartEvent.java @@ -1,6 +1,7 @@ package net.aufdemrand.denizen.events.core; import net.aufdemrand.denizen.BukkitScriptEntryData; +import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizencore.events.OldEventManager; import net.aufdemrand.denizencore.events.OldSmartEvent; import net.aufdemrand.denizen.objects.dLocation; @@ -83,7 +84,7 @@ public void onPlayerMove(PlayerMoveEvent event) { context.put("location", new dLocation(event.getTo())); // Fire the event! List determinations = OldEventManager.doEvents(Arrays.asList("x or y or z"), - new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null), context); + new BukkitScriptEntryData(dEntity.getPlayerFrom(event.getPlayer()), null), context); // Parse the determination and edit the event accordingly here for (String determination: determinations) { if (determination.equalsIgnoreCase("CANCELLED")) diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityTeleportScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityTeleportScriptEvent.java index ad94afdd21..6001b536d7 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityTeleportScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityTeleportScriptEvent.java @@ -124,8 +124,8 @@ else if (dLocation.matches(determination)) { @Override public ScriptEntryData getScriptEntryData() { - return new BukkitScriptEntryData(pEvent != null ? new dPlayer(pEvent.getPlayer()): null, - entity.isNPC() ? entity.getDenizenNPC(): null); + return new BukkitScriptEntryData(pEvent != null ? dEntity.getPlayerFrom(pEvent.getPlayer()) : null, + entity.isCitizensNPC() ? entity.getDenizenNPC(): null); } @Override diff --git a/src/main/java/net/aufdemrand/denizen/npc/traits/MobproxTrait.java b/src/main/java/net/aufdemrand/denizen/npc/traits/MobproxTrait.java index 9b699a4a38..a5c0544b98 100644 --- a/src/main/java/net/aufdemrand/denizen/npc/traits/MobproxTrait.java +++ b/src/main/java/net/aufdemrand/denizen/npc/traits/MobproxTrait.java @@ -51,7 +51,7 @@ public void run() { List removeme = new ArrayList(); removeme.addAll(inrange); for (Entity ent: nearby) { - if (ent instanceof LivingEntity && !(ent instanceof Player) && (acceptnpc || (!new dEntity(ent).isNPC()))) { + if (ent instanceof LivingEntity && !(ent instanceof Player) && (acceptnpc || (!dEntity.isCitizensNPC(ent)))) { if (removeme.contains(ent)) { removeme.remove(ent); } diff --git a/src/main/java/net/aufdemrand/denizen/objects/dChunk.java b/src/main/java/net/aufdemrand/denizen/objects/dChunk.java index 35c62bd96d..e924ac57d0 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dChunk.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dChunk.java @@ -250,8 +250,8 @@ public String getAttribute(Attribute attribute) { if (attribute.startsWith("players")) { dList entities = new dList(); for (Entity ent : chunk.getEntities()) - if (ent instanceof Player && (Depends.citizens == null || !CitizensAPI.getNPCRegistry().isNPC(ent))) - entities.add(new dPlayer((Player) ent).identify()); + if (dEntity.isPlayer(ent)) + entities.add(dEntity.getPlayerFrom(ent).identify()); return entities.getAttribute(attribute.fulfill(1)); } diff --git a/src/main/java/net/aufdemrand/denizen/objects/dCuboid.java b/src/main/java/net/aufdemrand/denizen/objects/dCuboid.java index 85086720b6..ad7016dae9 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dCuboid.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dCuboid.java @@ -1047,8 +1047,7 @@ public String getAttribute(Attribute attribute) { if (attribute.startsWith("list_living_entities")) { ArrayList entities = new ArrayList(); for (Entity ent : getWorld().getLivingEntities()) { - if (ent.isValid() && isInsideCuboid(ent.getLocation()) - && (Depends.citizens == null || !CitizensAPI.getNPCRegistry().isNPC(ent))) + if (ent.isValid() && isInsideCuboid(ent.getLocation()) && !dEntity.isCitizensNPC(ent)) entities.add(new dEntity(ent)); } return new dList(entities).getAttribute(attribute.fulfill(1)); diff --git a/src/main/java/net/aufdemrand/denizen/objects/dEntity.java b/src/main/java/net/aufdemrand/denizen/objects/dEntity.java index 70134e2aaa..fc1cb624bc 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dEntity.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dEntity.java @@ -1,25 +1,25 @@ package net.aufdemrand.denizen.objects; -import net.aufdemrand.denizen.Denizen; import net.aufdemrand.denizen.npc.traits.HealthTrait; -import net.aufdemrand.denizen.utilities.entity.DenizenEntityType; -import net.aufdemrand.denizen.utilities.entity.EntityMovement; -import net.aufdemrand.denizencore.objects.*; -import net.aufdemrand.denizencore.objects.properties.Property; -import net.aufdemrand.denizencore.objects.properties.PropertyParser; import net.aufdemrand.denizen.objects.properties.entity.EntityAge; import net.aufdemrand.denizen.objects.properties.entity.EntityColor; import net.aufdemrand.denizen.objects.properties.entity.EntityTame; -import net.aufdemrand.denizencore.scripts.ScriptRegistry; import net.aufdemrand.denizen.scripts.containers.core.EntityScriptContainer; import net.aufdemrand.denizen.scripts.containers.core.EntityScriptHelper; -import net.aufdemrand.denizencore.tags.Attribute; import net.aufdemrand.denizen.utilities.debugging.dB; import net.aufdemrand.denizen.utilities.depends.Depends; +import net.aufdemrand.denizen.utilities.entity.DenizenEntityType; +import net.aufdemrand.denizen.utilities.entity.EntityMovement; import net.aufdemrand.denizen.utilities.entity.Rotation; import net.aufdemrand.denizen.utilities.nbt.CustomNBT; +import net.aufdemrand.denizencore.objects.*; +import net.aufdemrand.denizencore.objects.properties.Property; +import net.aufdemrand.denizencore.objects.properties.PropertyParser; +import net.aufdemrand.denizencore.scripts.ScriptRegistry; +import net.aufdemrand.denizencore.tags.Attribute; import net.aufdemrand.denizencore.tags.TagContext; import net.aufdemrand.denizencore.utilities.CoreUtilities; +import net.citizensnpcs.api.CitizensAPI; import net.minecraft.server.v1_8_R1.*; import org.bukkit.*; import org.bukkit.Material; @@ -47,6 +47,37 @@ public class dEntity implements dObject, Adjustable { + ///////////////////// + // STATIC METHODS + ///////////////// + + public static boolean isNPC(Entity entity) { + return entity != null && entity.hasMetadata("NPC") && entity.getMetadata("NPC").get(0).asBoolean(); + } + + public static boolean isCitizensNPC(Entity entity) { + return entity != null && Depends.citizens != null && CitizensAPI.getNPCRegistry().isNPC(entity); + } + + public static dNPC getNPCFrom(Entity entity) { + if (isNPC(entity)) + return dNPC.fromEntity(entity); + else + return null; + } + + public static boolean isPlayer(Entity entity) { + return entity != null && entity instanceof Player && !isNPC(entity); + } + + public static dPlayer getPlayerFrom(Entity entity) { + if (isPlayer(entity)) + return dPlayer.mirrorBukkitPlayer((Player) entity); + else + return null; + } + + ////////////////// // OBJECT FETCHER //////////////// @@ -252,8 +283,8 @@ public dEntity(Entity entity) { entityScript = EntityScriptHelper.getEntityScript(entity); this.uuid = entity.getUniqueId(); this.entity_type = DenizenEntityType.getByEntity(entity); - if (Depends.citizens != null && net.citizensnpcs.api.CitizensAPI.getNPCRegistry().isNPC(entity)) { - this.npc = new dNPC(net.citizensnpcs.api.CitizensAPI.getNPCRegistry().getNPC(entity)); + if (isCitizensNPC(entity)) { + this.npc = getNPCFrom(entity); } } else dB.echoError("Entity referenced is null!"); } @@ -389,11 +420,12 @@ public dObject getDenizenObject() { if (entity == null) return null; - if (isNPC()) { + if (isCitizensNPC()) return getDenizenNPC(); - } - else if (isPlayer()) return new dPlayer(getPlayer()); - else return this; + else if (isPlayer()) + return new dPlayer(getPlayer()); + else + return this; } /** @@ -428,7 +460,7 @@ public boolean isLivingEntity() { return (entity instanceof LivingEntity); } - public boolean hasInventory() { return getBukkitEntity() instanceof InventoryHolder || isNPC(); } + public boolean hasInventory() { return getBukkitEntity() instanceof InventoryHolder || isCitizensNPC(); } /** * Get the dNPC corresponding to this dEntity @@ -437,13 +469,10 @@ public boolean isLivingEntity() { */ public dNPC getDenizenNPC() { - if (Depends.citizens == null) - return null; if (npc != null) return npc; - else if (entity != null && net.citizensnpcs.api.CitizensAPI.getNPCRegistry().isNPC(entity)) - return dNPC.fromEntity(entity); - else return null; + else + return getNPCFrom(entity); } /** @@ -453,11 +482,11 @@ else if (entity != null && net.citizensnpcs.api.CitizensAPI.getNPCRegistry().isN */ public boolean isNPC() { - if (Depends.citizens == null) - return false; - if (npc != null) return true; - else if (entity != null && net.citizensnpcs.api.CitizensAPI.getNPCRegistry().isNPC(entity)) return true; - else return false; + return npc != null || isNPC(entity); + } + + public boolean isCitizensNPC() { + return npc != null || isCitizensNPC(entity); } /** @@ -467,8 +496,10 @@ public boolean isNPC() { */ public Player getPlayer() { - - return (Player) entity; + if (isPlayer()) + return (Player) entity; + else + return null; } /** @@ -478,8 +509,10 @@ public Player getPlayer() { */ public dPlayer getDenizenPlayer() { - - return new dPlayer(getPlayer()); + if (isPlayer()) + return new dPlayer(getPlayer()); + else + return null; } /** @@ -549,7 +582,7 @@ public boolean hasShooter() { public Inventory getBukkitInventory() { if (hasInventory()) { - if (!isNPC()) + if (!isCitizensNPC()) return ((InventoryHolder) getBukkitEntity()).getInventory(); } return null; @@ -562,12 +595,12 @@ public Inventory getBukkitInventory() { */ public dInventory getInventory() { - return hasInventory() ? isNPC() ? getDenizenNPC().getDenizenInventory() + return hasInventory() ? isCitizensNPC() ? getDenizenNPC().getDenizenInventory() : new dInventory(getBukkitInventory()) : null; } public String getName() { - if (isNPC()) + if (isCitizensNPC()) return getDenizenNPC().getCitizen().getName(); if (entity instanceof Player) return ((Player) entity).getName(); @@ -682,7 +715,7 @@ public World getWorld() { public void spawnAt(Location location) { // If the entity is already spawned, teleport it. - if (isNPC()) { + if (isCitizensNPC()) { if (getDenizenNPC().getCitizen().isSpawned()) getDenizenNPC().getCitizen().teleport(location, TeleportCause.PLUGIN); else { @@ -901,7 +934,7 @@ public void remove() { } public void teleport(Location location) { - if (isNPC()) + if (isCitizensNPC()) getDenizenNPC().getCitizen().teleport(location, TeleportCause.PLUGIN); else entity.teleport(location); @@ -1110,13 +1143,13 @@ public String identifySimple() { public String identifyType() { - if (isNPC()) return "npc"; + if (isCitizensNPC()) return "npc"; else if (isPlayer()) return "player"; else return "e@" + entity_type.getName(); } public String identifySimpleType() { - if (isNPC()) return "npc"; + if (isCitizensNPC()) return "npc"; else if (isPlayer()) return "player"; else return entity_type.getLowercaseName(); } @@ -1128,7 +1161,7 @@ public String toString() { @Override public boolean isUnique() { - return (isPlayer() || isNPC() || isSpawned()); // || isSaved() + return (isPlayer() || isCitizensNPC() || isSpawned()); // || isSaved() } @Override @@ -1896,7 +1929,7 @@ else if ((float) getLivingEntity().getHealth() / maxHealth < 1) // Returns the player that last killed the entity. // --> if (attribute.startsWith("killer")) - return new dPlayer(getLivingEntity().getKiller()) + return getPlayerFrom(getLivingEntity().getKiller()) .getAttribute(attribute.fulfill(1)); // <--[tag] @@ -2026,10 +2059,10 @@ else if ((float) getLivingEntity().getHealth() / maxHealth < 1) // @returns Element(Boolean) // @group data // @description - // Returns whether the entity is an NPC. + // Returns whether the entity is a Citizens NPC. // --> if (attribute.startsWith("is_npc")) { - return new Element(isNPC()) + return new Element(isCitizensNPC()) .getAttribute(attribute.fulfill(1)); } @@ -2240,7 +2273,7 @@ public void adjust(Mechanism mechanism) { // --> // TODO: Maybe a property? if (mechanism.matches("max_health") && mechanism.requireInteger()) { - if (isNPC()) { + if (isCitizensNPC()) { if (getDenizenNPC().getCitizen().hasTrait(HealthTrait.class)) getDenizenNPC().getCitizen().getTrait(HealthTrait.class).setMaxhealth(mechanism.getValue().asInt()); else diff --git a/src/main/java/net/aufdemrand/denizen/objects/dPlayer.java b/src/main/java/net/aufdemrand/denizen/objects/dPlayer.java index 0f13c665cc..a84d28f666 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dPlayer.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dPlayer.java @@ -176,8 +176,8 @@ public dPlayer(UUID uuid) { public dPlayer(Player player) { this((OfflinePlayer)player); - if (Depends.citizens != null && CitizensAPI.getNPCRegistry().isNPC(player)) - NPCPlayer = player; + if (dEntity.isNPC(player)) + throw new IllegalStateException("NPCs are not allowed as dPlayer objects!"); } @@ -187,14 +187,11 @@ public dPlayer(Player player) { OfflinePlayer offlinePlayer = null; - Player NPCPlayer = null; - public boolean isValid() { return getPlayerEntity() != null || getOfflinePlayer() != null; } public Player getPlayerEntity() { - if (NPCPlayer != null) return NPCPlayer; if (offlinePlayer == null) return null; return Bukkit.getPlayer(offlinePlayer.getUniqueId()); } @@ -744,14 +741,13 @@ public String getAttribute(Attribute attribute) { for (String ent: context.split("\\|")) { boolean valid = false; - if (ent.equalsIgnoreCase("npc") && Depends.citizens != null - && CitizensAPI.getNPCRegistry().isNPC(entity)) { + if (ent.equalsIgnoreCase("npc") && dEntity.isCitizensNPC(entity)) { valid = true; } else if (dEntity.matches(ent)) { // only accept generic entities that are not NPCs if (dEntity.valueOf(ent).isGeneric()) { - if (Depends.citizens == null || !CitizensAPI.getNPCRegistry().isNPC(entity)) { + if (dEntity.isCitizensNPC(entity)) { valid = true; } } diff --git a/src/main/java/net/aufdemrand/denizen/objects/dWorld.java b/src/main/java/net/aufdemrand/denizen/objects/dWorld.java index cc9f4fd237..3b64f57a0b 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dWorld.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dWorld.java @@ -242,7 +242,7 @@ public String getAttribute(Attribute attribute) { ArrayList players = new ArrayList(); for (Player player : getWorld().getPlayers()) { - if (Depends.citizens == null || !CitizensAPI.getNPCRegistry().isNPC(player)) + if (!dEntity.isNPC(player)) players.add(new dPlayer(player)); } diff --git a/src/main/java/net/aufdemrand/denizen/objects/properties/entity/EntityAge.java b/src/main/java/net/aufdemrand/denizen/objects/properties/entity/EntityAge.java index 533e530f78..3d94e924bf 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/properties/entity/EntityAge.java +++ b/src/main/java/net/aufdemrand/denizen/objects/properties/entity/EntityAge.java @@ -44,7 +44,7 @@ public boolean isBaby() { } public void setBaby(boolean bool) { - if (ageable.isNPC()) { + if (ageable.isCitizensNPC()) { NPC ageable_npc = ageable.getDenizenNPC().getCitizen(); if (!ageable_npc.hasTrait(Age.class)) ageable_npc.addTrait(Age.class); @@ -63,7 +63,7 @@ else if (bool) } public void setAge(int val) { - if (ageable.isNPC()) { + if (ageable.isCitizensNPC()) { NPC ageable_npc = ageable.getDenizenNPC().getCitizen(); ageable_npc.getTrait(Age.class).setAge(val); } diff --git a/src/main/java/net/aufdemrand/denizen/objects/properties/entity/EntityInfected.java b/src/main/java/net/aufdemrand/denizen/objects/properties/entity/EntityInfected.java index 7403308f3e..5003514315 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/properties/entity/EntityInfected.java +++ b/src/main/java/net/aufdemrand/denizen/objects/properties/entity/EntityInfected.java @@ -45,7 +45,7 @@ public boolean isInfected() { public void setInfected(boolean bool) { if (bool) { - if (infected.isNPC()) { + if (infected.isCitizensNPC()) { NPC infected_npc = infected.getDenizenNPC().getCitizen(); infected_npc.setBukkitEntityType(EntityType.ZOMBIE); if (!infected_npc.getTrait(ZombieModifier.class).toggleVillager()) diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/AttackCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/AttackCommand.java index 5527fdf2c5..4b4347b8f4 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/AttackCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/AttackCommand.java @@ -79,7 +79,7 @@ public void execute(final ScriptEntry scriptEntry) throws CommandExecutionExcept // the target or stop attacking for (dEntity entity : entities) { - if (entity.isNPC()) { + if (entity.isCitizensNPC()) { Navigator nav = entity.getDenizenNPC().getCitizen().getNavigator(); if (!cancel) { diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/EquipCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/EquipCommand.java index 15a949169f..dd02c130aa 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/EquipCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/EquipCommand.java @@ -94,7 +94,7 @@ public void execute(ScriptEntry scriptEntry) if (entity.isGeneric()) { dB.echoError(scriptEntry.getResidingQueue(), "Cannot equip generic entity " + entity.identify() + "!"); } - else if (entity.isNPC()) { + else if (entity.isCitizensNPC()) { dNPC npc = entity.getDenizenNPC(); diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/FollowCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/FollowCommand.java index dd0844d41c..10f5e5f7b7 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/FollowCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/FollowCommand.java @@ -91,7 +91,7 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { + target.debug()); for (dEntity entity : entities.filter(dEntity.class)) { - if (entity.isNPC()) { + if (entity.isCitizensNPC()) { dNPC npc = entity.getDenizenNPC(); if (lead != null) npc.getNavigator().getLocalParameters().distanceMargin(lead.asDouble()); diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/HeadCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/HeadCommand.java index 6011de8809..f84a939d5a 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/HeadCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/HeadCommand.java @@ -83,7 +83,7 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { // Loop through entities, apply the item/skin for (dEntity entity : entities) { - if (entity.isNPC()) { + if (entity.isCitizensNPC()) { if (!entity.getDenizenNPC().getCitizen().hasTrait(Equipment.class)) entity.getDenizenNPC().getCitizen().addTrait(Equipment.class); Equipment trait = entity.getDenizenNPC().getCitizen().getTrait(Equipment.class); diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/HealthCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/HealthCommand.java index a800d2bb31..535ee03281 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/HealthCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/HealthCommand.java @@ -79,7 +79,7 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { action = Element.TRUE; for (dEntity target: targets) { - if (target.isNPC()) { + if (target.isCitizensNPC()) { if (action.asString().equalsIgnoreCase("true")) target.getDenizenNPC().getCitizen().addTrait(HealthTrait.class); else if (action.asString().equalsIgnoreCase("false")) @@ -91,7 +91,7 @@ else if (target.getDenizenNPC().getCitizen().hasTrait(HealthTrait.class)) } if (qty != null) { - if (target.isNPC()) { + if (target.isCitizensNPC()) { if (target.getDenizenNPC().getCitizen().hasTrait(HealthTrait.class)) target.getDenizenNPC().getCitizen().getTrait(HealthTrait.class).setMaxhealth(qty.asInt()); else diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/InvisibleCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/InvisibleCommand.java index 1bb86c9192..cf8aa8df05 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/InvisibleCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/InvisibleCommand.java @@ -61,7 +61,7 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { // Report to dB dB.report(scriptEntry, getName(), state.debug() + target.debug()); - if (target.isNPC()) { + if (target.isCitizensNPC()) { NPC npc = target.getDenizenNPC().getCitizen(); if (!npc.hasTrait(InvisibleTrait.class)) npc.addTrait(InvisibleTrait.class); diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/RemoveCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/RemoveCommand.java index a6f8163f93..d787b61250 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/RemoveCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/RemoveCommand.java @@ -91,7 +91,7 @@ public void execute(final ScriptEntry scriptEntry) throws CommandExecutionExcept if (conditionsMet) { - if (entity.isNPC()) { + if (entity.isCitizensNPC()) { entity.getDenizenNPC().getCitizen().destroy(); } else { diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/WalkCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/WalkCommand.java index 8f599388b7..7044ad930a 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/WalkCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/entity/WalkCommand.java @@ -106,7 +106,7 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { List npcs = new ArrayList(); final List waitForEntities = new ArrayList(); for (final dEntity entity : entities) { - if (entity.isNPC()) { + if (entity.isCitizensNPC()) { dNPC npc = entity.getDenizenNPC(); npcs.add(npc); if (!npc.isSpawned()) { diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/npc/CreateCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/npc/CreateCommand.java index d9f6435484..4d6080104b 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/npc/CreateCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/npc/CreateCommand.java @@ -21,8 +21,8 @@ public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException && arg.matchesArgumentType(dEntity.class)) { // Avoid duplication of objects dEntity ent = arg.asType(dEntity.class); - if (!ent.isGeneric() && !ent.isNPC()) - throw new InvalidArgumentsException("Entity supplied must be generic or an NPC!"); + if (!ent.isGeneric() && !ent.isCitizensNPC()) + throw new InvalidArgumentsException("Entity supplied must be generic or a Citizens NPC!"); scriptEntry.addObject("entity_type", ent); } @@ -54,7 +54,7 @@ public void execute(final ScriptEntry scriptEntry) throws CommandExecutionExcept + (traits != null ? traits.debug() : "")); dNPC created; - if (!type.isGeneric() && type.isNPC()) { + if (!type.isGeneric() && type.isCitizensNPC()) { created = new dNPC(type.getDenizenNPC().getCitizen().clone()); created.getCitizen().setName(name.asString()); } diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/world/BreakCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/world/BreakCommand.java index 6b76067090..b7e2ffd64a 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/world/BreakCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/world/BreakCommand.java @@ -87,7 +87,7 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { config.callback(new Runnable() { @Override public void run() { - if (entity.isNPC()) { + if (entity.isCitizensNPC()) { DenizenAPI.getDenizenNPC(entity.getDenizenNPC().getCitizen()).action("dig", null, context); se.setFinished(true); } diff --git a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/BukkitWorldScriptHelper.java b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/BukkitWorldScriptHelper.java index 304dd2d27b..29507b0ae2 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/BukkitWorldScriptHelper.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/BukkitWorldScriptHelper.java @@ -140,7 +140,7 @@ public void blockBreak(BlockBreakEvent event) { context.put("xp", new Element(event.getExpToDrop())); // Do events, get the determination - String determination = doEvents(events, null, new dPlayer(event.getPlayer()), context, true); + String determination = doEvents(events, null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) { // Straight up cancel the event @@ -296,7 +296,7 @@ public void blockDamage(BlockDamageEvent event) { context.put("material", material); String determination = doEvents(events, - null, new dPlayer(event.getPlayer()), context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -486,7 +486,7 @@ public void blockIgnite(BlockIgniteEvent event) { String determination = doEvents(Arrays.asList ("block ignites", material.identifySimple() + " ignites"), - null, event.getPlayer() != null ? new dPlayer(event.getPlayer()): null, context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -639,7 +639,7 @@ public void blockPlace(BlockPlaceEvent event) { context.put("item_in_hand", item); String determination = doEvents(events, - null, new dPlayer(event.getPlayer()), context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -813,7 +813,7 @@ public void furnaceExtract(FurnaceExtractEvent event) { ("player takes item from furnace", "player takes " + item.identifySimple() + " from furnace", "player takes " + item.identifyMaterial() + " from furnace"), - null, new dPlayer(event.getPlayer()), context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (Argument.valueOf(determination) .matchesPrimitive(aH.PrimitiveType.Integer)) { @@ -925,7 +925,7 @@ public void signChange(final SignChangeEvent event) { List events = new ArrayList(); Map context = new HashMap(); - dPlayer player = new dPlayer(event.getPlayer()); + dPlayer player = dEntity.getPlayerFrom(event.getPlayer()); Sign sign = (Sign) block.getState(); dLocation location = new dLocation(block.getLocation()); dMaterial material = dMaterial.getMaterialFrom(block.getType(), block.getData()); @@ -1121,8 +1121,8 @@ public void hangingBreak(HangingBreakEvent event) { dEntity entity = new dEntity(subEvent.getRemover()); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); // Look for cuboids that contain the block's location List cuboids = dCuboid.getNotableCuboidsContaining(event.getEntity().getLocation()); @@ -1182,7 +1182,7 @@ public void hangingPlace(HangingPlaceEvent event) { String determination = doEvents(Arrays.asList ("player places hanging", "player places " + hanging.identifyType()), - null, new dPlayer(event.getPlayer()), context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -1255,12 +1255,9 @@ public void onCombust(EntityCombustEvent event) { dPlayer player = null; dNPC npc = null; - if (Depends.citizens != null && CitizensAPI.getNPCRegistry().isNPC(entity.getBukkitEntity())) { - npc = dNPC.mirrorCitizensNPC(CitizensAPI.getNPCRegistry().getNPC(entity.getBukkitEntity())); - } - else if (entity.getBukkitEntity() instanceof Player) { - player = new dPlayer((Player)entity.getBukkitEntity()); - } + + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); String determination = doEvents(Arrays.asList ("entity combusts", @@ -1496,8 +1493,8 @@ public void entityRegainHealth(EntityRegainHealthEvent event) { context.put("amount", new Element(event.getAmount())); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); String determination = doEvents(Arrays.asList ("entity heals", @@ -1538,8 +1535,8 @@ public void entityPortalEnter(EntityPortalEnterEvent event) { context.put("location", new dLocation(event.getLocation())); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); doEvents(Arrays.asList ("entity enters portal", @@ -1570,8 +1567,8 @@ public void entityPortalExit(EntityPortalExitEvent event) { context.put("location", new dLocation(event.getTo())); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); doEvents(Arrays.asList ("entity exits portal", @@ -1600,7 +1597,7 @@ public void playerPortalEnter(PlayerPortalEvent event) { return; } - dPlayer player = new dPlayer(event.getPlayer()); + dPlayer player = dEntity.getPlayerFrom(event.getPlayer()); Map context = new HashMap(); context.put("from", new dLocation(event.getFrom())); @@ -1652,8 +1649,8 @@ public void entityShootBow(EntityShootBowEvent event) { context.put("entity", entity.getDenizenObject()); context.put("force", new Element(event.getForce() * 3)); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); String determination = doEvents(Arrays.asList ("entity shoots bow", @@ -1734,7 +1731,7 @@ public void entityTame(EntityTameEvent event) { events.add(entity.identifyType() + " tamed"); if (event.getOwner() instanceof Player) { - player = new dPlayer((Player) event.getOwner()); + player = dEntity.getPlayerFrom((Player) event.getOwner()); events.add("player tames entity"); events.add("player tames " + entity.identifyType()); } @@ -1788,8 +1785,8 @@ public void entityTarget(EntityTargetEvent event) { dEntity target = new dEntity(event.getTarget()); context.put("target", target.getDenizenObject()); - if (target.isNPC()) { npc = target.getDenizenNPC(); } - else if (target.isPlayer()) player = new dPlayer(target.getPlayer()); + if (target.isCitizensNPC()) { npc = target.getDenizenNPC(); } + else if (target.isPlayer()) player = target.getDenizenPlayer(); events.add("entity targets entity"); events.add("entity targets entity because " + reason); @@ -1916,8 +1913,8 @@ public void foodLevelChange(FoodLevelChangeEvent event) { context.put("food", new Element(event.getFoodLevel())); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); String determination = doEvents(Arrays.asList ("entity changes food level", @@ -2164,8 +2161,8 @@ public void projectileHit(ProjectileHitEvent event) { // // --> - if (shooter.isNPC()) { npc = shooter.getDenizenNPC(); } - else if (shooter.isPlayer()) { player = new dPlayer(shooter.getPlayer()); } + if (shooter.isCitizensNPC()) { npc = shooter.getDenizenNPC(); } + else if (shooter.isPlayer()) { player = shooter.getDenizenPlayer(); } events.add("entity shoots block"); events.add("entity shoots block with " + projectile.identifyType()); @@ -2364,7 +2361,7 @@ public void craftItemEvent(PrepareItemCraftEvent event) { Player player = (Player) event.getView().getPlayer(); - String determination = doEvents(events, null, new dPlayer(player), context); + String determination = doEvents(events, null, dEntity.getPlayerFrom(player), context); if (determination.toUpperCase().startsWith("CANCELLED")) { inventory.setResult(null); @@ -2399,7 +2396,7 @@ public void enchantItemEvent(EnchantItemEvent event) { Map context = new HashMap(); - dPlayer player = new dPlayer(event.getEnchanter()); + dPlayer player = dEntity.getPlayerFrom(event.getEnchanter()); dItem item = new dItem(event.getItem()); context.put("location", new dLocation(event.getEnchantBlock().getLocation())); @@ -2503,7 +2500,7 @@ public void inventoryClickEvent(InventoryClickEvent event) { dItem holding; dInventory inventory = dInventory.mirrorBukkitInventory(event.getInventory()); - final dPlayer player = new dPlayer((Player) event.getWhoClicked()); + final dPlayer player = dEntity.getPlayerFrom((Player) event.getWhoClicked()); String type = event.getInventory().getType().name(); String click = event.getClick().name(); String slotType = event.getSlotType().name(); @@ -2636,21 +2633,22 @@ public void inventoryCloseEvent(InventoryCloseEvent event) { Map context = new HashMap(); - Player player = (Player) event.getPlayer(); - dPlayer pl = null; + dEntity entity = new dEntity(event.getPlayer()); + + dPlayer player = null; dNPC npc = null; - if (Depends.citizens != null && CitizensAPI.getNPCRegistry().isNPC(player)) - npc = new dNPC(CitizensAPI.getNPCRegistry().getNPC(player)); - else - pl = new dPlayer(player); + + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); + String type = event.getInventory().getType().name(); context.put("inventory", dInventory.mirrorBukkitInventory(event.getInventory())); doEvents(Arrays.asList - ((pl != null ? "player": "npc") + " closes inventory", - (pl != null ? "player": "npc") + " closes " + type), - npc, pl, context); + ((player != null ? "player": "npc") + " closes inventory", + (player != null ? "player": "npc") + " closes " + type), + npc, player, context); } // <--[event] @@ -2676,7 +2674,7 @@ public void inventoryDragEvent(InventoryDragEvent event) { dItem item = null; Inventory inventory = event.getInventory(); - final dPlayer player = new dPlayer((Player) event.getWhoClicked()); + final dPlayer player = dEntity.getPlayerFrom((Player) event.getWhoClicked()); String type = event.getInventory().getType().name(); List events = new ArrayList(); @@ -2749,7 +2747,6 @@ public void inventoryOpenEvent(InventoryOpenEvent event) { Map context = new HashMap(); - Player player = (Player) event.getPlayer(); String type = event.getInventory().getType().name(); context.put("inventory", dInventory.mirrorBukkitInventory(event.getInventory())); @@ -2757,7 +2754,7 @@ public void inventoryOpenEvent(InventoryOpenEvent event) { String determination = doEvents(Arrays.asList ("player opens inventory", "player opens " + type), - null, new dPlayer(player), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -2862,7 +2859,7 @@ public void playerEditBook(PlayerEditBookEvent event) { } String determination = doEvents(events, - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -2906,7 +2903,7 @@ public void playerBreakItem(PlayerItemBreakEvent event) { ("player breaks item", "player breaks " + item.identifySimple(), "player breaks " + item.identifyMaterial()), - null, new dPlayer(event.getPlayer()), context).toUpperCase(); + null, dEntity.getPlayerFrom(event.getPlayer()), context).toUpperCase(); if (determination.startsWith("CANCELLED")) { // The ItemStack isn't really gone yet, only set to stack size 0. @@ -2948,7 +2945,7 @@ public void playerAnimation(PlayerAnimationEvent event) { String determination = doEvents(Arrays.asList ("player animates", "player animates " + animation), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -2974,7 +2971,7 @@ public void playerBedEnter(PlayerBedEnterEvent event) { String determination = doEvents (Arrays.asList("player enters bed"), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -2997,7 +2994,7 @@ public void playerBedLeave(PlayerBedLeaveEvent event) { doEvents(Arrays.asList ("player leaves bed"), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); } // <--[event] @@ -3023,7 +3020,7 @@ public void playerBucketEmpty(PlayerBucketEmptyEvent event) { String determination = doEvents(Arrays.asList ("player empties bucket"), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); // Handle message if (determination.toUpperCase().startsWith("CANCELLED")) @@ -3058,7 +3055,7 @@ public void playerBucketFill(PlayerBucketFillEvent event) { String determination = doEvents(Arrays.asList ("player fills bucket"), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); // Handle message if (determination.toUpperCase().startsWith("CANCELLED")) @@ -3097,7 +3094,7 @@ public void playerChangedWorld(PlayerChangedWorldEvent event) { "player changes world to " + destinationWorld.identifySimple(), "player changes world from " + originWorld.identifySimple() + " to " + destinationWorld.identifySimple()), - null, new dPlayer(event.getPlayer()), context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); } // <--[event] @@ -3129,7 +3126,7 @@ public void playerDropItem(PlayerDropItemEvent event) { events.add("player drops item"); events.add("player drops " + item.identifySimple()); - String determination = doEvents(events, null, new dPlayer(event.getPlayer()), context, true); + String determination = doEvents(events, null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -3163,7 +3160,7 @@ public void playerEggThrow(PlayerEggThrowEvent event) { if (event.isHatching()) events.add("player throws hatching egg"); else events.add("player throws non-hatching egg"); - String determination = doEvents(events, null, new dPlayer(event.getPlayer()), context); + String determination = doEvents(events, null, dEntity.getPlayerFrom(event.getPlayer()), context); if (determination.equalsIgnoreCase("CANCELLED")) { event.setHatching(false); @@ -3195,7 +3192,7 @@ public void playerExpChange(PlayerExpChangeEvent event) { String determination = doEvents(Arrays.asList ("player changes xp"), - null, new dPlayer(event.getPlayer()), context).toUpperCase(); + null, dEntity.getPlayerFrom(event.getPlayer()), context).toUpperCase(); if (determination.equals("CANCELLED")) { event.setAmount(0); @@ -3243,13 +3240,13 @@ public void playerFish(PlayerFishEvent event) { context.put("item", new dItem(((Item) caught).getItemStack())); } - if (entity.isNPC()) npc = entity.getDenizenNPC(); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); events.add("player fishes " + entity.identifyType()); events.add("player fishes " + entity.identifyType() + " while " + state); } - String determination = doEvents(events, npc, new dPlayer(event.getPlayer()), context, true); + String determination = doEvents(events, npc, dEntity.getPlayerFrom(event.getPlayer()), context, true); // Handle message if (determination.toUpperCase().startsWith("CANCELLED")) @@ -3277,7 +3274,7 @@ public void playerGameModeChange(PlayerGameModeChangeEvent event) { String determination = doEvents(Arrays.asList ("player changes gamemode", "player changes gamemode to " + event.getNewGameMode().name()), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); // Handle message if (determination.toUpperCase().startsWith("CANCELLED")) @@ -3310,7 +3307,7 @@ public void playerInteract(PlayerInteractEvent event) { Map context = new HashMap(); Action action = event.getAction(); dItem item = null; - dPlayer player = new dPlayer(event.getPlayer()); + dPlayer player = dEntity.getPlayerFrom(event.getPlayer()); List events = new ArrayList(); @@ -3433,7 +3430,7 @@ public void playerInteractStand(PlayerInteractAtEntityEvent event) { dItem item = new dItem(event.getPlayer().getItemInHand()); context.put("item", item); dNPC npc = null; - if (entity.isNPC()) npc = entity.getDenizenNPC(); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); List events = new ArrayList(); events.add("player right clicks at entity"); events.add("player right clicks at " + entity.identifyType()); @@ -3460,7 +3457,7 @@ public void playerInteractStand(PlayerInteractAtEntityEvent event) { // Add in cuboids context, with either the cuboids or an empty list context.put("cuboids", cuboid_context); List determinations = OldEventManager.doEvents(events, - new BukkitScriptEntryData(new dPlayer(event.getPlayer()), npc), context, true); + new BukkitScriptEntryData(dEntity.getPlayerFrom(event.getPlayer()), npc), context, true); for (String determination: determinations) { if (determination.equalsIgnoreCase("CANCELLED")) { event.setCancelled(true); @@ -3502,7 +3499,7 @@ public void playerInteractEntity(PlayerInteractEntityEvent event) { context.put("entity", entity.getDenizenObject()); context.put("item", item); - if (entity.isNPC()) npc = entity.getDenizenNPC(); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); List events = new ArrayList(); events.add("player right clicks entity"); @@ -3543,7 +3540,7 @@ public void playerInteractEntity(PlayerInteractEntityEvent event) { // Add in cuboids context, with either the cuboids or an empty list context.put("cuboids", cuboid_context); - determination = doEvents(events, npc, new dPlayer(event.getPlayer()), context, true); + determination = doEvents(events, npc, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -3576,13 +3573,13 @@ public void playerItemConsume(PlayerItemConsumeEvent event) { events.add("player consumes " + item.identifySimple()); events.add("player consumes " + item.identifyMaterial()); - String determination = doEvents(events, null, new dPlayer(event.getPlayer()), context, true); + String determination = doEvents(events, null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); else if (dItem.matches(determination)) { - dItem newitem = dItem.valueOf(determination, new dPlayer(event.getPlayer()), null); + dItem newitem = dItem.valueOf(determination, dEntity.getPlayerFrom(event.getPlayer()), null); if (newitem != null) event.setItem(newitem.getItemStack()); } @@ -3611,7 +3608,7 @@ public void playerJoinEvent(PlayerJoinEvent event) { String determination = doEvents(Arrays.asList ("player joins", "player join"), - null, new dPlayer(player), context); + null, dEntity.getPlayerFrom(player), context); // Handle message if (!determination.equals("none")) { @@ -3647,7 +3644,7 @@ public void playerKick(PlayerKickEvent event) { String determination = doEvents(Arrays.asList ("player kicked"), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (!determination.equals("none")) { event.setLeaveMessage(determination); @@ -3680,7 +3677,7 @@ public void playerLeashEntity(PlayerLeashEntityEvent event) { String determination = doEvents(Arrays.asList ("player leashes entity", "player leashes " + entity.identifyType()), - null, new dPlayer(event.getPlayer()), context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.equalsIgnoreCase("CANCELLED")) event.setCancelled(true); @@ -3705,7 +3702,7 @@ public void playerLevelChange(PlayerLevelChangeEvent event) { ("player levels up", "player levels up to " + event.getNewLevel(), "player levels up from " + event.getOldLevel()), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); } // <--[event] @@ -3739,7 +3736,7 @@ public void playerLogin(PlayerLoginEvent event) { events.add("player logs in"); events.add("player login"); String determination = doEvents(events, - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (determination.toUpperCase().startsWith("KICKED")) event.disallow(PlayerLoginEvent.Result.KICK_OTHER, determination.length() > 7 ? determination.substring(7): determination); @@ -3773,7 +3770,7 @@ public void playerMove(PlayerMoveEvent event) { "player walks over " + name, "walked over notable", "walked over " + name), - null, new dPlayer(event.getPlayer()), context, true); + null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED") || determination.toUpperCase().startsWith("FROZEN")) @@ -3816,7 +3813,7 @@ public void playerPickupItem(PlayerPickupItemEvent event) { events.add("player takes " + item.identifySimple()); events.add("player takes " + item.identifyMaterial()); - String determination = doEvents(events, null, new dPlayer(event.getPlayer()), context, true); + String determination = doEvents(events, null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -3844,7 +3841,7 @@ public void playerQuit(PlayerQuitEvent event) { String determination = doEvents(Arrays.asList ("player quits", "player quit"), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (!determination.equals("none")) { event.setQuitMessage(determination); @@ -3875,7 +3872,7 @@ public void playerRespawn(PlayerRespawnEvent event) { if (event.isBedSpawn()) events.add("player respawns at bed"); else events.add("player respawns elsewhere"); - String determination = doEvents(events, null, new dPlayer(event.getPlayer()), context); + String determination = doEvents(events, null, dEntity.getPlayerFrom(event.getPlayer()), context); if (dLocation.matches(determination)) { dLocation location = dLocation.valueOf(determination); @@ -3915,7 +3912,7 @@ public void playerShearEntity(PlayerShearEntityEvent event) { events.add("player shears " + color + " sheep"); } - String determination = doEvents(events, null, new dPlayer(event.getPlayer()), context, true); + String determination = doEvents(events, null, dEntity.getPlayerFrom(event.getPlayer()), context, true); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -3944,7 +3941,7 @@ public void playerToggleFlight(PlayerToggleFlightEvent event) { String determination = doEvents(Arrays.asList ("player toggles flight", "player " + (event.isFlying() ? "starts" : "stops") + " flying"), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -3973,7 +3970,7 @@ public void playerToggleSneak(PlayerToggleSneakEvent event) { String determination = doEvents(Arrays.asList ("player toggles sneak", "player " + (event.isSneaking() ? "starts" : "stops") + " sneaking"), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -4002,7 +3999,7 @@ public void playerToggleSprint(PlayerToggleSprintEvent event) { String determination = doEvents(Arrays.asList ("player toggles sprint", "player " + (event.isSprinting() ? "starts" : "stops") + " sprinting"), - null, new dPlayer(event.getPlayer()), context); + null, dEntity.getPlayerFrom(event.getPlayer()), context); if (determination.toUpperCase().startsWith("CANCELLED")) event.setCancelled(true); @@ -4081,8 +4078,8 @@ public void vehicleDamage(VehicleDamageEvent event) { dEntity entity = new dEntity(event.getAttacker()); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); events.add("entity damages vehicle"); events.add("entity damages " + vehicle.identifyType()); @@ -4145,8 +4142,8 @@ public void vehicleDestroy(VehicleDestroyEvent event) { dEntity entity = new dEntity(event.getAttacker()); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); events.add("entity destroys vehicle"); events.add("entity destroys " + vehicle.identifyType()); @@ -4195,8 +4192,8 @@ public void vehicleEnter(VehicleEnterEvent event) { context.put("vehicle", vehicle); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); String determination = doEvents(Arrays.asList ("entity enters vehicle", @@ -4244,8 +4241,8 @@ public void vehicleExit(VehicleExitEvent event) { context.put("vehicle", vehicle); context.put("entity", entity.getDenizenObject()); - if (entity.isNPC()) npc = entity.getDenizenNPC(); - else if (entity.isPlayer()) player = new dPlayer(entity.getPlayer()); + if (entity.isCitizensNPC()) npc = entity.getDenizenNPC(); + else if (entity.isPlayer()) player = entity.getDenizenPlayer(); String determination = doEvents(Arrays.asList ("entity exits vehicle", diff --git a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/ItemScriptHelper.java b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/ItemScriptHelper.java index 0746493fb5..43fa6daf13 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/ItemScriptHelper.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/ItemScriptHelper.java @@ -222,7 +222,7 @@ public void run() { ("item crafted", result.identifySimple() + " crafted", result.identifyMaterial() + " crafted"), - new BukkitScriptEntryData(new dPlayer(player), null), context); + new BukkitScriptEntryData(dEntity.getPlayerFrom(player), null), context); for (String determination: determinations) { if (determination.toUpperCase().startsWith("CANCELLED")) diff --git a/src/main/java/net/aufdemrand/denizen/utilities/DenizenCommand.java b/src/main/java/net/aufdemrand/denizen/utilities/DenizenCommand.java index 43634c66ae..f27e91ff1a 100644 --- a/src/main/java/net/aufdemrand/denizen/utilities/DenizenCommand.java +++ b/src/main/java/net/aufdemrand/denizen/utilities/DenizenCommand.java @@ -39,7 +39,7 @@ public boolean canSeeHelp(CommandSender commandSender) { dNPC npc = null; if (commandSender instanceof Player) { Player pl = (Player) commandSender; - if (Depends.citizens == null || !CitizensAPI.getNPCRegistry().isNPC(pl)) + if (!dEntity.isNPC(pl)) player = dPlayer.mirrorBukkitPlayer(pl); context.put("server", Element.FALSE); } @@ -64,7 +64,7 @@ public boolean testPermission(CommandSender target) { dNPC npc = null; if (target instanceof Player) { Player pl = (Player) target; - if (Depends.citizens != null && CitizensAPI.getNPCRegistry().isNPC(pl)) + if (dEntity.isCitizensNPC(pl)) npc = dNPC.fromEntity(pl); else player = dPlayer.mirrorBukkitPlayer(pl); @@ -104,7 +104,7 @@ public boolean execute(CommandSender commandSender, String commandLabel, String[ dNPC npc = null; if (commandSender instanceof Player) { Player pl = (Player) commandSender; - if (Depends.citizens != null && CitizensAPI.getNPCRegistry().isNPC(pl)) + if (dEntity.isCitizensNPC(pl)) npc = dNPC.fromEntity(pl); else player = dPlayer.mirrorBukkitPlayer(pl); @@ -147,7 +147,7 @@ public List tabComplete(CommandSender commandSender, String alias, Strin dNPC npc = null; if (commandSender instanceof Player) { Player pl = (Player) commandSender; - if (Depends.citizens != null && CitizensAPI.getNPCRegistry().isNPC(pl)) + if (dEntity.isCitizensNPC(pl)) npc = dNPC.fromEntity(pl); else player = dPlayer.mirrorBukkitPlayer(pl); diff --git a/src/main/java/net/aufdemrand/denizen/utilities/entity/CraftItemProjectile.java b/src/main/java/net/aufdemrand/denizen/utilities/entity/CraftItemProjectile.java index b4033ce56e..5706588682 100644 --- a/src/main/java/net/aufdemrand/denizen/utilities/entity/CraftItemProjectile.java +++ b/src/main/java/net/aufdemrand/denizen/utilities/entity/CraftItemProjectile.java @@ -1,6 +1,5 @@ package net.aufdemrand.denizen.utilities.entity; -import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_8_R1.CraftServer; import org.bukkit.craftbukkit.v1_8_R1.CraftWorld;