All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning. Prior to version 5.2.0, this projected used Forge Recommended Versioning.
- Added
from
expansion additions to the/curios replace
command #450
- Slot types that use the
curios:all
validator will no longer be listed on item tooltips - Updated
pl_pl
localization #441
- Fixed cosmetic toggles not updating positions properly
- [NeoForge] Fixed erroneous data resources being added
- [NeoForge] Fixed potential recursive loop in Curios inventory
- Fixed slot resizing crash
- Fixed certain valid items being marked as invalid during loading and datapack reloading
- Fixed slot modifiers not being synced when the new inventory size is 0
- Fixed attribute modifier collisions
- Slot names without a localization will default to its identifier instead of its localization key
- [Forge] Fixed items disappearing from Curios inventory upon relogging when placed in slot indices after the first #422
- [API] Added
CuriosTooltip
helper class to build Curios-style tooltips - Added data fixers for Curios inventory items #411
- [NeoForge] Fixed block-breaking crash #421
- Fixed API package references
- [Forge] Fixed
ICurioItem
items not being registered properly
- [NeoForge] Refactored
CurioCanEquipEvent
andCurioCanUnequipEvent
to use NeoForge'sTriState
enum as the result #414
- Fixed crash with JEI integration #412
- [NeoForge] Fixed non-player entities constructing without curios inventory data
- [NeoForge] Fixed client-side item syncing issue #407
- [API] Added
CuriosApi#withSlotModifier
to generateItemAttributeModifiers
with a slot modifier attached
- Changed the default interface to the experimental menu and removed the legacy menu
- [API] Changed
Attribute
toHolder<Attribute>
, affecting the following:ICurio#getAttributeModifiers
ICurioItem#getAttributeModifiers
SlotAttribute#getOrCreate
CuriosApi#getAttributeModifiers
CuriosApi#addSlotModifier
CuriosApi#addModifier
- All modifier methods in
CurioAttributeModifierEvent
- [API] Changed
CurioEquipEvent
andCurioUnequipEvent
toCurioCanEquipEvent
andCurioCanUnequipEvent
- [API] Added
HolderLookup.Provider
to the signatures ofIDynamicStackHandler#serializeNbt
andIDynamicStackHandler#deserializeNbt
- Removed
addModifier
,addSlotModifier
, andgetAttributeModifiers
methods fromICuriosHelper
, use the methods inCuriosApi
with the same name instead - [Forge - API] Forge removed stack capabilities so curios can now only be registered through
CuriosApi#registerCurio
or implementingICurioItem
on the item - [Forge - API] Removed
CuriosApi#createCurioProvider
- [API] Added
CuriosApi#getCurioPredicates
- Added
tok
localization
- New interface no longer shifts the screen to the right
- Scrolling through pages in the new interface is twice as fast
- Lowered the maximum value of
maxSlotsPerPage
configuration option from 64 to 48
- Fixed generic curio slots from failing validation checks when only those slots exist on an entity #402
- Fixed potential backwards compatibility issue
- Fixed validators replacing instead of merging when defined
- Added a new opt-in user interface for the Curios screen, enable by setting "enableExperimentalMenu" to true in the curios-server.toml configuration file
- Added a configuration setting for configuring slots to the curios-common.toml configuration file
- Added "validators" as a field to the slot data files
- [API] Added the following methods to
ICuriosItemHandler
:isEquipped(Item)
isEquipped(Predicate<ItemStack>)
- [API] Added the following methods to
CuriosApi
:getSlotUuid(SlotContext)
registerCurioPredicates(ResourceLocation, Predicate<SlotResult>)
getCurioPredicate(ResourceLocation)
testCurioPredicates(Set<ResourceLocation>, SlotResult)
- Slot types now exist client-side and are synced from the server
- Slot validations for item stacks are no longer tied solely to item tags and now follow the "validators" field added to the slot data files
- Deprecated the following methods in
CuriosApi
, replaced by client and server-aware methods as listed in the javadocs:getSlot(String)
getSlotIcon(String)
getSlots()
getPlayerSlots()
getEntitySlots(EntityType<?>)
getItemStackSlots(ItemStack)
- Fixed tooltip crash #388
- Non-curio equippable items (such as armor) now support slot modifiers
- Insertion order of curio attribute modifiers are preserved instead of randomized in tooltips
- [Forge] Fixed crashes when calling Curios methods for powdered snow, Enderman visibility, and Piglin checks #381
- [NeoForge] Fixed mobs not spawning with assigned slots
- [API] Added more slot modifier methods
- Fixed slots being assigned to entities erroneously
- [NeoForge] Fixed items being lost if a slot is removed before logging into a world
- Added slot predicates to curio advancement equip triggers
- [API] Added data generation helper methods and classes for generating entities/slots data files and adding curios triggers to advancements, see documentation for more information
- [NeoForge] Updated to and requires NeoForge 20.4.117+ #368
- [NeoForge] Fixed
curios:item_handler
capability returning an empty inventory client-side #363
- Fixed validity checks not working in some cases
- Added Forge version
- NBT predicates and certain inventory checks will now include Curios items automatically #357
- Fixed NPE crashes if a mod tries to get the Curios inventory from a
null
entity #358 - [NeoForge] Fixed shearing not applying Fortune enchantment bonuses from curios
- Added
zh_tw
localization (thanks Lobster0228!) #356
- Updated to Minecraft 1.20.4
- Updated to Minecraft 1.20.3
- [NeoForge] Reworked curios capabilities to work with revamped capability system
- Capabilities can be found in
top.theillusivec4.curios.api.CuriosCapability
LazyOptional
fields converted to regularOptional
fields- Removed
CuriosApi#createProvider
- Capabilities can be found in
- Added NeoForge support
- Curios inventory keybinding now also closes the current container to mimic the behavior of the vanilla inventory keybinding #352
- Fixed slots failing to sync after world load #347
- Fixed lost icons when reloading datapacks
- Fixed network decoding errors #346
- Fixed
CurioAttributeModifierEvent
crashing when used for slot modifiers #351
- Updated to and requires Forge 48.0.32 or above
- Fixed
list
command not outputting all possible data
- Fixed
keepInventory
gamerule applying to non-player entities for curios slots
- Updated to Minecraft 1.20.2
- Fixed items not showing their curio tooltips on clients connected to dedicated servers #337
- Fixed the
"replace"
field causing incorrect slot amounts during slot loading
- Fixed slot loading on client-only entities
- Fixed multiplayer client-side command argument errors
- [API] Added
CuriosApi#registerCurio
method for more modular curio definitions - [API] Added
CuriosApi#createCurioProvider
method for more convenient Curios capability attachments - Added support for
"conditions"
in slot data and entity slot data in datapacks
- Fixed item insertions handled directly through item handlers not being validated #238
- Fixed backwards compatibility with mods using
top.theillusivec4.curios.common.CuriosHelper.SlotAttributeWrapper
- Added
keepCurios
configuration option tocurios-server.toml
#181 - Added inventory searching methods from
ICuriosHelper
toICuriosItemHandler
- Re-added JEI integration
- Updated
uk_ua
localization (thanks unroman!) #320 - Updated slot tooltip to use
"curios.tooltip.slot": "Slot:"
in localization files #329
- Deprecated
ICuriosHelper
,ISlotHelper
, andIIconHelper
, to be removed in Minecraft 1.22. Check javadocs for replacement functionality and methods. - Marked previous deprecations for removal in Minecraft 1.21.
- Fixed slots not being recognized in server-side command arguments #327
- Fixed equip from use behavior to properly validate unequip behavior first #332
- Fixed
CuriosEquipEvent
firing erroneously #305 - Fixed item insertions handled directly through item handlers not being validated #238
- Fixed status effects not rendering in the Curios GUI #95
- Updated to Minecraft 1.20.1
- Fixed crash upon loading world with a mod that uses legacy IMC slot registration #314
- Fixed log spam #312
- Added new slot and entity registration through datapacks, see Curios Documentation for more information
- Updated to Minecraft 1.20
- Curios capabilities have been extended natively to all
LivingEntity
entity types
- Deprecated
SlotTypeMessage
andSlotTypePreset
, registration through datapacks is now recommended over IMC
- Removed Curios server configuration file
- Fixed default curio slot texture not showing properly
- Updated
ru_ru
localization (thanks Heimdallr-1!) #302
- Curios swapping will now take into account all valid slots instead of just the first valid slot
- Fixed duplication bug when equipping from use in the hotbar
- Added
CurioAttributeModifierEvent
for editing curio attribute modifiers in slots #292
- Curios that can be equipped from use in the hotbar will now swap with existing curios in valid slots #301
- Fixed toggle visibility buttons causing menu issues when clicked #296
- Updated to Minecraft 1.19.4
- Updated slot textures to match new Minecraft slot textures
- Added
vi_vn
localization (thanks ZzThanhBaozZ!) #289
- Updated
it_it
localization (thanks WVam!) #288
- Fixed crashes when slots get resized to negative amounts dynamically
- Added
/curios drop
command for dropping curio items
- Fixed curio entity selectors counting slots with size 0 erroneously
- Fixed
SlotModifiersUpdatedEvent
not always firing
- Added
SlotModifiersUpdatedEvent
to listen for broadcasted dynamic changes to slot sizes on players due to slot modifiers #276 - Added two commands:
/curios replace <slot> <index> <player> with <item> [count]
for setting items to curio slots/curios list
for listing all registered slots and which mods they come from #261
- Added
ICuriosHelper#setEquippedCurio
andICuriosHelper#findCurio()
for setting items into curio slots and getting items from curio slots respectively
ICurio#onEquipFromUse
now fires when items are placed into slots in inventory screens
- Fixed equip sounds not playing properly in the Curios screen (thanks bconlon!) #281
- Added new
ICurio#canWalkOnPowderedSnow
method for curio implementations that allow walking on Powdered Snow blocks (thanks bconlon!) #273
- Fix version requirements for Minecraft and Forge
- Updated to Minecraft 1.19.3
- Updated to Forge 44.0.0+
- Updated Portuguest (pt_br) localization (thanks FITFC!) #265
- Removed JEI integration temporarily until the mod is ported to 1.19.3
- Re-added JEI integration
- Updated to Minecraft 1.19.2
- Updated to Forge 43.0.0+
- Updated Polish (pl_pl) localization (thanks Greg-21!) #247
- Updated Ukranian (uk_ua) localization (thanks Sushomeister!) #245
- Updated to Minecraft 1.19.1
- Updated to Forge 42.0.0+
- Updated to and requires Forge 41.0.94+
- Updated to and requires Forge 41.0.64+
- Temporarily removed JEI integration as the mod is not compatible currently with the required versions of Forge
- Re-added JEI integration
- Fixed datapack functions failing to load when utilizing Curios slot commands #240
- Fixed null attributes crashing clients when hovering over curio tooltips #242
- Revert
CurioSlot
patch - Updated to and requires Forge 41.0.8+
- Updated to Minecraft 1.19+
- Updated to Forge 41+
- Fixed possible NullPointerException crash from SlotResult
- Added
/curios drop
command for dropping curio items
- Fixed curio entity selectors counting slots with size 0 erroneously
- Added new
ICurio#canWalkOnPowderedSnow
method for curio implementations that allow walking on Powdered Snow blocks (thanks bconlon!) #273 - Added
SlotModifiersUpdatedEvent
to listen for broadcasted dynamic changes to slot sizes on players due to slot modifiers #276 - Added two commands:
/curios replace <slot> <index> <player> with <item> [count]
for setting items to curio slots/curios list
for listing all registered slots and which mods they come from #261
- Added
ICuriosHelper#setEquippedCurio
andICuriosHelper#findCurio()
for setting items into curio slots and getting items from curio slots respectively
- Fixed datapack functions failing to load when utilizing Curios slot commands #240
- Fixed null attributes crashing clients when hovering over curio tooltips #242
- Added
it_it
localization (thanks BlackShadow77!) #235 - Added
curios:set_curio_attributes
loot function - Added support for
minecraft:freeze_immune_wearables
tagged items in curios slots
- Fixed curios Fortune levels being applied to other enchantments #234
- Updated to Minecraft 1.18.2
- Updated
ko_kr.json
localization (thanks PixVoxel!) #223
- Fixed curios being unequipped when used with additional slots and relogging #218
- Fixed NPE crash with certain mods that implement their own Curios providers #225
- Updated
ko_kr.json
localization (thanks mindy15963!) #211
- Fixed
ICurioItem#getEquipSound
not being called #222 - Fixed crashes with out-of-bound indices when unequipping items that provide slot attribute modifiers #221
- Added
uk_ua.json
localization (thanks Sushomeister!) - Added new entity selector option,
curios=
. More information at the wiki.
- Updated
ru_ru.json
localization (thanks Sushomeister!)
- Fixed deprecated usages of
ISlotHelper#unlockSlotType
andISlotHelper#lockSlotType
modifying slots differently from previous behavior - Fixed deprecated usages of
ISlotHelper#growSlotType
andISlotHelper#shrinkSlotType
logging client-side errors to the console while in the Curios inventory
- Fixed dragged items desyncing when switching between Curios and the Creative inventory screen #202
- [API] Added
findFirstCurio
andfindCurios
methods toICuriosHelper
- Updated
ko_kr
localization (thanks mindy15963!) #200
- [API] Deprecated
findEquippedCurio
methods inICuriosHelper
- Fixed knockback resistance tooltips not being formatted correctly
- Fixed dragged items desyncing when switching between Curios and vanilla screens
- Fixed clearing inventory via Creative 'x' button resulting in lingering attribute modifiers when equipped
- Fixed client-side syncing errors when applying slot modifiers to slots with base size 0
- Fixed slot amount changes persistent when not applicable
- Fixed crash related to Fortune loot functions #198
- [API] Added
makesPiglinNeutral
method for creating curios that can make piglins neutral like gold armor #86 - [API] Added
isEnderMask
method for creating curios that can hide player heads from Endermen like carved pumpkins #196 - Added mixins, developers building against this version of Curios and newer will need to make sure their environment is configured for mixin dependency development (see README.md)
- Replaced fortune global loot modifier with internal methods
- Fixed slot amount changes not persisting when applicable
- Fixed slot amount changes causing loading errors #195
- Re-add Just Enough Items integration
- Updated to Minecraft 1.18.1
- Updated Russian localization (thanks DrHesperus!) #190
- [API]
ICurio#canEquipFromUse
andICurio#onEquipFromUse
methods are now called both client-side and server-side (previously server-side only)
- Fixed curio items not calling their
use
logic client-side #192
- Fixed crash with client-side player entities #189
- Fixed crash when running data generation in development environments #188
- Fixed slots not being loaded correctly in some situations
- Fixed slot size desyncs when players have more than one of any slot type #185
- Updated to Minecraft 1.18
- Updated to Forge 38+
- Fixed deprecated usages of
ISlotHelper#unlockSlotType
andISlotHelper#lockSlotType
modifying slots differently from previous behavior - Fixed deprecated usages of
ISlotHelper#growSlotType
andISlotHelper#shrinkSlotType
logging client-side errors to the console while in the Curios inventory - Fixed knockback resistance tooltips not being formatted correctly
- Fixed dragged items desyncing when switching between Curios and vanilla screens
- Fixed clearing inventory via Creative 'x' button resulting in lingering attribute modifiers when equipped
- Fixed client-side syncing errors when applying slot modifiers to slots with base size 0
- Fixed slot amount changes persistent when not applicable
- Fixed slot amount changes not persisting when applicable
- Fixed slot amount changes causing loading errors #195
- [API]
ICurio#canEquipFromUse
andICurio#onEquipFromUse
methods are now called both client-side and server-side (previously server-side only)
- Fixed curio items not calling their
use
logic client-side #192
- Fixed crash with client-side player entities #189
- Fixed crash when running data generation in development environments #188
- Fixed slots not being loaded correctly in some situations
- Fixed slot size desyncs when players have more than one of any slot type #185
- Fixed potential crash on dedicated servers #184
- Fixed resource loading crashing when invalid texture files are found #183
Please note that this update is more experimental than most and is marked as a beta. Be cautious about adding this to stable worlds.
- [API] Added slot modifier system, see the wiki page for more info. This is the main reason the update is experimental. Although this system was designed to be backwards compatible, be wary of issues with older slot modification methods. #178
- [API] Added
CurioEquipEvent
andCurioUnequipEvent
to allow modders the ability to intercept and change equip/unequip results #174 - [API] Added new slot texture registration method: textures located in the
assets/curios/textures/slot
directory in any mod or resource pack will be automatically stitched to the texture atlas and usable by slots #145 - [API] Added
ICuriosItemHandler#saveInventory
andICuriosItemHandler#loadInventory
for saving/loading the Curios inventory more conveniently #164
- Fixed syncing slot shrinking client-side #179
- Added Polish translation (thanks Greg-21!) #163
- Re-added Just Enough Items integration
- Updated to Forge 37.0.42+
- Fixed slots desyncing when shrinking/growing amounts
- Fixed NPE when using cosmetic slots #157
- Added
getStack
method toICurio
- Added slot context-sensitive alternatives to methods in
ICurio
andICurioItem
- Added new rendering system, see the GitHub wiki for more details
- Updated to Minecraft 1.17.1
- Deprecated methods in
ICurio
andICurioItem
without slot contexts - Deprecated locking and unlocking slot states
- Removed
render
andcanRender
fromICurio
andICurioItem
- Removed ring, amulet, crown, and knuckles items
- [API] Added
SlotModifiersUpdatedEvent
to listen for broadcasted dynamic changes to slot sizes on players due to slot modifiers - [API] Added
ICuriosHelper#setEquippedCurio
andICuriosHelper#findCurio()
for setting items into curio slots and getting items from curio slots respectively - Added new commands:
/curios drop
for dropping curio items from slots/curios list
for listing curio slots and origins/curios replace
for setting curio items into slots
- Added
curios:set_curio_attributes
loot function
- Fixed curio entity selectors counting slots with size 0 erroneously
- Fixed startup crashes with ConcurrentModificationException
- Updated
fr_fr.json
localization (thanks HollishKid!) #228
- Fixed slot modifiers incorrectly persisting in some cases
- Updated
ko_kr.json
localization (thanks PixVoxel!) #223
- Fixed curios being unequipped when used with additional slots and relogging #218
- Fixed NPE crash with certain mods that implement their own Curios providers #225
- Added
uk_ua.json
localization (thanks Sushomeister!) - Added new entity selector option,
curios=
. More information at the wiki.
- Updated
ru_ru.json
localization (thanks Sushomeister!)
- [API] Added
findFirstCurio
andfindCurios
methods toICuriosHelper
- Updated
ko_kr
localization (thanks mindy15963!) #200
- [API] Deprecated
findEquippedCurio
methods inICuriosHelper
- Fixed knockback resistance tooltips not being formatted correctly
- Fixed clearing inventory via Creative 'x' button resulting in lingering attribute modifiers when equipped
- Fixed client-side syncing errors when applying slot modifiers to slots with base size 0
- Fixed slot amount changes persistent when not applicable
- Fixed slot amount changes not persisting when applicable
- Fixed slot amount changes causing loading errors #195
- [API]
ICurio#canEquipFromUse
andICurio#onEquipFromUse
methods are now called both client-side and server-side (previously server-side only)
- Fixed curio items not calling their
use
logic client-side #192
- Fixed crash with client-side player entities #189
- Fixed crash when running data generation in development environments #188
- Fixed slots not being loaded correctly in some situations
- Fixed slot size desyncs when players have more than one of any slot type #185
- Fixed potential crash on dedicated servers #184
- Fixed resource loading crashing when invalid texture files are found #183
- Fixed syncing slot shrinking client-side, actually this time
Please note that this update is more experimental than most and is marked as a beta. Be cautious about adding this to stable worlds.
- [API] Added slot modifier system, see the wiki page for more info. This is the main reason the update is experimental. Although this system was designed to be backwards compatible, be wary of issues with older slot modification methods. #178
- [API] Added
CurioEquipEvent
andCurioUnequipEvent
to allow modders the ability to intercept and change equip/unequip results #174 - [API] Added new slot texture registration method: textures located in the
assets/curios/textures/slot
directory in any mod or resource pack will be automatically stitched to the texture atlas and usable by slots #145 - [API] Added
ICuriosItemHandler#saveInventory
andICuriosItemHandler#loadInventory
for saving/loading the Curios inventory more conveniently #164
- Fixed syncing slot shrinking client-side #179
- Added Polish translation (thanks Greg-21!) #163
- Fixed slots desyncing when shrinking/growing amounts
- Fixed null NBT tag crashes when syncing #152
- Fixed class-loading errors by annotating curio render methods with
OnlyIn(Dist.CLIENT)
#121
- Added Catalogue integration
- Added Spanish translation (thanks FrannDzs!) #139
- Slots can now be assigned 0 size
- Fixed curio-item use desyncs #141
- Fixed shift-clicking curio slot priority #108
- Fixed curio button offsets #140
- Reverted some changes from previous version so that invalidation only happens due to tag updates, modified curio behavior may cause lingering items but fixes issues with invalidating curios from various mods #124
- Fixed button offset with Quark backpack (thanks BookerCatch!) #119
ICurio#onEquip(SlotContext, ItemStack)
ICurio#onUnequip(SlotContext, ItemStack)
ICuriosHelper#isStackValid(SlotContext, ItemStack)
- Items that are invalidated while in a slot, due to modified tags or changed curio behavior, will now automatically eject from its slot and be given to the player
- Corrected Chinese translation (thanks qsefthuopq!) #106
ICurio#onEquip(String, int, LivingEntity)
Icurio#onUnequip(String, int, LivingEntity)
SlotContext
for providing and retrieving slot context throughout the APIICurio#getEquipSound(SlotContext)
#104ICurio#canEquipFromUse(SlotContext)
ICurio#onEquipFromUse(SlotContext)
ICurio#getAttributeModifiers(SlotContext, UUID)
ICurioItem#getEquipSound(SlotContext, ItemStack)
ICurioItem#canEquipFromUse(SlotContext, ItemStack)
ICurioItem#onEquipFromUse(SlotContext, ItemStack)
ICurioItem#getAttributeModifiers(SlotContext, UUID, ItemStack)
ICuriosHelper#getAttributeModifiers(SlotContext, UUID, ItemStack)
ICurio#canRightClickEquip()
#102ICurio#playRightClickEquipSound(LivingEntity)
#102ICurio#getAttributeModifiers(String)
ICurioItem#canRightClickEquip(ItemStack)
#102ICurioItem#playRightClickEquipSound(LivingEntity, ItemStack)
#102ICurioItem#getAttributeModifiers(String, ItemStack)
ICuriosHelper#getAttributeModifiers(String, ItemStack)
- Fixed crash related to performing logic on empty itemstacks
- Fixed command slot type identification for dedicated servers
- Added Korean localization (thanks othuntgithub!) #97
- Reverted ICurio#onUnequip change from 4.0.3.1
- [API] ICurio#onUnequip now passes the actual ItemStack instance instead of a copy
- [API] ICurioItem interface for simple hard-dependency item implementations
- Minor improvements to "Curio" slot type and tag for universal acceptance
- Fixed infinite log spam when using recipe book #91
- Fixed command client crashes #89
- Fixed overextended texture in Curios GUI
- Updated to 1.16.4
- "Curio" slot type now accepts any curio item #78
- Fixed NPE with Mahou Tsukai's scrying #77
- Fixed empty tags being attached to items #80
- Fixed render buttons toggling wrong slot #75 #84
Update courtesy of Extegral, thanks! #72
- [API] Added ICurio#showAttributesTooltip for toggling attribute tooltips per curio
- [API] Added ICurio#getFortuneBonus for adding fortune levels when curio is equipped
- [API] Added ICurio#getLootingBonus for adding looting levels when curio is equipped
- Added curios:equip_curio criterion trigger for listening to curio equips
- Updated Russian localization
- Fixed bug with recipe book persisting on Curios screen when going from Survival to Creative
- Added Brazilian localization (thanks Mikeliro!) #65
- Updated to Minecraft 1.16.3
- Fixed crashing when attempting to unlock/lock slots in equip handlers #68
- Fixed misaligned render toggle buttons with non-natively-positioned slots
- Updated to Forge 33.0.21
- Updated to Minecraft 1.16.2
- Archive base name changed from "curios" to "curios-forge"
- Mod version no longer contains "FORGE"
- Fixed toggle render buttons desyncing when scrolling
- Fixed recipe book offsets in Curios GUI
- [API] Moved ICuriosItemHandler#handleInvalidStacks call to tick event
- Fixed hidden slots still being handled by Curios GUI
- Fixed Curios button disappearing when switching tabs in Creative menu #55
- Fixed being able to right-click Curios items into any slot #56
- Fixed crashes with Forge 32.0.67+ #53
- [API] IMC messages can now process iterable collections of SlotTypeMessage
- [API] Added ICuriosHelper#getEquippedCurios that obtains all equipped, non-cosmetic curios
- [API] IDynamicStackHandler now extends IItemHandlerModifiable
- Fixed NPE when registering no icon for a slot type
- Opt-in cosmetic slots for slot types
- Toggleable rendering for equipped curio items
- "Bracelet" has been added as a potential preset slot type
- Ported to 1.16.1 Forge
- Slot types are now handled server-side, allowing for per-world slot configurations
- Icon registration is now done alongside slot registration without needing a separate IMC message
- ItemStacks with different durabilities will trigger curio change events
- Names:
- LivingCurioChangeEvent -> CurioChangeEvent
- LivingCurioDropRulesEvent -> DropRulesEvent
- LivingCurioDropsEvent -> CurioDropsEvent
- CurioIMCMessage -> SlotTypeMessage
- CuriosAPI -> CuriosApi
- ICurioItemHandler -> ICuriosItemHandler:
- getCurioMap -> getCurios
- setCurioMap -> setCurios
- getStackHandler -> getStacksHandler
- enableCurio -> unlockSlotType
- disableCurio -> lockSlotType
- addCurioSlot -> growSlotType
- removeCurioSlot -> shrinkSlotType
- getDisabled -> getLockedSlots
- addInvalid -> loseInvalidStack
- dropInvalidCache -> handleInvalidStacks
- ICurio:
- onCurioTick -> curioTick
- onCurioAnimate -> curioAnimate
- onEquipped -> onEquip
- onUnequipped -> onUnequip
- playRightClickEquipSound -> playEquipSound
- onCurioBreak -> curioBreak
- shouldSyncToTracking -> canSync
- getSyncTag -> writeSyncData
- readSyncTag -> readSyncData
- hasRender -> canRender
- Commands:
- enable -> unlock
- disable -> lock
- Abstraction:
- CurioType abstracted to ISlotType
- CurioStackHandler abstracted to ICurioStacksHandler
- CuriosApi split into three helper interfaces (IIconHelper on the client, ISlotHelper on the server, ICuriosHelper for both)
- CurioTags functionality refactored into SlotTypePresets
- The above changes are only for the API, the rest of the classes have also had extensive changes
- Fixed crash related to performing logic on empty itemstacks
- Curios GUI no longer tries to render list without visible slots
- Fixed hidden slots still being handled by Curios GUI
- Curios scroll bar has more precise scrolling and the scroll position now persists during a session
- Fixed empty item states being ticked while in Curio slots #50
- Added Chinese localization (thank you EnterFor!)
- Added support for curio attribute modifiers using NBT tags, simply replace "AttributeModifiers" with "CurioAttributeModifiers"
- [API] ICurio#onCurioAnimate - Called every tick client-side only while curio is equipped
- Fixed compatibility issue with Ensorcellation's Soulbound enchantment #41
- Updated to 1.15.2
- Re-added JEI integration
- Added Japanese localization (thanks MORIMORI0317!)
- Fixed generic curio slot icon showing missing texture
- Ported to 1.15.1
- [API] ICurio#doRender -> ICurio#render
- Curio rendering no longer automatically applies sneaking translations
- Curio slot icons need to be manually stitched into the block texture atlas
- Japanese localization (thanks MORIMORI0317!)
- [API] ICurio#getDropRule for specifying drop on death behavior (DEFAULT, ALWAYS_DROP, ALWAYS_KEEP, DESTROY)
- [API] LivingCurioDropRulesEvent for specifying drop on death behavior overrides based off a Predicate
- Added separate config options for Curio button positioning in Creative GUI #35
- Added recipe book button to Curios GUI #31
- Fixed rendering bug with JEI integration #35
- Added config options for Curio button positioning #33
- Picked up items will now persist when switching to and from the Curios GUI #32
- Updated Russian localization (thanks Extegral!) #30
- Using the curios command with an invalid slot type will now throw an error (thanks ItsTheBdoge!) #29
- Fixed JEI bookmarks overlapping with Curios GUI
- [API] Added LivingCurioDropsEvent, fired inside Curio's LivingDropsEvent handler and allowing modders to edit the list of dropped curios added to the overall drops list.
- Updated Russian localization (thanks Extegral!) #27
- Fixed scroll wheel not working in the Curios GUI for slot list
- Fixed UnsupportedOperationException crashes
- [API] Added CuriosAPI#setSlotsForType helper method to set slot sizes for a given entity and curio type identifier (thanks ItsTheBdoge!) #26
- [API] Added built-in support for "hands" curio type
- [API] Added ICurio.RenderHelper#followBodyRotations to rotate models according to entity pose
- Added new test item for "hands", Curious Knuckles
- Changed tooltip for curio tags on items #26
- [API] Added CuriosAPI#getSlotsForType helper method to retrieve slot sizes for a given entity and curio type identifier
- Updated Russian localization (thanks Extegral!) #24
- Fixed attribute modifiers not being applied when respawning with keepInventory gamerule set to true #23
- [API] Added generic "curio" tag for items that can go into any curio slot
- [API] Added ICurio#getTagsTooltip to allow modders to customize curio tags tooltip information
- Added size alteration to createCurios config option by appending a semicolon and a size amount
- Fixed curio attribute modifiers not respecting HideFlags
- Added Russian localization (thanks Extegral!) #21
- Fixed localization of Curios modifier tooltips, each one will now require an explicit key for each identifier #19
- Fixed item duplication exploit when right-click equipping Curios
- Fixed creative GUI behavior that caused shift-right-clicking to unintentionally destroy all Curios #17
- Added Curios button to the Creative inventory screen
- [API] Re-formatted and updated some javadocs
- Updated to Forge RB 1.14.4-28.1.0
- Fixed client desyncing with items in curio slots #15
- Fixed sneak transformations on curio renders when in creative flight #14
- Attempt #2 to fix startup crashes #12
- Shift-clicking the delete item slot in the creative GUI will now clear all curios as well as the inventory
- Attempted to fix crashes on startup related to networking errors #12
- [API] Refactored API to remove references to main Curios mod
- Moved Curio type tooltip to right below the item's display name
- Fixed Curio items disappearing when returning from the End #11
- Updated Forge version to 28.0.45 to accommodate for a breaking change
- [API] Added call to ICurio#onCurioTick(String, LivingEntity) from ICurio#onCurioTick(String, int, LivingEntity) for backwards compatibility
- [API] ICurio#onCurioBreak and CuriosAPI#onBrokenCurio for implementing break animations for curios in curio slots, defaulting to vanilla behavior but allowing for overrides as well
- [API] Added ICurio#onCurioTick(String, int, LivingEntity) for index-sensitive tick calls
- [API] onUnequipped and onEquipped methods now fire only when items are different and ignore durability
- [API] ICurio#onCurioTick(String, LivingEntity) has been deprecated in favor of the index-sensitive version
- Fixed bug with Curios stacks not being cleaned up in the slots
- Updated to 1.14.4 Forge
- Fixed player twitching when switching to/from Curios inventory
- Fixed items being duplicated when attempting to shift-click from the Curios GUI
- Fixed Curios items not being able to be shift-clicked into an appropriate slot without capabilities
- Fixed Curios items disappearing when returning from the End or using gamerule keepInventory on death
- Fixed Curious Crown night vision desyncing with client on login
- Fixed Curios GUI sometimes being colored purple due to an enchanted item being rendered
- [API] Removed fallback for missing identifier lang entries, so modders and users need to define these explicitly if they're not provided internally by Curios
- Fixed missing identifier lang entries for some common Curio tags
- Ported to 1.14.3 Forge
- [API] CuriosAPI#getType now returns an Optional value
- [API] CuriosAPI#getCurioEquipped methods each now return an Optional ImmutableTriple
- [API] Moved IMC processing out of the API
- [API] CuriosAPI#registerIcon has been removed and replaced with IMC processing
- [API] CuriosAPI#getIcons has been removed and replaced with CuriosAPI#getIcon(String)
- [API] CuriosAPI.FinderData class and usages have been removed and replaced with ImmutableTriple
- Updated to last 1.13.2 Forge and mappings
- Slot icons for commonly used terms for potential slots
- [API] Curio item tag dictionary is available as a holder class to provide commonly used terms for potential slots
- [API] Major API changes to streamline methods and emphasize concurrent determinism so that the registry will always output the same results.
- Slot registry converted to IMC process
- Icon registry isolated to client-side
- Some CuriosRegistry methods moved to CuriousAPI so that the latter contains all methods intended for third-party use
- [API] Debug "Amulet" slot changed to "Necklace" slot
- Fixed mods.toml so that URL and Authors fields show up correctly in the mod menu
- Fixed right-click equip syncing
- Fixed new icons not being recognized by old slots
- Reobfuscation publishing
- API and sources jars
- Updated mod icon
- Attribute tooltips for curios have been slightly modified to match vanilla semantics and are now gold-colored
- [API] Fix possible thread safety issues #1
- [API] CuriosAPI#getCurioEquipped methods now return data about the ItemStack as well
- Fixed some syncing issues
- [API] Added filtered CuriosAPI#getCurioEquipped method
- Now able to access curios in Creative mode
- [API] Added ICurio#getSyncTag and ICurio#readSyncTag(NBTTagCompound) for additional data syncing
- [API] Re-added ICurio#onEquipped(String, EntityLivingBase) and ICurio#onUnequipped(String, EntityLivingBase) methods
- [API] Added RenderHelper for holding helpful rendering utility methods
- [API] Change return of some CurioRegistry methods to be immutable to prevent access to certain registry data
- Added crown item
- [API] Changed CurioAPI#getCurioEquippedOfType(String, Item, EntityLivingBase) to a more robust CurioAPI#getCurioEquipped(Item, EntityLivingBase) that returns more data about the found stack
- Modified speed bonus on ring item
- Fixed inverted tracking sync checks
- Fixed dedicated server crashes
- [API] Added ICurio#playEquipSound(EntityLivingBase) method
- [API] Removed ICurio#onEquipped(String, EntityLivingBase) and ICurio#onUnequipped(String, EntityLivingBase) methods
Initial beta release