更新亮点
Loader更新
- 支持编译器插件(KCP),例如
coreLibrary/kcp/serialization
- 新的打包方式(packed.zip)
- 该格式为precompile的替代,内部可包含多个预编译脚本及资源文件,放置在scripts目录即可被loader加载
- 允许无模块脚本
- 脚本可以独立运行,不要求所属模块。
- 自动搜索注册scripts中有效的所有kts文件
- 故可移除bootStrap/module.kts等文件
项目结构调整
- 分离Loader编译与scripts的gradle脚本
- 支持在scripts下面建立@子命名空间
- BREAKCHAGE: 移除早已弃用的mirai模块,脚本已存档SARegistry,需要自行安装
整理wayzer模块
BRECKCHANGE: 移除账号系统相关功能,仅保留id、封禁、认证等功能
这是一个重大改变,旧的解封记录、等级、绑定记录将全部失效
如有数据迁移需求,请与WayZer单独咨询
升级依赖
KT 2.1.10 协程 1.10.1
BREAKCHANGE: ⬆️(coreLib/DBApi) exposed 0.41.1 -> 0.59.0 @way-zer (8a31045)
参考 https://www.jetbrains.com/help/exposed/breaking-changes.html
其中表名需要修改sa config coreLibrary.DBConnector.preserveKeywordCasing set false
提示
本次更新包含3个BREAKCHANGE(Exposed更新,mirai移除以及数据库表变化)请在更新前注意备份(数据库/data文件夹)。
更新日记
Loader模块
⬆️(loader) v1.11.2.3 @way-zer (90cca01)
⬆️ v1.11.1.3 @way-zer (5be3fd9)
⬆️(loader) library v1.11.2.1 @way-zer (6302c97)
⬆️(loader) v1.11.2.2 @way-zer (caff37f)
✨(plugin) 新增CASScriptRegistry类 @way-zer (447cd2c)
🛠️(plugin) rename CASScriptSource.getCAS to getURL @way-zer (95eb60c)
💚 使用packed.zip代替precompiled包 @way-zer (38e1801)
🏗️(gradle) 整理gradle项目结构 @way-zer (feaf348)
💚 更新gradle插件 @way-zer (f9a3764)
✨(build) 支持在scripts下面挂载子项目(@命名空间) @way-zer (2dc6bc4)
Core模块
🐛(*) optimize import @way-zer (5eff6ec)
🐛(*) findScriptInfo -> getScriptInfo @way-zer (64dce7d)
🎨(*) runInterruptible(Dispatchers.IO) @way-zer (4f38856)
✨(coreLib/extApi/KVStore) KV数据储存 @way-zer (b13685b)
⬆️(coreLib) config4k 0.7.0 & slf4j 2.0.16 @way-zer (e1ee348)
✨(coreLibrary/kcp/serialization) serialization编译器插件支持 @way-zer (df97140)
🚚(coreLib/commands) @way-zer (65e06ae)
🚑️(coreLib/CommandApi) Script.command @way-zer (591298c)
🐛(coreLibrary/extApi/KVStore)首次使用data文件夹不存在 @way-zer (e01943b)
🐛(coreLib/lang) 自动保存一直运行 @way-zer (03c0126)
🚑️(coreLib/CommandApi) 增加command函数常用重载 @way-zer (1ac8501)
🎨(coreLib) 使用nextTick代替yield;修复safeBlocking可能卡住 @way-zer (5f9ac2f)
🐛(coreMindustry/console) TAB补全可能卡住 @way-zer (a08d843)
🐛(coreMindustry) 后台help包括客户端命令 @way-zer (e99c2d7)
🎨(coreLib/CommandApi) 增加 CommandInfo.toString @way-zer (23ac975)
⬆️(coreLib/DBApi) exposed 0.41.1 -> 0.59.0 @way-zer (8a31045)
✨(coreLib/extApi/remoteEventApi) 基于Redis的分布式事件系统 @way-zer (4f7f3e1)
🐛(core) dispatchYield警告刷屏 @way-zer (4a3c76c)
🎨(coreLib/commands/*) 使用新的command接口 @way-zer (fadcc5d)
Wayzer模块
🔥(mirai) 已存档至ScriptAgentRegistry @way-zer (0fd47df)
🚚(main/) 移动到wayzer.ext @way-zer (a6e00db)
🏗️(wayzer/user) 移除PlayerData @way-zer (f1ae596)
🏗️(wayzer/user) 移除大量冗余功能,进行结构性简化 @way-zer (144d278)
✨(wayzer) 不再依赖DBApi @way-zer (f08dd38)
🚑️(wayzer/ext/observer) 菜单观战无效 @way-zer (871ff9e)
🚚(wayzer/) 整理脚本 @way-zer (47b370b)
🐛(wayzer/maps) host指令输出变量 @way-zer (1c10c0b)
👽️(wayzer/user/ban) 适配Exposed更新 @way-zer (d463ac6)
👽️(wayzer/map/resourceHelper) 更新后端API @way-zer (f1dd9f8)
mapScript
🚑️(mapScript) unload错误 @way-zer (88c017f)
👽️(mapScript) ScriptManager.transaction @way-zer (226686c)
文件变更
107 文件
- 📝 .gitignore +3 -2
- 📝 build.gradle.kts +34 -151
- ➕ buildSrc/build.gradle.kts
- ➕ buildSrc/src/Module.kt
- ➕ loader/res/META-INF/kotlin/script/templates/.gitkeep
- 🚚 loader/res/plugin.json <= plugin/res/plugin.json
- 🚚 loader/src/ConfigExt.kt <= plugin/src/cf/wayzer/scriptAgent/ConfigExt.kt
- 🚚 loader/src/mindustry/Loader.kt <= plugin/src/cf/wayzer/scriptAgent/mindustry/Loader.kt
- 🚚 loader/src/mindustry/Main.kt <= plugin/src/cf/wayzer/scriptAgent/mindustry/Main.kt
- 🚚 loader/src/standalone/Main.kt <= plugin/src/cf/wayzer/scriptAgent/standalone/Main.kt
- 🚚 loader/src/standalone/loader.kt <= plugin/src/cf/wayzer/scriptAgent/standalone/loader.kt
- ➕ loader/src/util/BuiltinScriptRegistry.kt
- ➕ loader/src/util/CASPackScriptRegistry.kt
- ➕ loader/src/util/CASScriptPacker.kt
- ➕ loader/src/util/CASScriptSource.kt
- 🚚 loader/src/util/CAStore.kt <= plugin/src/cf/wayzer/scriptAgent/util/CAStore.kt
- 🚚 loader/src/util/CommonMain.kt <= plugin/src/cf/wayzer/scriptAgent/util/CommonMain.kt
- 🔥 plugin/src/cf/wayzer/scriptAgent/util/BuiltinScriptRegistry.kt
- 📝 scripts/bootStrap/default.kts +5 -4
- 📝 scripts/bootStrap/generate.kts +14 -50
- 🔥 scripts/bootStrap/module.kts
- ➕ scripts/build.gradle.kts
- 📝 scripts/coreLibrary/DBApi.kts +5 -6
- 📝 scripts/coreLibrary/DBConnector.kts +14 -7
- ➕ scripts/coreLibrary/commands/configCmd.kts
- ➕ scripts/coreLibrary/commands/control.kts
- 🚚 scripts/coreLibrary/commands/hotReload.kts <= scripts/coreLibrary/hotReload.kts
- 🚚 scripts/coreLibrary/commands/permissionCmd.kts <= scripts/coreLibrary/permissionCommand.kts
- ➕ scripts/coreLibrary/commands/varsCmd.kts
- 🔥 scripts/coreLibrary/configCommand.kts
- 🔥 scripts/coreLibrary/controlCommand.kts
- ➕ scripts/coreLibrary/extApi/KVStore.kts
- 📝 scripts/coreLibrary/extApi/mongoApi.kts +0 -2
- 📝 scripts/coreLibrary/extApi/redisApi.kts +1 -0
- ➕ scripts/coreLibrary/extApi/remoteEventApi.kts
- ➕ scripts/coreLibrary/extApi/remoteEventApi.lib.kt
- ➕ scripts/coreLibrary/kcp/serialization.kts
- 📝 scripts/coreLibrary/lang.kts +4 -1
- 📝 scripts/coreLibrary/lib/CommandApi.kt +41 -22
- 📝 scripts/coreLibrary/lib/util/ReflectHelper.kt +1 -1
- 📝 scripts/coreLibrary/module.kts +4 -10
- 🔥 scripts/coreLibrary/varsCommand.kts
- 📝 scripts/coreMindustry/console.kts +6 -5
- 📝 scripts/coreMindustry/lib/CommandExt.kt +11 -5
- 📝 scripts/coreMindustry/lib/CommandImpl.kt +31 -27
- 📝 scripts/coreMindustry/lib/DispatcherExt.kt +36 -9
- 📝 scripts/coreMindustry/module.kts +0 -1
- 📝 scripts/coreMindustry/scorebroad.kts +0 -2
- 📝 scripts/coreMindustry/utilNextChat.kts +0 -2
- 🔥 scripts/main/helpfulCommand.kts
- 🔥 scripts/main/module.kts
- 📝 scripts/mapScript/lib/util.kt +1 -1
- 📝 scripts/mapScript/module.kts +6 -4
- 🔥 scripts/mirai/broadcastToGroup.kts
- 🔥 scripts/mirai/codeSender.kts
- 🔥 scripts/mirai/lib/PermissionExt.kt
- 🔥 scripts/mirai/module.kts
- 🔥 scripts/mirai/simple.kts
- 🔥 scripts/mirai/status.kts
- 🚚 scripts/wayzer/cmds/gatherTp.kts <= scripts/wayzer/ext/gatherTp.kts
- 🚚 scripts/wayzer/cmds/helpfulCmd.kts <= scripts/main/showEffect.kts
- ➕ scripts/wayzer/cmds/jsCmd.kts
- 🚚 scripts/wayzer/cmds/mapsCmd.kts <= scripts/wayzer/ext/mapsCommand.kts
- 🚚 scripts/wayzer/cmds/pixelPicture.kts <= scripts/main/pixelPicture.kts
- 🚚 scripts/wayzer/cmds/restart.kts <= scripts/wayzer/admin/restart.kts
- 🚚 scripts/wayzer/cmds/serverStatus.kts <= scripts/wayzer/ext/serverStatus.kts
- 🚚 scripts/wayzer/cmds/spawnMob.kts <= scripts/main/spawnMob.kts
- 🚚 scripts/wayzer/cmds/vote.kts <= scripts/wayzer/ext/vote.kts
- 🚚 scripts/wayzer/cmds/voteKick.kts <= scripts/wayzer/ext/voteKick.kts
- 🚚 scripts/wayzer/cmds/voteMap.kts <= scripts/wayzer/ext/voteMap.kts
- 📝 scripts/wayzer/ext/autoUpdate.kts +3 -3
- 🚚 scripts/wayzer/ext/goServer.kts <= scripts/main/goServer.kts
- 🔥 scripts/wayzer/ext/lang.kts
- 📝 scripts/wayzer/ext/observer.kts +1 -1
- 🚚 scripts/wayzer/lib/ConnectAsyncEvent.kt <= scripts/wayzer/lib/event/ConnectAsyncEvent.kt
- 🔥 scripts/wayzer/lib/PermissionExt.kt
- ➕ scripts/wayzer/lib/PlayerData.kt
- 🔥 scripts/wayzer/lib/dao/PlayerData.kt
- 🔥 scripts/wayzer/lib/dao/PlayerProfile.kt
- 🔥 scripts/wayzer/lib/dao/Setting.kt
- 🔥 scripts/wayzer/lib/dao/util/NeedTransaction.kt
- 🔥 scripts/wayzer/lib/dao/util/TransactionHelper.kt
- 🔥 scripts/wayzer/lib/dao/util/WithTransactionHelper.kt
- 🚚 scripts/wayzer/map/resourceHelper.kts <= scripts/wayzer/ext/resourceHelper.kts
- 📝 scripts/wayzer/maps.kts +1 -1
- 📝 scripts/wayzer/maps.manager.kt +2 -1
- 📝 scripts/wayzer/maps.registry.kt +1 -1
- 📝 scripts/wayzer/module.kts +26 -6
- 🔥 scripts/wayzer/playerInfo.kts
- 🔥 scripts/wayzer/user/achievement.db.kt
- 🔥 scripts/wayzer/user/achievement.kts
- 📝 scripts/wayzer/user/ban.dao.kt +14 -24
- 📝 scripts/wayzer/user/ban.kts +26 -40
- 🔥 scripts/wayzer/user/ext/infoCommand.kts
- 🔥 scripts/wayzer/user/ext/profileBind.kts
- 🔥 scripts/wayzer/user/ext/rank.dao.kt
- 🔥 scripts/wayzer/user/ext/rank.kts
- 📝 scripts/wayzer/user/ext/skills.kts +1 -2
- 🔥 scripts/wayzer/user/ext/statistics.kts
- ➕ scripts/wayzer/user/lang.kts
- 🔥 scripts/wayzer/user/level.kts
- ➕ scripts/wayzer/user/nameExt.kts
- 🔥 scripts/wayzer/user/notification.db.kt
- 🔥 scripts/wayzer/user/notification.kts
- 🚚 scripts/wayzer/user/suffix.kts <= scripts/wayzer/ext/suffix.kts
- 🔥 scripts/wayzer/user/userService.kts
- 📝 settings.gradle.kts +33 -4