exports.exec = async (client, message, args, level, settings, texts) => {
const user = args[0];
const text = args[1]
// Fires Error message that the command wasn't ran correctly.
if (!user) {
return client.emit('commandUsage', message, this.help);
}
// Fires Error message that the command wasn't ran correctly.
try {
const { body } = await snekfetch.get(`https://nekobot.xyz/api/imagegen?type=${user.toLowerCase() === "realdonaldtrump" ? "trumptweet" : "tweet"}&username=${user.startsWith("@") ? user.slice(1) : user}&text=${encodeURIComponent(text)}`);
message.channel.send("", { file: body.message });
/* * * * */
如您在gif中所看到的,在这种情况下,将对第一个单词(it
)之后的所有内容进行切片。我不知道为什么,我不确定是否是由于const text = args[1]
造成的。
我认为const text = args.join (" ")
根本不起作用,我也没有尝试过,但相当肯定的是,它没有作用。
抱歉,我是discord.js的新手:/
答案 0 :(得分:1)
这肯定是由于args[1]
所致,假设args
是消息中使用的单词数组,按空格分隔,1
位置将始终仅包含第二个单词。 / p>
您想要的是这样的
const [user, ...restArgs] = args;
const text = restArgs.join(' ');
这会将第一个元素用作user
,并将数组的其余部分用于文本,而不仅仅是第二个元素。