Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
2.2 kB
5
Indexable
Never
import json
import discord
from discord.ext import commands
import requests

# Load the list of verified users from users.json file
with open("users.json", "r") as f:
    verified_users = json.load(f)

intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix='/', intents=intents)


@bot.command()
async def sync(ctx) -> None:
  cmds = await ctx.bot.tree.sync()
  await ctx.send(f"Synced {len(cmds)} commands")

# Define a slash command for verification
@bot.slash_command(name="verify", description="Verify your account")
async def verify(ctx: discord.SlashContext):
    # Check if the user is an admin
    if not ctx.author.guild_permissions.administrator:
        await ctx.send("Only admins can use this command.")
        return

    # Create an embedded message with a button to verify
    embed = discord.Embed(
        title="Verification",
        description="Click the button to verify your account.",
        color=0x00ff00,
    )
    verify_button = discord.ui.Button(
        label="Verify",
        custom_id="verify_button",
        style=discord.ButtonStyle.green,
    )
    view = discord.ui.View()
    view.add_item(verify_button)
    await ctx.send(embed=embed, view=view)

    # Wait for the user to click the verify button
    interaction = await bot.wait_for(
        "button_click", check=lambda i: i.custom_id == "verify_button"
    )

    # Check if the user has already been verified
    user_id = str(interaction.user.id)
    if user_id in verified_users["uid"]:
        await interaction.response.send_message("You are already verified.")
        return

    # Store the user's information in the users.json file
    verified_users["username"].append(str(interaction.user))
    verified_users["uid"].append(user_id)
    with open("users.json", "w") as f:
        json.dump(verified_users, f, indent=4)

    # Grant the user the "verified" role
    role = discord.utils.get(ctx.guild.roles, name="verified")
    await interaction.user.add_roles(role)

    # Send a confirmation message to the user
    await interaction.response.send_message("You have been verified!")

# Run the bot
bot.run("token")