From 0f18f3a56c292cfdda71a91cd036c30c0f08b33f Mon Sep 17 00:00:00 2001 From: shnimlz Date: Sat, 20 Sep 2025 03:02:10 -0500 Subject: [PATCH] Eliminacion de slashcommand automatico en caso de comandos redisuales --- src/core/api/discordAPI.ts | 64 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/src/core/api/discordAPI.ts b/src/core/api/discordAPI.ts index 5717ab2..fc10b98 100644 --- a/src/core/api/discordAPI.ts +++ b/src/core/api/discordAPI.ts @@ -23,8 +23,25 @@ export async function registeringCommands(): Promise { const rest = new REST().setToken(process.env.TOKEN ?? ""); try { - console.log(`🚀 Registrando ${commandsToRegister.length} comandos slash...`); + console.log(`🧹 Limpiando comandos antiguos/residuales...`); + // Primero eliminamos TODOS los comandos existentes + await rest.put( + Routes.applicationGuildCommands( + process.env.CLIENT!, + process.env.guildTest! + ), + { body: [] } // Array vacío elimina todos los comandos + ); + + console.log(`✅ Comandos antiguos eliminados correctamente.`); + + // Pequeña pausa para asegurar que Discord procese la eliminación + await new Promise(resolve => setTimeout(resolve, 1000)); + + console.log(`🚀 Registrando ${commandsToRegister.length} comandos slash nuevos...`); + + // Ahora registramos los comandos actuales const data: any = await rest.put( Routes.applicationGuildCommands( process.env.CLIENT!, @@ -34,8 +51,51 @@ export async function registeringCommands(): Promise { ); console.log(`✅ ${data.length} comandos registrados correctamente.`); + console.log(`🎉 Proceso completado: comandos antiguos limpiados y nuevos registrados.`); } catch (error) { - console.error("❌ Error registrando comandos:", error); + console.error("❌ Error en el proceso de comandos:", error); } } +/** + * Función específica para eliminar TODOS los comandos slash (útil para limpieza) + */ +export async function clearAllCommands(): Promise { + const rest = new REST().setToken(process.env.TOKEN ?? ""); + + try { + console.log(`🧹 Eliminando TODOS los comandos slash...`); + + await rest.put( + Routes.applicationGuildCommands( + process.env.CLIENT!, + process.env.guildTest! + ), + { body: [] } + ); + + console.log(`✅ Todos los comandos han sido eliminados correctamente.`); + } catch (error) { + console.error("❌ Error eliminando comandos:", error); + } +} + +/** + * Función para limpiar comandos globales (si los hay) + */ +export async function clearGlobalCommands(): Promise { + const rest = new REST().setToken(process.env.TOKEN ?? ""); + + try { + console.log(`🌍 Eliminando comandos globales...`); + + await rest.put( + Routes.applicationCommands(process.env.CLIENT!), + { body: [] } + ); + + console.log(`✅ Comandos globales eliminados correctamente.`); + } catch (error) { + console.error("❌ Error eliminando comandos globales:", error); + } +}