Skip to content

Commit

Permalink
Trigger command: error on invalid trigger name
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Nov 28, 2022
1 parent 640c909 commit d096ac0
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
Expand Up @@ -26,7 +26,7 @@
public class TriggerTrait extends Trait implements Listener {

@Persist(value = "enabled", collectionType = HashMap.class)
private Map<String, Boolean> enabled = new HashMap<>();
public Map<String, Boolean> enabled = new HashMap<>();
@Persist(value = "properly_set", collectionType = HashMap.class)
public Map<String, Boolean> properly_set = new HashMap<>();
@Persist(value = "duration", collectionType = HashMap.class)
Expand Down Expand Up @@ -93,6 +93,10 @@ public String toggleTrigger(String triggerName, boolean toggle) {
}
}

public boolean triggerNameIsValid(String triggerName) {
return enabled.containsKey(triggerName.toUpperCase());
}

public String toggleTrigger(String triggerName) {
if (enabled.containsKey(triggerName.toUpperCase())) {
if (enabled.get(triggerName.toUpperCase())) {
Expand Down
@@ -1,6 +1,7 @@
package com.denizenscript.denizen.scripts.commands.npc;

import com.denizenscript.denizen.utilities.Utilities;
import com.denizenscript.denizencore.exceptions.InvalidArgumentsRuntimeException;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.denizenscript.denizen.npc.traits.TriggerTrait;
import com.denizenscript.denizen.objects.NPCTag;
Expand Down Expand Up @@ -129,16 +130,16 @@ public void execute(ScriptEntry scriptEntry) {
npc.getCitizen().addTrait(TriggerTrait.class);
}
TriggerTrait trait = npc.getCitizen().getOrAddTrait(TriggerTrait.class);
if (!trait.triggerNameIsValid(trigger.asString())) {
throw new InvalidArgumentsRuntimeException("Invalid trigger name '" + trigger + "' - are you sure you spelled it right?");
}
switch (Toggle.valueOf(toggle.asString().toUpperCase())) {

case TOGGLE:
trait.toggleTrigger(trigger.asString());
break;

case TRUE:
trait.toggleTrigger(trigger.asString(), true);
break;

case FALSE:
trait.toggleTrigger(trigger.asString(), false);
break;
Expand Down

0 comments on commit d096ac0

Please sign in to comment.