Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExprPlayerViewDistance - re-enable this expression #5333

Merged
merged 13 commits into from
Feb 7, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
ExprPlayerViewDistance - re-enable this expression
  • Loading branch information
ShaneBeee committed Jan 8, 2023
commit 6b56242b37d05cb24cded44647d0e8e325d99d57
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import ch.njol.util.coll.CollectionUtils;
import org.apache.commons.lang.NotImplementedException;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
Expand All @@ -39,13 +40,13 @@
@Description("The view distance of a player. Can be changed.")
@Examples({"set view distance of player to 10", "set {_view} to view distance of player",
"reset view distance of all players", "add 2 to view distance of player"})
ShaneBeee marked this conversation as resolved.
Show resolved Hide resolved
@RequiredPlugins("Paper 1.9-1.13.2")
@RequiredPlugins("Paper")
@Since("2.4")
public class ExprPlayerViewDistance extends PropertyExpression<Player, Long> {
ShaneBeee marked this conversation as resolved.
Show resolved Hide resolved

static {
// Not supported on 1.14 yet
if (Skript.methodExists(Player.class, "getViewDistance") && !Skript.isRunningMinecraft(1, 14))
if (Skript.methodExists(Player.class, "getViewDistance"))
register(ExprPlayerViewDistance.class, Long.class, "view distance[s]", "players");
}

Expand Down Expand Up @@ -82,23 +83,29 @@ public void change(Event e, @Nullable Object[] delta, ChangeMode mode) {
case DELETE:
ShaneBeee marked this conversation as resolved.
Show resolved Hide resolved
case SET:
for (Player player : getExpr().getArray(e))
player.setViewDistance(distance);
setViewDistance(player, distance);
break;
case ADD:
for (Player player : getExpr().getArray(e))
player.setViewDistance(player.getViewDistance() + distance);
setViewDistance(player, player.getViewDistance() + distance);
break;
case REMOVE:
for (Player player : getExpr().getArray(e))
player.setViewDistance(player.getViewDistance() - distance);
setViewDistance(player,player.getViewDistance() - distance);
break;
case RESET:
for (Player player : getExpr().getArray(e))
player.setViewDistance(Bukkit.getServer().getViewDistance());
setViewDistance(player, Bukkit.getServer().getViewDistance());
default:
assert false;
}
}

private void setViewDistance(Player player, int distance) {
ShaneBeee marked this conversation as resolved.
Show resolved Hide resolved
try {
player.setViewDistance(distance);
} catch (NotImplementedException ignore) {}
}

@Override
public Class<? extends Long> getReturnType() {
Expand Down