RarityCore API Documentation
This document is written for RarityCore 1211.12.9
Yanbwe tries to ensure that all versions have the same functionality. Additionally, since everything is built from scratch, the API for versions after 1.21.1 should have no differences.
Main API Classes
1. RarityRegistry (Core Registration Class)
Package path: org.yanbwe.raritycore.registry.RarityRegistry
Rarity Registration and Management
// 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)
// Check if item has auto-calculated rarity configuration
public static boolean hasAutoRarity(ResourceLocation itemId)
// Get item stack rarity level (supports item data matching)
public static @NotNull Integer getRarity(@Nullable ItemStack itemStack)
// Get item rarity level
public static @NotNull Integer getRarity(@Nullable Item item)
// Get standardized item rarity (recommended to use)
// Standardization means: null is treated as 1, less than 1 is treated as 1, greater than 7 is treated as 7
public static @NotNull Integer getNormalizedRarity(@Nullable Item item)
// Get standardized item rarity (supports item data matching)
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:
Item Data 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
// 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
// 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
// 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
// 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 coloring
public static boolean isEnableTooltipColor()
public static void setEnableTooltipColor(boolean enable)
// Tooltip insertion
public static boolean isEnableTooltipInsert()
public static void setEnableTooltipInsert(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
// 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
// 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
import org.yanbwe.raritycore.registry.RarityRegistry;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
// Get item rarity (supports item data matching)
ItemStack diamondStack = new ItemStack(Items.DIAMOND);
Integer rarity = RarityRegistry.getRarity(diamondStack);
// Rarity follows priority: Item Data 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
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
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
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
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);