我如何@ discord.js的每个人?

时间:2019-06-27 17:03:46

标签: javascript discord discord.js

我想要一个简单的命令,例如“!hello”,以输出“ Hello @everyone”并对所有人进行ping操作。输出文本是正确的,但实际上并不能ping通。该命令仅显示文本@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

6 个答案:

答案 0 :(得分:2)

引用discord.js issue #2285

  

您用文字字符串@everyone或@here提及所有人或此处,而不是常规角色提及。   这不是错误,而是不和谐的事情。

答案 1 :(得分:1)

我不确定为什么,但是我记得必须在send调用中将角色放入自己的字符串文字中:

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

无法为自己的atm测试,看看是否可行。

答案 2 :(得分:1)

尝试

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

答案 3 :(得分:1)

有一个guild.defaultRole

您可以这样说:

export default places => places
    .map(place => ({
        value: place.properties.code, label: place.properties.name
    }))
    .sort((placeA, placeB) => placeA.label.toLowerCase().localeCompare(placeB.label.toLowerCase()));

您可以检查您的机器人是否可以这样提及所有人:

[ { value: 'CA076757', label: 'Brockway' },
  { value: 'S4889785', label: 'North Haverbrook' },
  { value: 'MN486464', label: 'Ogdenville' } ]

答案 4 :(得分:1)

您可以从 everyone 获取 guild.roles 角色。

const everyone = await guild.roles.fetch("@everyone");
channel.send(`Hello ${everyone}`);

答案 5 :(得分:0)

所以,事实证明我有:

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

一旦我将其更改为:

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

一切正常。

谢谢大家的帮助。