159 lines
		
	
	
	
		
			5.3 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
	
		
			5.3 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/org/bukkit/World.java
 | 
						|
+++ b/src/main/java/org/bukkit/World.java
 | 
						|
@@ -0,0 +0,0 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
 | 
						|
     int getSimulationDistance();
 | 
						|
     // 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);
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Sets the simulation distance for this world.
 | 
						|
+     * @param simulationDistance simulation distance in [2, 32]
 | 
						|
+     */
 | 
						|
+    void setSimulationDistance(int simulationDistance);
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * 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.
 | 
						|
+     * @deprecated Use {@link #getViewDistance()}
 | 
						|
+     */
 | 
						|
+    @Deprecated
 | 
						|
+    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]
 | 
						|
+     * @deprecated Use {@link #setViewDistance(int)}
 | 
						|
+     */
 | 
						|
+    @Deprecated
 | 
						|
+    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.
 | 
						|
+     */
 | 
						|
+    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
 | 
						|
+     */
 | 
						|
+    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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/org/bukkit/entity/Player.java
 | 
						|
+++ b/src/main/java/org/bukkit/entity/Player.java
 | 
						|
@@ -0,0 +0,0 @@ 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()
 | 
						|
+     */
 | 
						|
+    public int getViewDistance();
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Sets the view distance for this player
 | 
						|
+     *
 | 
						|
+     * @param viewDistance the player's view distance
 | 
						|
+     * @see org.bukkit.World#setViewDistance(int)
 | 
						|
+     */
 | 
						|
+    public void setViewDistance(int viewDistance);
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Gets the simulation distance for this player
 | 
						|
+     *
 | 
						|
+     * @return the player's simulation distance
 | 
						|
+     */
 | 
						|
+    public int getSimulationDistance();
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Sets the simulation distance for this player
 | 
						|
+     *
 | 
						|
+     * @param simulationDistance the player's new simulation distance
 | 
						|
+     */
 | 
						|
+    public void setSimulationDistance(int simulationDistance);
 | 
						|
+    
 | 
						|
+    /**
 | 
						|
+     * 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.
 | 
						|
+     * @deprecated Use {@link #getViewDistance()}
 | 
						|
+     */
 | 
						|
+    @Deprecated
 | 
						|
+    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
 | 
						|
+     * @deprecated Use {@link #setViewDistance(int)}
 | 
						|
+     */
 | 
						|
+    @Deprecated
 | 
						|
+    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
 | 
						|
 
 | 
						|
     /**
 |