если сообщение найдено в конкретном канале Discord.net - PullRequest
0 голосов
/ 31 января 2019

Здравствуйте, я пытаюсь получить Уведомление, если сообщение основано на Определенном Идентификаторе канала, используя (функция onmsg).(во время работы бота)

мой код.

  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 Активно

1 Ответ

0 голосов
/ 01 февраля 2019

Как указано в комментарии к ветке, discord относится к OP DiscordSocketClient, что, в свою очередь, относится к текущему клиенту бота;как таковой, единственный объект Channel не может существовать, поскольку бот может иметь доступ к более чем нескольким "каналам" в пределах досягаемости бота.

OP, вероятно, ссылается на каналв котором было получено сообщение: message.Channel.

Кроме того, стоит отметить, что при определении типа канала может быть несколько вариантов использования Discord.Net из-за его полиморфности .характер (например, канал может быть голосом, категорией, текстовым каналом и т. д .; подробнее см. глоссарий ).

Хотя в контексте кода OP возможна только ISocketMessageChannel или его реализация, поскольку сообщение может быть отправлено только в канал сообщений.Несмотря на это, причина этого заключается в том, что многие другие методы получения канала могут иногда возвращать только IChannel, оставляя за собой путаницу в том, почему они не могут отправить сообщение этому каналу.На самом деле им нужно было только (попытаться) привести канал к соответствующему типу (см. Глоссарий выше).

...