From 04011649f4cbbbad4c2dac4548c6429c09ddf31a Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Mon, 27 Apr 2026 22:51:09 -0400 Subject: [PATCH 01/16] Adds ExprPlayerListOrder --- .../bukkit/entity/player/PlayerModule.java | 4 + .../expressions/ExprPlayerListOrder.java | 80 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListOrder.java diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java index 938a676b539..584d2f686cb 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java @@ -3,11 +3,13 @@ import ch.njol.skript.Skript; import ch.njol.skript.lang.util.SimpleEvent; import io.papermc.paper.event.player.AsyncChatEvent; +import org.bukkit.event.entity.EntityToggleGlideEvent; import org.skriptlang.skript.addon.AddonModule; import org.skriptlang.skript.addon.HierarchicalAddonModule; import org.skriptlang.skript.addon.SkriptAddon; import org.skriptlang.skript.bukkit.entity.player.elements.events.*; import org.skriptlang.skript.bukkit.entity.player.elements.expressions.*; +import org.skriptlang.skript.bukkit.lang.eventvalue.EventValueRegistry; import org.skriptlang.skript.bukkit.registration.BukkitSyntaxInfos; import org.skriptlang.skript.registration.SyntaxRegistry; @@ -28,6 +30,7 @@ protected void loadSelf(SkriptAddon addon) { ExprOnScreenKickMessage::register, ExprPlayerListHeaderFooter::register, ExprPlayerListName::register, + ExprPlayerListOrder::register, ExprQuitMessage::register ); if (Skript.classExists("io.papermc.paper.event.player.PlayerPickBlockEvent")) { @@ -38,6 +41,7 @@ protected void loadSelf(SkriptAddon addon) { } SyntaxRegistry syntaxRegistry = moduleRegistry(addon); + syntaxRegistry.register(BukkitSyntaxInfos.Event.KEY, BukkitSyntaxInfos.Event.builder(SimpleEvent.class, "Chat") .addDescription("Called whenever a player chats.", "Use chat format to change message format.", diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListOrder.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListOrder.java new file mode 100644 index 00000000000..d92da2b07f9 --- /dev/null +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListOrder.java @@ -0,0 +1,80 @@ +package org.skriptlang.skript.bukkit.entity.player.elements.expressions; + +import ch.njol.skript.classes.Changer.ChangeMode; +import ch.njol.skript.doc.Description; +import ch.njol.skript.doc.Example; +import ch.njol.skript.doc.Keywords; +import ch.njol.skript.doc.Name; +import ch.njol.skript.doc.Since; +import ch.njol.skript.expressions.base.SimplePropertyExpression; +import ch.njol.util.coll.CollectionUtils; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.jetbrains.annotations.Nullable; +import org.skriptlang.skript.registration.SyntaxRegistry; + +@Name("Player List Order") +@Description("The order of the player in the player list in the tab menu.") +@Example(""" + on join: + player has permission "group.mod" + set the player's tab list order to 5 + """) +@Since("INSERT VERSION") +@Keywords({"tablist", "tab list"}) +public class ExprPlayerListOrder extends SimplePropertyExpression { + + public static void register(SyntaxRegistry syntaxRegistry) { + syntaxRegistry.register(SyntaxRegistry.EXPRESSION, infoBuilder(ExprPlayerListOrder.class, Integer.class, + "(player|tab)[ ]list order", "players", false) + .supplier(ExprPlayerListOrder::new) + .build()); + } + + @Override + public Integer convert(Player player) { + return player.getPlayerListOrder(); + } + + @Override + public Class @Nullable [] acceptChange(ChangeMode mode) { + return switch (mode) { + case SET, ADD, RESET -> CollectionUtils.array(Integer.class); + default -> null; + }; + } + + @Override + public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { + Integer amount = mode == ChangeMode.RESET ? null : (Integer) delta[0]; + switch (mode) { + case ADD -> { + assert delta != null; + for (Player player : getExpr().getArray(event)) { + player.setPlayerListOrder(Math.max(0, player.getPlayerListOrder() + amount)); + } + } + case SET -> { + assert delta != null; + for (Player player : getExpr().getArray(event)) { + player.setPlayerListOrder(Math.max(0, amount)); + } + } + case RESET -> { + for (Player player : getExpr().getArray(event)) { + player.setPlayerListOrder(0); + } + } + } + } + + @Override + public Class getReturnType() { + return Integer.class; + } + + @Override + protected String getPropertyName() { + return "tablist order"; + } +} \ No newline at end of file From ac008c87ec6e5adb98e3a19c0774e3fe28ed45af Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Mon, 27 Apr 2026 22:55:36 -0400 Subject: [PATCH 02/16] Stuff --- .../skriptlang/skript/bukkit/entity/player/PlayerModule.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java index 584d2f686cb..c268a466632 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java @@ -3,13 +3,11 @@ import ch.njol.skript.Skript; import ch.njol.skript.lang.util.SimpleEvent; import io.papermc.paper.event.player.AsyncChatEvent; -import org.bukkit.event.entity.EntityToggleGlideEvent; import org.skriptlang.skript.addon.AddonModule; import org.skriptlang.skript.addon.HierarchicalAddonModule; import org.skriptlang.skript.addon.SkriptAddon; import org.skriptlang.skript.bukkit.entity.player.elements.events.*; import org.skriptlang.skript.bukkit.entity.player.elements.expressions.*; -import org.skriptlang.skript.bukkit.lang.eventvalue.EventValueRegistry; import org.skriptlang.skript.bukkit.registration.BukkitSyntaxInfos; import org.skriptlang.skript.registration.SyntaxRegistry; @@ -41,7 +39,6 @@ protected void loadSelf(SkriptAddon addon) { } SyntaxRegistry syntaxRegistry = moduleRegistry(addon); - syntaxRegistry.register(BukkitSyntaxInfos.Event.KEY, BukkitSyntaxInfos.Event.builder(SimpleEvent.class, "Chat") .addDescription("Called whenever a player chats.", "Use chat format to change message format.", From 715c9c53eb6145c38cefbbc2f408519f2993db7f Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Mon, 27 Apr 2026 23:39:43 -0400 Subject: [PATCH 03/16] Changes `order` to `priority` --- .../bukkit/entity/player/PlayerModule.java | 2 +- ...tOrder.java => ExprPlayerListPriority.java} | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) rename src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/{ExprPlayerListOrder.java => ExprPlayerListPriority.java} (82%) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java index c268a466632..2689831054b 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/PlayerModule.java @@ -28,7 +28,7 @@ protected void loadSelf(SkriptAddon addon) { ExprOnScreenKickMessage::register, ExprPlayerListHeaderFooter::register, ExprPlayerListName::register, - ExprPlayerListOrder::register, + ExprPlayerListPriority::register, ExprQuitMessage::register ); if (Skript.classExists("io.papermc.paper.event.player.PlayerPickBlockEvent")) { diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListOrder.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java similarity index 82% rename from src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListOrder.java rename to src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index d92da2b07f9..eadffb1c025 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListOrder.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -13,21 +13,21 @@ import org.jetbrains.annotations.Nullable; import org.skriptlang.skript.registration.SyntaxRegistry; -@Name("Player List Order") -@Description("The order of the player in the player list in the tab menu.") +@Name("Player List Priority") +@Description("The priority of the player in the player list in the tab menu.") @Example(""" on join: player has permission "group.mod" - set the player's tab list order to 5 + set the player's tab list priority to 5 """) @Since("INSERT VERSION") @Keywords({"tablist", "tab list"}) -public class ExprPlayerListOrder extends SimplePropertyExpression { +public class ExprPlayerListPriority extends SimplePropertyExpression { public static void register(SyntaxRegistry syntaxRegistry) { - syntaxRegistry.register(SyntaxRegistry.EXPRESSION, infoBuilder(ExprPlayerListOrder.class, Integer.class, - "(player|tab)[ ]list order", "players", false) - .supplier(ExprPlayerListOrder::new) + syntaxRegistry.register(SyntaxRegistry.EXPRESSION, infoBuilder(ExprPlayerListPriority.class, Integer.class, + "(player|tab)[ ]list priority", "players", false) + .supplier(ExprPlayerListPriority::new) .build()); } @@ -75,6 +75,6 @@ public Class getReturnType() { @Override protected String getPropertyName() { - return "tablist order"; + return "tablist priority"; } -} \ No newline at end of file +} From 69fb531dc6fac173b928202a02539cc62e2fba61 Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Tue, 28 Apr 2026 00:09:55 -0400 Subject: [PATCH 04/16] Added more detail to the description --- .../player/elements/expressions/ExprPlayerListPriority.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index eadffb1c025..88b2b593631 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -14,7 +14,11 @@ import org.skriptlang.skript.registration.SyntaxRegistry; @Name("Player List Priority") -@Description("The priority of the player in the player list in the tab menu.") +@Description(""" + The priority of the player in the player list in the tab menu. + Used to sort players on the tab list. Lowest priority is at the bottom of tab and highest priority is at the top. + If 2 players have same priority then they will be sorted A-Z (but still be above those with lower priority) + """) @Example(""" on join: player has permission "group.mod" From 3c1da9ea000e65164fd19049016f96e5d3f5cec4 Mon Sep 17 00:00:00 2001 From: OwlBe <258166039+AnOwlBe@users.noreply.github.com> Date: Tue, 28 Apr 2026 00:17:18 -0400 Subject: [PATCH 05/16] Update src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com> --- .../player/elements/expressions/ExprPlayerListPriority.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 88b2b593631..6730859a7b0 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -81,4 +81,5 @@ public Class getReturnType() { protected String getPropertyName() { return "tablist priority"; } + } From 23584db3ec564e597b502f741d37856897a6333f Mon Sep 17 00:00:00 2001 From: OwlBe <258166039+AnOwlBe@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:22:15 -0400 Subject: [PATCH 06/16] Update src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java Co-authored-by: Efnilite <35348263+Efnilite@users.noreply.github.com> --- .../player/elements/expressions/ExprPlayerListPriority.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 6730859a7b0..c76057d3906 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -17,7 +17,7 @@ @Description(""" The priority of the player in the player list in the tab menu. Used to sort players on the tab list. Lowest priority is at the bottom of tab and highest priority is at the top. - If 2 players have same priority then they will be sorted A-Z (but still be above those with lower priority) + If 2 players have same priority then they will be sorted A-Z (but still be above those with lower priority). """) @Example(""" on join: From e7b247d6612a1ed9d2e39cf3dd03de357e9848e1 Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Tue, 28 Apr 2026 23:45:29 -0400 Subject: [PATCH 07/16] Adds `remove` & small change for `set` --- .../expressions/ExprPlayerListPriority.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 88b2b593631..8a9e59e0302 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -43,7 +43,7 @@ public Integer convert(Player player) { @Override public Class @Nullable [] acceptChange(ChangeMode mode) { return switch (mode) { - case SET, ADD, RESET -> CollectionUtils.array(Integer.class); + case SET, ADD, RESET, REMOVE -> CollectionUtils.array(Integer.class); default -> null; }; } @@ -53,15 +53,16 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { Integer amount = mode == ChangeMode.RESET ? null : (Integer) delta[0]; switch (mode) { case ADD -> { - assert delta != null; + assert amount != null; for (Player player : getExpr().getArray(event)) { player.setPlayerListOrder(Math.max(0, player.getPlayerListOrder() + amount)); } } case SET -> { - assert delta != null; + assert amount != null; + amount = Math.max(0, amount); for (Player player : getExpr().getArray(event)) { - player.setPlayerListOrder(Math.max(0, amount)); + player.setPlayerListOrder(amount); } } case RESET -> { @@ -69,6 +70,11 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { player.setPlayerListOrder(0); } } + case REMOVE -> {; + for (Player player : getExpr().getArray(event)) { + player.setPlayerListOrder(Math.max(0,player.getPlayerListOrder() - amount)); + } + } } } From 937b42b7cbcecc89b2a7c0b8536d54c875df31b9 Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Tue, 28 Apr 2026 23:45:47 -0400 Subject: [PATCH 08/16] Adds `remove` & small change for `set` --- .../player/elements/expressions/ExprPlayerListPriority.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 8a9e59e0302..add00d8c361 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -70,7 +70,7 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { player.setPlayerListOrder(0); } } - case REMOVE -> {; + case REMOVE -> { for (Player player : getExpr().getArray(event)) { player.setPlayerListOrder(Math.max(0,player.getPlayerListOrder() - amount)); } From 527b60c011f11432af4e002e64a7e0e7c8f354a8 Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Tue, 28 Apr 2026 23:47:12 -0400 Subject: [PATCH 09/16] Adds `remove` & small change for `set` --- .../player/elements/expressions/ExprPlayerListPriority.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index add00d8c361..ed022677045 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -51,6 +51,7 @@ public Integer convert(Player player) { @Override public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { Integer amount = mode == ChangeMode.RESET ? null : (Integer) delta[0]; + switch (mode) { case ADD -> { assert amount != null; From dbfbdadd552f682223f1dd32ecea751be2a8de5e Mon Sep 17 00:00:00 2001 From: OwlBe <258166039+AnOwlBe@users.noreply.github.com> Date: Tue, 28 Apr 2026 23:55:59 -0400 Subject: [PATCH 10/16] Update src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java Co-authored-by: Shane Bee --- .../player/elements/expressions/ExprPlayerListPriority.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 07df953511d..d30814a2936 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -73,7 +73,7 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { } case REMOVE -> { for (Player player : getExpr().getArray(event)) { - player.setPlayerListOrder(Math.max(0,player.getPlayerListOrder() - amount)); + player.setPlayerListOrder(Math.max(0, player.getPlayerListOrder() - amount)); } } } From 716bb283a10db0c1eecabf3b05571c3f6e5e0d4f Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Tue, 28 Apr 2026 23:58:26 -0400 Subject: [PATCH 11/16] Small changes --- .../elements/expressions/ExprPlayerListPriority.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 07df953511d..2674e624326 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -43,7 +43,7 @@ public Integer convert(Player player) { @Override public Class @Nullable [] acceptChange(ChangeMode mode) { return switch (mode) { - case SET, ADD, RESET, REMOVE -> CollectionUtils.array(Integer.class); + case ADD, REMOVE, SET, RESET -> CollectionUtils.array(Integer.class); default -> null; }; } @@ -59,6 +59,11 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { player.setPlayerListOrder(Math.max(0, player.getPlayerListOrder() + amount)); } } + case REMOVE -> { + for (Player player : getExpr().getArray(event)) { + player.setPlayerListOrder(Math.max(0,player.getPlayerListOrder() - amount)); + } + } case SET -> { assert amount != null; amount = Math.max(0, amount); @@ -71,11 +76,6 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { player.setPlayerListOrder(0); } } - case REMOVE -> { - for (Player player : getExpr().getArray(event)) { - player.setPlayerListOrder(Math.max(0,player.getPlayerListOrder() - amount)); - } - } } } From 1ce3b5b8b0c84c01bcae2cf95f7f54106d08703c Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Wed, 29 Apr 2026 00:01:28 -0400 Subject: [PATCH 12/16] Small changes --- .../player/elements/expressions/ExprPlayerListPriority.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 2674e624326..9ad00204233 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -26,6 +26,7 @@ """) @Since("INSERT VERSION") @Keywords({"tablist", "tab list"}) +// remove this comment had to put it for intellij to let me push... public class ExprPlayerListPriority extends SimplePropertyExpression { public static void register(SyntaxRegistry syntaxRegistry) { From 67fddccb43f7a45752653c49eec9143846262b5b Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Tue, 5 May 2026 14:25:23 -0400 Subject: [PATCH 13/16] Adds clamping for ADD to prevent integer overflow --- .../player/elements/expressions/ExprPlayerListPriority.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 9ad00204233..7008e632f91 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -7,6 +7,7 @@ import ch.njol.skript.doc.Name; import ch.njol.skript.doc.Since; import ch.njol.skript.expressions.base.SimplePropertyExpression; +import ch.njol.util.Math2; import ch.njol.util.coll.CollectionUtils; import org.bukkit.entity.Player; import org.bukkit.event.Event; @@ -26,7 +27,6 @@ """) @Since("INSERT VERSION") @Keywords({"tablist", "tab list"}) -// remove this comment had to put it for intellij to let me push... public class ExprPlayerListPriority extends SimplePropertyExpression { public static void register(SyntaxRegistry syntaxRegistry) { @@ -57,10 +57,11 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { case ADD -> { assert amount != null; for (Player player : getExpr().getArray(event)) { - player.setPlayerListOrder(Math.max(0, player.getPlayerListOrder() + amount)); + player.setPlayerListOrder((int) Math.max(0, Math2.addClamped(player.getPlayerListOrder(), amount))); } } case REMOVE -> { + assert amount != null; for (Player player : getExpr().getArray(event)) { player.setPlayerListOrder(Math.max(0,player.getPlayerListOrder() - amount)); } From b90d06db734b51f7bc2194967dfb5885a59c61b8 Mon Sep 17 00:00:00 2001 From: OwlBe <258166039+AnOwlBe@users.noreply.github.com> Date: Tue, 5 May 2026 14:27:11 -0400 Subject: [PATCH 14/16] Update src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java Co-authored-by: Patrick Miller --- .../player/elements/expressions/ExprPlayerListPriority.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 7008e632f91..ed0a251b77c 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -88,7 +88,7 @@ public Class getReturnType() { @Override protected String getPropertyName() { - return "tablist priority"; + return "player list priority"; } } From 11ccbaa4e9a948368db28f4891da1ef9354aeb21 Mon Sep 17 00:00:00 2001 From: AnOwlBe Date: Thu, 7 May 2026 00:19:11 -0400 Subject: [PATCH 15/16] Stuff --- .../elements/expressions/ExprPlayerListPriority.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 7008e632f91..3d17ae07bb6 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -51,23 +51,20 @@ public Integer convert(Player player) { @Override public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { - Integer amount = mode == ChangeMode.RESET ? null : (Integer) delta[0]; - + if (delta == null && mode != ChangeMode.RESET) return; + Integer amount = mode == ChangeMode.RESET ? 0 : (Integer) delta[0]; switch (mode) { case ADD -> { - assert amount != null; for (Player player : getExpr().getArray(event)) { player.setPlayerListOrder((int) Math.max(0, Math2.addClamped(player.getPlayerListOrder(), amount))); } } case REMOVE -> { - assert amount != null; for (Player player : getExpr().getArray(event)) { player.setPlayerListOrder(Math.max(0,player.getPlayerListOrder() - amount)); } } case SET -> { - assert amount != null; amount = Math.max(0, amount); for (Player player : getExpr().getArray(event)) { player.setPlayerListOrder(amount); From 4c8cb89527d8641a2196767313fcf16e314defd3 Mon Sep 17 00:00:00 2001 From: OwlBe <258166039+AnOwlBe@users.noreply.github.com> Date: Wed, 13 May 2026 03:04:55 -0400 Subject: [PATCH 16/16] Update src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java Co-authored-by: sovdee <10354869+sovdeeth@users.noreply.github.com> --- .../player/elements/expressions/ExprPlayerListPriority.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java index 6b292153cd1..98401383434 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java +++ b/src/main/java/org/skriptlang/skript/bukkit/entity/player/elements/expressions/ExprPlayerListPriority.java @@ -61,7 +61,7 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { } case REMOVE -> { for (Player player : getExpr().getArray(event)) { - player.setPlayerListOrder(Math.max(0,player.getPlayerListOrder() - amount)); + player.setPlayerListOrder(Math.max(0, Math2.addClamped(player.getPlayerListOrder(), -amount))); } } case SET -> {