mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-29 11:42:55 +01:00
bd38e0318a
Updated Upstream (Bukkit/CraftBukkit) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: f02baa38 PR-988: Add World#getIntersectingChunks(BoundingBox) 9321d665 Move getItemInUse up to LivingEntity 819eef73 PR-959: Add access to current item's remaining ticks c4fdadb0 SPIGOT-7601: Add AbstractArrow#getItem be8261ca Add support for Java 22 26119676 PR-979: Add more translation keys 66753362 PR-985: Correct book maximum pages and characters per page documentation c8be92fa PR-980: Improve getArmorContents() documentation f1120ee2 PR-983: Expose riptide velocity to PlayerRiptideEvent CraftBukkit Changes: dfaa89bbe PR-1369: Add World#getIntersectingChunks(BoundingBox) 51bbab2b9 Move getItemInUse up to LivingEntity 668e09602 PR-1331: Add access to current item's remaining ticks a639406d1 SPIGOT-7601: Add AbstractArrow#getItem 0398930fc SPIGOT-7602: Allow opening in-world horse and related inventories ffd15611c SPIGOT-7608: Allow empty lists to morph to any PDT list 2188dcfa9 Add support for Java 22 45d6a609f SPIGOT-7604: Revert "SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime" 06d915943 SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime ca3bc3707 PR-1361: Add more translation keys 366c3ca80 SPIGOT-7600: EntityChangeBlockEvent is not fired for frog eggs 06d0f9ba8 SPIGOT-7593: Fix sapling growth physics / client-side updates 45c2608e4 PR-1366: Expose riptide velocity to PlayerRiptideEvent 29b6bb79b SPIGOT-7587: Remove fixes for now-resolved MC-142590 and MC-109346
167 lines
5.6 KiB
Diff
167 lines
5.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 b53f24c0368ff4e4f5287f1699643a0c00579031..7176e37b37c0d22605240f3c5fd34ff7846256c9 100644
|
|
--- a/src/main/java/org/bukkit/World.java
|
|
+++ b/src/main/java/org/bukkit/World.java
|
|
@@ -2925,6 +2925,66 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
|
@NotNull
|
|
public Set<FeatureFlag> getFeatureFlags();
|
|
|
|
+ // 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
|
|
+ default int getNoTickViewDistance() {
|
|
+ return this.getViewDistance();
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * 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
|
|
+ default void setNoTickViewDistance(int viewDistance) {
|
|
+ this.setViewDistance(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
|
|
+
|
|
/**
|
|
* Gets all generated structures that intersect the chunk at the given
|
|
* coordinates. <br>
|
|
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
|
index 35de65a773146c4b4162df777a8ec594a22ca62c..b66f9264ceb38677d7422b47e379a0e860bcac07 100644
|
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
|
@@ -2500,6 +2500,82 @@ 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
|
|
+ default int getNoTickViewDistance() {
|
|
+ return this.getViewDistance();
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * 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
|
|
+ default void setNoTickViewDistance(int viewDistance) {
|
|
+ this.setViewDistance(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
|
|
|
|
/**
|