佬们救救,有无在没有session的情况下向群发送消息的方法

今天在修复minecraft-sync-msg的时候发现koishi至广播一次消息后就不广播了,后面只能接收socket消息,但就是不会把消息广播出去,如下图


用的一直是ctx. broadcast这个API,看了文档,貌似有点不一样!?
image


佬们还有别的在不获取session的情况下把消息发送到群的方法嘛
系统信息:
System:
OS: Windows 10 10.0.20348
CPU: (20) x64 Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz

Binaries:
Node: 20.11.0
Yarn: 4.1.0

Koishi:
Core: 4.17.2
Console: 5.27.9

2 个赞

神尊给过我一个特殊的方案,但是需要有频道id

ctx.bots.forEach((e: Bot) => {
  e.sendMessage(channelId, a);
});
2 个赞

感谢佬!

2 个赞

可以用inspect获取消息后直接在配置文件中指明平台,selfId和channelId
这样的话可以用这样的方案:

const bot = ctx.bots[platform:selfId]
bot.sendMessage(channelId,a);
3 个赞

当然,如果是不特定频道的广播,推荐还是直接ctx.broadcast

2 个赞

感谢佬指教!

2 个赞

如你所见,现在是这API出了点问题

2 个赞

ctx.bots可以获取机器人列表,然后调用bot.sendMessage就可以了

2 个赞