feat: add admin commands for managing guild and global command, testing..
This commit is contained in:
@@ -10,7 +10,7 @@ export async function registeringCommands(): Promise<void> {
|
||||
const commandsToRegister: any[] = [];
|
||||
|
||||
// Recorremos la Collection que ya cargó loadCommands()
|
||||
for (const [name, cmd] of commands) {
|
||||
for (const [_name, cmd] of commands) {
|
||||
if (cmd.type === "slash") {
|
||||
commandsToRegister.push({
|
||||
name: cmd.name,
|
||||
@@ -19,12 +19,12 @@ export async function registeringCommands(): Promise<void> {
|
||||
options: cmd.options ?? []
|
||||
});
|
||||
|
||||
console.log(`✅ Preparado para registrar: ${cmd.name}`);
|
||||
console.log(`✅ Preparado para registrar (guild): ${cmd.name}`);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
console.log(`🧹 Limpiando comandos antiguos/residuales...`);
|
||||
console.log(`🧹 Limpiando comandos antiguos/residuales (guild)...`);
|
||||
|
||||
// Primero eliminamos TODOS los comandos existentes
|
||||
await rest.put(
|
||||
@@ -35,12 +35,11 @@ export async function registeringCommands(): Promise<void> {
|
||||
{ body: [] } // Array vacío elimina todos los comandos
|
||||
);
|
||||
|
||||
console.log(`✅ Comandos antiguos eliminados correctamente.`);
|
||||
|
||||
console.log(`✅ Comandos antiguos de guild eliminados.`);
|
||||
// Pequeña pausa para asegurar que Discord procese la eliminación
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
await new Promise(r => setTimeout(r, 1000));
|
||||
|
||||
console.log(`🚀 Registrando ${commandsToRegister.length} comandos slash nuevos...`);
|
||||
console.log(`🚀 Registrando ${commandsToRegister.length} comandos slash nuevos (guild)...`);
|
||||
|
||||
// Ahora registramos los comandos actuales
|
||||
const data: any = await rest.put(
|
||||
@@ -51,20 +50,47 @@ export async function registeringCommands(): Promise<void> {
|
||||
{ body: commandsToRegister }
|
||||
);
|
||||
|
||||
console.log(`✅ ${data.length} comandos registrados correctamente.`);
|
||||
console.log(`🎉 Proceso completado: comandos antiguos limpiados y nuevos registrados.`);
|
||||
console.log(`✅ ${data.length} comandos de guild registrados.`);
|
||||
} catch (error) {
|
||||
console.error("❌ Error en el proceso de comandos:", error);
|
||||
console.error("❌ Error en el proceso de comandos de guild:", error);
|
||||
}
|
||||
}
|
||||
|
||||
export async function registeringGlobalCommands(): Promise<void> {
|
||||
const commandsToRegister: any[] = [];
|
||||
for (const [_name, cmd] of commands) {
|
||||
if (cmd.type === "slash") {
|
||||
commandsToRegister.push({
|
||||
name: cmd.name,
|
||||
description: cmd.description ?? "Sin descripción",
|
||||
type: 1,
|
||||
options: cmd.options ?? []
|
||||
});
|
||||
console.log(`🌍 Preparado para registrar global: ${cmd.name}`);
|
||||
}
|
||||
}
|
||||
try {
|
||||
console.log(`🧹 Limpiando comandos globales existentes...`);
|
||||
await rest.put(
|
||||
Routes.applicationCommands(process.env.CLIENT!),
|
||||
{ body: [] }
|
||||
);
|
||||
console.log(`✅ Comandos globales previos eliminados.`);
|
||||
await new Promise(r => setTimeout(r, 1500));
|
||||
console.log(`🚀 Registrando ${commandsToRegister.length} comandos globales... (propagación puede tardar hasta 1h)`);
|
||||
const data: any = await rest.put(
|
||||
Routes.applicationCommands(process.env.CLIENT!),
|
||||
{ body: commandsToRegister }
|
||||
);
|
||||
console.log(`✅ ${data.length} comandos globales enviados a la API.`);
|
||||
} catch (error) {
|
||||
console.error("❌ Error registrando comandos globales:", error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Función específica para eliminar TODOS los comandos slash (útil para limpieza)
|
||||
*/
|
||||
export async function clearAllCommands(): Promise<void> {
|
||||
try {
|
||||
console.log(`🧹 Eliminando TODOS los comandos slash...`);
|
||||
|
||||
console.log(`🧹 Eliminando TODOS los comandos slash (guild)...`);
|
||||
await rest.put(
|
||||
Routes.applicationGuildCommands(
|
||||
process.env.CLIENT!,
|
||||
@@ -72,28 +98,21 @@ export async function clearAllCommands(): Promise<void> {
|
||||
),
|
||||
{ body: [] }
|
||||
);
|
||||
|
||||
console.log(`✅ Todos los comandos han sido eliminados correctamente.`);
|
||||
console.log(`✅ Todos los comandos de guild eliminados.`);
|
||||
} catch (error) {
|
||||
console.error("❌ Error eliminando comandos:", error);
|
||||
console.error("❌ Error eliminando comandos de guild:", error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Función para limpiar comandos globales (si los hay)
|
||||
*/
|
||||
export async function clearGlobalCommands(): Promise<void> {
|
||||
try {
|
||||
console.log(`🌍 Eliminando comandos globales...`);
|
||||
|
||||
await rest.put(
|
||||
Routes.applicationCommands(process.env.CLIENT!),
|
||||
{ body: [] }
|
||||
);
|
||||
|
||||
console.log(`✅ Comandos globales eliminados correctamente.`);
|
||||
console.log(`✅ Comandos globales eliminados.`);
|
||||
} catch (error) {
|
||||
console.error("❌ Error eliminando comandos globales:", error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user