All source projects
MrUltimateLibrary Source
Standalone source project / 68 files
MrUltimateLibrary is the backbone of all my plugins; it offers features that facilitate plugin creation, maintenance, and updates.
java
MrUltimateLibrary/src/main/java/eu/mrneznamy/mrultimatelibrary/gui/MrLibGUIManager.java
JAVA · Read-only source
package eu.mrneznamy.mrultimatelibrary.gui;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* Manager for tracking open GUIs
*/
public class MrLibGUIManager implements Listener {
private static final Map<UUID, MrLibGUI> openGUIs = new HashMap<>();
/**
* Register GUI for player
*/
public static void registerGUI(Player player, MrLibGUI gui) {
openGUIs.put(player.getUniqueId(), gui);
}
/**
* Unregister GUI for player
*/
public static void unregisterGUI(Player player) {
openGUIs.remove(player.getUniqueId());
}
/**
* Get GUI for player
*/
public static MrLibGUI getGUI(Player player) {
return openGUIs.get(player.getUniqueId());
}
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
if (!(event.getWhoClicked() instanceof Player)) {
return;
}
Player player = (Player) event.getWhoClicked();
MrLibGUI gui = openGUIs.get(player.getUniqueId());
if (gui != null && event.getInventory().equals(gui.getInventory())) {
try {
gui.handleClick(event);
} catch (Throwable t) {
try {
String slug = "mrultimatelibrary";
if (eu.mrneznamy.mrultimatelibrary.MrUltimateLibrary.getInstance() != null) {
slug = eu.mrneznamy.mrultimatelibrary.MrUltimateLibrary.getInstance().getName().toLowerCase();
}
eu.mrneznamy.mrultimatelibrary.MrUltimateLibrary.reportError(slug, t, "Error in GUI handleClick");
} catch (Throwable ignored) {}
}
}
}
@EventHandler
public void onInventoryClose(InventoryCloseEvent event) {
if (!(event.getPlayer() instanceof Player)) {
return;
}
Player player = (Player) event.getPlayer();
MrLibGUI gui = openGUIs.get(player.getUniqueId());
if (gui != null && event.getInventory().equals(gui.getInventory())) {
gui.handleClose(event);
unregisterGUI(player);
}
}
}
81 linesGNU GENERAL PUBLIC LICENSE · Version 3, 29 June 2007 · UTF-8 · Read only