
HavenBags
Create shulker-like bags of varying sizes bound to a player, or accessible by anyone.
v1.42.0.2806 New Features & Fixes
release1 мая 2026 г.Important: HavenBags now requires ValorlessUtils v1.19.0.374 in order to work.
Added: Crash detection to attempt to save bag data, in the case of a soft crash. Hard crashes may prevent this from running.
Added: Hidden command /havenbags debug resetTooltipStyle which resets ALL tooltip styles throughout the database.
Only OPs can use this for this reason.
Added: Hardcore Bags. If a bag is destroyed or despawned (like by fire or lava), the corresponding data is deleted from the database, erasing the bag from existence entirely.
# Should bags' data get deleted if the bag item is destroyed?
hardcore-bags:
enabled: false
unbound: true
bound: true
unused: true
used: true
Added: Bag Insurance. If enabled, players now have to pay a fee when restoring/deleting bags from the PlayerGUI. (Though EssentialsX)
# Allow players to make "Insurance Claims" in order to
# restore/delete their bags from the PlayerGUI.
# Requires 'player-gui' to be enabled.
insurance:
enabled: false
# The default claim cost.
default-cost: 1000
# Should the cost be increased by adding a static value or percentage?
# Valid types: ADD, PERCENT
type: PERCENT
# Cost increase, by either a static value or percentage.
# 2000 = Increase by 2000 each restore.
# 0.20 = Increase by 20% each restore. i.e 1200 if default is 1000. Next would be 1440, then 1728, etc.
increment-value: 0.20
# How often can players make claims?
cooldown-seconds: 300 # 300s = 5m
# How often should the cost increase reset?
# Set -1 for never
reset-time-seconds: 3600 # 3600s = 1h
# Lore added to bags in the gui showing the cost, max 1 line.
# Placeholders: %cost% - The cost of the claim.
lore: "&fCost: &a$%cost%"
Added: The ability to apply custom data to all bags when they're updated, depending on their size. This can be used to add interactability with other plugins. Note that the data is not removed if the entries are.
# Automatically write extra "tags" onto bag items when they update.
# You can set different tags per bag size (9, 18, etc.), stored either as NBT or plugin-namespaced PDC keys.
custom-data:
# Should we apply custom data entries onto bags when they update?
enabled: false
'9': # Affect 9 slot bags, can hold multiple entries.
example:
# Storage backend for a configured data entry, either NBT or PDC.
type: NBT
# The key for this entry.
key: 'coolKey'
# The value for this entry.
# Supports: String/Integer/Double/Boolean/Float/UUID
value: 44
example2:
# Storage backend for this entry, either NBT or PDC.
type: PDC
# Plugin name used for PDC namespacing.
plugin: 'HavenBags'
# The key for this entry.
key: 'coolKey2'
# The value for this entry.
value: 'awesomeValue'
# PersistentDataType - PDC only
# Supports: String/Integer/Double/Boolean/Float/UUID
pdc-type: STRING
'18': # Affect 18 slot bags, can hold multiple entries.
example:
# Storage backend for this entry, either NBT or PDC.
type: PDC
# Plugin name used for PDC namespacing.
plugin: 'HavenBags'
# The key for this entry.
key: 'coolKey'
# The value for this entry.
value: 44
# PersistentDataType - PDC only
# Supports: String/Integer/Double/Boolean/Float/UUID
pdc-type: INTEGER
Added: Bag health under the Bag Protection configuration, to protect bags while allowing them to break after a certain threshold.
# Should bags be protected from being destroyed by things such as Fire, Lava, Cactus, and other things?
protect-bags:
...
bag-health:
# Should protected bags have a certain amount of health, before they break?
enabled: false
# Delay between taking damage.
damage-delay: 5 # 5 second delay
# Health based on the amount of slots
health:
# Default health if the desired slot isnt on the list.
default: 3
'9': 3
'18': 4
'27': 5
'36': 6
'45': 8
'54': 10
Changed: Bag Protection has been split up and given new config values, you can now lock specific states.
# Should bags be protected from being destroyed by things such as Fire, Lava, Cactus, and other things?
Bag Protection:
enabled: true
unbound: true
bound: true
unused: true
used: true
Changed: Updated the command /bag info to now include additional information, no longer includes lore (as it was flooding,)
and now lets you copy UUIDs by clicking on the message.
Fixed: The max-bags feature should now correctly respect permissions.
Fixed: An ItemModel related issue on versions below 1.21.4.
Fixed: A typo in the API method createUnusedBagItem(int, boolean).
Fixed: Broken tooltip background on versions above 1.21.3.
Fixed: Bag restoration should now restore CustomModelData.
Fixed: An issue where SQLite and MySQL databases wouldn't load certain data correctly. Blacklist and TooltipStyle should now load as intended.
API changes: Added: The following methods to the API:
boolean<-isBagEmpty(ItemStack)boolean<-isBagEmpty(UUID)boolean<-isBagEmpty(String)boolean<-isBagHealthEnabled()int<-getBagDamage(ItemStack)void->setBagDamage(ItemStack, int)void->addBagDamage(ItemStack, int)int<-getBagCurrentHealth(ItemStack)int<-getBagMaxHealth(ItemStack)boolean<-closeBag(String)BagState<-getBagState(ItemStack)
Changed: BagDeletionEvent is now called when the bag is deleted from the database, rather than from the GUI.
v1.41.0-2.2733 Performance Updates
release2 марта 2026 г.v1.41.2.2754 Mod Update & Tooltip Hotfix
Changed: HavenBagsPreview data is now being stored in PDC alongside NBT, in order to still support older versions.
Fixed: An issue where hot-swapping the result in the Upgrade GUI, would overwrite the existing item.
Fixed: An issue where bag's tooltip styles on versions >= 1.21.3 where being set to minecraft:null. Any bag updated with this will have it's style reset.
Commit: eeb20f59
Pull: https://github.com/Valorless/HavenBags/pull/32
v1.41.1.2738 Skin Hotfixes
Fixed: Skins broken by update 1.41.0 should now correctly work again.
Fixed: An issue where unopened bags couldn't be skinned.
Commit: 76e61f4
Pull: https://github.com/Valorless/HavenBags/pull/31
v1.41.0.2733 Performance Updates
Important: Changed native version to 1.21.11.
Important: Refactored how data is stored internally, increasing overall performance.
Added: Additional MySQL configs:
mysql:
...
connect_timeout: 30 # Seconds
socket_timeout: 60 # Seconds
max_chunk_size: 200
Added: MySQL no longer saves all bags at once, but instead in chunks of 200.
Changed: Upgraded PvPManager dependency from v3.17.8 to v4.0.4.
Changed: Updated the way bags are stored in the cache, optimizing performance overall.
Changed: Increased performance when updating the bag items.
Changed: ValorlessUtils.SFX to HavenBags.utils.SFX and HavenBags.datamodels.Sound, which should solve SFX issues on certain versions.
Fixed: Increased performance in Lang by not fetching offline players when null.
Fixed: An issue causing skin tokens to not correctly parse the %skin% placeholder.
Fixed: An issue where giving bags would still took 1-6 sizes instead of the new 9, 18, 27, 36 ,45 ,54. Changed TabCompletion to reflect this.
Commit: 6e37f81
Pull: https://github.com/Valorless/HavenBags/pull/26
v1.5.2.377
release12 июля 2023 г.Нет описания изменений