LuaInMinecraftBukkit II —— 在服务器中更简单的使用Lua脚本 [1.7+]

原创 开源 前置/API 工具 LuaInMinecraftBukkit II —— 在服务器中更简单的使用Lua脚本 [1.7+] 1.1.0

完成注册/登录后下载
主要改变:
  • 修复 Windows 下 luajit native 库索引错误问题
  • 修复快速反射在生成字节码失败时报错, 并在生成失败时回退到标准的反射
  • 添加更新检查器, 异步检查插件更新, 若网络请求未在一分钟内完成则将跳过更新检测
  • 更新时自动重新下载依赖库文件, 防止依赖库过时导致的崩溃
  • 添加 Lua API registerRawCommand 用于快速注册单个指令
  • Lua虚拟机在Panic时将会给予更多的错误信息
  • 添加新的 bStats 表格, 用于统计所使用的 Lua 版本
  • 将 ILuaStateManager 作为 Service 注册进 Bukkit
  • 添加了 Luacage 包管理器, 以及配套指令 /luacage
  • 若干其他更改
  • Lua 代码自动补全支持
**Full Changelog**: https://github.com/SmileYik/LuaInMinecraftBukkitII/compare/1.0.8...1.0.9

# 主要改变:

+ Folia 服务端支持: [feat: Folia support, add build params -PFoliaSupport to support Fol…](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/c965f4d5e33c610bceb0828bae003371ff180c2c), [fix: folia scheduler cancel schedule method.](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/4bd8abcde26b6853b7908ff5c142e3f100b0c2f4)
+ Lua 脚本修改后自动重载: [feat: auto reload scripts when it was modified](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/a35c51fe2727107ab203a8be68d9d3b7f3321989)
+ Lua 脚本将能够调用 Java 接口定义的默认方法, 并且能够支持配置Lua环境在寻找到多个匹配的方法时的行为: [update luajava](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/59e6367a907683e3fa53c6c685422874b170dcff)
+ 添加新的API使得能够在 Lua 中自由切换Lua环境在寻找到多个匹配的方法时的行为: [feat: add new lua api to switch luajava behavior on searched multi ja…](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/65f76ae3d9f746b2847edbdc8c970af382d2d131)
+ 当第一次初始化插件时, 会生成样例 Lua 脚本文件: [feat: add default test.lua file when first initialize plugin config](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/6e90f974a8b6e2bc0df2df49213171454810288a)
+ 添加快速反射支持: [feat: fast reflection util for invoke method, get/set field](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/12effeb96a2e008aa62677301a6852c509699cda), [fix: return null if return type is void & lambda instance class canno…](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/8af8c92fe93c6722a418ddc9acd25e331c349243), [feat: first part fo FastReflection for LuaJavaApi](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/0c4de69780300916aa60789e483b1c0e0a6e4b46), [feat: bump luajava](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/59ad309c65f70f0585b8f907858fdd2ec0fb5d60), [fix: update luajava-java8.patch](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/a2c95f939cc4b18cd286edd1a838c720d83dc8fd), [fix: detect lambda instance and generate method accessor of superclas…](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/50675fe13c915658133e1e8ed178041857418bf8), [feat: remove lua debug hook for lua state in LuaPool.](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/b6cbecd16dd05162b5ab59f3ac0dfb1869455dcd)
+ 移除Lua环境全局变量分隔: [remove lua _G table split](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/50d789d042a760dc2f39d6ca887544b9e19783e7)
+ 修复 emoji 代理对无法正常识别问题: [fix: bump luajava fix emoji](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/5ebacface1493e3f00827f03c7b2ec7092d8c8e2)
+ 修复 Lua 池实现过程中导致的栈不平衡及随机崩溃问题: [fix: LuaPool source lua state stack imbalance & LuaPool destination l…](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/0f7524b97e700f89ed6134795e4e0dc7289c261e), [fix: PooledLuaCallable implement IInnerLuaObject](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/7afdfc8bd333754e985398f3d6182dce9be8f58f), [perf: remove thread pool in LuaPool](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/8529109debc3ae6de3507e5c98c801da10e32d49)
+ 修复停用插件时, 无法正常关闭异步线程以及Bukkit事件问题: [feat: scheduler interface add new method to cancel all tasks](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/ad928e23a86e862163ddce7851d0e9bd57e3f667), [fix: unregister event and cancel all tasks when disable plugin](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/7311e8db60dcc1917e22173109c3cbf34a6582cd)
+ 修复反射缓存在多线程下报错问题: [fix: use Collections.synchronizedMap wrap cache](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/aa7923dc66e90b3408d541ddc14c0b21ca398147)
更新了动态链接库, 需要删除natives文件夹.

[MD] **Full Changelog**: https://github.com/SmileYik/LuaInMinecraftBukkitII/compare/1.0.7...1.0.8 # 主要改变: + [优先使用 config.json 中设置的 projectUrl 下载依赖](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/bd66c8fff659639681414c65645eb95e5cc5c9c0) + Lua 池实现, 允许传输 Lua 闭包到其他 Lua 状态机中运行, 并允许将运行的返回值传输给主 Lua 状态机(多线程运行Lua脚本): [feat: upgrade luajava](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/bab1afdfb615f02c94f94b840cade87156017ebf), [feat: Simple implementation of Lua pool](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/1bdee1111e669f584ae204cc71ad92cd031f57c8), [feat: complete SimpleLuaPool.](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/9b0a3245bd764ccda1f0bef5a6f378459ce5e268) # Changes + [Try downloads resources from project url in config.json at frist](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/bd66c8fff659639681414c65645eb95e5cc5c9c0) + Implementation of Lua pool, allow running Lua closure on other lua state, and allow transfer return values to main lua state(Running Lua scripts in multiple threads): [feat: upgrade luajava](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/bab1afdfb615f02c94f94b840cade87156017ebf), [feat: Simple implementation of Lua pool](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/1bdee1111e669f584ae204cc71ad92cd031f57c8), [feat: complete SimpleLuaPool.](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/9b0a3245bd764ccda1f0bef5a6f378459ce5e268) [/MD]
[MD] **Full Changelog**: https://github.com/SmileYik/LuaInMinecraftBukkitII/compare/1.0.4...1.0.6 # 主要改变 ## 指令 + 新增软重启Lua环境指令, 允许不关闭 Lua 虚拟机情况下重载 Lua 环境. ([add soft reload command.](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/9fd3722cbb026729c0d11b2aa6ec47508eb62b61)) ## Lua API + `luaBukkit.env` 新增 `registerSoftReload(ILuaCallable)` 方法用于注册软重启时执行的Lua闭包. ([add soft reload command.](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/9fd3722cbb026729c0d11b2aa6ec47508eb62b61)) + 新增 'import' 模块, 用于导入 Java 类. ([Add lua library "import.lua" to help import java class.](https://github.com/SmileYik/LuaInMinecraftBukkitII/commit/c5ff2a22b16abbbb8f6f5d4b0763f9cb1884e42e)) [/MD]

​

更新了动态链接库, 需要删除natives文件夹​
Changes:
  • 添加动态链接库模组管理器, 能够在config.json 中自定义启用或禁用动态链接库模组
  • 添加新的Lua环境提供于其他插件
  • Lua 端, 允许从 `luaLibraries` 文件夹中导入动态链接库 (*.so/*.dylib/*.dll)
  • 添加cffi模组, 允许使用ffi在lua51~lua54上
  • 添加 jni-bridge 模组(实验, 仅提供 linux 预编译), 允许使用 C++ 代码与 Java / Bukkit 服务器进行交互.
  • 允许设置异步初始化lua脚本文件, 可在config.yml中编辑.
  • 允许使用`require`导入网络库(即通过URL导入Lua依赖)
此次更新包括动态链接库更新, 若您之前正在使用开发版本, 请删除插件配置目录中的 natives 目录, 让插件重新获取natives 库文件.

主要更新:
+ 为 Lua 端添加 `luajava.class2Obj()` 方法. 现在可以通过 Lua 端操作 java 反射.
+ 允许在 Lua 端访问受限 Java 实例字段或方法. 访问过程自动完成, 无需额外操作, 可在配置选项中自助开启
+ 修复 CommandBuilder 与 EventListenerBuilder 之间的问题.
修复1.21.5注册事件时未通过类加载器校验问题.
后退
顶部 底部