CleverNucleus / playerex

Adds RPG attributes to Minecraft using the Fabric ecosystem.
MIT License
53 stars 39 forks source link

[Fabric 1.19.2/0.14.22] Issue with weapons that deal max_value damage softlocking one out of a world #141

Open pokesmells opened 1 year ago

pokesmells commented 1 year ago

Hi there, when using the Quantum Sword in unison with PlayerEx and Origins the sword "permadeaths" you, putting you in a state where you cannot hit anything, and you cannot die or access any GUI's.

To clarify, when using an origin with more damage dealt (Such as the giant origin used in the example) and hitting any entity with the Quantum Sword, you immediately have your health put to absolute zero, as if you were killed by the void, and the only way to fix this is to edit the playerdata on the world.

This also happens when levelling up your damage stat past a certain threshold, it's as if the damage is put back onto yourself and cannot be taken away until you edit your health via the method mentioned prior.

The latest.log shows abs

https://github.com/CleverNucleus/playerex/assets/33227568/164d75e3-de5c-4a49-a0d7-060f93f572d8

olutely nothing, but I shall still provide it, and a video demonstration.

The Quantum sword deals "infinite" damage, but this issue is also present with anything that provides the same function.

Such as the "Mortal Coil" from bewitchment.

latest.log

CleverNucleus commented 1 year ago

Hi there, I appreciate the detailed report, safe to say this is a bug! Thanks.

pokesmells commented 1 year ago

No problem, what do you reckon causes the issue? I know that the Quantum sword applies max damage possible using target.hurt(DamageSource.mobAttack(attacker).bypassArmor().bypassInvul(), Float.MAX_VALUE);

And also when using the armordamagescale mod from someaddon it causes this error: java.lang.NumberFormatException: Character N is neither a decimal digit number, decimal point, nor "e" notation exponential mark. at java.base/java.math.BigDecimal.<init>(BigDecimal.java:586) at java.base/java.math.BigDecimal.<init>(BigDecimal.java:471) at java.base/java.math.BigDecimal.<init>(BigDecimal.java:900) at java.base/java.math.BigDecimal.valueOf(BigDecimal.java:1368) at com.ezylang.evalex.data.EvaluationValue.convertToBigDecimal(EvaluationValue.java:163) at com.ezylang.evalex.data.EvaluationValue.<init>(EvaluationValue.java:93) at com.ezylang.evalex.Expression.with(Expression.java:264) at net.minecraft.class_1309.localvar$bgg000$armordamagescale$brutalbosses$onhurt(class_1309.java:13677) at net.minecraft.class_1309.method_6074(class_1309.java) at net.minecraft.class_1309.method_5643(class_1309.java:1126) at dev.hybridlabs.aquatic.entity.jellyfish.SeaNettleEntity.method_5643(SeaNettleEntity.kt:58) at aztech.modern_industrialization.items.tools.QuantumSword.onHurtEnemy(QuantumSword.java:72) at aztech.modern_industrialization.items.tools.QuantumSword.lambda$init$1(QuantumSword.java:60) at net.fabricmc.fabric.api.event.player.AttackEntityCallback.lambda$static$0(AttackEntityCallback.java:44) at net.minecraft.class_3222.handler$gdp000$fabric-events-interaction-v0$onPlayerInteractEntity(class_3222.java:20278) at net.minecraft.class_3222.method_7324(class_3222.java)

Essentially removing PlayerEx also fixes this issue.