From 5b33291c2814ba990f0cd0bef90f50cbea332e88 Mon Sep 17 00:00:00 2001 From: ch-yx Date: Thu, 9 Nov 2023 06:15:05 +0800 Subject: [PATCH] inf --- docs/scarpet/api/Entities.md | 2 +- src/main/java/carpet/script/value/EntityValue.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/scarpet/api/Entities.md b/docs/scarpet/api/Entities.md index 1294ccd8..ae128a3c 100644 --- a/docs/scarpet/api/Entities.md +++ b/docs/scarpet/api/Entities.md @@ -761,7 +761,7 @@ players, since they are controlled client side. ### `modify(e, 'effect', name?, duration?, amplifier?, show_particles?, show_icon?, ambient?)` Applies status effect to the living entity. Takes several optional parameters, which default to `0`, `true`, -`true` and `false`. If no duration is specified, or if it's null or 0, the effect is removed. If duration is -1, it will represent infinity. If name is not specified, +`true` and `false`. If no duration is specified, or if it's null or 0, the effect is removed. If duration is less than 0, or it is infinity, it will represent infinity. If name is not specified, it clears all effects. ### `modify(e, 'health', float)` diff --git a/src/main/java/carpet/script/value/EntityValue.java b/src/main/java/carpet/script/value/EntityValue.java index 4c514a1f..b7653f90 100644 --- a/src/main/java/carpet/script/value/EntityValue.java +++ b/src/main/java/carpet/script/value/EntityValue.java @@ -1483,11 +1483,14 @@ public class EntityValue extends Value return; } int duration = (int) NumericValue.asNumber(list.get(1)).getLong(); - if (duration <= 0 && duration != -1) + if (duration == 0) { le.removeEffect(effect); return; } + if (duration < 0 || Float.isInfinite(NumericValue.asNumber(list.get(1)).getFloat())){ + duration = -1; + } int amplifier = 0; if (list.size() > 2) {