(API) add causingPlayer to McMMOReplaceVanillaTreasureEvent and update Fish Event to use it (thanks bobcat4848 and Jacob Cuomo)
Notes:
Tested this version of mcMMO against 1.21.3, 1.21.1, and 1.19.4, which should be full coverage for all the changes, but it is possible you will run into things I didn't catch.
Please report any errors or bugs to GitHub if you find them.
I'll need to rework Alchemy config logic a bit further to address some issues I've found, for now mcMMO will ignore harmless matching errors in the potion matching logic.
The Herbalism XP gained when breaking certain plants that can grow unnaturally tall vertically (bamboo, kelp) is now capped to the most it could give when naturally grown, this can be disabled in experience.yml
Added 'ExploitFix.LimitTallPlantFarming' to experience.yml
This probability bug was a big oopsie and showed a gap in unit test coverage, I've added that coverage and a bug like this in theory shouldn't happen again.
A setting has been added to disable player-created super tall plants from giving full XP, this is on by default, you can tun it off in experience.yml via 'ExploitFix.LimitTallPlantFarming'
Skills.General.Attack_Cooldown.Adjust_Skills_For_Attack_Cooldown is a new setting in advanced.yml that will allow you to ignore attack cooldowns for the combat skills.
Fixed a bug where spamming attacks would still apply full bonus dmg and full chance to proc abilities (see notes)
Fixed some misc missing permissions for crossbows/tridents
NOTES:
You shouldn't need to update repair.vanilla.yml, it should update automatically
Maces is a new skill that is in early development, feedback is appreciated.
Some ideas I had for the Maces are on hold as they are lacking proper API from Spigot.
This is mostly pertaining to smash attacks, I had some ideas for enhancing them but without the proper API I will hold off for now.
While working on Maces, I noticed a bug where spamming attacks would still apply full bonus damage and full chance to proc abilities, this has been fixed.
When you swing your weapon in Minecraft, you gain an "Attack Strength" value, which is relative to your cooldown, mcMMO was supposed to be making use of this value, but at some point in the past this was broken.
I have fixed this and now mcMMO will use the attack strength value to determine the bonus damage and chance to proc abilities.
For servers modifying Minecraft combat to not have this "cooldown", mcMMO should behave as you would expect, with full damage and full chance to proc abilities even when spamming attacks.
Missing entries does not mean these things wouldn't work without them present, as default values will be used when config entries are not present.
These missing entries should be added to your config upon start up with this update.
Regarding the API changes, not planning to delete the deprecated methods in UserBlockTracker anytime soon, as nothing has really changed other than the names.
For anyone consuming mcMMO API, I would still recommend switching off these deprecated methods as soon as you can, just for future-proofing.
mcMMO-exclusive Potions (haste, etc) made on version 2.2.007 of mcMMO will not upgrade correctly, you'll just have to make new ones. Sorry for the inconvenience.
Alchemy potions will now be brewed as type "Mundane" behind the scenes, this used to be Uncraftable/Water. This led to some issues. So I've changed it to be Mundane.
While fixing various Alchemy bugs, I noticed Alchemy leveled SUPER slow, I have increased it dramatically. Feel free to change it back by modifying the new values in experience.yml
In general, JSON locale entries will either not work with hex color codes or will have the color code stripped out, in the future I will add support for the JSON components to use hex colors from the locale
Let me know in detail what kind of support you'd like to see in mcMMO regarding custom items, I'm open to suggestions.
This update adds a new config file to allow server owners to disable repair or salvage on items with custom models,
This prevention mechanism is not enabled by default, change the settings in custom_item_support.yml if you want to enable it.
This feature is off by default for now to keep compatibility with existing servers, but it may be enabled by default in the future if feedback suggests it should be.
As a reminder, anyone can update the wiki by clicking on the "edit on github" link on various pages, this will take you to the wiki's source code on GitHub, submit a PR to make changes
Added 'Send_To_Console' settings to chat.yml to toggle sending party or admin chat messages to console
Replaced 'Experience_Formula.Modifier' in experience.yml with 'Experience_Formula.Skill_Multiplier' which is easier to understand and less prone to divide by zero bugs
child.yml config is gone now, feel free to delete it
Major rewrite for how random chance was handled in the code
Many skills with RNG elements now send out a SubSkillEvent (which can be used to modify probability or cancel the results), some skills without RNG still send out this event when activated, this event is cancellable so it can be used to make a skill fail
A lot of new unit tests were added to help keep mcMMO stable as part of this update, of course, more could always be added.
NOTES:
One feature of this update is to provide a endgame benefits to some skills that you can grind for a long time, ideally for a long while. I will likely expand upon this idea in future updates.
A few skills have these endgame oriented subskills, these new subskills provide a small benefit at first that grows and scales up to level 10,000 (or 1,000 for Standard mode which no one uses) and does not have ranks (other than the initial rank to unlock it).
These endgame sub skills unlock at level 1000 for users with default mcMMO settings, or 100 for those using the optional Standard scaling.
You can tweak the benefits of these skills in advanced.yml, the default settings are meant to be a good starting point.
Crossbows and Tridents are WIP skills, I would like feedback on discord about them.
More info on the new Triple Drop skills (Mother Lode, Clean Cuts, Verdant Bounty):
Currently these start at about 5% chance and can reach a maximum 50% chance if a player acquired 10,000 skill, you can adjust this in advanced.yml
These skills respect double drop settings from config.yml just like the corresponding Double Drop skills do, if a double drop is disabled for an item, then its disabled for triple drops too.
I added a new Power Level Command, for now this just shows you your current power level. If I ever add features based on power level, this command will likely display output related to those features.
Regarding Maces, I will likely add that as a WIP skill when the next Minecraft update drops.
Fixed a stack trace due to Spigot API break on EntityDamageEvent and EntityDamageByEntity event
(API) - Removed FakeEntityDamageEvent and FakeEntityDamageByEntityEvent
(API) - Reworked McMMOEntityDamageByRuptureEvent, this no longer extends EntityDamageByEntityEvent, instead it extends EntityEvent
Notes:
Some care went into keeping mcMMO compatible with older versions despite a big API break from Spigot, this may introduce some new bugs, so please report them if you run into any.
NOTES: Placeholders were brought in from electroniccat's original work on a PAPI expansion for mcMMO, the placeholders are the same as a result
I will be adding a leaderboard placeholder in the next patch (most likely). Feel free to share details of what functionality you'd want from additional placeholders on discord.
(API) Added TreeFellerBlockBreakEvent class which extends FakeBlockBreakEvent (see notes), this is sent out during Tree Feller processing to allow other plugins to differentiate between Tree Feller and other fake block break events
NOTES: For a while configs were not updating automatically as a rewrite of how config files were loaded was partially done, this is now complete and configs will update automatically again.
Fake block break events have been sent out historically by mcMMO to check other plugins for a players permission to break or place a block, Tree Feller will now specify via inheritance its own event type for this so mcMMO plugins can handle Tree Feller fake block break events differently if they so choose.
You can now view the default configs more easily as they are now copied to plugins/mcMMO/defaults, these configs will be overwritten on start up to match the default values of the config in the JAR
NOTE: There are plans to add experience and potentially subskills for discovering items via the new brushing mechanic, but this will have to wait for new Spigot API to become available
Fixed a bug removing comments from configs (see notes)
Fixed mouse-hover tooltip windows (thanks Greymagic27)
NOTES:
Regarding the secure chat feature Minecraft rolled out, once APIs have updated I will look into rolling support for that into admin/party chat.
Comments should no longer get removed from config but I haven't added any code to add missing comments back in, for now if you want comments you can delete the config file to regenerate it (sorry for the inconvenience)
Hoe's being able to gain Mining XP is primarily for Sculk blocks which have Hoe as the fastest tool yet to me feel like Mining blocks, let me know what you think
The burning animation bug is actually in Spigot, it takes an int for setBurnTime when it really should only take a short as the game is expecting a short value, I implemented a hacky workaround via Math.min
Spigot updated PlayerAnimationEvent with an API break between versions 1.18 and 1.19, as a temporary fix for mcMMO to be able to support both of these
Minecraft versions I have temporarily removed FakePlayerAnimationEvent. I am working on a fix to dynamically use the correct API depending on the version of MC
as many people will likely be stuck on 1.18 for a while.
FakePlayerAnimationEvent existed to circumvent false positives on anti-cheat plugins such as NoCheat, however
I am unsure if it is still needed and removing it may have no ill effects.. however I cannot be certain.
Anti-cheat plugin authors should be informed to update if you run into false positives with mcMMO after this update so they can make the appropriate changes.
An herbalism exploit has been patched (thanks WhatsTheBadNews)
Added 'ExploitFix.Combat.XPCeiling.Enabled' to experience.yml
Added 'ExploitFix.Combat.XPCeiling.Damage_Limit' to experience.yml
Single instances of combat damage above 100 give are capped to give the same reward as 100 by default (100 is a lot, but you can change this in settings)
NOTES: The damage ceiling won't affect server that don't have mobs running around with abnormally high health, if your server does you'll want to adjust this limit or disable it.
Removed all of Spigot's buggy and deprecated DamageModifier API, this fixes the bug where players would become immortal when using certain other plugins
Rupture is back to doing "pure" damage (due to the above change)
NOTES:
Rupture damage will be tweaked based on feedback as it is dealing "pure" damage
If you're having issues with "immortal players" this is a known plugin incompatibility between mcMMO and another plugin, I need more info on what plugins need to be present to cause it. Please post info to GitHub issues or tag me on discord.
Due to a change in Spigot mcMMO started growing config files at an alarming rate until they became so big they wouldn't load, and well before they got to that stage they slowed down loading the server
mcMMO now uses the Spigot API in a smarter way for config files
mcMMO will target the newest version of MC moving forward, any backwards compatibility with prior versions of Minecraft should be considered a side effect rather than intended.
If you want to play mcMMO on older versions, simply use 2.1.202 instead
Keeping mcMMO backwards compatible with older versions is getting messy, and I'd rather be able to focus my attention at newer features than having to make an elaborate build process (or alternatively hacky code) to support older versions of the game
Furthermore, it seems most people are playing 1.17.1 by a wide margin
You may have trouble compiling the source code if your maven is not setup to run JDK16, if you get any errors when compiling this is likely the reason
The data from bstats went into making this decision (shoutout to Qixils for typing this up too)
Locale override files are now named locale_override.properties (converted automatically/generated automatically)
Existing in use locale override files will be renamed to locale_override.properties and have some useful text put in them
mcMMO will now generate a locale override file with some detailed instructions if one doesn't exist (will be found in /plugins/mcMMO/locales/locale_override.properties)
NOTES:
If you were overriding locale before this update mcMMO will just rename the existing override file to locale_override.properties add some useful text and then load it
Remember you can use /mcreloadlocale to swap the edits in without restarting the server
(API) PrimarySkillType will soon be just an enum with nothing special going on
(API) Deprecated the members of PrimarySkillType use mcMMO::getSkillTools instead, deprecated members will be removed in Tridents & Crossbows (due soon)
(API) Some members of PrimarySkillType were removed and not deprecated (such as the field constants)
I spent over 26 hours refactoring FlatFileDB and writing unit tests for it, this will ensure that any changes in the code that could break the database are caught at compile time (so long as we have enough tests, could probably use more)
Regarding purging old users on the FlatFileDB, since this wasn't functioning for a while, the last login of users has been reset and if mcMMO hasn't seen that user since this update, it won't purge them as it has no way to know if they are truly an old user
I'm likely going to add SQLite DB as an option in the future, I spent time to fix up the FlatFileDB as some Unit Testing practice.
After getting in contact with the UltraPermissions devs and exhaustive testing, I have concluded that using UltraPermissions is completely safe with mcMMO. The users who had an issue with performance currently have an unknown cause, potentially it is from a plugin using the UltraPermissions API I really can't say without more data. My apologies to the UltraPermissions team for reporting an issue between our two plugins directly, as that is not the case. I would have tested it myself sooner but UltraPermissions was closed source and premium so I wasn't particularly motivated to do so, however I have been given access to the binaries so now I can do all the testing I want if future issues ever arise which I have zero expectations that they will.
After 5 seconds of not applying Rupture on the target Rupture explodes dealing a large amount of damage, this damage is not pure and is affected by armor etc.
Rupture no longer tells you that you that you applied it to the target, it should be obvious from the sounds/particle effects
The new Rupture no longer constantly interferes with the vanilla Swipe (the AOE attack built into Minecraft)
The new Rupture has not had a fine tuned balance pass, I will be balancing it frequently after this patch, it may be too weak or too strong in its current form
Rupture does not stack between players, whoever applied Rupture first determines its strength, this will change in the future (Stronger Ruptures will overwrite weaker ones)
When you reapply rupture it immediately triggers a damage tick
Previously treasures.yml would take drop_level and multiply it by 10 if you were on Retro Mode, this is confusing so it has been changed
treasures.yml will update old entries to follow the new format automatically, please review them to make sure they match expected values, and if not edit them and save then reboot your server
mcMMO will do a better job reporting if something went wrong with scoreboards, which may lead to improved plugin compatibility between mcMMO and other plugins touching scoreboards.
This update was tested pretty thoroughly so it should be pretty safe, let me know if you have issues in the mcMMO discord or GitHub issues page for mcMMO!
Fixed a bug for FlatFile databases where some players with changed nicknames would have their levels not loaded upon login (possibly wiping their data)
NOTES:
Players affected by this bug (introduced in 2.1.177) may have their data lost, but this patch reverts the change which caused this bug.
I suspect their data isn't lost and may be restored after this patch is loaded up, however if it is lost mcMMO makes regular backups so you can load one of those (check <Server Directory>/plugins/mcMMO/) or manually edit their levels via MMOEDIT as a solution of sorts.
A few changes were made to the inspect command, it used to reject you when used on vanished players, now it will be processed as if they are offline.
Additionally if you do inspect a vanished player, it will not use their display name (consistent with offline players) as that would give them away for being online
McMMOReplaceVanillaTreasureEvent is an event which is fired when mcMMO replaces a vanilla treasure with AIR if the server config file is set to override vanilla treasures, this causes some issues for other fishing plugins so this event helps those plugins be more compatible
(API) Shroom Thumb now fires a SubSkillBlockEvent which is cancellable
NOTE: A lot of sub-skills without random chance elements are missing events, this will be cleaned up in the near future. If you need something specific added sooner than that, post a GitHub issue for it and I'll patch it in.
Added 'mcmmo.broadcast.levelup' permission node, if a player lacks this node they will not have their level up milestones broadcast to chat, this is a default permission node
The new 'mcmmo.broadcast.levelup' node is a default node included under the 'mcmmo.defaults' node umbrella, you shouldn't have to give this to your players unless they don't have access to 'mcmmo.defaults'
If you don't have a permission plugin you don't need to worry, players will have this node by default in that case
There are situations where level up broadcasts will be skipped, for example if you go from level 0 -> 101 via addlevels or mmmoedit, and your broadcast interval is 100, it will be skipped as 101 falls out of this interval, this kind of skip only applies to command based leveling. Players gaining levels naturally should never have their broadcasts skipped. I'll fix this particular interaction in the future so that command based leveling never skips over milestone broadcasts, but for now it does.
Added 'General.Level_Up_Chat_Broadcasts.Enabled' to config.yml
Added 'General.Level_Up_Chat_Broadcasts.Milestone_Interval' to config.yml
Added 'General.Level_Up_Chat_Broadcasts.Broadcast_Targets.Send_To_Console' to config.yml
Added 'General.Level_Up_Chat_Broadcasts.Broadcast_Targets.Only_Party_Members' to config.yml
Added 'General.Level_Up_Chat_Broadcasts.Broadcast_Targets.Only_Same_World' to config.yml
Added 'General.Level_Up_Chat_Broadcasts.Broadcast_Targets.Distance_Restrictions.Restrict_Distance' to config.yml
Added 'General.Level_Up_Chat_Broadcasts.Broadcast_Targets.Distance_Restrictions.Restricted_Radius' to config.yml
NOTES:
The new broadcast system is very configurable, you could set the milestone interval to 1 if you want players to always be informed when someone levels up
With default settings, messages are broadcast to all players on all worlds and to the server console when a player hits a level up that is a 100 interval, for example level 100, 300, 600, 2200 would all qualify
You can change the settings to specify who receives these messages or turn the whole system off
The message is customizable via locale: https://mcmmo.org/wiki/Locale
There are comments in config.yml above each setting (as long as YAML doesn't move comments around chaotically...) that explain each setting
In case your comments are missing, here's what they look like by default: https://gist.github.com/nossr50/baf656477c75663e9e2f9284acee8d67
If any of you encounter a ConcurrentModificationException error that mentions TransientEntityTracker in its stack trace after this update let me know, I have another fix in mind for this if this update didn't fix it.
mcMMO will ignore EntityPickupItemEvents from "Fake-Player" NPCs if it recognizes them as such, this will prevent some compatibility issues with some plugins
Books dropped before this fix will not be usable and should just be chucked in lava, the broken books have blue names, the working books have yellow names.
t00thpick1 has taken time to rewrite our block meta tracking system to be more efficient, easier to maintain, and support upcoming features such as world height changes
mcMMO will now let players use vanilla blocks that have interactions (such as the vanilla Anvil) which are assigned as either Repair or Salvage blocks if a player is sneaking (see notes)
Fishing treasures have been moved from treasures.yml -> fishing_treasures.yml, copy over any custom entries you had from treasures.yml carefully as the config file has changed and you can't just copy paste your old entries without making a few edits
Added Enchanted Books to fishing_treasures.yml as Legendary rarity (can drop with any legal enchantment - see notes)
Added all Netherite gear to the Mythic rarity in fishing_treasures.yml
Added Name Tag to fishing_treasures.yml as Rare rarity
Added Netherite Scrap to fishing_treasures.yml as Legendary rarity
Added Nautilus Shell to fishing_treasures.yml as Legendary rarity
Music Disc rarity in fishing_tresures.yml has been broken up across tiers, they will be more common now.
Mythic rarity (formerly known as Records) now allows for Enchantments to be applied to drops (See Notes)
New exploit fix setting 'PreventPluginNPCInteraction' which defaults to true, when disabled it will allow combat interactions with "NPC" entities from plugins like Citizens
Before reading, Fishing/Excavation are getting a complete loot table rewrite in the future, everything changed in this patch is meant as a temporary quality of life fix until the bigger better change in the future.
You can't add Enchanted_Book to any treasures outside of Fishing's treasure drops right now, I'll fix it in an upcoming patch. Well you can add it, but it won't work.
The rarity formerly known as 'Records' was odd to me, if you got the best possible drop it was always going to be a Music Record drop (using the default mcMMO treasure list), and by default the Records tier had only music records. It was treated differently in the code as well, for example Records drops never had enchantments applied to them. So you could add say NETHERITE_ARMOR to them in your user config and it would never put enchantments on it, that seemed very odd to me.
As a response to this, I've renamed Records as Mythic, I've moved the records into varying tiers, you'll start getting them much earlier now. I've also added Netherite and Enchanted Books to the Mythic tier.
Enchanted Books have been added to Fishing loot, this is a basic hacky work around until the config update comes. Enchanted books can have any legal enchant and you can specify which Enchants a book can spawn with.
Also the Enchantment chance to be applied to the book is completely equal across all enchantments, it does not follow the same logic as applying enchantments to fished up gear.
If you can't load this image, at the address of your treasure for example, at Fishing.Enchanted_Book.Enchantments_Blacklist: you define a list (which must follow yaml spec, google yaml linter) of enchants to disallow, likewise at Fishing.Enchanted_Book.Enchantments_Whitelist you can setup a whitelist, if neither is defined then the book can spawn with all possible enchants, if both are defined the whitelist is used instead of the blacklist
Take care when moving any fishing entries you may have defined in treasures.yml over to fishing_treasures.yml, the config file has had a few things changed (as noted in these notes).
When talking about NPCs in the below notes, I am referring to "Fake" Players used in plugins such as Citizens, not Villagers from Vanilla Minecraft or anything labeled NPC in another plugin which does not constitute a "Fake Player"
Historically mcMMO has checked an entity for being a Fake-Player-NPC and backed out of any interaction, this was originally done because of Fake-Player-NPCs that were meant to be invincible/etc and not give XP
However nowadays what a Fake-Player-NPC is used for is pretty loose, mcMMO only has definitions for some NPCs (such as from Citizens) it doesn't know about most Fake-Player-NPCs in most plugins unless they identify themselves in a similar way to the predefined parameters
Leave this new exploit fix setting on true unless you understand the implications
If you only ran mcMMO on your server you'd have no way to use Enchanted Books if you set the repair anvil to the vanilla anvil, so now you can sneak to open up its menu. By the way, mcMMO has the vanilla anvil as repair's default anvil (instead of iron block which it had been historically).
Fixed a bug where a bunch of text from mcMMO was never being sent and or being sent as blank messages
NOTES:
Adventure (the chat library we use) had an update that required shading in another new module, but there were no errors thrown without running a jvm debug flag and testing it, which is why I missed it. I also missed it because I don't read update notes very closely
Master Angler will emulate the effects of Lure if the level is higher than 3 instead of attempting to stack with it to avoid a vanilla Minecraft bug where fish are never caught
Added some errors that trigger if a plugin hooking into mcMMO is grabbing leaderboards for child skills through our SQL/FlatFile class (which don't exist)
You don't need to touch your config files unless you want to get the new tree feller threshold (1000 instead of 500), you could also delete config.yml and regenerate it, for all the other config changes in this update, they are handled automagically.
* - If you haven't manually edited your Master Angler entries in skillranks.yml then the previous mcMMO update has rank 1 for Master Angler too high, this update automatically fixes it.
You may have noticed sometimes config file entries are in a strange jumbled order, yeah that's "normal". We'll be moving to HOCON for the config update and wont' have to deal with this crap for much longer.
Master Angler won't work if you aren't on 1.16.4, the truth is it hasn't worked for a very long time (Since before 1.13.2)
The Spigot API related to it has been broken since years and years ago, and they finally updated the API but it is only in the newest builds of Spigot.
The configurable reduction tick stuff for master angler is multiplied by the rank level when determining the final bonus (use /mmodebug when fishing to see some details)
(API) Probably some more undocumented changes that I'm forgetting...
Notes:
For example '/p &#ccFF33hi guys' will send a message colored in hex colors
You'll see ~§x in console when hex color codes are used, this is a quirk of how the 'adventure' library we are using is handling some bungee component related things, so it's outside of my hands for now
Bleed was meant to do reduced damage to players wearing 4 pieces of armor or more, it was incorrectly counting everyone as wearing 4 pieces even when they weren't.
This means Bleed was doing a bit less damage than was intended against players without a full set of armor equipped.
Added 'Chat.Channels.Party.Spies.Automatically_Enable_Spying' to chat.yml which when enabled will start users who have the chat spy permission in chat spying mode
I greatly disliked the old party member list but was avoiding rewriting it until later, someone pointed out how ugly it was and my OCD triggered and now it is rewritten. I will rewrite it again in Tridents & Crossbows.
If you disable the party/admin chat, then the party/admin chat command never gets registered and attempting to use the command will result in a whole lot of nothing, so if you want users to have a permission denied message then just stick to negating permission nodes.
I'll probably be tweaking mcMMO visually a lot in the near future, probably after Tridents & Crossbows goes out.
Fixed an ArrayIndexOutOfBounds exception when using /skillreset
You can now add "-s" at the end of mmoedit, addlevels, or addxp to silence the command. Which will prevent the target of the command from being informed that the command was executed.
mcMMO should now be compatible with 1.16.4's new social features (affects Party/Admin chat)
mcMMO Party & Admin Chat have had a complete rewrite
The yet to be released Tridents & Crossbows update will also feature some new features related to party chat, so expect more tweaks to those features in the future.
I actually spent a little over a week on this, the old code for party/admin chat was absolutely horrid and when porting in the new 1.16.4 features I couldn't stand the sight of it so I burned everything to the ground and rewrote all of it.
The mcMMO chat events now make use of adventure library by Kyori, you can override the message payload with a TextComponent, which allows for some fancy stuff potentially.
I'll put in some of my own fancy stuff for party and admin chat in a future update.
There are some performance issues with how Spigot/MC saves NBT when you start adding NBT to mobs, because of this I have decided that the new persistent data from 2.1.148 is now opt-in.
Not every server will suffer a TPS hit when using the persistent data options, but there is a significant IO cost which can affect TPS if you have them on
I am therefore making many persistent options (the problematic ones involving mobs) opt-in so only those aware of the performance risk will be using the feature.
Persistent data on mobs was a new feature that was introduced in 2.1.148, it was not in mcMMO for the last 10 years and most of you probably didn't even know that it was missing
An example of persistent data would be, normally mcMMO would give 0 XP for a mob from a mob spawner, in the last 10 years if the server rebooted then those existing mobs would give XP again. But with the persistent data option turned on in persistentdata.yml they will be saved to disk, and mcMMO will not forget about them upon reboot.
For now it is not recommended to use persistent data without monitoring performance of ticks afterwards to make sure it was something your server could handle.
I have a solution in mind to make persistent data not so expensive, but writing the code for that will take some time. This will serve as an interim fix.
I am going to focus on Tridents & Crossbows instead of that alternative solution, so don't expect it anytime soon. Use persistent data only if you understand the potential performance cost risk.
New experience multiplier labeled 'Eggs' in experience.yml with a default value of 0 (previously mobs from eggs were using the Mobspawner experience multiplier)
New experience multiplier labeled 'Nether_Portal' in experience.yml with a default value of 0
Egg mobs & Nether portal pigs being assigned to the mobspawner xp multiplier didn't make sense to me, so it has been changed. They have their own XP multipliers now.
While working on making data persistent I stumbled upon some alarming memory leak candidates, one of them was 7 years old. Sigh.
Alchemy now progresses much smoother, with rank 2 no longer unlocking right away. Thanks to Momshroom for pointing out this oddity. Delete skillranks.yml or edit it yourself to recieve this change.
https://gist.github.com/nossr50/4c8efc980314781a960a3bdd7bb34f0d This link shows the new Alchemy progression in skillranks.yml feel free to copy paste (or just delete the file and regenerate it)
Kashike is a developer on the mcMMO team, however after I recruited him had a lot of life stuff come at him and has./tn't had a chance to contribute until now!
JSON is used by Minecraft for a lot of stuff, in this case the JSON mcMMO made use of was related to displaying text in chat or displaying text on the clients screen in other places such as the action bar, there's been a bad bug in Spigot since 1.16 that would disconnect players some of the time when sending JSON components.
mcMMO makes heavy use of these components, so since spigot has yet to fix the bug I decided we needed a work around for the time being.
The library named 'adventure' is developed by the Kyori organization, which is Kashike's baby.
Kashike is a very talented and skilled developer and he did the work on this patch to solve this issue.
This is a link to an bug report I did on this bug on Spigot's issue tracker, it is my understanding they have yet to find a way to reliably reproduce this bug.
If you have any information please post about it in this thread.
https://hub.spigotmc.org/jira/browse/SPIGOT-6056
Although mcMMO solved this issue by switching to Kyori's Adventure library for sending JSON Components, most Spigot plugins have not implemented a work around like this and will continue to make players disconnect until it is solved within Spigot.
Hardcore changes
If you set a level threshold of 100 and player with 150 levels dies, they should never lose more than 50 levels as the first 100 are considered part of the threshold.
Prior to this change in this exact same scenario a player could be penalized and be put below the threshold.
Shout out to HexedHero for reporting the dupe exploit and providing a demonstration of how to replicate it
Tridents & Crossbows update
It is still being worked on but it won't make a September release.
October is the new target release but I am terrible with estimates so take it with a grain of salt!
I seem to consistently find old bugs in mcMMO, this deflect bug where it was checked twice, who knows how many years its been in mcMMO, I didn't check but its probably between 5-7.
I was waiting to make Steel Arm Customizable for the config update (due in the future), but enough people ask for it that I decided to do the extra work to put it into 2.1.XX
Tridents & Crossbows is likely going to be in development continuing into September, I am taking my time to make it feature packed and I hope you guys will appreciate it.
The item tracking is persistent for MC versions 1.13-1.16.2 (and beyond). However the code handling the persistence for 1.13.2 differs from the other versions. It shouldn't result in any problems.
Any items that currently have the old "mcMMO Ability Tool" lore on them will have that lore stripped off them and will have any dig speed enchants removed. This should only affect glitched items that never properly got their buffs removed.
Scoreboards code in mcMMO is pretty messy and poorly designed, I am going to rewrite it in a future update. The fixes applied in this patch should solve some problems some users were having for now.
I'm making use of a Spigot API for persistent data for versions of MC 1.14 and above, for versions below the data will be temporary as it has been up until this point.
In the future I'll wire up NMS to make use of NBT and all versions will have persistent data support.
It used to be that Furnaces would assign an owner and that would be their owner until the server shutdown, now owners will change based on who last had their hands on the furnace.
You won't become the owner if you are not allowed to view the inventory of a furnace, or break the furnace, or interact with the contents of the furnace
Added the missing NMS wiring (it should be noted NMS isn't currently being used in mcMMO, but the framework is there. Working on a sideproject involving this...)
Default salvage quantities for netherite armor were above 4 in some cases which was not intended, mcMMO will run some code to correct this once and then it will not edit the file again.
Early versions of 1.16 support had Netherite misspelled, the script I added executes before loading those config files to fix the spelling mistakes if it finds any
NOTES: A more thorough look at Unarmed balance will happen in the future, the intention of this nerf is to make Unarmed less rewarding until it is leveled quite a bit.
mcMMO now relies on NMS for some of its features, if NMS cannot properly be wired up when initializing mcMMO behaviours relying on NMS will either be partially supported or disabled
mcMMO now has a compatibility mode, any features that require specific versions of Minecraft for full functionality will be disabled if your server is not running a compatible version, mcMMO will still function in compatibility mode, but either the feature will be modified or disabled depending on the version of the server software
New command /mmocompat - Shows information about whether mcMMO is fully functional or if some features are disabled due to the server software not being fully supported. Can be used by players or console.
There are no features that rely on NMS in this version, it took a lot of work to write the NMS framework and I'm going to delay implementation for future versions.
*Fixed a bug where you could not place blocks on top of certain repair/salvage anvils
Notes: You won't be able to place blocks on top of stuff that has an interactable component if its setup as an anvil for either Repair or Salvage, for example if you set the vanilla minecraft anvil to Repair, you won't be able to place blocks on top of that. If the repair anvil is still set to iron block then you can now place blocks on it again.
Repair/Salvage can now be set to use vanilla blocks that already do something and that vanilla functionality will be disabled by mcMMO (you could use vanilla-anvils instead of iron_blocks for repair now)
Added Zombified_Piglin & Zombie_Pigman to experience.yml combat XP tables with a value of 3.0 (edit your config)
For this update either edit experience.yml and config.yml manually or delete them to regenerate, keep in mind config.yml has MySQL settings so don't delete it carelessly.
There is now a feature in place to prevent breaking a newly automatically replanted (via green thumb) crop from being breakable for a few seconds after it appears
Activating Berserk on a soft block (glass, snow, dirts) will break that material right away instead of only breaking subsequent blocks hit by the player
Improved WG compatibility, mcMMO will now check if WG has loaded properly before hooking into it, which will prevent mcMMO from breaking if WG could not load properly.
Beast lore now shows max jump height and other tweaks (Thanks QuantumToasted)
If the server has enabled level caps (which are not on by default) players will be shown that they are at max level instead of seeing how much XP needed to reach an impossible level (thanks Shrek5InTheatres2019)
The scoreboard change should result in mcMMO removing scoreboards from players properly when they enter a black listed world. This is a hacky band aid fix as our scoreboard code is archaic and needs to be rewritten in 2.2 and not 2.1. Expect a scoreboard overhaul sometime in the future.
Sometime in 2014 a decision was made that any fishing treasure over the amount of 1 will be randomized in its yield, while this is not necessarily a bad thing it means control over the drop is a bit random. I've removed this randomness temporarily, in the future you will be able to chose if the amount is randomized or static.
Added blast furnace, cartography table, grindstone, lectern, loom, scaffolding, smoker, stonecutter, and sweet berry bush to the list of internal blocks that don't trigger tool readying
The Skill Tooltips are a bit limited right now, in the future they will be more flexible. In order to reflect that Limit Break doesn't always work in PVE (now up to server settings) I added a crappy note to its hover window tip. I'll be fixing this in the future.
You shouldn't need to update you config entry for Nether_Bricks, I believe that file updates automatically (the old config system is a bit janky, some stuff updates, some other stuff doesn't.)
PistonCheating prevents blocks from being marked "natural" once they've been moved, we've never had an option for this before.
A discord user requested it, its a strange request but I added it anyways.
Of course, it defaults to "true" which prevents cheating with pistons.
You shouldn't need to add "Chorus_Flower, Carrots, Cocoa, Potatoes, Wheat, Beetroots, Nether_Wart" to your experience file, it seems that config file updates automatically for missing entries.
2 new devs have joined the mcMMO team (electronicboy, kashike), bringing the active dev team to 3 including myself! Strings relating to authors of mcMMO have been updated to reflect this
Fixed a bug where players would be told they could not breed summoned animals when the animals weren't summoned (bug didn't actually do anything besides send you a message)
If you are playing in 1.14 mcMMO will now summon cats instead of ocelots
The default summon limit for COTW is now per player instead of global which is how it should be, for wolves this defaults to 2, for other entities it defaults to 1
The COTW setting named Summon_Max_Amount in config.yml has been renamed to Per_Player_Limit
By default players are no longer allowed to breed COTW summoned animals with other animals, you can turn this off (see the notes)
If a player tries to breed animals with a COTW animal and the server settings prevent this, they are informed via a message that it is not allowed
I plan to rework Call of The Wild (COTW) significantly in the upcoming content patch, until then I have made several tweaks to it.
COTW Summoning Requirement Changes
It is intentional that you are not supposed to be able to COTW summon something that you already have tamed, but mcMMO was not checking this properly.
So previous to this patch, if you tried to summon a wolf and wolves were nearby, it would fail. This is not intentional behaviour and was a bug.
The correct behaviour is that if you try to summon a wolf and you already have wolves, it should fail.
I was fixing this bug when it occurred to me, why do we even care if nearby tamed wolves owned by you exist if you are trying to summon a temporary one?
As a result of this train of thought, I have removed this restriction on COTW and several other tweaks have been made as a result of this line of thinking.
There was also an issue involving how many COTW entities could be out at once, for some reason the limit was applied globally and defaulted to 10, so if 10 players had COTW entities out no one else would be able to summon anything. I have fixed this.
You can set the lifespan to 0 in the config to make it so that COTW entities last until a server restart or the player logs out.
COTW Breeding Change
It was never intentional for COTW summoned entities to be breedable, by default they will not be. You can change this by setting 'ExploitFix.COTWBreeding' to false in experience.yml
Sorry about salvaged items traveling too quickly, in testing on my LAN server with ideal conditions they always entered my inventory and never shot past me so the high speed of the items was not an apparent issue.
I've tested the new changes to how they travel towards you pretty thoroughly, they never go fast enough to go past you and they adjust their speed based on distance to you with some speed limitations.
In testing the new tweaks work well whether the salvage anvil is above, below, or at the same height as you.
I'll be tweaking XP values across all skills more carefully in the upcoming content patch due after 2.2. Some tweaks to XP gains will be applied for 2.2.
Many changes were made to this version that affect default values in the config, read the notes carefully if you wish to apply these changes. They are optional.
mcMMO is compatible with the new 1.14.3, in addition to this it is still compatible with 1.14.2, 1.14.1, 1.14, and 1.13.2. This did not require any changes to be made to mcMMO, but I thought I'd add this to the notes for those wondering.
The default level for players has been changed back to 0 from 1 (you can change it back to 1 by editing 'Skills.General.StartingLevel' in advanced.yml) if you wish to apply this change read the notes
Super Abilities now scale in length up to level 100/1000 instead of 50/500 by default (you can edit this in advanced.yml under 'Skills.General.Ability.Length.xxx')
Early Game Boost now only applies when leveling from level 0 to level 1
Removed the config setting 'MaxLevelMultiplier' from experience.yml as it is no longer used.
When finding a treasure via Excavation players have a 1-8% chance to have a small amount vanilla experience orbs to be found alongside the treasure, the chance and number of orbs are based on the players Archaeology rank
When using WorldGuard (WG) with mcMMO, mcMMO now examines WG more carefully to determine if it is a compatible version or not, see the notes. Keep in mind WG is optional and not needed to run mcMMO.
Fixed a bug that could result in Tree Feller failing to remove parts of a tree in snowy biomes. (This fix won't apply retroactively to old trees, see the notes)
Tree Feller and other Super Abilities will damage tools with the Enchantment named 'Durability/Unbreaking' again, this does not apply to the NBT tag named Ubreakable (Unbreakable NBT tag is safe from damage however, try not to confuse them as they share similar names)
Added new setting 'ExploitFix.TreeFellerReducedXP' to experience.yml
Tree Feller will no longer give full XP for each block destroyed and instead give diminishing returns on XP for each block removed. You can turn this off by setting 'ExploitFix.TreeFellerReducedXP' in experience.yml to false
Editing your config files is not required for this patch (and never will be), however I would highly recommend it. Read the notes below this line carefully.
If you want to update to this patch easily and you don't mind default config values, delete skillranks.yml, advanced.yml, and experience.yml before starting your server with 2.1.89 of mcMMO applied.
Many skills now unlock at level 1 and the default starting level is back to 0. It is recommended you change this number from 1 to 0 manually by editing 'Skills.General.StartingLevel' in advanced.yml or deleting advanced.yml and generating a new file when 2.1.89 starts.
It is recommended you make the manual edits to skillranks.yml to apply this change or delete skillranks.yml and a new one will be generated once you start 2.1.89.
Early Game Boost was used to help players get to level 5 quickly by boosting their XP until they got there, this caused some confusion as they appeared to be 'learning a skill' for multiple levels, on RetroMode this lasted until level 50.
I have changed Early Game Boost to only last from level 0-1 on both RetroMode and Standard, and now important skills are unlocked at level 1.
I was going to wait until 2.2 was done to deploy this change, but 2.2 is some time away and the previous system was causing some confusion.
Early Game Boost gives players extra XP for skills that are level 0, you can turn this system off by setting 'EarlyGameBoost.Enabled' in experience.yml to false
Early Game Boost will show 'Learning a new skill...' if XP bars are enabled
It is not necessary to have WG installed, but if you do have WG installed mcMMO hooks into it to provide some additional features.
Previously mcMMO used to determine if WG was compatible just by checking to see if it was version 7 of WG, however version 7 of WG is not guaranteed to be compatible as necessary classes that mcMMO hooks into were added during its development and some users are still running early dev versions of WG7.
In order to decrease the chance of error, mcMMO now uses reflection when checking to see if WG is compatible in addition to checking its version number, if its not compatible mcMMO will print a message and refrain from hooking into WG.
WG is an optional dependency for mcMMO, and unfortunately before this change if mcMMO thought you were running a compatible version of WG and it turned out you weren't then mcMMO would not function correctly.
Archaeology does something now, it will be tweaked again in the future. Previously rank 1 of Archaeology was required to find treasures but that was all it did, now each rank of Archaeology also adds a small chance to find experience orbs when a player finds treasure.
In a prior patch I removed damage on tools if they had Unbreakable NBT or Unbreaking Enchantment, at the time I made this change I did not realize they were different things and just shared the same name, this patch fixes this mistake. My intention was to prevent damage on tools with the NBT unbreakable tag which makes an item never suffer from durability loss.
mcMMO reduces damage to tools from super abilities if they have the "Durability/Unbreaking" enchantment already, this behaviour has been in mcMMO for a long time.
Tree Feller will now give reduced XP per block destroyed by Tree Feller and will never go below 1 XP per block, you can turn this off with 'ExploitFix.TreeFellerReducedXP' in experience.yml
There was a bug fixed in this patch that prevents an issue where Tree Feller was not removing all blocks left behind, unfortunately this will only affect new trees made in the world. The only trees that suffered from this bug were ones in snowy areas that had snow form on them.
RetroMode and Standard mode will be getting renamed in 2.2, probably to something like 1000-scale and 100-scale respectively.
Retro Mode was accidental genius is the short reason for the change to make it the default level scaling for mcMMO again.
Standard Mode is not going anywhere, it is just opt-in now instead of the default.
If you delete config.yml you will need to turn RetroMode off to use Standard mode as mcMMO doesn't keep track of what level scaling you are using outside of that.
Fixed a nearly 6 year old bug where Super Repair was not included as a child permission under Repair ability permission nodes (which meant some players would not have access to this skill)
Fixed a bug that could prevent salvage from working for certain players
Renamed the advanced salvage permission node to 'mcmmo.ability.salvage.scrapcollector'
Fixed a bug that would send players skill unlock notifications if they did not have the permission node for that skill
Dramatically increased the chance of receiving full materials when salvaging
Fixed a bug where Arrow Deflect would never trigger outside of PVP
Fixed a bug where failing to salvage enchantments incorrectly colored the text
mcMMO no longer allows players to keep enchantments exceeding normal limitations by default when salvaging or repairing (you can turn this off in the config, see below)
Added new setting 'ExploitFix.UnsafeEnchantments' to experience.yml, turn this on to allow players to salvage/repair enchantments higher than normal game restrictions
NOTES:
If a player tries to salvage/repair an item with an illegal enchant (for example Sharpness X) it will downgrade that item to the highest legal version when calculating rewards
If you don't like this change you can turn it off in experience.yml under 'ExploitFix.UnsafeEnchantments'
Shovels no longer take more than 1 diamond to repair
Tools with the unbreaking enchantment no longer take extra damage from ability usage, they are still subject to the normal durability damage from breaking blocks though.
NOTES: I removed this last patch because I did not consider that server admins might be allowing users to repair items without crafting recipes (as of last patch mcMMO determines minimum quantity via counting ingredients in a recipe)
If you do not define minimum quantity in the repair config, mcMMO will grab the minimum quantity automatically as I programmed it to do as of last patch, otherwise if it is defined, mcMMO will respect that and use that for calculations.
The minimum quanitty should be set to the number of ingredients used to craft the recipe, for example 8 for diamond chestplate etc, you do not need to define this unless you are allowing players to repair custom items.
Fixed a bug where Arcane Salvage was used to determine how many materials a player could salvage from an item instead of Scrap Collector (formerly Advanced Salvage)
Fixed a bug where messages about an item being too damage to salvage were being sent twice
Removed the minimum quantity field from the repair config
Removed the item data (metadata) field from repair config as its not used anymore
Salvage will no longer return the max amount of materials possible, instead you are guaranteed one item and then some luck is involved on how many items are returned.
Updated Chinese locale (thanks to the user named 89009332 from github)
As an example, say you had enough skill to gain up to 5 items from salvaging something, and that item has enough durability to yield up to 5 materials, salvage will play out like this...
First off, you will be guaranteed 1 material, after this you have 80% chance to get the next material, if successful, another dice roll is conducted but lowers your odds by 20%, you chance to succeed will never fall below 33%
If you fail a dice roll, it will still conduct dice rolls for the remaining maximum amount of materials returned but your odds of success are only lowered upon a successful dice roll, the sum of the successful dice rolls is used to calculate how many items you are given back, the first item is guaranteed and has no dice rolls, which means for example the Diamond Shovel will always succeed.
Players who are receiving an early game boost will be shown "Learning a skill..." as the title of the XP bar while gaining XP
New locale string 'XPBar.Template.EarlyGameBoost'
NOTES:
You can turn off this system in experience.yml 'EarlyGameBoost.Enabled'
The Early Game Boost is a system in which players receive drastically increased XP gains for the first few levels (until the first set of skills are unlocked)
With default settings, this means players will be receiving boosted XP for the first 5 levels (50 for Retro)
The Early Game Boost ends when players get the first skill in each ability under default settings
The main purpose of this system is to alleviate progression issues with a few skills where the first set of unlocked abilities drastically increase how fun it is to level the skill
The secondary purpose of this system is to alleviate any psychological issues when grinding towards the first set of unlocks by making the first set of unlocks happen quickly
This system has been in place for a few versions now, but without an in game indicator of what was going on.
If you have XP bars off there is still no indicator that this system is in place, I'll address that at some point.
Corrected how Standard mode (1-100 scaling) XP to next level was calculated, it is now a true 1:10 ratio with Retro (1-1000) scale, which is how it was intended to be to begin with
Fixed a bug that caused skill messages to spam nearby players
(API) method to get XP in FormulaManager has been renamed to getXPtoNextLevel(...), this shouldn't break anything as plugins should be using our Experience API methods instead of this
(API) Added method getLevel(Player player, PrimarySkillType primarySkillType) to ExperienceAPI.java
NOTE: The net result of this change is it will take a bit longer to level with Standard, but it should not be a drastic change. You might not even notice it.
Standard is meant to take the same amount of time to level from levels 1-100 as it takes Retro to do 1-1000, this change corrects from errors in the code that made Standard actually take less XP than Retro despite intending for it to be a cosmetic difference in progression.
I made a google sheet visualizing the difference between Standard and Retro Mode using default settings and Linear formula - https://docs.google.com/spreadsheets/d/1VlJtvNHlypACHyz_zulEdhgLwFjL01xMPkqlnu0XBSs/edit?usp=sharing
Significantly Buffed the amount of durability damage incurred by a successful Armor Impact
Added new setting to advanced.yml 'Skills.Axes.ArmorImpact.DamagePerRank' which is multiplied against Armor Impact's skill level to determine damage done to armor
Armor Impact only has a 25% chance to go off, and for it to only incur 20 durability damage seemed incredibly underwhelming, I've buffed it quite a bit.
You can change it back to its underwhelming self by setting DamagePerRank to 1.0
Based on feedback I may tweak the number again or other properties of this skill
Added a new admin notification system, sensitive commands will print chat messages to "admins" (players with either Operator status or admin chat permission)
Added a setting to disable the new admin notifications to config.yml 'General.AdminNotifications' (this will be more configurable in 2.2)
OPs and players with the admin chat permission will now see details about XP rate event commands regardless of whether the XP rate event messages are enabled
New locale string - 'Server.ConsoleName' the name of the server console, this will be used in place of player names when sending admin notifications out if the command was used from console
New locale string - 'Notifications.Admin.Format.Self' style formatting + prefix for admin command confirmations sent to the user who executed the command
New locale string - 'Notifications.Admin.XPRate.Start.Self' sent to the user who modifies the XP rate regardless of whether messages for the event are enabled
New locale string - 'Notifications.Admin.XPRate.Start.Others' details of who started an XP rate event are sent to players who have Operator status or admin chat permission when the command to start or modify XP of an event has been issued
New locale string - 'Notifications.Admin.XPRate.End.Self' sent to the user who ended the XP rate event regardless of whether messages for the event are enabled
New locale string - 'Notifications.Admin.XPRate.End.Others' details of who ended an XP rate event are sent to players who have Operator status or admin chat permission when the command to end the event has been issued
Add an entry of 'Magma_Block: 30' under Mining in experience.yml section titled "Experience_Values" (or you can delete the file to generate a new one with default values, 2.2 is coming soon which will have brand new configs so you could just wait for that
2.2 is the config rewrite, in this rewrite Repair and Salvage configs have been partially rewritten, it is not intended for Diamond Repair to take until level 50 in Standard level scaling to be available, since it'd be redundant to fix this in 2.1.X when 2.2 fixes it and its about to come out, the minimum level has temporarily been changed to 0. You can either update your repair.vanilla.yml config manually or delete it to generate a new one.
Admin notifications are a step in the right direction for finding naughty admins in mcMMO, I will be changing which permission node is used for players to be considered an admin in the future as not everyone wants or uses admin chat.
I expect to add logging of admin commands which will be viewable in game via command, so you won't have to have access to the servers log files to view who has been executing what.
Added anti-exploit protection for cobble/stone farms which can be automated, to turn this off you can toggle the new config options 'ExploitFix.LavaStoneAndCobbleFarming' in experience.yml
NOTE: The toggle for event message broadcasts is separate from the titles being shown, that's another config option (titles are the BIG TEXT in the middle of the screen)
You can find the up to date current en_US locale entries here: https://github.com/mcMMO-Dev/mcMMO/blob/master/src/main/resources/locale/locale_en_US.properties
You do NOT have to replace the whole locale, you can replace only the strings you want to!
Locales only support ASCII and UTF16 characters at the moment, so you'll need to run special characters through a UTF16 converter (google it) to get them to work, I'll be fixing this in the future!
The locale name must match the internal file you are overriding (ie: locale_en_US.properties)
Locale will first check for a users locale file, if it doesn't exist it will use internal resources (files inside the JAR)
If a locale is found, it will use locale entries from that file, if any entries are missing, it will use entries from en_US inside the JAR
The locale file names are structured like this 'locale_XX_XX.properties', replace XX with your country codes, if you are not overriding en_US you will have to change the targetted locale inside config.yml
Added missing Herbalism XP values for: Bamboo, Cornflower, Lily of the valley, Wither rose (thanks Zed-I)
Added missing Mining XP values for: Stone Bricks, Cracked Stone Bricks, Mossy Stone Bricks, Chiseled Stone Bricks, Prismarine Bricks, Dark Prismarine, Sea Lantern (thanks Zed-I)
Added missing Combat XP multiplier for: Wandering Trader (thanks Zed-I)
If you haven't upgraded mcMMO since version 2.1.47 or before you will not need to do these steps as the experience file will update once automatically.
You can either delete experience.yml to generate a new one or edit it manually
This is what the default experience.yml looks like
Currently this version of mcMMO will work on both 1.13 and 1.14, in the abstraction update I will expand compatible versions of mcMMO to include: 1.14 / 1.13.2 / 1.12.2 / 1.8.8 / Sponge 1.14
It is not necessary to update your configs if you are upgrading from 1.13 -> 1.14, however if you had custom XP values in your experience.yml you will want to update your config.
Acrobatics XP was buffed since many AFK counter-measures were put into place to prevent repetitive grinding.
There are 4 updates planned for mcMMO, including a patreon rewards update, a large content update, a config update, and backwards compatibility for 1.13/1.12/1.8.8 and support for Sponge
NOTE: These bugfixes were related to default config values, to receive these changes you can either delete experience.yml, treasures.yml and salvage.vanilla.yml to generate new ones or make the necessary edits.
This is what the files should look like after being edited.
NOTE: Repair's new perk permission works in the exact same way as mcmmo.bypass.arcanebypass, bypass perk permissions will all eventually be moved to `mcmmo.perks.bypass`
NOTE: Expect perk permissions to all be moved to `mcmmo.perks.X` in the near future
Player data for mcMMO is now loaded 3 seconds after a player connects in order to give any ongoing save tasks from other servers a small grace period to finish. This will mostly be useful to Bungee servers.
NOTES: I received reports from some users saying that saving and loading was failing could fail and not recover, I have implemented some fail safes to greatly reduce the the odds of that happening.
The /mcnotify command will now squelch almost all chat messages or action bar notifications sent to the player from mcMMO
mcMMO will now remind players on an hourly basis that they are are not receiving notifications from mcMMO if they have run the mcnotify command and toggled squelch mode
Added a new setting to advanced.yml "Feedback.PlayerTips", when set to true this will allow mcMMO to send periodic helpful messages to players, currently this only affects mcnotify reminders.
NOTE: I decided to make the detonator configurable again because 2.2 is some ways off. Sorry for the inconvenience.
NOTE: Pickaxes are now usable for blast mining, this is in addition to the detonator that you can specify in the config. This will be more configurable in the upcoming 2.2 update.
Fixed a bug where certain SubSkills did not properly send unlock or rank up notifications
Fixed a bug where unlock notifications would send simultaneously for a specific skill (still happens if mmoedit changes all skill levels on a player at once)
Added the following items to the Bonus_Drops tables for Mining: Coal, Diamond, Emerald, Glowstone_Dust, Iron_Ingot, Lapis_Lazuli, Nether_Quartz, Redstone, Cobblestone
Added the following items to the Bonus_Drops tables for Herbalism: Beetroot, Carrot, Cocoa_Beans, Melon_Slice, Potatoe
Added the following items to the Bonus_Drops tables for Woodcutting: Birch_Wood, Spruce_Wood, Jungle_Wood, Dark_Oak_Wood, Oak_Wood, Acacia_Wood
NOTE: You don't need to update your configs for this one unless you had custom entries in the Double_Drop tables, the renaming of the key will auto-insert default values and give everyone correct defaults
NOTE: I'm gonna have to blame Bukkit on this one, several API methods I used are actually unfinished and kind of janky. So I hacked something together to make them work.
Limit Break has 10 ranks, each rank gives 1 extra RAW damage, this is damage before reductions from armor and enchantments. The net result is you deal about 50% more damage with an endgame skill compared to before.
With these new changes, most skills can 2 shot normal diamond armor, and it takes about 5 hits to kill someone in Prot IV Diamond Armor.
I'm not sure everyone will like these changes, the net result is players are a lot easier to kill now, whereas before you could take quite a beating before getting killed.
I collected several sets of data before making these changes, including damage to player with and without prot 4 diamond armor, damage to those players with and without enchanted weapons, damage with and without leveling your skills, and combinations of the previously mentioned things.
Note: You'll need to add these entries to your config.yml manually, or wait for the upcoming config update where this will be fixed for you automatically.
NOTE: Here's what your Double_Drop entries in Config.yml for Mining should look like
IMPORTANT: Version 2.1.22 which came before this had a similar fix for Herbalism, instructions on how to fix your Herbalism Double Drops can be found here
NOTE: You'll need to add these entries to your config.yml manually, or wait for the upcoming config update where this will be fixed for you automatically.
NOTE: Here's what your Double_Drop entries in Config.yml for Herbalism should look like: https://paste.gg/p/anonymous/8d8db4ac69bd495fa48a7f5190484c5e
Players can now fish in the same spot about 3 times before mcMMO will mark the area as being over-fished (over-fishing is to prevent abuse)
Added a toggle to turn off the fishing exploit detection to experience.yml "ExploitFix.Fishing"
Note: The new config update is coming soon and will use a different setting, putting this out as a band-aid fix for people that don't like the new fishing exploit prevention stuff
Added a message to warn players that their next fishing attempt will result in over-fishing (Locale: Fishing.LowResources)
Players who get detected by Fishing's anti-exploit measures will no longer get vanilla rewards from Minecraft
**Note: Previously if mcMMO detected you abusing Fishing it just switched you over to vanilla Minecraft fishing rewards, this change is to help server admins who don't want players to get any kind of reward from AFK fishing
**Note: Not all types of exploit detection will warn players, this is just to prevent legitimate fishers from being confused by the aggressive exploit detection.
Fixed an almost 6 year old bug where Salvage materials did not have a defined material count so they defaulted to 2 (which could lead to shovels giving back more diamonds than normal)
Removed XP from entities that target endermite to prevent easy exploitation (Credits to TheBentoBox for the tip!) [Can be turned off in experience.yml]
! (Skills) Sword's Rupture now reaches its max proc chance at level 20 (200 in Retro)
! (Skills) Sword's Rupture now has a max chance to proc of 33% instead of 70%
! (Skills) Sword's Rupture now deals 50% more damage at above Rank 3 and can last much longer! The base damage for Bleed has been increased as well (update your advanced.yml admins)
! (Skills) Sword's Rupture no longer triggers invincibility frames when damaging your opponent
+ (Skills) Ability Lengths now have a default skill cap at which they stop increasing in length, configurable in advanced.yml (endurance perks extend this limit)
+ (Skills) Added a new subskill to some skills 'Understanding The Art' this adds nothing new, but tracks benefits that increase together that seemed unrelated, which was previously a bit obfuscated.
= (Plugin Compatibility) mcMMO now fires new custom events relating to changes it makes to player scoreboards, plugin authors can listen to these events to improve compatibility
! Woodcutting XP in experience.yml and Woodcutting double drops in config.yml now use the tree species names. Oak is now Generic, and Spruce is now Redwood.
! Changed party system. Parties now have XP and Levels. Party features such as party teleport and party chat have to be unlocked before they can be used by the party members
! Changed how Tree Feller is handled, it should now put less stress on the CPU
! Changed Tree Feller to work on huge mushrooms
! Changed Fisherman's Diet and Farmer's Diet to use two seperate config values
! Major refactoring - please take note, this WILL break any mcMMO-related plugin not properly hooking into the API.
! Changed the way party commands work, use /party ? to check how to use the new commands
! Changed McMMOChatEvent to contain the plugin that the event originated from.
! Changed Excavation to have individual XP values for each block type, rather than a base XP value.
! Changed the way party teleportation works. When using /ptp, the target player needs to confirm the teleport before it takes place. (Configurable)
! Changed BeastLore: Now also displays offline player names
! Changed backup task to include ALL config files
! Deprecated most functions in ExperienceAPI, replaced them with identical versions that use a String for the SkillName rather than the SkillType enum values
! Changed Super Breaker & Giga Drill Breaker to be an enchantment-based boost, rather than an instabreak. Option exists in hidden.yml to change this to an potion-based buff.
! Changed locales to fall back on English when translated strings cannot be found.
- Removed Party "master/apprentice" system. Replaced with the new party XP share feature.
- Removed unused "healthbar" files from the resources
- Removed config options for disabling commands from the config.yml. This should instead be done through permissions.
- Removed /mcc command. Replaced with /mcmmo [?|help|commands]
= Fix possible NPE when using the PartyAPI to add a player to a party that doesn't exist.
= Fix mcremove command for mySQL
= Fix a java.io.FileNotFoundException when using SQL
= Impact now works with mobs wearing armor
= Fixed issue with Tree Feller dropping player-placed blocks
= Fixed issue with missing default cases from several switch/case statements
= Fixed issue with Mining using actual skill level rather than max skill level
= Fixed some issues with static access
= Fixed ItemStack deprecation issues
= Fixed Async deprecation issues
= Fixed a bug with MySQL databases (non-alphanumeric characters preventing MySQL access)
= Fixed a bug where the /skillreset command was broken
= Fixed a bug where skill commands displaying .x% instead of 0.x%
= Fixed a bug Unbreaking enchantments being ignored when using Treefelling and when hit by Armor Impact
= Fixed a bug where only 1 diamond was needed to fully repair a broken item: Repaired the Repair skill!
= Fixed a bug where a infinite loop of errors caused by mySQL database could cause the server to crash
= Fixed a bug where PartyChangeEvent was fired even when a player isn't able to change parties
= Fixed a bug which caused advanced.yml not to work for Swords
= Fixed a bug which caused advanced.yml not to respect every MaxChance node
= Fixed a bug where GreenThumb_StageChange wasn't read from advanced.yml
= Fixed a bug where Repair would remove enchantments but the glow effect remained
= Fixed a bug where dropped items did not retain custom NBT data
= Fixed a bug which caused a potentially infinite recursion in a btree structure
= Fixed a NPE with custom blocks
= Fixed a bug with Blast Mining never dropping debris blocks
= Fixed a bug with Blast Mining incorrectly handling reduced TNT damage
= Fixed a bug with conflicting fishing enchantments
= Fixed a bug where triple drops wouldn't happen
= Fixed a bug which caused fishing to ignore max/min levels in treasures.yml
= Fixed a bug where treefeller affected player-placed blocks
= Fixed bug where Skull Splitter would be applied twice.
! GJ stopped being a lazy slacker and got stuff done
! Nossr50 actually committed something
! Changed code that uses SpoutPlugin to make it compatible with the latest version
! Reimplemented skill level and power level caps.
! Moved Arcane Forging and Fishing setting from config.yml to advanced.yml
! Overall SQL query improvements
! Reduced number of SQL queries for mcTop command from 11 to 1, speeding it up immensely
! Changed FFS Leaderboards to hold information in memory rather than doing IO work (optimizations)
! Improved chunk conversion (less errors)
! Changed Fishing Treasure Hunter, chance has increased and now actually is level dependent
! Indexed most used mySQL columns for faster queries
- Removed dead code relating to null profiles
- Removed unused imports
- Removed ChunkletUnloader and dependents, since they are no longer necessary.
Version 1.3.12
+ Added Craftbukkit 1.4.5 compatibility
+ Added the new 1.3.2 items, xp and double drops for Cocoa beans & Emeralds, EnderChest to the list of blocks that shouldn't trigger abilities
+ Added new items from Minecraft 1.4 to Herbalism (potatoes & carrots)
+ Added new configuration file for advanced users.
+ Added new permission nodes to greenthumb for the 1.4 items
+ Added new mobs from Minecraft 1.4 checks for every ability
+ Added new active ability for Repair: Salvage
+ Added options to 'config.yml' configure shake chance
+ Added the option to negate experience earned for Herbalism while in a minecart to prevent afk leveling
+ Added Green thumb now converts cobble walls to mossy cobble walls
+ Added beacons and anvils to list of blocks that don't trigger abilities
+ Added a configuration option to disable experience gains when in a minecraft for Acrobatics and Herbalism, to prevent AFK leveling
+ Added a new passive ability for Fishing, Fishermans diet. Increases hunger restored from fish
+ Added a feature to display all active perks on login
! Changed Fishing, Shake drops changed from guaranteed to based upon fishing level and perks
! Changed Woodcutting, the amount of experience earned when using Tree Feller on jungle trees has increased
! Changed Herbalism double drop rates for melons and netherwart
! Changed filesystem usage, it's reduced a lot. Should help reduce lag on larger servers
! Changed database connection handling. Support for aggressive connection timeouts, with exponential backoff for multiple failures
! Changed Cobblestone walls are now mossy-able with Greenthumb
! Changed the skull drop rates of the shake ability to 3%
= Fixed a NPE when Citizens perform certain tasks
= Fixed a NPE with Woodcutting, excessive null chunk before earning Woodcutting experience
= Fixed a NPE related to skill cooldowns
= Fixed a NPE when a players profile was null
= Fixed a NPE involving certain explosions
= Fixed a dupe bug when for players who were using a 'nuker' client
= Fixed a dupe bug where pistons were used to dupe ores
= Fixed a dupe bug with Salvage when players were in Creative mode
= Fixed a bug where the player was displayed an incorrect cooldown time
= Fixed a bug where players could earn experience when they were dealing 0 damage
= Fixed a bug where players could get double drops from mossified Cobblestone
= Fixed a bug where Herablism magically converted potatoes to carrots
= Fixed a bug where you couldn't modify the stats of offline players
= Fixed a bug where treefeller didn't work properly on tree's with side-way logs
= Fixed a bug where the Arcane forging downgrade chance should've been 0, but actually wasn't
= Fixed a bug where Fishing would sometimes give items with empty enchantments
= Fixed a bug where the lucky perk for Fishing was actually an unlucky perk
- Removed nothing
Version 1.3.11
! Changed axes to start with 1 durability damage instead of 5, gain 1 durability damage every 50 levels instead of 30, and only have a 25% chance on hit to damage armor (per armor piece)
+ Added compatibility with bow-wielding NPCs from Citizens/NPC mods
+ Added compatibility for pvp-prevention plugins for Serrated Strikes
= Fixed bug where mcMMO could throw NPE errors if trees cut down were from a custom mod and had an id of 17
= Fixed dupe bug where mcMMO would ignore other block-protection plugins for various abilities
= Fixed NPE with hardcore mode's vampirism
Version 1.3.10
+ Added 1.3.1 compatibility
+ Added permission node for Iron Grip ability (mcmmo.ability.unarmed.irongrip)
+ Added ability for custom blocks to drop a range of items.
+ Added Ability API functions
+ Added 50% & 150% XP boost perks
+ Added "lucky" perk for donors
= Fixed /inspect not working on offline players
= Fixed custom blocks, tools and armors not loading properly
= Fixed duplication bug with sticky pistons
= Fixed "GenericLabel belonging to mcMMO..." message
= Fixed menu exit button not working
= Fixed Repair enchant downgrade not working
= Fixed NPE caused by Spout players after a /reload
= Fixed ConcurrentModificationException on world unload
= Fixed players never being removed from memory (memory leak)
= Fixed admin chat being seen by everyone
= Fixed issue with UTFDataFormatException occurring on occasion when trying to load Chunklets
= Fixed ArrayIndexOutOfBounds error caused when trying to use /xplock after logging in but before gaining XP
= Fixed custom tools not properly respecting the Ability_Enabled flag.
= Fixed "lower tool" messages still being displayed even when ability messages are disabled.
= Fixed custom blocks not dropping the proper item with Super Breaker when Silk Touch is used
= Fixed possible ClassCastException from catching something other than a mob when using the Shake Mob skill
! Changed the format by which Chunklets are stored to be much smaller, and much faster to load
! Optimized how player placed blocks are tracked
Version 1.3.09
+ Added compatibility with AntiCheat (Which I highly recommend to prevent cheating)
+ Added several permission nodes to give individual users special perks (Double/Triple/Quadruple XP)
+ Added reduced cooldown permission nodes as special perks (1/4, 1/3, 1/2 cooldown)
+ Added increased activation time permissions nodes as special perks (+4, +8, and +12 seconds)
+ Added API for plugins to add custom tools directly via Spout - repair / abilities do not work ATM
+ Added offline party members to the list displayed by /party
+ Added possibility to kick offline members from parties
= Fixed bug that would cause a NPE for players that had no parties
= Fixed Vampirism not notifying the correct amount of stolen levels
= Fixed bug with Acrobatics not saving you from deadly falls
= Fixed /mcremove being applied only after a reload
= Fixed Archery PVE disablement not working properly
= Fixed possible NPE when a projectile is shot by a dispenser or doesn't have any shooter
= Fixed issue with NoCheatPlus and Serrated Strikes / Skull Splitter (fight.noswing)
= Fixed tiny memory leak concerning Archery
= Fixed bug where you could receive Archery XP from Potions
= Fixed bug where Chunklets for the < 64 y coordinates would not be properly loaded
= Fixed exploit with block duplication via piston pushing
= Fixed bug with falling sand/gravel not being tracked
= Fixed bug with Tree Feller not working with custom axes
= Fixed bug with locale strings when trying to teleport to a non-existent player
= Fixed bug with Tree Feller changing durability before checking for axe splintering
= Fixed bug with Repair Mastery permission due to typo
= Fixed bug with repairing items that use metadata
= Fixed bug with Chunklets not being reloaded on /reload
= Fixed possible NPE when falling with no item in hand
! API methods can now only be used in a static way
! Arrows shot from a bow having the Infinity enchantment can no longer be retrieved
! Arrows that aren't shot by an entity are now able to be dodged (currently only from dispensers)
! Changed Spout settings to be in their own config file (spout.yml)
! Changed file format for parties (parties.yml), previous files are no longer used
! Changed mcMMO to inform on corrupt Chunklets and make new ones
Version 1.3.08
+ Added more notifications about Vampirism and Hardcore mode on player death
+ Added information about Hardcore mode when joining a server running Hardcore mode
+ Added new hidden.yml inside the jar for very sensitive config options for advanced users
+ Added option to disable Chunklets for servers which do not have doubledrops and do not care about xp farming
+ Added new "Max_Seconds" setting in config.yml to limit the max time of abilities
+ Added new repair configs to allow customization of the repair skill
+ Added message to inform users about hardcore mode on login
= Fixed exploit where you could gain tons of Acrobatics XP from spamming Ender Pearls
= Fixed normal pistons marking a block as user-placed on retract if it wasn't a sticky piston (thanks turt2live!)
= Fixed handling of the Unbreaking enchantment so that tools are actually damaged as they should now
= Fixed hurting pet cats with serrated strikes
! Changed Hardcore Vampirism to require the victim to have at least half the skill level of the killer in order for vampirism to proc (this is to avoid exploitation)
! Changed Hardcore Vampirism to steal a minimum of 1 skill level from a player no matter the percentage
! Changed Hardcore & Vampirism to not be executed if percentages were set to zero or below
! Changed Vampirism to actually remove stats from the victim
! Changed Vampirism to inform the victim of their stat loss
! Changed Mining to allow Silk Touch to work again since the dupe exploit has been fixed.
! Changed Metrics to also report if the server uses plugin profiling
- Removed level and item settings from Repair skill in config.yml
Version 1.3.07
+ Added ability to gain XP from custom blocks. Enable custom blocks in the config file, then enter the data in the blocks.yml file.
+ Added ability to gain XP with custom tools. Enable custom tools in the config file, then enter the data in the tools.yml file.
+ Added ability to repair custom tools. Enable custom tools in the config file, then enter the data in the tools.yml file.
+ Added ability to repair custom armor. Enable custom armor in the config file, then enter the data in the armor.yml file.
+ Added functionality which makes a new folder in all world files "mcmmo_data" to store player placed block information in
+ Added new configurable Hardcore mode functionality to mcMMO
+ Added new configurable Vampirism PVP stat leech for Hardcore mode
+ Added new bypass permission node for the negative penalties of Hardcore mode 'mcmmo.bypass.hardcoremode'
+ Added configurable level curve multiplier which allows for tweaking the steepness of the XP needed to level formula
+ Added a permission node for Archery bonus damage
+ Added a permission node for Greater Impact ability
+ Added permission nodes for Treasure & Magic Hunter for Fishing
+ Added a permission node for Farmer's Diet
+ Added config options for enabling/disabling specific double drops
+ Added automatic zip backup of flatfile database & config files
+ Added config options to enable/disable specific skills for PVP & PVE
= Fixed bug where Tree Feller was looking at the wrong blocks for determining how much to take down.
= Fixed bug where Green Terra consumed seeds even on Mossy Stone Brick
= Fixed bug where the client didn't reflect the Stone Brick to Mossy Stone Brick change
= Fixed bug where an arrow could bounce off entities on daze proc
= Fixed bug where a player could gain Acrobatics experience while riding a cart
= Fixed /party not working properly with 2 arguments
= Fixed /party not showing properly the member list
= Fixed /ability not checking the right permission
= Fixed rare NPE on /party command
= Fixed Arrow Retrieval dropping only one arrow
= Fixed /p and /a incompatibilities with bChatManager
= Fixed Iron Grip working reversely
= Fixed NPE when user clicked the HUD button with Spout
= Fixed bug where the permission node for Impact didn't work
= Fixed some bypass nodes defaulting true for Ops
= Fixed bug with trying to use Chimera Wing while standing on a half-block
= Fixed duplication bug when a placed block was mined after a server restart
= Fixed exploit where shooting yourself with an arrow gave Archery XP
! Changed the mcMMO motd to link to the new website rather than the wiki
! Changed bleeding ticks damage to 1 from 2
! Changed Mining to ignore blocks when the pick is enchanted with Silk Touch
! Changed Super Breaker to be non-functional when used with a Silk Touch enchanted pick
! Changed MySQL to save player information 50ms apart from each other to reduce the load on the MySQL server
! Changed the permission node for Blast Mining detonation to mcmmo.ability.blastmining.detonate (was mcmmo.skills.blastmining) for the sake of consistency
! Changed skill commands to only display what you have permissions for
! Changed mcMMO to use a new storage system for player placed blocks
- Removed some unused permission nodes
- Removed a few config options in favor of permissions nodes (Hunger Bonus, Armor/Tool Repair, Instant Wheat Regrowth)
- Removed level requirement for repairing string tools from the config file
Version 1.3.06
+ Added Iron Golem XP for aggressive golems
+ Added permissions check to skill functions
+ Added API functions for obtaining offline profiles & profiles via player names
+ Added API functions for admin & party chat
+ Added Iron Grip skill to Unarmed which gives players an chance to keep from being disarmed.
+ Added some new languages to the locale files.
= Fixed Green Thumb consuming 2 seeds instead of 1
= Fixed exploit where you could teleport to yourself with PTP to prevent things like fall damage
= Fixed NPE error with Metrics on startup
= Fixed bug where Herbalism required double drops permission to give XP
= Fixed bug where {0} would be displayed in front of your power level in mcstats
= Fixed mmoupdate not being useable from console
= Fixed bug with repairing wooden tools
= Fixed bug with Nether Wart not awarding XP
= Fixed bug with fishing treasures when treasures list is empty
= Fixed bug with only getting one level when there was enough XP for multiple levels.
= Fixed bugs with the way /mctop displayed
= Fixed issues with custom characters & locale files.
= Fixed double explosion for Blast Mining
= Fixed Blast Mining not giving triple drops when it should
! Changed Bleeding to now stack to a finite number on Monsters and will wear off eventually
! Changed how we handled the config file to prevent any bugs when returning values
! Changed locale files to use a new naming scheme. This breaks ALL old locale files. If you want to assist with re-translating anything, go to getlocalization.com/mcMMO
! Changed /mcremove to check for users in the MySQL DB before sending queries to remove them
! Changed how the tree feller threshold worked for the better
! Changed /mcremove to no longer kick players when they are removed from database
! Changed /mcremove to work on offline users for FlatFile
! Changed PlayerProfile constructor to always take a boolean
! Changed getPlayerProfile function to work for online & offline users
! Changed Archery's Daze to deal 4 DMG on proc (2 Hearts)
! Changed /addlevel command to work for offline users
! Changed party & admin chat handling to be nicer to developers
! Changed /mcrefresh to work from console
! Changed /mcrefresh to work for offline players
! Changed UpdateXPBar function to hopefully avoid errors
! Changed /party to show offline party members
! Changed Blast Mining requirements, now asks for the player to be crouching
Version 1.3.05
+ Added Skill Shot to Archery which increases damage dealt by 10% every 50 skill levels (caps at 200%)
+ Added ExperienceAPI and PartyAPI classes for developer use
+ Added ability to cap overall power level
+ Added showing powerlevel below a persons name if you run Spout (optional)
= Fixed errors when Spout would disable itself after start-up
= Fixed XP bar not updating when XP was gained
= Fixed bug with repairing wooden tools
= Fixed bug where spawned wolves only had 8 health.
= Fixed bug where rare Treasures from Excavation were dropping too often
= Fixed bug where Skull Splitter & Serrated Strikes could be used without permissions.
= Fixed bug where API functions were set to static
= Fixed bug where mmoedit threw errors when modifying an offline user
= Fixed dupe exploit with Blast Mining
! Changed Tree Feller to account for ability durability loss but not leaves.
! Changed bypass node for Arcane Forging to not default to true for OPs
- Removed Ignition from Archery
- Removed McMMOPlayerRepairEvent - was basically a duplicate of McMMOPlayerRepairCheck but couldn't be cancelled.
Version 1.3.04
+ Added McMMOPlayerRepairEvent for API usage - fires after completion of a repair.
+ Added McMMOPlayerRepairCheckEvent for API usage - fires before repair process begins, can be cancelled.
+ Added ability to get skill level from McMMOPlayerExperience events
+ Added McMMOPartyTeleportEvent for API usage - fires before a successful teleportation would occur.
+ Added McMMOPartyChangeEvent for API usage - fires whenever a player joins or leaves a party
= Fixed Shake ability dropping bonemeal instead of ink for squids.
= Fixed Green Terra & Super Breaker awarding 4x drops at high levels.
= Fixed summoned ocelots never changing skins.
= Fixed bug with Disarm not working
= Fixed some API functions not being visible
= Fixed bug where /ptp worked on dead party members
! Changed MySQL to reload all player information on reconnection
! Changed event package structure - be sure to update these if you're using the API in your plugin
Version 1.3.03
+ Added Ocelots to Taming XP tables
+ Added ability to summon Ocelots with Call of the Wild
+ Added offline user functionality to mmoedit
+ Added bookshelves to list of blocks that don't trigger abilities.
+ Added 'mcmmo.repair.arcanebypass' permission node to bypass Arcane Repair and keep your enchantments
+ Added config option to disable Herbalism's instant wheat replanting
+ Added LOTS of new permissions nodes. *CHECK PLUGIN.YML FOR UPDATES*
+ Added Italian locale file - thanks Luxius96!
+ Added ability to inspect Ocelots with Beast Lore
+ Added console functionality to mctop
= Fixed Green Terra not awarding Triple Drops
= Fixed ClassCastException from Taming preventDamage checks
= Fixed issue with Blast Mining not seeing TNT for detonation due to snow
= Fixed issue with block interaction returning NPEs
= Fixed issue where every block broken had a mining check applied
= Fixed issue where every block broken had a herbalism check applied
= Fixed issue where blocks weren't being removed from the watchlist
= Fixed exploit where you could use /ptp to teleport to anyone
= Fixed bug where Green Terra didn't work on Stone Brick
= Fixed bug where Tree Feller could be used without permissions
= Fixed exploit where falling sand & gravel weren't tracked
= Fixed exploit where Acrobatics could be leveled via Dodge on party members.
= Fixed exploit where you could gain combat XP on animals summoned by Call of the Wild
! Changed mcMMO to save profiles only when the profile is about to be discarded rather than on player quit
! Changed MySQL to try to reconnect every 60 seconds rather than infinitely which caused server hangs
! Changed mcMMO to be better about saving player information on server shutdown
! Changed PTP to prevent teleporting if you've been hurt in the last 30 seconds (configurable)
! Changed Chimera Wing failure check to use the maxWorldHeight.
! Changed inspect failed message to say inspect rather than whois
! Changed Call of the Wild to activate on left-click rather than right-click
! Changed Blast Mining to track based on Entity ID vs. Location
! Changed mmoedit to save a profile when used (this will make mctop update)
! Changed a few Runnable tasks to have their own classes
! Changed parties so that a player will leave their existing party if they enter a world where they don't have party permissions.
! Changed Call of the Wild to summon animals already tamed.
! Changed mob spawner tracking to use new Metadata API
! Changed block watch list to use new Metadata API
! Changed around a few config options, including the ones for mySQL. *YOU NEED TO REDO YOUR CONFIG FILE*
- Removed 'true/false' debug message from Inspect command
Version 1.3.02
+ Added in game guides for Mining, Excavation, and Acrobatics. Simply type /skillname ? to access them
! Changed Tree Feller to hand out 1/4 of normal XP for each JUNGLE LOG block it fells
! Changed Tree Feller to only fell trees if you have enough durability
! Changed Tree Feller to cause injury if your axe splinters from a failed Tree Feller attempt
! Changed invincibility checks in EntityDamage listeners to accommodate for vanilla MC behaviour
! Changed Ignition to add fire ticks rather than replacing them.
! Changed Axes critical to have a max critical rate of 37.5% down from 75%
= Fixed bug where Taming defensive checks got called twice
- Added Monitor & ignoreCancelledEvents to onBlockPlace
- Made Anvil ID configurable
Version 1.2.09
- Fixed issue with Repair Mastery (Issue #47)
- Made Arcane Forging fully configurable (Pull Request #52)
- Made Fishing configurable (Pull Request #60)
- Changed timer to be a bit more efficient (Issue #19)
- Changed to fire EntityDamageEvents for all damage done by mcMMO
- New custom event for developers McMMOPlayerLevelUpEvent
- New custom event for developers McMMOItemSpawnEvent
- Changed LoadProperties from the old Configuration to FileConfiguration
- Removed aliasing from config.yml
- Fixed mining procs from Super Break & Silk Touch
- Unused smelt property removed
- Minor optimizations
- Fix for setting properly block damage values
- Initial skill level capping added
- Initial command alias framework added
- Fixed abilities not handling Unbreaking items
- Fix for treefeller glitch
- Super secret anniversary easter egg!
Version 1.2.08
- Changed Bukkit events to new event system
- Changed aliasing to send both the mcmmo command and the command used.
- Changes in combat exp (Pull Request #49)
- Repair for bows & leather armor (Pull Request #46)
- Fixed missing images (Pull Request #45)
- POM Changes for dependencies (Pull Request #36)
- Fishing & Repair fixes (Pull Request #31)
- Fixed CraftOfflinePlayer issue (Issue #212) errors for offline wolf owners
- Pull in commit from @NuclearW for issue from previous commit
Version 1.2.07
Fixed mctop not working at all (whoops!)
Fixed problem with multithreading in mcMMO causing errors
Fixed bug with Repair where it would remove the enchantments if you could not even repair the item
The command mmoupdate now runs in its own thread to ease the burden on the server
Version 1.2.06
German translation has been updated
Fixed fishing not being applied to MySQL DB when converting from Flat File -> MySQL
Fixed mctop not taking Fishing into account some of the time
Fixed bug where Taming would try to grab the name of offline players
Fixed bug where Fishing would try to add an enchantment level not normally possible
Fixed another bug with mmoedit and Fishing
Added option to only allow tools to ready when you are sneaking, this is off by default
Added Brewing Stand & Enchanters table to the list of blocks that won't cause you to ready your tool on right click
Version 1.2.05
Fixed my fix of not being able to place blocks near/on Anvils
Fixed resources in inventory not correctly updating after Repair
Version 1.2.04
Fixed bug where you could not place blocks near/on the Anvil
Version 1.2.03
skills2 and experience2 will be removed from MySQL DB automagically when this version first runs
Fishing is now stored in skills and experience tables on the MySQL DB as it should have been
Fishing will now save properly for MySQL
Fishing will now work properly with mctop for those using MySQL
Fixed problems with mmoedit and fishing
Version 1.2.02
Added measures to prevent easy xp from hacks that cause a ridiculous amount of clicks per second
Fixed bug where Call Of The Wild used only 1 bone to summon
Reduced Endermen XP from 3x to 2x
The number of bonus fish caught from fishing has been reduced
Fishing XP reduced from 1500 to 800
Fishing XP is now configurable in the config file
Version 1.2.01
Added a setting to turn off abilities completely from config
Added a setting to just turn off ability messages from config
Fixed the bug with sword repair
Fixed mcMMO not working properly with Spout
Added Fishing XP icon to Normal/Retro HUDs for Spout
Added icons to Spout notifications for leveling Fishing
Added Fishing Retro XP bar color customization to config file
The number of bones required to use Call of The Wild is now configurable
Reduced the XP animals would give from 1.5x to 1x
Removed current durability value message from Repairing
Fixed bug where Arcane Forging failed to display messages
Fixed bug where Arcane Forging tries to downgrade level 1 enchants
Fixed bug where Arcane Forging always kept enchantments if you had under 100 Repair skill
Version 1.2.00
Added Fishing Skill
Added Call Of The Wild to Taming
Added Arcane Forging to Repair
Added new mobs to XP tables
Added Master/Apprentice system to the Party system
Animals now give xp to combat skills (those poor sheep ;_;)
Removed unnecessary sorcery permissions from plugin.yml
Version 1.1.17
XP gained in combat is now softcapped by the remaining health of the entity you are damaging, preventing many exploits.
Players in Creative mode no longer gain XP
Compiled against latest Spout & CraftBukkit
Added World PVP check to Ignition, should no longer ignore PVP settings
Enemies should no longer grant XP when hit during their death
Fixed an exploit that led to unlimited ability use
Possibly fixed a bug where the same player would be listed multiple times in mctop
Added author and description to plugin.yml
/mmoedit and /addxp are useable from the console now
Swearword's statistics tracking removed (He stopped the service, so its gone now.. On a positive note, I did find out 1000-1500 servers installed mcMMO a day)
Version 1.1.16
Added Melons to Herbalism xp tables
Endermen added to Combat skill xp tables
Silverfish added to Combat skill xp tables
CaveSpider added to Combat skill xp tables
Version 1.1.15
Smooth Brick added to Green Terra
Green thumb can be used to spread moss to Smooth Brick now
Implemented a ghetto fix for the sword durability bug (real fix sometime soon)
Added Spain Spanish localization (es_es)
Version 1.1.14
[1.8] Removed the Archery fire rate limiter as its no longer necesarry due to changes in game mechanics
[1.8] Removed the bonus damage from Archery (I'll rework this skill soon)
[1.8] Removed the food bonuses to healing Herbalism provided due to the change of eating in game mechanics
[1.8] Swords no longer parry, no need to compete with in game mechanics
[1.8] mcMMO no longer has an HP Regen system, no need to compete with in game mechanics
[SPOUT] mcMMO now transfers files between [MC Server] -> [Client] rather than [Webserver] -> [Client]
[SPOUT] Temporarily disabled the PartyHUD due to some performance issues
[SPOUT/CONFIG] mcMMO now allows for disabling of the party HUD with the node Spout.Party.HUD.Enabled
[BUG] Fixed a few problems with readying abilities for Woodcutting/Axes
[MYSQL] Improvements have been made to the performance of MySQL thanks to krinsdeath
[CONFIG] Spout.Party.HP tree removed, replaced with Spout.Party.HUD
[CONFIG] Added an option for Excavation to require use of a shovel, on by default
[COMPATIBILITY] Changed the listener priority for OnEntityDamage from High to Monitor (Should make mcMMO compatible with Worldguards pvp regions among other things)
[COMPATIBILITY] Made party/admin chat modes more compatible with chat plugins (vChat)
[API] Added addXpOverride for modders, this will ignore skill modifiers
[SPOUT] The option to change the weburl of mcMMO Images/Sounds has been removed, if you want to customize mcMMO images/sounds you can open mcMMO.jar and replace them there
[LOCALE] Portuguese Brazil locale added (Code: pt_br)
[MISC] Added some experimental usage tracking, you can opt out of this in /plugins/stats/config.yml (Once its generated, may require 2 restarts)
Version 1.1.13
Pets are removed from party bars
Version 1.1.12
mcMMO now downloads files when you join the server to provide the best experience
mcMMO now uses a brand new Party HUD by Rycochet (from his mmoParty plugin)
Fixed the xpbar and xpicon settings in config to work properly
Fixed infinite HP exploit with Herbalism
Fixed bug where herbalism would heal out of the players normal health range
Fixed bug where entering ':' into your party name caused stat loss among other things
Fixed issue with block break listener priority
Version 1.1.11
mcMMO now properly cancels its Async taks when disabled
Fixed newly generated configs using 2 instead of 1 for skill multipliers
Version 1.1.10
Added default hud setting to config
Fixed bug where newly generated configs used old xp gain numbers
Version 1.1.09
Fixed mcMMO to run fine without Spout :)
Version 1.1.08
Fixed repair being 10x slower to level than normal
Version 1.1.07
Fixed the default HUD being set to RETRO instead of STANDARD
Version 1.1.06
mcMMO menu implemented! Default is 'M', change this in config
Retro HUD implemented!
Retro XP fill color is completely customizable on a per skill basis
New levelup sound thanks to @Rustydaggers !
With the help of Randomage the XP Formulas have been vastly changed for flexibility
Global modifiers and skill modifiers now support decimals
Global formula modifier dropped from config
GigaDrillBreaker/Berserk doesn't drop clay blocks anymore
Fixed bug where Herbalism didn't heal more for bread/stew when right clicking a block
Fixed bug where Wheat did not use the values form the config file
Fixed bug where Archery gave xp for inflicting self injury
Watch added to clay loot tables and maps remove from clay loot tables
Version 1.1.05
Maps dropped from excavation are created correctly, and represent the area they are found in
Fixed an exploit with clay and excavation
Fixed a NPE with locking xp bars
Fixed the !AdeptDiamond! localization error when repairing diamond with a skill below 50
Version 1.1.04
Removed URL settings for XPBAR/XPICON/HPBAR
Added single URL setting for mcMMO
Changed default host from Dropbox to Rycochet's webserver (with apparently unlimited bandwidth!, thanks Rycochet)
Fixed Repair noise not getting played
Fixed a small memory leak with party health bars
Version 1.1.03
Fixed a few images being hard-coded still rather than configurable
Version 1.1.02
Fixed bug where toggle for xpicon didn't work
Fixed bug where Excavation gave gravel drops to grass
Excavation now uses more enums
Version 1.1.01
Fixed toggles for hpbar/xpbar not working
Version 1.1.0
Brand new XP Bars, Health bars, and Skill Icons designed by BrandonXP
Added /xplock <skillname> to lock the xp bar to a skill
Repairing metal now has a sound effect
Shears added to Repair
MySpawn now works correctly when you are in the nether
MySpawn message when you right click a bed is now squelched
Intervals at which players renegerate hp have doubled in length (making it take 100% longer to regenerate than before)
Rewrote many variables stored per player to be integer instead of long, reducing overall memory usage of mcMMO
Rewrote the Timer mcMMO relies on to instead use the BukkitScheduler for performance
Fixed the party member list of /party
Fixed bug where Swords would counter-attack Projectiles
Removed a debug message when repairing diamond armor
Changed chat to use getDisplayName() instead of getName()
Changed chat priority from lowest to highest
Added Clay to excavation
Added new items to Clay's loot tables
Archery now works with the latest CB
Version 1.0.50
New /xprate command for those with mcmmo.admin permissions!
mcMMO now uses Spout instead of BukkitContrib
BukkitContrib support dropped
XP Formula is now 100+(skill level value * skill modifier * global modifier) thanks to suggestion
Fixed bug where /mmoupdate used the old directory instead of the new one to find the flat file
Fixed bug where Unarmed Mastery damage bonus only did as much as Unarmed Apprentice
Fixed bug where Pumpkins did not give out XP
Coordinates removed from /whois as they didn't really fit
/mcgod and /mmoedit now require permissions to be setup in some shape or form to be used
Lapus renamed to Lapis in config
Version 1.0.49
Updated German locale
Fixed bug where using the party system on a MySQL setup caused errors when writing to non-existent files
Fixed bug where using /accept caused a NPE (hopefully)
Fixed a few missing descriptions for commands
Version 1.0.48
Updated French Translation
Updated German Translation
Updated Polish Translation
Placed Coal Ore and Redstone Ore won't give XP anymore
Fixed unusually high memory usage at startup
Added many features to the party system written by NuclearW
Version 1.0.47
Fixed another BukkitContrib error for servers not running BukkitContrib
Version 1.0.46
Fixed bug preventing Excavation from gaining skill
Version 1.0.45
Corrected /stats showing Repair XP as Level for Repair
Corrected /repair showing Repair XP as Level for Repair
Corrected /whois showing Repair XP as Level for Repair
Version 1.0.44
Fixed my 'fix' of BukkitContrib errors with Tree Feller
Version 1.0.43
Stopped things from being auto-smelt'd
Version 1.0.42
Corrected 2 more errors involving not running BukkitContrib
Version 1.0.41
Fixed errors using Tree Feller if your server wasn't running BukkitContrib (sorry!)
Fixed some more leftover stuff involving the new half-finished mining skill
Fixed excavation's Giga Drill Breaker not working on placed blocks
Version 1.0.40
Fixed errors if your server wasn't running BukkitContrib
Version 1.0.39
mcMMO won't auto-download and auto-run BukkitContrib anymore
Version 1.0.38
Commented code for the half-finished Infernal Pick subskill (Whoops)
Version 1.0.37
The donation message in /mcmmo is now toggle-able
The anvil message now only gets shown the first time you place an anvil (after login)
Reworked /mcmmo (an improvement I would say)
Added /mcmmo text to localization file
Archery fire rate now configurable
Berserk mode stops items from being collected
Taming no longer receives xp from wolves being harmed
Fixed bug where /stats required Tree Feller permission to show Woodcutting skill
Fixed bug where players with mcgod could be harmed by AoE
Fixed bug where modifying a skill also modified the xp to the same amount (when it should be zero)
BukkitContrib Stuff
Added a pop-up when placing an Anvil
Added pop-ups on levelup
Added basic sound effects to various abilities (Berserk, Tree Feller, Super Breaker, Leaf Blower, etc...)
Code Stuff
Added checkXp(SkillType, Player) for plugin devs (use this after modifying XP to check for levels)
Added getPlayerProfile() which returns a PlayerProfile object for plugin devs (You can do almost everything with this object)
100% more enums
Changed how checking skill xp worked to be more efficient
Version 1.0.36
mcMMO now properly supports Bukkit/PEX/Permissions for Permissions
Config.yml will no longer generate Performance Debugging nodes
Registered permission nodes to plugin.yml
Some more changes to Permissions code
Fixed bug where Super Breaker activated where it shouldn't
Fixed bug with enabling/disabling mcgod in config.yml
Fixed bug with Excavation not kicking in until 1 level higher
Version 1.0.35
Added a Toggle for Chimaera Wing in config.yml
Added customization of what item is used for Chimaera Wing in config.yml
Fixed bug with randomly receiving Taming XP
mcmmo.users file moved into /plugins/mcMMO/FlatFileStuff/
Leaderboard files now moved into /plugins/mcMMO/FlatFileStuff/Leaderboards
Locale files now have the prefix locale_ instead of messages_
Locale files are now located inside com/gmail/nossr50/locale/ instead of com/gmail/nossr50/
Updated the code that handles permissions (this may mean 3.1.6 will finally play well!)
Some more source code organization
Fixed warnings for compiler
Removed dependencies on CraftBukkit
Registered commands to OnCommand
Removed performance debugging
Removed some useless settings from the config file