71 lines
5.2 KiB
Diff
71 lines
5.2 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Zach Brown <zach@zachbr.io>
|
||
|
Date: Mon, 6 May 2019 01:29:25 -0400
|
||
|
Subject: [PATCH] Per-Player View Distance API placeholders
|
||
|
|
||
|
I hope to look at this more in-depth soon. It appears doable.
|
||
|
However this should not block the update.
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||
|
index 37a9e9df7f7f816c214c37e545288bf9329626ed..ec9436005a3a6fdfb4783d1092bb361224eb6414 100644
|
||
|
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||
|
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||
|
@@ -625,9 +625,10 @@ public class EnderDragon extends Mob implements Enemy {
|
||
|
if (this.dragonDeathTime == 1 && !this.isSilent()) {
|
||
|
// CraftBukkit start - Use relative location for far away sounds
|
||
|
// this.world.b(1028, this.getChunkCoordinates(), 0);
|
||
|
- //int viewDistance = ((WorldServer) this.world).getServer().getViewDistance() * 16; // Paper - updated to use worlds actual view distance incase we have to uncomment this due to removal of player view distance API
|
||
|
+ int viewDistance = ((ServerLevel) this.level).getCraftServer().getViewDistance() * 16; // Paper - updated to use worlds actual view distance incase we have to uncomment this due to removal of player view distance API
|
||
|
for (net.minecraft.server.level.ServerPlayer player : (List<net.minecraft.server.level.ServerPlayer>) ((ServerLevel)level).players()) {
|
||
|
- final int viewDistance = player.getViewDistance(); // TODO apply view distance api patch
|
||
|
+ // final int viewDistance = player.getViewDistance(); // TODO apply view distance api patch
|
||
|
+ // Paper end
|
||
|
double deltaX = this.getX() - player.getX();
|
||
|
double deltaZ = this.getZ() - player.getZ();
|
||
|
double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
|
||
|
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||
|
index 3a80869dc3c16cb81ac87100f28d63eee722067f..edd231568b75330d0cffbecb03a7e9dbc55d5f94 100644
|
||
|
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||
|
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||
|
@@ -46,6 +46,7 @@ import net.minecraft.network.syncher.EntityDataSerializers;
|
||
|
import net.minecraft.network.syncher.SynchedEntityData;
|
||
|
import net.minecraft.server.MinecraftServer;
|
||
|
import net.minecraft.server.level.ServerBossEvent;
|
||
|
+import net.minecraft.server.level.ServerLevel;
|
||
|
import net.minecraft.server.level.ServerPlayer;
|
||
|
import net.minecraft.sounds.SoundEvent;
|
||
|
import net.minecraft.sounds.SoundEvents;
|
||
|
@@ -255,9 +256,9 @@ public class WitherBoss extends Monster implements RangedAttackMob {
|
||
|
if (!this.isSilent()) {
|
||
|
// CraftBukkit start - Use relative location for far away sounds
|
||
|
// this.world.b(1023, new BlockPosition(this), 0);
|
||
|
- //int viewDistance = ((WorldServer) this.world).getServer().getViewDistance() * 16; // Paper - updated to use worlds actual view distance incase we have to uncomment this due to removal of player view distance API
|
||
|
+ int viewDistance = ((ServerLevel) this.level).getCraftServer().getViewDistance() * 16; // Paper - updated to use worlds actual view distance incase we have to uncomment this due to removal of player view distance API
|
||
|
for (ServerPlayer player : (List<ServerPlayer>)this.level.players()) {
|
||
|
- final int viewDistance = player.getViewDistance(); // TODO apply view distance api patch
|
||
|
+ // final int viewDistance = player.getViewDistance(); // TODO apply view distance api patch
|
||
|
double deltaX = this.getX() - player.getX();
|
||
|
double deltaZ = this.getZ() - player.getZ();
|
||
|
double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
|
||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||
|
index c2c6eb54096ef85b01c0b700cbe6a8054b62729f..20de8e358789d05bb5ac15e4cdd7dda85b61b7f8 100644
|
||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||
|
@@ -2240,6 +2240,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||
|
super.remove();
|
||
|
}
|
||
|
}
|
||
|
+
|
||
|
+ @Override
|
||
|
+ public int getViewDistance() {
|
||
|
+ throw new NotImplementedException("Per-Player View Distance APIs need further understanding to properly implement (There are per world view distances though!)"); // TODO
|
||
|
+ }
|
||
|
+
|
||
|
+ @Override
|
||
|
+ public void setViewDistance(int viewDistance) {
|
||
|
+ throw new NotImplementedException("Per-Player View Distance APIs need further understanding to properly implement (There are per world view distances though!)"); // TODO
|
||
|
+ }
|
||
|
// Paper end
|
||
|
|
||
|
// Spigot start
|