javascript 为什么我的messageCreate事件不起作用?(discord.js)

k97glaaz  于 2022-11-27  发布在  Java
关注(0)|答案(4)|浏览(155)

我试着做一个不和谐的机器人。
我寻找一些教程,但我的代码似乎不工作..
我创建了一个简单的乒乓命令,但由于某种原因,它不工作!
下面是我的bot.js代码:

require('dotenv').config();

const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds, 'GuildMessages'] });

client.on('ready', () => {
console.log(`Thunder bot is ready! Tag is ${client.user.tag}`);
});

client.on('message', (messageCreate) => {
if (message.content === 'ping'){
    message.reply('Pong!')
}
});

client.login(process.env.TOKEN);

但是乒乓命令不起作用!

v8wbuo2f

v8wbuo2f1#

机器人不响应您有两个原因:
1.您的bot没有“MessageContent”意图

const client = new Client({ intents: ['Guilds', 'GuildMessages', 'MessageContent'] });
  1. client.on('message' ...可能导致弃用警告
    以下是更正:
client.on('messageCreate', (message) => {
    if (message.content === 'ping'){
        message.reply('Pong!')
    }
});
w6mmgewl

w6mmgewl2#

2个原因;
1.在client.on()中输入message而不是messageCreate,反之亦然。

client.on('messageCreate', message => {
    if (message.content === 'ping'){
        message.reply('Pong!')
    }
});

1.缺少messageContent Intent。

const client = new Client({ intents: ["Guilds", "GuildMessages", "MessageContent"] });
jq6vz3qz

jq6vz3qz3#

1.您需要使用以下Intent来读取消息并对其做出React:

{ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] }

1.您要监听的事件称为“messageCreate”(您监听的是“message”):

client.on('messageCreate', (message) => {
if (message.content === 'ping'){
    message.reply('Pong!')
}
});

这应该可行:

require('dotenv').config();

const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] });

client.on('ready', () => {
console.log(`Thunder bot is ready! Tag is ${client.user.tag}`);
});

client.on('messageCreate', (message) => {
if (message.content === 'ping'){
    console.log("!")
    message.reply('Pong!')
}
});

client.login(process.env.TOKEN);
uqdfh47h

uqdfh47h4#

您没有定义变量message,在这种情况下,您需要将messageCreate改为message,或者您需要message.content === "something"message.reply("somethingelse")而不是messageCreate.content === "something"messageCreate.reply("somethingelse")。不仅如此,您还需要使用messageContent intent,并且尽管您不必这样做,您应该使用GatewayIntentBits来定义intent,而不是字符串。(例如{ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] }

相关问题