Add SWActionListInv
Add SWActionBar
Dieser Commit ist enthalten in:
Ursprung
1b17b513d2
Commit
d856d4d476
31
SpigotCore_Main/src/de/steamwar/inventory/SWActionBar.java
Normale Datei
31
SpigotCore_Main/src/de/steamwar/inventory/SWActionBar.java
Normale Datei
@ -0,0 +1,31 @@
|
|||||||
|
package de.steamwar.inventory;
|
||||||
|
|
||||||
|
public class SWActionBar {
|
||||||
|
|
||||||
|
public enum Slot {
|
||||||
|
ZERO(0),
|
||||||
|
ONE(1),
|
||||||
|
TWO(2),
|
||||||
|
THREE(3),
|
||||||
|
FOUR(4),
|
||||||
|
FIVE(5),
|
||||||
|
SIX(6);
|
||||||
|
|
||||||
|
private int index;
|
||||||
|
|
||||||
|
Slot(int index) {
|
||||||
|
this.index = index;
|
||||||
|
}
|
||||||
|
|
||||||
|
int getIndex() {
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SWItem[] actionBar = new SWItem[7];
|
||||||
|
|
||||||
|
public void setItem(Slot slot, SWItem item) {
|
||||||
|
actionBar[slot.getIndex()] = item;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
73
SpigotCore_Main/src/de/steamwar/inventory/SWActionListInv.java
Normale Datei
73
SpigotCore_Main/src/de/steamwar/inventory/SWActionListInv.java
Normale Datei
@ -0,0 +1,73 @@
|
|||||||
|
package de.steamwar.inventory;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SWActionListInv<T> extends SWInventory {
|
||||||
|
|
||||||
|
private SWListInv.ListCallback<T> callback;
|
||||||
|
private List<SWListInv.SWListEntry<T>> elements;
|
||||||
|
private SWActionBar actionBar = null;
|
||||||
|
private int page;
|
||||||
|
|
||||||
|
public SWActionListInv(Player p, String t, List<SWListInv.SWListEntry<T>> l, SWListInv.ListCallback<T> c){
|
||||||
|
super(p, 54, t);
|
||||||
|
callback = c;
|
||||||
|
elements = l;
|
||||||
|
page = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setActionBar(SWActionBar actionBar) {
|
||||||
|
this.actionBar = actionBar;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void open(){
|
||||||
|
inventory.clear();
|
||||||
|
setCallback(-999, (ClickType click) -> player.closeInventory());
|
||||||
|
if (page != 0) {
|
||||||
|
setItem(0, SWItem.getDye(10), (byte) 10, "§eSeite zurück", (ClickType click) -> {
|
||||||
|
page--;
|
||||||
|
open();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setItem(0, SWItem.getDye(8), (byte) 8, "§7Seite zurück", (ClickType click) -> {});
|
||||||
|
}
|
||||||
|
if (page < elements.size() / 45) {
|
||||||
|
setItem(8, SWItem.getDye(10), (byte) 10, "§eSeite vor", (ClickType click) -> {
|
||||||
|
page++;
|
||||||
|
open();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setItem(8, SWItem.getDye(8), (byte) 8, "§7Seite vor", (ClickType click) -> {});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actionBar != null) {
|
||||||
|
for (int i = 0; i < 7; i++) {
|
||||||
|
setItem(i + 1, actionBar.actionBar[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int ipageLimit = elements.size() - page*45;
|
||||||
|
if(ipageLimit > 45 && elements.size() > 45){
|
||||||
|
ipageLimit = 45;
|
||||||
|
}
|
||||||
|
int i = page*45;
|
||||||
|
for(int ipage=0; ipage < ipageLimit; ipage++ ){
|
||||||
|
SWItem e = elements.get(i).getItem();
|
||||||
|
|
||||||
|
final int pos = i;
|
||||||
|
setItem(ipage + 9, e);
|
||||||
|
setCallback(ipage, (ClickType click) -> callback.clicked(click, elements.get(pos).getObject()));
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
super.open();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCallback(SWListInv.ListCallback<T> c){
|
||||||
|
callback = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -111,18 +111,15 @@ public class SWItem {
|
|||||||
hideAttributes();
|
hideAttributes();
|
||||||
|
|
||||||
itemMeta.setDisplayName(name);
|
itemMeta.setDisplayName(name);
|
||||||
if(lore != null && !lore.isEmpty())
|
if (lore != null && !lore.isEmpty()) itemMeta.setLore(lore);
|
||||||
itemMeta.setLore(lore);
|
if (enchanted) itemMeta.addEnchant(Enchantment.DURABILITY , 10, true);
|
||||||
if(enchanted)
|
|
||||||
itemMeta.addEnchant(Enchantment.DURABILITY , 10, true);
|
|
||||||
itemStack.setItemMeta(itemMeta);
|
itemStack.setItemMeta(itemMeta);
|
||||||
}
|
}
|
||||||
callback = c;
|
callback = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void hideAttributes() {
|
private void hideAttributes() {
|
||||||
if(itemMeta == null)
|
if (itemMeta == null) return;
|
||||||
return;
|
|
||||||
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
||||||
itemMeta.addItemFlags(ItemFlag.HIDE_DESTROYS);
|
itemMeta.addItemFlags(ItemFlag.HIDE_DESTROYS);
|
||||||
itemMeta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
|
itemMeta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
|
||||||
@ -172,10 +169,9 @@ public class SWItem {
|
|||||||
public void setEnchanted(boolean enchanted) {
|
public void setEnchanted(boolean enchanted) {
|
||||||
if (enchanted){
|
if (enchanted){
|
||||||
itemMeta.addEnchant(Enchantment.DURABILITY , 10, true);
|
itemMeta.addEnchant(Enchantment.DURABILITY , 10, true);
|
||||||
itemStack.setItemMeta(itemMeta);
|
|
||||||
} else {
|
} else {
|
||||||
itemMeta.removeEnchant(Enchantment.DURABILITY);
|
itemMeta.removeEnchant(Enchantment.DURABILITY);
|
||||||
|
}
|
||||||
itemStack.setItemMeta(itemMeta);
|
itemStack.setItemMeta(itemMeta);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren