Discord僵尸程序如何仅对某些用户进行回复?

时间:2020-03-18 11:04:15

标签: discord discord.js

我正在寻找一种制作Discord机器人的方法,该机器人可以仅对某些用户做出反应或回复。它可以通过角色或ID选择用户,但是我似乎无法使其正常运行。这是我尝试过的:

if (message.author.id === 'myDiscordID') {
        message.reply('hello!').then(r => {
        });
    }

如果有帮助,我正在Discord JS中进行编码。这是整个index.js文件:

const Discord = require('discord.js');
const { prefix, token } = require('./config.json');

const client = new Discord.Client();

client.once('ready', () => {
    console.log('Ready!');
});

client.on('message', message => {

    if (message.author.id === 'myDiscordID') {
        message.reply('hello!').then(r => {
        });
    }

});
client.login(token);

文件运行正常,机器人联机,然后打印“ Ready!”。到控制台,但是其余代码似乎不起作用。

2 个答案:

答案 0 :(得分:0)

我看起来这一定可行。

您确定服务器中的漫游器具有读取消息的权限吗? 试试这个准备好的方块

client.once('ready', () => {
    console.log('Ready!');
    const guildList = client.guilds.cache.map(guild => guild.name)
    console.join(`Bot go online in ${guildList.length}`)
    console.log(guildList.join('\n'))
}); 

一些用于检查user.id或角色的solutin包括:

console.log(message.content)是要检查的事件触发器。

client.on('message', message => {
    console.log(message.content)
    if (message.author.id === '') {
        message.reply('author contain')
    }

    if (message.member.roles.cache.has('ROLE ID')) {
        message.reply('role contain')
    }

    if(message.member.roles.cache.some(role => ['ID1', 'ID2'].includes(role.id)) {
        message.reply('some role contain')
    }   

});

答案 1 :(得分:0)

我对此也有疑问。这是对我有用的解决方案。

const userID = "The_user's_id";

bot.on("message", function(message) {
    if(message.author.id === userID) {
        message.react('emoji name or id');
    }
});

注意:要找到用户的ID,只需右键单击该用户,然后按“复制ID”即可。