Unofficial site, not affiliated with modrinth.com.What is this?
Моды/Better Player Locator Bar
  • Better Player Locator Bar v1.1.2

    release26 октября 2025 г.

    Updated to 1.21.2 and 1.21.3!

  • Better Player Locator Bar v1.1.1

    release26 октября 2025 г.
    • Fixed some render issues and ordering
    • Simplified code syntax
    • Centralized methods
    • Fixed render arrow mode
  • Better Player Locator Bar v1.1.0

    release19 октября 2025 г.

    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
  • Better Player Locator Bar v1.0.0a

    release26 мая 2025 г.

    Fixed Fabric Loader incompatibility issue for newer versions

  • Better Player Locator Bar v1.0.0

    release7 апреля 2025 г.

    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.
  • Better Player Locator Bar 0.2.1-BETA

    beta1 апреля 2025 г.

    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
  • Better Player Locator Bar 0.2-BETA

    beta24 марта 2025 г.

    🖥️ 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).
  • Better Player Locator Bar 0.1-BETA

    beta18 марта 2025 г.
    • 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

Совместимость

Minecraft: Java Edition

Платформы

Сведения

Лицензия:CC-BY-NC-SA-4.0
Опубликован:1 год назад
Обновлён:7 месяцев назад
ID проекта:
Главная