Mass Role.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import discord
from discord.ext import commands
@bot.command()
@commands.has_permissions(administrator=True)
async def herkeserolver(ctx, rol: discord.Role):
"""Sunucudaki tüm üyelere belirtilen rolü toplu olarak verir."""
# Bot olmayan üyeleri filtrele
uyeler = [m for m in ctx.guild.members if not m.bot]
toplam = len(uyeler)
if toplam == 0:
return await ctx.send("❌ Sunucuda rol verilecek üye bulunamadı.")
# Bot rolünün hiyerarşide yetersiz olup olmadığını erkenden kontrol et
if rol >= ctx.guild.me.top_role:
return await ctx.send(
f"❌ `{rol.name}` rolü botun en yüksek rolünden üstte veya eşit. "
"Lütfen bot rolünü bu rolün üstüne taşıyın."
)
basarili = 0
basarisiz = 0
zaten_var = 0
durum_mesaj = await ctx.send(f"⚙️ İşlem başlatıldı: 0/{toplam}")
for i, uye in enumerate(uyeler, start=1):
if rol in uye.roles:
zaten_var += 1
else:
try:
await uye.add_roles(rol, reason=f"herkeserolver komutu — {ctx.author}")
basarili += 1
except discord.Forbidden:
basarisiz += 1
except discord.HTTPException:
basarisiz += 1
# Her 10 üyede bir durum mesajını güncelle
if i % 10 == 0:
await durum_mesaj.edit(content=f"⚙️ İlerliyor: {i}/{toplam}")
embed = discord.Embed(
title="📊 Mass Role İşlemi Tamamlandı",
color=discord.Color.green() if basarisiz == 0 else discord.Color.orange(),
)
embed.add_field(name="✅ Başarılı", value=f"{basarili} kullanıcı", inline=True)
embed.add_field(name="⏭️ Zaten vardı", value=f"{zaten_var} kullanıcı", inline=True)
embed.add_field(name="❌ Başarısız", value=f"{basarisiz} kullanıcı", inline=True)
embed.add_field(name="🎯 Hedef rol", value=rol.mention, inline=False)
embed.set_footer(text="Başarısızlık sebebi genelde yetki hiyerarşisidir.")
await durum_mesaj.edit(content=None, embed=embed)0Beğeni
1Görüntülenme
Kod Bilgisi
DilPython
Satır56
Karakter2,082
Tarih01.05.2026
Açıklama
Sunucudaki herkese belirttiğin rolü verir, başarısız sayını vb. bildirir.
Etiketler