mirror of
https://github.com/UiO-Gaming/mustafa.git
synced 2026-11-05 13:56:48 +01:00
clean up leftover guild commands in prod and warn about duplicates in dev
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5e6ed4d6cc
commit
e92582a23d
2 files changed
+17
-3
No files matched your search
@@ -14,6 +14,8 @@ Merk at konfigurasjonsfilen har felt for bl.a. databasekobling. Disse er ikke p
|
|||||||
|
|
||||||
`config_mode` bestemmer hvor slash-kommandoene synkroniseres. Med `dev` synkroniseres de bare til serveren i `dev_guild`, der de dukker opp med en gang. Med `prod` synkroniseres de globalt.
|
`config_mode` bestemmer hvor slash-kommandoene synkroniseres. Med `dev` synkroniseres de bare til serveren i `dev_guild`, der de dukker opp med en gang. Med `prod` synkroniseres de globalt.
|
||||||
|
|
||||||
|
Bruk en egen botbruker når du utvikler lokalt. Kjører du `dev` med samme token som produksjonsbotten, får serveren i `dev_guild` både de globale kommandoene og kopiene, og alle kommandoer vises to ganger. Botten logger en advarsel når det skjer. I `prod` fjernes kommandoer som er igjen i `dev_guild` fra tidligere `dev`-kjøringer automatisk.
|
||||||
|
|
||||||
### Valgfrie funksjoner
|
### Valgfrie funksjoner
|
||||||
|
|
||||||
Mangler et felt, skrus funksjonene som trenger det av når botten starter:
|
Mangler et felt, skrus funksjonene som trenger det av når botten starter:
|
||||||
|
|||||||
+15
-3
@@ -130,12 +130,24 @@ class Bot(commands.Bot):
|
|||||||
name = file[:-3]
|
name = file[:-3]
|
||||||
await bot.load_extension(f"cogs.{name}")
|
await bot.load_extension(f"cogs.{name}")
|
||||||
|
|
||||||
# Sync slash commands
|
# Sync slash commands. A sync only replaces the commands in its own scope, so commands left
|
||||||
|
# in the other scope (global or guild) from running in the other mode show up as duplicates
|
||||||
|
guild = discord.Object(id=self.guild_id)
|
||||||
if self.config_mode == "prod":
|
if self.config_mode == "prod":
|
||||||
await self.tree.sync(guild=None)
|
await self.tree.sync(guild=None)
|
||||||
|
try:
|
||||||
|
self.tree.clear_commands(guild=guild)
|
||||||
|
await self.tree.sync(guild=guild)
|
||||||
|
except discord.HTTPException as e:
|
||||||
|
self.logger.warning(f"Could not remove leftover guild commands in {self.guild_id}: {e}")
|
||||||
else:
|
else:
|
||||||
self.tree.copy_global_to(guild=discord.Object(id=self.guild_id))
|
self.tree.copy_global_to(guild=guild)
|
||||||
await self.tree.sync(guild=discord.Object(id=self.guild_id))
|
await self.tree.sync(guild=guild)
|
||||||
|
if global_commands := await self.tree.fetch_commands():
|
||||||
|
self.logger.warning(
|
||||||
|
f"This bot application also has {len(global_commands)} global slash commands, which show up "
|
||||||
|
+ "twice in the dev guild. Use a separate bot application for development, see the README"
|
||||||
|
)
|
||||||
|
|
||||||
async def close(self):
|
async def close(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in new issue
Block a user