Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Weakness effect not working as expected. #742

Open
DanSeb2000 opened this issue Jun 28, 2024 · 5 comments
Open

Weakness effect not working as expected. #742

DanSeb2000 opened this issue Jun 28, 2024 · 5 comments
Labels
investigate We have yet to investigate this issue

Comments

@DanSeb2000
Copy link

DanSeb2000 commented Jun 28, 2024

Information

  • Server Version: Paper 1.21 - Build 38
  • OldCombatMechanics version: 2.0.2
  • Server Log File:
Server Log
[00:28:41] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
[00:28:43] [ServerMain/INFO]: Loaded 1290 recipes
[00:28:44] [ServerMain/INFO]: Loaded 1399 advancements
[00:28:44] [Server thread/INFO]: Starting minecraft server version 1.21
[00:28:44] [Server thread/INFO]: Loading properties
[00:28:44] [Server thread/INFO]: This server is running Paper version 1.21-38-master@1f5db50 (2024-06-27T20:15:58Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
[00:28:45] [Server thread/INFO]: Server Ping Player Sample Count: 12
[00:28:45] [Server thread/INFO]: Using 4 threads for Netty based IO
[00:28:46] [Server thread/WARN]: [!] The timings profiler has been enabled but has been scheduled for removal from Paper in the future.
    We recommend installing the spark profiler as a replacement: https://spark.lucko.me/
    For more information please visit: https://github.com/PaperMC/Paper/issues/8948
[00:28:46] [Server thread/INFO]: [ChunkTaskScheduler] Chunk system is using 1 I/O threads, 2 worker threads, and population gen parallelism of 2 threads
[00:28:46] [Server thread/INFO]: Default game type: SURVIVAL
[00:28:46] [Server thread/INFO]: Generating keypair
[00:28:46] [Server thread/INFO]: Starting Minecraft server on *:25200
[00:28:47] [Server thread/INFO]: Using epoll channel type
[00:28:47] [Server thread/INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.
[00:28:47] [Server thread/INFO]: Paper: Using OpenSSL 1.1.x (Linux x86_64) cipher from Velocity.
[00:28:47] [Server thread/INFO]: [LiteBans] Loading server plugin LiteBans v2.15.1
[00:28:47] [Server thread/INFO]: [LuckPerms] Loading server plugin LuckPerms v5.4.134
[00:28:48] [Server thread/INFO]: [PlayerPoints] Loading server plugin PlayerPoints v3.2.7
[00:28:48] [Server thread/INFO]: [PlayerPoints] Initializing using RoseGarden v1.3.0.36-DEV-SNAPSHOT
[00:28:48] [Server thread/INFO]: [ProtocolLib] Loading server plugin ProtocolLib v5.3.0-SNAPSHOT-723
[00:28:48] [Server thread/WARN]: [ProtocolLib] Version (MC: 1.21.0) has not yet been tested! Proceed with caution.
[00:28:48] [Server thread/INFO]: [Core] Loading server plugin OldustCore v1.0
[00:28:48] [Server thread/INFO]: [Core] Iniciando OldustCore.
[00:28:48] [Server thread/INFO]: [net.oldust.oldustcore.mysql.hikaridb.hikari.HikariDataSource] HikariPool-1 - Starting...
[00:28:49] [Server thread/INFO]: [net.oldust.oldustcore.mysql.hikaridb.hikari.pool.HikariPool] HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@63ba73ff
[00:28:49] [Server thread/INFO]: [net.oldust.oldustcore.mysql.hikaridb.hikari.HikariDataSource] HikariPool-1 - Start completed.
[00:28:49] [Server thread/INFO]: [Core] Cargando Servidor dn usando el grupo DN
[00:28:49] [Server thread/INFO]: [Core] Plugin iniciado.
[00:28:49] [Server thread/INFO]: [OldCombatMechanics] Loading server plugin OldCombatMechanics v2.0.2
[00:28:49] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[00:28:49] [Server thread/INFO]: [LuckPerms] Enabling LuckPerms v5.4.134
[00:28:49] [Server thread/INFO]:         __    
[00:28:49] [Server thread/INFO]:   |    |__)   LuckPerms v5.4.134
[00:28:49] [Server thread/INFO]:   |___ |      Running on Bukkit - Paper
[00:28:49] [Server thread/INFO]: 
[00:28:49] [Server thread/INFO]: [LuckPerms] Loading configuration...
[00:28:50] [Server thread/INFO]: [LuckPerms] Loading storage provider... [MYSQL]
[00:28:50] [Server thread/INFO]: [me.lucko.luckperms.lib.hikari.HikariDataSource] luckperms-hikari - Starting...
[00:28:50] [Server thread/INFO]: [me.lucko.luckperms.lib.hikari.HikariDataSource] luckperms-hikari - Start completed.
[00:28:50] [Server thread/INFO]: [LuckPerms] Loading messaging service... [SQL]
[00:28:50] [Server thread/INFO]: [LuckPerms] Loading internal permission managers...
[00:28:51] [Server thread/INFO]: [LuckPerms] Performing initial data load...
[00:28:51] [Server thread/INFO]: [LuckPerms] Successfully enabled. (took 1953ms)
[00:28:51] [Server thread/INFO]: [PlayerPoints] Enabling PlayerPoints v3.2.7
[00:28:51] [Server thread/INFO]: [PlayerPoints] Data handler connected using SQLite.
[00:28:52] [Server thread/INFO]: [ProtocolLib] Enabling ProtocolLib v5.3.0-SNAPSHOT-723
[00:28:52] [Server thread/WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
[00:28:52] [Server thread/WARN]: The server will make no attempt to authenticate usernames. Beware.
[00:28:52] [Server thread/WARN]: Whilst this makes it possible to use BungeeCord, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.
[00:28:52] [Server thread/WARN]: Please see http://www.spigotmc.org/wiki/firewall-guide/ for further information.
[00:28:52] [Server thread/WARN]: To change this, set "online-mode" to "true" in the server.properties file.
[00:28:52] [Server thread/INFO]: Preparing level "world"
[00:28:53] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[00:28:54] [Server thread/INFO]: Time elapsed: 1716 ms
[00:28:54] [Server thread/INFO]: Preparing start region for dimension minecraft:the_nether
[00:28:55] [Server thread/INFO]: Time elapsed: 953 ms
[00:28:55] [Server thread/INFO]: Preparing start region for dimension minecraft:the_end
[00:28:56] [Server thread/INFO]: Time elapsed: 233 ms
[00:28:56] [Server thread/INFO]: [LiteBans] Enabling LiteBans v2.15.1
[00:28:56] [Server thread/WARN]: [LiteBans] The duration limit group "helper" does not have the "tempban" option specified.
Note that tempban/tempmute durations will default to 27 seconds and the permission will default to none.
[00:28:56] [Server thread/INFO]: [LiteBans] Using system locale (en)
[00:28:56] [Server thread/INFO]: [LiteBans] Loaded 2 templates from templates.yml!
[00:28:56] [Server thread/INFO]: [LiteBans] Loading SQL driver: mysql 8.0.29 (com.mysql.cj.jdbc.Driver)
[00:28:56] [Server thread/INFO]: [LiteBans] Connecting to database...
[00:28:56] [Server thread/INFO]: [LiteBans] litebans-pool - Starting...
[00:28:56] [Server thread/INFO]: [LiteBans] litebans-pool - Start completed.
[00:28:56] [Server thread/INFO]: [LiteBans] Connected to MySQL database successfully (190.3 ms).
[00:28:57] [Server thread/INFO]: [LiteBans] Database connection fully initialized (618.8 ms).
[00:28:57] [Server thread/INFO]: [LiteBans] v2.15.1 enabled. Startup took 1035 ms.
[00:28:57] [Server thread/INFO]: [Core] Enabling OldustCore v1.0
[00:28:57] [Server thread/INFO]: [DestruyeElNexo] Enabling DestruyeElNexo v3.1.0
[00:28:57] [Server thread/WARN]: [org.bukkit.craftbukkit.legacy.CraftLegacy] Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!
[00:29:09] [Server thread/INFO]: [NBTAPI] [NBTAPI] Found Minecraft: 1.21! Trying to find NMS support
[00:29:09] [Server thread/INFO]: [NBTAPI] [NBTAPI] NMS support 'MC1_21_R1' loaded!
[00:29:09] [Server thread/INFO]: [NBTAPI] [NBTAPI] Using the plugin 'DestruyeElNexo' to create a bStats instance!
[00:29:09] [Server thread/INFO]: [OldCombatMechanics] Enabling OldCombatMechanics v2.0.2
[00:29:09] [Server thread/ERROR]: [OldCombatMechanics] [STDERR] Failed to load Reflector
[00:29:09] [Server thread/WARN]: Nag author(s): '[kernitus, Rayzr522]' of 'OldCombatMechanics v2.0.2' about their usage of System.out/err.print. Please use your plugin's logger instead (JavaPlugin#getLogger).
[00:29:09] [Server thread/WARN]: java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2
[00:29:09] [Server thread/WARN]: 	at OldCombatMechanics.jar//kernitus.plugin.OldCombatMechanics.utilities.reflection.Reflector.<clinit>(Reflector.java:32)
[00:29:09] [Server thread/WARN]: 	at OldCombatMechanics.jar//kernitus.plugin.OldCombatMechanics.OCMMain.registerModules(OCMMain.java:196)
[00:29:09] [Server thread/WARN]: 	at OldCombatMechanics.jar//kernitus.plugin.OldCombatMechanics.OCMMain.onEnable(OCMMain.java:85)
[00:29:09] [Server thread/WARN]: 	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:288)
[00:29:09] [Server thread/WARN]: 	at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:202)
[00:29:09] [Server thread/WARN]: 	at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:109)
[00:29:09] [Server thread/WARN]: 	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520)
[00:29:09] [Server thread/WARN]: 	at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:629)
[00:29:09] [Server thread/WARN]: 	at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:578)
[00:29:09] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:690)
[00:29:09] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:452)
[00:29:09] [Server thread/WARN]: 	at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:327)
[00:29:09] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1157)
[00:29:09] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329)
[00:29:09] [Server thread/WARN]: 	at java.base/java.lang.Thread.run(Thread.java:1583)
[00:29:10] [Server thread/INFO]: [OldCombatMechanics] OldCombatMechanics v2.0.2 has been enabled
[00:29:10] [Server thread/INFO]: Running delayed init tasks
[00:29:10] [Craft Scheduler Thread - 4 - DestruyeElNexo/INFO]: [DN] Cargado/s: 2 rango/s.
[00:29:10] [Server thread/INFO]: Done (25.588s)! For help, type "help"
[00:29:10] [Server thread/INFO]: Timings Reset
[00:29:27] [User Authenticator #0/INFO]: UUID of player DanSeb2000 is ba30c031-683b-4bb9-a1a8-4ef943f892d6
[00:29:28] [User Authenticator #0/INFO]: UUID of player Dansi7u7 is 4ae210f1-b39c-4a9f-b21c-33e41b0df391
[00:29:29] [Server thread/INFO]: DanSeb2000[/168.90.74.52:55991] logged in with entity id 19 at ([world]321.5, 35.0, 318.5)
[00:29:29] [Server thread/INFO]: Dansi7u7[/168.90.74.52:55205] logged in with entity id 20 at ([world]321.5, 35.0, 318.5)
[00:29:32] [Server thread/INFO]: DanSeb2000 issued server command: /dn iniciar
[00:29:48] [Server thread/INFO]: DanSeb2000 issued server command: /kill
[00:30:03] [Server thread/INFO]: OldCombatMechanics config file reloaded
[00:30:09] [Server thread/INFO]: Dansi7u7 issued server command: /kill
[00:30:21] [Server thread/INFO]: DanSeb2000 issued server command: /tp Dansi7u7
[00:30:21] [Server thread/INFO]: [DanSeb2000: Teleported DanSeb2000 to Dansi7u7]
[00:30:24] [Server thread/INFO]: DanSeb2000 issued server command: /gm c
[00:30:54] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleAttackCooldown] Setting attack speed to 40.00 (was: 40.00) for DanSeb2000 in mode old
[00:30:54] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleAttackCooldown] Setting attack speed to 40.00 (was: 40.00) for Dansi7u7 in mode old
[00:30:54] [Server thread/INFO]: OldCombatMechanics config file reloaded
[00:31:01] [Server thread/INFO]: DanSeb2000 issued server command: /effect give Dansi7u7 minecraft:regeneration 1 255
[00:31:01] [Server thread/INFO]: [DanSeb2000: Applied effect Regeneration to Dansi7u7]
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage back to 9.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldToolDamage] Weapon material: NETHERITE_SWORD
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] Old tool damage: 8.0 New: 9.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Base: 9.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Weak: 0.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength level: 0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength: 0.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale by attack delay: 9.0 *= 0.2 + 1.0^2 * 0.8
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Crit 9.0 *= 1.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale enchantments by attack delay: 0.0 *= 1.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Attack damage (before defence): 9.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BASE: 9.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BLOCKING: -0.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR: -0.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] RESISTANCE: -0.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR ENCHS: -0.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ABSORPTION: -0.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] Final damage after defence calc: 9.0
[00:31:04] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage to 0
[00:31:06] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldPotionEffects] Potion type: LONG_WEAKNESS Duration: 4800 ticks
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage back to 9.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldToolDamage] Weapon material: NETHERITE_SWORD
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldToolDamage] Expected 8.0 got 0.0 ignoring weapon...
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Base: 0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Weak: -0.5
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength level: 0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength: 0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale by attack delay: -0.5 *= 0.2 + 1.0^2 * 0.8
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Crit -0.5 *= 1.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale enchantments by attack delay: 0.0 *= 1.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Attack damage (before defence): 0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BASE: 0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BLOCKING: -0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR: -0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] RESISTANCE: -0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR ENCHS: -0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ABSORPTION: -0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] Final damage after defence calc: 0.0
[00:31:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage to 0
[00:31:14] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldPotionEffects] Potion type: STRONG_STRENGTH Duration: 1340 ticks
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage back to -0.5
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldToolDamage] Weapon material: NETHERITE_SWORD
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldToolDamage] Expected 8.0 got 0.0 ignoring weapon...
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Base: 0.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Weak: -0.5
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength level: 2
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength: 3.6
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale by attack delay: -0.5 *= 0.2 + 1.0^2 * 0.8
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Crit -0.5 *= 1.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale enchantments by attack delay: 0.0 *= 1.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Attack damage (before defence): 0.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BASE: 0.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BLOCKING: -0.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR: -0.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] RESISTANCE: -0.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR ENCHS: -0.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ABSORPTION: -0.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] Final damage after defence calc: 0.0
[00:31:16] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage to 0

[00:38:01] [Server thread/INFO]: DanSeb2000 issued server command: /enchant DanSeb2000 minecraft:sharpness 5
[00:38:01] [Server thread/INFO]: [DanSeb2000: Applied enchantment Sharpness V to DanSeb2000's item]
[00:38:06] [Server thread/INFO]: DanSeb2000 issued server command: /effect give Dansi7u7 minecraft:regeneration 1 255
[00:38:06] [Server thread/INFO]: [DanSeb2000: Applied effect Regeneration to Dansi7u7]
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage back to -0.5
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldToolDamage] Weapon material: NETHERITE_SWORD
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldToolDamage] Expected 8.0 got 0.0 ignoring weapon...
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Base: 0.0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Weak: -0.5
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength level: 0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength: 0.0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale by attack delay: -0.5 *= 0.2 + 1.0^2 * 0.8
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Crit -0.5 *= 1.0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale enchantments by attack delay: 3.0 *= 1.0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Attack damage (before defence): 2.5
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BASE: 2.5
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BLOCKING: -0.0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR: -0.0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] RESISTANCE: -0.0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR ENCHS: -0.0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ABSORPTION: -0.0
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] Final damage after defence calc: 2.5
[00:38:08] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage to 0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] 1.9 Critical hit detected
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage back to 2.5
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldToolDamage] Weapon material: NETHERITE_SWORD
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldToolDamage] Expected 8.0 got 0.0 ignoring weapon...
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Base: 0.0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Weak: -0.5
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength level: 0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Strength: 0.0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale by attack delay: -0.5 *= 0.2 + 1.0^2 * 0.8
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Crit -0.5 *= 1.5
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Scale enchantments by attack delay: 3.0 *= 1.0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Attack damage (before defence): 2.25
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BASE: 2.25
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] BLOCKING: -0.0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR: -0.0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] RESISTANCE: -0.0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ARMOUR ENCHS: -0.0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] ABSORPTION: -0.0
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [ModuleOldArmourStrength] Final damage after defence calc: 2.25
[00:38:10] [Server thread/INFO]: [OldCombatMechanics] [DEBUG] [EntityDamageByEntityListener] Set last damage to 0
  • OldCombatMechanics config file:
config.yml
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.

# ############# OldCombatMechanics Plugin by kernitus and Rayzr522 ##########
#                                                                           #
# Bukkit Page: http://dev.bukkit.org/bukkit-plugins/oldcombatmechanics/     #
# Spigot Page: https://www.spigotmc.org/resources/oldcombatmechanics.19510/ #
# GitHub Page: https://github.com/kernitus/BukkitOldCombatMechanics/        #
#                                                                           #
# ###########################################################################

modesets:
  # Modesets are lists of modules that are enabled for a player in that mode.
  # Modules not listed in any modeset are assumed to always be available.
  # You can create, remove, and rename as many modesets as you like by modifying the list below.
  # When in PvP, the modeset of the attacker is checked first.
  # If not PvP, the modeset of the defending entity is checked.
  # Of course, the module must also be enabled in its own config section.
  # Sample below has modules enabled for "old" combat modeset and disabled for "new" combat modeset
  # PlaceholderAPI: %ocm_modeset%
  old:
    - "disable-attack-cooldown"
    - "disable-sword-sweep"
    - "disable-offhand"
    - "old-tool-damage"
    - "sword-blocking"
    - "shield-damage-reduction"
    - "old-golden-apples"
    - "old-player-knockback"
    - "old-player-regen"
    - "old-armour-strength"
    - "old-potion-effects"
    - "old-critical-hits"
  new: [ ]

worlds:
  # These are the modesets available in each world.
  # If player has no modeset when moving worlds they'll be assigned first mode in list,
  # unless the mode from the world they are coming from is also available in the new world.
  # Worlds not specified below will have all modesets available.
  world: [ "old", "new" ]
  world_nether: [ "old", "new" ]
  world_the_end: [ "old", "new" ]
  # old_world: ["old"]
  # brave_new_world: ["new"]

mode-messages:
  # Messages used when changing player mode
  # To disable any message, leave the corresponding string empty (e.g., mode-status: "").
  # This applies to all messages in the configuration.
  mode-status: "&bYour current modeset is: &7%s"
  message-usage: "&eYou can use &c/ocm mode <modeset> [player] &eto change modeset"
  invalid-modeset: "&cPlease specify a valid modeset!"
  invalid-player: "&cPlease specify a valid player!"
  mode-set: "&2Set modeset to &7%s"

# ########################
# COMBAT MODULE SETTINGS
# ########################

disable-attack-cooldown:
  # This is to disable the attack cooldown
  enabled: true
  # What to set the attack speed to. Default for 1.9 is 4, at least 40 is needed for no cooldown.
  generic-attack-speed: 40

attack-frequency:
  # Allows changing the player invulnerability between hits
  enabled: true
  # The hit delay to apply. Default for 1.9+ is 20 ticks (1 second)
  playerDelay: 18
  mobDelay: 16

old-tool-damage:
  # This is to set the tool damage as in pre-1.9
  # IMPORTANT: Also enable disable-sword-sweep module or sweeps will have the damage value of the weapon in hand
  # NOTE: this will modify the damage, however the item tooltip will still show the 1.9+ damage
  enabled: true
  # Use old sharpness calculations, i.e. each level adds 1.25 damage
  # In 1.9+, sharpness adds 1 + 0.5 * level damage
  old-sharpness: true
  # Damage values shown in 1.9 representation (actual damage)
  # In 1.8 the damage tooltip value would be added to 1 'base damage', yielding the values below
  damages:
    # Axe damages
    GOLD_AXE: 4
    WOOD_AXE: 4
    STONE_AXE: 5
    IRON_AXE: 6
    DIAMOND_AXE: 7
    NETHERITE_AXE: 8
    # Shovel damages
    GOLD_SPADE: 2
    WOOD_SPADE: 2
    STONE_SPADE: 3
    IRON_SPADE: 4
    DIAMOND_SPADE: 5
    NETHERITE_SPADE: 6
    # Sword damages
    GOLD_SWORD: 5
    WOOD_SWORD: 5
    STONE_SWORD: 6
    IRON_SWORD: 7
    DIAMOND_SWORD: 8
    NETHERITE_SWORD: 9
    # Pickaxe damages
    GOLD_PICKAXE: 3
    WOOD_PICKAXE: 3
    STONE_PICKAXE: 4
    IRON_PICKAXE: 5
    DIAMOND_PICKAXE: 6
    NETHERITE_PICKAXE: 7
    # Hoe damages
    GOLD_HOE: 1
    WOOD_HOE: 1
    STONE_HOE: 1
    IRON_HOE: 1
    DIAMOND_HOE: 1
    NETHERITE_HOE: 1

old-critical-hits:
  # Makes critical hits work like in 1.8
  # With a critical hit, the damage will be multiplied by 1.5
  # In 1.9, the user must also not be sprinting for it to be a crit
  enabled: true
  world: [ ]
  # What the damage, after applying potions effects, is multiplied by
  multiplier: 1.5
  # Whether to allow crits while sprinting. 1.8: true, 1.9: false
  allow-sprinting: true

old-player-regen:
  # This is to make players' regeneration act mostly like it did in pre-1.9
  # Based on https://minecraft.gamepedia.com/Hunger?oldid=948685
  enabled: true
  # How often a player should regenerate health, in milliseconds (In 1.8: 4 seconds)
  # The foodTickerTimer might not be perfectly accurate so we give it ~10ms of leeway
  interval: 3990
  # How many half-hearts the player should heal by, every seconds specified above
  amount: 1
  # How much exhaustion the player should get from healing. In 1.8: 3    In 1.9: 4    In 1.11: 6
  # If, after adding this, Minecraft finds the value is above 4, it subtracts 4
  # and either reduces saturation or, if saturation is 0, reduces food level by 1 (1/2 a stick)
  exhaustion: 3

# ########################
# ARMOUR
# ########################

old-armour-strength:
  # This is to make armour calculations like in 1.8
  # Based on this: https://minecraft.gamepedia.com/index.php?title=Armor&oldid=909187
  enabled: true
  # Whether to introduce randomness in the calculation, as in 1.8
  randomness: true

old-armour-durability:
  # This makes armour take a constant amount of durability damage (except for explosions)
  enabled: true
  # By how much to reduce durability every attack. 1.8 default is 1
  reduction: 1

# ########################
# SWEEP, SHIELDS & BLOCKING
# ########################

shield-damage-reduction:
  # This module allows changing the damage reduction behaviour of shields
  enabled: true
  # How much damage blocking should reduce
  # Firstly, amount is subtracted, then value is multiplied by percentage
  # 1.8: (damage - 1) * 50%    1.9: damage * 33%   1.11: damage * 0%
  # Damage reduction = (damage - damageReductionAmount) * damageReductionPercentage / 100
  generalDamageReductionAmount: 1
  generalDamageReductionPercentage: 50
  # This value works the same but is exclusively for projectile damage
  # Set amount to 0 and percentage to 100 for 1.8 behaviour, i.e. arrows go through shields
  projectileDamageReductionAmount: 1
  projectileDamageReductionPercentage: 50

sword-blocking:
  # This is to allow players to block with swords again, by getting a shield while they hold right click with a sword
  enabled: true
  # How often, in ticks, OCM should check if the player is still blocking with a shield, and remove it if not
  # If this is too fast, the player will have their shield disappear before they're able to block again causing a slight delay
  # If this is too slow, players will have a shield in their hand well after they've stopped blocking
  # 20 ticks = 1 second
  restoreDelay: 40
  # Whether to require players to have oldcombatmechanics.swordblock permission to block with a sword
  use-permission: false

disable-sword-sweep:
  # This is to disable the sword sweep attack
  # With ProtocolLib, particle effect is also removed
  enabled: true

disable-sword-sweep-particles:
  # This is to disable the sword sweep attack particles
  # Requires ProtocolLib
  enabled: false

# ########################
# KNOCKBACK
# ########################

old-player-knockback:
  # This is to change knockback players receive from attacks.  Default values are as in 1.8.
  #
  # Practice servers tend to use lower knockback, for example:
  # knockback-horizontal: 0.35
  # knockback-vertical: 0.35
  # knockback-vertical-limit: 0.4
  # knockback-extra-horizontal: 0.425
  # knockback-extra-vertical: 0.085
  #
  # Minigame servers use higher vertical knockback and lower horizontal knockback, exact values are unknown.
  enabled: true
  # Horizontal knockback is reduced by 40% for every successful attack by the player, with no limit
  # Increase to make clicking more important, decrease to make it less important
  knockback-horizontal: 0.4
  # Vertical knockback is not reduced by clicking faster
  # Increase to make clicking less important, decrease to make clicking more important
  knockback-vertical: 0.4
  # Vertical knockback limit is applied after base vertical knockback
  # This limit can be exceeded by sprint hitting or knockback enchantments, from the extra vertical knockback
  knockback-vertical-limit: 0.4
  # Extra horizontal knockback is applied for each level of knockback enchant, and for sprinting
  # Increase to make sprint resetting (w-tapping) more important, decrease to make it less important
  # Increase to make clicking more important, decrease to make clicking less important
  knockback-extra-horizontal: 0.5
  # Extra vertical knockback is applied for each level of knockback enchant, and for sprinting
  # Increase to make sprint resetting (w-tapping) more important, decrease to make it less important
  # Increase to make clicking less important, decrease to make clicking more important
  knockback-extra-vertical: 0.1
  # Should knockback resistance be enabled? (e.g. netherite armour knockback resistance)
  enable-knockback-resistance: false

old-fishing-knockback:
  # This is to make the knockback of players when they get hit by a fishing bobber the same as it was in pre-1.9
  enabled: true
  # This is the damage done by the fishing rod attack
  damage: 0.0001
  # This is to cancel dragging in the entity attached to the fishing rod when reeling in, like in 1.8
  # Options: all, players, mobs, none. players allows compatibility with WorldGuard pvp-deny regions
  cancelDraggingIn: players
  # Whether to also give knockback on non-player living entities (e.g. mobs)
  knockbackNonPlayerEntities: false
  # This is the delay in milliseconds in-between rod damage, so the player hit has time to fall back down
  hitCooldown: 1000

fishing-rod-velocity:
  # In 1.9+ fishing rods go 8 blocks instead of 12 blocks
  # This is due to both gravity and initial launch speed
  # Set to true to revert back to the old calculations and gravity
  enabled: true

projectile-knockback:
  # This adds knockback and/or damage to players when they get hit by snowballs, eggs & enderpearls
  # This has been a Bukkit bug for so long people thought it was vanilla when it was patched
  enabled: true
  # This is the damage done by each projectile
  damage:
    snowball: 0.0001
    egg: 0.0001
    ender_pearl: 0.0001

# ########################
# GAPPLES & POTIONS
# ########################

old-golden-apples:
  # This is to change the behaviour / crafting of golden apples to how it was in pre-1.9
  # WARNING: If on 1.12 or above and you disable this module you must reload the server for the recipe to disappear
  enabled: true
  # Cooldown between eating the apples, in seconds
  cooldown:
    # The cooldown for normal golden apples
    # PlaceholderAPI: %ocm_gapple_cooldown%
    normal: 0
    # Message when user tries to eat golden apple during cooldown. Leave empty to disable.
    message-normal: "&ePlease wait %seconds%s before eating another golden apple."
    # The cooldown for enchanted golden apples
    # PlaceholderAPI: %ocm_napple_cooldown%
    enchanted: 0
    # Message when user tries to eat enchanted golden apple during cooldown. Leave empty to disable.
    message-enchanted: "&ePlease wait %seconds%s before eating another enchanted golden apple."
    # Whether the two apple types share a cooldown.
    # If this is true:
    #   1. Eating any apple resets both cooldowns
    #   2. Each apple type can only be eaten when its cooldown time is over
    #      This means that when you eat *any* apple you start two parallel cooldowns: One for enchanted and one
    #      for normal apples. Each type can only be eaten when its cooldown is over.
    #      Once any apple is eaten, both cooldowns are restarted, so you can not eat either type again
    #      before its full cooldown is over.
    #   3. To have the plugin treat normal and enchanted golden apples as having the same cooldown,
    #      then set the same cooldown time and enable shared mode. (This was the old mode)
    # If this is false:
    #   Eating an enchanted apple will prevent any *enchanted* apple type from being eaten before the cooldown is over
    #   Eating a normal apple will prevent any *normal* apple type from being eaten before the normal cooldown is over
    is-shared: false
  # If you want to allow enchanted golden apple crafting
  enchanted-golden-apple-crafting: true
  # Enabling this makes the potion effects gained by eating golden apples
  # and enchanted golden apples the same as it was in pre-1.9
  old-potion-effects: true
  # Potion effects for golden apples
  # Duration is in seconds
  # Amplifier is the potion level-1, so Regeneration IV would be amplifier 3
  golden-apple-effects:
    regeneration:
      duration: 5
      amplifier: 1
    absorption:
      duration: 120
      amplifier: 0
  # Potion effects for enchanted golden apples
  enchanted-golden-apple-effects:
    regeneration:
      duration: 30
      amplifier: 4
    resistance:
      duration: 300
      amplifier: 0
    fire_resistance:
      duration: 300
      amplifier: 0
    absorption:
      duration: 120
      amplifier: 0
  # Enable this if you have another plugin which adds a crafting recipe for
  # enchanted golden apples (requires server restart)
  no-conflict-mode: false

old-potion-effects:
  # This is to restore the 1.8 potion effects and duration
  enabled: true

  # DURATION: (in seconds)
  potion-durations:
    drinkable:
      regeneration: 45
      strong_regeneration: 22
      long_regeneration: 120

      swiftness: 180
      strong_swiftness: 90
      long_swiftness: 480

      fire_resistance: 180
      long_fire_resistance: 480

      poison: 45
      strong_poison: 22
      long_poison: 120

      night_vision: 180
      long_night_vision: 480

      weakness: 90
      long_weakness: 240

      strength: 180
      strong_strength: 90
      long_strength: 480

      slowness: 90
      long_slowness: 240

      leaping: 180
      strong_leaping: 90
      long_leaping: 480

      water_breathing: 180
      long_water_breathing: 480

      invisibility: 180
      long_invisibility: 480

      # 1.9+ potions. You can add more as needed.
      # Make sure to also add to splash section below.
      luck: 300

      slow_falling: 90
      long_slow_falling: 240

    splash:
      regeneration: 33
      strong_regeneration: 16
      long_regeneration: 90

      swiftness: 135
      strong_swiftness: 67
      long_swiftness: 360

      fire_resistance: 135
      long_fire_resistance: 360

      poison: 33
      strong_poison: 16
      long_poison: 90

      night_vision: 180
      long_night_vision: 480

      weakness: 90
      long_weakness: 240

      strength: 135
      strong_strength: 67
      long_strength: 360

      slowness: 67
      long_slowness: 180

      leaping: 135
      strong_leaping: 67
      long_leaping: 360

      water_breathing: 135
      long_water_breathing: 360

      invisibility: 135
      long_invisibility: 360

      # 1.9+ potions. You can add more as needed
      luck: 300

      slow_falling: 90
      long_slow_falling: 240

  # EFFECTS
  # If 'multiplier' is true value is multiplied by base tool damage. If 'addend' it is added.
  # If both true, it is first increased by 1 then multiplied (same as +xx%)
  # Strength potion
  # 1.9: I = +3; II = +6;    1.8: I = +130%; II = +260%
  strength:
    modifier: 1.3
    multiplier: true
    addend: true
  # Weakness potion
  # 1.9 value: -4   1.8 value: -0.5
  weakness:
    modifier: -0.5
    multiplier: false

# ########################
# MISCELLANEOUS
# ########################

disable-crafting:
  # Disable the crafting of specified items
  enabled: true
  # List of denied items
  denied:
    - shield
  # Show the user a message if they try to craft a blacklisted item
  showMessage: true
  message: "&cYou cannot craft that item!"

disable-offhand:
  # Disable the usage of the offhand
  # Won't affect sword-blocking module
  enabled: true
  # Whether the following list allows items or blocks them
  whitelist: true
  # List of items that should be allowed/blocked
  # Example: [diamond_sword,BOW]
  items: [ ]
  # Message to send user when denied. Set to '' to disable
  denied-message: "&cOff-hand is disabled"

old-brewing-stand:
  # Automatically refuels brewing stands
  enabled: true

no-lapis-enchantments:
  # Automatically adds lapis to enchantment tables upon opening
  enabled: false
  # Whether to only allow this for players with oldcombatmechanics.nolapis permission
  usePermission: false

disable-elytra:
  # Do not allow players to wear elytra
  enabled: false

disable-enderpearl-cooldown:
  # Disables enderpearl cooldown
  enabled: true
  # The cooldown, in seconds
  # PlaceholderAPI: %ocm_enderpearl_cooldown%
  cooldown: 0
  # Show the user a message if they try to use an enderpearl and the cooldown has not expired yet
  showMessage: true
  message: "&cYou must wait &7%ds&c before using an enderpearl again!"

chorus-fruit:
  # This makes the chorus fruit behaviour configurable
  enabled: false
  # The maximum distance the fruit can teleport the player. This a PER AXIS value, so this outlines a cube with
  # 2 * max-teleportation-distance as the side length
  # Vanilla default is 8.
  # Setting this to 0 disables chorus fruit teleport.
  # Setting this to a value greater than 8 MIGHT CAUSE CONFLICTS with bukkit's internal anti cheat
  # and *potentially* any other anti-cheat you use. Please make sure this is not an issue before increasing
  # this value.
  max-teleportation-distance: 8
  # Whether to prevent eating the fruit completely. This also prevents the teleportation.
  prevent-eating: false
  # The saturation value of the chorus fruit.
  # Vanilla default is 2.4
  saturation-value: 2.4
  # The hunger value of the chorus fruit.
  # Vanilla default is 4 (2 bars)
  hunger-value: 4

old-burn-delay:
  # This makes it so entities will immediately start to burn when entering fire
  enabled: false
  # How long, in ticks, entities should be on fire for after not being in direct contact anymore
  fire-ticks: 120

disable-projectile-randomness:
  # This is to remove projectile randomness while firing arrows with a bow
  # Or to remove effects of velocity when player is running and launching potions etc
  # This is actually a very old feature and has been in the game for quite some time
  enabled: false
  # What projectiles are affected e.g. arrow, splash_potion, snowball, egg, fishing_hook
  projectile-types: [ arrow ]
  # This is the threshold between projectiles' (X,Z) values before they're considered the same and straightened
  # This value is only useful for multishot. The default of 0.1 works at all but extremely shallow angles,
  # where arrows end up bunched together. Set to 1 if you want multishots to all follow the same path.
  epsilon: 0.1

disable-bow-boost:
  # This is to stop players from boosting themselves forward by hitting themselves
  # while running with a punch II arrow from their bow
  # This module simply stops them from hitting themselves with arrows entirely
  enabled: false

disable-attack-sounds:
  # Disables attack sounds that were added with 1.9+
  # Requires ProtocolLib
  enabled: false
  # The sounds that will be blocked by this module
  blocked-sound-names:
    - "ENTITY_PLAYER_ATTACK_STRONG"
    - "ENTITY_PLAYER_ATTACK_SWEEP"
    - "ENTITY_PLAYER_ATTACK_NODAMAGE"
    - "ENTITY_PLAYER_ATTACK_KNOCKBACK"
    - "ENTITY_PLAYER_ATTACK_CRIT"
    - "ENTITY_PLAYER_ATTACK_WEAK"

# ########################
# SPECIAL SETTINGS BELOW #
# ########################

message-prefix: "&6[OCM]&r"

# This is to toggle the update checker
update-checker:
  # Whether to check for updates and notify players with the oldcombatmechanics.notify permission
  enabled: true
  # Whether to automatically download an update of the plugin
  # The update is applied on the next restart/reload of the server
  # Auto update is disabled if Spigot version is below 1.18.1 and force-below-1-18-1-config-upgrade is false
  # This is to prevent accidentally resetting the config
  auto-update: true

# Whether to force config upgrade even in Spigot versions below 1.18.1
# This is not advised, as all the comments would be removed
force-below-1-18-1-config-upgrade: false

# This enables command argument completion when pressing tab
command-completer:
  enabled: true

# This enables debug messages, only enable when troubleshooting
debug:
  enabled: true

# DO NOT CHANGE THIS NUMBER AS IT WILL RESET YOUR CONFIG
config-version: 65

Problem Description

Weakness working weird, it makes that the player does little to no damage with a netherite sword with no enchantments or Sharpness V, even if the player is using Strength II

To Reproduce

Steps to reproduce the behavior:

  1. Apply Weakness to yourself
  2. Try to do some damage
  3. Result no doing damage or doing very low damage with enchantments and/or strength

Expected Behaviour

Only reducing some damage pre armor reduction calculation.

Actual Behaviour

Reduces damage pre calculation, I think it's the base damage fault here.

If you need any screenshot or video tell me, but I think it's very easy to reproduce, I'm using the default config.
I tried to change the base weakness values, but I got weirder results.

@DanSeb2000 DanSeb2000 added the investigate We have yet to investigate this issue label Jun 28, 2024
@kernitus
Copy link
Owner

Hmm not sure if it's directly related to the weakness effect but there definitely seems something strange going on in those logs that needs to be investigated. This is possibly related to #707.

P.S. Regarding the java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2 that has been fixed a while ago in the test builds.

@DanSeb2000
Copy link
Author

DanSeb2000 commented Jun 28, 2024

It could be that it's trying to take the damage from the sword and, because of how the minecraft weakness potion works, it's retrieving the current player damage? That being 0 or below.
I tried different swords and this is my result (Video below)

https://www.youtube.com/watch?v=My5da2RkfOI

Wooden/golden sword and hand - Damage canceled, not even trying to do damage.
Stone to Netherite swords - -8 damage each.
As always, everything with the default config and not other plugins changing the damage.

@kernitus
Copy link
Owner

It could be that it's trying to take the damage from the sword and, because of how the minecraft weakness potion works, it's retrieving the current player damage? That being 0 or below. I tried different swords and this is my result (Video below)

https://www.youtube.com/watch?v=My5da2RkfOI

Wooden/golden sword and hand - Damage canceled, not even trying to do damage. Stone to Netherite swords - -8 damage each. As always, everything with the default config and not other plugins changing the damage.

OCM deliberately sets weakness at level 0 so that originally weaker weapons that have been set to a higher damage in the config can still get through - and then calculates what the damage with weakness should be. Maybe this mechanism is not working quite as intended under certain circumstances.

@Galapen
Copy link

Galapen commented Aug 20, 2024

I only tested on Paper 1.20.4 to suit my needs, but the main issue I found is that OCM setting the weakness amplification to -1 results in weakness 256 being applied, I suppose because modern Minecraft doesn't allow negative amplifiers. All of my OCM changes can be seen in this commit. Some of those changes were to allow for other levels of weakness to be applied, as OCM clamps the amplifier to vanilla restrictions, which may not be relevant to everyone.

These changes are paired with the following event handler in a different Paper plugin:

@EventHandler
public void onPrePlayerAttackEntity(PrePlayerAttackEntityEvent e) {
    if(!e.getPlayer().hasPotionEffect(PotionEffectType.WEAKNESS)
            || !(e.getAttacked() instanceof Player victim)
    ) {
        return;
    }
    victim.damage(1D, e.getPlayer());
}

This fixes the issue that attacks with zero damage do not fire entity damage events.

@kernitus
Copy link
Owner

kernitus commented Oct 5, 2024

I only tested on Paper 1.20.4 to suit my needs, but the main issue I found is that OCM setting the weakness amplification to -1 results in weakness 256 being applied, I suppose because modern Minecraft doesn't allow negative amplifiers. All of my OCM changes can be seen in this commit. Some of those changes were to allow for other levels of weakness to be applied, as OCM clamps the amplifier to vanilla restrictions, which may not be relevant to everyone.

These changes are paired with the following event handler in a different Paper plugin:

@EventHandler
public void onPrePlayerAttackEntity(PrePlayerAttackEntityEvent e) {
    if(!e.getPlayer().hasPotionEffect(PotionEffectType.WEAKNESS)
            || !(e.getAttacked() instanceof Player victim)
    ) {
        return;
    }
    victim.damage(1D, e.getPlayer());
}

This fixes the issue that attacks with zero damage do not fire entity damage events.

We apply an amplifier of -1 which translated to a potion level of 0 in the game, giving no weakness. This was tested and working up to at least Spigot 1.19.

It's possible we might need a different approach entirely, but what you suggest in your code breaks the whole idea of setting the value to -1.

If the weakness effect is actually applied by the game, we might miss some attacks that did not get through the damage immunity because the 1.9 base damage for a weapon is lower than what is configured by the plugin (to follow 1.8), and compounded with the weakness effect this means the DamageEvent is straight up never called in those circumstances.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
investigate We have yet to investigate this issue
Projects
None yet
Development

No branches or pull requests

3 participants