【发布时间】:2021-10-13 10:42:15
【问题描述】:
我正在尝试让我的 Discord 机器人处理参数中带有空格的命令。我的args 变量在我的index.js 文件中定义:
const args = message.content.slice(prefix.length).split(/ +/);
const commandName = args.shift().toLowerCase();
我的命令文件 (perk.js) 如下所示:
const Discord = require('discord.js');
const PerkData = require('./perk.json');
module.exports = {
name: 'perk',
args: true,
execute(message, args) {
for (let i = 0; i < PerkData.perks.length; i++) {
if (PerkData.perks[i].id.toLowerCase() === args[0].toLowerCase()) {
const perkEmbed = new Discord.MessageEmbed()
.setColor('#000000')
.setTitle('__**' + PerkData.perks[i].name + '**__ ')
.setURL(PerkData.perks[i].url)
.setThumbnail(PerkData.perks[i].gif)
.setDescription('A teachable unique [' + PerkData.perks[i].character + '](' + PerkData.perks[i].characterURL + ') Perk <:Perk:833657215743295499>. It can be unlocked for all other characters from Level ' + PerkData.perks[i].lvl + ' onwards:')
.addField('__Description__', PerkData.perks[i].description, false)
message.channel.send(perkEmbed)
}
}
}
}
到目前为止,我在 JSON 文件中有一个“id”字段,其中包含连字符 - 而不是空格,然后perk.js 文件会从其中读取并将其与描述匹配。
示例:.perk ace-in-the-hole
如何做到这一点,以便我可以在参数中使用空格而不必使用连字符?
我是否需要更改args 在index.js 中的定义方式?或者可以在命令文件perk.js中完成吗?
长话短说,我有:.perk ace-in-the-hole 工作。
但我希望能够做到这一点:.perk ace in the hole
(对不起,如果写得不好,我不是一个有经验的程序员......)
【问题讨论】:
标签: javascript node.js json discord discord.js