From 84f23834832cc03e87665ba0089abc1f6d2fe768 Mon Sep 17 00:00:00 2001 From: SamB440 Date: Wed, 3 Dec 2025 14:17:23 +0000 Subject: [PATCH] Fix events being called async in discovery commands --- .../data/account/RPGRegionsAccount.java | 1 - ...ldlogic.java-common-conventions.gradle.kts | 2 +- .../commands/DiscoveriesCommand.java | 46 ++++++++++--------- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/api/src/main/java/net/islandearth/rpgregions/managers/data/account/RPGRegionsAccount.java b/api/src/main/java/net/islandearth/rpgregions/managers/data/account/RPGRegionsAccount.java index 3f37646..f7e1bf2 100644 --- a/api/src/main/java/net/islandearth/rpgregions/managers/data/account/RPGRegionsAccount.java +++ b/api/src/main/java/net/islandearth/rpgregions/managers/data/account/RPGRegionsAccount.java @@ -55,7 +55,6 @@ public class RPGRegionsAccount { } public TimeEntry addTimeEntryInRegion(String region, long time) { - System.out.println("added time entry: " + region + ", " + time); final TimeEntry timeEntry = new TimeEntry(time); secondsInRegion.put(region, timeEntry); return timeEntry; diff --git a/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts b/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts index 2fa5b2d..aa77b15 100644 --- a/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts @@ -60,7 +60,7 @@ repositories { } project.group = "net.islandearth.rpgregions" -project.version = "1.4.94" +project.version = "1.4.95" group = project.group version = project.version diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/commands/DiscoveriesCommand.java b/rpgregions/src/main/java/net/islandearth/rpgregions/commands/DiscoveriesCommand.java index d48d467..6f824e5 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/commands/DiscoveriesCommand.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/commands/DiscoveriesCommand.java @@ -115,17 +115,19 @@ public class DiscoveriesCommand { @Argument("region") ConfiguredRegion configuredRegion, @Argument("player") OfflinePlayer target) { plugin.getManagers().getStorageManager().getAccount(target.getUniqueId()).thenAcceptAsync(account -> { - LocalDateTime date = LocalDateTime.now(); - final WorldDiscovery worldDiscovery = new WorldDiscovery(date, configuredRegion.getId()); - account.addDiscovery(worldDiscovery); - if (target.getPlayer() != null) { - Player player = target.getPlayer(); - player.sendMessage(ChatColor.GREEN + "An administrator added a discovery to your account."); - Bukkit.getPluginManager().callEvent(new RegionDiscoverEvent(player, account, configuredRegion, worldDiscovery)); - } - plugin.getManagers().getStorageManager().removeCachedAccount(target.getUniqueId()); + plugin.getScheduler().executeOnMain(() -> { + LocalDateTime date = LocalDateTime.now(); + final WorldDiscovery worldDiscovery = new WorldDiscovery(date, configuredRegion.getId()); + account.addDiscovery(worldDiscovery); + if (target.getPlayer() != null) { + Player player = target.getPlayer(); + player.sendMessage(ChatColor.GREEN + "An administrator added a discovery to your account."); + Bukkit.getPluginManager().callEvent(new RegionDiscoverEvent(player, account, configuredRegion, worldDiscovery)); + } + plugin.getManagers().getStorageManager().removeCachedAccount(target.getUniqueId()); - sender.sendMessage(ChatColor.GREEN + "The player " + target.getName() + " has had the discovery added."); + sender.sendMessage(ChatColor.GREEN + "The player " + target.getName() + " has had the discovery added."); + }); }).exceptionally((err) -> { err.printStackTrace(); sender.sendMessage(ChatColor.RED + "An error occurred, please check console and report this to the developer."); @@ -140,18 +142,20 @@ public class DiscoveriesCommand { @Argument("fauna") FaunaInstance fauna, @Argument("player") OfflinePlayer target) { plugin.getManagers().getStorageManager().getAccount(target.getUniqueId()).thenAccept(account -> { - LocalDateTime date = LocalDateTime.now(); - final WorldDiscovery worldDiscovery = new WorldDiscovery(date, fauna.getIdentifier()); - account.addDiscovery(worldDiscovery); - if (target.getPlayer() != null) { - Player player = target.getPlayer(); - final FaunaDiscoverEvent event = new FaunaDiscoverEvent(player, fauna, worldDiscovery); - Bukkit.getPluginManager().callEvent(event); - player.sendMessage(ChatColor.GREEN + "An administrator added a discovery to your account."); - } - plugin.getManagers().getStorageManager().removeCachedAccount(target.getUniqueId()); + plugin.getScheduler().executeOnMain(() -> { + LocalDateTime date = LocalDateTime.now(); + final WorldDiscovery worldDiscovery = new WorldDiscovery(date, fauna.getIdentifier()); + account.addDiscovery(worldDiscovery); + if (target.getPlayer() != null) { + Player player = target.getPlayer(); + final FaunaDiscoverEvent event = new FaunaDiscoverEvent(player, fauna, worldDiscovery); + Bukkit.getPluginManager().callEvent(event); + player.sendMessage(ChatColor.GREEN + "An administrator added a discovery to your account."); + } + plugin.getManagers().getStorageManager().removeCachedAccount(target.getUniqueId()); - sender.sendMessage(ChatColor.GREEN + "The player " + target.getName() + " has had the discovery added."); + sender.sendMessage(ChatColor.GREEN + "The player " + target.getName() + " has had the discovery added."); + }); }).exceptionally((err) -> { err.printStackTrace(); sender.sendMessage(ChatColor.RED + "An error occurred, please check console and report this to the developer.");