Releases: kernitus/BukkitOldCombatMechanics
v2.0.4
2.0.4 (2024-10-28)
Bug Fixes
- avoid ghost items after sword block restore (822fb1f), closes #749
- don't prevent moving shield to chests in disable offhand module (b299df2)
- error when right clicking air while holding block in <1.13 (cbc0c4b), closes #754
- listen to dynamically loaded worlds for modesets (f5b59d7), closes #747
- resolve elytras always unequipped by removing out-of-scope module (07106e6), closes #725
- fix sword blocking shield ending up in inventory on world change (8aa3fa3), closes #753
2.0.3 - 1.21 loading error & empty message fix
Fixes
- Fix Reflector loading error when running Spigot 1.21
- Fix setting empty message in config sending the message anyway instead of disabling (thanks @SrBedrock)
2.0.2 - Full 1.20.6 support & bug fixes
Features
- 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 theenable-player-collisions
option inpaper.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 forBlockCanBuildEvent
when usingsword-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
2.0.1 - Modesets bugfix + more placeholders
Bug Fixes
- Fix error using
/ocm mode
when current world not in config - Fix
mode.own
permission not working
New Features
- Added placeholders for enderpearl, gapple, and napple cooldowns. See wiki for more details.
2.0.0 - Modesets: per-user module combat modes
Features
- 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
, anddisable
commands. These have been replaced by themode
command. sword-sweep-particles
anddisable-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
1.12.2 - Damage plugins compat & Spigot 1.20
Build changes
- Switched from building with Maven to Gradle
- Updated to build against Spigot 1.20 API
Compatibility
- 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
- Fixed Spartan anticheat compatibility throwing console error
1.12.1 - Auto updater + fixes
New features
- Added auto-updater, can be configured in
config.yml
- Added option to force config update even when on Spigot < 1.18.1 (warning: this will remove all config comments)
- Removed list of interactive blocks from config
Bug Fixes
- Fixed issues with fishing rods being able to be used in Worldguard & Residence restricted areas
- Fixed damage calculation not being applied when running Spigot < 1.16 and having attack cooldown enabled
- Fixed errors with get absorption method when running Spigot < 1.15
- Fixed problems with eating golden apples being reset when damage taken
1.12.0 - Damage Calculations Rework
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
1.11.0 - New commands, full 1.18 compatibility & many fixes
New features
- Allow toggling cooldown via console
- Allow configuring cooldown messages
- Add
/ocm
command tab completion - Add
oldcombatmechanics.swordblock
permission for sword blocking (if turned on in config) - Add
/ocm <enable/disable>
world-wide and server-wide commands for toggling pvp version - Add
/ocm test
command to run automated damage tests in game (still a work-in-progess) - Check wiki for all details on new commands
Bug fixes
- Fix console error with freeze damage when running Spigot < 1.17
- Add Player Collisions module support for 1.18 (plugin still worked fine if disabled)
- Avoid random knockback being applied in certain situations
- Fix enderpearl fall damage not being applied correctly in Projectile Knockback module
- Make plugin use less memory if the server is running out of it
- Allow non-nms packets through with a warning for greater compatibility with other plugins
- Allow gapple cooldown to be applied even if old effects are disabled
- Fix console error in Disable Projectile Randomness module if running Spigot < 1.14
- Fix brewing stand refueling on Spigot 1.17 and above
- Update SpartanAPI dependency for compatibility with newer versions
Fixes to damage calculations
- Set correct last damage when player invulnerable to include base damage + strength modifier + crits
- Rearrange overdamage order calculation
- These fix problems with spamming attacks when a player or an entity should have invulnerability overdamage
From this version onwards, project licence was changed to Mozilla Public Licence 2.0
1.10.0 - Old knockback & crits, 1.17 support
Updated dependencies, reflection and added freeze damage to work with Spigot 1.17 (with great help from I-Al-Istannen)
New features:
- Added old player knockback module (with MWHunter's help)
- Added old critical hits module
- Added golden apple cooldown messages (with M0diis's help)
Fixes:
- Fixed shield-blocking damage reduction & armour durability
- Fixed compatibility with plugins that modify item damage, e.g. EpicBosses and MMOItems
- Fixed thorns causing too much damage through armour
- Fixed ignoring invulnerability overdamage, which caused repeated attacks to be too strong
- Fixed errors with netherite tools and shovels caused by Spigot 1.13+ item name changes
- Accounted for zombie horse and zombie villagers when calculating smite enchantment damage