diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java index 3f33068dbf..b072d2af41 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java @@ -1548,9 +1548,6 @@ else if (!trait.isSneaking() && mechanism.getValue().asBoolean()) { // TODO // --> if (mechanism.matches("clear_waypoints")) { - if (!getCitizen().hasTrait(Waypoints.class)) { - getCitizen().addTrait(Waypoints.class); - } Waypoints wp = getCitizen().getOrAddTrait(Waypoints.class); if ((wp.getCurrentProvider() instanceof WaypointProvider.EnumerableWaypointProvider)) { ((List) ((WaypointProvider.EnumerableWaypointProvider) wp.getCurrentProvider()).waypoints()).clear(); @@ -1574,9 +1571,6 @@ else if ((wp.getCurrentProvider() instanceof WanderWaypointProvider)) { // TODO // --> if (mechanism.matches("add_waypoint") && mechanism.requireObject(LocationTag.class)) { - if (!getCitizen().hasTrait(Waypoints.class)) { - getCitizen().addTrait(Waypoints.class); - } Waypoints wp = getCitizen().getOrAddTrait(Waypoints.class); if ((wp.getCurrentProvider() instanceof WaypointProvider.EnumerableWaypointProvider)) { ((List) ((WaypointProvider.EnumerableWaypointProvider) wp.getCurrentProvider()).waypoints()) diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ExperienceCommand.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ExperienceCommand.java index ee605bb51a..823c62eca5 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ExperienceCommand.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ExperienceCommand.java @@ -59,7 +59,10 @@ public ExperienceCommand() { private enum Type {SET, GIVE, TAKE} public static void setTotalExperience(Player player, int exp) { - player.setTotalExperience(exp); + player.setTotalExperience(0); + player.setLevel(0); + player.setExp(0); + player.giveExp(exp); } public static void takeExperience(Player player, int toTake) { @@ -83,9 +86,7 @@ public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException Type type = Type.SET; boolean level = false; boolean silent = false; - for (Argument arg : scriptEntry.getProcessedArgs()) { - if (arg.matchesInteger()) { amount = arg.asElement().asInt(); } @@ -102,32 +103,24 @@ else if (arg.matches("silent")) { arg.reportUnhandled(); } } - scriptEntry.addObject("quantity", amount) .addObject("type", type) .addObject("level", level) .addObject("silent", silent); - } @Override public void execute(ScriptEntry scriptEntry) { - Type type = (Type) scriptEntry.getObject("type"); int quantity = (int) scriptEntry.getObject("quantity"); Boolean level = (Boolean) scriptEntry.getObject("level"); //Boolean silent = (Boolean) scriptEntry.getObject("silent"); - if (scriptEntry.dbCallShouldDebug()) { - Debug.report(scriptEntry, name, ArgumentHelper.debugObj("Type", type.toString()) + ArgumentHelper.debugObj("Quantity", level ? quantity + " levels" : quantity) + ArgumentHelper.debugObj("Player", Utilities.getEntryPlayer(scriptEntry).getName())); - } - Player player = Utilities.getEntryPlayer(scriptEntry).getPlayerEntity(); - switch (type) { case SET: if (level) { @@ -137,7 +130,6 @@ public void execute(ScriptEntry scriptEntry) { setTotalExperience(player, quantity); } break; - case GIVE: if (level) { player.setLevel(player.getLevel() + quantity); @@ -146,7 +138,6 @@ public void execute(ScriptEntry scriptEntry) { player.giveExp(quantity); } break; - case TAKE: if (level) { int value = player.getLevel() - quantity; @@ -157,6 +148,5 @@ public void execute(ScriptEntry scriptEntry) { } break; } - } }