🧩 Architektur & Mixin-Analyse
| Parameter | Technische Details |
|---|---|
| Root Package | net.vanillaoutsider.bedchathider |
| Mixin Configuration | vanilla-outsider-bed-chat-hider.mixins.json |
| Compatibility Level | JAVA_25 |
| Default Require Count | 1 (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
leaveBedButtonvon $200\text{px}$ auf $98\text{px}$ bei $X = W/2 - 100$. - Fügt Umschalt-
Buttonvon $98\text{px}$ bei $X = W/2 + 2, Y = H - 40$ hinzu. - Synchronisiert
input-Sichtbarkeit und Fokusstatus überbedchathider$updateChatState().
- Skaliert
2. ChatScreenMixin (ChatScreen.class)
- Zielmethode 1:
extractRenderState(GuiGraphicsExtractor, int, int, float, CallbackInfo)@At("HEAD"),cancellable = true- Wenn
hideChataufInBedChatScreentrue ist: ruftsuper.extractRenderStateauf und brichtChatScreen-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
