如果在特定频道Discord.net

时间:2019-01-31 14:56:03

标签: .net discord.net

您好,我尝试使用(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

problem i got

  

严重性代码描述项目文件行抑制状态   错误BC30456“通道”不是“ DiscordSocketClient”的成员。测试C:\ Users \ diana \ Desktop \ 1 \ Test \ Test \ Form1.vb 125有效

1 个答案:

答案 0 :(得分:0)

正如线程注释中所指出的那样,discord引用了OP的DiscordSocketClient,而后者则引用了当前的bot客户端;如此一来,Channel的单个对象就不可能存在,因为该机器人可能会访问该机器人所能触及的多个“通道”。

OP可能是指邮件到达的通道,即message.Channel

此外,值得注意的是,在确定频道类型时,使用Discord.Net的polymorphic nature可能会有多种变体(例如,频道可以是语音,类别,文本频道等;有关更多详细信息,请参见glossary

尽管在OP的代码上下文中,仅ISocketMessageChannel或其实现是可行的,因为一条消息只能发送到一条消息通道。尽管如此,提出此问题的原因是,更多的获取通道的方法有时有时只能返回IChannel,而使他们无法向该通道发送消息的原因留下了困惑。实际上,他们只需要(尝试)将频道转换为适当的类型即可(请参见上面的词汇表)。