ApliNi / Chat2QQ

为 Chat2QQ 添加更多功能的非官方分支
GNU Affero General Public License v3.0
18 stars 0 forks source link

为co插件实现已弃用的 .spigot().sendMessage() #18

Closed diaoyugan closed 1 year ago

diaoyugan commented 1 year ago

例如我在QQ使用list命令时 服务器内有玩家 但仍然输出 运行无返回指令 或者在QQ群使用coreprotect lookup时 只会返回第一行的结果 其他的结果均不显示

ApliNi commented 1 year ago

例如我在QQ使用list命令时 服务器内有玩家 但仍然输出 运行无返回指令

这是一个已知问题, 插件没法捕获原版的指令输出消息 #4, 解决方案有:

  1. 使用其他格式化list指令消息的插件, 比如Ess
  2. 使用自动回复功能 自动回复

或者在QQ群使用coreprotect lookup时 只会返回第一行的结果 其他的结果均不显示

这个可能是coreprotect使用特殊的方法向玩家发送消息, 或者coreprotect直接将消息输出到了控制台 等我研究一段时间

ApliNi commented 1 year ago

或者在QQ群使用coreprotect lookup时 只会返回第一行的结果 其他的结果均不显示

这个可能解决不了, 因为没法简单的通过代码模拟出真实的玩家及其数据
一个相关的问题: https://www.spigotmc.org/threads/simulate-a-fake-player-to-run-commands.410153/

我会找找有没有方法解决它, 但不是现在

QianFuv commented 1 year ago

或许可以直接生成一个假人然后抓取他的消息记录?

ApliNi commented 1 year ago

或许可以直接生成一个假人然后抓取他的消息记录?

我有想过这个方法,但我认为这样做成本很高,所以不会在短时间内实现它

https://github.com/taooceros/PlayerSimulator

ApliNi commented 1 year ago

我研究了一下co插件的代码, co插件使用了已弃用的消息发送函数, 而我没有实现它, 已在开发版本中修复: https://github.com/ApliNi/Chat2QQ/actions/runs/4678989858

我稍后会将它发布