-
Notifications
You must be signed in to change notification settings - Fork 0
pt_br Chat Visibility and Input Blocking
Rifa edited this page Aug 25, 2026
·
2 revisions
| Parameter | Technical Details |
|---|---|
| Target Screen Class | net.minecraft.client.gui.screens.ChatScreen |
| Mixin Handler | ChatScreenMixin.java |
| In-Memory State |
BedChatHiderClient.hideChat (boolean) |
| Interception Targets |
extractRenderState, keyPressed, mouseClicked, mouseScrolled
|
| Focus Gatekeeper | bedchathider$updateChatState() |
[ User Clicks 'Hide Chat' ]
│
▼
BedChatHiderClient.hideChat = true
│
▼
this.rebuildWidgets()
│
┌────────────────────┴────────────────────┐
▼ ▼
[ EditBox Input State ] [ Input Interception ]
• input.visible = false • extractRenderState -> cancel
• input.active = false • keyPressed -> super.keyPressed
• input.setFocused(false) • mouseClicked -> super.mouseClicked
• screen.setFocused(null) • mouseScrolled -> super.mouseScrolled
When chat is hidden, ChatScreenMixin intercepts 4 critical input pathways to prevent background ghost typing or accidental link clicking:
| Intercepted Method | Vanilla Behavior | Bed Chat Hider Action (When Hidden) | Result |
|---|---|---|---|
extractRenderState |
Renders chat background, history text, and command suggestions. | Invokes super.extractRenderState and executes ci.cancel(). |
Chat text and background box are completely invisible. |
keyPressed |
Types characters into input, autocompletes commands, cycles history. |
Returns cir.setReturnValue(super.keyPressed(event)). |
Typing and arrow cycling are disabled; Escape closes screen normally. |
mouseClicked |
Clicks chat text URLs, suggestions, or chat log selection. | Returns cir.setReturnValue(super.mouseClicked(event, doubleClick)). |
Chat selection disabled; GUI buttons (Leave Bed, Show Chat) work cleanly. |
mouseScrolled |
Scrolls chat log history up and down. | Returns cir.setReturnValue(super.mouseScrolled(x, y, scrollX, scrollY)). |
Log scrolling disabled; screen remains static. |
// Sourced from ChatScreenMixin.java
@Inject(method = "extractRenderState", at = @At("HEAD"), cancellable = true)
private void onExtractRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a, CallbackInfo ci) {
if ((Object) this instanceof InBedChatScreen && BedChatHiderClient.hideChat) {
super.extractRenderState(graphics, mouseX, mouseY, a);
ci.cancel();
}
}
@Inject(method = "keyPressed", at = @At("HEAD"), cancellable = true)
private void onKeyPressed(KeyEvent event, CallbackInfoReturnable<Boolean> cir) {
if ((Object) this instanceof InBedChatScreen && BedChatHiderClient.hideChat) {
cir.setReturnValue(super.keyPressed(event));
}
}Related Pages: Início | Interface da Cama e Layout | Arquitetura e Análise de Mixins
Vanilla Outsider: Bed Chat Hider | Developed by Dasik (Rifaditya) | Licensed under GPLv3
📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.
- 🇺🇸 English | 🇨🇳 简体中文 | 🇭🇰 繁體中文
- 🇷🇺 Русский | 🇪🇸 Español | 🇩🇪 Deutsch
- 🇫🇷 Français | 🇧🇷 Português | 🇯🇵 日本語
- 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어
🇺🇸 English (English)
- Home
- Version Compatibility
- Bed Screen UI & Layout
- Chat Visibility & Input Blocking
- True Sleep Synergy
- Session State Persistence
- GameRules Reference
- Commands & Absence Policy
- Advancements
- Configuration & Settings
- Developer Setup & Building
- Architecture & Mixins
- Zero-Dependency Design
- Performance & Rendering
- Troubleshooting & FAQ
🇨🇳 简体中文 (Simplified Chinese)
🇭🇰 繁體中文 (Traditional Chinese)
🇷🇺 Русский (Russian)
- Главная
- Совместимость версий
- Интерфейс экрана сна
- Видимость чата и блокировка ввода
- Синергия с True Sleep
- Сохранение состояния сессии
- Игровые правила (GameRules)
- Команды и политика отсутствия
- Достижения
- Конфигурация и настройки
- Настройка среды разработки и сборка
- Архитектура и Mixin-инъекции
- Архитектура без зависимостей
- Производительность и рендеринг
- Устранение неполадок и FAQ
🇪🇸 Español (Spanish)
- Inicio
- Compatibilidad de Versiones
- Interfaz y Disposición de Cama
- Visibilidad del Chat y Bloqueo de Entrada
- Sinergia con True Sleep
- Persistencia de Estado de Sesión
- Reglas de Juego (GameRules)
- Comandos y Política de Ausencia
- Logros y Progresión
- Configuración y Opciones
- Entorno de Desarrollo y Compilación
- Arquitectura y Análisis de Mixins
- Diseño Sin Dependencias
- Rendimiento y Optimización de Renderizado
- Solución de Problemas y Preguntas Frecuentes
🇩🇪 Deutsch (German)
- Startseite
- Versionskompatibilität
- Bett-Bildschirm UI & Layout
- Chat-Sichtbarkeit & Eingabeblockierung
- Synergie mit True Sleep
- Sitzungszustand-Persistenz
- Spielregeln (GameRules)
- Befehle & Abwesenheitsrichtlinie
- Fortschritte
- Konfiguration & Einstellungen
- Entwickler-Setup & Build-Anleitung
- Architektur & Mixin-Analyse
- Null-Abhängigkeiten-Design
- Leistung & Rendering-Optimierung
- Fehlerbehebung & Häufige Fragen
🇫🇷 Français (French)
- Accueil
- Compatibilité des Versions
- Interface et Disposition du Lit
- Visibilité du Chat et Blocage d'Entrée
- Synergie avec True Sleep
- Persistance de l'État de Session
- Règles du Jeu (GameRules)
- Commandes et Politique d'Absence
- Progrès
- Configuration et Paramètres
- Environnement Développeur et Compilation
- Architecture et Analyse des Mixins
- Conception Sans Dépendance
- Performances et Rendu
- Dépannage et FAQ
🇧🇷 Português (Portuguese Brazil)
- Início
- Compatibilidade de Versões
- Interface da Cama e Layout
- Visibilidade do Chat e Bloqueio de Entrada
- Sinergia com True Sleep
- Persistência de Estado da Sessão
- Regras de Jogo (GameRules)
- Comandos e Política de Ausência
- Avanços e Conquistas
- Configuração e Ajustes
- Configuração de Desenvolvedor e Compilação
- Arquitetura e Análise de Mixins
- Design Sem Dependências
- Desempenho e Otimização de Renderização
- Solução de Problemas e Perguntas Frequentes
🇯🇵 日本語 (Japanese)
🇮🇩 Bahasa Indonesia (Indonesian)
- Beranda
- Kompatibilitas Versi
- Tata Letak UI Layar Tempat Tidur
- Visibilitas Obrolan & Pemblokiran Input
- Sinergi dengan True Sleep
- Persistensi Status Sesi
- Aturan Game (GameRules)
- Perintah & Kebijakan Absensi
- Kemajuan (Advancements)
- Konfigurasi & Pengaturan
- Pengaturan Pengembang & Kompilasi
- Arsitektur & Analisis Mixin
- Desain Tanpa Dependensi
- Performa & Optimasi Render
- Pemecahan Masalah & FAQ
🇰🇷 한국어 (Korean)
Dasik (Rifaditya) | GPLv3