From c9410bb55c622f13a71102e4e30453d0f8c50d12 Mon Sep 17 00:00:00 2001 From: David Cernat Date: Mon, 11 Mar 2013 00:32:08 +0200 Subject: [PATCH] Add "Enabled" option to triggers in config file. --- .../java/net/aufdemrand/denizen/Settings.java | 17 ++++++++++++++--- .../scripts/triggers/TriggerRegistry.java | 12 ++++++++---- src/main/resources/config.yml | 5 +++++ 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/aufdemrand/denizen/Settings.java b/src/main/java/net/aufdemrand/denizen/Settings.java index 49060f540a..ca49fcfaec 100644 --- a/src/main/java/net/aufdemrand/denizen/Settings.java +++ b/src/main/java/net/aufdemrand/denizen/Settings.java @@ -67,7 +67,7 @@ public static boolean HealthTraitRespawnEnabled() { /* - # Whether NPCs with the Health trait should respawn after being killed + # How long it should take for NPCs with the Health trait to respawn */ @@ -78,6 +78,17 @@ public static String HealthTraitRespawnDelay() { /* + # Whether a certain trigger is enabled by default or not + + */ + + public static boolean TriggerEnabled(String triggerName) { + return DenizenAPI.getCurrentInstance().getConfig() + .getBoolean("Triggers." + triggerName + ".Enabled", true); + } + + /* + # Default duration of cooldown set to Denizens for when a trigger is # triggered. Not all triggers may use this, it is optional! @@ -166,7 +177,7 @@ public static double ChatToNpcOverhearingRange() { # Prerequisites for triggering a Chat Trigger - */ + */ public static boolean ChatMustSeeNPC() { return DenizenAPI.getCurrentInstance().getConfig() @@ -183,7 +194,7 @@ public static boolean ChatMustLookAtNPC() { # Circumstances under which a player's Chat Trigger input should # appear in the global chat - */ + */ public static boolean ChatGloballyIfFailedChatTriggers() { return DenizenAPI.getCurrentInstance().getConfig() diff --git a/src/main/java/net/aufdemrand/denizen/scripts/triggers/TriggerRegistry.java b/src/main/java/net/aufdemrand/denizen/scripts/triggers/TriggerRegistry.java index e44e085de2..5d2c9b515a 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/triggers/TriggerRegistry.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/triggers/TriggerRegistry.java @@ -96,10 +96,14 @@ public boolean register(String triggerName, RegistrationableInstance instance) { @Override public void registerCoreMembers() { - new ClickTrigger().activate().as("Click").withOptions(true, Settings.TriggerDefaultCooldown("Click"), CooldownType.PLAYER); - new DamageTrigger().activate().as("Damage").withOptions(false, Settings.TriggerDefaultCooldown("Damage"), CooldownType.NPC); - new ChatTrigger().activate().as("Chat").withOptions(true, Settings.TriggerDefaultCooldown("Chat"), Settings.TriggerDefaultRange("Chat"), CooldownType.PLAYER); - new ProximityTrigger().activate ().as("Proximity").withOptions(false, Settings.TriggerDefaultCooldown("Proximity"), Settings.TriggerDefaultRange("Proximity"), CooldownType.PLAYER); + new ClickTrigger().activate().as("Click").withOptions(Settings.TriggerEnabled("Click"), + Settings.TriggerDefaultCooldown("Click"), CooldownType.PLAYER); + new ChatTrigger().activate().as("Chat").withOptions(Settings.TriggerEnabled("Chat"), + Settings.TriggerDefaultCooldown("Chat"), Settings.TriggerDefaultRange("Chat"), CooldownType.PLAYER); + new DamageTrigger().activate().as("Damage").withOptions(Settings.TriggerEnabled("Damage"), + Settings.TriggerDefaultCooldown("Damage"), CooldownType.NPC); + new ProximityTrigger().activate ().as("Proximity").withOptions(Settings.TriggerEnabled("Proximity"), + Settings.TriggerDefaultCooldown("Proximity"), Settings.TriggerDefaultRange("Proximity"), CooldownType.PLAYER); dB.echoApproval("Loaded core triggers: " + instances.keySet().toString()); } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 86cf70e512..c2650d8c40 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -19,6 +19,7 @@ Traits: Triggers: Chat: + Enabled: true Cooldown: 2s Range: 3 Overhearing Range: 4 @@ -33,14 +34,18 @@ Triggers: If Triggers Failed: false If NPC Uninteractable: true Click: + Enabled: true Cooldown: 2s Allows Left Click: false Damage: + Enabled: false Cooldown: 0.5s Location: + Enabled: false Cooldown: 5s Range: 2 Proximity: + Enabled: false Cooldown: 1s Range: 10