Skip to content

Developer API

So1o98 edited this page Aug 25, 2026 · 14 revisions

Registration Methods (For Addon Developers)**

  • Other mods can call these methods during server startup or datapack loading to add their items and blocks to your skill restrictions.**

  • registerUsageRestriction(String itemId, String skill, int requiredLevel)

  • Locks an item (like a weapon or tool) from being held or used unless the player meets the required skill level.

  • registerInteractRestriction(String itemId, String skill, int requiredLevel)

  • Locks specific right-click interactions with an item unless the player meets the required skill level.

  • registerCraftingRestriction(String itemId, String skill, int requiredLevel, float xpReward)

  • Prevents an item from being crafted without the required skill level, and optionally grants XP when successfully crafted.

  • registerBlockRestriction(String blockId, String skill, int requiredLevel, float xpReward)

  • Prevents a block from being broken/harvested without the required skill level, and optionally grants XP when broken.


Progression & XP Methods

  • Methods used to check player stats or award experience.

  • getPlayerLevel(Player player, String skillName)

  • Safely retrieves a player's current level in a specific skill. Returns 0 if they have no data.

  • hasUnlockedPage(Player player, String skillName)

  • Checks if a player has officially unlocked a skill tab. Vitality, Agility, Combat, and Defense are unlocked by default.

  • getTornPagesBalance(Player player)

  • Returns how many unspent Torn Pages the player currently has.

  • grantCustomXp(ServerPlayer player, String skillName, float amount)

  • The main method for giving a player XP. It automatically applies their personal XP multipliers, checks for level-ups, updates the server data, and instantly syncs the new values to the client and their party members.

  • canPlayerUseItem(ServerPlayer player, String itemId)

  • The master check to see if a player is allowed to use an item. It automatically bypasses restrictions if the player is in Creative or Spectator mode.


Data Retrieval Methods

  • Methods used internally by the server to look up restrictions on the fly.

  • getCustomUsage(String itemId) / getCustomInteract(String itemId) / getCustomCrafting(String itemId) / getCustomBlockUsage(String blockId)

  • Returns a map containing the specific skill requirements for a given item or block.

  • getCustomCraftingXp(String itemId) / getCustomBlockXp(String blockId)

  • Returns the exact XP amount a player should be awarded for crafting an item or breaking a block.

  • getItemUsageRestrictions(String itemId)

  • Fetches restriction data specifically loaded from Datapack JSON files rather than Java code.

  • Network Syncing Methods

  • Methods used behind the scenes to keep the server and client communicating perfectly.

  • getAllCustomUsageRestrictions() / getAllCustomInteractRestrictions() / getAllCustomBlockRestrictions()

  • Packages up every single custom restriction currently loaded in the server's RAM so they can be bundled into a network payload.

  • clearAllCustomRestrictionsForClient()

  • Called exclusively on the client side when disconnecting from a server or receiving a new sync packet. It wipes the client's local memory to prevent ghost restrictions from persisting across different servers.

Clone this wiki locally