diff --git a/lib/CitizensAPI.jar b/lib/CitizensAPI.jar index f8f0fbf51..3b1f27452 100644 Binary files a/lib/CitizensAPI.jar and b/lib/CitizensAPI.jar differ diff --git a/src/net/citizensnpcs/Citizens.java b/src/net/citizensnpcs/Citizens.java index df54329f9..cc0e9d5e2 100644 --- a/src/net/citizensnpcs/Citizens.java +++ b/src/net/citizensnpcs/Citizens.java @@ -6,7 +6,6 @@ import java.util.logging.Level; import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; -import net.citizensnpcs.api.DataKey; import net.citizensnpcs.api.exception.NPCException; import net.citizensnpcs.api.exception.NPCLoadException; import net.citizensnpcs.api.npc.NPC; @@ -17,6 +16,10 @@ import net.citizensnpcs.api.npc.trait.trait.Inventory; import net.citizensnpcs.api.npc.trait.trait.Owner; import net.citizensnpcs.api.npc.trait.trait.SpawnLocation; import net.citizensnpcs.api.npc.trait.trait.Spawned; +import net.citizensnpcs.api.util.DataKey; +import net.citizensnpcs.api.util.DatabaseStorage; +import net.citizensnpcs.api.util.Storage; +import net.citizensnpcs.api.util.YamlStorage; import net.citizensnpcs.command.CommandManager; import net.citizensnpcs.command.Injector; import net.citizensnpcs.command.command.AdminCommands; @@ -29,9 +32,6 @@ import net.citizensnpcs.command.exception.ServerCommandException; import net.citizensnpcs.command.exception.UnhandledCommandException; import net.citizensnpcs.command.exception.WrappedCommandException; import net.citizensnpcs.npc.CitizensNPCManager; -import net.citizensnpcs.storage.DatabaseStorage; -import net.citizensnpcs.storage.Storage; -import net.citizensnpcs.storage.YamlStorage; import net.citizensnpcs.trait.LookClose; import net.citizensnpcs.trait.Sneak; import net.citizensnpcs.util.Messaging; @@ -256,8 +256,8 @@ public class Citizens extends JavaPlugin { String type = key.getString("traits.type"); NPC npc = npcManager.createNPC( - type.equalsIgnoreCase("DEFAULT") ? CreatureType.MONSTER : CreatureType.valueOf(key.getString( - "traits.type").toUpperCase()), id, key.getString("name"), null); + type.equalsIgnoreCase("DEFAULT") ? null : CreatureType.valueOf(key.getString("traits.type") + .toUpperCase()), id, key.getString("name"), null); try { npc.load(key); } catch (NPCException ex) { diff --git a/src/net/citizensnpcs/Settings.java b/src/net/citizensnpcs/Settings.java index d21ee1963..324aa6457 100644 --- a/src/net/citizensnpcs/Settings.java +++ b/src/net/citizensnpcs/Settings.java @@ -2,8 +2,8 @@ package net.citizensnpcs; import java.io.File; -import net.citizensnpcs.api.DataKey; -import net.citizensnpcs.storage.YamlStorage; +import net.citizensnpcs.api.util.DataKey; +import net.citizensnpcs.api.util.YamlStorage; import net.citizensnpcs.util.Messaging; public class Settings { @@ -30,11 +30,9 @@ public class Settings { } public enum Setting { - DEBUG_MODE("general.debug-mode", false), - USE_DATABASE("use-database", false), - SELECTION_ITEM("npc.selection.item", 280), - SELECTION_MESSAGE("npc.selection.message", "You selected !"), - QUICK_SELECT("npc.selection.quick-select", false); + DEBUG_MODE("general.debug-mode", false), USE_DATABASE("use-database", false), SELECTION_ITEM( + "npc.selection.item", 280), SELECTION_MESSAGE("npc.selection.message", "You selected !"), QUICK_SELECT( + "npc.selection.quick-select", false); private String path; private Object value; diff --git a/src/net/citizensnpcs/Template.java b/src/net/citizensnpcs/Template.java index 1137c1eb7..25ace8bf2 100644 --- a/src/net/citizensnpcs/Template.java +++ b/src/net/citizensnpcs/Template.java @@ -1,6 +1,6 @@ package net.citizensnpcs; -import net.citizensnpcs.api.DataKey; +import net.citizensnpcs.api.util.DataKey; public class Template { private final DataKey template; diff --git a/src/net/citizensnpcs/command/command/NPCCommands.java b/src/net/citizensnpcs/command/command/NPCCommands.java index 2681e4765..497fd44b3 100644 --- a/src/net/citizensnpcs/command/command/NPCCommands.java +++ b/src/net/citizensnpcs/command/command/NPCCommands.java @@ -51,7 +51,7 @@ public class NPCCommands { Messaging.sendError(player, "NPC names cannot be longer than 16 characters. The name has been shortened."); name = name.substring(0, 15); } - CreatureType type = CreatureType.MONSTER; // Default NPC type + CreatureType type = null; if (args.hasValueFlag("type")) try { type = CreatureType.valueOf(args.getFlag("type").toUpperCase().replace('-', '_')); @@ -89,7 +89,7 @@ public class NPCCommands { create.addTrait(new Owner(player.getName())); // Set the mob type - create.addTrait(new MobType(type == CreatureType.MONSTER ? "DEFAULT" : type.toString())); + create.addTrait(new MobType(type == null ? "DEFAULT" : type.toString())); create.spawn(player.getLocation()); npcManager.selectNPC(player, create); diff --git a/src/net/citizensnpcs/npc/CitizensNPCManager.java b/src/net/citizensnpcs/npc/CitizensNPCManager.java index ce7a04017..546031681 100644 --- a/src/net/citizensnpcs/npc/CitizensNPCManager.java +++ b/src/net/citizensnpcs/npc/CitizensNPCManager.java @@ -9,7 +9,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.SpawnLocation; -import net.citizensnpcs.storage.Storage; +import net.citizensnpcs.api.util.Storage; import net.citizensnpcs.util.ByIdArray; import net.citizensnpcs.util.NPCBuilder; diff --git a/src/net/citizensnpcs/npc/entity/CitizensHumanNPC.java b/src/net/citizensnpcs/npc/entity/CitizensHumanNPC.java index c548cb159..1d1e9d14b 100644 --- a/src/net/citizensnpcs/npc/entity/CitizensHumanNPC.java +++ b/src/net/citizensnpcs/npc/entity/CitizensHumanNPC.java @@ -1,7 +1,5 @@ package net.citizensnpcs.npc.entity; -import net.citizensnpcs.api.DataKey; -import net.citizensnpcs.api.exception.NPCLoadException; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.CitizensNPCManager; import net.citizensnpcs.resource.lib.EntityHumanNPC; @@ -55,9 +53,4 @@ public class CitizensHumanNPC extends CitizensNPC { handle.setPositionRotation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch()); return handle; } - - @Override - public void load(DataKey key) throws NPCLoadException { - super.load(key); - } } \ No newline at end of file diff --git a/src/net/citizensnpcs/storage/DatabaseStorage.java b/src/net/citizensnpcs/storage/DatabaseStorage.java deleted file mode 100644 index ff8b801d3..000000000 --- a/src/net/citizensnpcs/storage/DatabaseStorage.java +++ /dev/null @@ -1,143 +0,0 @@ -package net.citizensnpcs.storage; - -import java.util.List; - -import net.citizensnpcs.api.DataKey; - -public class DatabaseStorage implements Storage { - - @Override - public DataKey getKey(String root) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void load() { - // TODO Auto-generated method stub - - } - - @Override - public void save() { - // TODO Auto-generated method stub - - } - - public class DatabaseKey extends DataKey { - - @Override - public void copy(String to) { - // TODO Auto-generated method stub - - } - - @Override - public boolean getBoolean(String key) { - // TODO Auto-generated method stub - return false; - } - - @Override - public double getDouble(String key) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int getInt(String key) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public List getIntegerSubKeys() { - // TODO Auto-generated method stub - return null; - } - - @Override - public long getLong(String key) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public Object getRaw(String key) { - // TODO Auto-generated method stub - return null; - } - - @Override - public DataKey getRelative(String relative) { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getString(String key) { - // TODO Auto-generated method stub - return null; - } - - @Override - public Iterable getSubKeys() { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean keyExists(String key) { - // TODO Auto-generated method stub - return false; - } - - @Override - public String name() { - // TODO Auto-generated method stub - return null; - } - - @Override - public void removeKey(String key) { - // TODO Auto-generated method stub - - } - - @Override - public void setBoolean(String key, boolean value) { - // TODO Auto-generated method stub - - } - - @Override - public void setDouble(String key, double value) { - // TODO Auto-generated method stub - - } - - @Override - public void setInt(String key, int value) { - // TODO Auto-generated method stub - - } - - @Override - public void setLong(String key, long value) { - // TODO Auto-generated method stub - - } - - @Override - public void setRaw(String path, Object value) { - // TODO Auto-generated method stub - - } - - @Override - public void setString(String key, String value) { - // TODO Auto-generated method stub - - } - } -} \ No newline at end of file diff --git a/src/net/citizensnpcs/storage/Storage.java b/src/net/citizensnpcs/storage/Storage.java deleted file mode 100644 index 769017081..000000000 --- a/src/net/citizensnpcs/storage/Storage.java +++ /dev/null @@ -1,12 +0,0 @@ -package net.citizensnpcs.storage; - -import net.citizensnpcs.api.DataKey; - -public interface Storage { - - public DataKey getKey(String root); - - public void load(); - - public void save(); -} \ No newline at end of file diff --git a/src/net/citizensnpcs/storage/YamlStorage.java b/src/net/citizensnpcs/storage/YamlStorage.java deleted file mode 100644 index c97cb8da9..000000000 --- a/src/net/citizensnpcs/storage/YamlStorage.java +++ /dev/null @@ -1,261 +0,0 @@ -package net.citizensnpcs.storage; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.logging.Level; - -import net.citizensnpcs.api.DataKey; -import net.citizensnpcs.util.Messaging; - -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; - -public class YamlStorage implements Storage { - private final FileConfiguration config; - private final File file; - - public YamlStorage(String fileName, String header) { - config = new YamlConfiguration(); - file = new File(fileName); - if (!file.exists()) { - create(); - config.options().header(header); - save(); - } else - load(); - } - - private void create() { - try { - Messaging.log("Creating file: " + file.getName()); - file.getParentFile().mkdirs(); - file.createNewFile(); - } catch (IOException ex) { - Messaging.log(Level.SEVERE, "Could not create file: " + file.getName()); - } - } - - @Override - public DataKey getKey(String root) { - return new YamlKey(root); - } - - @Override - public void load() { - try { - config.load(file); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - private boolean pathExists(String key) { - return config.get(key) != null; - } - - @Override - public void save() { - try { - config.save(file); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public class YamlKey extends DataKey { - private final String current; - - public YamlKey(String root) { - current = root; - } - - @Override - public void copy(String to) { - ConfigurationSection root = config.getConfigurationSection(current); - if (root == null) - return; - config.createSection(to, root.getValues(true)); - } - - @Override - public boolean getBoolean(String key) { - String path = getKeyExt(key); - if (pathExists(path)) { - if (config.getString(path) == null) - return config.getBoolean(path); - return Boolean.parseBoolean(config.getString(path)); - } - return false; - } - - @Override - public boolean getBoolean(String key, boolean def) { - return config.getBoolean(getKeyExt(key), def); - } - - @Override - public double getDouble(String key) { - String path = getKeyExt(key); - if (pathExists(path)) { - if (config.getString(path) == null) { - if (config.get(path) instanceof Integer) - return config.getInt(path); - return config.getDouble(path); - } - return Double.parseDouble(config.getString(path)); - } - return 0; - } - - @Override - public double getDouble(String key, double def) { - return config.getDouble(getKeyExt(key), def); - } - - @Override - public int getInt(String key) { - String path = getKeyExt(key); - if (pathExists(path)) { - if (config.getString(path) == null) - return config.getInt(path); - return Integer.parseInt(config.getString(path)); - } - return 0; - } - - @Override - public int getInt(String key, int def) { - return config.getInt(getKeyExt(key), def); - } - - @Override - public List getIntegerSubKeys() { - List res = new ArrayList(); - ConfigurationSection section = config.getConfigurationSection(current); - if (section == null) - return res; - List keys = new ArrayList(); - for (String key : section.getKeys(false)) { - try { - keys.add(Integer.parseInt(key)); - } catch (NumberFormatException ex) { - } - } - Collections.sort(keys); - for (int key : keys) - res.add(getRelative(Integer.toString(key))); - return res; - } - - private String getKeyExt(String from) { - if (from.isEmpty()) - return current; - if (from.charAt(0) == '.') - return current.isEmpty() ? from.substring(1, from.length()) : current + from; - return current.isEmpty() ? from : current + "." + from; - } - - @Override - public long getLong(String key) { - String path = getKeyExt(key); - if (pathExists(path)) { - if (config.getString(path) == null) { - if (config.get(path) instanceof Integer) - return config.getInt(path); - return config.getLong(path); - } - return Long.parseLong(config.getString(path)); - } - return 0; - } - - @Override - public long getLong(String key, long def) { - return config.getLong(getKeyExt(key), def); - } - - @Override - public Object getRaw(String key) { - return config.get(getKeyExt(key)); - } - - @Override - public DataKey getRelative(String relative) { - if (relative == null || relative.isEmpty()) - return this; - return new YamlKey(getKeyExt(relative)); - } - - @Override - public String getString(String key) { - String path = getKeyExt(key); - if (pathExists(path)) { - return config.get(path).toString(); - } - return ""; - } - - @Override - public Iterable getSubKeys() { - List res = new ArrayList(); - ConfigurationSection section = config.getConfigurationSection(current); - if (section == null) - return res; - for (String key : section.getKeys(false)) { - res.add(getRelative(key)); - } - return res; - } - - @Override - public boolean keyExists(String key) { - return config.get(getKeyExt(key)) != null; - } - - @Override - public String name() { - int last = current.lastIndexOf('.'); - return current.substring(last == 0 ? 0 : last + 1); - } - - @Override - public void removeKey(String key) { - config.set(getKeyExt(key), null); - save(); - } - - @Override - public void setBoolean(String key, boolean value) { - config.set(getKeyExt(key), value); - } - - @Override - public void setDouble(String key, double value) { - config.set(getKeyExt(key), String.valueOf(value)); - } - - @Override - public void setInt(String key, int value) { - config.set(getKeyExt(key), value); - } - - @Override - public void setLong(String key, long value) { - config.set(getKeyExt(key), value); - } - - @Override - public void setRaw(String key, Object value) { - config.set(getKeyExt(key), value); - } - - @Override - public void setString(String key, String value) { - config.set(getKeyExt(key), value); - } - } -} \ No newline at end of file diff --git a/src/net/citizensnpcs/trait/LookClose.java b/src/net/citizensnpcs/trait/LookClose.java index 1eaaae964..b44ba5108 100644 --- a/src/net/citizensnpcs/trait/LookClose.java +++ b/src/net/citizensnpcs/trait/LookClose.java @@ -3,11 +3,11 @@ package net.citizensnpcs.trait; import org.bukkit.Location; import org.bukkit.entity.Entity; -import net.citizensnpcs.api.DataKey; import net.citizensnpcs.api.exception.NPCLoadException; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.trait.SaveId; import net.citizensnpcs.api.npc.trait.Trait; +import net.citizensnpcs.api.util.DataKey; import net.citizensnpcs.npc.CitizensNPC; import net.minecraft.server.EntityLiving; diff --git a/src/net/citizensnpcs/trait/Sneak.java b/src/net/citizensnpcs/trait/Sneak.java index b394e2951..2c6735e7b 100644 --- a/src/net/citizensnpcs/trait/Sneak.java +++ b/src/net/citizensnpcs/trait/Sneak.java @@ -1,10 +1,10 @@ package net.citizensnpcs.trait; -import net.citizensnpcs.api.DataKey; import net.citizensnpcs.api.exception.NPCLoadException; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.trait.SaveId; import net.citizensnpcs.api.npc.trait.Trait; +import net.citizensnpcs.api.util.DataKey; import net.citizensnpcs.npc.entity.CitizensHumanNPC; import net.minecraft.server.EntityPlayer; diff --git a/src/net/citizensnpcs/util/NPCBuilder.java b/src/net/citizensnpcs/util/NPCBuilder.java index dc5deff9e..d0100a98a 100644 --- a/src/net/citizensnpcs/util/NPCBuilder.java +++ b/src/net/citizensnpcs/util/NPCBuilder.java @@ -46,7 +46,6 @@ public class NPCBuilder { types.put(CreatureType.GHAST, CitizensGhastNPC.class); types.put(CreatureType.GIANT, CitizensGiantNPC.class); types.put(CreatureType.MAGMA_CUBE, CitizensMagmaCubeNPC.class); - types.put(CreatureType.MONSTER, CitizensHumanNPC.class); types.put(CreatureType.MUSHROOM_COW, CitizensMushroomCowNPC.class); types.put(CreatureType.PIG, CitizensPigNPC.class); types.put(CreatureType.PIG_ZOMBIE, CitizensPigZombieNPC.class); @@ -64,6 +63,9 @@ public class NPCBuilder { public CitizensNPC getByType(CreatureType type, CitizensNPCManager npcManager, int id, String name) { Class npcClass = types.get(type); + if (npcClass == null) + npcClass = CitizensHumanNPC.class; + try { return npcClass.getConstructor(CitizensNPCManager.class, int.class, String.class).newInstance(npcManager, id, name);