javascript - 如何在嵌入不和谐机器人中输入多行参数
问题描述
我正在尝试制作一个嵌入不和谐机器人,并且我希望能够使用该命令完全编辑消息,我遵循了一些教程并且我能够设置每个参数的参数,但我只能写一个每个字。这个想法是用逗号分隔并能够写多个单词和行。
const Discord = require('discord.js');
const bot = new Discord.Client();
const token = '';
const PREFIX = '!';
bot.on('ready', () => {
console.log('Bot online');
});
bot.on('message', message => {
let args = message.content.slice(PREFIX.length).split(' ');
switch (args[0]) {
case 'embed':
const embed = new Discord.MessageEmbed()
.setTitle(args[1])
.setDescription(args[2])
.setImage(args[3])
.setColor(args[4])
.setFooter(message.author.username)
.setTimestamp()
message.channel.send(embed);
break;
}
});
bot.login(token);
解决方案
由于您没有用逗号分隔每个 arg,而是用空格分隔它们,因此您的变量应如下所示:
let args = message.content.slice(PREFIX.length).split(','); // Add an extra space after the comma if necessary
要编写多行,您可以这样做:
// Let's say we are sending a message to a channel
message.channel.send(`${args[1]}\n${args[2]}`) // And you can keep on going as long as the args are supplied.
推荐阅读
- java - Java:包含和添加?
- amazon-s3 - 尝试将对象放入 S3 存储桶时访问被拒绝
- swift - 在 Swift 结构中的常量上使用 static 的目的是什么?
- c - 使用子层修改C API数组访问?
- awk - 用 sed 或 awk 替换字符串,它标识如下所述的模式
- asp.net-core - 不同的会话超时.net核心会话
- java - 我的代码不允许我将图像放入我的 java 代码中
- mysql - SQL:我们可以选择一列中的内容作为新表中的新列吗?
- c# - Nuget.Core 下载所有 Nuget-Packages 身份验证失败
- image - 请告诉我如何从图像中创建切换?