Как мне @everyone с discord.js? - PullRequest
0 голосов
/ 27 июня 2019

Мне нужна простая команда, например "! Hello", чтобы вывести "Hello @everyone" и пропинговать всех. Выводимый текст правильный, но на самом деле он не пингуется. Команда просто показывает текст @everyone без упоминания.

const Discord = require("discord.js")

module.exports.run = async (bot, message, args) => {

    message.channel.send("@everyone Hello!");

}

module.exports.help = {
    name: "hello"
}

Я ожидаю, что это выведет это:

https://gyazo.com/e6c3ea154786639bc7f5663c299d8377

Фактический результат:

https://gyazo.com/d3aea3e7ab24da2235fcdbfc336f0940

Ответы [ 5 ]

2 голосов
/ 27 июня 2019

Ссылаясь на проблему discord.js # 2285 :

Вы упоминаете всех или здесь буквальными строками @everyone или @here, а не> обычное упоминание роли. Это не ошибка, а разногласия.

1 голос
/ 27 июня 2019

Существует guild.defaultRole

Вы можете упомянуть это так:

client.on('message', (msg) => {
  msg.channel.send(msg.guild.defaultRole.toString());
});

Вы можете проверить, может ли ваш бот упомянуть всех таким образом:

client.on('message', (msg) => {
  let everyone = msg.guild.defaultRole;
  if (msg.guild.me.hasPermission(everyone.permissions)) {
    msg.channel.send(everyone.toString());
  } else {
    console.log("I can't mention everyone");
  }
});
1 голос
/ 27 июня 2019

Попробуйте это

message.channel.send("<@everyone>" + "Hello!");
1 голос
/ 27 июня 2019

Я не уверен, почему, но я помню, что мне пришлось поместить роль в свой собственный строковый литерал в вызове send:

message.channel.send("@everyone" + " Hello!");

Невозможно проверить для себя atm, посмотрите, работает ли это.

0 голосов
/ 27 июня 2019

Итак, оказывается, у меня было:

const bot = new Discord.Client({disableEveryone: True});

Как только я изменил его на:

const bot = new Discord.Client({disableEveryone: False});

все работало.

Спасибо за вашу помощь всем.

...