Details
-
Type:
Bug
-
Status: Open
-
Resolution: Unresolved
-
Affects Version/s: Minecraft 1.12, Minecraft 1.12.1 Pre-Release 1, Minecraft 1.12.1, Minecraft 17w50a, Minecraft 1.13.2, Minecraft 19w04b, 1.16.4, 20w46a, 21w06a
-
Fix Version/s: None
-
Labels:
-
Confirmation Status:Confirmed
-
Category:(Unassigned)
Description
The bug
Effect amplifiers are read as byte (-128 to 127) instead of as an integer (-2,147,483,648 to 2,147,483,647) from NBT.
How to reproduce
- Give yourself jump boost with an amplifier higher than 127 using /effect
/effect give @s jump_boost 100 128
- Try to jump
→ You cannot jump (see alsoMC-90198) - Reopen the world
→ You now have jump boost with an amplifier of -128 when read (though will be considered 0 when an amplifier obtained via NBT is less than 0)
Code analysis
Based on 1.12 decompiled using MCP 9.40 PRE 1
The methods net.minecraft.potion.PotionEffect.readCustomPotionEffectFromNBT(NBTTagCompound) and net.minecraft.potion.PotionEffect.writeCustomPotionEffectToNBT(NBTTagCompound) reads/writes the amplifier as a byte, while it is stored in-memory as an integer.
Attachments
Issue Links
- is duplicated by
-
MC-108980 jump boost 128 changes it's behavior after relogging
- Resolved
-
MC-112246 Potion levels higher than 127 do not work after relogging
- Resolved
-
MC-165572 Relogging while having an active potion effect will not trigger its effect
- Resolved
-
MC-206105 The jump boost effect does not work when its applied with commands and the particles are hidden
- Resolved
-
MC-208521 Resistance & Regeneration Status Effect
- Resolved
- relates to
-
MC-10755 Effects with amplifiers over 4 (level V)/enchantments with level over max default value are not supported
- Resolved