sealdice/sealdice-core

[150 Bug]: js插件若对指令开启代骰,则seal.format()获取到的值为被艾特者而非触发者的变量值

Closed this issue · 0 comments

在提问之前...

  • 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决
  • 我填写了简短且清晰明确的标题,以便开发者在翻阅 issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
  • 我已查看master branch或最新测试版的更新内容,并未提及该 bug 已被修复的情况
  • 已有issue中并没有看见其他人与我反馈相同的问题

问题描述

1.5.0dev版下,在js插件内对指令开启代骰并取了被艾特者的ctx时,seal.format()获取到的值为被艾特者的变量值
即使seal.format()中使用的ctx为触发者的ctx,此api返回的仍是被艾特者的值,这是1.4.5版本中没有出现的问题

如何复现

1.对指令开启代骰:cmdname.allowDelegate = true
2.取被艾特者ctx:const mctx = seal.getCtxProxyFirst(ctx, cmdArgs)(必须加上这句代码才会出现bug)
3.使用seal.format(ctx,xxx)
4.产生错误

你期望发生的

假设触发者QQ为1,被艾特者QQ号为2,则使用seal.format(ctx,"{$t帐号ID}")时,返回的结果应是QQ:1

实际上发生的

返回结果为QQ:2

日志文件

日志上并没有有效信息

截图

No response

海豹核心版本

1.5.0-dev+20240716.ef293be

操作系统

Windows Sever 2019

帐号类型

QQ

使用协议

No response

附加内容

No response