Skip to content

Commit

Permalink
fix list ping event determinations
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Jan 2, 2020
1 parent 1155381 commit 0914e35
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
Expand Up @@ -121,6 +121,9 @@ public static EventExecutor getExecutor(RegisteredListener listener) {
@Override
public void fire() {
if (!Bukkit.isPrimaryThread()) {
if (Debug.verbose) {
Debug.log("Event is firing async: " + getName());
}
BukkitScriptEvent altEvent = (BukkitScriptEvent) clone();
new BukkitRunnable() {
@Override
Expand Down
@@ -1,13 +1,19 @@
package com.denizenscript.denizen.events.core;

import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizen.utilities.DenizenAPI;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.server.ServerListPingEvent;

import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

public class ListPingScriptEvent extends BukkitScriptEvent implements Listener {

// <--[event]
Expand Down Expand Up @@ -88,6 +94,20 @@ else if (name.equals("address")) {
@EventHandler
public void onListPing(ServerListPingEvent event) {
this.event = event;
if (!Bukkit.isPrimaryThread()) {
BukkitScriptEvent altEvent = (BukkitScriptEvent) clone();
Future future = Bukkit.getScheduler().callSyncMethod(DenizenAPI.getCurrentInstance(), () -> {
altEvent.fire();
return null;
});
try {
future.get(5, TimeUnit.SECONDS);
}
catch (Throwable ex) {
Debug.echoError(ex);
}
return;
}
fire(event);
}
}

0 comments on commit 0914e35

Please sign in to comment.