▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/HomeGui
HomeGui

HomeGui

Stop typing /home every 30 seconds. HomeGui adds a click-to-teleport interface for all your saved homes — favorites, search, history, keyboard shortcuts, and 5 color themes. Works with EssentialsX, CMI, and any server that uses a home system.

Оцените первым
2.3K
8
Все версииHomeGui 3.2.0

HomeGui 3.2.0

Release01.07.2026

Список изменений

Interface

  • Full rewrite of the rendering pipeline with a centralized dark theme palette (Theme.java) replacing all default Minecraft widget styles
  • Custom StyledButton widget extending Button with per-instance background, border, accent, and text color overrides
  • Panel glow effect using a 2px semi-transparent accent layer rendered behind the main panel fill
  • Favorite homes marked with a gold 3px left accent bar and persistent star glyph overlay
  • Per-home teleport count rendered as a right-aligned dim overlay on each row
  • Editable search field with placeholder text and real-time filtering via EditBox.setResponder()
  • Contextual empty states with descriptive text depending on whether homes are missing or search returned no results
  • Custom scrollbar with proportional thumb, accent-colored fill and border, positioned at the right edge of the list area
  • Font-aware text truncation with ellipsis using Theme.truncate() to prevent overflow in constrained layouts
  • Tooltip overlay drawn on top of all widgets with accent border, dark background, and multi-line content

Architecture

  • Theme.java — static utility class holding all color constants (BG, PANEL, CARD, ACCENT, GOLD, DANGER, SUCCESS, TEXT, DIM, FAINT, BORDER, BTN, BTN_HOV) and shared drawing primitives (fillBorder, drawPanel, drawCard, drawSeparator, drawTextCentered, truncate)
  • StyledButton.java — extends net.minecraft.client.gui.components.Button (Mojang mappings), overrides only renderWidget() for custom visual output while delegating click handling and narration to the parent class
  • ModConfig.getConfigPath() — lazy method replacing the former static CONFIG_PATH field to avoid FabricLoader.getInstance() invocation during class loading before Fabric runtime initialization
  • All screen interaction routed through widget onClick callbacks, eliminating method signature dependencies on mouseClicked(double, double, int), mouseClicked(MouseButtonEvent, boolean), and keyPressed(int, int, int) which differ across Minecraft versions and mapping sets
  • Scroll state managed by scrollOffset with needsRebuild flag triggering full widget reconstruction on change to keep visible buttons in sync with the filtered list

Fixes

  • Scroll input not reaching the home list because no mouseClicked override could safely target the list area — resolved by routing all clicks through StyledButton widgets that are rebuilt on scroll
  • Bottom navigation buttons rendering on top of home list entries due to missing vertical space allocation between the list area and the button row — resolved with explicit listAreaTop / listAreaBottom bounds
  • mouseClicked(double, double, int) and keyPressed(int, int, int) overrides causing compilation failures under Mojang mappings for Minecraft 1.21.10 where Screen expects MouseButtonEvent and KeyEvent parameter types — removed entirely in favor of widget delegation
  • rebuildWidgets() method name conflicting with an existing protected method in Screen base class causing an access privilege error — renamed to rebuildUI()
  • CONFIG_PATH evaluated at static field initialization time causing NullPointerException or NoClassDefFoundError when FabricLoader was not yet available — replaced with a lazy getConfigPath() method

Performance

  • GitHub Actions workflow configured with Gradle build cache (--build-cache) and dependency caching via gradle/actions/setup-gradle@v4
  • Parallel task execution enabled with --parallel flag
  • Virtualized list rendering limited to visible rows within [scrollOffset, scrollOffset + visibleRows] with a ±1 margin for smooth scrolling
  • Widget rebuilds gated behind a needsRebuild boolean checked once per tick() frame, preventing redundant clearWidgets() + reconstruction cycles

Links

  • 💬 Discord

Файлы

homegui-3.2.0.jar(326.99 KiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

3.2.0-0.19.3

Загрузчики

Fabric

Версии игры

1.21.10

Загрузок

4

Дата публикации

01.07.2026

Загрузил

ID версии

Главная