This update is for plugin developers.
usage:
use
Code (Text):
LuaConfig config = LuaConfig.loadInsideLuaConfig(Path/ScriptString)
or use native lua vm
Code (Text):
LuaConfig config = LuaConfig.loadOutsideLuaConfig(Path/ScriptString)
then set global var to lua environment
Code (Text):
config.setGlobal("entity", entity);
.......
and configuare
Code (Text):
config.config();
for example:
Class Entity
Code (Text):
package tk.smileyik.config;
import java.util.Arrays;
public class Entity {
String aString;
int anInt;
float aFloat;
char aChar;
boolean aBoolean;
double aDouble;
byte[] bytes;
double[] doubles;
char[] chars;
int[] ints;
String[] strings;
Entity[] entities;
Entity entity;
public void setaString(String aString) {
this.aString = aString;
}
public void setAnInt(int anInt) {
this.anInt = anInt;
}
public void setaFloat(float aFloat) {
this.aFloat = aFloat;
}
public void setaChar(char aChar) {
this.aChar = aChar;
}
public void setaBoolean(boolean aBoolean) {
this.aBoolean = aBoolean;
}
public void setaDouble(double aDouble) {
this.aDouble = aDouble;
}
public void setBytes(byte[] bytes) {
this.bytes = bytes;
}
public void setDoubles(double[] doubles) {
this.doubles = doubles;
}
public void setChars(char[] chars) {
this.chars = chars;
}
public void setInts(int[] ints) {
this.ints = ints;
}
public void setStrings(String[] strings) {
this.strings = strings;
}
public void setEntities(Entity[] entities) {
this.entities = entities;
}
public void setEntity(Entity entity) {
this.entity = entity;
}
@Override
public String toString() {
return "Entity{" +
"aString='" + aString + '\'' +
", anInt=" + anInt +
", aFloat=" + aFloat +
", aChar=" + aChar +
", aBoolean=" + aBoolean +
", aDouble=" + aDouble +
", bytes=" + Arrays.toString(bytes) +
", doubles=" + Arrays.toString(doubles) +
", chars=" + Arrays.toString(chars) +
", ints=" + Arrays.toString(ints) +
", strings=" + Arrays.toString(strings) +
", entities=" + Arrays.toString(entities) +
", entity=" + entity +
'}';
}
}
lua script
Code (Text):
---
--- Generated by Luanalysis
--- Created by SmileYik.
--- DateTime: 2022/5/19 下午2:22
---
entity:setaString("I am String")
entity:setAnInt(10)
entity:setaFloat(1.555555555555555)
entity:setaChar(49)
entity:setaBoolean(true)
entity:setaDouble(1.55555555555555)
entity:setDoubles({1.1, 2.2, 3.3, 4.4, 5.5})
entity:setChars({46, 47, 48})
entity:setInts({7, 8, 9, 10})
entity:setStrings({"aaaaa", "bbbbbb", "cccccc"})
entity:setEntities({nil, nil, nil})
entity:setEntity(nil)
test code:
Code (Text):
@org.junit.jupiter.api.Test
void fileScriptInsideTest() throws LuaException, IOException {
LuaConfig config = LuaConfig.loadInsideLuaConfig(Paths.get("/home/miskyle" +
"/workspace/idea-space/LuaInMinecraftBukkt/src/test/resources/lua_config_inside_test.lua"));
Entity entity = new Entity();
System.out.println(entity);
System.out.println("---------------");
config.setGlobal("entity", entity);
config.config();
System.out.println(entity);
}