CoolFace
Apppublic

raidha/undefined

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
index.html814 linesDownload Raw Back to root
1<!DOCTYPE html>2<html lang="en">3<head>4    <meta charset="UTF-8">5    <meta name="viewport" content="width=device-width, initial-scale=1.0">6    <title>Discord Power Tools Bot</title>7    <script src="https://cdn.tailwindcss.com"></script>8    <script src="https://unpkg.com/feather-icons"></script>9    <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>10    <script>11        tailwind.config = {12            theme: {13                extend: {14                    colors: {15                        primary: '#5865F2',16                        secondary: '#ED4245',17                    }18                }19            }20        }21    </script>22    <style>23        .glow-text {24            text-shadow: 0 0 8px rgba(88, 101, 242, 0.7);25        }26        .command-card:hover {27            transform: translateY(-5px);28            box-shadow: 0 10px 25px rgba(88, 101, 242, 0.3);29        }30    </style>31</head>32<body class="bg-gray-900 text-white min-h-screen">33    <div id="background" class="fixed inset-0 bg-gradient-to-br from-gray-900 via-gray-800 to-gray-900 z-0"></div>34 35    <div class="relative z-10 max-w-6xl mx-auto px-4 py-12">36        <!-- Header -->37        <header class="text-center mb-16">38            <h1 class="text-5xl font-bold mb-4 glow-text text-primary">Discord Power Tools</h1>39            <p class="text-xl text-gray-300 max-w-2xl mx-auto">Your all-in-one moderation and utility bot with powerful features</p>40            <div class="mt-8">41                <a href="#commands" class="bg-primary hover:bg-primary-600 text-white px-6 py-3 rounded-full font-medium transition-all inline-flex items-center">42                    <i data-feather="zap" class="mr-2"></i> Selfbot Commands43                </a>44                <a href="#" class="ml-4 bg-gray-700 hover:bg-gray-600 text-white px-6 py-3 rounded-full font-medium transition-all inline-flex items-center">45                    <i data-feather="github" class="mr-2"></i> View on GitHub46                </a>47                <a href="#" class="ml-4 bg-secondary hover:bg-secondary-600 text-white px-6 py-3 rounded-full font-medium transition-all inline-flex items-center">48                    <i data-feather="download" class="mr-2"></i> Download49                </a>50</div>51        </header>52        <!-- Features Section -->53        <section class="mb-20">54            <div class="grid md:grid-cols-3 gap-8">55                <div class="bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all hover:border-primary">56                    <div class="text-primary mb-4">57                        <i data-feather="shield" class="w-10 h-10"></i>58                    </div>59                    <h3 class="text-xl font-bold mb-2">Advanced Moderation</h3>60                    <p class="text-gray-400">Complete control with ban, mute, kick and automated sanctions.</p>61                </div>62<div class="bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all hover:border-primary">63                    <div class="text-primary mb-4">64                        <i data-feather="user" class="w-10 h-10"></i>65                    </div>66                    <h3 class="text-xl font-bold mb-2">User Info</h3>67                    <p class="text-gray-400">Get detailed information about any user with simple commands.</p>68                </div>69                <div class="bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all hover:border-primary">70                    <div class="text-primary mb-4">71                        <i data-feather="settings" class="w-10 h-10"></i>72                    </div>73                    <h3 class="text-xl font-bold mb-2">Easy Setup</h3>74                    <p class="text-gray-400">Simple setup process with intuitive commands and documentation.</p>75                </div>76            </div>77        </section>78        <!-- Commands Section -->79        <section id="commands" class="mb-16">80            <h2 class="text-3xl font-bold mb-8 text-center glow-text text-primary">Selfbot Commands</h2>81            <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">82                <!-- Moderation Commands -->83                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">84                    <div class="flex items-center mb-4">85                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">86                            <i data-feather="user-x" class="text-primary"></i>87                        </div>88                        <h3 class="text-xl font-bold">/ban</h3>89                    </div>90                    <p class="text-gray-400">Ban a member from the server with reason.</p>91                    <div class="mt-2 text-xs text-gray-500">Usage: /ban @user reason</div>92                </div>93 94                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">95                    <div class="flex items-center mb-4">96                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">97                            <i data-feather="user-plus" class="text-primary"></i>98                        </div>99                        <h3 class="text-xl font-bold">/unban</h3>100                    </div>101                    <p class="text-gray-400">Unban a member from the server.</p>102                    <div class="mt-2 text-xs text-gray-500">Usage: /unban userID</div>103                </div>104 105                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">106                    <div class="flex items-center mb-4">107                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">108                            <i data-feather="user-minus" class="text-primary"></i>109                        </div>110                        <h3 class="text-xl font-bold">/kick</h3>111                    </div>112                    <p class="text-gray-400">Kick a member from the server with reason.</p>113                    <div class="mt-2 text-xs text-gray-500">Usage: /kick @user reason</div>114                </div>115 116                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">117                    <div class="flex items-center mb-4">118                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">119                            <i data-feather="slash" class="text-primary"></i>120                        </div>121                        <h3 class="text-xl font-bold">/bl</h3>122                    </div>123                    <p class="text-gray-400">Blacklist a member from pinging and ranking.</p>124                    <div class="mt-2 text-xs text-gray-500">Usage: /bl @user</div>125                </div>126 127                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">128                    <div class="flex items-center mb-4">129                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">130                            <i data-feather="check-circle" class="text-primary"></i>131                        </div>132                        <h3 class="text-xl font-bold">/unbl</h3>133                    </div>134                    <p class="text-gray-400">Remove a member from blacklist.</p>135                    <div class="mt-2 text-xs text-gray-500">Usage: /unbl @user</div>136                </div>137 138                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">139                    <div class="flex items-center mb-4">140                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">141                            <i data-feather="eye-off" class="text-primary"></i>142                        </div>143                        <h3 class="text-xl font-bold">/to</h3>144                    </div>145                    <p class="text-gray-400">Exclude member from server (max 7 days).</p>146                    <div class="mt-2 text-xs text-gray-500">Usage: /to @user duration reason</div>147                </div>148 149                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">150                    <div class="flex items-center mb-4">151                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">152                            <i data-feather="eye" class="text-primary"></i>153                        </div>154                        <h3 class="text-xl font-bold">/unto</h3>155                    </div>156                    <p class="text-gray-400">Remove exclusion from member.</p>157                    <div class="mt-2 text-xs text-gray-500">Usage: /unto @user</div>158                </div>159 160                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">161                    <div class="flex items-center mb-4">162                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">163                            <i data-feather="alert-triangle" class="text-primary"></i>164                        </div>165                        <h3 class="text-xl font-bold">/punie</h3>166                    </div>167                    <p class="text-gray-400">Open punishment menu with time options.</p>168                    <div class="mt-2 text-xs text-gray-500">Usage: /punie @user</div>169                </div>170 171                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">172                    <div class="flex items-center mb-4">173                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">174                            <i data-feather="clock" class="text-primary"></i>175                        </div>176                        <h3 class="text-xl font-bold">/tempmute</h3>177                    </div>178                    <p class="text-gray-400">Temporarily mute a member with reason.</p>179                    <div class="mt-2 text-xs text-gray-500">Usage: /tempmute @user duration reason</div>180                </div>181 182                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">183                    <div class="flex items-center mb-4">184                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">185                            <i data-feather="mic-off" class="text-primary"></i>186                        </div>187                        <h3 class="text-xl font-bold">/mute</h3>188                    </div>189                    <p class="text-gray-400">Permanently mute a member with reason.</p>190                    <div class="mt-2 text-xs text-gray-500">Usage: /mute @user reason</div>191                </div>192 193                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">194                    <div class="flex items-center mb-4">195                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">196                            <i data-feather="mic" class="text-primary"></i>197                        </div>198                        <h3 class="text-xl font-bold">/unmute</h3>199                    </div>200                    <p class="text-gray-400">Unmute a previously muted member.</p>201                    <div class="mt-2 text-xs text-gray-500">Usage: /unmute @user</div>202                </div>203 204                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">205                    <div class="flex items-center mb-4">206                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">207                            <i data-feather="shield" class="text-primary"></i>208                        </div>209                        <h3 class="text-xl font-bold">/role</h3>210                    </div>211                    <p class="text-gray-400">Assign moderation permissions to roles.</p>212                    <div class="mt-2 text-xs text-gray-500">Usage: /role @role command1 command2</div>213                </div>214 215                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">216                    <div class="flex items-center mb-4">217                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">218                            <i data-feather="bookmark" class="text-primary"></i>219                        </div>220                        <h3 class="text-xl font-bold">/setlog</h3>221                    </div>222                    <p class="text-gray-400">Set moderation logs channel.</p>223                    <div class="mt-2 text-xs text-gray-500">Usage: /setlog #channel</div>224                </div>225 226                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">227                    <div class="flex items-center mb-4">228                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">229                            <i data-feather="clock" class="text-primary"></i>230                        </div>231                        <h3 class="text-xl font-bold">/temps</h3>232                    </div>233                    <p class="text-gray-400">Set punishment durations for roles.</p>234                    <div class="mt-2 text-xs text-gray-500">Usage: /temps @role duration reason</div>235                </div>236<!-- User Commands -->237                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">238                    <div class="flex items-center mb-4">239                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">240                            <i data-feather="image" class="text-primary"></i>241                        </div>242                        <h3 class="text-xl font-bold">/pdp</h3>243                    </div>244                    <p class="text-gray-400">Show user's profile picture.</p>245                    <div class="mt-2 text-xs text-gray-500">Usage: /pdp @user</div>246                </div>247 248                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">249                    <div class="flex items-center mb-4">250                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">251                            <i data-feather="image" class="text-primary"></i>252                        </div>253                        <h3 class="text-xl font-bold">/bannier</h3>254                    </div>255                    <p class="text-gray-400">Show user's Discord banner.</p>256                    <div class="mt-2 text-xs text-gray-500">Usage: /bannier @user</div>257                </div>258 259                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">260                    <div class="flex items-center mb-4">261                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">262                            <i data-feather="info" class="text-primary"></i>263                        </div>264                        <h3 class="text-xl font-bold">/bio</h3>265                    </div>266                    <p class="text-gray-400">Show user's Discord bio.</p>267                    <div class="mt-2 text-xs text-gray-500">Usage: /bio @user</div>268                </div>269 270                <!-- Utility Commands -->271                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">272                    <div class="flex items-center mb-4">273                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">274                            <i data-feather="eye" class="text-primary"></i>275                        </div>276                        <h3 class="text-xl font-bold">/snipe</h3>277                    </div>278                    <p class="text-gray-400">Show the last deleted message in channel.</p>279                    <div class="mt-2 text-xs text-gray-500">Usage: /snipe</div>280                </div>281 282                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">283                    <div class="flex items-center mb-4">284                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">285                            <i data-feather="help-circle" class="text-primary"></i>286                        </div>287                        <h3 class="text-xl font-bold">/help</h3>288                    </div>289                    <p class="text-gray-400">Show all available commands or command info.</p>290                    <div class="mt-2 text-xs text-gray-500">Usage: /help [command]</div>291                </div>292 293                <!-- Token Management -->294                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">295                    <div class="flex items-center mb-4">296                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">297                            <i data-feather="key" class="text-primary"></i>298                        </div>299                        <h3 class="text-xl font-bold">/token</h3>300                    </div>301                    <p class="text-gray-400">Add your account token to activate commands.</p>302                    <div class="mt-2 text-xs text-gray-500">Usage: /token YOUR_TOKEN</div>303                </div>304 305                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">306                    <div class="flex items-center mb-4">307                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">308                            <i data-feather="trash" class="text-primary"></i>309                        </div>310                        <h3 class="text-xl font-bold">/deletetoken</h3>311                    </div>312                    <p class="text-gray-400">Remove your token from the system.</p>313                    <div class="mt-2 text-xs text-gray-500">Usage: /deletetoken</div>314                </div>315 316                <div class="command-card bg-gray-800 p-6 rounded-xl border border-gray-700 transition-all duration-300">317                    <div class="flex items-center mb-4">318                        <div class="bg-primary bg-opacity-20 p-2 rounded-lg mr-4">319                            <i data-feather="list" class="text-primary"></i>320                        </div>321                        <h3 class="text-xl font-bold">/tokenlist</h3>322                    </div>323                    <p class="text-gray-400">List all registered tokens (admin only).</p>324                    <div class="mt-2 text-xs text-gray-500">Usage: /tokenlist</div>325                </div>326            </div>327        </section>328<!-- Configuration Section -->329        <section class="bg-gray-800 rounded-xl p-6 mb-8 border border-gray-700">330            <h2 class="text-2xl font-bold mb-4 text-primary">Configuration Requise</h2>331            <div class="bg-gray-900 p-4 rounded-lg">332                <ul class="list-disc list-inside text-gray-300 space-y-2">333                    <li>Python 3.8+ installé</li>334                    <li>Bibliothèque discord.py installée (<code>pip install discord.py</code>)</li>335                    <li>Permissions admin sur le serveur Discord</li>336                    <li>Token valide du bot (obtenu sur <a href="https://discord.com/developers" class="text-primary hover:underline">Discord Developer Portal</a>)</li>337                </ul>338            </div>339        </section>340        <!-- Python Code Section -->341<section class="bg-gray-800 rounded-xl p-6 mb-12 border border-gray-700">342            <h2 class="text-2xl font-bold mb-6 text-primary">Advanced Moderation Implementation</h2>343            <div class="bg-gray-900 p-4 rounded-lg overflow-auto">344                <pre class="text-green-400 font-mono text-sm">345import discord346import asyncio347from datetime import datetime, timedelta348from discord.ext import commands349import os350import json351from datetime import datetime352 353intents = discord.Intents.all()354bot = commands.Bot(command_prefix="/", intents=intents, help_command=None)355 356# Token storage357tokens = {}358 359@bot.event360async def on_ready():361    print(f'Logged in as {bot.user}')362    await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="/help"))363 364@bot.command()365async def help(ctx, command: str = None):366    """Show all commands or help for specific command"""367    if command:368        cmd = bot.get_command(command.lower())369        if not cmd:370            return await ctx.send(f"Command {command} not found")371        embed = discord.Embed(372            title=f"/{cmd.name} Help",373            description=cmd.help,374            color=0x5865F2375        )376        return await ctx.send(embed=embed)377    378    embed = discord.Embed(title="Selfbot Commands", color=0x5865F2)379    embed.add_field(380        name="🔒 Moderation",381        value="""`/lock` - Lock current channel382`/unlock` - Unlock current channel383`/clear [amount]` - Delete messages (max 700)""",384        inline=False385    )386    387    embed.add_field(388        name="👤 User",389        value="""`/pdp [@user]` - Show profile picture390`/bannier [@user]` - Show user banner391`/bio [@user]` - Show user bio""",392        inline=False393    )394    395    embed.add_field(396        name="🔎 Utility", 397        value="`/snipe` - Show last deleted message",398        inline=False399    )400    401    embed.add_field(402        name="🔑 Token",403        value="""`/token [token]` - Add your token404`/deletetoken` - Remove your token405`/tokenlist` - List tokens (admin)""",406        inline=False407    )408    409    await ctx.send(embed=embed)410@bot.command()411@commands.has_permissions(ban_members=True)412async def ban(ctx, member: discord.Member, *, reason=None):413    """Ban a member with reason"""414    try:415        await member.ban(reason=reason)416        dm_message = f"""417🚨 You have been banned from **{ctx.guild.name}**418Reason: {reason if reason else "No reason provided"}419 420For appeals, create a ticket in #gestion-abus421"""422        await member.send(dm_message)423        await ctx.send(f"✅ {member.mention} has been banned | Reason: {reason}")424    except Exception as e:425        await ctx.send(f"❌ Failed to ban {member.mention}: {str(e)}")426 427@bot.command()428@commands.has_permissions(ban_members=True)429async def unban(ctx, member_id: int):430    """Unban a member"""431    try:432        banned_users = await ctx.guild.bans()433        member = discord.utils.get(banned_users, user__id=member_id)434        if member:435            await ctx.guild.unban(member.user)436            await ctx.send(f"✅ User with ID {member_id} has been unbanned")437        else:438            await ctx.send("❌ No banned user found with that ID")439    except Exception as e:440        await ctx.send(f"❌ Failed to unban user: {str(e)}")441 442@bot.command()443@commands.has_permissions(kick_members=True)444async def kick(ctx, member: discord.Member, *, reason=None):445    """Kick a member with reason"""446    try:447        await member.kick(reason=reason)448        dm_message = f"""449🚨 You have been kicked from **{ctx.guild.name}**450Reason: {reason if reason else "No reason provided"}451 452For appeals, create a ticket in #gestion-abus453"""454        await member.send(dm_message)455        await ctx.send(f"✅ {member.mention} has been kicked | Reason: {reason}")456    except Exception as e:457        await ctx.send(f"❌ Failed to kick {member.mention}: {str(e)}")458 459@bot.command()460@commands.has_permissions(manage_roles=True)461async def bl(ctx, member: discord.Member):462    """Blacklist a member"""463    blacklist_role = discord.utils.get(ctx.guild.roles, name="Blacklisted")464    if not blacklist_role:465        blacklist_role = await ctx.guild.create_role(name="Blacklisted")466    467    await member.add_roles(blacklist_role)468    await ctx.send(f"✅ {member.mention} has been blacklisted")469 470@bot.command()471@commands.has_permissions(manage_roles=True)472async def unbl(ctx, member: discord.Member):473    """Remove blacklist from member"""474    blacklist_role = discord.utils.get(ctx.guild.roles, name="Blacklisted")475    if blacklist_role in member.roles:476        await member.remove_roles(blacklist_role)477        await ctx.send(f"✅ {member.mention} has been removed from blacklist")478    else:479        await ctx.send(f"❌ {member.mention} is not blacklisted")480 481@bot.command()482@commands.has_permissions(manage_roles=True)483async def to(ctx, member: discord.Member, duration: str, *, reason=None):484    """Temporarily exclude member"""485    excluded_role = discord.utils.get(ctx.guild.roles, name="Excluded")486    if not excluded_role:487        excluded_role = await ctx.guild.create_role(name="Excluded")488    489    await member.add_roles(excluded_role)490    duration_msg = f"for {duration}" if duration else "indefinitely"491    dm_message = f"""492🚨 You have been excluded from **{ctx.guild.name}** {duration_msg}493Reason: {reason if reason else "No reason provided"}494 495For appeals, create a ticket in #gestion-abus496"""497    await member.send(dm_message)498    await ctx.send(f"✅ {member.mention} has been excluded {duration_msg} | Reason: {reason}")499 500@bot.command()501@commands.has_permissions(manage_roles=True)502async def unto(ctx, member: discord.Member):503    """Remove exclusion from member"""504    excluded_role = discord.utils.get(ctx.guild.roles, name="Excluded")505    if excluded_role in member.roles:506        await member.remove_roles(excluded_role)507        await ctx.send(f"✅ {member.mention} has been restored from exclusion")508    else:509        await ctx.send(f"❌ {member.mention} is not excluded")510 511@bot.command()512@commands.has_permissions(manage_roles=True)513async def tempmute(ctx, member: discord.Member, duration: str, *, reason=None):514    """Temporarily mute a member"""515    mute_role = discord.utils.get(ctx.guild.roles, name="Muted")516    if not mute_role:517        mute_role = await ctx.guild.create_role(name="Muted")518        for channel in ctx.guild.channels:519            await channel.set_permissions(mute_role, send_messages=False)520    521    await member.add_roles(mute_role)522    dm_message = f"""523🚨 You have been muted in **{ctx.guild.name}** for {duration}524Reason: {reason if reason else "No reason provided"}525 526For appeals, create a ticket in #gestion-abus527"""528    await member.send(dm_message)529    await ctx.send(f"✅ {member.mention} has been muted for {duration} | Reason: {reason}")530 531    # Schedule unmute532    if "min" in duration:533        mins = int(duration.replace("min", ""))534        await asyncio.sleep(mins * 60)535    elif "h" in duration:536        hours = int(duration.replace("h", ""))537        await asyncio.sleep(hours * 3600)538    elif "d" in duration:539        days = int(duration.replace("d", ""))540        await asyncio.sleep(days * 86400)541    542    await member.remove_roles(mute_role)543    await member.send(f"🔊 Your mute in **{ctx.guild.name}** has been lifted")544 545@bot.command()546@commands.has_permissions(manage_roles=True)547async def mute(ctx, member: discord.Member, *, reason=None):548    """Permanently mute a member"""549    mute_role = discord.utils.get(ctx.guild.roles, name="Muted")550    if not mute_role:551        mute_role = await ctx.guild.create_role(name="Muted")552        for channel in ctx.guild.channels:553            await channel.set_permissions(mute_role, send_messages=False)554    555    await member.add_roles(mute_role)556    dm_message = f"""557🚨 You have been permanently muted in **{ctx.guild.name}**558Reason: {reason if reason else "No reason provided"}559 560For appeals, create a ticket in #gestion-abus561"""562    await member.send(dm_message)563    await ctx.send(f"✅ {member.mention} has been permanently muted | Reason: {reason}")564 565@bot.command()566@commands.has_permissions(manage_roles=True)567async def unmute(ctx, member: discord.Member):568    """Unmute a member"""569    mute_role = discord.utils.get(ctx.guild.roles, name="Muted")570    if mute_role in member.roles:571        await member.remove_roles(mute_role)572        await member.send(f"🔊 Your mute in **{ctx.guild.name}** has been lifted")573        await ctx.send(f"✅ {member.mention} has been unmuted")574    else:575        await ctx.send(f"❌ {member.mention} is not muted")576 577@bot.command()578@commands.has_permissions(administrator=True)579async def role(ctx, role: discord.Role, *commands):580    """Assign commands to a role"""581    if not commands:582        return await ctx.send("❌ Please specify at least one command")583    584    authorized_commands = {585        'ban': 'ban_members',586        'unban': 'ban_members', 587        'kick': 'kick_members',588        'tempmute': 'manage_roles',589        'mute': 'manage_roles',590        'unmute': 'manage_roles',591        'bl': 'manage_roles',592        'unbl': 'manage_roles',593        'to': 'manage_roles',594        'unto': 'manage_roles'595    }596    597    invalid_commands = [cmd for cmd in commands if cmd not in authorized_commands]598    if invalid_commands:599        return await ctx.send(f"❌ Invalid commands: {', '.join(invalid_commands)}")600    601    # Store role permissions in database or JSON602    permissions = {603        str(role.id): list(commands)604    }605    with open('role_permissions.json', 'w') as f:606        json.dump(permissions, f)607    608    await ctx.send(f"✅ Role {role.mention} can now use: {', '.join(commands)}")609 610@bot.command()611@commands.has_permissions(administrator=True)612async def setlog(ctx, channel: discord.TextChannel):613    """Set moderation log channel"""614    with open('log_channel.json', 'w') as f:615        json.dump({'channel_id': channel.id}, f)616    await ctx.send(f"✅ Moderation logs will be sent to {channel.mention}")617 618@bot.command()619@commands.has_permissions(administrator=True)620async def temps(ctx, role: discord.Role, duration: str, *, reason: str):621    """Set punishment durations for roles"""622    punishment_durations = {623        str(role.id): {624            'duration': duration,625            'reason': reason626        }627    }628    with open('punishment_durations.json', 'w') as f:629        json.dump(punishment_durations, f)630    await ctx.send(f"✅ Role {role.mention} can now apply {duration} for {reason}")631 632@bot.command()633async def punie(ctx, member: discord.Member):634    """Punishment menu"""635    embed = discord.Embed(636        title="🚨 Menu Sanctions",637        description="Select appropriate punishment",638        color=0xFF0000639    )640    641    # Bottom left info642    embed.set_footer(643        text=f"{member.display_name} | {datetime.now().strftime('%Y-%m-%d %H:%M')}",644        icon_url=member.display_avatar.url645    )646    647    # Punishment options648    embed.add_field(649        name="**Insultes / propos offensants**",650        value="""• Insultes ...min651• Insulte grave ...min""",652        inline=False653    )654    655    embed.add_field(656        name="**Discrimination / harcèlement**",657        value="""• Racisme ...min658• Sexisme ...min659• Homophobie ...min660• Transphobie ...min661• Harcèlement ...min""",662        inline=False663    )664    665    embed.add_field(666        name="**Spam**",667        value="""• Spam ...min668• Spam sans stop""",669        inline=False670    )671    672    embed.add_field(673        name="**Pub MP/DM**",674        value="""• Pub serveur ...min675• Pub serveur sans stop ...min""",676        inline=False677    )678    679    embed.add_field(680        name="**NSFW / contenu inapproprié**",681        value="• Partage d'images/vidéos/liens MP/DM ...min",682        inline=False683    )684    685    await ctx.send(embed=embed)686@bot.command()687async def pdp(ctx, user: discord.Member = None):688    """Show user's profile picture"""689    user = user or ctx.author690    embed = discord.Embed(color=0x5865F2)691    embed.set_image(url=user.display_avatar.url)692    await ctx.send(embed=embed)693 694@bot.command()695async def bannier(ctx, user: discord.Member = None):696    """Show user's banner"""697    user = user or ctx.author698    user = await bot.fetch_user(user.id)699    if not user.banner:700        return await ctx.send("❌ User has no banner")701    embed = discord.Embed(color=0x5865F2)702    embed.set_image(url=user.banner.url)703    await ctx.send(embed=embed)704 705@bot.command()706async def bio(ctx, user: discord.Member = None):707    """Show user's bio"""708    user = user or ctx.author709    user = await bot.fetch_user(user.id)710    embed = discord.Embed(711        description=user.bio or "❌ No bio set",712        color=0x5865F2713    )714    await ctx.send(embed=embed)715 716@bot.command()717async def snipe(ctx):718    """Show last deleted message"""719    # Implementation would require message cache720    await ctx.send("Snipe command would show last deleted message here")721 722@bot.command()723async def token(ctx, token: str):724    """Add your Discord token"""725    if len(token) < 50:726        return await ctx.send("❌ Invalid token")727    728    tokens[str(ctx.author.id)] = {729        'token': token,730        'username': str(ctx.author),731        'timestamp': datetime.now().isoformat()732    }733    await ctx.send("✅ Token saved")734 735@bot.command() 736async def deletetoken(ctx):737    """Remove your token"""738    if str(ctx.author.id) in tokens:739        del tokens[str(ctx.author.id)]740        await ctx.send("✅ Token removed")741    else:742        await ctx.send("❌ No token found")743 744@bot.command()745@commands.is_owner()746async def tokenlist(ctx):747    """List all tokens (owner only)"""748    if not tokens:749        return await ctx.send("No tokens stored")750    751    embed = discord.Embed(title="Stored Tokens", color=0x5865F2)752    for user_id, data in tokens.items():753        embed.add_field(754            name=data['username'],755            value=f"Added: {data['timestamp']}\nToken: ||{data['token'][:5]}...||",756            inline=False757        )758    await ctx.send(embed=embed)759 760bot.run("YOUR_BOT_TOKEN")761</pre>762            </div>763            <div class="mt-4 text-gray-400">764                <p class="mb-2">1. Replace <code>YOUR_BOT_TOKEN</code> with your Discord token</p>765                <p class="mb-2">2. Use <code>/token YOUR_TOKEN</code> to activate selfbot features</p>766                <p>⚠️ Keep your token secure and don't share it</p>767            </div>768</section>769<!-- Footer -->770        <footer class="text-center text-gray-400">771            <div class="flex justify-center space-x-6 mb-6">772                <a href="#" class="hover:text-primary transition-colors"><i data-feather="github"></i></a>773                <a href="#" class="hover:text-primary transition-colors"><i data-feather="twitter"></i></a>774                <a href="#" class="hover:text-primary transition-colors"><i data-feather="discord"></i></a>775            </div>776            <p>© 2023 Discord Power Tools Bot. All rights reserved.</p>777            <p class="mt-2 text-sm">Replace YOUR_CLIENT_ID with your bot's actual client ID from the Discord Developer Portal</p>778            <div class="mt-8 bg-gray-800 p-6 rounded-xl border border-gray-700">779                <h3 class="text-xl font-bold mb-4 text-primary">Selfbot Usage Guide</h3>780                <ol class="list-decimal list-inside text-gray-300 space-y-2">781                    <li>Download the selfbot code</li>782                    <li>Install requirements: <code>pip install discord.py</code></li>783                    <li>Add your token with <code>/token YOUR_TOKEN</code></li>784                    <li>Use commands like <code>/lock</code>, <code>/pdp</code>, etc.</li>785                    <li>For admin commands, set your ID in the code</li>786                </ol>787                <div class="mt-4 p-4 bg-gray-900 rounded-lg">788                    <code class="text-green-400">bot.run("YOUR_USER_TOKEN")</code>789                </div>790                <p class="mt-4 text-sm text-gray-400">⚠️ Selfbots violate Discord's TOS. Use at your own risk!</p>791            </div>792</footer>793    </div>794 795    <script>796        feather.replace();797        798        // Simple animation for command cards799        document.querySelectorAll('.command-card').forEach((card, index) => {800            card.style.transitionDelay = `${index * 50}ms`;801        });802 803        // Background animation804        let hue = 240;805        function updateBackground() {806            hue = (hue + 0.5) % 360;807            document.body.style.background = `linear-gradient(135deg, hsl(${hue}, 80%, 10%) 0%, hsl(${hue + 60}, 70%, 12%) 100%)`;808            requestAnimationFrame(updateBackground);809        }810        updateBackground();811    </script>812</body>813</html>814