Full support for Spigot 1.20.6, including new potion and enchantment names. This fixes potion, golden apples, fishing knockback, and damage modules on newest version
You can now disable messages by setting relevant string in config.yml to empty ""
Changes
Minimum Java version required is now Java 17, but plugin still supports Spigot 1.9 through 1.20.6
Removed player-collisions module. This module relied on NMS and kept breaking with almost every new version of the game, or when running with badly-coded scoreboard plugins. You can use the enable-player-collisions option in paper.yml instead.
Removed SpartanAPI dependency. Library repository for API disappeared and this was breaking builds.
Bug Fixes
Account for fake overdamage from environmental sources. This was causing issues with players getting large amounts of damage too quickly if they received non-combat damage and then were hit by another player again, bypassing damage immunity.
Fix NullPointerException when sending custom sounds (e.g. using resource pack with sound modules). Thanks @Waischbrot
Fix no getPlayer method for BlockCanBuildEvent when using sword-blocking module in Spigot 1.12.2 or lower
Fix gapple module effects overriding pre-existing but longer effects of same strength (e.g. regen would be reset down even if player already had longer regen effect)
Fix splash potions being thrown in the sky not being affected by old-potion-effects module
Added per-user combat mode "modesets" supporting all modules, not just attack speed
You can now configure as many modesets as you like, and specify which modules should be enabled when a player is in that modeset
You can specify which modesets are allowed in which worlds
Modesets are persistent across server restarts
Players can switch between allowed modesets with /ocm mode for their current world
This allows players to choose what combat mode to be in, as long as they have the permission. The mode of the attacker takes precedence for any given damage calculation, to allow for a fair fight.
PlaceholderAPI support has been updated to display the player's current modeset for the player they are in with %ocm_modeset%
Important Changes
Fixed last damage calculations not taking into account non-entity damage. Improves compatibility with other plugins and fixes problems with damage immunity.
Moved worlds section from individual module configs to new modesets section
Removed toggle, enable, and disable commands. These have been replaced by the mode command.
sword-sweep-particles and disable-attack-sounds modules now require ProtocolLib. This allowes for faster updates and greater inter-plugin compatibility.
Smaller changes
Allow configuring message prefix
Added denied message when offhand is disabled
Added ability to disable randomness in old armour strength calculations
Allow configuring projectiles affected by projectile randomness module
Bug Fixes
Fixed issues with sword blocking module, including duplication
Fixed fishing knockback module not getting picked up by other plugins as entity damage (e.g. WorldGuard)
Fixed projectile randomness module launching items at a right angle sometimes
Remove offhand item if player switches world and is not allowed
Improved compatibility with other plugins that extensively modify damage e.g. McMMO. This should fix remaining issues with high click rate/no immunity.
Fixes
Fixed being able to shift-click shield into offhand slot when disabled
Fixed sword blocking not triggering when right-clicking air
Fixed certain potion effects being removed and re-applied with old gapple module, including health boost hearts being reset
This release is the culmination of a lot of work in making sure the damage calculations in the plugin are as accurate as possible. Extensive automated testing was conducted in order to make sure the weapon behaviour is accurate, and a lot of problems were found. They have now been fixed, and you will find the damage reflects the configuration as closely as possible. Additionally, compatibility with other plugins modifying damage was improved significantly.
New features
Add option to use old sharpness calculations to OldToolDamage module
Add automated config.yml upgrader for Spigot 1.18.1 and above. This means you config will not longer be reset when updating and all your options will be carried over to the new config
Bug fixes
Fix error on offhand swap with DisableElytra module
Fix error on /ocm enable command on Spigot >1.16
Added backwards compatibility for certain methods not existing, supports back to 1.9
Fix DisableAttackSounds module errors on 1.19.3
Improve compatibility with scoreboard plugins
Damage Changes
Changed minimum attack speed to disable cooldown to 40
Fix overdamage and last damage calculations
Fix overdamage calculations interactions with other modules
Correctly scale attack damage by cooldown, including enchantment damage
Fix critical hit detection in 1.9, by checking player is not sprinting
Fix critical hit calculation to be 1.5 multiplier of damage
Fix weakness potions causing damage calculations not to run for overdamage
Fix lingering & dispensed potions not being included by OldPotionEffects module
Fix OldArmourStrength module not taking resistance and absorption into account
Updated list of damages that bypass armour to 1.19
Allow greater compatibility with custom weapons, especially MCMMO and Crackshot
Fix successful overdamage not updating last damage value
Fix absorption modifier always being applied even when not needed
Added OldPotionEffects module, to modify duration and effect of potions to be like in 1.8
Added proper 1.13 support
Rewrote SwordSweep, OldToolDamage, OldArmourStrength, SwordBlocking modules and changed their listener priorities, including:
updating OldToolDamage Module damage values in config file,
adding ShieldDamageReduction module, allowing customisation of general and projectile damage reduction,
changing ShieldBlocking module to be more accurate with 1.8 blocking,
removing NBT editing of Toughness and Strength on armour. This was done in order to:
accomodate the OldPotionEffects module,
improve compatibility with other plugins,
make OldArmourStrength module accurate with 1.8 calculations.
Sweep particle effect now not shown if sweep attack is cancelled
Added "enableTeamDisbanding" option to PlayerCollisions module for improved compatibility with scoreboard and tablist-editing plugins (e.g. AnimatedNames)
Added configurable fishing rod cooldown
Prevented Citizens NPCs from being affected by fishing rods
Updated config.yml, rewriting some comments for clarity and removing obsolete sections
Bug fixes:
Fixed NPE in Sword Blocking module, including "playerWeakReference" error message
Fixed error message spam "Unable to find method getTypeId"
Plugin now works properly after /reload command
FishingRodKnockback module now follows 1.8 rules
Fixed error arising with some locales having differing letters for uppercase and lowercase
Fixed "Duplicate recipe ignored" error when using 1.13
Fixed compatibility issue with PaperSpigot
Fixed bug with DisableElytra module and hotbar swapping
Fixed enderpearl cooldown in DisableEnderpearlCooldown module
Revamped no collisions module to use packets instead of teams to reduce conflicts and be compatible with tablist and scoreboard plugins
Made shield blocking not stop every three seconds but work as normal blocking
Added config option for minimum damage while blocking & shield damage reduction
Change shield damage reduction from 1/2 a heart to 50% (like was in 1.8)
Added extra checks to avoid creating invincible players
Added oldcombatmechanics.nolapis permission with config option to only allow players with the permissions to get lapis auto-added to their enchantment table
Fixed projectile knockback module, where you were able to damage creative mode and protected players, and adjusted to no damage by default (but configurable)
Added option to disable shield crafting (courtesy of detobel36)
Implemented kukelekuuk00's solution for weapon cooldown persisting after uninstall (armour toughness will stay, though)
Implemented /ocm toggle command as requested by Ghoti, with OldCombatMechanics.toggle permission, so that players can toggle their cooldowns individually
Bug fixes:
Removed some debug code
Fixed NPE with some other plugins modifying golden apple recipe
Fixed health not regenerating past 20 hearts
Fixed players becoming invincible if weapon damage was set to 0