最近、discordjsライブラリをv12にアップグレードすることにしました。誰かがゲーム(Golf With Your Friends)をオンにすると、彼が役割を果たしたいと思いました。しかし、discord jsv12でプログラムすることはできません。手伝って頂けますか?これがv11の私のコードです:
bot.on("presenceUpdate", (oldMember, newMember) => {
let guild = newMember.guild;
let playRole = guild.roles.get("633589794357641235");
if (!playRole) return;
if (newMember.user.presence.game && newMember.user.presence.game.name === "Golf With Your Friends") {
newMember.addRole(playRole);
}
});
v11からv12への更新に関するdiscordjs.guideのガイドは次のとおりです。
https://discordjs.guide/additional-info/changes-in-v12.html#managers-cache
こちらの公式ドキュメントも確認できます。
https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-presenceUpdate
まず、パラメータをoldPresence
とに更新しましたnewPresence
。
そう:
client.on("presenceUpdate", (oldPresence, newPresence) => {
//....
}
次に、コレクションをからguild.roles
に変更しましたguild.roles.cache
。
const playRole = guild.roles.cache.get("633589794357641235");
3番目に、ifステートメントで使用されnewMember.user.presence
ているのはnewPresence
、ゲームがActivity
クラスに変更されており<Presence>.game
、これ以上ないため、<Presence>.activites
配列をループする必要があります。
if (newPresence.find(e => e.name === "Golf With Your Friends")) {
//...
}
そして最後に彼らはに移動<GuildMember>.addRole
しました<GuildMember>.roles.add
:
newPresence.member.roles.add(playRole);
完全なコード:
bot.on("presenceUpdate", (oldPresence, newPresence) => {
let guild = oldPresence.guild;
//guild.roles => guild.roles.cache
let playRole = guild.roles.cache.get("633589794357641235");
if (!playRole) return;
if (newPresence.find(e => e.name === "Golf With Your Friends")) {
newPresence.member.roles.add(playRole);
}
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加