#javascript #discord #discord.js
#javascript #Discord #discord.js
Вопрос:
Я пытаюсь создать бота discord, который отправляет сообщение, а затем повторяет код, который дает пользователь. Например:
Пользователь: !play <code>
Бот: @everyone a new game has been started with the code <code>
Я также хочу, чтобы он запоминал эту переменную до ее сброса, чтобы это было возможно:
Пользователь: !code
Bot: the current game code is <code>
Возможно ли это сделать, и если да, то как? Я не могу найти ничего, что показывало бы, что я ищу в простом скрипте .js
Вот что у меня есть на данный момент:
client.on('message', (msg) => {
if (msg.content === '!play') {
msg.reply('@everyone A new game has been started with the code');
}
});
client.on('message', (msg) => {
if (msg.content === '!code') {
msg.reply('The current game code is');
}
});
Комментарии:
1. Вам нужно будет настроить аргументы, взять 2-й элемент из массива args и сохранить его как переменную
Ответ №1:
о, и также это выдает мне ошибку типа: msg.StartsWith не является функцией
Использовать message.content.startsWith()
Это может сработать для !play, однако я хочу, чтобы !code отвечал на код, который уже был определен в !play
Верно, чтобы получить аргументы сообщения без команды, это
let args = message
.content // We need the content of the message
.split(' ') // Then we creates an array with the message separated with a space.
.slice(1) // We remove the command from the array
затем вы можете использовать аргументы по своему усмотрению.
message.channel.send(args.join(' ')) // We join with a space to transform the array with a string
Ответ №2:
Вы могли бы сделать это следующим образом:
var code = '';
client.on('message', (msg) => {
if (msg.content.startsWith('!play ')) {
code = msg.content.substr(6); // Remove first 6 characters of message
msg.reply(`@everyone A new game has been started with the code ${code}`);
}
if (msg.content.startsWith('!code ') amp;amp; code.length > 0) {
msg.reply(`The current game code is ${code}`);
}
});
Комментарии:
1. Это может сработать для !play, однако я хочу, чтобы !code отвечал на код, который уже был определен в !play.
2. о, и также это выдает мне ошибку типа: msg.StartsWith не является функцией
3. @fcpihtr извините, исправил!