Description
<div align="center">
# ⚔️ Pojav Tier Tagger
**A sleek, performance-friendly Fabric client mod for Minecraft 1.21.x that seamlessly integrates OPTL Networks rankings into your HUD, tab list, and chat.**
[](https://fabricmc.net/)
[](https://fabricmc.net/)
[](https://www.oracle.com/java/)
[](LICENSE)
[](https://discord.gg/QS3NpPM2dB)
<br/>
> **Example Display:** `[🪓 HT1] | PlayerName`
> *Dynamically updates based on live MMPvP player ranking data.*
---
</div>
## 🖼️ In-Game Preview

<div align="center">
<img src="https://ibb.co/F244qzh" alt="In-game Tag Preview" width="700"/>
</div>
---
## 🌟 Overview
**Pojav Tier Tagger** pulls live ranking data directly from the MMPvP tier list and attaches a dynamic badge to every player in-game. The mod automatically calculates each player's highest-scoring gamemode and displays their tier alongside custom bitmap icons above player heads, in the tab overlay, and within chat channels.
Everything runs via asynchronous background polling, ensuring **zero impact on your frame rates or gameplay performance**.
---
## ✨ Core Features
* **🎛️ Universal Visibility:** Displays badges above player heads, in the tab list, and inside chat.
* **⚡ Smart Tier Calculation:** Automatically identifies and highlights a player's absolute best gamemode and rank without manual configuration.
* **🎨 Custom Icons:** Features custom bitmap font icons for all **8 supported gamemodes**:
`Sword` • `Mace` • `SMP` • `Pot` • `Vanilla` • `NethOP` • `UHC` • `Axe`
* **⚙️ Mod Menu Integration:** Easily adjust display colors, refresh intervals, and surface visibility using an in-game config UI.
* **🔍 Instant Lookups:** Run `/pojavtier player <name>` for immediate on-demand player stat lookups.
* **🚀 Lightweight Engine:** Efficient background API polling keeps your game stutter-free.
---
## 🛠️ Requirements
| Dependency | Required Version |
| :--- | :--- |
| **Minecraft** | `1.21` – `1.21.11` (see below - separate build per version) |
| **Fabric Loader** | See each version's own `gradle.properties` |
| **Java** | `21+` |
| **Fabric API** | Matching version for your Minecraft build |
| **Mod Menu** *(Optional)* | For in-game settings screen |
This mod now builds as **12 separate jars**, one per Minecraft version from
`1.21` through `1.21.11` - see [`MULTI_VERSION_NOTES.md`](MULTI_VERSION_NOTES.md)
for how that's structured and built. Get the jar that matches your exact
Minecraft version.
---
## 📥 Installation
1. Download and install **[Fabric Loader](https://fabricmc.net/use/)** for **your Minecraft version**.
2. Download **[Fabric API](https://modrinth.com/mod/fabric-api)** matching that same version and drop it into `.minecraft/mods`.
3. From the [Releases](../../releases) page or the latest Actions build, download the `pojavtiertagger-<your version>-*.jar` that matches your Minecraft version, and place it in `mods`.
4. *(Optional)* Add **[Mod Menu](https://modrinth.com/mod/modmenu)** to configure settings directly in-game.
5. Launch Minecraft and dominate the arena!
---
## ⚙️ Configuration
You can customize the mod via the **Mod Menu** interface or by editing `.minecraft/config/pojavtiertagger.json`.
<details>
<summary><b>🔧 Configurable Settings</b></summary>
* **Tier Color Schemes:** Assign custom hex colors to distinct rank tiers.
* **Refresh Intervals:** Control how frequently live ranking data is fetched from the API.
* **Surface Toggles:** Enable or disable tier visibility separately for **Nametags**, **Tab List**, or **Chat**.
</details>
---
## 📜 Changelog
<details>
<summary><b>Multi-version restructure</b> (Current)</summary>
* **Restructured** into a multi-version build: `common/` holds the ~95% of
the mod that's identical across Minecraft versions, and 12 small
per-version modules (`versions/1.21` through `versions/1.21.11`) each
supply only the handful of APIs that changed shape (font styling,
keybinding construction, texture drawing). See `MULTI_VERSION_NOTES.md`.
* **CI** now builds and uploads a distinct jar per Minecraft version on every push.
* **Fixed:** gamemode icons rendering as missing-glyph boxes, and several
config-screen buttons silently failing to appear - both traced to
string-based reflection (`Class.forName`) not surviving Fabric Loom's
remapping in production; replaced with direct, version-routed API calls.
* **Added:** a second, independently-configurable tier badge with left/right
placement controls, and a live offline "mannequin" preview in the config screen.
</details>
<details>
<summary><b>v1.21.11</b></summary>
* **Ported:** Updated target to Minecraft `1.21.11` (Fabric Loom `1.14`, Yarn `1.21.11+build.3`, Fabric Loader `0.18.1`, Fabric API `0.141.2+1.21.11`, Java `21`).
* **API Fixes:** Adapted to `GameProfile` accessor renames, `Style.withFont()` requiring `StyleSpriteSource`, `KeyBinding` category adjustments, and `CyclingButtonWidget.builder()` signatures.
* **Build System:** `fabric.mod.json` dependency ranges are now automatically generated from `gradle.properties` at build time.
</details>
<details>
<summary><b>v1.0.1</b></summary>
* **Fix:** Resolved issue where gamemode icons defaulted to the sword emoji.
* **API Upgrade:** Switched to `/api/rankings` endpoint, parsing full per-gamemode `ranks` maps.
* **Syncing:** Synchronized gamemode icons and tier text calculations.
* **Commands:** Updated `/pojavtier player <name>` to return accurate point breakdowns.
</details>
<details>
<summary><b>v1.0.0</b></summary>
* Initial release.
</details>
---
## 💬 Community & Credits
<div align="center">
[](https://discord.gg/QS3NpPM2dB)
**Join our Discord community:** [discord.gg/QS3NpPM2dB](https://discord.gg/QS3NpPM2dB)
</div>
<br/>
> **About the Developer:**
> Made by a solo dev living on caffeine and stack traces. Built from scratch — updated logic, toolchain ports, and API hooks — for the MMPvP community. ❤️
---
<div align="center">
Distributed under the **MIT License**. See [`LICENSE`](LICENSE) for details.
</div>

