diff --git a/lib/bukkit-1.1-R1-SNAPSHOT.jar b/lib/bukkit-1.1-R1-SNAPSHOT.jar index 283d2224d..446b0b180 100644 Binary files a/lib/bukkit-1.1-R1-SNAPSHOT.jar and b/lib/bukkit-1.1-R1-SNAPSHOT.jar differ diff --git a/src/net/citizensnpcs/Citizens.java b/src/net/citizensnpcs/Citizens.java index eec99a1a2..9b5d5e8f6 100644 --- a/src/net/citizensnpcs/Citizens.java +++ b/src/net/citizensnpcs/Citizens.java @@ -1,12 +1,17 @@ package net.citizensnpcs; import net.citizensnpcs.api.CitizensAPI; +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.npc.trait.trait.LocationTrait; +import net.citizensnpcs.listener.WorldListen; import net.citizensnpcs.npc.CitizensNPCManager; import net.citizensnpcs.util.Messaging; +import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; public class Citizens extends JavaPlugin { + private CitizensNPCManager npcManager; @Override public void onDisable() { @@ -15,10 +20,33 @@ public class Citizens extends JavaPlugin { @Override public void onEnable() { - CitizensAPI.setNPCManager(new CitizensNPCManager()); + npcManager = new CitizensNPCManager(); + CitizensAPI.setNPCManager(npcManager); + + registerEvents(); - // TODO wait to load until after all plugins using CitizensAPI are - // loaded Messaging.log("v" + getDescription().getVersion() + " enabled."); + + // Setup NPCs after all plugins have been enabled (allows for multiworld + // support and for NPCs to properly register external settings) + if (Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() { + @Override + public void run() { + setupNPCs(); + } + }, 100) == -1) + Messaging.log("Issue enabling plugin. Disabling."); + } + + private void setupNPCs() { + // TODO set up saving + for (NPC npc : npcManager.getNPCs()) { + npc.spawn(((LocationTrait) npc.getTrait("location")).getLocation()); + } + Messaging.log("Loaded " + npcManager.getNPCs().size() + " NPCs."); + } + + private void registerEvents() { + getServer().getPluginManager().registerEvents(new WorldListen(), this); } } \ No newline at end of file diff --git a/src/net/citizensnpcs/listener/WorldListen.java b/src/net/citizensnpcs/listener/WorldListen.java new file mode 100644 index 000000000..b95a72745 --- /dev/null +++ b/src/net/citizensnpcs/listener/WorldListen.java @@ -0,0 +1,20 @@ +package net.citizensnpcs.listener; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.world.ChunkLoadEvent; +import org.bukkit.event.world.ChunkUnloadEvent; + +public class WorldListen implements Listener { + + @EventHandler(event = ChunkLoadEvent.class, priority = EventPriority.NORMAL) + public void onChunkLoad(ChunkLoadEvent event) { + + } + + @EventHandler(event = ChunkLoadEvent.class, priority = EventPriority.NORMAL) + public void onChunkUnload(ChunkUnloadEvent event) { + + } +} \ No newline at end of file