繁体   English   中英

如何将一组用空格分隔的 arguments 更改为 Discord.js 中的一个参数?

[英]How do I change a group of arguments separated by a space to become one argument in Discord.js?

因此,我正在尝试使用一个命令来制作一个机器人,该命令会警告 DM 中的某人。 我所拥有的是第一个参数是/ticket ,第二个参数是提及,然后第三个参数是原因的第一个词,第四个是原因的第二个词,依此类推。 我遇到的麻烦是将第三个参数更改为原因的结尾是 1 个参数。 所以这是我的代码:

const Discord = require('discord.js')
const bot = new Discord.Client()
const token = 'token here';
const PREFIX = '/';
const embed = new Discord.MessageEmbed()
const ping = require('minecraft-server-util')
bot.on('ready', async () => {
  console.log('This bot is online! Created by @littleBitsman.');

bot.on('message', message => {
  let args = message.content.substring(PREFIX.length).split(' ')
  if(message.content.startsWith(PREFIX))
  switch (args[0]) {
    case 'ticket':
      if (message.member.roles.highest == '701895573737046066') {
        mention = message.mentions.users.first()
        var thing = args.shift()
        thing = args.shift()
        var reason 
        reason = args.shift()
        mentionID = mention.id
        if(mention = null) {return}
        var messagetosend = new Discord.MessageEmbed()
          .setTitle('Ticket')
          .setDescription('Hey ' + thing + '! You recieved this because of: ' + reason + '.')
        message.client.users.fetch(`${mentionID}`).then(user => user.send(messagetosend))
      }
      }
  })
bot.login(token);

我会改变方法,如果我理解正确,命令是这样的:/ticket @person bad behavior

消息应该是:嘿,人:你收到这个是因为:不良行为

所以我会这样:

mention = message.mentions.users.first()
if(mention === null) return
args.splice(0,2) //removes prefix and mention 
reason = args.join(" ")
var messagetosend = new Discord.MessageEmbed()
          .setTitle('Ticket')
          .setDescription('Hey  ' + mention + '! You received this because of: ' + reason + '.')
        message.client.users.fetch(mentionID).then(user => user.send(messagetosend))

随心所欲地改变它

看起来args只是一个单词数组,所有这些都构成了原因。

那么为什么不这样做:

// sample args
let args = ["you", "forgot", "to", "turn", "it", "on"];

let reason = args.join(' ');

console.log('reason:' + reason);
// reason: you forgot to turn it on

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM