From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=84=97=E3=84=A0=CB=8B=20=E3=84=91=E3=84=A7=CB=8A?= Date: Sat, 18 Apr 2020 19:53:16 +0800 Subject: [PATCH] Tuinity View distance api Allow setting a view distance where entities and chunks do not tick. This could allow some servers to look like they have a higher view distance than they actually have. Also add World#setViewDistance diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java index db18f70ec37253232fb2cfd08ccd07d13c7c457d..be92b1a3e062cb7c54d5a1ea83ea22437b8562d4 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -3166,6 +3166,34 @@ public interface World extends PluginMessageRecipient, Metadatable { int getViewDistance(); // Spigot end + // Tuinity start - view distance api + /** + * Sets the view distance for this world. + * @param viewDistance view distance in [2, 32] + */ + void setViewDistance(int viewDistance); + + /** + * Returns the no-tick view distance for this world. + *

+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not + * be set to tick. + *

+ * @return The no-tick view distance for this world. + */ + int getNoTickViewDistance(); + + /** + * Sets the no-tick view distance for this world. + *

+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not + * be set to tick. + *

+ * @param viewDistance view distance in [2, 32] + */ + void setNoTickViewDistance(int viewDistance); + // Tuinity end - view distance api + // Spigot start public class Spigot { diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java index 787bb144b5918ef1e46d69cb72b84128d2b678f3..c542305c69da3b9e5c2485e3c0cdf7ec60b1239b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1732,6 +1732,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM T getClientOption(@NotNull ClientOption option); // Paper end + // Tuinity start + /** + * Returns the no-tick view distance for this player. + *

+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not + * be set to tick. + *

+ * @return The no-tick view distance for this player. + */ + int getNoTickViewDistance(); + + /** + * Sets the no-tick view distance for this player. Setting to a value of -1 will default to the world no-tick + * view distance. + *

+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not + * be set to tick. + *

+ * @param viewDistance view distance in [2, 32] or -1 + */ + void setNoTickViewDistance(int viewDistance); + // Tuinity end + // Spigot start public class Spigot extends Entity.Spigot {