insert2-cogs/rolebuttons.py
2024-08-09 15:14:33 -04:00

50 lines
No EOL
2 KiB
Python

import nextcord
from nextcord.ext import commands
from nextcord import TextInputStyle
from random import randint
import aiosqlite as sqlite3
import aiohttp
from urllib.parse import urlparse
import os
class RoleView(nextcord.ui.View):
def __init__(self,bot):
super().__init__(timeout=None)
self.bot = bot
#res = await self.bot.cur.execute(f"SELECT roleid FROM rolebutton WHERE serverid = {self.bot.roleguild.id}")
button = nextcord.ui.Button(label="Test", style=nextcord.ButtonStyle.gray, custom_id="rolebutton:821095192831852554")
button.callback = self.buttoncallback
self.add_item(button)
button = nextcord.ui.Button(label="Test 2", style=nextcord.ButtonStyle.gray, custom_id="rolebutton:1058708072064884736")
button.callback = self.buttoncallback
self.add_item(button)
async def buttoncallback(self, interaction: nextcord.Interaction) -> None:
role = int(interaction.data[custom_id].split(":")[1])
if role in interaction.user.roles:
await interaction.user.remove_roles(role, reason=f"{interaction.user.display_name} used role button")
await interaction.response.send_message(f"Removed <@{role}> from you!", ephemeral=True, allowed_mentions=nextcord.AllowedMentions.none)
else:
await interaction.user.add_roles(role, reason=f"{interaction.user.display_name} used role button")
await interaction.response.send_message(f"Added <@{role}> to you!", ephemeral=True, allowed_mentions=nextcord.AllowedMentions.none)
return
class rolebutton(commands.Cog):
def __init__(self, bot: commands.Bot):
self.bot = bot
bot.add_view(RoleView(bot))
@nextcord.slash_command(
name="roletest",
description="check if the buttons work",
)
async def roletest(self, interaction: nextcord.Interaction):
self.bot.roleguild = interaction.guild
await interaction.response.send_message(view=RoleView(self.bot))
def setup(bot: commands.Bot):
bot.add_cog(rolebutton(bot))