mirror of
https://github.com/HibiscusMC/HMCCosmetics.git
synced 2025-12-19 15:09:19 +00:00
fix PlayerMenuOpenEvent can't cancel
This commit is contained in:
@@ -182,18 +182,25 @@ public class Menu {
|
|||||||
if (taskid.get() != -1) Bukkit.getScheduler().cancelTask(taskid.get());
|
if (taskid.get() != -1) Bukkit.getScheduler().cancelTask(taskid.get());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Runnable openGuiTask = () -> {
|
||||||
|
gui.open(viewer);
|
||||||
|
updateMenu(viewer, cosmeticHolder, gui); // fixes shading? I know I do this twice but it's easier than writing a whole new class to deal with this shit
|
||||||
|
};
|
||||||
|
|
||||||
// API
|
// API
|
||||||
if (cosmeticHolder instanceof CosmeticUser user) {
|
if (cosmeticHolder instanceof CosmeticUser user) {
|
||||||
PlayerMenuOpenEvent event = new PlayerMenuOpenEvent(user, this);
|
PlayerMenuOpenEvent event = new PlayerMenuOpenEvent(user, this);
|
||||||
Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), () -> Bukkit.getPluginManager().callEvent(event));
|
Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), () -> {
|
||||||
if (event.isCancelled()) return;
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
|
if (!event.isCancelled()) {
|
||||||
|
openGuiTask.run();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
// Internal
|
// Internal
|
||||||
|
else {
|
||||||
Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), () -> {
|
Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), openGuiTask);
|
||||||
gui.open(viewer);
|
}
|
||||||
updateMenu(viewer, cosmeticHolder, gui); // fixes shading? I know I do this twice but it's easier than writing a whole new class to deal with this shit
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateMenu(Player viewer, CosmeticHolder cosmeticHolder, Gui gui) {
|
private void updateMenu(Player viewer, CosmeticHolder cosmeticHolder, Gui gui) {
|
||||||
|
|||||||
Reference in New Issue
Block a user