From 28a9b62c258ed71ed69fe62b2744b3be847ec4e6 Mon Sep 17 00:00:00 2001 From: aPunch Date: Sat, 21 Jan 2012 10:21:21 -0600 Subject: [PATCH] update for SpawnLocation trait --- lib/CitizensAPI.jar | Bin 14876 -> 13341 bytes src/net/citizensnpcs/Citizens.java | 6 +++--- src/net/citizensnpcs/EventListen.java | 7 ++++--- src/net/citizensnpcs/npc/CitizensNPC.java | 6 +++--- .../citizensnpcs/npc/CitizensNPCManager.java | 8 +++++--- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/CitizensAPI.jar b/lib/CitizensAPI.jar index 5f3305c286993eeeaeac2982a0e3bcbf2112006f..e425be2c241aa97af1853fa0ef89c484f2d99e39 100644 GIT binary patch delta 1984 zcmZuy2{e>z7@qlMn?_eLhK3|u6fGD{Wx7SA&9x+FF#`1##h{52{w2sp*7 z!qXv5%Sxpj1x}KR;#6l0;k~T_fF7O(aTT5o(FvIk_%!0o|HOm8@GR*2g6B?a7D9|f z;JLI4If5vN(uJz&D$r=th`>XGMl{4+9 z{%YabR}iaBsI%Y}O1bi~)YjmJ4HfZuyfm?`V?HsZme^dYQ%mGJt#W;uFI{*&K8k_#pU;(dFy=@Mm_4*(fky!mf4{8X~MRFK`lOF0$jlWkGf0H|s;8i-q{dCat-vj$M z+KOb?IN=w>8XGE%}e@+oJ#Gg$DH&$G?AytprN3ey2?J1P9S`Dr7P?LR~PvlA7m4fJfLM_tC z6NJTG&efOQx4P?lCDv*ck!n&O-ZEeAyYjb;0R5FE4_>fx>z)}=7MWe%IhZv{=hM3; zADrlt4b@RRPb{wx&@IF=@nhG;Nf}{9rQw~+(w2x!Co8L55;}GZ?PhPD^l%#t68f1e z>5TX9-WyYM`n_|u+IOvCX^WSaX=aw*L#L7Or?F$91GsK7BZ20@AW%f4c^UMC!-gyx7y0`YzDBH#?P>*ASO6LCOn0H>u)} z1fMe<@8t#ipA+($c)j^%yBOh&H0I~!z1C^_Gwx6;H~rxds%EouH*wdMz)f3ZPA@Nr z23l67?5S$3eEIHn-18K1B42GHiXO>p3?H^~KNx?(!1PpOJu5^K_V+|$zLdA_O$BYJ zZQxe2u8h-hDgD)=T7!s!lci7ENM%qjZ73Phd0*t%PZ6)Mm;pRlCfKU%vK_Z zVJQ}@;Dz-tF0>;fmKlN6)Ecj((jDImlQ2GE?0U?+Sh3bNCDnwkkt pT5EwECoG53Lq#b^k;QaTqV@kgWB6-S)f94L^zuf3zJ>6c{|EP(1vdZy delta 3419 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 LZi7Go4F>gJ{l`;A diff --git a/src/net/citizensnpcs/Citizens.java b/src/net/citizensnpcs/Citizens.java index f503af52f..31d9e58d2 100644 --- a/src/net/citizensnpcs/Citizens.java +++ b/src/net/citizensnpcs/Citizens.java @@ -8,7 +8,7 @@ import net.citizensnpcs.api.exception.NPCLoadException; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.trait.Character; import net.citizensnpcs.api.npc.trait.Trait; -import net.citizensnpcs.api.npc.trait.trait.LocationTrait; +import net.citizensnpcs.api.npc.trait.trait.SpawnLocation; import net.citizensnpcs.npc.CitizensNPCManager; import net.citizensnpcs.npc.trait.CitizensCharacterManager; import net.citizensnpcs.npc.trait.CitizensTraitManager; @@ -94,7 +94,7 @@ public class Citizens extends JavaPlugin { // TODO possibly separate this out some more private void setupNPCs() throws NPCLoadException { - traitManager.registerTrait(LocationTrait.class); + traitManager.registerTrait(SpawnLocation.class); int spawned = 0; for (DataKey key : saves.getKey("npc").getIntegerSubKeys()) { int id = Integer.parseInt(key.name()); @@ -129,7 +129,7 @@ public class Citizens extends JavaPlugin { // Spawn the NPC if (key.getBoolean("spawned")) { - npc.spawn(npc.getTrait(LocationTrait.class).getLocation()); + npc.spawn(npc.getTrait(SpawnLocation.class).getLocation()); spawned++; } } diff --git a/src/net/citizensnpcs/EventListen.java b/src/net/citizensnpcs/EventListen.java index 298f2e004..2549e376e 100644 --- a/src/net/citizensnpcs/EventListen.java +++ b/src/net/citizensnpcs/EventListen.java @@ -5,7 +5,7 @@ import java.util.Set; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.api.npc.trait.trait.LocationTrait; +import net.citizensnpcs.api.npc.trait.trait.SpawnLocation; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -57,7 +57,7 @@ public class EventListen implements Listener { public void onChunkLoad(ChunkLoadEvent event) { for (int id : toRespawn) { NPC npc = CitizensAPI.getNPCManager().getNPC(id); - npc.spawn(npc.getTrait(LocationTrait.class).getLocation()); + npc.spawn(npc.getTrait(SpawnLocation.class).getLocation()); toRespawn.remove(id); } } @@ -68,10 +68,11 @@ public class EventListen implements Listener { return; for (NPC npc : CitizensAPI.getNPCManager().getNPCs()) { - Location loc = npc.getTrait(LocationTrait.class).getLocation(); + Location loc = npc.getBukkitEntity().getLocation(); if (event.getWorld().equals(loc.getWorld()) && event.getChunk().getX() == loc.getChunk().getX() && event.getChunk().getZ() == loc.getChunk().getZ()) { toRespawn.add(npc.getId()); + npc.getTrait(SpawnLocation.class).setLocation(loc); npc.despawn(); } } diff --git a/src/net/citizensnpcs/npc/CitizensNPC.java b/src/net/citizensnpcs/npc/CitizensNPC.java index c71affcac..49b7417a2 100644 --- a/src/net/citizensnpcs/npc/CitizensNPC.java +++ b/src/net/citizensnpcs/npc/CitizensNPC.java @@ -10,7 +10,7 @@ import net.citizensnpcs.api.npc.trait.Character; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.pathfinding.Navigator; import net.citizensnpcs.api.npc.trait.Trait; -import net.citizensnpcs.api.npc.trait.trait.LocationTrait; +import net.citizensnpcs.api.npc.trait.trait.SpawnLocation; import net.citizensnpcs.resources.lib.CraftNPC; import net.citizensnpcs.util.Messaging; @@ -143,8 +143,8 @@ public class CitizensNPC implements NPC { manager.spawn(this, loc); // Set the location - addTrait(LocationTrait.class); - getTrait(LocationTrait.class).setLocation(loc); + addTrait(SpawnLocation.class); + getTrait(SpawnLocation.class).setLocation(loc); spawned = true; } diff --git a/src/net/citizensnpcs/npc/CitizensNPCManager.java b/src/net/citizensnpcs/npc/CitizensNPCManager.java index 09fcf0e22..85946438e 100644 --- a/src/net/citizensnpcs/npc/CitizensNPCManager.java +++ b/src/net/citizensnpcs/npc/CitizensNPCManager.java @@ -20,7 +20,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPCManager; import net.citizensnpcs.api.npc.trait.Character; import net.citizensnpcs.api.npc.trait.Trait; -import net.citizensnpcs.api.npc.trait.trait.LocationTrait; +import net.citizensnpcs.api.npc.trait.trait.SpawnLocation; import net.citizensnpcs.resources.lib.CraftNPC; import net.minecraft.server.ItemInWorldManager; @@ -92,7 +92,6 @@ public class CitizensNPCManager implements NPCManager { mcEntity.setPositionRotation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch()); ws.addEntity(mcEntity); ws.players.remove(mcEntity); - // mcEntity.removeFromPlayerMap(npc.getFullName()); spawned.put(mcEntity.getPlayer(), npc); return mcEntity; @@ -103,7 +102,10 @@ public class CitizensNPCManager implements NPCManager { for (Player player : Bukkit.getOnlinePlayers()) { ((CraftPlayer) player).getHandle().netServerHandler.sendPacket(new Packet29DestroyEntity(mcEntity.id)); } - getWorldServer(npc.getTrait(LocationTrait.class).getLocation().getWorld()).removeEntity(mcEntity); + Location loc = npc.getBukkitEntity().getLocation(); + getWorldServer(loc.getWorld()).removeEntity(mcEntity); + npc.getTrait(SpawnLocation.class).setLocation(loc); + spawned.remove(mcEntity.getPlayer()); }