From b4eb103e9c0c094c79b5dc14f24d34ff605cd162 Mon Sep 17 00:00:00 2001 From: mcmonkey4eva Date: Sun, 1 Sep 2013 19:41:50 -0700 Subject: [PATCH] Restore "must be able to see NPC" for chat trigs --- src/main/java/net/aufdemrand/denizen/Settings.java | 9 ++++----- .../denizen/scripts/triggers/core/ChatTrigger.java | 9 ++++----- src/main/resources/config.yml | 1 + 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/aufdemrand/denizen/Settings.java b/src/main/java/net/aufdemrand/denizen/Settings.java index 0fc9ed413a..fbaadfd091 100644 --- a/src/main/java/net/aufdemrand/denizen/Settings.java +++ b/src/main/java/net/aufdemrand/denizen/Settings.java @@ -219,12 +219,11 @@ public static double ChatToNpcOverhearingRange() { */ - // Currently broken because of Bukkit changes - //public static boolean ChatMustSeeNPC() { - // return DenizenAPI.getCurrentInstance().getConfig() - // .getBoolean("Triggers.Chat.Prerequisites.Must be able to see NPC", true); - //} + public static boolean ChatMustSeeNPC() { + return DenizenAPI.getCurrentInstance().getConfig() + .getBoolean("Triggers.Chat.Prerequisites.Must be able to see NPC", true); + } public static boolean ChatMustLookAtNPC() { return DenizenAPI.getCurrentInstance().getConfig() diff --git a/src/main/java/net/aufdemrand/denizen/scripts/triggers/core/ChatTrigger.java b/src/main/java/net/aufdemrand/denizen/scripts/triggers/core/ChatTrigger.java index be9afb91c3..344287d3b8 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/triggers/core/ChatTrigger.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/triggers/core/ChatTrigger.java @@ -61,18 +61,17 @@ public Boolean process(Player player, String message) { + aH.debugObj("Radius(Max)", npc.getLocation().distance(player.getLocation()) + "(" + npc.getTriggerTrait().getRadius(name) + ")") + aH.debugObj("Trigger text", message) - + aH.debugObj("LOS", String.valueOf(npc.getEntity().hasLineOfSight(player))) + + aH.debugObj("LOS", String.valueOf(player.hasLineOfSight(npc.getEntity()))) + aH.debugObj("Facing", String.valueOf(Rotation.isFacingEntity(player, npc.getEntity(), 45)))); // The Denizen config can require some other criteria for a successful chat-with-npc. // Should we check 'line of sight'? Players cannot talk to NPCs through walls // if enabled. Should the Player chat only when looking at the NPC? This may // reduce accidental chats with NPCs. + - // TODO: CraftBukkit 1.6 broke the two lines below. Think of a workaround. - - //if (Settings.ChatMustSeeNPC()) - // if (!npc.getEntity().hasLineOfSight(player)) return false; + if (Settings.ChatMustSeeNPC()) + if (!player.hasLineOfSight(npc.getEntity())) return false; if (Settings.ChatMustLookAtNPC()) if (!Rotation.isFacingEntity(player, npc.getEntity(), 45)) return false; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index a1734c8777..e58f25ae0d 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -35,6 +35,7 @@ Triggers: Overhearing range: 4 Prerequisites: Must be looking in direction of NPC: true + Must be able to see NPC: true Formats: Player to NPC: "You -> : " Player to NPC overheard: " -> : "