javascript - 长 discord.js 参数
问题描述
我从 discord.js 开始,我有一个问题。当前是否可以使用我必须使用的无限参数message.channel.send(${args})
,例如,当我键入 $test 1 2 时,只会发送 1,而 2 不会请帮助我想为命令 $kick 说明原因,但只有一个参数first 经常只看到第一句话而不是全部原因请帮助!
我想你不明白我的意思,我的意思是参数不应该是一个单词,例如 command:$embed hello word :) 我希望机器人发送:hello word :) 但它发送:hello without word 和 :) 不一定是 hello word :) 它必须是用户给出的词 我希望我写得很清楚以寻求帮助 谢谢!
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
const fs = require('fs');
const prefix = "$";
const RED = "#EC0F0F";
const BLUE = "#1725E7";
const GREEN = "#17E729";
const FIOLET = "#880FEC";
client.once('ready', () => {
console.log('Ready!');
});
client.on('message', async message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(' ');
const command = args.shift().toLowerCase();
console.log(message.content);
if (message.content === `$embed`) {
const embesmess = new Discord.MessageEmbed()
.setTitle(`${args[0]}`)
.setColor(`${GREEN}`)
.setdescription(`HERE I WANT THIS ARGUMENT`)
message.channel.send(embesmess);
}
});
client.login(config.token);
解决方案
使用类似的东西
if (message.content.startsWith(`$embed`)) {
const embesmess = new Discord.MessageEmbed()
.setTitle(`${args.slice(1).join(" ")}`) //join all arguments besides the first
.setColor(`${GREEN}`)
.setdescription(`HERE I WANT THIS ARGUMENT`)
message.channel.send(embesmess);
}
这将结合您的所有论点,不包括第一个论点。
推荐阅读
- iis - 我应该为 IIS 中的处理器关联掩码输入哪些值?
- laravel-mix - Laravel Mix 6 的文件名版本控制
- jsxgraph - 将 moveTo 应用于具有由滑块设置的坐标的点
- python - 使用散列函数分组字谜中的缺失值
- couchdb - 如何配置search_indexes并发数
- python - 如何在 spycopg2 中设置表名和桶名
- python - 如何根据元数据验证文件中所有列的列类型?
- python - 如何在熊猫中转换这个excel数据集?
- sml - 在 SML 中解析具有多种数据类型的元组列表
- node.js - WhiteLabeled Web 应用程序的 JWT 与 Cookie(会话) - 防止 CORS 和 3rd 方 Cookie 问题