Skip to content

🧩 Arquitectura y Análisis de Mixins

ParámetroDetalles técnicos
Root Packagenet.vanillaoutsider.bedchathider
Mixin Configurationvanilla-outsider-bed-chat-hider.mixins.json
Compatibility LevelJAVA_25
Default Require Count1 (injectors.defaultRequire: 1)

🏛️ Descripción general de arquitectura de clases

                        [ BedChatHiderClient ]
                        (ClientModInitializer)

                  ┌───────────────┴───────────────┐
                  ▼                               ▼
       [ InBedChatScreenMixin ]           [ ChatScreenMixin ]
       (Widget & Layout Injection)        (Input & Render Gating)
                  │                               │
                  ▼                               ▼
     Reposiciona 'Salir de la cama' y botón 'Ocultar chat' Omite renderizado de chat, teclas, clics y rueda

🔍 Inventario detallado de inyecciones Mixin

1. InBedChatScreenMixin (InBedChatScreen.class)

  • Método objetivo: init()
  • Punto de inyección: @At("TAIL")
  • Acciones:
    • Redimensiona leaveBedButton de $200\text{px}$ a $98\text{px}$ en $X = W/2 - 100$.
    • Agrega botón conmutador Button de $98\text{px}$ en $X = W/2 + 2, Y = H - 40$.
    • Sincroniza visibilidad y enfoque de input mediante bedchathider$updateChatState().

2. ChatScreenMixin (ChatScreen.class)

  • Método objetivo 1: extractRenderState(GuiGraphicsExtractor, int, int, float, CallbackInfo)
    • @At("HEAD"), cancellable = true
    • Cuando hideChat es true en InBedChatScreen: invoca super.extractRenderState y cancela el renderizado de ChatScreen.
  • Método objetivo 2: keyPressed(KeyEvent, CallbackInfoReturnable<Boolean>)
    • @At("HEAD"), cancellable = true
    • Redirige a super.keyPressed(event) para deshabilitar escritura y navegación de flechas.
  • Método objetivo 3: mouseClicked(MouseButtonEvent, boolean, CallbackInfoReturnable<Boolean>)
    • @At("HEAD"), cancellable = true
    • Redirige a super.mouseClicked(event, doubleClick) para deshabilitar clics en URLs del chat.
  • Método objetivo 4: mouseScrolled(double, double, double, double, CallbackInfoReturnable<Boolean>)
    • @At("HEAD"), cancellable = true
    • Redirige a super.mouseScrolled(x, y, scrollX, scrollY) para deshabilitar desplazamiento del historial.

Páginas relacionadas: Inicio | Interfaz y Disposición de Cama | Visibilidad del Chat y Bloqueo de Entrada

Official documentation & web portal for Dasik Igaijinn mods.