如何添加前缀discord.js

时间:2020-08-30 00:43:01

标签: discord discord.js


require('dotenv').config();
const Discord = require('discord.js');
const bot = new Discord.Client();
const TOKEN = process.env.TOKEN;
const prefix = ".";

bot.login(TOKEN);

bot.on('ready', () => {
  console.info(`Logged in as ${bot.user.tag}!`);
});

bot.on('message', msg => {
  if (msg.content === 'ping') {
    msg.channel.send('pong');

  } else if (msg.content.startsWith('!kick')) {
    if (msg.mentions.users.size) {
      const taggedUser = msg.mentions.users.first();
      msg.channel.send(`You wanted to kick: ${taggedUser.username}`);
    } else {
      msg.reply('Please tag a valid user!');
    }
  }
});

当前这就是即时通讯正在使用即时通讯来尝试制作的内容,因此我必须键入.ping才能收到消息Pong,但我不知道如何获取前缀来使用

2 个答案:

答案 0 :(得分:1)

您可以检查prefix和命令名称的串联。

要检查.pingprefix的{​​{1}}

.

为了使其更加安全,您可以通过检查邮件是否以前缀开头来使其早日返回。

if (msg.content === prefix + 'ping') {
  // do something
}

通过这种检查,您可以切掉前缀,然后直接检查命令名称,而不必担心前缀。

if (!msg.content.startWith(prefix)) {
  return;
}

总共看起来像:

const commandName = msg.content.slice(prefix.length); // remove prefix character(s)

if (commandName === 'ping') {
  // do something
}

答案 1 :(得分:0)

您可以使用以下代码获取命令名称:

bot.on('message', msg => {
  const command = msg.content.slice(prefix.length).split(' ')[0]
  if (command === 'ping') {
    msg.channel.send('pong');
  } else if (command === 'kick') {
    if (msg.mentions.users.size) {
      const taggedUser = msg.mentions.users.first();
      msg.channel.send(`You wanted to kick: ${taggedUser.username}`);
    } else {
      msg.reply('Please tag a valid user!');
    }
  }
});

请注意,这会将kick命令从!kick更改为.kick

我建议您阅读this section of the Discord.js guide,了解如何设置命令(以及需要时使用用户自变量)。