From c392128a1bf4d828debd0ad3af9dc233133a34f6 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Sun, 8 Dec 2019 12:23:08 -0800 Subject: [PATCH] 'matched to multiple scriptevents': show events matched --- .../denizencore/events/ScriptEvent.java | 15 ++++++++++----- .../denizencore/utilities/CoreUtilities.java | 11 +++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/denizenscript/denizencore/events/ScriptEvent.java b/src/main/java/com/denizenscript/denizencore/events/ScriptEvent.java index db791ded..1690686b 100644 --- a/src/main/java/com/denizenscript/denizencore/events/ScriptEvent.java +++ b/src/main/java/com/denizenscript/denizencore/events/ScriptEvent.java @@ -77,7 +77,7 @@ public static class ScriptPath { public String[] eventArgs; public String[] eventArgsLower; public String[] rawEventArgs; - public int matches = 0; + public List matches = new ArrayList<>(); public String rawEventArgAt(int index) { return index < rawEventArgs.length ? rawEventArgs[index] : ""; @@ -199,7 +199,7 @@ else if (evt.str.contains("@")) { for (ScriptPath path : paths) { if (event.couldMatch(path)) { event.eventPaths.add(path); - path.matches++; + path.matches.add(event); if (Debug.showLoading) { Debug.log("Event match, " + event.getName() + " matched for '" + path + "'!"); } @@ -217,10 +217,10 @@ else if (evt.str.contains("@")) { } } for (ScriptPath path : paths) { - if (path.matches > 1) { - Debug.log("Event " + path + " is matched to multiple ScriptEvents."); + if (path.matches.size() > 1) { + Debug.log("Event " + path + " is matched to multiple ScriptEvents: " + CoreUtilities.join(", ", path.matches)); } - else if (path.matches == 0) { + else if (path.matches.isEmpty()) { Debug.log("Event " + path + " is not matched to any ScriptEvents."); } } @@ -484,6 +484,11 @@ else if (name.equals("event_name")) { return null; } + @Override + public String toString() { + return getName(); + } + // <--[language] // @name Advanced Script Event Matching // @group Script Events diff --git a/src/main/java/com/denizenscript/denizencore/utilities/CoreUtilities.java b/src/main/java/com/denizenscript/denizencore/utilities/CoreUtilities.java index 813655fb..7a9526ef 100644 --- a/src/main/java/com/denizenscript/denizencore/utilities/CoreUtilities.java +++ b/src/main/java/com/denizenscript/denizencore/utilities/CoreUtilities.java @@ -23,6 +23,17 @@ public class CoreUtilities { public static TagContext noDebugContext; + public static String join(String delim, List objects) { + StringBuilder output = new StringBuilder(objects.size() * 5); + for (int i = 0; i < objects.size(); i++) { + output.append(objects.get(i)); + if (i + 1 < objects.size()) { + output.append(delim); + } + } + return output.toString(); + } + public static String stringifyNullPass(Object obj) { return obj == null ? null : obj.toString(); }