NoSchemSharing bug fix #180
@ -87,6 +87,37 @@ public class InventoryLib implements LuaLib {
|
||||
}
|
||||
});
|
||||
|
||||
table.set("item", new VarArgFunction() {
|
||||
@Override
|
||||
public Varargs invoke(Varargs args) {
|
||||
int slot = args.checkint(1);
|
||||
Material material = SWItem.getMaterial(args.checkjstring(2));
|
||||
String name = ChatColor.translateAlternateColorCodes('&', args.checkjstring(3));
|
||||
LuaFunction handler = args.checkfunction(4);
|
||||
SWItem item = new SWItem(material, name, clickType -> handler.call(LuaValue.valueOf(clickType.name())));
|
||||
|
||||
if (args.narg() >= 5) {
|
||||
LuaTable lore = args.checktable(5);
|
||||
List<String> loreList = new ArrayList<>(lore.length());
|
||||
for (int i = 1; i <= lore.length(); i++) {
|
||||
loreList.add(ChatColor.translateAlternateColorCodes('&', lore.get(i).checkjstring()));
|
||||
}
|
||||
item.setLore(loreList);
|
||||
}
|
||||
|
||||
if (args.narg() >= 6) {
|
||||
item.setEnchanted(args.checkboolean(6));
|
||||
}
|
||||
|
||||
if (args.narg() >= 7) {
|
||||
item.getItemStack().setAmount(args.checkint(7));
|
||||
}
|
||||
|
||||
inventory.setItem(slot, item);
|
||||
return LuaValue.NIL;
|
||||
}
|
||||
});
|
||||
|
||||
table.set("setCloseHandler", new OneArgFunction() {
|
||||
@Override
|
||||
public LuaValue call(LuaValue arg) {
|
||||
|
10
SCRIPT.md
10
SCRIPT.md
@ -213,11 +213,11 @@ Es gibt folgende Funktionen:
|
||||
Das `Inventory`-Objekt hat folgende Funktionen:
|
||||
|
||||
| Name | Signature | Beschreibung |
|
||||
|-------------------|-----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `setItem` | setItem(Number, String, String, Function\<String>) | Setze ein Item mit dem Typen des ersten Strings an den Slot (Startet bei 0) mit dem Namen des zweiten Strings mit einem Klick-Handler der den Klick-Typen rein gibt (z.B. `LEFT`, `SHIFT_LEFT`, `RIGHT`, `SHIFT_RIGHT`) |
|
||||
| -"- | setItem(Number, String, String, List<String>, Function\<String>) | Füge eine Lore an das Item hinzu |
|
||||
| -"- | setItem(Number, String, String, List<String>, Boolean, Function\<String>) | Gebe an, ob das Item enchanted sein soll |
|
||||
| -"- | setItem(Number, String, String, List<String>, Boolean, Number, Function\<String>) | Gebe die Anzahl der Items an |
|
||||
|-------------------|--------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `item` | item(Number, String, String, Function\<String>) | Setze ein Item mit dem Typen des ersten Strings an den Slot (Startet bei 0) mit dem Namen des zweiten Strings mit einem Klick-Handler der den Klick-Typen rein gibt (z.B. `LEFT`, `SHIFT_LEFT`, `RIGHT`, `SHIFT_RIGHT`) |
|
||||
| -"- | item(Number, String, String, Function\<String>, List<String>) | Füge eine Lore an das Item hinzu |
|
||||
| -"- | item(Number, String, String, Function\<String>, List<String>, Boolean) | Gebe an, ob das Item enchanted sein soll |
|
||||
| -"- | item(Number, String, String, Function\<String>, List<String>, Boolean, Number) | Gebe die Anzahl der Items an |
|
||||
| `setCloseHandler` | setCloseHandler(Function\<Void>) | Gebe einen Handler an, der beim schließen des Inventares ausgeführt wird |
|
||||
| `open` | open() | Öffne das Inventar |
|
||||
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren