Finish of first GUI-API
Dieser Commit ist enthalten in:
Ursprung
b205cb2216
Commit
6f430209ea
@ -4,7 +4,6 @@ import de.warking.hunjy.Core;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
|
||||||
import org.bukkit.entity.HumanEntity;
|
import org.bukkit.entity.HumanEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -15,7 +14,6 @@ import org.bukkit.event.inventory.InventoryType;
|
|||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.InventoryHolder;
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@ -36,23 +34,28 @@ public class SWInventory implements Listener, Inventory {
|
|||||||
Bukkit.getPluginManager().registerEvents(this, Core.getInstance());
|
Bukkit.getPluginManager().registerEvents(this, Core.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SWInventory(Player p, int size, String t, Map<Integer, SWItem> items){
|
||||||
|
this(p, size, t);
|
||||||
|
items.forEach(this::setItem);
|
||||||
|
open();
|
||||||
|
}
|
||||||
|
|
||||||
public void addCloseCallback(InvCallback c){
|
public void addCloseCallback(InvCallback c){
|
||||||
callbacks.put(-1, c);
|
callbacks.put(-1, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setItem(int pos, SWItem item){
|
||||||
|
contents[pos] = item.getItemStack();
|
||||||
|
callbacks.put(pos, item.getCallback());
|
||||||
|
}
|
||||||
|
|
||||||
public void setItem(int pos, Material m, String name, InvCallback c){
|
public void setItem(int pos, Material m, String name, InvCallback c){
|
||||||
setItem(pos, m, name, null, false, c);
|
setItem(pos, m, name, new ArrayList<>(), false, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setItem(int pos, Material m, String name, List<String> lore, boolean e, InvCallback 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);
|
SWItem item = new SWItem(m, name, lore, e, c);
|
||||||
ItemMeta im = contents[pos].getItemMeta();
|
setItem(pos, item);
|
||||||
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(){
|
public void open(){
|
||||||
|
78
src/de/steamwar/inventory/SWItem.java
Normale Datei
78
src/de/steamwar/inventory/SWItem.java
Normale Datei
@ -0,0 +1,78 @@
|
|||||||
|
package de.steamwar.inventory;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SWItem {
|
||||||
|
|
||||||
|
private ItemStack itemStack;
|
||||||
|
private ItemMeta itemMeta;
|
||||||
|
private InvCallback callback;
|
||||||
|
|
||||||
|
public SWItem(){
|
||||||
|
itemStack = new ItemStack(Material.AIR);
|
||||||
|
itemMeta = itemStack.getItemMeta();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SWItem(Material material, String name, List<String> lore, boolean enchanted, InvCallback c){
|
||||||
|
itemStack = new ItemStack(material, 1, (short)0);
|
||||||
|
itemMeta = itemStack.getItemMeta();
|
||||||
|
itemMeta.setDisplayName(name);
|
||||||
|
if(lore != null && !lore.isEmpty())
|
||||||
|
itemMeta.setLore(lore);
|
||||||
|
if(enchanted)
|
||||||
|
itemMeta.addEnchant(Enchantment.DURABILITY , 10, true);
|
||||||
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
callback = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getItemStack() {
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItemStack(ItemStack itemStack) {
|
||||||
|
this.itemStack = itemStack;
|
||||||
|
this.itemMeta = itemStack.getItemMeta();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemMeta getItemMeta() {
|
||||||
|
return itemMeta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItemMeta(ItemMeta itemMeta) {
|
||||||
|
this.itemMeta = itemMeta;
|
||||||
|
this.itemStack.setItemMeta(itemMeta);
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvCallback getCallback() {
|
||||||
|
return callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCallback(InvCallback callback) {
|
||||||
|
this.callback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name){
|
||||||
|
itemMeta.setDisplayName(name);
|
||||||
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLore(List<String> lore){
|
||||||
|
itemMeta.setLore(lore);
|
||||||
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnchanted(boolean enchanted){
|
||||||
|
if(enchanted){
|
||||||
|
itemMeta.addEnchant(Enchantment.DURABILITY , 10, true);
|
||||||
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
}else{
|
||||||
|
itemMeta.removeEnchant(Enchantment.DURABILITY);
|
||||||
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
In neuem Issue referenzieren
Einen Benutzer sperren