mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-11-05 02:10:10 +01:00
Minor cleanup
This commit is contained in:
parent
62551967e5
commit
d65346482e
@ -55,10 +55,10 @@ public class Citizens extends JavaPlugin {
|
||||
private final CommandManager commands = new CommandManager();
|
||||
private boolean compatible;
|
||||
private Settings config;
|
||||
private ClassLoader contextClassLoader;
|
||||
private CitizensNPCManager npcManager;
|
||||
private Storage saves;
|
||||
private CitizensTraitManager traitManager;
|
||||
private ClassLoader contextClassLoader;
|
||||
|
||||
public CommandManager getCommandManager() {
|
||||
return commands;
|
||||
@ -118,15 +118,14 @@ public class Citizens extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
Thread.currentThread().setContextClassLoader(contextClassLoader);
|
||||
// replace previous classloader
|
||||
restoreOldClassLoader();
|
||||
// Don't bother with this part if MC versions are not compatible
|
||||
if (compatible) {
|
||||
save();
|
||||
while (npcManager.iterator().hasNext()) {
|
||||
npcManager.iterator().next().despawn();
|
||||
npcManager.iterator().remove();
|
||||
}
|
||||
} // TODO: clean up
|
||||
npcManager = null;
|
||||
getServer().getScheduler().cancelTasks(this);
|
||||
}
|
||||
@ -145,44 +144,21 @@ public class Citizens extends JavaPlugin {
|
||||
getServer().getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
}
|
||||
contextClassLoader = Thread.currentThread().getContextClassLoader();
|
||||
Thread.currentThread().setContextClassLoader(getClassLoader());
|
||||
// workaround to fix scripts not loading plugin classes properly
|
||||
registerScriptHelpers();
|
||||
replaceClassLoader();
|
||||
|
||||
config = new Settings(getDataFolder());
|
||||
|
||||
// NPC storage
|
||||
String type = Setting.STORAGE_TYPE.asString();
|
||||
if (type.equalsIgnoreCase("db") || type.equalsIgnoreCase("database")) {
|
||||
try {
|
||||
saves = new DatabaseStorage(Setting.DATABASE_DRIVER.asString(), Setting.DATABASE_URL.asString(),
|
||||
Setting.DATABASE_USERNAME.asString(), Setting.DATABASE_PASSWORD.asString());
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
Messaging.log("Unable to connect to database, falling back to YAML");
|
||||
}
|
||||
} else if (type.equalsIgnoreCase("nbt")) {
|
||||
saves = new NBTStorage(getDataFolder() + File.separator + Setting.STORAGE_FILE.asString(),
|
||||
"Citizens NPC Storage");
|
||||
}
|
||||
if (saves == null) {
|
||||
saves = new YamlStorage(getDataFolder() + File.separator + Setting.STORAGE_FILE.asString(),
|
||||
"Citizens NPC Storage");
|
||||
}
|
||||
setupStorage();
|
||||
|
||||
Messaging.log("Save method set to", saves.toString());
|
||||
|
||||
// Register API managers
|
||||
npcManager = new CitizensNPCManager(this, saves);
|
||||
traitManager = new CitizensTraitManager(this);
|
||||
CitizensAPI.setNPCManager(npcManager);
|
||||
CitizensAPI.setCharacterManager(characterManager);
|
||||
CitizensAPI.setTraitManager(traitManager);
|
||||
|
||||
// Register events
|
||||
getServer().getPluginManager().registerEvents(new EventListen(npcManager), this);
|
||||
|
||||
// Register commands
|
||||
registerCommands();
|
||||
|
||||
getServer().getScheduler().scheduleSyncRepeatingTask(this, new NPCUpdater(npcManager), 0, 1);
|
||||
@ -196,7 +172,6 @@ public class Citizens extends JavaPlugin {
|
||||
public void run() {
|
||||
try {
|
||||
setupNPCs();
|
||||
registerScriptHelpers();
|
||||
} catch (NPCLoadException ex) {
|
||||
Messaging.log(Level.SEVERE, "Issue when loading NPCs: " + ex.getMessage());
|
||||
}
|
||||
@ -231,6 +206,27 @@ public class Citizens extends JavaPlugin {
|
||||
}.start();
|
||||
}
|
||||
|
||||
private void setupStorage() {
|
||||
String type = Setting.STORAGE_TYPE.asString();
|
||||
if (type.equalsIgnoreCase("db") || type.equalsIgnoreCase("database")) {
|
||||
try {
|
||||
saves = new DatabaseStorage(Setting.DATABASE_DRIVER.asString(), Setting.DATABASE_URL.asString(),
|
||||
Setting.DATABASE_USERNAME.asString(), Setting.DATABASE_PASSWORD.asString());
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
Messaging.log("Unable to connect to database, falling back to YAML");
|
||||
}
|
||||
} else if (type.equalsIgnoreCase("nbt")) {
|
||||
saves = new NBTStorage(getDataFolder() + File.separator + Setting.STORAGE_FILE.asString(),
|
||||
"Citizens NPC Storage");
|
||||
}
|
||||
if (saves == null) {
|
||||
saves = new YamlStorage(getDataFolder() + File.separator + Setting.STORAGE_FILE.asString(),
|
||||
"Citizens NPC Storage");
|
||||
}
|
||||
Messaging.log("Save method set to", saves.toString());
|
||||
}
|
||||
|
||||
private void registerCommands() {
|
||||
commands.setInjector(new Injector(this));
|
||||
|
||||
@ -257,6 +253,16 @@ public class Citizens extends JavaPlugin {
|
||||
getServer().getPluginManager().callEvent(new CitizensReloadEvent());
|
||||
}
|
||||
|
||||
private void replaceClassLoader() {
|
||||
contextClassLoader = Thread.currentThread().getContextClassLoader();
|
||||
Thread.currentThread().setContextClassLoader(getClassLoader());
|
||||
// workaround to fix scripts not loading plugin classes properly
|
||||
}
|
||||
|
||||
private void restoreOldClassLoader() {
|
||||
Thread.currentThread().setContextClassLoader(contextClassLoader);
|
||||
}
|
||||
|
||||
public void save() {
|
||||
for (NPC npc : npcManager)
|
||||
((CitizensNPC) npc).save(saves.getKey("npc." + npc.getId()));
|
||||
@ -264,6 +270,7 @@ public class Citizens extends JavaPlugin {
|
||||
saves.save();
|
||||
}
|
||||
|
||||
// TODO: refactor
|
||||
private void setupNPCs() throws NPCLoadException {
|
||||
saves.load();
|
||||
int created = 0, spawned = 0;
|
||||
|
@ -1,8 +1,6 @@
|
||||
package net.citizensnpcs.npc.entity;
|
||||
|
||||
import net.citizensnpcs.api.exception.NPCLoadException;
|
||||
import net.citizensnpcs.api.trait.trait.Equipment;
|
||||
import net.citizensnpcs.api.util.DataKey;
|
||||
import net.citizensnpcs.editor.Equipable;
|
||||
import net.citizensnpcs.npc.CitizensNPC;
|
||||
import net.citizensnpcs.npc.CitizensNPCManager;
|
||||
@ -110,11 +108,6 @@ public class CitizensHumanNPC extends CitizensNPC implements Equipable {
|
||||
return (EntityHumanNPC) mcEntity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load(DataKey key) throws NPCLoadException {
|
||||
super.load(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setName(String name) {
|
||||
super.setName(name);
|
||||
|
Loading…
Reference in New Issue
Block a user