#discord #discord.js
#Discord #discord.js
Вопрос:
Я некоторое время искал и не нашел окончательного ответа. У меня есть настройка основного кода и все такое, и у меня есть отдельные файлы для каждой команды, так что это мой базовый формат кода. Я просто ищу кого-то, кто может сказать «!alert» в качестве команды, бот ответит «(Имя пользователя) было предупреждено», а затем бот отправит мне DM с «(Имя пользователя) просит вашего внимания». Если вам нужна дополнительная информация, все в порядке, я новичок в этом.
module.exports = {
name: 'alert',
description: "alert",
execute(message, args){
'#code goes here obv'
}
}
Комментарии:
1. Что вы уже пробовали?
Ответ №1:
Команда, которую вы хотите создать, состоит из трех шагов.
- Вы должны получить свой пользовательский объект через клиент
- Вы должны отправить сообщение по каналу, по которому была отправлена команда, о том, что вы были предупреждены
- Затем вы должны фактически отправить dm человеку и отобразить сведения о том, кто отправил команду.
Сначала вам нужно будет получить свой пользовательский объект. Для этого, конечно, вам нужно будет получить доступ к клиенту и его коллекции пользователей. К счастью, вы можете найти свой экземпляр клиента через message
объект.
Кроме того, начиная с версии 12, discord.js использует Managers
, что означает, что нам придется использовать свойство cache, прежде чем мы попытаемся получить ваши данные пользователя. Не забудьте поместить найденный объект в переменную, так как мы будем использовать его несколько раз.
// your user object
const owner = message.client.users.cache.get('Your ID Here');
Ссылки:
Message
-> Message.client
-> Client.users
-> UserManager.cache
-> Collection.prototype.get()
Теперь вам нужно отправить подтверждающее сообщение на канал, для чего вы можете просто использовать обычный message.channel.send()
. Тем не менее, вы также захотите указать свое имя пользователя в сообщении.
Поскольку вы всегда будете тем, кто получает предупреждение, вы можете просто записать свое имя пользователя… Но это не очень весело, поэтому я предлагаю вам получить это через owner
объект.
// send the message to the channel
message.channel.send(`${owner.username} has been alerted.`);
Ссылки:
Message
-> Message.channel
-> TextChannel.send()
-> User.username
Наконец, вам нужно будет указать dm yourself ( owner
) с именем пользователя (хотя я думаю, что тег был бы лучше, так как он также показывает дискриминатор; представьте, сколько людей имеют одинаковое имя пользователя discord) человека, который его отправил. Это можно найти в message.author
свойстве.
Вы можете отправлять dm любому, вызывая send()
метод для их User
GuildMember
объектов or, так же, как вы можете вызвать send()
метод для любого TextChannel
or TextBasedChannel
.
// dm you
owner.send(`${message.author.tag} has requested your attention`);
Ссылки:
User
-> User.send()
-> Message
-> Message.author
-> User.tag
Ответ №2:
Вы могли бы сделать что-то в этом роде:
let guild = client.guilds.cache.get('serverID')
let user = guild.members.cache.get('yourUserID')
user.send('message')