RarityCore API Documentation
This document is written for RarityCore 1201.12.11
Main API Classes
1. RarityRegistry (Core Registration Class)
Package path: org.yanbwe.raritycore.registry.RarityRegistry
Rarity Registration and Management
java
// Register item rarity (sync to clients by default)
public static void register(@Nullable Item item, int rarity)
// Register item rarity (can specify whether to sync to clients)
public static void register(@Nullable Item item, int rarity, boolean syncToClients)
// Unregister item rarity registration
public static void unregister(@Nullable Item item, boolean syncToClients)
// Put auto-calculated rarity configuration
public static void putAutoRarity(ResourceLocation itemId, int rarity)
// Remove auto-calculated rarity configuration
public static void removeAutoRarity(ResourceLocation itemId)
// Get item stack rarity level (pass NBT data, match based on ID and then NBT)
public static @NotNull Integer getRarity(@Nullable ItemStack itemStack)
// Get item rarity level (without NBT data, only ID matching)
public static @NotNull Integer getRarity(@Nullable Item item)
// Get standardized item rarity (without NBT data, only ID matching)
// Standardization means: null is treated as 1, less than 1 is treated as 1, greater than 7 is treated as 7
// It is recommended to use this method to get rarity to simplify code
public static @NotNull Integer getNormalizedRarity(@Nullable Item item)
// Get standardized item rarity (pass NBT data, match based on ID and then NBT)
public static @NotNull Integer getNormalizedRarity(@Nullable ItemStack itemStack)
// Get complete localized rarity tooltip string for items (supports localization)
public static @NotNull String getLocalizedRarityTooltip(@Nullable Item item)Rarity Retrieval Priority Order:
NBT Matching > Apotheosis Mod Rarity > This Mod's Rarity (Config and Datapack) > Vanilla Rarity MappingNetwork Synchronization
Network synchronization functionality is located in the SyncManager class: org.yanbwe.raritycore.network.SyncManager
java
// Synchronize all rarity data to clients (full synchronization)
public static void syncRarityToClients(Map<ResourceLocation, Integer> itemRarityMap)
// Synchronize all rarity data to clients with retry mechanism (full synchronization)
public static void syncRarityToClientsWithRetry(Map<ResourceLocation, Integer> itemRarityMap)
// Synchronize incremental changes to clients
public static void syncIncrementalChangesToClients()
// Synchronize incremental changes to clients with retry mechanism
public static void syncIncrementalChangesToClientsWithRetry()
// Get the number of operations in current change buffer
public static int getPendingChangeCount()
// Clear change buffer
public static void clearChangeBuffer()
// Add change operation to buffer
public static void addChangeOperation(ChangeOperation operation)2. RarityColorUtil (Color Utility Class)
Package path: org.yanbwe.raritycore.util.RarityColorUtil
java
// Get chat format color based on rarity
public static ChatFormatting getRarityChatColor(int rarity)
// Get ARGB color value based on rarity
public static int getRarityArgbColor(int rarity)Rarity Color Mapping:
| Rarity | Name | ChatFormatting | ARGB Value |
|---|---|---|---|
| 1 | Common | WHITE | 0xFFA0A0A0 |
| 2 | Rare | GREEN | 0xFF00AA00 |
| 3 | Uncommon | DARK_AQUA | 0xFF00AAAA |
| 4 | Epic | LIGHT_PURPLE | 0xFFC870FF |
| 5 | Legendary | GOLD | 0xFFFFAA00 |
| 6 | Mythic | RED | 0xFFFF5555 |
| 7 | Unique | DARK_RED | 0xFFAA0000 |
3. RarityValidator (Validation Utility Class)
Package path: org.yanbwe.raritycore.util.RarityValidator
java
// Validate if rarity value is valid (1-7)
public static boolean isValidRarity(int rarity)
// Normalize rarity value (less than 1 becomes 1, greater than 7 becomes 7)
public static int normalizeRarity(int rarity)
// Validate if item is valid
public static boolean isValidItem(Item item)
// Get resource location identifier for item
public static ResourceLocation getItemId(Item item)
// Validate if border style is valid (0 or 1)
public static boolean isValidBorderStyle(int borderStyle)
// Validate and return valid border style
public static int validateBorderStyle(int borderStyle)4. ClientConfigManager (Client Configuration Management Class)
Package path: org.yanbwe.raritycore.config.ClientConfigManager
java
// Item border rendering
public static boolean isEnableItemBorderRendering()
public static void setEnableItemBorderRendering(boolean enable)
// Item border style (0: hollow, 1: solid)
public static int getItemBorderStyle()
public static void setItemBorderStyle(int style)
// Texture border
public static boolean isUseTextureBorder()
public static void setUseTextureBorder(boolean useTexture)
// Item name coloring
public static boolean isEnableItemNameColor()
public static void setEnableItemNameColor(boolean enable)
// Tooltip insertion
public static boolean isEnableTooltipInsert()
public static void setEnableTooltipInsert(boolean enable)
// Tooltip rarity text coloring
public static boolean isEnableTooltipColor()
public static void setEnableTooltipColor(boolean enable)
// Skip unconfigured items
public static boolean isSkipUnconfiguredItems()
public static void setSkipUnconfiguredItems(boolean skip)
// Cache system
public static boolean isEnableCacheSystem()
public static void setEnableCacheSystem(boolean enable)5. ServerConfigManager (Server Configuration Management Class)
Package path: org.yanbwe.raritycore.config.ServerConfigManager
java
// Check vanilla rarity
public static boolean isCheckVanillaRarity()
public static void setCheckVanillaRarity(boolean check)
// Check Apotheosis mod rarity
public static boolean isCheckApotheosisRarity()
public static void setCheckApotheosisRarity(boolean check)
// Enable getRarity() warning
public static boolean isEnableGetRarityWarning()
public static void setEnableGetRarityWarning(boolean enable)6. StarDisplayConfigManager (Star Display Configuration Management Class)
Package path: org.yanbwe.raritycore.config.StarDisplayConfigManager
java
// Star display master switch
public static boolean isEnableStarDisplay()
public static void setEnableStarDisplay(boolean enable)
// Star display mode
public static String getStarMode()
public static void setStarMode(String mode)
// Repeat mode character
public static String getRepeatCharacter()
public static void setRepeatCharacter(String character)
// Custom mode string mapping (levels 1-7)
public static Map<Integer, String> getCustomStarStrings()
public static void setCustomStarStrings(Map<Integer, String> strings)
// Get custom string for specified rarity
public static String getCustomStarString(int rarity)
public static void setCustomStarString(int rarity, String string)
// Special rarity text mapping (greater than 7)
public static Map<Integer, String> getCustomSpecialRarityTexts()
public static void setCustomSpecialRarityTexts(Map<Integer, String> texts)
// Get custom special text for specified rarity
public static String getCustomSpecialRarityText(int rarity)Usage Examples
1. Basic Rarity Query
java
import org.yanbwe.raritycore.registry.RarityRegistry;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
// Get item rarity (supports NBT matching)
ItemStack diamondStack = new ItemStack(Items.DIAMOND);
Integer rarity = RarityRegistry.getRarity(diamondStack);
// Rarity follows priority: NBT Matching > Apotheosis > This Mod's Config > Vanilla Mapping
System.out.println("Diamond rarity: " + rarity);
// Get standardized rarity (recommended)
Integer normalizedRarity = RarityRegistry.getNormalizedRarity(diamondStack);
// Standardized rarity is always in range 1-7, no extra handling needed
System.out.println("Normalized rarity: " + normalizedRarity);2. Rarity Registration and Management
java
import org.yanbwe.raritycore.registry.RarityRegistry;
import net.minecraft.world.item.Items;
// Register item rarity
RarityRegistry.register(Items.DIAMOND, 4); // Set diamond to Epic level
// Remove item rarity
RarityRegistry.unregister(Items.DIAMOND, true); // Remove and sync to clients
// Get localized tooltip
String tooltip = RarityRegistry.getLocalizedRarityTooltip(Items.DIAMOND);
System.out.println(tooltip); // Output like: "Epic ⭐⭐⭐⭐"3. Color Utility Usage
java
import org.yanbwe.raritycore.util.RarityColorUtil;
import net.minecraft.ChatFormatting;
// Get color based on rarity
ChatFormatting color = RarityColorUtil.getRarityChatColor(5); // Get Legendary color
int argb = RarityColorUtil.getRarityArgbColor(5); // Get ARGB color value4. Rarity Validation and Normalization
java
import org.yanbwe.raritycore.util.RarityValidator;
// Validate if rarity value is valid
boolean isValid = RarityValidator.isValidRarity(5); // true
// Normalize rarity value
int normalized = RarityValidator.normalizeRarity(10); // Returns 7
int normalized2 = RarityValidator.normalizeRarity(0); // Returns 15. Star Display Configuration
java
import org.yanbwe.raritycore.config.StarDisplayConfigManager;
import java.util.HashMap;
import java.util.Map;
// Set custom star display strings (levels 1-7)
Map<Integer, String> customStrings = new HashMap<>();
customStrings.put(1, "·");
customStrings.put(2, "··");
customStrings.put(3, "···");
customStrings.put(4, "◆");
customStrings.put(5, "◇");
customStrings.put(6, "★");
customStrings.put(7, "☆");
StarDisplayConfigManager.setCustomStarStrings(customStrings);
// Set special rarity texts (greater than 7)
Map<Integer, String> specialTexts = new HashMap<>();
specialTexts.put(8, "Mythic");
specialTexts.put(9, "Genesis");
specialTexts.put(10, "Endless");
StarDisplayConfigManager.setCustomSpecialRarityTexts(specialTexts);