|
1 | 1 | """User management""" |
2 | 2 |
|
3 | 3 | import logging |
| 4 | +import os |
| 5 | +import sys |
4 | 6 |
|
5 | 7 | import discord |
6 | 8 | from discord import Role, app_commands |
|
13 | 15 | from database.dto.users import User |
14 | 16 | from database.error_handling import is_unique_violation |
15 | 17 | from utils.kd_roles import get_kd_roles |
| 18 | +from utils.register import register |
16 | 19 | from utils.role_management import RoleManagement |
17 | 20 |
|
18 | 21 |
|
| 22 | +class RegisterModal(discord.ui.Modal, title="Register your EA account"): |
| 23 | + def __init__(self, bot: KDRBot): |
| 24 | + self.bot = bot |
| 25 | + super().__init__() |
| 26 | + |
| 27 | + username = discord.ui.TextInput( |
| 28 | + label="What is your EA id", |
| 29 | + style=discord.TextStyle.short, |
| 30 | + max_length=500, |
| 31 | + placeholder="test", |
| 32 | + required=True, |
| 33 | + ) |
| 34 | + |
| 35 | + async def on_submit(self, interaction: discord.Interaction[KDRBot]) -> None: |
| 36 | + await interaction.response.defer() |
| 37 | + await register(self.bot, interaction, self.username.value) |
| 38 | + |
| 39 | + |
| 40 | +class RegisterView(discord.ui.View): |
| 41 | + def __init__(self, bot: KDRBot): |
| 42 | + self.bot = bot |
| 43 | + super().__init__(timeout=None) |
| 44 | + |
| 45 | + @discord.ui.button( |
| 46 | + label="Register", |
| 47 | + custom_id="register_user", |
| 48 | + style=discord.ButtonStyle.primary, |
| 49 | + ) |
| 50 | + async def verify_callback(self, interaction: discord.Interaction, button): |
| 51 | + await interaction.response.send_modal(RegisterModal(self.bot)) |
| 52 | + |
| 53 | + |
19 | 54 | class Admin(commands.Cog): |
20 | 55 | def __init__(self, bot: KDRBot): |
21 | 56 | self.bot = bot |
@@ -170,7 +205,25 @@ async def remove_kd_role( |
170 | 205 | await session.commit() |
171 | 206 | await interaction.followup.send("KD-role has been removed", ephemeral=True) |
172 | 207 |
|
| 208 | + kdroles_group = app_commands.Group( |
| 209 | + name="generate", description="Generate a message", parent=group |
| 210 | + ) |
| 211 | + |
| 212 | + @kdroles_group.command(name="register", description="Generate the register button") |
| 213 | + @app_commands.guild_only() |
| 214 | + @app_commands.default_permissions(administrator=True) |
| 215 | + @app_commands.checks.has_permissions(administrator=True) |
| 216 | + async def generate_register(self, interaction: discord.Interaction) -> None: |
| 217 | + """Generate the register button""" |
| 218 | + embed = discord.Embed( |
| 219 | + title="Register with your EA account to get your KD-role", |
| 220 | + ) |
| 221 | + await interaction.response.send_message( |
| 222 | + embed=embed, view=RegisterView(self.bot) |
| 223 | + ) |
| 224 | + |
173 | 225 |
|
174 | 226 | async def setup(bot: KDRBot) -> None: |
175 | 227 | """Setup the cog within discord.py lib""" |
| 228 | + bot.add_view(RegisterView(bot)) |
176 | 229 | await bot.add_cog(Admin(bot)) |
0 commit comments