discord.js - サーバー参加時の Discord Auto ロール

okwaves2024-01-25  7

私は v12 を使用しており、これまでに試したことは次のとおりです。

client.on('guildMemberAdd', (guildMember) => {
 guildMember.roles.add(
  guildMember.guild.roles.find((r) => r.name === 'Newbie')
 );
});


------------------------

Discord JS v12 ではマネージャーの概念が導入されており、GuildMember.roles.find などの収集メソッドを直接使用できなくなります。収集メソッドを使用する前に、マネージャーでキャッシュを直接要求する必要があります。 (GuildMember.roles.cache.find);

client.on("guildMemberAdd", guildMember => { // Detecting when a GuildMember joins the guild.
    const Role = guildMember.guild.roles.cache.find(role => role.name == "Newbie"); // Getting the Role by name.
    if (!Role) return console.log("Invalid Role"); // Checking if the Role exists.

    guildMember.roles.add(Role.id).catch(error => console.log(error)); // Adding the Role to the GuildMember.
});

1

1

ちょっとしたメモ。 GuildMemberRoleManager の add メソッドは、RoleResolvable をパラメーターとして受け取ります。これは Snowflake または Role のいずれかになります。つまり、.add(Role.id) は必ずしも必要ではありませんが、.add(Role) も同様に機能します。どちらの方法を使用しても、もう一方の方法に比べて利点があるかどうかはわかりませんが、オプションがあるのは良いことだと思います

– T.ダークス

2020 年 9 月 3 日 9:31

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。