Skip to content

Commit

Permalink
Use -1 as default potion effect duration.
Browse files Browse the repository at this point in the history
NOTE: It might be worth exploring the idea of allowing -1 as a valid
duration value instead. Another option is to actually clean up the whole
potion effect parser portion of the code base and inject a default value
resolved at load-time by checking the Minecraft version.

Minecraft 1.19.4 introduces "true infinite" potion effect durations, and
these are represented in the Bukkit API by the sentinel value -1 [1][2],
which means all we need to do is change the default duration value.

This change makes 1.94.4 _mandatory_, as potion effects with a negative
duration result in an error from the Bukkit API in earlier versions, so
this little change effectively removes backwards compatibility from the
plugin even though the rest of it works fine.

Closes #784

---

[1] https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/browse/src/main/java/org/bukkit/potion/PotionEffect.java#27
[2] https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/browse/src/main/java/org/bukkit/potion/PotionEffect.java#209-211
  • Loading branch information
garbagemule committed Dec 27, 2023
1 parent 7942c33 commit a64fc3c
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class PotionEffectParser
{
private static final int TICKS_PER_SECOND = 20;
private static final int DEFAULT_POTION_AMPLIFIER = 0;
private static final int DEFAULT_POTION_DURATION = Integer.MAX_VALUE;
private static final int DEFAULT_POTION_DURATION = -1;

public static List<PotionEffect> parsePotionEffects(String s) {
if (s == null || s.isEmpty())
Expand Down

0 comments on commit a64fc3c

Please sign in to comment.