Skip to content

Commit

Permalink
Fixed bukkit complaining about UpdatePlayerEvent being called on the …
Browse files Browse the repository at this point in the history
…main thread
  • Loading branch information
ajgeiss0702 committed Jul 21, 2023
1 parent 662cb5e commit 1d02b10
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions src/main/java/us/ajg0702/leaderboards/cache/Cache.java
Expand Up @@ -435,11 +435,14 @@ public void updatePlayerStats(OfflinePlayer player) {
player.getPlayer().hasPermission("ajleaderboards.dontupdate."+b)
) continue;
}
UpdatePlayerEvent updatePlayerEvent = new UpdatePlayerEvent(new BoardPlayer(b, player));
Bukkit.getPluginManager().callEvent(updatePlayerEvent);
if(updatePlayerEvent.isCancelled()) {
Debug.info("Update for " + player.getName() + " on " + b + " was canceled by an event!");
continue;
// If this update isnt async, then dont run the event until it is async
if(!Bukkit.isPrimaryThread()) {
UpdatePlayerEvent updatePlayerEvent = new UpdatePlayerEvent(new BoardPlayer(b, player));
Bukkit.getPluginManager().callEvent(updatePlayerEvent);
if(updatePlayerEvent.isCancelled()) {
Debug.info("Update for " + player.getName() + " on " + b + " was canceled by an event!");
continue;
}
}
updateStat(b, player);
}
Expand Down Expand Up @@ -522,13 +525,24 @@ public void updateStat(String board, OfflinePlayer player) {
prefix = "";
}

boolean waitedUpdate = Bukkit.isPrimaryThread();

String finalDisplayName = displayName;
String finalSuffix = suffix;
String finalPrefix = prefix;
Runnable updateTask = () -> {

BoardPlayer boardPlayer = new BoardPlayer(board, player);

if(waitedUpdate) {
UpdatePlayerEvent updatePlayerEvent = new UpdatePlayerEvent(boardPlayer);
Bukkit.getPluginManager().callEvent(updatePlayerEvent);
if(updatePlayerEvent.isCancelled()) {
Debug.info("Update for " + player.getName() + " on " + board + " was canceled by an event!");
return;
}
}

StatEntry cached = plugin.getTopManager().getCachedStatEntry(player, board, TimedType.ALLTIME);
if(cached != null && cached.hasPlayer() &&
cached.getScore() == output &&
Expand Down

0 comments on commit 1d02b10

Please sign in to comment.