discord.js - 仅在特定公会上设置自动角色
问题描述
我想在新用户加入服务器 X 时为他们自动设置角色,问题是这个机器人也在服务器 Y 上,而服务器 Y 没有这个角色。
client.on('guildMemberAdd', member => {
console.log('User ' + member.user.tag + ' has joined Steampunk.');
var role = member.guild.roles.find(x => x.name === "name");
member.addRole('247442955651121154');
})
我希望在应用角色之前我可以做一个简单的检查,如果用户已经加入服务器 X,添加角色,否则,什么都不做。到目前为止,我的尝试都失败了。
任何输入将不胜感激!
解决方案
我最终按名称定义了有问题的公会,将其保存为常量,并检查了特定的公会。
如果您的机器人在多台服务器上,但您只希望在特定服务器上使用 greet/addRole,所有这些都集成到加入时显示的消息中;
//Welcome message and autorole for specific server and channel.
client.on('guildMemberAdd', member => {
const = client.guilds.find(guild => guild.name === "Steampunk");
if (!guild) return;
const channel = member.guild.channels.find(ch => ch.name === "greetings");
if (!channel) return;
let botembed = new Discord.RichEmbed()
.setColor("#ff9900")
.setThumbnail(member.user.avatarURL)
.setDescription(`${member} Welcome to the Ark Steampunk Sponsored Mod Discord!\nPlease report all <#244843742568120321> and if u need any help view or ask your question in <#334492216292540417>. Have any ideas we got a section for that too <#244843792132341761>. Enjoy!:stuck_out_tongue: Appreciate all the support! <http://paypal.me/ispezz>`)
.setTimestamp()
.setFooter("Steampunk Bot", client.user.avatarURL);
channel.send(botembed);
console.log('User ' + member.user.tag + ' has joined ' + member.guild.name + '.');
var role = member.guild.roles.find(x => x.name === "name");
member.addRole('247442955651121154');
});
推荐阅读
- powershell - 我需要运行一个脚本,它将返回给我 AD 中任何大写首字母的 sAMAccountname
- r - R中具有不等权重和替换的分层抽样
- c++ - 如何将网格行和列与用户输入进行比较?
- networking - Contiki 节点 A 向另一个节点 B 发送数据,我希望节点 A 和 B 通过边界路由器将数据发送到运行在 Linux 上的服务器
- spring-boot - Vaadin 流动聚合物模板
- woocommerce - WooCommerce 不保存 SKU 值
- powershell - 在安装了 powershell 6 的 Centos72 中运行 Powershell 脚本时出错
- python - 数字没有加起来
- r - 总结一列,在 R 中按另一列分组
- angular - 如何使用 Angular2x 和 Strapi.JS 进行上传?