mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-09-29 15:47:40 +02:00
update for SpawnLocation trait
This commit is contained in:
parent
5341487831
commit
28a9b62c25
Binary file not shown.
@ -8,7 +8,7 @@ import net.citizensnpcs.api.exception.NPCLoadException;
|
|||||||
import net.citizensnpcs.api.npc.NPC;
|
import net.citizensnpcs.api.npc.NPC;
|
||||||
import net.citizensnpcs.api.npc.trait.Character;
|
import net.citizensnpcs.api.npc.trait.Character;
|
||||||
import net.citizensnpcs.api.npc.trait.Trait;
|
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.CitizensNPCManager;
|
||||||
import net.citizensnpcs.npc.trait.CitizensCharacterManager;
|
import net.citizensnpcs.npc.trait.CitizensCharacterManager;
|
||||||
import net.citizensnpcs.npc.trait.CitizensTraitManager;
|
import net.citizensnpcs.npc.trait.CitizensTraitManager;
|
||||||
@ -94,7 +94,7 @@ public class Citizens extends JavaPlugin {
|
|||||||
|
|
||||||
// TODO possibly separate this out some more
|
// TODO possibly separate this out some more
|
||||||
private void setupNPCs() throws NPCLoadException {
|
private void setupNPCs() throws NPCLoadException {
|
||||||
traitManager.registerTrait(LocationTrait.class);
|
traitManager.registerTrait(SpawnLocation.class);
|
||||||
int spawned = 0;
|
int spawned = 0;
|
||||||
for (DataKey key : saves.getKey("npc").getIntegerSubKeys()) {
|
for (DataKey key : saves.getKey("npc").getIntegerSubKeys()) {
|
||||||
int id = Integer.parseInt(key.name());
|
int id = Integer.parseInt(key.name());
|
||||||
@ -129,7 +129,7 @@ public class Citizens extends JavaPlugin {
|
|||||||
|
|
||||||
// Spawn the NPC
|
// Spawn the NPC
|
||||||
if (key.getBoolean("spawned")) {
|
if (key.getBoolean("spawned")) {
|
||||||
npc.spawn(npc.getTrait(LocationTrait.class).getLocation());
|
npc.spawn(npc.getTrait(SpawnLocation.class).getLocation());
|
||||||
spawned++;
|
spawned++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import net.citizensnpcs.api.CitizensAPI;
|
import net.citizensnpcs.api.CitizensAPI;
|
||||||
import net.citizensnpcs.api.npc.NPC;
|
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.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -57,7 +57,7 @@ public class EventListen implements Listener {
|
|||||||
public void onChunkLoad(ChunkLoadEvent event) {
|
public void onChunkLoad(ChunkLoadEvent event) {
|
||||||
for (int id : toRespawn) {
|
for (int id : toRespawn) {
|
||||||
NPC npc = CitizensAPI.getNPCManager().getNPC(id);
|
NPC npc = CitizensAPI.getNPCManager().getNPC(id);
|
||||||
npc.spawn(npc.getTrait(LocationTrait.class).getLocation());
|
npc.spawn(npc.getTrait(SpawnLocation.class).getLocation());
|
||||||
toRespawn.remove(id);
|
toRespawn.remove(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -68,10 +68,11 @@ public class EventListen implements Listener {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
for (NPC npc : CitizensAPI.getNPCManager().getNPCs()) {
|
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()
|
if (event.getWorld().equals(loc.getWorld()) && event.getChunk().getX() == loc.getChunk().getX()
|
||||||
&& event.getChunk().getZ() == loc.getChunk().getZ()) {
|
&& event.getChunk().getZ() == loc.getChunk().getZ()) {
|
||||||
toRespawn.add(npc.getId());
|
toRespawn.add(npc.getId());
|
||||||
|
npc.getTrait(SpawnLocation.class).setLocation(loc);
|
||||||
npc.despawn();
|
npc.despawn();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ import net.citizensnpcs.api.npc.trait.Character;
|
|||||||
import net.citizensnpcs.api.npc.NPC;
|
import net.citizensnpcs.api.npc.NPC;
|
||||||
import net.citizensnpcs.api.npc.pathfinding.Navigator;
|
import net.citizensnpcs.api.npc.pathfinding.Navigator;
|
||||||
import net.citizensnpcs.api.npc.trait.Trait;
|
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.resources.lib.CraftNPC;
|
||||||
import net.citizensnpcs.util.Messaging;
|
import net.citizensnpcs.util.Messaging;
|
||||||
|
|
||||||
@ -143,8 +143,8 @@ public class CitizensNPC implements NPC {
|
|||||||
manager.spawn(this, loc);
|
manager.spawn(this, loc);
|
||||||
|
|
||||||
// Set the location
|
// Set the location
|
||||||
addTrait(LocationTrait.class);
|
addTrait(SpawnLocation.class);
|
||||||
getTrait(LocationTrait.class).setLocation(loc);
|
getTrait(SpawnLocation.class).setLocation(loc);
|
||||||
|
|
||||||
spawned = true;
|
spawned = true;
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ import net.citizensnpcs.api.npc.NPC;
|
|||||||
import net.citizensnpcs.api.npc.NPCManager;
|
import net.citizensnpcs.api.npc.NPCManager;
|
||||||
import net.citizensnpcs.api.npc.trait.Character;
|
import net.citizensnpcs.api.npc.trait.Character;
|
||||||
import net.citizensnpcs.api.npc.trait.Trait;
|
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.resources.lib.CraftNPC;
|
||||||
|
|
||||||
import net.minecraft.server.ItemInWorldManager;
|
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());
|
mcEntity.setPositionRotation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
|
||||||
ws.addEntity(mcEntity);
|
ws.addEntity(mcEntity);
|
||||||
ws.players.remove(mcEntity);
|
ws.players.remove(mcEntity);
|
||||||
// mcEntity.removeFromPlayerMap(npc.getFullName());
|
|
||||||
|
|
||||||
spawned.put(mcEntity.getPlayer(), npc);
|
spawned.put(mcEntity.getPlayer(), npc);
|
||||||
return mcEntity;
|
return mcEntity;
|
||||||
@ -103,7 +102,10 @@ public class CitizensNPCManager implements NPCManager {
|
|||||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
((CraftPlayer) player).getHandle().netServerHandler.sendPacket(new Packet29DestroyEntity(mcEntity.id));
|
((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());
|
spawned.remove(mcEntity.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user