133 lines
4.6 KiB
Diff
133 lines
4.6 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Byteflux <byte@byteflux.net>
|
||
|
Date: Mon, 29 Feb 2016 18:05:37 -0600
|
||
|
Subject: [PATCH] Add view distance API
|
||
|
|
||
|
Add per player no-tick, tick, and send view distances.
|
||
|
|
||
|
Also add send/no-tick view distance to World.
|
||
|
|
||
|
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
||
|
index 92e8b0b1ccebdc2646337114793ea9f3e7759d25..5d01ba43ead1c5d257e38645380359c81f3de849 100644
|
||
|
--- a/src/main/java/org/bukkit/World.java
|
||
|
+++ b/src/main/java/org/bukkit/World.java
|
||
|
@@ -2379,6 +2379,51 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||
|
int getViewDistance();
|
||
|
// Spigot end
|
||
|
|
||
|
+ // Paper 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.
|
||
|
+ * <p>
|
||
|
+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not
|
||
|
+ * be set to tick.
|
||
|
+ * </p>
|
||
|
+ * @return The no-tick view distance for this world.
|
||
|
+ */
|
||
|
+ int getNoTickViewDistance();
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Sets the no-tick view distance for this world.
|
||
|
+ * <p>
|
||
|
+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not
|
||
|
+ * be set to tick.
|
||
|
+ * </p>
|
||
|
+ * @param viewDistance view distance in [2, 32]
|
||
|
+ */
|
||
|
+ void setNoTickViewDistance(int viewDistance);
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Gets the sending view distance for this world.
|
||
|
+ * <p>
|
||
|
+ * Sending view distance is the view distance where chunks will load in for players in this world.
|
||
|
+ * </p>
|
||
|
+ * @return The sending view distance for this world.
|
||
|
+ */
|
||
|
+ public int getSendViewDistance();
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Sets the sending view distance for this world.
|
||
|
+ * <p>
|
||
|
+ * Sending view distance is the view distance where chunks will load in for players in this world.
|
||
|
+ * </p>
|
||
|
+ * @param viewDistance view distance in [2, 32] or -1
|
||
|
+ */
|
||
|
+ public void setSendViewDistance(int viewDistance);
|
||
|
+ // Paper 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 1786b6c230cabaf962b27f9d95c49b42e2b5cc67..d65f35573700078a90283c37d698778a751e44a2 100644
|
||
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
||
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||
|
@@ -1490,6 +1490,62 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||
|
* @param affects Whether the player can affect mob spawning
|
||
|
*/
|
||
|
public void setAffectsSpawning(boolean affects);
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Gets the view distance for this player
|
||
|
+ *
|
||
|
+ * @return the player's view distance
|
||
|
+ * @see org.bukkit.World#getViewDistance()
|
||
|
+ * @see org.bukkit.World#getNoTickViewDistance()
|
||
|
+ */
|
||
|
+ public int getViewDistance();
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Sets the view distance for this player
|
||
|
+ *
|
||
|
+ * @param viewDistance the player's view distance
|
||
|
+ * @see org.bukkit.World#setViewDistance(int)
|
||
|
+ * @see org.bukkit.World#setNoTickViewDistance(int)
|
||
|
+ */
|
||
|
+ public void setViewDistance(int viewDistance);
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Gets the no-ticking view distance for this player.
|
||
|
+ * <p>
|
||
|
+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not
|
||
|
+ * be set to tick.
|
||
|
+ * </p>
|
||
|
+ * @return The no-tick view distance for this player.
|
||
|
+ */
|
||
|
+ public int getNoTickViewDistance();
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Sets the no-ticking view distance for this player.
|
||
|
+ * <p>
|
||
|
+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not
|
||
|
+ * be set to tick.
|
||
|
+ * </p>
|
||
|
+ * @param viewDistance view distance in [2, 32] or -1
|
||
|
+ */
|
||
|
+ public void setNoTickViewDistance(int viewDistance);
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Gets the sending view distance for this player.
|
||
|
+ * <p>
|
||
|
+ * Sending view distance is the view distance where chunks will load in for players.
|
||
|
+ * </p>
|
||
|
+ * @return The sending view distance for this player.
|
||
|
+ */
|
||
|
+ public int getSendViewDistance();
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Sets the sending view distance for this player.
|
||
|
+ * <p>
|
||
|
+ * Sending view distance is the view distance where chunks will load in for players.
|
||
|
+ * </p>
|
||
|
+ * @param viewDistance view distance in [2, 32] or -1
|
||
|
+ */
|
||
|
+ public void setSendViewDistance(int viewDistance);
|
||
|
// Paper end
|
||
|
|
||
|
/**
|