Как проверить, пишет ли пользователь сообщение в общем канале и сказать ему или ей писать в канале, определяемом ботом c - PullRequest
0 голосов
/ 04 мая 2020

Как проверить, пишет ли пользователь сообщение в общем канале, и попросить его написать в канале, определяемом ботом c канал?

Это код, который я пробовал:

if (message.channel.id === "bot-playground"){
    // write code here
}else {
    message.channel.send("Write commands in #bot-playground.").then(msg => {
        timeout(3000, msg);
    });
}

Ответы [ 3 ]

0 голосов
/ 04 мая 2020

Ваша проблема вызвана тем, что в первой строке if (message.channel.id === "bot-playground") вы пытаетесь использовать имя канала в качестве идентификатора.

Вам нужно либо найти его, используя идентификатор канала, который вы можете получить включив Developer Mode

Или вы можете просто использовать имя канала, чтобы найти его так:

message.guilds.channels.cache.find(channel => channel.name === 'bots-playground')

0 голосов
/ 04 мая 2020

Замените клиента любой переменной или константой, использованной для назначения объекта Discord # Client .

client.on("typingStart", (channel, user) => {

     const bot_channel = channel.guild.channels.cache.find(chan => chan.name == "bot-playground");

     if (channel.id != bot_channel.id) {
          return message.channel.send(`Write commands in <#${bot_channel.id}>`);
     }

});
0 голосов
/ 04 мая 2020
    if (message.channel.id === "bot-playground"){

Для этого нужен идентификатор канала, а не имя. Чтобы получить идентификатор канала, щелкните его правой кнопкой мыши и выберите copy ID, а затем используйте его. если у вас нет кнопки copy ID, вам может потребоваться включить режим разработчика

Кроме того, ваше упоминание может не работать

message.channel.send("Write commands in #bot-playground.")

См.

этот вопрос для более

...