Skip to content

Latest commit

 

History

History
48 lines (35 loc) · 2.77 KB

API.md

File metadata and controls

48 lines (35 loc) · 2.77 KB

🔌 Especificación Técnica y API — AdminTools

GitHub Ecosistema

📌 Resumen Arquitectónico

Panel gráfico por pestañas para Game Masters y administradores de servidores 3.3.5a (TrinityCore / JainaCore). Intercepta y emite comandos del servidor mediante SendChatMessage en el canal SAY.

  • Rol en el Ecosistema: Módulo Oficial #20 — Panel de Administración & Game Master
  • Archivo Principal TOC: AdminTools.toc
  • Compatibilidad del Motor: World of Warcraft 3.3.5a (Build 12340)

⌨️ Comandos de Consola (Slash Commands)

  • /admin: Alterna la visibilidad del marco principal. Si se acompaña de argumentos (/admin .tele dalaran), despacha el comando directamente.
  • /adt: Alias corto idéntico a /admin.
  • /wpadm: Prefijo oficial de administración de Project Jaina.
  • /wpgm: Prefijo oficial para Game Masters de Project Jaina.
  • /admintools: Comando largo alternativo.

🔧 Funciones Internas Clave

RunCmd(cmd)

  • Parámetros: cmd (string) — Comando a ejecutar.
  • Descripción: Sanea la cadena de entrada, añade el punto inicial . si no está presente, limita la longitud a 255 caracteres y despacha mediante SendChatMessage(cmd, "SAY"). Emite telemetría local a DEFAULT_CHAT_FRAME si AdminToolsDB.echo ~= false.

ConfirmCmd(cmd)

  • Parámetros: cmd (string) — Comando crítico.
  • Descripción: Muestra un diálogo de confirmación StaticPopupDialogs["ADMINTOOLS_CONFIRM"] antes de ejecutar comandos destructivos (.server restart, .server shutdown).

BuildMenu(globalName, dataTable)

  • Parámetros: globalName (string), dataTable (table).
  • Descripción: Genera un menú desplegable jerárquico multinivel utilizando UIDropDownMenuTemplate de Blizzard para categorías como monturas, mazmorras y bandas.

RefreshCustom()

  • Descripción: Reconstruye dinámicamente los botones definidos por el usuario en la pestaña Custom a partir de la tabla persistente AdminToolsDB.custom.

💾 Persistencia de Datos (SavedVariables)

  • AdminToolsDB: Tabla global guardada en disco por cuenta:
    • AdminToolsDB.pos: Posición anclada de la ventana (point, relativePoint, x, y).
    • AdminToolsDB.tab: Última pestaña visualizada (Tele, Travel, Self, Char, Party, Summon, Server, Custom).
    • AdminToolsDB.echo: Booleano para activar o silenciar el eco local en el chat.
    • AdminToolsDB.custom: Lista de objetos { label = "Nombre", cmd = "Comando" }.