mirror of
https://hub.spigotmc.org/stash/scm/spigot/spigot.git
synced 2025-09-18 21:33:01 +00:00
91 lines
5.5 KiB
Diff
91 lines
5.5 KiB
Diff
From 996f42c0f334ba6b7840b585e99fd4ec073f4ce0 Mon Sep 17 00:00:00 2001
|
|
From: md_5 <md_5@live.com.au>
|
|
Date: Sat, 23 Mar 2013 09:52:41 +1100
|
|
Subject: [PATCH] View Distance
|
|
|
|
This commit allows the user to select per world view distances.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
|
index 54f8187a4..56bc1f239 100644
|
|
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
|
@@ -245,7 +245,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
|
|
this.entityManager = new PersistentEntitySectionManager<>(Entity.class, new WorldServer.a(), entitypersistentstorage);
|
|
DefinedStructureManager definedstructuremanager = minecraftserver.getDefinedStructureManager();
|
|
- int j = minecraftserver.getPlayerList().getViewDistance();
|
|
+ int j = this.spigotConfig.viewDistance; // Spigot
|
|
PersistentEntitySectionManager persistententitysectionmanager = this.entityManager;
|
|
|
|
Objects.requireNonNull(this.entityManager);
|
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
index 38dd1ca4d..c83afc3d0 100644
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
@@ -221,7 +221,8 @@ public abstract class PlayerList {
|
|
boolean flag = gamerules.getBoolean(GameRules.RULE_DO_IMMEDIATE_RESPAWN);
|
|
boolean flag1 = gamerules.getBoolean(GameRules.RULE_REDUCEDDEBUGINFO);
|
|
|
|
- playerconnection.sendPacket(new PacketPlayOutLogin(entityplayer.getId(), entityplayer.gameMode.getGameMode(), entityplayer.gameMode.c(), BiomeManager.a(worldserver1.getSeed()), worlddata.isHardcore(), this.server.F(), this.registryHolder, worldserver1.getDimensionManager(), worldserver1.getDimensionKey(), this.getMaxPlayers(), this.viewDistance, flag1, !flag, worldserver1.isDebugWorld(), worldserver1.isFlatWorld()));
|
|
+ // Spigot - view distance
|
|
+ playerconnection.sendPacket(new PacketPlayOutLogin(entityplayer.getId(), entityplayer.gameMode.getGameMode(), entityplayer.gameMode.c(), BiomeManager.a(worldserver1.getSeed()), worlddata.isHardcore(), this.server.F(), this.registryHolder, worldserver1.getDimensionManager(), worldserver1.getDimensionKey(), this.getMaxPlayers(), worldserver1.spigotConfig.viewDistance, flag1, !flag, worldserver1.isDebugWorld(), worldserver1.isFlatWorld()));
|
|
entityplayer.getBukkitEntity().sendSupportedChannels(); // CraftBukkit
|
|
playerconnection.sendPacket(new PacketPlayOutCustomPayload(PacketPlayOutCustomPayload.BRAND, (new PacketDataSerializer(Unpooled.buffer())).a(this.getServer().getServerModName())));
|
|
playerconnection.sendPacket(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
|
|
@@ -741,6 +742,7 @@ public abstract class PlayerList {
|
|
// CraftBukkit start
|
|
WorldData worlddata = worldserver1.getWorldData();
|
|
entityplayer1.connection.sendPacket(new PacketPlayOutRespawn(worldserver1.getDimensionManager(), worldserver1.getDimensionKey(), BiomeManager.a(worldserver1.getSeed()), entityplayer1.gameMode.getGameMode(), entityplayer1.gameMode.c(), worldserver1.isDebugWorld(), worldserver1.isFlatWorld(), flag));
|
|
+ entityplayer1.connection.sendPacket(new PacketPlayOutViewDistance(worldserver1.spigotConfig.viewDistance)); // Spigot
|
|
entityplayer1.spawnIn(worldserver1);
|
|
entityplayer1.unsetRemoved();
|
|
entityplayer1.connection.teleport(new Location(worldserver1.getWorld(), entityplayer1.locX(), entityplayer1.locY(), entityplayer1.locZ(), entityplayer1.getYRot(), entityplayer1.getXRot()));
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
index 8c4c85b02..b08a37133 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
@@ -1744,6 +1744,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
|
return (getHandle().getDragonBattle() == null) ? null : new CraftDragonBattle(getHandle().getDragonBattle());
|
|
}
|
|
|
|
+ // Spigot start
|
|
+ @Override
|
|
+ public int getViewDistance() {
|
|
+ return world.spigotConfig.viewDistance;
|
|
+ }
|
|
+ // Spigot end
|
|
+
|
|
// Spigot start
|
|
private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot()
|
|
{
|
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
index 8c855cf9b..8db1bc203 100644
|
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
@@ -142,4 +142,23 @@ public class SpigotWorldConfig
|
|
expMerge = getDouble("merge-radius.exp", 3.0 );
|
|
log( "Experience Merge Radius: " + expMerge );
|
|
}
|
|
+
|
|
+ public int viewDistance;
|
|
+ private void viewDistance()
|
|
+ {
|
|
+ if ( SpigotConfig.version < 12 )
|
|
+ {
|
|
+ set( "view-distance", null );
|
|
+ }
|
|
+
|
|
+ Object viewDistanceObject = get( "view-distance", "default" );
|
|
+ viewDistance = ( viewDistanceObject ) instanceof Number ? ( (Number) viewDistanceObject ).intValue() : -1;
|
|
+ if ( viewDistance <= 0 )
|
|
+ {
|
|
+ viewDistance = Bukkit.getViewDistance();
|
|
+ }
|
|
+
|
|
+ viewDistance = Math.max( Math.min( viewDistance, 32 ), 3 );
|
|
+ log( "View Distance: " + viewDistance );
|
|
+ }
|
|
}
|
|
--
|
|
2.25.1
|
|
|