First GUI Prototype
Dieser Commit ist enthalten in:
Ursprung
56875f4146
Commit
b205cb2216
6
src/de/steamwar/inventory/InvCallback.java
Normale Datei
6
src/de/steamwar/inventory/InvCallback.java
Normale Datei
@ -0,0 +1,6 @@
|
||||
package de.steamwar.inventory;
|
||||
|
||||
public interface InvCallback {
|
||||
|
||||
public void clicked();
|
||||
}
|
243
src/de/steamwar/inventory/SWInventory.java
Normale Datei
243
src/de/steamwar/inventory/SWInventory.java
Normale Datei
@ -0,0 +1,243 @@
|
||||
package de.steamwar.inventory;
|
||||
|
||||
import de.warking.hunjy.Core;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
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 org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class SWInventory implements Listener, Inventory {
|
||||
|
||||
private Player player;
|
||||
private Map<Integer, InvCallback> callbacks;
|
||||
private int inventorySize;
|
||||
private ItemStack[] contents;
|
||||
private String title;
|
||||
|
||||
public SWInventory(Player p, int size, String t){
|
||||
title = t;
|
||||
callbacks = new HashMap<>();
|
||||
player = p;
|
||||
inventorySize = size;
|
||||
contents = new ItemStack[inventorySize];
|
||||
Bukkit.getPluginManager().registerEvents(this, Core.getInstance());
|
||||
}
|
||||
|
||||
public void addCloseCallback(InvCallback c){
|
||||
callbacks.put(-1, c);
|
||||
}
|
||||
|
||||
public void setItem(int pos, Material m, String name, InvCallback c){
|
||||
setItem(pos, m, name, null, false, c);
|
||||
}
|
||||
|
||||
public void setItem(int pos, Material m, String name, List<String> lore, boolean e, InvCallback c){
|
||||
contents[pos] = new ItemStack(m, 1, (short)0);
|
||||
ItemMeta im = contents[pos].getItemMeta();
|
||||
im.setDisplayName(name);
|
||||
im.setLore(lore);
|
||||
if(e)
|
||||
im.addEnchant(Enchantment.DURABILITY , 10, true);
|
||||
contents[pos].setItemMeta(im);
|
||||
callbacks.put(pos, c);
|
||||
}
|
||||
|
||||
public void open(){
|
||||
player.openInventory(this);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent e){
|
||||
System.out.println("Click");
|
||||
e.setCancelled(true);
|
||||
if(callbacks.containsKey(e.getRawSlot()))
|
||||
callbacks.get(e.getSlot()).clicked();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClose(InventoryCloseEvent e){
|
||||
System.out.println("Close");
|
||||
InventoryClickEvent.getHandlerList().unregister(this);
|
||||
InventoryCloseEvent.getHandlerList().unregister(this);
|
||||
if(callbacks.containsKey(-1))
|
||||
callbacks.get(-1).clicked();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getSize() {return inventorySize;}
|
||||
@Override
|
||||
public int getMaxStackSize() {return 999;}
|
||||
@Override
|
||||
public void setMaxStackSize(int size) {}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return title;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getItem(int index) {
|
||||
return contents[index];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setItem(int index, ItemStack item) {}
|
||||
|
||||
@Override
|
||||
public HashMap<Integer, ItemStack> addItem(ItemStack... items) throws IllegalArgumentException {return null;}
|
||||
|
||||
@Override
|
||||
public HashMap<Integer, ItemStack> removeItem(ItemStack... items) throws IllegalArgumentException {return null;}
|
||||
@Override
|
||||
public ItemStack[] getContents() {return contents;}
|
||||
@Override
|
||||
public void setContents(ItemStack[] items) throws IllegalArgumentException {}
|
||||
@Override
|
||||
public ItemStack[] getStorageContents() {return contents;}
|
||||
@Override
|
||||
public void setStorageContents(ItemStack[] items) throws IllegalArgumentException {}
|
||||
|
||||
@Override
|
||||
public boolean contains(int materialId) {
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean contains(Material material) throws IllegalArgumentException {
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean contains(ItemStack item) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean contains(int materialId, int amount) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean contains(Material material, int amount) throws IllegalArgumentException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean contains(ItemStack item, int amount) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsAtLeast(ItemStack item, int amount) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<Integer, ? extends ItemStack> all(int materialId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<Integer, ? extends ItemStack> all(Material material) throws IllegalArgumentException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<Integer, ? extends ItemStack> all(ItemStack item) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int first(int materialId) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int first(Material material) throws IllegalArgumentException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int first(ItemStack item) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int firstEmpty() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(int materialId) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(Material material) throws IllegalArgumentException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(ItemStack item) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear(int index) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HumanEntity> getViewers() {
|
||||
List<HumanEntity> l = new ArrayList<>();
|
||||
l.add(player);
|
||||
return l;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InventoryType getType() {
|
||||
return InventoryType.CHEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InventoryHolder getHolder() {
|
||||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListIterator<ItemStack> iterator() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListIterator<ItemStack> iterator(int index) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getLocation() {
|
||||
return null;
|
||||
}
|
||||
}
|
In neuem Issue referenzieren
Einen Benutzer sperren