Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@sjtdev/koishi-plugin-dota2tracker

sjtdev220MIT1.5.5TypeScript support: included

koishi插件-追踪群友的DOTA2对局

chatbot, koishi, plugin, dota2

readme

@sjtdev/koishi-plugin-dota2tracker

完整使用文档

中文文档 | English Documentation

GitHub Release npm downloads

DOTA2Bot插件-提供自动追踪群友的最新对局的功能(需群友绑定),以及一系列查询功能。

安装

在koishi插件市场搜索安装
有关koishi的使用说明:(koishi官方文档

使用

需在插件配置页填入STRATZ API TOKEN,否则无法使用。(配置中提供了API的获取链接)
在希望推送战报信息的群组(或频道)使用指令订阅本群,玩家可使用指令绑定来将自身账号与Steam账号绑定,bot会尝试追踪已订阅群组(或频道)中的绑定玩家的最新对局信息。
其他查询功能见下方指令说明。
直接调用help指令可获取更详细的说明,调用【指令 -h】还会有用法示例。(例如:订阅本群 -h)
本插件使用的所有SteamID均为SteamID3类型(即DOTA2游戏内个人页面显示的好友ID与stratz登录后个人页面链接中显示的ID),有关SteamID类型见 https://steamid.tatlead.com/ (由issue提供,感谢这位用户)

更新日志见changelog

插件更新提示

1.4.2版本起,插件更新时会在Github发布一个无附件release,用于插件更新提醒。
如有需要可以使用 Watch 功能接收插件更新通知,以下为详细步骤:

  1. 访问仓库页面
  2. 点击右上方的 "Watch" 按钮
  3. 选择 "Custom" 选项
  4. 在弹出的设置中勾选 "Releases" 选项
  5. 点击 "Apply" 保存设置

指令

指令 <必填参数> [可选参数]

订阅

(bot仅向已订阅群组/频道推送信息)
(若是使用Discord、KOOK频道类平台,订阅与绑定信息仅对单个频道生效,频道间相互独立)

  • 订阅本群
  • 取消订阅
    绑定
    (bot会追踪每位绑定玩家的最新对局)
  • 绑定 <玩家SteamID> [玩家别名]
  • 取消绑定
  • 改名 <新玩家别名>
    查询
  • 查询玩家 [SteamID|别名] [<--hero|-o> <英雄ID|英雄名|英雄常用别名>]
    返回一张图片,包含玩家各类信息。(缺省参数时并且调用者已绑定将自查)(输入--hero或-o并跟上查询英雄的参数时,将查询玩家指定英雄)
  • 查询比赛 <比赛ID>
    返回一张图片,包含比赛对战信息。
  • 查询最近比赛 [SteamID|别名]
    查询指定玩家的最近一场比赛,效果同上。(缺省参数时并且调用者已绑定将自查)
  • 查询英雄 <英雄ID|英雄名|英雄常用别名>
    返回一张图片,包含英雄属性与技能详情。(此处英雄名为中文名)
  • 查询英雄对战 <英雄ID|英雄名|英雄常用别名>
    好像不是很实用
  • 7.36 [英雄ID|英雄名|英雄常用别名] [--refresh|-r]
    查询官网7.36更新日志中指定英雄的改动信息
    无英雄参数时直接返回官网7.36更新日志网址
    首次使用时将缓存更新日志网页,若读取失败或出错,可添加--refresh-r指令重新缓存

    查询英雄指令已适配7.36改动,所以此指令已废弃

英雄ID|英雄名|英雄常用别名 列表

可在koishi-本地化中定义,见文档-自定义文本

图片模板列表

展示见文档-模板展示
生成图片已使用ejs模板实现,所有模板都在[template]文件夹下,若是有大佬想自己设计模板欢迎联系我完善数据接口。(当前有很多在模板中后处理的数据,不是很友好)

灵感来源&鸣谢

changelog

更新日志

1.5.4

新增:新增配置项templateFonts,可配置模板使用的字体。 改进

  • 调整cron服务由必须项改为可选项,当未配置cron服务时仍可提供查询服务。
  • 使用tailwindcss框架重写match_1模板,优化性能减小体积。

1.5.3

修复:修复因7.39版本更新而stratz未跟进,获取命石数据失败导致无法发出战报的报错。

1.5.2

修复:修复查询英雄部分英雄查询失败的问题。

1.5.1

修复:修复查询物品只会进行别名搜索与精准搜索,而不会模糊搜索的问题。

1.5.0

将1.5.0-pre.x版本汇总,功能与1.5.0-pre.7一致。
以下为pre.1~pre.7的更新日志汇总

新增

  • 新增比赛模板match_2+,对match_2模板进行了一些扩充,加入了局势图表、经济图表、对线情况展示。模板展示
  • 新增查询物品 [物品名/ID]指令,支持模糊搜索,查询到的结果小于等于5(可配置)时依次发送物品图片;未输入关键词或查询结果大于限制时,将发送物品列表图片(可配置)。模板展示

    内置了一份物品别名常用词典,如有疏漏可在插件配置页自行添加,也欢迎提出issue或pull request协助完善词典。

  • 实现了由issue提出的代理设置。

改进

  • 调整优化配置页布局,将消息设置从基础设置中分离。
  • 配置项比赛模板的说明中的模板展示链接更换为新文档对应链接。

修复

  • 修复一项在使用查询比赛/查询最近比赛指令时引发错误后不会返回查询失败消息的问题。
  • 修复因上版本改动称号系统导致match_2模板称号间隔意外变宽的样式问题。
<summary>1.5.0-pre.1~pre.7 更新日志</summary>

1.5.0-pre.7

修复

  • 修复查询物品自定义物品别名列表未生效的问题。
  • 修复查询物品模板一个样式错误的问题。

1.5.0-pre.6

修复:修复查询物品图片中部分无需图纸物品的合成表中被错误添加了图纸的问题。

1.5.0-pre.5

新增

  • 新增查询物品 [物品名/ID]指令,支持模糊搜索,查询到的结果小于等于5(可配置)时依次发送物品图片;未输入关键词或查询结果大于限制时,将发送物品列表图片(可配置)。

    内置了一份物品别名常用词典,如有疏漏可在插件配置页自行添加,也可提出issue或pull request协助完善词典。

改进

  • 调整优化配置页布局,将消息设置从基础设置中分离。

1.5.0-pre.4

改进:继续扩充match_2+模板,加入对线结果显示。 修复:修复一项在使用查询比赛/查询最近比赛指令时引发错误后不会发送查询失败的问题。

1.5.0-pre.3

新增:尝试实现由issue提出的代理设置。

1.5.0-pre.2

改进

  • match_2+对于未解析或无局势数据的比赛,将在底部显示友好性提示。
  • match_2+的经济面板调整,英雄头像将从左到右由低到高按顺序排列 而不是固定按玩家顺序。

修复

  • 修复使用查询比赛相关功能时,因插件版本更新缓存失效导致一直查询失败的问题。(由issue指出,感谢捉虫。)

1.5.0-pre.1

新增

  • 新增比赛模板match_2+,对match_2模板进行了一些扩充,加入了局势图表、经济图表。模板展示

    原有部分直接引用了match_2模板的代码,节省体积。

改进

  • 配置页-比赛模板配置项说明中的模板展示链接更换为新文档对应链接。

修复

  • 修复因上版本改动称号系统导致match_2模板称号间隔意外变宽的样式问题。

1.4.3

改进

  • 称号系统适配i18n,可以自定义文本与颜色了,格式为称号-颜色(颜色为HEX颜色值,需要携带#前缀)

修复

  • 修复使用查询英雄未找到英雄时返回的消息丢失问题。

文档


其他更新

1.4.2版本起,插件更新时会在Github发布一个无附件release,用于插件更新提醒。
如有需要可以使用 Watch 功能接收插件更新通知,以下为详细步骤:

  1. 访问仓库页面
  2. 点击右上方的 "Watch" 按钮
  3. 选择 "Custom" 选项
  4. 在弹出的设置中勾选 "Releases" 选项
  5. 点击 "Apply" 保存设置

这样就可以在Github通知中心收到通知了。
如果你开启了邮件通知,也会收到一封Github发出的邮件提醒。


1.4.2

改进

  • 段位变动的文字消息与整活模板适配i18n
  • 移除一些无用graphql查询,减小代码体积。
  • 改进玩家信息模板player_1中线优率的计算逻辑,现在对线平手的情况算50%线优,
    避免出现只要没有线劣结果时线优率计算为100%的情况,以及极端情况下全平手时会出现除0的情况。

    • 原:$线优率=\frac{线碾+线优}{线碾+线优+线劣+线被碾}\times100%$

    • 新:$线优率=\frac{线碾+线优+(线平/2)}{线碾+线优+线平+线劣+线被碾}\times100%$

修复

  • 修复一处调用取消订阅指令时的文本丢失错误。
  • 修复日报/周报禁用显示组合可能无效的问题。
  • 修正了一些文本错误。

文档

1.4.1

修复

  • 修复match_2模板中英雄选取顺序显示错误的问题。

调整

1.4.0

新增&改进

  • 新增模板设置配置项playerRankEstimate(估算玩家段位) 默认开启。启用后在使用查询玩家时如果玩家没有段位,将根据玩家近期对局数据估算玩家段位,估算的段位显示为灰色图片。
  • 添加了使用查询玩家查询隐藏数据玩家时的标识。

1.3.1

改进:群友绑定查询最近比赛时若检测到游戏数据未公开将给予提示。

修复

  • 修复群友中有未公开数据的玩家时,调用查询群友指令失败。
  • 修复当未公开成绩的群友绑定后,追踪比赛会报错的问题。

以上问题均由issue指出,感谢捉虫。


1.3.0

1.3.0版本基本准备就绪,发布正式版。以下为包括pre版本的汇总更新日志。
此后明晰版本号进位规则:小修小补0.0.*,新增功能0.*.0,大型重构*.0.0

新增

  • 全面适配了i18n(本地化),现在可在koishi-本地化自定义绝大多数插件文本内容,包括英雄别名列表、位置代称等。
    • 并且也支持了AI机翻英文en-US(包括模板中的文本)。插件优先读取频道语言,未设置时读取平台语言。

      频道语言设置:可通过channel.locale设置频道语言(设置方式)
      平台语言设置:在平台设置中的插件设置-全局设置中调整语言优先级。

改进

  • API查询重构为使用标准的graphql查询模式开发,为所有的查询都添加了类型支持,提升今后的开发便捷性。(用户体验无差别)
  • 优化了比赛数据查询逻辑,节省了流量并稍微加快了响应速度。(相较此前每次查询比赛可节省20~22KB的流量)
  • 查询缓存改用cache服务,优化了相关代码且更便于管理。

    (需要安装cache服务插件,按照koishi提示即可。由于改用全新缓存,可能会发出群友一天内的最近一场战报,对造成的困扰在此抱歉😞)

  • 为防止指令名与其他插件冲突,本插件所有指令原名均改为dota2tracker.*;同时为指令设置了原先的中文指令名作为别名,依旧可按照原先方式调用,也可由用户自由修改与禁用。

    [!WARNING] 注意到目前由开发者设置的指令别名被用户禁用后仍然生效,暂不确定是否为koishi的bug

  • 查询英雄图片模板优化,现在英雄属性的显示更贴近官方风格。(高仿了游戏中的血条蓝条等)
  • 查询比赛 查询最近比赛新增选项--parse/-p,使用此选项时将会检测数据是否已解析,若未解析则会向服务器发送解析请求,等待检测到解析完成后再发出战报图片,这些逻辑与战报追踪功能一致。

    此功能等待超时时间采用配置项dataParsingTimeoutMinutes

  • 查询最近比赛指令代码优化。
  • 优化了部分日志输出结果,减少重复无用的文字。
  • 战报追踪调整代码逻辑,避免潜在的高并发问题。

修复

  • 修复此前新增的战报解析请求并没能成功发送的问题。
  • 修复插件版本更新可能带来的查询比赛报错。

    (没错,就是挂在首页readme中很久的已知问题)

  • 修复一处比赛数据处理函数中的逻辑错误,导致此前match_1模板中参葬率运算结果不准确。
  • 尝试修复比赛数据解析不完整引发的报错

移除

  • 查询英雄对战指令暂时移除。

    这个指令是草草写的,实用性不是很高。本来早有准备在stratz推出根据命石查询英雄胜率等信息时重写这个毛坯指令的,等了快一年了也没等到所以一直搁置……
    这次使用i18n重构项目,感觉这个毛坯也没必要适配i18n了索性先退场吧。

代码层面:

大量的解耦与重构,并尽可能的使用TS特性,现在代码比起以前能看很多了。

这个版本代码变动量真的很大!

文档方向:

全新的文档也在编写中,敬请期待。
文档编写暂缓,正在计划重构模板代码。

<summary>1.3.0-pre&1.2.20-pre更新日志</summary>

1.3.0-pre.6

新增:现在日志输出也支持i18n了。

改进

  • 查询比赛 查询最近比赛新增选项--parse/-p,使用此指令将会检测数据是否已解析,若未解析则会向服务器发送解析请求,等待检测到解析完成后再发出战报图片,这些逻辑与战报追踪功能一致。

    此功能等待超时时间采用配置项dataParsingTimeoutMinutes

  • 查询最近比赛指令代码优化。
  • 优化了部分日志输出结果,减少重复无用的文字。
  • 战报追踪调整代码逻辑,避免潜在的高并发问题。

1.3.0-pre.5

修复:修复因i18n重构导致的段位变动整活模板生成报错的问题。

1.3.0-pre.4

改进:指令i18n适配完成。
为防止指令名与其他插件冲突,本插件所有指令原名均改为dota2tracker.*;同时为指令设置了原先的中文指令名作为别名,依旧可按照原先方式调用,也可由用户自由修改与禁用。

[!WARNING] 注意到目前由开发者设置的指令别名被用户禁用后仍然生效,暂不确定是否为koishi的bug

1.3.0-pre.3

修复:修复1.2.20-pre.2重构查询代码导致使用绑定指令时可能无法验证SteamID的问题。

1.3.0-pre.2

修复:尝试修复比赛数据解析不完整引发的报错

1.3.0-pre.1

(英雄别名的键名修改导致在1.2.20-pre.3版本自定义的本地化内容丢失,如有需要请到koishi/data/locales/{locale}.yml或者于locales插件的自定义目录中查找恢复)

新增

  • 全部结构性支持i18n国际化多语言。(尚未全部改写完成,不过框架完成了剩下的就是堆量了)

    未完成部分:日报周报、部分指令

调整

  • 为了适配i18n改造,指令系统由原来的中文指令改为同义英文;中文指令作为别名也内置进了指令中,依然可以按照原先的方式调用。

改进

  • 优化了比赛数据查询逻辑,节省了流量并稍微加快了响应速度。(相较此前每次查询比赛可节省20~22KB的流量)
  • 查询缓存改用cache服务,优化了相关代码且更便于管理。

    (需要安装cache服务插件,按照koishi提示即可。由于改用全新缓存,可能会发出群友一天内的最近一场战报,对造成的困扰在此抱歉😞)

  • 查询英雄图片模板优化,现在英雄属性的显示更贴近官方风格。(高仿了游戏中的血条蓝条等)

修复

  • 修复一处比赛数据处理函数中的逻辑错误,导致此前match_1模板中参葬率运算结果不准确。

移除

  • 查询英雄对战指令暂时移除。

    这个指令是草草写的,实用性不是很高。本来早有准备在stratz推出根据命石查询英雄胜率等信息时重写这个毛坯指令的,等了快一年了也没等到所以一直搁置…… 这次使用i18n重构项目,感觉这个毛坯也没必要适配i18n了索性先退场吧。

代码层面:

大量的解耦与重构,并尽可能的使用TS特性,现在代码比起以前能看很多了。

这个版本代码变动量真的很大!

文档方向:

全新的文档也在编写中,敬请期待。


1.2.20-pre.3

新增&改进:重构了部分数据文件并转移至新建的i18n文档中,现在可以自定义 [英雄别名] 与 [位置名称] ,在 koishi侧边栏-本地化 中配置。

本地化
├─ ...
├─ dota2tracker
│  ├─ heroes  #此处修改英雄别名
├─ ...

顺便也支持了多语言[zh-CN(简体中文)、en-US(英文)],目前只有前面提到的两项可被编辑(且位置名称修改暂时无效),将继续开发逐步支持更多文本内容。

1.2.20-pre.2

改进:API查询重构为使用标准的graphql查询模式开发,为所有的查询都添加了类型支持,提升今后的开发便捷性。(用户体验无差别)
修复:修复插件版本更新可能带来的查询比赛报错。(没错,就是挂在首页readme中很久的已知问题)

1.2.20-pre.1

修复:修复此前新增的战报解析请求并没能成功发送的问题。


1.2.19

修复

  • 修复使用绑定指令时总是验证失败的问题。

1.2.18

修复


1.2.17

新增

  • 新增段位变动播报功能,开启后每分钟检测所有已绑定玩家的段位情况,若段位变动则向所在群组发送播报信息。(查询段位的请求附加到查询最近比赛请求中,不会额外浪费API使用次数)

    注:作者最近很少打dota,朋友中也没有在打天梯的,制作此功能纯属兴趣,请在使用此功能遇到问题的朋友及时发issue反馈。

改进

  • 因(STRATZ discord消息)原API重新可用,战报/日报等功能代码回滚至原先更稳定的实现方式。
  • 战报功能:在获取到新比赛时,将主动发送一次解析请求,以避免对局内所有玩家都未注册过STRATZ时比赛不会被解析的问题。

1.2.16 (同pre.1)

修复

  • 尝试修复由于STRATZ API变动导致战报与查询比赛功能失效的问题。

1.2.15

新增

  • 添加对新英雄的支持。(战报播报、查询英雄等)

1.2.14

修复

  • 修复插件配置中周报功能日报功能错误地成为必须项的问题,感谢issue捉虫!

1.2.13

新增&改进

  • 战报模板match_1追加显示命石名,并调整了其他信息的显示效果以适配此改动。

1.2.12

新增&改进

  • 战报模板match_2追加显示命石名,并调整了其他信息的显示效果以适配此改动。

1.2.11

新增&改进

  • 对战报模板添加命石显示,微调了其他信息的显示效果以适配此改动。

1.2.10

新增

  • 添加对新英雄百戏大王的支持。(战报播报、查询英雄等)

修复

  • 修复查询英雄图片中英雄的“基础攻击间隔”显示有误的问题。
  • 修复战报图中若玩家名有html标签会导致图片排版错乱的问题。
  • 修复周报与日报中评分条样式不正确的问题。

改进

  • 调整了总结模板和玩家信息模板中胜负字体颜色样式,使其看起来更清晰。
  • 优化了总结模板中胜负数和胜率的样式。
<summary>1.2.10-pre更新日志</summary>

1.2.10-pre.2

改进

  • 调整了总结模板和玩家信息模板中胜负字体颜色样式,使其看起来更清晰。
  • 优化了总结模板中胜负数和胜率的样式。

1.2.10-pre

修复

  • 修复战报图中若玩家名有html标签会导致图片排版错乱的问题。
  • 修复周报与日报中评分条样式不正确的问题。

1.2.9

改进

  • 现在周报与日报改为图片版,依旧由ejs生成。去除配置页中周报与日报的“实验性”标识。(目前周报与日报使用同一模板,未来可能会设计数据更丰富的周报,也可能不会(:3」∠)
  • 优化播报评语随机选择算法离散性,以避免此前若是有多位玩家的随机种子相近则这些玩家选择结果总是相同。
  • 优化追踪比赛逻辑:在追踪到群友比赛后等待解析时,此前为按添加顺序等待队列中的比赛,现在修改了判断逻辑,对当前时间分钟数与等待队列的长度进行取余,周期性访问队列中每一场比赛,这样可以优先发送已解析完成的比赛而不会被早加入但迟迟未解析的比赛阻塞。
  • 现在可在战报模板match_1和玩家信息模板中正确显示打野玩家的对线结果为“野区霸主”并有对应的图标,而不是跟随默认的中路对线结果。(wiki/match_1也已更新。)
  • 查询英雄:命石技能的技能名栏位添加对应命石图标与背景色用于标识。

修复

  • 查询英雄:修复DOTA2 7.37版本更新后API变动导致部分英雄查询报错。
<summary>1.2.9-pre更新日志</summary>

1.2.9-pre.3

改进

  • 尝试修改逻辑:在追踪到群友比赛后等待解析时,此前为按添加顺序等待队列中的比赛,现在修改了判断逻辑,对当前时间分钟数与等待队列的长度进行取余,周期性访问队列中每一场比赛,这样可以优先发送已解析完成的比赛而不会被早加入但迟迟未解析的比赛阻塞。

1.2.9-pre.2

改进

  • 现在可在战报模板match_1和玩家信息模板中正确显示打野玩家的对线结果为“野区霸主”并有对应的图标,而不是跟随默认的中路对线结果。(wiki/match_1也已更新。)

1.2.9-pre

修复&改进

  • 查询英雄:尝试修复DOTA2 7.37版本更新后API变动导致部分英雄查询报错。
  • 查询英雄:命石技能的技能名栏位添加对应命石图标与背景色用于标识。

1.2.8

新增

  • 新增周报功能,效果等同日报。
  • 日报与周报中新增可关闭总结中显示组合的功能。

改进

  • 现在查询玩家查询最近比赛指令可在私聊状态下使用,必须提供SteamID参数。
  • 将战报中的播报评语由随机选取改为固定种子:比赛ID+玩家SteamID+玩家位置,确保在不同调用时刻、次数及平台下,对同一场比赛中的玩家评语保持一致。
  • 查询玩家指令图片中,玩家近期比赛表中未解析的场次参战率由"?%"改为估算值,显示为"≈xx%"。
  • 查询英雄指令图片中,由于命石带来的属性数值无法确定作用方式(增加或是替换等),去除命石属性前的“+”,请结合命石说明自行判断。(7.37版本更新带来的API变动,导致使用指令查询某些英雄报错问题,暂无法解决)
  • 战报模板match_2中,现在冠绝排名数字位置更准确了。
  • 战报模板match_2中,比赛段位可以显示星级了。
<summary>为什么未解析的比赛需要“估算”?</summary> 比赛未解析无法获取“团队击杀数”,若是将己方所有玩家的击杀数相加,则会漏掉那些由小兵、防御塔等非玩家单位击杀数;若是将敌方所有玩家的死亡数相加,又会多出送野、自杀等不应算在己方战果中的计数。
目前程序采用将己方所有击杀数累加的方式来估算参战率,可能会略高于实际值。
<summary>1.2.8-pre更新日志</summary>

1.2.8-pre

改进

  • 现在查询玩家可在私聊状态使用,必须提供SteamID参数。
  • 将战报中的播报评语由随机选取改为固定种子:比赛ID+玩家SteamID,确保在不同调用时刻、次数及平台下,对同一场比赛中的玩家评语保持一致。
  • 查询玩家指令图片中,玩家近期比赛表中未解析的场次参战率由"?%"改为估算值,显示为"≈xx%"
pre.2

改进

  • 战报模板match_2中,现在冠绝排名数字位置更准确了。
  • 战报模板match_2中,比赛段位可以显示星级了。

1.2.7

于1.2.7-beta中尝试修复的功能均已正常工作,正式发布1.2.7
以下为包括beta版更新内容在内的所有改动
新增
  • 可在配置页设置查询比赛与发布战报时附带stratz比赛链接、查询玩家信息时附带stratz玩家页面链接、查询英雄数据信息时附带刀塔百科对应英雄页面链接,这些选项均默认关闭。
    修复
  • 修复当同一个steamId在多个已订阅群组中绑定时,仅会向最早绑定的群组发送战报的问题。
  • 现在若所有玩家某项属性都为0时不会错误地将对应称号赋予玩家1,而是取消此称号赋予。(此版本前例如所有玩家治疗量都为0,玩家1会获得“奶”称号,而现在将不会有玩家获得“奶”称号)
  • 修复无法获取群组相关信息导致的日报功能失效。
  • 修复日报功能中统计组合有可能出现重复的问题。
    <summary>1.2.7-beta更新日志</summary>

1.2.7-beta

新增
  • 可在配置页设置发布战报时附带stratz比赛链接、查询玩家信息时附带stratz玩家页面链接,这些选项均默认关闭。
    修复
  • (beta测试中) 尝试修复当同一个steamId在多个已订阅群组中绑定时,仅会向最早绑定的群组发送战报的问题。
  • 现在若所有玩家某项属性都为0时不会错误地将对应称号赋予玩家1,而是取消此称号赋予。(此版本前例如所有玩家治疗量都为0,玩家1会获得“奶”称号,而现在将不会有玩家获得“奶”称号)

beta.2

修复:尝试修复无法获取群组相关信息导致的日报功能失效。

beta.3

修复:尝试修复日报功能中统计组合有可能出现重复的问题。


1.2.6

因koishi更新至4.17.10修复了主动发送消息的函数,本插件的发送消息方式也换回之前的方案以避免可能的代码问题。(功能使用上与1.2.6-pre3版本一致)

改进&修复:修复了查询英雄图片中 技能数值未被正确替换、全才英雄基础攻击力显示错误的问题,并优化了命石描述显示方式
改进:调整比赛战报图片样式:解析失败时显示的“第-手”改为“第?手”
改进:为英雄艾欧添加别名:["艾欧", "小精灵"] → ["艾欧", "小精灵", "精灵", "IO"]
修复:修复查询玩家图片中场次表现评分为0时显示为?的问题

<summary>1.2.6-pre更新日志</summary>

1.2.6-pre

(因koishi尚未更新发布pre版)

改进&修复:修复了查询英雄图片中 技能数值未被正确替换、全才英雄基础攻击力显示错误的问题,并优化了命石描述显示方式
改进:调整比赛战报图片样式:解析失败时显示的“第-手”改为“第?手”
修复:修复查询玩家图片中场次表现评分为0时显示为?的问题

pre2

改进&修复:彻底完善了查询英雄图片中所有由命石、神杖、魔晶提供或改变的数值说明,修复命石说明中技能数值为百分数时未带百分号的问题。

pre3

改进&修复:继续优化查询英雄代码结构使由命石、神杖、魔晶改变的技能属性更直观;修复某些技能数据中有旧天赋加成数据留存、导致的天赋数值未被正确填充。
改进:为英雄艾欧添加别名:["艾欧", "小精灵"] → ["艾欧", "小精灵", "精灵", "IO"]


1.2.5

改进:优化查询玩家图片中近期战绩列表内未解析比赛的显示效果
修复:修复查询英雄图片技能属性名多显示了一个冒号的问题

fix

修复:使用临时替代方案修复由koishi-4.17.9的bug引起的无法主动发送消息(播报战报等),待koishi更新修复后回滚此改动。

fix3

修复:修复使用替代方案导致日报失效的问题。


1.2.4

修复:修正调用help指令时本插件某些指令的说明错误
修复:修复取消订阅指令失效的问题


1.2.3

修复:修复了比赛战报图片中称号判定不正确的问题
改进:微调了比赛战报图片模板match_2中称号的显示样式


1.2.2

移除:取消查询英雄的缓存功能,原因为valve的API返回的数据可能包含未本地化的字段(例如这次的7.36b更新后获取到的很多改动后技能说明暂时都是英文),这些数据无法根据版本判断是否需要更新缓存。
修复:修复了查询英雄图片中某些命石提供技能可能被判定为先天技能的问题。


1.2.1

改进:优化比赛战报图片中,对多个同种物品(例如双护腕双挂件一类)的出装时间显示进行优化,原先都将显示为最后一件此种物品的购买时间,现在可以显示不同的时间。

从第一件购买时间算起,例如火枪于1:00 2:00 3:00购买了三个系带,游戏结束前卖出其中之一,则剩余两个则显示为1:00 2:00

改进:出于实用性考虑,比赛战报图片中将不再显示辅助道具的购买时间。


1.2.0

改进:对查询英雄模板代码进行了调整与部分重写,完成7.36版本的英雄数据匹配,现在可正常使用。

(人话说就是先天技能和命石适配完成了)

移除:因查询英雄指令已适配7.36版本,7.36指令退役。(删除)

hotfix

修复:删除一些留存的测试用代码


1.1.10

修复:修复7.36指令因DOTA2官网的cdn链接变动导致获取失败的问题,并优化了加载速度。
修复:修复每次在koishi重新启动后,使用指令7.36都会重新获取数据的问题。

hotfix

修复:修复一处编译问题导致7.36指令无法使用的问题


1.1.9

新增:v1.1.6加入的功能等待解析时间现在可以配置,位于插件页配置项dataParsingTimeoutMinutes
修复:修复因v1.1.8修改数据获取方式导致的绑定指令失效
修复:修复指令查询英雄报错问题(数据仍为7.35d,等待上游API更新)
改进:兼容Discord、KOOK等频道类平台,将订阅与绑定存储时群组(guild)改为频道(channel),对onebot(qq)类无影响(出现使用问题请联系我)

<summary>若此前已在使用频道类平台……</summary> 此版本前频道类平台应该无法使用战报功能与日报功能。此版本在订阅本群与绑定玩家时将存储channelId而不是guildID,对于非频道类平台这两个值是一样的,不会造成影响。但频道类平台应该会彻底失效,解决方案只有操作数据库,将channelId填入原先guildId处(兼容原因,未修改数据库字段名[guildId],但实际上存入的已经是channel的ID了;guildId和channelId可参考数据库表channel中的数据),或重新订阅与绑定。(若是重新订阅与绑定,不会覆盖原先存储guildId的数据,也就是说旧数据依然会存在,可根据需求选择是否删除)

1.1.8

改进:将数据获取方式从 npm 包 axios 切换为 Koishi 提供的 http 服务,并简化了相关代码(用户体验无差别)。
改进:为 match_2 模板添加了玩家小队标识(效果与 match_1 模板中的相同功能一致,但在显示上进行了微调)。


1.1.7

改进:玩家信息模板中代表位置的图标替换为简约风格图标
修复:于v1.1.5新增的7.36指令生成英雄改动图片时会额外产生的测试用的remainingContent.html文件,现已不再生成。(如果之前使用了该命令并产生了此文件,可根据需要手动删除。位于koishi/node_modules/@sjtdev/koishi-plugin-dota2tracker/


1.1.6

由于近期stratz网站问题,比赛数据无法自动解析,导致bot会一直等待解析后的战报数据而无法发送。 新增:现在调整为比赛结束1小时后仍然未解析时将直接发出缺失部分数据的战报(缺失包括BP顺序、出装时间、英雄受到伤害等)

hotfix

修复:修复引发播报未解析比赛战报失败的一个小问题


1.1.5

新增:为新版本7.36添加新指令7.36
7.36 <英雄ID|英雄名|英雄常用别名>可查询对应英雄的改动信息,未输入英雄查询参数时直接返回官网7.36更新日志链接
添加--refresh|-r参数可强制重新获取数据,如7.36 -r,也可在查询时使用,如7.36 敌法师 -r


1.1.4

改进:完善查询玩家指定英雄的生成模板


1.1.3

新增:新增实验性功能【日报昨日总结】,在指定时间播报昨日已订阅群组中已绑定群友的战绩(简略文字),默认关闭,可在插件配置中打开
查询玩家指令新增功能,现在额外输入参数--hero <英雄ID|英雄名|英雄常用别名>可查询目标玩家指定英雄的详情(--hero可替换为-o)
例如:

  • 查询玩家 123456789 --hero 敌法师
  • 查询玩家 -o 敌法师 (仍可缺省玩家参数以自查)

1.1.2

改进:完成查询群友功能
修复:修复玩家模板中显示NaN的部分

hotfix

修复:修复查询远古玩家账号时可能意外失败的问题
改进:调整mvp中的控制分与[控]称号算法

hotfix.2

修复:修复初次使用查询英雄指令时,技能名初始化失败导致的错误

1.1.2-beta

改进:为查询群友添加模板,还在调整布局中


1.1.1

改进:玩家信息模板添加近25场内各个位置表现展示


1.1.0

改进:使用ejs重写模板相关代码使其模块化,使新增模板更方便
新增:为比赛信息添加了仿MAX+模板,效果可见match_2,可在插件配置中切换