您好,我尝试使用(onmsg函数)在特定频道ID中建立消息时获得通知。 (机器人运行时)
我的代码。
If message.Source = MessageSource.Bot Then
'ignore
Else
Dim msg As String = message.Content
If message.Content.Contains("hello") Then
If discord.Channel.id = "123456789" Then
'send message by bot to the channel
'Await message.Channel.SendMessageAsync("Sended in correcctly channel")
'get notification
MessageBox.Show("Sended in correcctly channel")
End If
End If
End If
严重性代码描述项目文件行抑制状态 错误BC30456“通道”不是“ DiscordSocketClient”的成员。测试C:\ Users \ diana \ Desktop \ 1 \ Test \ Test \ Form1.vb 125有效
答案 0 :(得分:0)
正如线程注释中所指出的那样,discord
引用了OP的DiscordSocketClient
,而后者则引用了当前的bot客户端;如此一来,Channel
的单个对象就不可能存在,因为该机器人可能会访问该机器人所能触及的多个“通道”。
OP可能是指邮件到达的通道,即message.Channel
。
此外,值得注意的是,在确定频道类型时,使用Discord.Net的polymorphic nature可能会有多种变体(例如,频道可以是语音,类别,文本频道等;有关更多详细信息,请参见glossary。
尽管在OP的代码上下文中,仅ISocketMessageChannel
或其实现是可行的,因为一条消息只能发送到一条消息通道。尽管如此,提出此问题的原因是,更多的获取通道的方法有时有时只能返回IChannel
,而使他们无法向该通道发送消息的原因留下了困惑。实际上,他们只需要(尝试)将频道转换为适当的类型即可(请参见上面的词汇表)。