Skip to content

🧩 Architektur & Mixin-Analyse

ParameterTechnische Details
Root Packagenet.vanillaoutsider.bedchathider
Mixin Configurationvanilla-outsider-bed-chat-hider.mixins.json
Compatibility LevelJAVA_25
Default Require Count1 (injectors.defaultRequire: 1)

🏛️ Klassenarchitektur-Übersicht

                        [ BedChatHiderClient ]
                        (ClientModInitializer)

                  ┌───────────────┴───────────────┐
                  ▼                               ▼
       [ InBedChatScreenMixin ]           [ ChatScreenMixin ]
       (Widget & Layout Injection)        (Input & Render Gating)
                  │                               │
                  ▼                               ▼
     Verschiebt 'Bett verlassen' & 'Chat ausblenden'-Taste Umgeht Chat-Rendering, Tasten, Klicks & Scrollen

🔍 Detailliertes Mixin-Injektionsinventar

1. InBedChatScreenMixin (InBedChatScreen.class)

  • Zielmethode: init()
  • Injektionspunkt: @At("TAIL")
  • Aktionen:
    • Skaliert leaveBedButton von $200\text{px}$ auf $98\text{px}$ bei $X = W/2 - 100$.
    • Fügt Umschalt-Button von $98\text{px}$ bei $X = W/2 + 2, Y = H - 40$ hinzu.
    • Synchronisiert input-Sichtbarkeit und Fokusstatus über bedchathider$updateChatState().

2. ChatScreenMixin (ChatScreen.class)

  • Zielmethode 1: extractRenderState(GuiGraphicsExtractor, int, int, float, CallbackInfo)
    • @At("HEAD"), cancellable = true
    • Wenn hideChat auf InBedChatScreen true ist: ruft super.extractRenderState auf und bricht ChatScreen-Rendering ab.
  • Zielmethode 2: keyPressed(KeyEvent, CallbackInfoReturnable<Boolean>)
    • @At("HEAD"), cancellable = true
    • Leitet zu super.keyPressed(event) um, um Chateingabe und Pfeiltasten zu deaktivieren.
  • Zielmethode 3: mouseClicked(MouseButtonEvent, boolean, CallbackInfoReturnable<Boolean>)
    • @At("HEAD"), cancellable = true
    • Leitet zu super.mouseClicked(event, doubleClick) um, um Klicks auf Chat-URLs zu deaktivieren.
  • Zielmethode 4: mouseScrolled(double, double, double, double, CallbackInfoReturnable<Boolean>)
    • @At("HEAD"), cancellable = true
    • Leitet zu super.mouseScrolled(x, y, scrollX, scrollY) um, um Protokoll-Scrollen zu deaktivieren.

Verwandte Seiten: Startseite | Bett-Bildschirm UI & Layout | Chat-Sichtbarkeit & Eingabeblockierung

Official documentation & web portal for Dasik Igaijinn mods.