This update fixes a bug where players with permission to modify the multiplier could not. This is a permission bug, so it is highly recommended to update ASAP.
It's been over a year since the last update, but CMR is working fine with 1.19.2 as far as I'm aware. This update adds a couple new features:
- Block chance multipliers! In the block list, you can add a % and a number after the name to increase or decrease the chance of a reward triggering for that specific block. For example, mossy_cobblestone%3 means when you break mossy cobblestone, each reward will have 3x the normal chance of triggering.
- New special command, !givemoney. When linked with Vault, CMR can give (or take) money from players directly through Vault rather than needing to use a separate command.
- New config option, disableCancelledCheck. When set to true, CMR will not check whether another plugin cancelled the block break. This may be useful if you have a misbehaving plugin on a non-survival server, but is not generally recommended.
- CMR is now built with Gradle, meaning it's easier than ever to make and test your own modifications to CMR (and contribute them back
)
By the way, CMR now has a
Discord support server if that's useful to you

This update fixes a bug where CMR would fail to start when the minecraft version doesn't have a minor revision number (as in, 1.major.minor) such as, well, 1.17.
This update doesn't functionally change much if you're using a recent version of minecraft, so no need to update.
This update uses reflection to maintain compatibility with older versions of mcMMO and WorldGuard. For WorldGuard v7, direct method calling is still used since we are careful about imports and such. The mcMMO hook uses reflection regardless of version, but it shouldn't slow anything down much.
As always, report any bugs you find, and thanks for using CMR!
I accidentally switched to a Java 11 JDK in the last version, this version is the same but recompiled with Java 8. If you are running Java 11 or higher, no need to update to this version.
If you are running Java 8 and have the ability to upgrade to at least Java 11, I recommend it. More plugins will likely be switching as time goes on, and more and more plugins are pushing for it, especially with the move to Java 16 in MC 1.17.
Thanks for using CMR!
This update adjusts the warning about receiving a block break event where the block broken is set as an air block. It's reworded to be a bit clearer and will only pop up the first time it happens, since there are more plugins that behave weirdly in that area than I expected.
Also, this version was compiled with 1.17, but there were no code changes required so it shouldn't make any difference.
Thanks for using CMR!
This update has been a long, long time in the making, and nearly doubles the size of the plugin with all the new GUI code. The main changes:
- Configuration GUI (/cmr gui)
- Multi-user GUI mode (join someone else's editing session)
- mcMMO block database hook (so you don't get rewards from placing and breaking the same block repeatedly)
- Renamed RewardSection -> RewardGroup (seems more intuitive that way)
- Added Metrics. I love to hear that people are using CMR and are happy with it, and this is another way of seeing that. Plus, it gives me insight on what minecraft versions CMR is being used on, so I can know how much time to spend on backporting features.
This update went through a lot of testing, but because of the amount of new code there are probably bugs that slipped through, so be sure to report those when you find them.
Thanks for using CMR!
Hopefully the final update before 7.0, this update fixes support for carrots and potatoes with growth state checking on 1.8, since apparently carrots and potatoes weren't considered crops until 1.9.
This update lets you check for only full-grown nether wart in legacy versions. It was intended to be that way in v6.8 but I didn't notice there was a separate API for it at the time.
Also fixed a StackOverflow when using removeInvalidValues, and fixed /cmr block list not showing blocks with data (like :true)
This is a quick update to re-add support for only rewarding breaking fully-grown crops to versions 1.12.2 and under. If you're on 1.13 or higher, you need not install this update.
In other news, I'm close to finishing the configuration GUI (yay!), a much-requested feature.
As always, let me know if you discover any issues, thanks!
This update comes with a pretty big change, all the rewards are now in rewards.yml along with a couple other config options. The converter is pretty simple so it shouldn't mess up your config but you might want to back it up anyway just in case. Also, there is now a command for changing reward limits in-game, /cmr limit, and a couple other bug fixes like the global worlds list not working.
This update adds a config option for reward sections and globally where you can limit the amount of rewards issued per block broken. Along with that, there is an option to randomize the order rewards are evaluated so that it's not weighted toward the first rewards / sections defined. For example, you have 3 rewards under a section with a local limit of 1. They each have a set 5% chance of being triggered. But is it really 5%?
5% first reward triggered
95% something else.
5% of 95% second reward triggered
95% of 95% something else
etc.
In other news, I've noticed there's a bug where if you remove one of the keys from a default reward section entirely, the plugin will pretend like it still exists. I'm wondering if this is a Spigot bug but I plan to fix it by changing the way reward sections are stored in the next update.
Let me know of any bugs, thanks!
This update adds a new config option, autopickupCompat. It is a true or false value. If you are using an auto pickup plugin and CMR isn't recognizing when blocks are broken, enable this option. Otherwise, keep it off.
I seem to have lost the piece of code that detects if the block break was cancelled by WorldGuard or some such thing, this is now fixed. Debug messages have also been added for when this happens.
Added some debug messages to help diagnose a problem, feel free to ignore this update unless you're trying to diagnose a problem with blocks not triggering rewards.
In v6.4 I updated the package names to reflect my new Spigot username but I forgot to change the plugin.yml as well so it could find the main class.
This update mostly changes internal things to make the plugin run more smoothly, but there is one command added: /cmr command replace for if you don't get the command right the first time and you want to change it, instead of doing /cmr remove X and then /cmr insert X ... you can just do /cmr replace X ...
Also fixed this update was a bug that prevented /cmr special commands from working in rewards, due to a problem with the utility that finds the commands.
Quite a few backend things were changed this update, so if something isn't working as it should after an in-game config change, you should be able to get it working again with /cmr reload. And of course, don't forget to report the bug so I can fix it!
Added:
- /cmr special category that contains things such as !msg, !title, and !sound.
- Debug log now logs all CMR messages (except ones about the debug log not working of course)
- Warning if your debug log is getting big - as a reminder, debug log shouldn't be on unless you are actively trying to solve a problem.
Fixed:
- There was an NPE on shutdown if debugLog: false in config.yml, this is now fixed.
- /cmr reload didn't reload block lists like it was supposed to, now it does.
Pretty much what the update title says, there was an error if you tried to enable the debug log by editing the config then using /cmr reload because we only initialized the config on plugin load. (I feel like this has happened before? Or maybe just been on the to-do list for a while?)
Also made sure the WorldGuard API didn't throw errors if there was no compatible version installed and instead disabled support like it was supposed to.
This update is a pretty small one, but a good idea. This update adds an example or two of each command to the /cmr help <command> page. There was also a bit of unused code removed, but that shouldn't affect anything because it was unused.
Not too much user-facing changes happened, most notably there is a new !sound command for playing a sound whenever a reward is received, and there is a WorldGuard API thing built into the plugin for support for multiple versions of WorldGuard. This update wasn't tested as thoroughly as other updates because not too much should have changed, so please report any bugs on the Discussion tab or the GitHub page!
This update rearranges how the commands were structured (huge if statement in the main class) to something more modular (separate classes). Also, about half the permissions were renamed and almost all of the commands were slightly renamed. See the plugin page for more details.
There have been multiple reports that percentages aren't working correctly. I haven't been able to reproduce this issue as of yet, but if you have a similar or different problem, please remember to follow the guidelines at the bottom of the plugin page so I can troubleshoot your problem efficiently.
Two notable features were added this update as well, the ability to use !msg and !title in reward command lists. See the reward config info section for details, or use '/cmr help command add' in-game.
There were a lot of changes in this release, and I probably didn't catch all the bugs, so please let me know if you find one!
I was recently told that the plugin lags the server, so I looked around and discovered how many expensive operations were running on every block break. Things should now be cached and run much better, so I recommend updating ASAP. The plugin was also compiled against 1.15.1 in this version.
This update was not tested a whole lot as not too much should have changed, but as always let me know if you find a bug. Thanks!
Forgot the check whether it was cancelled. For some reason I thought it did that automatically. It doesn't.
Firstly, fixed claims compatibility. I apparently had already done this, see the commit on Git that says fixed world protection plugin compatibility, but it was accidentally rolled back with v5.5 somehow. So here you go I guess. Thanks
@jonnycp9 !
The second thing was that CMR would freak out if the debug log was disabled when the server started, then enabled with /cmr reload.
WARNING: THIS UPDATE BREAKS COMPATIBILITY WITH CLAIMS PLUGINS. PLEASE UPDATE TO v5.5.1
This update doesn't change a ton of things, just two main ones.
Firstly, /cmr help now provides short descriptions of commands, while you can do /cmr help <command> to see the longer description.
Secondly, there's a new debug log. The process for getting help with issues is easier now. For the full process see the bottom of the plugin page.
Oh yeah, also fixed the compatibility with WorldGuard 7 rc1.
(For 5.6 the next planned thing is /cmr addcommand is replaced with /cmr command add)
If you have any features you'd like to see in this plugin, post in discussion, PM me, or make an issue on GitHub!
So for some reason it never occurred to me that compatibility with world protection plugins would be nice, preventing people from protecting a block, denying themselves permission to break it, then attempting to break it. Since CMR did not previously filter protected blocks, it would issue rewards even on blocks that were protected and not actually broken.
This has been fixed now. As always, send me PMs if you found a bug and I'll fix it as soon as I can. Thanks!
What the title says. It will only auto-complete commands you have at least partial permission to use. Keep in mind that if a player has access to a command like /cmr listworlds, the tab-completion will give away the reward sections and rewards. Not what's in them, just the names. Also don't add only, for example, cmr.worlds.modify and not cmr.worlds.view. Things will probably get weird. Just FYI.
Also sorry about the update spam. Was like, "let's accomplish one more thing on the to-do list." "Well that was fast, let's do another." "Maybe one more."

Reworked the permissions system a lot. Instead of ugly cmr.modifycommands, for example, it's cmr.commands.modify. cmr.* still works to give permissions for everything, and cmr.use.* still works as expected. A new permission node was added too, cmr.seeall. It just allows view permissions to everything.
Yep, that's all.
This update makes use of the 1.13 command suggestion feature, also known as tab-completion. All commands have tab-completed arguments except for things like numbers. Even regions and worlds are suggested. One thing about it is that where you have an optional argument before the mandatory argument, it will suggest for both. If you find glitches with this feature especially, post in the Discussion tab or PM me!
This plugin has now been updated to 1.13.2 and will work with WorldGuard 7. New features:
- Instead of data values, there are now growth states. You can put, for example, "wheat:true" in the blocks list and it will only allow the reward to happen if it is fully grown wheat. Similarly, if you put "wheat:false", it will only allow it to happen with wheat that isn't fully grown yet. As before, if you just put "wheat" it will register for any growth stage of wheat.
- Duplicate blocks are now managed and filtered properly. Still don't put duplicate blocks in, but the plugin will handle them if you do. If you use the /cmr addblock command, it will prevent you from adding duplicate blocks. If, for some reason, you REALLY want to, you can add it in the config file but it WILL bug you to fix it. Keep in mind that "wheat" would do the same thing as "wheat:true" and "wheat:false" in the same list.
- Added more control of log verbosity. Regenerate your config to use this option. Alternatively, add "verbosity: 1" to your config file, without quotes. 1 is regular logging, logs only errors and commands executed. 0 is minimal logging, only logs errors. 2 is maximum logging, will spam you with every rewarding block break for debugging purposes.
- Other bug fixes and such.
Please report any bugs in discussion tab or PM me!
First things first, added support for WorldGuard regions. They work exactly like allowing worlds, which is you add a world with a command and if a block broken is not in an allowed region it will not deliver rewards.
Second, massive recode. Again. Now we use exceptions instead of evil magic numbers. Also, changed the base package name from me.AlanZ to me.AlanZ.CommandMineRewards. A couple new commands too, check the main page for info.
Fixed an issue caused by PlayerInventory#getItemInMainHand not existing for 1.8 users.
Reported by
@Zaniquelli
@Zaniquelli discovered an issue - two actually - with the blocks lists. First issue was that beetroot_block, a block in the sample config, does not exist in 1.8, throwing errors. The second issue was that it was throwing errors. It should have been catching them and printing a helpful error message instead, but the verification method was checking for invalid blocks incorrectly. Both issues are fixed now.

Simple update, added a filter so that you can allow or prevent silk touch users from receiving rewards. Also, you can specify a list of worlds in the config to allow rewards in only those worlds. The world setting has a global version and a sectional version, the silk touch setting can be global, sectional, or individual rewards. Feature requested by
@Zaniquelli
Generate a new config to see the usage of these options.
Fixed permissions inconsistency.
After all the waiting, CommandMineRewards v3.0 is finally here!
While it is not required for operation,
It is recommended that you rebuild your config!
Changes:
Instead of one list of blocks and only blocks with a data value of 0, you can now use multiple lists of blocks and different data values!
The config structure is quite different from the previous versions so please carefully look over the examples in the default config to know how to set it up. As a result of the new structure, most reward editor commands now require both a reward and a reward section.
This update will try to auto-convert the config, but you should rename it to config.yml.bak or something so just in case CMR messes up you will still have your old one. If you don't rename it, you might have to rebuild your config completely. Please note that the comments for usage will not be auto updated so you should rebuild to see the new usage information!
All new commands and permissions will be added to the description page.
(Yes, my code is messy and needs to use more classes. That will come in the next update hopefully.)
I made the survivalOnly option one on/off thing instead of per-reward because it wasn't really that useful and just cluttered the configuration. If, for some reason, that feature was useful to have per-reward, let me know and I can put it back. I also added a bunch of new commands, including:
/cmr addblock [block]: Adds a block to the list of reward-triggering blocks. You can use it either by specifying the name of the block you want to add, or just by holding it in your hand. Similarly...
/cmr removeblock [block]: This removes a block from the list in the same manner as /cmr addblock.
/cmr listblocks: Lists all the blocks that trigger rewards in a nice, readable format.
There are many more. You can see the full list on the main page, or in-game with /cmr help (which now features a bright new look!)
This update hasn't been tested a ton, but a fair amount. If you come across any bugs, please post in the discussion thread or send me a PM and I'll get back to you as soon as I can.
While I'm at it, thank you for the kind words and reviews! I wasn't expecting this plugin to actually be used by more than one person!

Thanks!!
Somehow, when I exported 1.2, the actual class files didn't get exported. I'm not sure how I did that, but this fixes it. Must have unchecked the wrong box...
Change log:
- Per reward permissions,
please read main page for new permissions .
- Option to only trigger reward if player is in survival mode.
- Now allows rewards to have any name you want, and doesn't have to be an integer. I said this on either v1.0 or v1.1 but it was not fully implemented and therefore would not work (at least theoretically).
- Changed reload message to be more accurate about what it actually does.
- Maybe a couple other minor changes that I already forgot.
Please delete/rename your config and generate a new one to get the new information. If you choose not to re-generate it, manually add the survivalOnly option to each reward or it will not work. I recommend rebuilding the config.
As stated, allows multiplier to have a decimal, as well as chances for rewards, and fixes /cmr reload. Also added a config option for debug mode. Probably a couple other things I can't remember.
I have a couple more ideas for future updates, such as configurably only giving reward if player is in survival mode. If you have suggestions, please post in the discussion area.