COWMODSКаталог модов
Better Player Locator Bar

ВЕРСИИ (8)

release

Better Player Locator Bar v1.1.2

v1.1.2
26 окт. 2025 г.1,2 тыс.Minecraft: 1.21.2, 1.21.3fabric
Скачать
Что нового
# Updated to 1.21.2 and 1.21.3!
release

Better Player Locator Bar v1.1.1

v1.1.1
26 окт. 2025 г.8 тыс.Minecraft: 1.21, 1.21.1fabric
Скачать
Что нового
- Fixed some render issues and ordering - Simplified code syntax - Centralized methods - Fixed render arrow mode
release

Better Player Locator Bar v1.1.0

v1.1.0
19 окт. 2025 г.277Minecraft: 1.21, 1.21.1fabric
Скачать
Что нового
# Changelog **Version: 1.1.0** --- ## Summary Version 1.1.0 refactors the rendering architecture, introduces robust asset detection, improves client-server synchronization, adds death markers, enhances configuration capabilities, and fixes multiple bugs. Backwards compatibility with existing configs and use cases is preserved. --- ## Major Enhancements & Additions ### Rendering & Architecture - Modular separation of rendering logic into: - `RenderAddons` - `RenderUtils` - `TextureManager` - `TextureAnimator` - Introduction of `AssetScanner`: - Scans the resource manager for textures under `sprites/hud/` - Builds lists of available dot styles, arrow styles, icon borders, death marker types - Caches texture dimensions to avoid repeated IO - Death markers persistence: - `Hud.deathMarkers` store marker data with timestamp and world position - Configurable limit of death markers - Automatic cleanup of old or out-of-range markers - Hybrid mode operation: - Handshake with server to detect mod presence - Fallback to local mode if server unresponsive beyond timeout (e.g. `SERVER_TIMEOUT_MS`) - Per-player overrides: - In config, allow per-player settings: color, icon style, border style --- ## Detailed Changes per Component ### Main / Mod Initialization - Register payload codecs for `HandshakePayload` and `PositionUpdatePayload` with `PayloadTypeRegistry` - Initialize server module (`BetterPlayerLocatorBarServer`) on common side - Add logging for handshake success/failure and mode switching events ### Client / Initialization - On resource reload, call `AssetScanner.reload(...)` - Instantiate `Hud` and register `HudRenderCallback` - In `ClientPlayNetworking`, register receiver for handshake and position update - Track `lastServerUpdateTime`; if exceeds threshold, switch to local mode ### HUD (BetterPlayerLocatorBarHud) - Maintain maps: - `playerPositions` - `lastKnownPositions` - `currentIconPositions` - `lastPositionUpdateTime` - `tick()` and `updateRenderCache()`: - Filter players by distance and `maxVisibleIcons` - Sort by closeness or priority if needed - Easing & interpolation: - If distance jump is large (e.g. > 75% of bar width), snap to target - Else, advance position using `easeInOutQuad` - Separate rendering methods: - `renderPlayerIcon()` - `renderDeathMarker()` - `renderArrow()` - `renderNameplate()` - Hide logic: - `shouldHideTarget()` checks for sneaking, invisibility, helmet usage - Angle & FOV: - Use `CONFIG.getFovMultiplier()` to adjust icon horizontal shift - Alpha / fading: - `calculateEdgeAlpha()` and `getDistanceAlpha()` for smooth fade near edges or by distance - Texture selection: - `getAdjustedTextureIndex(distance, config)` picks animation frame ### AssetScanner - On `reload`, checks for presence of each expected texture (dots, outlines, arrows, markers, tags) - Builds lists: `availableDots`, `availableArrows`, `availableDeathMarkers`, etc. - Caches texture widths and heights via `NativeImage` to avoid repeated loads ### RenderAddons - Central rendering of tinted icons, outlines, names, arrows, and death markers - Supports override of head texture by UUID or name, with fallback to default skin - `renderIcon()`, `renderArrow()`, `renderNameplate()` share common helper logic - Outline rendering: darker border variants computed dynamically or via presets ### TextureManager - Centralizes `Identifier` creation for texture paths - Caches `Identifier` objects to reduce allocation overhead - Standardized naming scheme: - `sprites/hud/player_dots/{type}_{frame}.png` - `sprites/hud/player_dots_outlines/...` - `sprites/hud/arrows/{type}.png` - `sprites/hud/death_markers_dots/{type}.png` - `sprites/hud/tags/{style}.png` ### TextureAnimator - Handles time-based frame switching for animated textures (if any) - Maintains current frame, elapsed time, duration per frame ### Keybinds - Register `SHOW_PLAYER_NAME` and `OPEN_CONFIG` - `OPEN_CONFIG` opens `ConfigScreen` via `client.setScreen(...)` ### RenderUtils - Utilities for rendering: - `renderTintedTexture(...)` - `drawNineSlicedTexture(...)` - `withMatrixPush(...)` - `setShaderColorRGBA(...)` - `getTextureDimensions(...)` (delegates to `AssetScanner` cache) ### Network - `HandshakePayload` contains fields: `serverHasMod`, `playerIsOp` - `PositionUpdatePayload` contains: - `positions()`: list of `(UUID, Vec3d)` - `newPlayers()`: optional list of new player info - `disconnectedPlayers()`: list of UUIDs - Client receives payloads and updates internal maps in thread-safe manner (via `client.execute(...)`) --- ## Bug Fixes - Prevent NPE in `AssetScanner` when a texture is missing (check `.isPresent()` first) - Remove stale entries in `currentIconPositions` when players disconnect or markers expire - Fix jumping icons when large remote deltas: implement snapping threshold - Fix fallback logic when `textureHeadOverride` is non-UUID string; add resolution from `usercache.json` - Clamp angle calculations so icons outside the horizontal range don’t render incorrectly - Fix mod/mixin registration: ensure `BetterPlayerLocateBar.mixins.json` declared correctly - Ensure name rendering only when Tab is held or always enabled via config --- ## Performance & Optimization - Cache texture dimensions in `AssetScanner` to avoid repeating image loads - Cache `Identifier` objects in `TextureManager` - Pre-limit icon rendering count by `maxVisibleIcons` before layout computation - Maintain intermediate render caches (`positionsToRenderCache`) to avoid recomputation each frame - Asset scan only on resource reload, not every frame - Minimize temporary allocations in loops (reuse collections, use `computeIfAbsent`, `subList`) --- ## Configuration & UX Enhancements - Added config options: - `deathMarkerInheritBorderColor` - `deathMarkerBorderStyle` - `assetScanner.textures` list - `adjust_to_fov`, `fov_multiplier` - ConfigScreen improvements: - Renders real-time preview of names and icons - Shows detected textures from `AssetScanner` in dropdowns - HUD offset auto-applied if icons present (`shouldApplyHudOffset()` logic) --- ## Client-Server Integration - Server module now actively gathers player positions at interval - Client handshake verifies server mod and sets flags accordingly - If server stops sending updates, client falls back to local mode - `PositionUpdatePayload` sends full updates so client can reconstruct state --- ## Robustness & Edge Cases - UUID parsing wrapped in try/catch to avoid crashes - File I/O (e.g. `usercache.json`) wrapped with existence checks - Clear logs in `Constants.LOGGER` for mode switching and error conditions --- ## Regression Risk & Testing - Tested: - Mode switching (server vs local) - Name rendering via Tab - Death markers creation and cleanup - Asset detection when adding custom textures - Edge cases: - Player wearing helmet/skull — head override logic - Invisible or sneaking players - Large jumps in position between updates --- ## Previous Version (1.0.0) — Summary - Basic HUD rendering of nearby players - Automatic colors, simple interpolation - Static icon style, no death markers - Minimal configuration --- ## Notes - This version emphasizes stability, modularity, and configurability - If regressions occur, open issues with logs, steps to reproduce, and version info
release

Better Player Locator Bar v1.0.0a

v1.0.0a
26 мая 2025 г.1,7 тыс.Minecraft: 1.21, 1.21.1fabric
Скачать
Что нового
### Fixed Fabric Loader incompatibility issue for newer versions
release

Better Player Locator Bar v1.0.0

v1.0.0
7 апр. 2025 г.802Minecraft: 1.21, 1.21.1fabric
Скачать
Что нового
# Mod Changelog - Versions 1.21 & 1.21.1 ## **UI & Visual Enhancements** - Redesigned and improved **configuration screen**, offering a sleek and more intuitive interface. - **Custom widgets** inspired by Mojang's existing UI elements for a seamless and familiar experience. - Fully **restyled icons**, delivering a modern and polished look. ## **HUD Improvements** - Enhanced **HUD interaction**—visibility of XP bar icons now dynamically affects the overall interface behavior. ## **Performance & Code Optimization** - Major **code refactoring** to ensure optimal performance and efficiency across all systems.
beta

Better Player Locator Bar 0.2.1-BETA

0.2.1-BETA
1 апр. 2025 г.278Minecraft: 1.21fabric
Скачать
Что нового
## v0.2.1 - BETA | Network & Rendering Overhaul ### Core Changes - Added dual-mode operation (Server Mode and Local Mode) - Implemented automatic handshake system for mod detection - Added 5-second timeout for server updates before switching to local mode ### Network Improvements - New payload registration system compatible with Minecraft 1.21 / 1.21.1 - Server now initiates handshake when players join - Improved network efficiency with 2-tick update intervals ### Rendering Fixes - Complete rendering logic overhaul - Fixed player position sorting and display issues - Improved handling of edge cases in both modes ### New Features - Added server compatibility detection - Configurable distance-based fading - Automatic fallback to local detection when needed ### Bug Fixes - Fixed all compilation errors from previous version - Resolved variable scope conflicts - Corrected player visibility checks - Fixed timeout detection logic ### Configuration Updates - Added new config options for fade distances - Added force local mode option - Maintained backward compatibility with old configs ### Optimizations - Reduced network overhead - Improved client-side caching - Better connection state handling ### Known Issues - Player visibility may still be limited on some servers in local mode - Initial detection may take 1-2 seconds after joining ### Migration Notes - Servers need v0.2.1 - BETA for full functionality - Clients automatically handle fallback to local mode - Existing configs remain compatible but gain new options
beta

Better Player Locator Bar 0.2-BETA

0.2-BETA
24 мар. 2025 г.132Minecraft: 1.21fabric
Скачать
Что нового
### 🖥️ **Customizable Interface** - **Rounded icons** representing players. - **Dynamic colors** with join animations. - **Stylized borders** with smooth gradients. - **Smooth animations** using `lerp`. - **Height indicator** (arrow showing if a player is above or below). - **Progressive transparency** based on distance (fades at 100 blocks, nearly invisible at 5000). - **Option to display the player’s head** instead of a colored icon. ### 🎮 **Enhanced User Experience** - **Smooth movements** with interpolation. - **"Show Names" mode when pressing `Tab`**. - **Automatic adjustment of the experience and status bars** when interacting with the HUD. ### 📡 **Server Synchronization** - **Real-time location tracking** of other players in the bar. - **Detect nearby players** without needing a minimap. - **Supports official and TL Skin skins**. - **Persistent data storage** for players outside render distance. ### ⚙️ **Advanced Configuration** - **Complete settings menu** (`F8`). - **Modify some of active functions**. - **Coming JSON configuration editor (Experimental and maybe not functional)**.
beta

Better Player Locator Bar 0.1-BETA

0.1-BETA
18 мар. 2025 г.136Minecraft: 1.21fabric
Скачать
Что нового
- HUD bar implementation above the experience bar. - Player tracking system with position-based icon placement. - Dynamic icon scaling based on distance and screen edges. - Smooth animations for icon movement. - Height difference indicators with arrows. - Basic skin support (official skins only). - Performance optimizations for real-time tracking. > Full Changelog: [Changelog](https://github.com/bichal/BetterPlayerLocatorBar/commits/1.21)