Skip to content

Releases: way-zer/ScriptAgent4MindustryExt

v2.11.1 用户系统&前后缀支持

16 Mar 10:13
e98ff00
Compare
Choose a tag to compare

Ktc编译游戏版本 v135

更新日记

CoreLib&Core&Mirai

  • ✨ (coreLib) 增加2个常用的协程/线程工具函数 @way-zer (cee752b)

  • ⬆️ (coreLib) 更新PlaceHoldLib到5.4 @way-zer (ee13a34)

  • 🔧 (coreLib/configCommand) desc显示排版不正确 @way-zer (cc8540f)

  • 🐛 (coreLib/controlCommand) reload参数错误出现“Direct return”错误 @way-zer (ba2e20e)

  • ✨ (core/console) 重定向标准输出流,解决输出打断输入的问题;解决windows下颜色字符问题 @way-zer (9d7a5f0)

    (coreLib/ColorApi) 移除Windows终端无颜色的判断
    ✨ (core) 自动过滤后台无法显示的颜色

  • 🔧 (main/scoreBroad) 简化代码 @way-zer (2fde977)

  • ⬆️ (mirai) api版本 2.10.0 @way-zer (bdb3e7d)

WayZer模块

主要更新:整理用户系统,增加前后缀支持,增加shortID显示

  • ✨ (wayzer) 更新整理用户系统 @way-zer (bd32b3a)

    分离achievement,notification数据表到子脚本
    重新实现有关PlayerProfile.controlling的逻辑,解决多服登录状态错误问题
    增加单独的数据包储存Notification信息
    升级SQL(可选)

    insert into notificationchecktime select id,"lastTime" from playerprofile;
    • 🔥 (wayzer/user/autoClear) 新检测机制能够确保记录稳定,无需clear @way-zer (eb00353)
    • 🐛 (wayzer/user/notification) 遍历时修改bug @way-zer (b4b1646)
  • ✨ (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

完整对比
获取patch

2.11.0 发布

03 Mar 15:29
415f27d
Compare
Choose a tag to compare

更新日记


  • ⬆️ (loader) v1.8.1.3 @way-zer (2d5b573)
    • ⬆️ (coreLibrary/controlCommand) 跟随loader更新 @way-zer (3861a7b)
  • ⬆️ (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)
    • ✨ (core/utilContentOverwrite) 增加积分榜上,资源包版本显示 @way-zer (aaa7e60)
    • ✨ (core/utilContentOverwrite) 更新到1.0.6,支持配置项修改资源包版本号 @way-zer (b3a2c5e)
    • ✨ (wayzer/*) 支持动态资源包 @way-zer (163ba86)
    • utilContentOverwrite 已重命名为 contentsloader

相关项目推荐 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 更新

08 Jan 10:30
c18c5cf
Compare
Choose a tag to compare

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 加载器及核心库升级

06 Aug 15:42
9aa16e1
Compare
Choose a tag to compare

编译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首次正式更新

19 Jul 13:14
172a3f5
Compare
Choose a tag to compare

主要内容

  • ⬆️ (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

27 Jun 08:29
8b9a594
Compare
Choose a tag to compare

该版本适配游戏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预编译包加载

04 Apr 07:54
9a789ec
Compare
Choose a tag to compare

主要功能

  • ⬆️ (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 加载器更新 & 新权限系统

23 Mar 03:07
c61e041
Compare
Choose a tag to compare

主要内容

  • ✨ (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 核心库更新

24 Feb 05:41
869f163
Compare
Choose a tag to compare

已知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,直接覆盖升级即可

2.4.3 bug修复&Windows下终端优化

08 Feb 14:21
b942723
Compare
Choose a tag to compare

更新内容:

本次修复2.4.2即之前版本的几个重要bug

  • 🐛 (wayzer) 新玩家进入触发 No transaction in context. #12
  • 🐛 (core/console) 修复jansi不能正常加载的bug #13
  • 🐛 (wayzer/user/ext/statistics) 修复建筑分刷经验的bug
  • 🐛 (wayzer/reGrief/unitLimit)修复在123版本中失效的问题
  • ✨ (wayzer/admin) 增加3位id的缓存时间(玩家离线后1小时,仍可使用3位id禁封)