Documento técnico de arquitectura de software y protocolo de red para desarrolladores y addons integrados en el ecosistema Project Jaina.
El addon expone un único namespace global en el entorno Lua del cliente:
ProjectJaina_Companion = {
Config = {
Version = "1.0.1",
AnnounceChannel = "GROUP", -- "GROUP" | "PARTY" | "SAY" | ""
Debug = false,
EcosystemAddons = { ... },
AddonPrefix = "WP_COMP",
}
}- Prefijo:
WP_COMP - Registro: Se realiza defensivamente mediante:
if RegisterAddonMessagePrefix then RegisterAddonMessagePrefix("WP_COMP") end
Los paquetes viajan a través de los canales protegidos RAID o PARTY invocando:
SendAddonMessage("WP_COMP", payload, channel)Estructura del Payload:
WP_ADDONS:<addon_label_1>,<addon_label_2>,...|<GAME_MODE>
Parámetros:
addon_label_n: Etiquetas de addons detectados localmente (LoreHUD,BattlePass,Companion,GameModes,RaidSuite,VisualShop).GAME_MODE: Modalidad del jugador (NORMAL,HARDCORE,IRONMAN,SLOW_X1).
Ejemplos de Payload:
- Jugador con todo el ecosistema en Hardcore:
Longitud: 77 bytes (Consumo de buffer: 30% del límite de 255 bytes).
WP_ADDONS:BattlePass,Companion,GameModes,LoreHUD,RaidSuite,VisualShop|HARDCORE - Jugador únicamente con Companion en Reto x1:
Longitud: 27 bytes.
WP_ADDONS:Companion|SLOW_X1
ProjectJaina_Companion escucha pasivamente los prefijos de red de otros sistemas para enriquecer la experiencia social sin generar acoplamiento directo:
- Escucha paquetes entrantes
BP_RES_XPyBP_RES_SYNC. - Acelera el ticker de sincronización interno (
tickElapsed = TICK_INTERVAL - 0.1) para garantizar que la felicitación comunitaria se lance inmediatamente después de que el BattlePass termine de procesar la respuesta del servidor Eluna.
Otros addons pueden consultar si ProjectJaina_Companion está activo o inspeccionar su configuración mediante comprobaciones estándar:
if _G.ProjectJaina_Companion then
local comp = _G.ProjectJaina_Companion
local version = comp.Config and comp.Config.Version
-- Companion está activo en el cliente
end- Variable Global:
Project JainaCompanion_DB - Se inicializa en el evento
ADDON_LOADEDal confirmarse la carga deProjectJaina_Companion. - Almacena personalizaciones del jugador (preferencias de canal de anuncio, toggle de depuración).