Fixed autocompletes #150

This commit is contained in:
2022-12-30 12:18:56 +01:00
parent 476db0ed33
commit 7646335d03
4 changed files with 46 additions and 24 deletions

View File

@@ -93,6 +93,11 @@ class LevelGroup(DiscordCommandABC):
self._logger.error(__name__, f'Level seeding failed', e)
await self._message_service.send_channel_message(channel, self._t.transform('modules.level.seeding_failed'))
async def _level_auto_complete(self, interaction: discord.Interaction, current: str) -> TList[app_commands.Choice[str]]:
server = self._servers.get_server_by_discord_id(interaction.guild.id)
levels = self._levels.get_levels_by_server_id(server.server_id).select(lambda l: l.name)
return [app_commands.Choice(name=level, value=level) for level in self._client_utils.get_auto_complete_list(levels, current)]
@commands.hybrid_group()
@commands.guild_only()
async def level(self, ctx: Context):
@@ -240,9 +245,7 @@ class LevelGroup(DiscordCommandABC):
@edit.autocomplete('level')
async def edit_autocomplete(self, interaction: discord.Interaction, current: str) -> TList[app_commands.Choice[str]]:
server = self._servers.get_server_by_discord_id(interaction.guild.id)
levels = self._levels.get_levels_by_server_id(server.server_id).select(lambda l: l.name)
return [app_commands.Choice(name=level, value=level) for level in levels]
return await self._level_auto_complete(interaction, current)
@edit.autocomplete('color')
async def edit_color_autocomplete(self, interaction: discord.Interaction, current: str) -> TList[app_commands.Choice[str]]:
@@ -283,9 +286,7 @@ class LevelGroup(DiscordCommandABC):
@remove.autocomplete('level')
async def remove_autocomplete(self, interaction: discord.Interaction, current: str) -> TList[app_commands.Choice[str]]:
server = self._servers.get_server_by_discord_id(interaction.guild.id)
levels = self._levels.get_levels_by_server_id(server.server_id).select(lambda l: l.name)
return [app_commands.Choice(name=level, value=level) for level in levels]
return await self._level_auto_complete(interaction, current)
@level.command()
@commands.guild_only()
@@ -392,6 +393,4 @@ class LevelGroup(DiscordCommandABC):
@set.autocomplete('level')
async def set_autocomplete(self, interaction: discord.Interaction, current: str) -> TList[app_commands.Choice[str]]:
server = self._servers.get_server_by_discord_id(interaction.guild.id)
levels = self._levels.get_levels_by_server_id(server.server_id).select(lambda l: l.name)
return [app_commands.Choice(name=level, value=level) for level in levels]
return await self._level_auto_complete(interaction, current)