如何进行多词论证?

Posted

技术标签:

【中文标题】如何进行多词论证?【英文标题】:How to make multi-word argumet? 【发布时间】:2021-04-28 12:57:53 【问题描述】:

如何制作多词参数。例如禁止或静音的原因。如果我使用 args[2]、args[3]、args[4]、args[5]... 所以它仍然是有限的,如果没有写在那里,它会写“未定义”。所以如果你知道怎么做,我会很高兴得到答案。 :)

const  ReactionCollector  = require("discord.js");

module.exports = 
    name: 'ban',
    description: "Dočasně zabanuje člena.",
    async execute(message, args, Discord, client, chalk, ms)
        await message.channel.messages.fetch(limit: 1).then(messages =>
            message.channel.bulkDelete(messages);
        );

        const channelId = client.channels.cache.get('802649418087530537');
        const author = message.author;
        const userName = message.mentions.users.first();
        
        if(!message.member.permissions.has("BAN_MEMBERS"))
            message.reply('Nemáš potřebné permisse!')
            .then(msg => 
                msg.delete( timeout: 5000 )
            );
            return;
         else if(!args[1])
            message.reply('!ban <člen> <délka> (<důvod>)')
            .then(msg => 
                msg.delete( timeout: 5000 )
            );
            console.log(chalk.red('[ERROR] Missing args[1]'));
            return;
        
        if(userName)
            const userId = message.guild.members.cache.get(userName.id);
            const botId = '799652033509457940';
            userId.ban();
            
            const banEmbed = new Discord.MessageEmbed()
            .setColor('#a81919')
            .setTitle('Ban')
            .addFields(
                name:'Člen:', value:`$userId`,
                name:'Udělil:', value:`$author`,
                name:'Délka:', value:`$ms(ms(args[1]))`,
                name:'Důvod:', value:`$args[2]`,
            )
            .setTimestamp()
            channelId.send(banEmbed)

            setTimeout(function () 
                message.guild.members.unban(userId);

                const unbanEmbed = new Discord.MessageEmbed()
            .setColor('#25a819')
            .setTitle('Unban')
            .addFields(
                name:'Člen:', value:`$userId`,
                name:'Udělil:', value:`<@$botId>`,
                name:'Důvod:', value:`Ban vypršel.`,
            )
            .setTimestamp()
            channelId.send(unbanEmbed)
            , ms(args[1]));

            console.log(chalk.green(`[INFO] /ban/ $userId.user.username, $ms(ms(args[1]))`));
        else
            message.channel.send('Nemůžeš zabanovat tohoto člena');
            console.log(chalk.red(`[ERROR] /ban/ Can not find target`));
        
    

【问题讨论】:

你可以使用.shift(),所以你可以使用args.shift(),然后它会删除数组中的第一个元素,然后你可以用args.join(" ");这样的空格来连接每个单词 【参考方案1】:

我假设您已经正确定义了args。然后你可以简单地使用

args.join(" ");

用空格分隔每个单词。

【讨论】:

以上是关于如何进行多词论证?的主要内容,如果未能解决你的问题,请参考以下文章

如何将标记化中的多词名称保持在一起?

如何在 discord.py 中使用多词别名

如何确定在 SwiftUI 中的多词文本视图中点击的词

如何进行嵌入式论证?

elasticsearch 多词重要词聚合

如何填写项目商业论证