WorldSystem/src/main/java/de/butzlabben/inventory/OrcListener.java

55 lines
1.5 KiB
Java

package de.butzlabben.inventory;
import de.butzlabben.WorldSystem;
import org.bukkit.Bukkit;
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.UUID;
/**
* @author Butzlabben
* @since 10.06.2018
*/
public class OrcListener implements Listener {
private static OrcListener instance;
private final HashMap<UUID, OrcInventory> invs = new HashMap<>();
private OrcListener() {
Bukkit.getPluginManager().registerEvents(this, WorldSystem.getInstance());
}
public static synchronized OrcListener getInstance() {
if (instance == null)
instance = new OrcListener();
return instance;
}
@EventHandler
public void on(InventoryClickEvent e) {
if (e.getClickedInventory() != null && invs.containsKey(e.getWhoClicked().getUniqueId())) {
e.setCancelled(true);
OrcItem item = invs.get(e.getWhoClicked().getUniqueId()).items.get(e.getSlot());
if (item != null)
item.onClick((Player) e.getWhoClicked(), invs.get(e.getWhoClicked().getUniqueId()));
}
}
public void register(UUID uuid, OrcInventory inv) {
invs.put(uuid, inv);
}
@EventHandler
public void on(InventoryCloseEvent e) {
if (e.getInventory() != null) {
invs.remove(e.getPlayer().getUniqueId());
}
}
}