raidha/undefined
0
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 