Add commands to edit username length and category pad.

This commit is contained in:
alwayscompiling
2022-11-15 15:48:17 -05:00
parent b4f5ddc822
commit dd73e9b472
2 changed files with 80 additions and 10 deletions
+56 -9
View File
@@ -2,8 +2,10 @@
Commands for managing the Guild's settings.
"""
from nextcord.ext import commands
from typing import Optional
import nextcord
from nextcord.ext import commands
from highscores import highscores_data # pylint: disable=import-error
@@ -28,7 +30,7 @@ class SettingsManagementCog(commands.Cog, name="Settings Management"):
async def highscore(
self,
interaction: nextcord.Interaction,
channel: nextcord.abc.GuildChannel = nextcord.SlashOption(
channel: Optional[nextcord.abc.GuildChannel] = nextcord.SlashOption(
description="Channel to register",
required=False,
channel_types=[nextcord.ChannelType.text],
@@ -55,7 +57,7 @@ class SettingsManagementCog(commands.Cog, name="Settings Management"):
async def submission(
self,
interaction: nextcord.Interaction,
channel: nextcord.abc.GuildChannel = nextcord.SlashOption(
channel: Optional[nextcord.abc.GuildChannel] = nextcord.SlashOption(
description="Channel to register",
required=False,
channel_types=[nextcord.ChannelType.text],
@@ -82,7 +84,7 @@ class SettingsManagementCog(commands.Cog, name="Settings Management"):
async def verify(
self,
interaction: nextcord.Interaction,
channel: nextcord.abc.GuildChannel = nextcord.SlashOption(
channel: Optional[nextcord.abc.GuildChannel] = nextcord.SlashOption(
description="Channel to register",
required=False,
channel_types=[nextcord.ChannelType.text],
@@ -105,8 +107,53 @@ class SettingsManagementCog(commands.Cog, name="Settings Management"):
guild.verification_channel = channel_id
highscores_data.save_guild_data(guild)
# @nextcord.slash_command()
# async def set(self):
# """
# Parent slash command for setting settings. Never called.
# """
@nextcord.slash_command(default_member_permissions=nextcord.Permissions(administrator=True))
async def set(self, interaction: nextcord.Interaction):
"""
Parent slash command for setting settings. Never called.
"""
@set.subcommand(
description="Set character length for a category. Can cut off usernames if is too short. Affects all categories."
)
async def category_pad_length(
self,
interaction: nextcord.Interaction,
length: Optional[int] = nextcord.SlashOption(
description="Number of characters.", required=True, default=25
),
) -> None:
"""
Changes guild's category pad length.
Args:
interaction (nextcord.Interaction): Interaction that invoked the command
length (int): Number of characters. Is SlashOption. Defaults to 25.
"""
guild = highscores_data.get_guild(interaction.guild_id)
guild.category_pad_length = length
highscores_data.save_guild_data(guild)
await interaction.response.send_message(
f"Category pad length set to {length}", ephemeral=True
)
@set.subcommand(description="Set username length. Limits all submissions to this length.")
async def username_length(
self,
interaction: nextcord.Interaction,
length: Optional[int] = nextcord.SlashOption(
description="Number of characters.", required=True, default=12
),
) -> None:
"""
Changes guild's username length limit.
Args:
interaction (nextcord.Interaction): Interaction that invoked the command
length (int): Number of charactesr. Is SlashOption. Defaults to 12.
"""
guild = highscores_data.get_guild(interaction.guild_id)
guild.username_length = length
highscores_data.save_guild_data(guild)
await interaction.response.send_message(f"Username length set to {length}", ephemeral=True)