Мне нужна помощь в создании сообщения о разногласиях с ботом при вводе команды
В настоящее время я пытаюсь создать дискодорадного бота и нахожусь в тупике от команды, которую я пытаюсь заставить это сделать. Предполагается, что команда является секретным сообщением DM, отправленным ботом. Мне было интересно, есть ли еще способ сделать это? команда должна выглядеть так:
/ dm @ PLAYER # 000 [message_goes_here]
Пожалуйста, помогите!
2 ответа
Давайте сделаем это шаг за шагом:
Если упоминается @Player#0000, вы можете получить Player # 0000 User
Использование объекта msg.mentions[0].
Теперь отправим этому пользователю сообщение:
Во-первых, вам нужно отделить сообщение от команды: Использование msg.toString()
вы сможете получить сообщение с упоминанием, превращенным в <@ID>, что также будет содержать пробелы в именах пользователей. Теперь разделите сообщение, используя msg.toString().split(' ')
, shift()
это дважды, join(' ')
это и у вас будет сообщение.
С помощью User.send()
Вы сможете отправить сообщение этому пользователю.
Вот как будет выглядеть окончательный результат:
bot.on('message', message => {
if (message.content.startsWith('/dm ') && message.mentions.users.size) {
var v=message.toString().split(' ').shift().shift().join(' ') // Takes the DM content from the message
var member=message.mentions.users[0] // The mentioned user
member.send(v) // send that user a DM
}
})
Обратите внимание, что этот пример на самом деле не покрывает ошибки (в случае, если сообщение не отправляется и т. Д.)
Я не уверен, что вы можете изменить message.content.startsWith() с чем-то, что я забыл, или вы могли бы просто сделать это в другом месте, потому что, как и бот-дискорд, такой как dyno или mee6, я не думаю, что они используют точный код, я симпатичный уверен, что им нужно создать идентификатор для бота, который будет рассылать его, как акцентный человек, убивающий кого-то, так что да, это мое предположение.