我正在嘗試檢查用戶是否在特定服務器上擁有角色,而不管他們在哪臺服務器上使用機器人。
例如,如果我有 2 個服務器,服務器 A 和服務器 B,我想檢查用戶是否在服務器 A 上具有“初學者”角色,即使我在服務器 B 中使用該命令。
我在互聯網上找不到這樣做的方法,message.member.roles似乎只回傳寫入命令的服務器的角色。
uj5u.com熱心網友回復:
你可以這樣做:
function hasRole(guildId, roleId) {
// Get second guild
const guild = client.guilds.cache.get(guildId);
// Get member in that guild, by ID
const member = guild.members.cache.get(message.author.id);
// If member is in that guild,
if (member) {
// return whether they have this role
return member.roles.cache.has(roleId);
}
}
當然,機器人必須在兩臺服務器中。
uj5u.com熱心網友回復:
一個解決方案是找到服務器,然后從服務器內部找到成員。
要查找公會,您將使用該guild.fetch(...)方法,然后從那里使用該guildMember.fetch(...)函式查找成員。
例子:
client.on("messageCreate", function(message) {
// Find the guild
let guild = client.guilds.fetch("guild-id");
// Find the member in the guild
let member = guild.members.fetch(message.author.id);
if (member)
message.reply("You are in the server " guild.name);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/401765.html
標籤:javascript 不和谐.js
