Memeriksa Multiple Guild ID's - Discord.py
Saya mencoba mengirim DM selamat datang kepada pengguna yang bergabung dengan server perselisihan saya, tetapi saya memiliki pengaturan bot di beberapa server. Saya mencoba untuk memeriksa guild lalu mengirim pesan berdasarkan guild mana, tetapi tidak berfungsi. Saya telah melihat dan pertanyaan populer seperti ini di stackoverflow menggunakan perintah dan ctx, yang tidak dapat digunakan di on_member_join().
@client.event
async def on_member_join(member):
guild = client.get_guild(762921541204705321)
if guild == 762921541204705321:
await member.create_dm()
await member.dm_channel.send("Welcome!")
Jawaban
Menurut dokumentasi , ketika Anda memanggilnya get_guild()tidak mengembalikan ID serikat, ia mengembalikan sebuah Guildobjek. Dari kode sumber , tampaknya kelas guild ini memiliki operator pembanding yang kelebihan beban, sehingga tidak dapat menangani perbandingan antara Guildobjek dan ID integer.
Solusi untuk masalah Anda adalah dengan membandingkan nomor ID dengan Guild.idatribut:
@client.event
async def on_member_join(member):
# client.get_guild returns a Guild object!
guild = client.get_guild(762921541204705321)
# Get the ID from the 'id' attribute on the guild object and compare.
if guild.id == 762921541204705321:
await member.create_dm()
await member.dm_channel.send("Welcome!")