Skip to content

Commit

Permalink
fix denizenclickable if chattrigger is set to async
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Aug 5, 2023
1 parent d3010de commit f362b88
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 7 deletions.
Expand Up @@ -558,7 +558,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String alias, String
return false;
}
if (args.length >= 2 && CoreUtilities.equalsIgnoreCase(args[0], "chat")) {
ChatTrigger.instance.syncChatTrigger(new PlayerChatEvent((Player) sender, Arrays.stream(args).skip(1).collect(Collectors.joining(" "))));
ChatTrigger.instance.chatTriggerInternal(new PlayerChatEvent((Player) sender, Arrays.stream(args).skip(1).collect(Collectors.joining(" "))));
return true;
}
if (args.length != 1) {
Expand Down
Expand Up @@ -56,7 +56,7 @@ public void load(DataKey key) {
public void buildCache() {
containerCache.clear();
for (String assignment : assignments) {
AssignmentScriptContainer container = ScriptRegistry.getScriptContainerAs(assignment, AssignmentScriptContainer.class);
AssignmentScriptContainer container = ScriptRegistry.getScriptContainer(assignment);
containerCache.add(container);
if (container == null) {
Debug.echoError("NPC " + npc.getId() + " has assignment '" + assignment + "' which does not exist.");
Expand Down
Expand Up @@ -126,15 +126,15 @@ public static ItemTag valueOf(String string, TagContext context) {
string = CoreUtilities.toLowerCase(string);
try {
if (ScriptRegistry.containsScript(string, ItemScriptContainer.class)) {
ItemScriptContainer isc = ScriptRegistry.getScriptContainerAs(string, ItemScriptContainer.class);
ItemScriptContainer isc = ScriptRegistry.getScriptContainer(string);
// TODO: If a script does not contain tags, get the clean reference here.
stack = isc.getItemFrom(context);
if (stack == null && (context == null || context.showErrors())) {
Debug.echoError("Item script '" + isc.getName() + "' returned a null item.");
}
}
else if (ScriptRegistry.containsScript(string, BookScriptContainer.class)) {
BookScriptContainer book = ScriptRegistry.getScriptContainerAs(string, BookScriptContainer.class);
BookScriptContainer book = ScriptRegistry.getScriptContainer(string);
stack = book.getBookFrom(context);
if (stack == null && (context == null || context.showErrors())) {
Debug.echoError("Book script '" + book.getName() + "' returned a null item.");
Expand Down
Expand Up @@ -80,7 +80,7 @@ public AssignmentScriptContainer(YamlConfiguration configurationSection, String

public InteractScriptContainer getInteract() {
if (interact == null && interactName != null) {
interact = ScriptRegistry.getScriptContainerAs(interactName, InteractScriptContainer.class);
interact = ScriptRegistry.getScriptContainer(interactName);
if (interact == null) {
Debug.echoError("'" + interactName + "' is not a valid Interact Script. Is there a duplicate script by this name, or is it missing?");
}
Expand Down
Expand Up @@ -36,7 +36,7 @@ public void disableCoreMembers() {

public <T extends AbstractTrigger> T get(Class<T> clazz) {
if (classes.containsKey(clazz)) {
return clazz.cast(instances.get(classes.get(clazz)));
return (T) instances.get(classes.get(clazz));
}
else {
return null;
Expand Down
Expand Up @@ -364,13 +364,17 @@ public void asyncChatTrigger(final AsyncPlayerChatEvent event) {
}

@EventHandler
public void syncChatTrigger(final PlayerChatEvent event) {
public void syncChatTrigger(PlayerChatEvent event) {
if (event.isCancelled()) {
return;
}
if (Settings.chatAsynchronous()) {
return;
}
chatTriggerInternal(event);
}

public void chatTriggerInternal(PlayerChatEvent event) {
ChatContext chat = process(event.getPlayer(), event.getMessage());
if (chat.wasTriggered()) {
event.setCancelled(true);
Expand Down

0 comments on commit f362b88

Please sign in to comment.