Вставить в Discord. js отправьте также команду - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь создать разлад js анонс бота ex. Когда я напишу? Ann Hello Guys, бот удалит мое сообщение и отправит Hello Guys, но теперь, если я напишу? Ann Hello Guys, бот удалит мое сообщение и отправит ? Ann Hello Guys код такой


const client = new Discord.Client();

client.login('--------------');

const PREFIX = '?';

client.once('ready', () => {
    console.log('Questo bot e online!');
});

client.on('message', message=>{

    let args = message.content.slice(PREFIX.length).split(' ');

    switch(args[0]){
        case 'ann':
        const embed = new Discord.MessageEmbed()
        .addField('test', message.content  );
        message.channel.send(embed);
    break;
}

})

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Сделал для этого ручку: https://codepen.io/herbievine/pen/YzwNewQ

client.on('message', message=>{

    let args

    if (message.startsWith('?')) 
      args = message.content.replace('?', '').split(' ')

    if (args[0].toLowerCase() === 'ann') {
      const embed = new Discord.MessageEmbed()
        .addField('test', message.contentreplace('?ann', ''));
        message.channel.send(embed);
    }
}

})

Надеюсь, поможет

0 голосов
/ 19 июня 2020

message.content представляет собой все сообщение, которое вы отправляете, поэтому в этом случае будет ?Ann Hello Guys.

Discord JS не понимает, что это за команды, и не разделяет это материал для вас.

Поскольку ваше сообщение отформатировано как ?Mention <Command arguments here>, вы можете разделить его через пробел внутри строки.

let messageContent = message.content.split(" ")

Это займет вашу строку of "?Ann Hello Guys" и превращает его в "?Ann", "Hello", "Guys"

.split(" ") разделяет вашу строку пробелами и возвращает массив.

Затем вы можете сделать messageContent.pop(), чтобы удалить первый элемент в массиве, который равен "?Ann".

Затем вы можете .join(" ") их обратно вместе, сформировав строку "Hello Guys" и отправить ее. Полностью сформированный код:

let splitMessage = message.content.split(" ")

splitMessage.pop();

const transformedMessage = splitMessage.join(" ")
...