Releases: way-zer/ScriptAgent4MindustryExt
v2.11.1 用户系统&前后缀支持
Ktc编译游戏版本 v135
更新日记
CoreLib&Core&Mirai
-
🐛 (coreLib/controlCommand) reload参数错误出现“Direct return”错误 @way-zer (ba2e20e)
-
✨ (core/console) 重定向标准输出流,解决输出打断输入的问题;解决windows下颜色字符问题 @way-zer (9d7a5f0)
(coreLib/ColorApi) 移除Windows终端无颜色的判断
✨ (core) 自动过滤后台无法显示的颜色
WayZer模块
主要更新:整理用户系统,增加前后缀支持,增加shortID显示
- ✨ (wayzer) 更新整理用户系统 @way-zer (bd32b3a)
分离achievement,notification数据表到子脚本
重新实现有关PlayerProfile.controlling的逻辑,解决多服登录状态错误问题
增加单独的数据包储存Notification信息
升级SQL(可选)insert into notificationchecktime select id,"lastTime" from playerprofile;
- ✨ (wayzer) 增加玩家动态名字和动态前后缀的支持 @way-zer (73d85f0)
⬆️ (wayzer/*) 跟随变量库更新
- 🔥 (wayzer/admin) 整个脚本完全废弃 @way-zer (411f6a5)
- /list: 已用名字后缀替代
- /ban: 已用banX代替
- /mAdmin: 可用/sa pm代替
- ✨ (wayzer/user/shortID) 注册名字后缀: 显示shortID在名字后方 @way-zer (2fcd129)
其他更新:
- ✨ (wayzer/ext/autoUpdate) 优化处理逻辑;增加配置项可切换更新源 @way-zer (30a96ef)
- ✨ (wayzer/user/ext/skills) 重写技能处理,更具灵活性 @way-zer (882633d)
- ➕ (wayzer/map/limitPermission) 地图特定权限设置 @way-zer (d7a9166)
- 🔧 (wayzer/map/pvpProtect) 更改为PlayEvent,简化代码 @way-zer (b52403f)
- 🐛 (wayzer/reGrief/unitLimit) 玩家为出兵队伍时,不受单位上限控制 @way-zer (325c613)
- 🐛 (wayzer/map/betterTeam) NPE报错 @way-zer (943e54b)
- 🐛 (wayzer/map/betterTeam) 非pvp复活到其他队伍bug @way-zer (388ad71)
- 🐛 (wayzer/map/betterTeam) 可能的gameover错误 @way-zer (a1d260a)
文件变更
40 文件
- ➕ .github/actions/changelog/changelog.iml
- 📝 .github/actions/changelog/main.js +27 -3
- 📝 .github/workflows/checkScripts.yml +6 -3
- 📝 dependencies.gradle.kts +2 -2
- 📝 scripts/coreLibrary/configCommand.kts +6 -6
- 📝 scripts/coreLibrary/controlCommand.kts +13 -11
- 📝 scripts/coreLibrary/lib/ColorApi.kt +2 -3
- 📝 scripts/coreLibrary/lib/PermissionApi.kt +15 -6
- 📝 scripts/coreLibrary/lib/PlaceHoldApi.kt +6 -8
- ➕ scripts/coreLibrary/lib/util/coroutine.kt
- 📝 scripts/coreLibrary/module.kts +1 -1
- 📝 scripts/coreLibrary/permissionCommand.kts +5 -4
- 📝 scripts/coreMindustry/console.kts +91 -41
- 📝 scripts/coreMindustry/lib/ContentHelper.kt +2 -1
- 📝 scripts/coreMindustry/variables.kts +4 -5
- 📝 scripts/main/scorebroad.kts +5 -22
- 📝 scripts/metadata/coreLibrary.metadata +0 -0
- 📝 scripts/metadata/gbot.metadata +0 -0
- 📝 scripts/metadata/mirai.metadata +0 -0
- 📝 scripts/mirai/module.kts +30 -22
- 🔥 scripts/wayzer/admin.kts
- 📝 scripts/wayzer/ext/autoUpdate.kts +56 -48
- 📝 scripts/wayzer/lib/dao/PlayerData.kt +11 -2
- 📝 scripts/wayzer/lib/dao/PlayerProfile.kt +33 -9
- 📝 scripts/wayzer/map/betterTeam.kts +12 -14
- ➕ scripts/wayzer/map/limitPermission.kts
- 📝 scripts/wayzer/map/pvpProtect.kts +6 -12
- 📝 scripts/wayzer/module.kts +1 -1
- 📝 scripts/wayzer/playerInfo.kts +48 -9
- 📝 scripts/wayzer/reGrief/unitLimit.kts +12 -10
- 🚚 scripts/wayzer/user/achievement.db.kt <= scripts/wayzer/lib/dao/Achievement.kt
- 📝 scripts/wayzer/user/achievement.kts +3 -2
- 🔥 scripts/wayzer/user/autoClear.kts
- 📝 scripts/wayzer/user/ban.kts +2 -1
- 📝 scripts/wayzer/user/ext/skills.kts +84 -50
- 📝 scripts/wayzer/user/level.kts +15 -22
- 🚚 scripts/wayzer/user/notification.db.kt <= scripts/wayzer/lib/dao/PlayerNotification.kt
- 📝 scripts/wayzer/user/notification.kts +10 -18
- 📝 scripts/wayzer/user/shortID.kts +1 -0
- 📝 scripts/wayzer/user/userService.kts +1 -1
2.11.0 发布
更新日记
- ⬆️ (loader) v1.8.1.3 @way-zer (2d5b573)
- ⬆️ (coreLib) 升级PlaceHoldApi到4.3 @way-zer (c18c5cf)
🐛 (wayzer/user/ext/statistics) internal问题
- ⬆️ (coreLib/DBApi) 升级 Exposed 到 0.37.3 @way-zer (d827fe7, 0687db6)
- ✨ (coreLib/ServiceRegistry) 增加onDisable支持 @way-zer (b74da09)
- 🐛 (coreLib/ServiceRegistry) 默认改为同步订阅 @way-zer (9a1cad7)
解决h2数据库报错问题
- ✨(coreLib/DBConnector)加入MySQL连接模板 @way-zer (4fb49cc)
Merge pull request #19 from deng-rui/7.0
为DBConnector.kts加入MySQL连接模板
- ✨ (core/MindustryDispatcher) 添加
Dispatchers.gamePost
@way-zer (0a52647) - ➕ (core/utilMapRule) registerMapRule 工具函数 @way-zer (7561231)
- ➕ (core/utilContentOverwrite) 内容包相关支持 @way-zer (18bc41c)
- ➕ (main/showEffect) 显示粒子效果 @way-zer (42710d8)
- 🐛 (wayzer/map/betterTeam) no customLoad for
teams
@way-zer (3f5a7d5) - ✨ (wayzer/map/betterTeam) 支持标记[@Banteam] @way-zer (bcfb226)
- ➕ (wayzer/reGrief/limitFire) 限制火焰 @way-zer (b33c9d1)
- 🐛 (wayzer/reGrief/unitLimit) 终结波未reset @way-zer (cce1e2a)
- 🐛 (wayzer/maps) 状态传递错误;重复reset @way-zer (06d9560)
- ✨ (wayzer/reGrief/unitLimit) 防单波大量出兵卡服 @way-zer (64fc605)
- ✨ (wayzer/ext/gatherTp) 增加pvp禁用 @way-zer (6ff60fe)
- 🐛 (wayzer/maps) 当服务器未安装地图时,
/maps
报错 @way-zer (c1f0a35, 9d37268) - 🐛 (wayzer/ext/gatherTp) 包导入错误 @way-zer (3d0cfc6)
相关项目推荐 MindustryContents
项目地址: https://github.com/way-zer/MindustryContents
下载地址: https://github.com/way-zer/MindustryContents/releases
允许客户端根据服务器要求动态切换资源包
相关项目推荐 MindustryX
增强的第三方Mindustry服务端,拥有扩展的API与一些插件不便实现的性能优化。(兼容原版客户端)
项目地址: https://github.com/way-zer/MindustryX
下载地址: https://github.com/way-zer/MindustryX/releases
更新提示
本次已经经过人工测试,precompile包可以显著提升第一次的加载速度,大幅减少运行时需要下载的依赖 (libs约45MB)
推荐使用precompile包,需要修改的脚本,可以单独附加kts脚本,优先加载kts
混合安装
可将precompile解压到scripts/cache
目录,scripts解压到scripts
,也可利用precompile大幅提升第一次启动速度
v2.10.0 更新
Precompile游戏版本 v135
更新内容
- ⬆️ (loader) 更新核心库到v1.8.0.1 MDT版本到v135
BREAKCHANGE: 所有.metadata统一到一个文件夹;xxx.module.kts转换为xxx/module.kts
- ⬆️ (coreLib) 升级PlaceHoldLib到4.3
- ✨ (main/scoreBroad) 使用新特性
- 🔧 (*) 使用logger代替println
新功能更新
- ✨ (coreLib/ServiceRegistry) 增加awaitInit接口
- ✨ (coreLib/ServiceRegistry) 使用flow代替channel
- ➕ (core/utilNext) 含nextEvent,nextChat,sendMenu工具函数
- ✨ (core/utilNext) 增加sendMenu的二次封装 sendMenuBuilder
- ✨ (wayzer/maps) 增加onLoadMap接口
- ✨ (wayzer/maps) 更新换图流程,增强对生成器地图的支持
- ⬆️ (wayzer/ext/vote&resourceHelper) 适应生成器地图
- ✨ (wayzer/maps) 新增GameOverEvent
- ✨ (main/spawnMob) 添加armor属性
- ➕ (wayzer/user/shortID)接管原admin的shortID功能
更新shortID算法,使用hash运算,防止指定导致碰撞概率提高 - ✨ (wayzer/user/ext/statistics) 增加活动倍率
- ✨ (mirai/status) 增加更多内容
修复性更新
外部更新导致的bug
- ⬆️ (mirai) 升级到2.8.1
修复无法发送带图片内容的bug
- ✨ (wayzer/maps) 覆盖原版gameOver指令
- 修复bug, 支持指定winner
- ⬆️ (wayzer/voteService) 修复v133后不可用的bug
- 🐛 (wayzer/reGrief/history) 新版本 PickupEvent 报错
- 🐛 (wayzer/map/mapSnap) 版本更新导致 未绘制完整方块
- ✨ (wayzer/maps) 同步原版换图逻辑
- 🐛 (wayzer/maps) 默认筛选器问题
插件bug
- 🐛 (wayzer/reGrief/unitLimit)超过5000反复投降
- 🐛 (wayzer/playerInfo) 名字过长导致报错
其他更新
- 🔧 (coreLib/*Command) 拼写错误
- 🔧 (coreMindustry/variables) 修正”FPS“=>“TPS” #17
BREAKCHANGE: {fps}变量变成{tps}
- ✨ (wayzer/map/mapInfo) 改为单显示框显示
- 🔧 (wayzer/user/ban) 暴露ban接口
- 🐛 (wayzer/user/ext/statistics) 可能异常导致统计中断
- 🐛 (wayzer/reGrief/unitLimit) 可能的并发修改问题
v2.9.0 加载器及核心库升级
编译Mindustry版本 v129.1
更新内容
- ⬆️ (loader) 更新库到v1.7.4.1
- 🐛 (cache) 无法检查代码变更
- ✨ (ScriptManager) 添加Disable超时
- ✨ (ScriptManager) 添加对依赖环的应对
- 🐛 (classloader) 与context有关的NPE问题
- ✨ (maven) 新的依赖版本控制系统
- ✨ (loader) 使用SAMain变量代替main/main
支持通过SAMain配置插件启动(仅启动部分脚本)
- ✨ (coreLib) 使用协程重新实现Provider
- ✨ (coreLib) CommandApi增加checkArg接口
- ✨ (coreLib/configCommand) 增加list指令,增加更多权限节点
- ✨ (coreLib/controlCommand) 增加更多指令参数
- ➕ (coreLib/varsCommand) 列出所有模板变量
- 🔥 (coreLib/infoCommand)
- ✨ (wayzer/voteService) 使用@Depends模式代替ServiceRegistry
- 🔧 (wayzer/map/mapSnap) 更新block_colors.png
- 🐛 (core/Dispatcher) 关服可能的死锁
- 🐛 (main/spawnMob) 无法原地召唤
- 🐛 (wayzer/user/mute) 参数错误
更新提示
本次更新重点优化加载器稳定性及核心库使用体验
核心指令SA变更
- 新增
/sa config list
查看所有配置项 - 新增
/sa vars
查看所有模板变量(lang中可用)- 参数
-v
可显示变量来源
- 参数
- 新增
/sa list fail
列出所有未成功加载脚本 /sa disable
增加参数--save
,永久关闭脚本(重启保留)/sa reload
增加参数--noCache
, 忽略缓存重载- 移除
/sa info
,使用新增指令代替 - 调整/help指令参数
-v
,使用该参数可显示所有指令(忽略权限限制)- 同时显示指令来源及所需权限
7.0首次正式更新
主要内容
- ⬆️ (loader) 核心库->1.7.2.0
- Kotlin -> 1.5.20, Coroutine -> 1.5.1
- 🐛 修复'./'目录引用错误的问题
- ✨ (script) 支持新版伴随源码自动导入
对于脚本
abc.kts
自动导入同目录下的abc.*.kt
文件 - ✨ (cache) 支持检查所有导入的源码文件
- 🐛 (classloader) 修复一处可能的context内存泄漏
- ✨ (loader) 支持main/main脚本启动
- ⬆️ (loader) 更新编译游戏库到v128
- ⬆️ (wayzer/res) 更新block_colors文件到127版本
- 🐛 (wayzer/ext/autoUpdate&resourceHelper) Net问题
- ✨ (core) 增加listenPacket2Server和registerActionFilter功能声明函数
- ✨ (core) 为 runInMain增加catch
- ✨ (wayzer/user/mute) 增加禁言功能
- ✨ (wayzer/map/banUnit) 禁封特定单位
- ✨ (wayzer/user/ext/rank) 排行榜功能(实验)
- ✨ (wayzer/admin) 增加3位Id碰撞警告
- ✨ (wayzer/user/level) 增加是否显示等级图标配置项
- ✨ (wayzer/map/betterTeam) 屏蔽灰色和红色队伍.实现自定义gameover
- ✨ (wayzer/maps) 扩宽地图标记识别范围
- ✨ (wayzer) PlayerProfile增加Name字段
- ✨ (wayzer/user/userService) 使用contextScript代替ServiceRegistry
- 🐛 (wayzer/ext/lang) 读取文件无效&reload报错
- 🐛 (wayzer/ext/resourceHelper) End数据错误
- ⬆️ (mirai) -> 2.7-M2
可能提高登录成功率
- ✨ (mirai) 增加 MessageEvent.hasPermission 复合权限检查
关于新资源站接口
资源站换图id统一更新为5位数字id(与服务器内地图统一编码)方便记忆,同一地图更新文件,id不变
地图模式统一在资源站上设置,无需换图后缀
新版服务器插件提供
换图,获取模式,评分,上报功能,未来计划增加订阅功能
换图接口更新
目前使用换图接口需要token, token申请待开放
公共临时token: 9b3a6e98-7f24-4842-ac43-f770cfbc72be
v2.7.1
该版本适配游戏v126版本
- ⬆️ (loader) 更新库到v1.7.1.1
- 🐛 (coreLib) jcenter关闭导致PlaceHoldApi无法下载
- ✨ (core) 增加runInMain接口,允许异步调用reply
- ✨ (wayzer/user/ban) banX 指令
支持ban的时间和理由设置,群组服可以多服同步
- ✨ (wayzer/reGrief/unitLimit) 增强
- ✨ (wayzer/ext/gatherTp) 多次尝试,增加tp成功率
- ✨ (wayzer/maps) 重构,分离出MapRegistry和MapManager,增加MapProvider
- ⬆️ (wayzer/map/autoHost) 适配新版maps
- 🐛 (wayzer/maps) findByMap 可能死锁的问题
- ✨ (wayzer/ext/resourceHelper) 跟随资源站更新,接入新版Maps
- ✨ (wayzer/ext/resourceHelper) 避免重复下载
- ✨ (wayzer/ext/resourceHelper) 完善评分机制
- ✨ (wayzer/ext/resourceHelper) 更新显示时机
- 🐛 (wayzer/maps) 存档加载的部分信息丢失
- 🔧 (wayzer/voteProvider) 修正Depends参数
- 🐛 (wayzer/ext/vote) 未移除的过期Import
更新提示
本次发布针对6.0(v126)版本
非编译版本建议不要使用precompile脚本包,以免无法检查版本兼容性
v2.7.0 支持ktc预编译包加载
主要功能
- ⬆️ (loader) 更新核心库到1.7.0
- 支持ktc预编译及加载(详见 更新提示)
- 为@import添加compileArg类型
- ✨ (coreLib/permissionCommand) 添加debug功能
- ⬆️ (coreLib/DBApi) 更新exposed到0.30.1
- ✨ (wayzer/ext/resourceHelper) 完善功能
更新提示
新precompile脚本包
从本次更新开始,将提供预编译的precompile脚本包,使用该脚本包,可以。
- 优点:省去第一次的编译过程,加快启动速度,减少资源占用。
- 另外可用来制作容器,配合动态扩容(建议通过link共用libs)
- 缺点:ktc不包含源代码,也不能直接修改内容
- 若干需要修改内容,可以放入对应脚本的kts文件(kts文件优先级高于ktc)
加载器更新
加载器现在可以作为单独的jar程序运行,用于预编译kts生成ktc
参数为需要编译的脚本id,多个用空格隔开 (如果不提供参数,默认所有脚本)
可以通过该功能制作自己的ktc脚本包
脚本wayzer/ext/resourceHelper
该脚本为资源站的配套脚本(目前还处于内测阶段)
支持 新版网络换图,地图评分 功能。
未来还将增加更多功能。
首次安装提示
因为bintray停止服务,一个关键依赖库无法下载
请手动下载下方PlaceHoldLib库,并放置到libs文件夹下(不能改动文件名)
该问题将在2.7.1修复
v2.6 加载器更新 & 新权限系统
主要内容
- ✨ (loader) 更新库版本到v1.6.1
- ✨ (coreLib) 利用新特性分离数据库依赖到子脚本
- ✨ (coreLib) 新的PermissionApi,代替wayzer/permission
- ✨ (*/PermissionExt) 实现新版脚本权限系统
- ✨ (coreLib/permissionCommand) 权限设置指令
- ✨ (coreLib/variables) 使Config支持Duration
- 🐛 (wayzer/maps) 修复加载存档核心资源重置的bug
更新提示
本次加载器更新,完善了脚本的@Depends功能
权限系统重构,需要重新配置,指令为/sa pm
v2.5.0 核心库更新
已知2.5.0的加载器存在致命bug,可能导致加载错误,请重新下载附件中的2.5-hotfix代替(核心库使用1.5.2)
主要内容
- ⬆️ (loader) 更新LibraryManager到1.4.1
- 修复libs为软链接报错的问题
- ✨ (loader) 更新核心库到v1.5.1
- ✨ (*) 跟随更新
v1.4.5更新内容
- kotlin升级到1.4.30 协程库1.4.2
- 增加对libs目录修改的支持
v1.5更新内容
- 增加ScriptInfo类,储存脚本信息,全局单例,不受脚本内容影响
- 简化统一ScriptManager和ScriptLoader接口
- 主推Import和Depends注解,开始弃用其他注解
- 优化各种错误的处理
BreakChange
- 主体包名更改为cf.wayzer.scriptAgent
- 取消IBaseScript继承DSLBuilder(使用ISubScript代替)
- 移动types到define包
- 重构简化ScriptManager接口
其他更新
- ✨ (core/console) 避免对Console Reader进行stop
- ✨ (wayzer/reGrief/history) 更多日记,更加完整
- ✨ (wayzer/map/betterTeam) 增加观察者对战争迷雾的支持
- 🔧 (wayzer/ext/vote) 针对kick投票进行修改
- 移除管理员直接ban人的功能(可用/ban和3位id)
- 增加豁免权限wayzer.admin.skipKick
- 🐛 (wayzer/ext/vote) 在特定地图投降的bug
- ✨ (wayzer/ext/autoUpdate) 忽略网络错误的报错
- ✨ (wayzer/ext/autoUpdate) 增加对revision新版本的支持
- 🐛 (wayzer/ext/autoUpdate) 解决下载过程不能cancel的问题
更新提示
本次核心库升级中优化了cache处理,可以无需清楚cache,直接覆盖升级即可