discord.js - 如何为 unban 命令使用的用户发送 DM?
问题描述
我正在为禁令命令开发一个取消禁令命令。
解除禁令后,我希望通过私信将嵌入消息unbanEmbeduserside发送给被禁止的用户。此嵌入消息将让被禁止的用户知道它。
我的 unban 命令的代码如下。提前感谢我的朋友,他们将帮助我编写代码,以便我可以执行我在上面文章中提到的操作。
async run (bot, message, args) {
message.delete(message.author);
if (!message.member.hasPermission("BAN_MEMBERS"))
return message.author.send("Buna yetkin yok.")
let unbanEmbednotfoundmessage = new discord.MessageEmbed()
.setColor(0xdb2727)
.setDescription(`Kullanıcı bulunamadı veya yasaklı değil.`);
let userID = args[0]
message.guild.fetchBans().then(bans => {
if(bans.size == 0) return message.channel.send(unbanEmbednotfoundmessage);
let bUser = bans.find(b => b.user.id == userID)
if(!bUser) return message.channel.send(unbanEmbednotfoundmessage)
let unbanEmbeduserside = new discord.MessageEmbed()
.setAuthor('YASAKLAMA KALDIRILDI', 'https://i.hizliresim.com/midfo22.jpg')
.setDescription(`
*Yasaklamanız kaldırıldı, sunucuya tekrar katılabilirsiniz!*
Yasaklamayı Kaldıran Yetkili: **${message.author.username}**
`)
.setColor(0xc8b280)
.setTimestamp()
.setFooter('gtaplus Multiplayer Community');
let unbanEmbedserverside = new discord.MessageEmbed()
.setAuthor('YASAKLAMA KALDIRMA', 'https://i.hizliresim.com/midfo22.jpg')
.setDescription(`
Yasağı Kaldırılan Kullanıcı: **${userID}**
Yasaklamayı Kaldıran Yetkili: **${message.author.username}**
`)
.setColor(0xc8b280)
.setTimestamp()
.setFooter('gtaplus Multiplayer Community');
message.guild.members.unban(bUser.user).then(() => message.channel.send(`**${userID}** yasaklaması kaldırıldı.`));
if (unbanEmbedserverside){
const log = message.guild.channels.cache.find(channel => channel.name === 'server-log')
log.send(unbanEmbedserverside);
}
})
}}
解决方案
在 Discord 中,包括机器人在内的任何用户都需要与用户在服务器中才能向他们发送直接消息。不幸的是,这意味着除非机器人与被禁止的用户共享服务器,否则您将无法发送消息。如果该机器人确实共享另一台服务器,则 Skularun Mrusal 在您的帖子评论中提供的答案应该有效。
推荐阅读
- python - 有没有办法制作从第一列排序的数组列表?
- html - 列数问题:位置绝对元素出现在第一列
- java - 使用 xpath 在 selenium 中查找 webelement 时出错
- azure - Azure Kubernetes - 开发人员的本地 Kubernetes 环境?
- python - 无法使用 pip 安装模块
- yaml - 使用 Fn::GetAtt 的无服务器变量插值 env:VAR 回退
- python - 制作旋转圆锥的动画,前一帧不会被删除
- php - Laravel 刀片中未加载 Vue 组件
- java - 如何使用 final setter 方法创建超类的不可变子类?
- php - 合并不同的表Mysql