Арги нарезаются после первого слова |Discord.js - PullRequest
0 голосов
/ 07 октября 2018

enter image description here

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: /

1 Ответ

0 голосов
/ 07 октября 2018

Это определенно связано с args[1], предполагая, что args - это массив слов, используемых в сообщении, разделенных пробелом, позиция 1 всегда будет содержать только второе слово.

ЧтоВы хотите что-то вроде этого:

const [user, ...restArgs] = args;
const text = restArgs.join(' ');

Это будет принимать первый элемент как user, и использовать остаток массива для текста, а не только второй элемент.

...