Signed-off-by: yoyosource <yoyosource@nidido.de>
Dieser Commit ist enthalten in:
Ursprung
9003884dad
Commit
3c30f57e08
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
package de.steamwar.bausystem.features.script.lua.libs;
|
package de.steamwar.bausystem.features.script.lua.libs;
|
||||||
|
|
||||||
|
import de.steamwar.bausystem.BauSystem;
|
||||||
import de.steamwar.inventory.SWInventory;
|
import de.steamwar.inventory.SWInventory;
|
||||||
import de.steamwar.inventory.SWItem;
|
import de.steamwar.inventory.SWItem;
|
||||||
import de.steamwar.linkage.Linked;
|
import de.steamwar.linkage.Linked;
|
||||||
@ -35,6 +36,7 @@ import org.luaj.vm2.lib.VarArgFunction;
|
|||||||
import org.luaj.vm2.lib.ZeroArgFunction;
|
import org.luaj.vm2.lib.ZeroArgFunction;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Linked
|
@Linked
|
||||||
@ -80,7 +82,14 @@ public class InventoryLib implements LuaLib {
|
|||||||
}
|
}
|
||||||
|
|
||||||
LuaFunction handler = args.checkfunction(args.narg());
|
LuaFunction handler = args.checkfunction(args.narg());
|
||||||
item.setCallback(clickType -> handler.call(LuaValue.valueOf(clickType.name())));
|
item.setCallback(clickType -> {
|
||||||
|
try {
|
||||||
|
handler.call(LuaValue.valueOf(clickType.name()));
|
||||||
|
} catch (Exception e) {
|
||||||
|
String[] sp = e.getMessage().split(":");
|
||||||
|
BauSystem.MESSAGE.send("SCRIPT_ERROR_CLICK", player, String.join(":", Arrays.copyOfRange(sp, 1, sp.length)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
inventory.setItem(slot, item);
|
inventory.setItem(slot, item);
|
||||||
return LuaValue.NIL;
|
return LuaValue.NIL;
|
||||||
@ -94,7 +103,14 @@ public class InventoryLib implements LuaLib {
|
|||||||
Material material = SWItem.getMaterial(args.checkjstring(2));
|
Material material = SWItem.getMaterial(args.checkjstring(2));
|
||||||
String name = ChatColor.translateAlternateColorCodes('&', args.checkjstring(3));
|
String name = ChatColor.translateAlternateColorCodes('&', args.checkjstring(3));
|
||||||
LuaFunction handler = args.checkfunction(4);
|
LuaFunction handler = args.checkfunction(4);
|
||||||
SWItem item = new SWItem(material, name, clickType -> handler.call(LuaValue.valueOf(clickType.name())));
|
SWItem item = new SWItem(material, name, clickType -> {
|
||||||
|
try {
|
||||||
|
handler.call(LuaValue.valueOf(clickType.name()));
|
||||||
|
} catch (Exception e) {
|
||||||
|
String[] sp = e.getMessage().split(":");
|
||||||
|
BauSystem.MESSAGE.send("SCRIPT_ERROR_CLICK", player, String.join(":", Arrays.copyOfRange(sp, 1, sp.length)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (args.narg() >= 5) {
|
if (args.narg() >= 5) {
|
||||||
LuaTable lore = args.checktable(5);
|
LuaTable lore = args.checktable(5);
|
||||||
@ -122,7 +138,14 @@ public class InventoryLib implements LuaLib {
|
|||||||
@Override
|
@Override
|
||||||
public LuaValue call(LuaValue arg) {
|
public LuaValue call(LuaValue arg) {
|
||||||
LuaFunction function = arg.checkfunction();
|
LuaFunction function = arg.checkfunction();
|
||||||
inventory.addCloseRunnable(function::call);
|
inventory.addCloseRunnable(() -> {
|
||||||
|
try {
|
||||||
|
function.call();
|
||||||
|
} catch (Exception e) {
|
||||||
|
String[] sp = e.getMessage().split(":");
|
||||||
|
BauSystem.MESSAGE.send("SCRIPT_ERROR_CLICK", player, String.join(":", Arrays.copyOfRange(sp, 1, sp.length)));
|
||||||
|
}
|
||||||
|
});
|
||||||
return LuaValue.NIL;
|
return LuaValue.NIL;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren