Fix rolegiver group caching on group add

This commit is contained in:
Zeva Rose 2023-09-14 13:09:29 -06:00
parent fb3f63dff3
commit 9267dac97d
2 changed files with 12 additions and 3 deletions

View file

@ -96,6 +96,12 @@ class RolegiverCog(Extension):
await ctx.send(f"Rolegiver group {group} created!") await ctx.send(f"Rolegiver group {group} created!")
if ctx.guild.id not in self._group_cache:
self._group_cache[ctx.guild.id] = {rolegiver.group: {}}
elif rolegiver.group not in self._group_cache[ctx.guild.id]:
self._group_cache[ctx.guild.id][rolegiver.group] = {}
@rg_group.subcommand( @rg_group.subcommand(
sub_cmd_name="delete", sub_cmd_description="DDelete a rolegiver group" sub_cmd_name="delete", sub_cmd_description="DDelete a rolegiver group"
) )
@ -113,6 +119,7 @@ class RolegiverCog(Extension):
): ):
await rolegiver.delete() await rolegiver.delete()
await ctx.send(f"Rolegiver group {group} deleted!") await ctx.send(f"Rolegiver group {group} deleted!")
del self._group_cache[ctx.guild.id][rolegiver.group]
else: else:
await ctx.send(f"Rolegiver group {group} does not exist!", ephemeral=True) await ctx.send(f"Rolegiver group {group} does not exist!", ephemeral=True)
@ -304,7 +311,9 @@ class RolegiverCog(Extension):
required=False, required=False,
autocomplete=True, autocomplete=True,
) )
async def _rolegiver_list(self, ctx: InteractionContext, group: str = None) -> None: async def _rolegiver_list(
self, ctx: InteractionContext, group: str = "Default"
) -> None:
setting = await Rolegiver.find_one( setting = await Rolegiver.find_one(
Rolegiver.guild == ctx.guild.id, Rolegiver.group == group Rolegiver.guild == ctx.guild.id, Rolegiver.group == group
) )
@ -553,7 +562,7 @@ class RolegiverCog(Extension):
@_rolegiver_remove.autocomplete("group") @_rolegiver_remove.autocomplete("group")
@_rolegiver_list.autocomplete("group") @_rolegiver_list.autocomplete("group")
async def _autocomplete_group(self, ctx: AutocompleteContext): async def _autocomplete_group(self, ctx: AutocompleteContext):
groups = list(self._group_cache.get(ctx.guild.id).keys()) groups = list(self._group_cache.get(ctx.guild.id, {}).keys())
if not groups: if not groups:
rolegivers = await Rolegiver.find(Rolegiver.guild == ctx.guild.id).to_list() rolegivers = await Rolegiver.find(Rolegiver.guild == ctx.guild.id).to_list()
groups = [r.group for r in rolegivers] groups = [r.group for r in rolegivers]

View file

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "jarvis" name = "jarvis"
version = "2.5.0" version = "2.5.1"
description = "JARVIS admin bot" description = "JARVIS admin bot"
authors = ["Zevaryx <zevaryx@gmail.com>"] authors = ["Zevaryx <zevaryx@gmail.com>"]