diff --git a/src/main/java/ch/njol/skript/expressions/ExprHoverList.java b/src/main/java/ch/njol/skript/expressions/ExprHoverList.java index a3b58b6b9d3..835319f3449 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHoverList.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHoverList.java @@ -104,7 +104,7 @@ public void change(Event event, @Nullable Object[] delta, ChangeMode mode) { if (HAS_NEW_LISTED_PLAYER_INFO) { List values = new ArrayList<>(); - if (mode != ChangeMode.DELETE && mode != ChangeMode.RESET) { + if (mode != ChangeMode.DELETE && mode != ChangeMode.RESET && mode != ChangeMode.REMOVE) { for (Object object : delta) { if (object instanceof Player) { Player player = (Player) object; @@ -124,7 +124,9 @@ public void change(Event event, @Nullable Object[] delta, ChangeMode mode) { sample.addAll(values); break; case REMOVE: - sample.removeAll(values); + for (Object value : delta) { + sample.removeIf(profile -> profile.name().equals(value)); + } break; case DELETE: case RESET: @@ -135,7 +137,7 @@ public void change(Event event, @Nullable Object[] delta, ChangeMode mode) { } List values = new ArrayList<>(); - if (mode != ChangeMode.DELETE && mode != ChangeMode.RESET) { + if (mode != ChangeMode.DELETE && mode != ChangeMode.RESET && mode != ChangeMode.REMOVE) { for (Object object : delta) { if (object instanceof Player) { Player player = (Player) object; @@ -150,13 +152,14 @@ public void change(Event event, @Nullable Object[] delta, ChangeMode mode) { switch (mode) { case SET: sample.clear(); - sample.addAll(values); - break; + // $FALL-THROUGH$ case ADD: sample.addAll(values); break; case REMOVE: - sample.removeAll(values); + for (Object value : delta) { + sample.removeIf(profile -> profile.getName() != null && profile.getName().equals(value)); + } break; case DELETE: case RESET: