promotional banner

NoNameMod's PlayerAPI

Client-side Fabric library giving mods a clean, high-level API for player input, inventory, world queries, look control, events, scheduling, and human-like automation, so they never touch Minecraft internals. The shared base for Ceres, Poseidon, and ESP.
Back to Files

playerapi-2.1.0.jar

File nameplayerapi-2.1.0.jar
Uploader
noname_modsnoname_mods
Uploaded
Aug 29, 2026
Downloads
1.3K
Size
1.1 MB
Mod Loaders
Fabric
File ID
8764496
Type
R
Release
Supported game versions
  • 26.2

Curse Maven Snippet

Fabric

modImplementation "curse.maven:noname-mods-playerapi-1579079:8764496"

Learn more about Curse Maven

What's new

[2.1.0] - 2026-08-29

Added

  • HypixelInfoisOnHypixel() detects a Hypixel connection from the address the user actually connected to (ServerData.ip via WorldInfo.getServerAddress()), matched as a hypixel.net host suffix (covers mc. / alpha. / any *.hypixel.net, rejects lookalikes). That field is the client's own connection target, not Hypixel's internal proxies, so it's reliable. matchesHypixel(addr) exposed for arbitrary strings. Plus isConnectedToServer() and isOnOtherServer() (connected to a different multiplayer server) — so UI can hide Hypixel-only features on other servers while still showing them at the main menu / singleplayer. (Hypixel-level, not SkyBlock — mods still gate SkyBlock behaviour on in-game signals.)
  • Config: conditional categories. @ConfigCategory(visibleWhen = "methodName") — the config screen hides that whole category when the named no-arg boolean method on the config object returns false (evaluated each time the screen opens). Failures are contained (treated as visible). @ConfigList now supports the same visibleWhen so a dynamic list category can be conditionally hidden too.
  • Dev "Force Hypixel Detection" toggle (PlayerAPI config → Developer). Makes isOnHypixel() return true everywhere, so every Hypixel-gated mod runs (and shows its Hypixel-only config) on a private / local server for controlled testing. Applied globally via HypixelInfo.setForceHypixel.
  • Dev "Dev Commands" toggle (PlayerAPI config → Developer). PlayerAPI's /papi… self-test / diagnostic commands (walk, path, follow, entities, events, stats, hypixel, area, hud, seq, toast, dialog, plus /playerapi hudeditor|configdemo) are now off for normal users and only registered while this toggle is on — they're library development aids, not features. Takes effect after rejoining a world (the command tree rebuilds on connect). The /playerapi dismissupdate link on update notices is unaffected.
  • /papiarea (dev) — prints exactly what PlayerAPI reads as the current area: the tab-list "Area:" line and the lower-cased text ESP's area whitelist/blacklist match against, plus the on-Hypixel state.
  • Commands.register(BooleanSupplier enabled, …) — gated command registration; the command exists only while the supplier returns true at command-tree build time (the pattern used for the dev commands above).
  • Debug data collectors (com.playerapi.debug) — dev tools every PlayerAPI mod now inherits, gated on the Dev Commands toggle. /papidump <labels|item|table|block|entity|me> gathers in-game data, copies it to the clipboard and logs the full dump; the text tools codepoint-escape everything so custom pack glyphs (e.g. Hypixel PUA icons) show as \uXXXX. Plus two unbound debug keybinds — Dump Item (works inside a container GUI, on the hovered slot) and Dump Labels. item reports id / name / lore / custom NBT / full component patch; table reads the sidebar + tab via PlayerAPI's own ScoreboardInfo / TabListInfo; block / entity / me dump what you're looking at and your own state. While Dev Commands is on, chat lines also become click-to-copy (copies the line's codepoint-escaped text; existing link clicks are preserved). (Supersedes the standalone DebugKit mod.)
  • TabListInfo.getHeader() / getFooter() now return the real tab-list header/footer text (previously a stub) via a PlayerTabOverlay accessor.

Config library

  • Formatted text. Option names, descriptions and @InfoText rows now support a lightweight markup: &/§ colour & format codes (0-9a-f colour, l/o/n/m/k bold/italic/underline/strike/obfuscated, r reset), [#RRGGBB] for arbitrary hex colours beyond the 16 legacy ones, and [/] to reset. Rendering is native (colour incl. hex, bold/italic/underline/strike). Field values are never parsed as markup.
  • Wrapping descriptions. A long description now word-wraps onto as many lines as it needs and the row grows to fit, instead of running off the edge. Rows are variable-height throughout the screen.
  • Text sections. @InfoText (a read-only row with no widget — just a name/description) now wraps and formats like everything else, so it works cleanly for notes, warnings, and section blurbs.
  • Visual colour picker. Clicking a @ColorPicker swatch opens a saturation/value square + hue bar + live hex field + preview, writing the colour back live. Typing a hex code into the row still works too.
  • Full text-field editing. @TextField boxes gained a real caret: click / drag to place or select, arrow keys (Ctrl = by word), Home/End, Backspace/Delete (Ctrl = word), and clipboard Ctrl+A/C/X/V. Long values scroll horizontally to keep the caret in view.