Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • 🌸 SPRING FESTIVAL SALE 🌸

    Celebrate the joy of spring with 25% OFF on all Monthly Ranks 🎮

    Use coupon code:

    SPRING26

    ⏰ Limited time offer — Bloom before it's gone!

    🌿 Keep your subscription active to enjoy the same discount every month!

    Upgrade Now 🌸🚀
[Official] mcMMO - Original Author Returns!

Plugins MC [Official] mcMMO - Original Author Returns! 2.2.053

Register to download
Version 2.2.053
It is completely safe to update to this version of mcMMO.

To safeguard against some data loss (for block tracking, not player data) new versions of Paper can incur, I've added mcMMO Region data backups in this versions.

TL;DR: A recent change in Paper can cause data loss in mcMMO region files (which track blocks that should NOT give rewards) if Paper is updated before mcMMO. This does not affect player data, only mcMMO's own tracking of which blocks are "natural" and which aren't (placed by players, etc).

If you are using Spigot, you are not affected by this unless you plan to change to using Paper in the future.

Changes
  • mcMMO now backs up region data on Spigot and older Paper builds to help prevent this.
  • mcMMO will also migrate backed-up region data when present and when server software is using the Paper 26.1.2+ world layout (See notes)
  • Added 'General.RegionDataMigrationBackups.Enabled' config option to config.yml, which can disabled region data backups for anyone who doesn't plan on updating to newer Paper builds or using Paper
  • Fixed entities retaining their healthbar display name after chunk unload (Thanks Warriorrrr)
  • Fixed traveling block metadata leaking on Folia servers (Thanks Warriorrrr)
  • Fixed Magic Hunter (Fishing) enchantment conflict check not accounting for enchantments already accumulated during the same roll (Thanks Warriorrrr)
  • Fixed KnockOnWood XP orbs never spawning on nether/warped tree cap blocks during Tree Feller
  • Fixed Impale (Tridents) damage bonus formula applying one fewer rank of the multiplier than intended
  • Fixed melee attack strength scale resolving to near-zero after Paper fixed a vanilla attack cooldown bug in 26.1.2 (See notes)
  • Fixed server-side diminished returns state being evicted too early, allowing reconnects to bypass the DR window (See notes)
  • Added option to allow Magic Hunter (Fishing) to grant items with conflicting enchantments; disabled by default (Thanks Warriorrrr)
  • Added 'Skills.Fishing.Allow_Conflicting_Enchants' to config.yml (Thanks Warriorrrr)
  • (Codebase) Removed 27 dead JSON.* locale keys from all locale files (See notes)
  • (Codebase) Extracted per-player diminished returns tracking from PlayerProfile into DiminishedReturnsCache and DiminishedReturnsState
NOTES:

-- Read this first if you already updated to a newer Paper 26.1.2+ build --

mcMMO stores block data as '.mcm' files in each world's 'mcmmo_regions' folder.
Paper's world migration copies world_nether and world_the_end into new directories, but did not copy over mcMMO region files for those worlds, which results in data loss.
The main risk is for 'world_nether' and 'world_the_end', because Paper migration can remove old non-overworld roots before plugins load.
The Overworld (your main 'world') is safe because Paper keeps that folder and all mcMMO data in-tact (but no longer in the "right" spot), so mcMMO can still migrate existing overworld '.mcm' data and will do so when you run this update if it finds any.

Given you are reading this if you already updated Paper and got the new world migration BEFORE updating mcMMO, then you have this option which is not perfect to recover lost mcmmo_region data.
Recovery steps:

1) Stop the server fully.
2) Find mcmmo_regions data in any manual backups you make of your server/worlds
3) Copy recovered '.mcm' files for Nether/End only into these live folders (create folders if missing):
Nether: 'world/dimensions/minecraft/the_nether/mcmmo_regions/'
The End: 'world/dimensions/minecraft/the_end/mcmmo_regions/'
Do NOT manually copy old overworld '.mcm' files into 'world/mcmmo_regions/' in this scenario, only do this for nether and the end.
For your main world, mcMMO safely merges surviving overworld data on startup, and manual overworld copy/overwrite can lose some data.
4) Start the server.

This is an imperfect solution depending on how long your server has been running post updating Paper 26.1.2 before updating mcMMO, as the data will have drifted to some degree (mostly impacts data for the end and nether as stated before).

-- Read this if you have NOT updated Paper yet, or if you use Spigot instead --
Update mcMMO first, then run the server at least once with this mcMMO build before updating server software.
On a normal shutdown, mcMMO will make backups of its region files.
After that, you are safe to update to the newest Paper builds.

-- Read this if you don't know whether you already updated to the new Paper world format --
Identify the format by checking your world folders:
Old/legacy layout looks like this:
'world/'
'world_nether/'
'world_the_end/'
New Paper 26.1+ layout looks like this:
'world/'
'world/dimensions/minecraft/the_nether/'
'world/dimensions/minecraft/the_end/'
Quick check: if you see 'world/dimensions/minecraft/the_nether/' and 'world/dimensions/minecraft/the_end/', you are already on the new Paper format.
If you already have the new layout and only updated mcMMO now, mcMMO will safely migrate any surviving overworld '.mcm' data from 'world/mcmmo_regions/'.
This operation is safe and merges with any new data mcMMO finds.
In this scenario, only restore '.mcm' files manually for Nether/End.
Do NOT manually copy old overworld '.mcm' files into 'world/mcmmo_regions/' because that can overwrite merged data and lose some entries.
In that same scenario, old nether/end '.mcm' data is already gone, so copy those '.mcm' files from any manual backups you have and place them in:
'world/dimensions/minecraft/the_nether/mcmmo_regions/'
'world/dimensions/minecraft/the_end/mcmmo_regions/'
If you are already on the new format, follow the first section above for full recovery steps.
If you still have the old layout, follow the section above for Spigot/old Paper: update mcMMO first, run once, then update Paper.

-- Read this if you use Spigot and never plan to use Paper in the future --
You can disable the shutdown migration backup behavior with 'General.RegionDataMigrationBackups' in config.yml
Default is 'true'. Set it to 'false' if you are sure you will stay on Spigot and do not need mcMMO to make backups of its region files.
In simple terms: this setting controls whether mcMMO makes extra '.mcm' safety copies during shutdown for future Paper world-layout migration.
Turning it off reduces extra backup work on shutdown, but removes that Paper-migration safety net.

OTHER NOTES:
  • Diminished Returns for XP is an optional feature and is disabled by default, this update includes bug fixes for servers using it.
  • evictExpired() was removing freshly created DiminishedReturnsState entries before the player had registered any XP, orphaning the PlayerProfile reference and letting players bypass the DR window by reconnecting.
  • State is now preserved in a server-side DiminishedReturnsCache keyed by UUID and is only evicted after being idle for the full DR window.
  • Paper 26.1.2 fixed a bug where the player attack cooldown ticker was not resetting at the correct point during melee hits.
  • mcMMO was reading cooldown during the damage event and relied on the old (incorrect) order, so after Paper's fix it resolved to near-zero.
  • Attack strength is now back-derived from raw event damage and the player's attack damage attribute. No config changes are required.
  • The removed locale keys (JSON.Rank, JSON.JWrapper.Header, JSON.JWrapper.Target.{Type,Block,Player}, JSON.Hover.{SuperAbility,Mystery2}, JSON.Notification.SuperAbility, JSON.Acrobatics.Roll.Interaction.Activated, and all JSON.<SkillName> skill-name keys) can safely be removed from any locale_override.properties — they had no effect.
  • Fixed Mooshroom Shake drops not loading due to wrong entity ID in fishing_treasures.yml (see notes)
  • Fixed Minecraft version detection failing on Spigot servers, causing Tricky Trials potions to be skipped
  • Fixed Woodcutting bonus drops (Harvest Lumber, Clean Cuts) and Excavation treasure drops bypassing BlockDropItemEvent, making them invisible to Telekinesis-style enchant plugins (See notes)
  • Skill info tooltip colors are now fully customizable via locale strings — all colors in JSON hover components are driven by locale keys and support & codes, hex colors (&#RRGGBB), and [[COLOR_NAME]] tokens
  • Fixed incorrect effect durations for splash and lingering variants of Infestation, Weaving, Wind Charging, and Oozing potions in potions.yml (Thanks Warriorrrr) — existing servers are auto-migrated on first startup
  • Fixed an exploit where arrows from multishot crossbows could be recovered in regions protected by WorldGuard
  • Fixed an exploit where renamed seeds could trigger Green Thumb crop replanting without being consumed
  • Fixed an exploit where renamed mushrooms could trigger Shroom Thumb without being consumed
  • Fixed bug where Powered Shot (Crossbows) was reading MaxDamage from the Archery config section instead of its own
  • Fixed bug where Smelting Vanilla XP multiplier was not using Skills.Smelting.VanillaXPMultiplier values from advanced.yml
  • Fixed Fishing skill only working with main-hand fishing rod when fishing
  • Fixed bug where Block Cracker (Unarmed/Berserk) had no effect on deepslate_bricks, deepslate_tiles, polished_blackstone_bricks, and nether_bricks
  • Fixed Verdant Bounty (Herbalism) never triggering triple drops — the subskill was defined and displayed but was never checked during block break processing
  • Fixed bug where mob custom names could be permanently corrupted after healthbar display (see notes)
  • Fixed bug where vanilla mobs (null custom name) had their name incorrectly restored as an empty string instead of null after healthbar display
  • Fixed bug where hitting a mob multiple times during the healthbar display window caused the name to restore too early (see notes)
  • Changed mcMMO behavior around immature crop drops, no longer blocking drops from immature crops (See notes)
  • Removed Patreon and language translation links from the skill command URL bar
  • Added missing default value for 'Skills.Acrobatics.GracefulRoll.DamageThreshold' to advanced.yml
  • Added 'Skills.Crossbows.PoweredShot.RankDamageMultiplier' to advanced.yml
  • Added 'Skills.Crossbows.PoweredShot.MaxDamage' to advanced.yml
  • Added 'Skills.Maces.Crush.Base_Damage' to advanced.yml
  • Added 'Skills.Maces.Crush.Rank_Damage_Multiplier' to advanced.yml
  • Added 'Skills.Tridents.Impale.Base_Damage' to advanced.yml
  • Added 'Skills.Tridents.Impale.Rank_Damage_Multiplier' to advanced.yml
  • Added 'Skills.Repair.ArcaneForging.MaxEnchantLevel' to advanced.yml (See notes)
  • Added 'Skills.Salvage.ArcaneSalvage.MaxEnchantLevel' to advanced.yml (See notes)
  • Updated Simplified Chinese (zh_CN) locale with new Spears and Maces translations, color-code spacing fixes, improved fishing messages, and corrected ability wear-off message formatting (Thanks GhostDC)
  • Added & color codes to JSON hover tooltip keys and new JSON.URL.*.Detail, JSON.URL.Header, for consistency with locale_en_US.properties
  • (Codebase) Updated deprecated durability API usage to ItemMeta Damageable API (see notes)
  • (Codebase) Removed obsolete multishot arrow metadata marker system, modernized to native Spigot/Paper APIs
  • (Codebase) Simplified crossbow arrow handling by eliminating unnecessary custom metadata tracking
  • (Codebase) Replaced three separate healthbar metadata keys with a single HealthbarSnapshot record, eliminating duplicate restore logic spread across MobHealthDisplayUpdaterTask, CombatUtils, and TransientMetadataTools
  • (Codebase) Rewrote MobHealthDisplayUpdaterTask as a self-managing repeating polling task using lastHitMs timestamps to extend the display window on re-hits, replacing the single-shot runAtEntityLater approach
  • (Codebase) Removed unused Roll.printInfo(), Roll.getMechanics(), and Roll.getStats() overrides; deprecated SubSkill interface methods getStats() and getMechanics() for removal
  • (Codebase) LocaleLoader.formatComponent() now supports [[NAME]] color tokens (e.g. [[RED]], [[DARK_AQUA]], [[BOLD]]) by translating them to & codes before Adventure serialization, so all three mcMMO color formats (&X, &#RRGGBB, [[NAME]]) work in JSON hover components
  • (Codebase) Rewrote TextComponentFactory to use LocaleLoader.getTextComponent() throughout, eliminating all hard-coded NamedTextColor constants from JSON hover component construction — all colors and text are now fully configurable via locale strings
  • (Codebase) Added locale keys JSON.Type.Passive, JSON.Type.Active, JSON.Type.SuperAbility, JSON.Locked, JSON.LevelRequirement, JSON.DescriptionHeader, JSON.URL.*.Detail, JSON.URL.Header, JSON.URL.Label.* with appropriate & color codes in locale_en_US.properties
  • (Codebase) Modernized McMMOWebLinks enum with getDescriptionComponent(), getDetailComponent(), getLabelComponent() methods returning proper Adventure TextComponents
  • (Codebase) Removed dead TextUtils.addChildWebComponent() method
  • (Codebase) Bumped api-version in plugin.yml from 1.13 to 1.20.5, eliminating legacy bytecode field-rename shims applied by the server at load time


    NOTES:
  • The Mooshroom Shake fix is auto-migrated at startup (Shake.MUSHROOM_COW → Shake.MOOSHROOM in fishing_treasures.yml).
  • Regarding the telekenisis plugin compatibility fix, Tree Feller is not yet fixed, I will try to address it in the near future.
  • In this update I've added two new advanced.yml settings for more granular control of the enchant level cap for both Repair and Salvage, this is an alternative to flipping on ExploitFix.UnsafeEnchantments in experience.yml which simply uncaps both skills.
  • If ExploitFix.UnsafeEnchantments happens to be enabled in experience.yml, it will override both of these new settings and therefor allow basically uncapped enchant levels for Arcane Forging and Arcane Salvage.
  • Allowing the old setting to override is mostly for backwards compatibility so we don't disrupt any existing server behavior.
  • If you have this setting on, but you want to use the new more granular settings, simply turn off ExploitFix.UnsafeEnchantments and configure the new settings to your liking.
  • Regarding immature crops, mcMMO used to block them from dropping and just replanted them instead, now they will drop and only replant if you have the relevant seed in inventory, which matches vanilla behavior better.
  • The fishing hand-context changes in this update may fix reports where off-hand fishing seemed quicker than main-hand fishing.
  • Durability handling now uses ItemMeta Damageable APIs instead of deprecated ItemStack durability methods.
  • This may address some custom armor durability issues, but if you can still reproduce custom armor repairing when struck by axes, please report the bug with exact reproduction steps and custom-item/plugin details.
  • The mob custom name corruption bug: if a mob was hit again before the healthbar display timer expired, the healthbar string was being saved as the "original" name, so the mob would permanently show healthbar text after the timer fired.

2.2.051​

  • Like
Reactions: generex123

2.2.045​

  • Like
Reactions: clinq
Back
Top
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock