Discord.js 是一个用于构建 Discord 机器人的 Node.js 库。它允许开发者通过编程方式与 Discord 用户进行交互。前缀是用户在 Discord 中输入命令时必须先输入的字符或字符串,用于告诉机器人接下来输入的是一个命令。
!
、/
等。解决方法:
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
const prefixes = ['!', '/', '.', '~'];
client.once('ready', () => {
console.log(`Logged in as ${client.user.tag}`);
});
client.on('messageCreate', message => {
if (!message.content.startsWith(prefixes.join('') || !prefixes.includes(message.content[0]))) return;
const args = message.content.slice(prefixes[0].length).trim().split(/ +/);
const command = args.shift().toLowerCase();
// 处理命令
if (command === 'ping') {
message.reply('Pong!');
}
});
client.login('YOUR_BOT_TOKEN');
解决方法:
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
client.once('ready', () => {
console.log(`Logged in as ${client.user.tag}`);
});
client.on('messageCreate', message => {
const userPrefix = getUserPrefix(message.author.id); // 自定义函数,获取用户自定义前缀
if (!message.content.startsWith(userPrefix)) return;
const args = message.content.slice(userPrefix.length).trim().split(/ +/);
const command = args.shift().toLowerCase();
// 处理命令
if (command === 'ping') {
message.reply('Pong!');
}
});
function getUserPrefix(userId) {
// 从数据库或其他存储中获取用户自定义前缀
return '.'; // 示例返回值
}
client.login('YOUR_BOT_TOKEN');
通过以上方法,你可以轻松实现和管理 Discord.js 中的多个前缀,提升机器人的灵活性和用户体验。
领取专属 10元无门槛券
手把手带您无忧上云