Kodlar
Mass Role.py
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
#massrole