LuaInMinecraftBukkit icon

LuaInMinecraftBukkit -----

Using lua script to make bukkit plugin





Use closure in your plugin setting class.
----------, May 21, 2022

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);
}
 
----------, May 19, 2022

You can aim which Lua VM to run your script in lua_plugin.yml
----------, May 17, 2022

Resource Information
Author:
----------
Total Downloads: 313
First Release: May 9, 2022
Last Update: Oct 24, 2022
Category: ---------------
All-Time Rating:
0 ratings
Find more info at blog.smileyik.eu.org...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings