Skip to content

🧩 Architecture et Analyse des Mixins

ParamètreDétails techniques
Root Packagenet.vanillaoutsider.bedchathider
Mixin Configurationvanilla-outsider-bed-chat-hider.mixins.json
Compatibility LevelJAVA_25
Default Require Count1 (injectors.defaultRequire: 1)

🏛️ Vue d'ensemble de l'architecture des classes

                        [ BedChatHiderClient ]
                        (ClientModInitializer)

                  ┌───────────────┴───────────────┐
                  ▼                               ▼
       [ InBedChatScreenMixin ]           [ ChatScreenMixin ]
       (Widget & Layout Injection)        (Input & Render Gating)
                  │                               │
                  ▼                               ▼
     Repositionne 'Quitter le lit' et bouton 'Masquer le chat' Contourne le rendu du chat, touches, clics et molette

🔍 Inventaire détaillé des injections Mixin

1. InBedChatScreenMixin (InBedChatScreen.class)

  • Méthode cible: init()
  • Point d'injection: @At("TAIL")
  • Actions:
    • Redimensionne leaveBedButton de $200\text{px}$ à $98\text{px}$ à $X = W/2 - 100$.
    • Ajoute le bouton de bascule Button de $98\text{px}$ à $X = W/2 + 2, Y = H - 40$.
    • Synchronise la visibilité et le focus de input via bedchathider$updateChatState().

2. ChatScreenMixin (ChatScreen.class)

  • Méthode cible 1: extractRenderState(GuiGraphicsExtractor, int, int, float, CallbackInfo)
    • @At("HEAD"), cancellable = true
    • Lorsque hideChat est activé sur InBedChatScreen : appelle super.extractRenderState et annule le rendu de ChatScreen.
  • Méthode cible 2: keyPressed(KeyEvent, CallbackInfoReturnable<Boolean>)
    • @At("HEAD"), cancellable = true
    • Redirige vers super.keyPressed(event) pour désactiver la saisie et les flèches directionnelles.
  • Méthode cible 3: mouseClicked(MouseButtonEvent, boolean, CallbackInfoReturnable<Boolean>)
    • @At("HEAD"), cancellable = true
    • Redirige vers super.mouseClicked(event, doubleClick) pour désactiver les clics sur les URL du chat.
  • Méthode cible 4: mouseScrolled(double, double, double, double, CallbackInfoReturnable<Boolean>)
    • @At("HEAD"), cancellable = true
    • Redirige vers super.mouseScrolled(x, y, scrollX, scrollY) pour désactiver le défilement de l'historique.

Pages connexes: Accueil | Interface et Disposition du Lit | Visibilité du Chat et Blocage d'Entrée

Official documentation & web portal for Dasik Igaijinn mods.