Проблемы с не выполняемой командой бота Discord - PullRequest
1 голос
/ 13 июля 2020

Я работаю над командой для бота Discord, которая выполняется через .char, однако, исходя из текста, следующего за .char, мне нужно, чтобы бот отвечал разными встроенными текстами. например, .char alice -> ответ 1 .char alice 2 -> ответ 2. Для этого у меня есть ответы в операторах if. вот так:

const Discord = require('discord.js');

module.exports.run = async (bot, message, args) => {

    console.dir(args);
    if(args === 'alice breaker') { 

            const embed = new Discord.MessageEmbed()
            .setTitle('**Alice Breaker**')
            .setDescription("**Character:** Alice | **Job:** Breaker")
            .setURL('https://sinoalice.game-db.tw/characters/アリス/ブレイカー')
            .setThumbnail('https://i.imgur.com/7a65thH.png')
            .setColor('#E2B007')
            .addFields(
                { name: '**Primary Weapon: **', value: '<:breaker:731691544796594228>', inline:true},
                { name: '**Useable Weapon: **', value: '<:breaker:731691544796594228> <:crusher:731691544985206824> <:gunner:731691544918097930> <:polearm:731691544956108850>', inline:true},
                { name: '**Lv.1**', value: '**Job** Blade 10% UP in areas affiliated with Alice'},
                { name: '**Lv.2**', value: '**Job** Blade 10% UP'},
                { name: '**Lv.3**', value: '**Common** Physical ATK + 50'},
                { name: '**Lv.4**', value: '**Common** Physical DEF + 50'},
                { name: '**Lv.5**', value: '**Job** Blade 10% UP in areas affiliated with Alice'},
                { name: '**Lv.6**', value: '**Common** Physical DEF + 50'},
                { name: '**Lv.7**', value: '**Common** HP + 50'},
                { name: '**Lv.8**', value: '**Common** Physical DEF + 50'},
                { name: '**Lv.9**', value: '**Job** Blade 10% UP in areas affiliated with Alice'},
                { name: '**Lv.10**', value: '**Common** HP + 50'},
                { name: '**Lv.11**', value: '**Job** Blade 20% UP in areas affiliated with Alice'},
                { name: '**Lv.12**', value: '**Common** Physical DEF + 200'},
                { name: '**Lv.13**', value: '**Job** Blade 10% UP in areas affiliated with Alice'},
                { name: '**Lv.14**', value: '**Common** Cost + 2'},
            )

            message.channel.send(embed);

    } else if (args === 'alice paladin') {

        const embed = new Discord.MessageEmbed()
            .setTitle('**Alice Paladin**')
            .setDescription("**Character:** Alice | **Job:** Paladin")
            .setURL('https://sinoalice.game-db.tw/characters/アリス/パラディン')
            .setThumbnail('https://i.imgur.com/LTVLNd2.png')
            .setColor('#E2B007')
            .addFields(
                { name: '**Primary Weapon: **', value: '<:polearm:731691544956108850>', inline:true},
                { name: '**Useable Weapon: **', value: '<:breaker:731691544796594228> <:crusher:731691544985206824> <:gunner:731691544918097930> <:polearm:731691544956108850>', inline:true},
                { name: '**Lv.1**', value: '**Job** Polearm 10% UP in areas affiliated with Alice'},
                { name: '**Lv.2**', value: '**Job** Polearm 10% UP'},
                { name: '**Lv.3**', value: '**Common** Magical ATK + 50'},
                { name: '**Lv.4**', value: '**Common** Magical DEF + 50'},
                { name: '**Lv.5**', value: '**Job** Polearm 10% UP in areas affiliated with Alice'},
                { name: '**Lv.6**', value: 'Common** Magical ATK + 50'},
                { name: '**Lv.7**', value: '**Common** HP + 50'},
                { name: '**Lv.8**', value: 'Common** Magical ATK + 50'},
                { name: '**Lv.9**', value: '**Job** Polearm 10% UP in areas affiliated with Alice'},
                { name: '**Lv.10**', value: '**Common** HP + 50'},
                { name: '**Lv.11**', value: '**Job** Polearm 20% UP in areas affiliated with Alice'},
                { name: '**Lv.12**', value: '**Common** Magical ATK + 200'},
            )

            message.channel.send(embed);
    } else if (args === 'alice mage') {
        const embed = new Discord.MessageEmbed()
            .setTitle('**Alice Mage**')
            .setDescription("**Character:** Alice | **Job:** Mage")
            .setURL('https://sinoalice.game-db.tw/characters/アリス/メイジ')
            .setThumbnail('https://i.imgur.com/e3iNaFU.png')
            .setColor('#E2B007')
            .addFields(
                { name: '**Primary Weapon: **', value: '<:puppeter:731694258314149950>', inline:true},
                { name: '**Useable Weapon: **', value: '<:bard:731694258322538622> <:curser:731694258331058237> <:puppeter:731694258314149950> <:cleric:731694258528190576>', inline:true},
                { name: '**Lv.1**', value: '**Job** Focus 30% UP in areas affiliated with Alice'},
                { name: '**Lv.2**', value: '**Job** Focus 10% UP'},
                { name: '**Lv.3**', value: '**Common** Magical DEF + 100'},
                { name: '**Lv.4**', value: '**Common** Physical DEF + 100'},
                { name: '**Lv.5**', value: '**Job** Focus 10% UP in areas affiliated with Alice'},
                { name: '**Lv.6**', value: 'Common** Magical ATK + 100'},
                { name: '**Lv.7**', value: '**Common** HP + 50'},
                { name: '**Lv.8**', value: 'Common** Physical ATK + 100'},
                { name: '**Lv.9**', value: '**Job** Focus 10% UP in areas affiliated with Alice'},
                { name: '**Lv.10**', value: '**Common** HP + 50'},
                { name: '**Lv.11**', value: '**Common** HP + 200'},
                { name: '**Lv.12**', value: '**Common** HP + 200'},
                { name: '**Lv.13**', value: '**Job** Focus 10% UP in areas affiliated with Alice'},
                { name: '**Lv.14**', value: '**Common** HP + 400'},
                { name: '**Lv.15**', value: '**Common** Magical DEF + 400'},
                { name: '**Lv.16**', value: '**Support** When equipping Mage Jobs, Magical damage 2% UP'},
                
            )
            message.channel.send(embed);
    }  else if (args === 'alice cleric') {
        const embed = new Discord.MessageEmbed()
            .setTitle('**Alice Cleric**')
            .setDescription("**Character:** Alice | **Job:** Cleric")
            .setURL('https://sinoalice.game-db.tw/characters/アリス/クレリック')
            .setThumbnail('https://i.imgur.com/jzuRltm.png')
            .setColor('#E2B007')
            .addFields(
                { name: '**Primary Weapon: **', value: '<:cleric:731694258528190576>', inline:true},
                { name: '**Useable Weapon: **', value: '<:bard:731694258322538622> <:curser:731694258331058237> <:puppeter:731694258314149950> <:cleric:731694258528190576>', inline:true},
                { name: '**Lv.1**', value: '**Job** Staff 30% UP in areas affiliated with Alice'},
                { name: '**Lv.2**', value: '**Job** Staff 10% UP'},
                { name: '**Lv.3**', value: '**Common** Magical DEF + 100'},
                { name: '**Lv.4**', value: '**Common** Physical DEF + 100'},
                { name: '**Lv.5**', value: '**Job** Staff 10% UP in areas affiliated with Alice'},
                { name: '**Lv.6**', value: 'Common** Magical ATK + 100'},
                { name: '**Lv.7**', value: '**Common** HP + 50'},
                { name: '**Lv.8**', value: 'Common** Physical ATK + 100'},
                { name: '**Lv.9**', value: '**Job** Staff 10% UP in areas affiliated with Alice'},
                { name: '**Lv.10**', value: '**Common** HP + 50'},
                { name: '**Lv.11**', value: '**Common** HP + 200'},
                { name: '**Lv.12**', value: '**Common** HP + 200'},
                { name: '**Lv.13**', value: '**Job** Staff 10% UP in areas affiliated with Alice'},
                { name: '**Lv.14**', value: '**Common** HP + 400'},
                
            )
            message.channel.send(embed);
    }

        
} 

module.exports.config = {
    name: "char",
    description: "character description",
    usage: "char",
    accessableby: "Members",
    aliases: []
}

теперь я предполагаю, что если бы я набрал .char alice breaker, я бы получил встроенный текст, определенный в args === alice breaker и так далее. однако ввод команды в Discord ничего не дает. если я посмотрю сумку в терминал, то получу Журнал Я предполагаю, что это означает, что определение, следующее за .char, было распознано, но бот не отправляет никакого ответа. есть у кого-нибудь Идея?

1 Ответ

1 голос
/ 13 июля 2020

Проверяйте аргументы как «массив», например,

if (args[0] === 'alice' && args[1] === 'breaker') {
...
}

кажется для вашего сценария, лучше проверить args [0], затем более поздние args [1] в разных строках ... Но это решение этой проблемы: «проверка массива как строки».

Кроме того, как вы можете видеть,

console.dir(args);

строка печатает

['alice', 'breaker']

, поэтому аргументы являются массивом, как вы тоже могу видеть.

...