mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 15:30:19 +01:00
Fix a bunch of stuff with player spawn locations (#9887)
If a playerdata doesn't contain a valid, loaded world, reset to the main world spawn point
This commit is contained in:
parent
15a0de2eef
commit
0cdce89d59
614 changed files with 255 additions and 212 deletions
|
@ -3,25 +3,120 @@ From: 2277 <38501234+2277@users.noreply.github.com>
|
|||
Date: Tue, 31 Mar 2020 10:33:55 +0100
|
||||
Subject: [PATCH] Move player to spawn point if spawn in unloaded world
|
||||
|
||||
The code following this has better support for null worlds to move
|
||||
them back to the world spawn.
|
||||
If the playerdata contains an invalid world (missing, unloaded, invalid,
|
||||
etc.), spawn the player at the spawn point of the main world.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 32707ab485111e265cc34d5f09507c97067dfa09..eed16b541a9c39ed4697e783612e6f7b7ff23b70 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -2327,9 +2327,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
bworld = server.getWorld(worldName);
|
||||
Co-authored-by: Wyatt Childers <wchilders@nearce.com>
|
||||
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index f8679d4b52a5948048a91338dc2cac8bfa5ef9e3..ac6c1c1cf0d736c31a4e3666cb9e10ba8bc1c7c5 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -196,7 +196,7 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
CompoundTag nbttagcompound = this.load(player);
|
||||
- ResourceKey resourcekey;
|
||||
+ ResourceKey<Level> resourcekey = null; // Paper
|
||||
// CraftBukkit start - Better rename detection
|
||||
if (nbttagcompound != null && nbttagcompound.contains("bukkit")) {
|
||||
CompoundTag bukkit = nbttagcompound.getCompound("bukkit");
|
||||
@@ -204,15 +204,42 @@ public abstract class PlayerList {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
+ // Paper start - move logic in Entity to here, to use bukkit supplied world UUID & reset to main world spawn if no valid world is found
|
||||
+ boolean invalidPlayerWorld = false;
|
||||
+ bukkitData: if (nbttagcompound != null) {
|
||||
+ // The main way for bukkit worlds to store the world is the world UUID despite mojang adding custom worlds
|
||||
+ final org.bukkit.World bWorld;
|
||||
+ if (nbttagcompound.contains("WorldUUIDMost") && nbttagcompound.contains("WorldUUIDLeast")) {
|
||||
+ bWorld = org.bukkit.Bukkit.getServer().getWorld(new UUID(nbttagcompound.getLong("WorldUUIDMost"), nbttagcompound.getLong("WorldUUIDLeast")));
|
||||
+ } else if (nbttagcompound.contains("world", net.minecraft.nbt.Tag.TAG_STRING)) { // Paper - legacy bukkit world name
|
||||
+ bWorld = org.bukkit.Bukkit.getServer().getWorld(nbttagcompound.getString("world"));
|
||||
+ } else {
|
||||
+ break bukkitData; // if neither of the bukkit data points exist, proceed to the vanilla migration section
|
||||
+ }
|
||||
+ if (bWorld != null) {
|
||||
+ resourcekey = ((CraftWorld) bWorld).getHandle().dimension();
|
||||
+ } else {
|
||||
+ resourcekey = Level.OVERWORLD;
|
||||
+ invalidPlayerWorld = true;
|
||||
+ }
|
||||
+ }
|
||||
+ if (resourcekey == null) { // only run the vanilla logic if we haven't found a world from the bukkit data
|
||||
+ // Below is the vanilla way of getting the dimension, this is for migration from vanilla servers
|
||||
+ // Paper end
|
||||
if (nbttagcompound != null) {
|
||||
DataResult<ResourceKey<Level>> dataresult = DimensionType.parseLegacy(new Dynamic(NbtOps.INSTANCE, nbttagcompound.get("Dimension"))); // CraftBukkit - decompile error
|
||||
Logger logger = PlayerList.LOGGER;
|
||||
|
||||
Objects.requireNonNull(logger);
|
||||
- resourcekey = (ResourceKey) dataresult.resultOrPartial(logger::error).orElse(player.serverLevel().dimension()); // CraftBukkit - SPIGOT-7507: If no dimension, fall back to existing dimension loaded from "WorldUUID", which in turn defaults to World.OVERWORLD
|
||||
+ // Paper start - reset to main world spawn if no valid world is found
|
||||
+ final Optional<ResourceKey<Level>> result = dataresult.resultOrPartial(logger::error);
|
||||
+ invalidPlayerWorld = result.isEmpty();
|
||||
+ resourcekey = result.orElse(Level.OVERWORLD);
|
||||
+ // Paper end
|
||||
} else {
|
||||
- resourcekey = player.serverLevel().dimension(); // CraftBukkit - SPIGOT-7507: If no dimension, fall back to existing dimension loaded from "WorldUUID", which in turn defaults to World.OVERWORLD
|
||||
+ resourcekey = Level.OVERWORLD; // Paper - revert to vanilla default main world, this isn't an "invalid world" since no player data existed
|
||||
}
|
||||
+ } // Paper
|
||||
|
||||
ResourceKey<Level> resourcekey1 = resourcekey;
|
||||
ServerLevel worldserver = this.server.getLevel(resourcekey1);
|
||||
@@ -221,6 +248,7 @@ public abstract class PlayerList {
|
||||
if (worldserver == null) {
|
||||
PlayerList.LOGGER.warn("Unknown respawn dimension {}, defaulting to overworld", resourcekey1);
|
||||
worldserver1 = this.server.overworld();
|
||||
+ invalidPlayerWorld = true; // Paper - reset to main world if no world with parsed value is found
|
||||
} else {
|
||||
worldserver1 = worldserver;
|
||||
}
|
||||
@@ -228,6 +256,10 @@ public abstract class PlayerList {
|
||||
// Paper start
|
||||
if (nbttagcompound == null) {
|
||||
player.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; // set Player SpawnReason to DEFAULT on first login
|
||||
+ // Paper start - reset to main world spawn if first spawn or invalid world
|
||||
+ }
|
||||
+ if (nbttagcompound == null || invalidPlayerWorld) {
|
||||
+ // Paper end
|
||||
player.fudgeSpawnLocation(worldserver1); // only move to spawn on first login, otherwise, stay where you are....
|
||||
}
|
||||
// Paper end
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 9dd5844c31fa8733298eb70bb2a8deebfaea2a23..2f4afa9dd08820c3130fe6a85b051adb80057907 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -2312,27 +2312,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
- // CraftBukkit start - Reset world
|
||||
- if (this instanceof ServerPlayer) {
|
||||
- Server server = Bukkit.getServer();
|
||||
- org.bukkit.World bworld = null;
|
||||
-
|
||||
- // TODO: Remove World related checks, replaced with WorldUID
|
||||
- String worldName = nbt.getString("world");
|
||||
-
|
||||
- if (nbt.contains("WorldUUIDMost") && nbt.contains("WorldUUIDLeast")) {
|
||||
- UUID uid = new UUID(nbt.getLong("WorldUUIDMost"), nbt.getLong("WorldUUIDLeast"));
|
||||
- bworld = server.getWorld(uid);
|
||||
- } else {
|
||||
- bworld = server.getWorld(worldName);
|
||||
- }
|
||||
-
|
||||
- if (bworld == null) {
|
||||
- bworld = ((org.bukkit.craftbukkit.CraftServer) server).getServer().getLevel(Level.OVERWORLD).getWorld();
|
||||
- }
|
||||
+ // Paper start - Move player to spawn point if spawn in unloaded world
|
||||
+// if (bworld == null) {
|
||||
+// bworld = ((org.bukkit.craftbukkit.CraftServer) server).getServer().getWorldServer(World.OVERWORLD).getWorld();
|
||||
+// }
|
||||
+ // Paper end - Move player to spawn point if spawn in unloaded world
|
||||
|
||||
((ServerPlayer) this).setLevel(bworld == null ? null : ((CraftWorld) bworld).getHandle());
|
||||
}
|
||||
-
|
||||
- ((ServerPlayer) this).setLevel(bworld == null ? null : ((CraftWorld) bworld).getHandle());
|
||||
- }
|
||||
+ // CraftBukkit start
|
||||
+ // Paper - move world parsing/loading to PlayerList#placeNewPlayer
|
||||
this.getBukkitEntity().readBukkitValues(nbt);
|
||||
if (nbt.contains("Bukkit.invisible")) {
|
||||
boolean bukkitInvisible = nbt.getBoolean("Bukkit.invisible");
|
||||
|
|
|
@ -16,10 +16,10 @@ So even if something NEW comes up, it would be impossible to drop the
|
|||
same item twice because the source was destroyed.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 77a4d6d14e79230cab80439d1fc28f27824ed04d..ad80dfcc0606a635185bf707af6d3b437f489a31 100644
|
||||
index 2f4afa9dd08820c3130fe6a85b051adb80057907..709a71eca4b1edb86af6f5f3345d90e7eb0b2893 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -2457,11 +2457,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -2436,11 +2436,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
} else {
|
||||
// CraftBukkit start - Capture drops for death event
|
||||
if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) {
|
||||
|
@ -34,7 +34,7 @@ index 77a4d6d14e79230cab80439d1fc28f27824ed04d..ad80dfcc0606a635185bf707af6d3b43
|
|||
|
||||
entityitem.setDefaultPickUpDelay();
|
||||
// CraftBukkit start
|
||||
@@ -3263,6 +3264,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -3242,6 +3243,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@Nullable
|
||||
public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
|
||||
// CraftBukkit end
|
||||
|
@ -47,7 +47,7 @@ index 77a4d6d14e79230cab80439d1fc28f27824ed04d..ad80dfcc0606a635185bf707af6d3b43
|
|||
if (this.level() instanceof ServerLevel && !this.isRemoved()) {
|
||||
this.level().getProfiler().push("changeDimension");
|
||||
// CraftBukkit start
|
||||
@@ -3289,6 +3296,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -3268,6 +3275,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
// CraftBukkit end
|
||||
|
||||
this.level().getProfiler().popPush("reloading");
|
||||
|
@ -59,7 +59,7 @@ index 77a4d6d14e79230cab80439d1fc28f27824ed04d..ad80dfcc0606a635185bf707af6d3b43
|
|||
Entity entity = this.getType().create(worldserver);
|
||||
|
||||
if (entity != null) {
|
||||
@@ -3302,10 +3314,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -3281,10 +3293,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
// CraftBukkit start - Forward the CraftEntity to the new entity
|
||||
this.getBukkitEntity().setHandle(entity);
|
||||
entity.bukkitEntity = this.getBukkitEntity();
|
||||
|
@ -70,7 +70,7 @@ index 77a4d6d14e79230cab80439d1fc28f27824ed04d..ad80dfcc0606a635185bf707af6d3b43
|
|||
// CraftBukkit end
|
||||
}
|
||||
|
||||
@@ -3426,7 +3434,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -3405,7 +3413,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
}
|
||||
|
||||
public boolean canChangeDimensions() {
|
||||
|
@ -80,7 +80,7 @@ index 77a4d6d14e79230cab80439d1fc28f27824ed04d..ad80dfcc0606a635185bf707af6d3b43
|
|||
|
||||
public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 61b9c3ebc97b0a778c3a75a926c0d689f43df823..50c68e48992add57accf7f5479952d17beca577a 100644
|
||||
index 5d4bf7390a4b368e9ef8f39da2aa4ff60329c161..109c381adefd61c69768ce1572873b2e629aff0e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1708,9 +1708,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
|
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Ensure Entity AABB's are never invalid
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index b80e8f05a8f99cc912904470c31092faad0717da..f2faddf78b5ea591f66d92d9e0f2b7984a3c2124 100644
|
||||
index 9c021bc57a3c4002b2f8f6e4d53f996eaf729c73..eedb6db6a5e4879847ea593975d6f6f1de954642 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -721,8 +721,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
|
@ -19,7 +19,7 @@ index b80e8f05a8f99cc912904470c31092faad0717da..f2faddf78b5ea591f66d92d9e0f2b798
|
|||
}
|
||||
|
||||
protected AABB makeBoundingBox() {
|
||||
@@ -4223,6 +4223,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -4202,6 +4202,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
}
|
||||
|
||||
public final void setPosRaw(double x, double y, double z) {
|
||||
|
@ -31,7 +31,7 @@ index b80e8f05a8f99cc912904470c31092faad0717da..f2faddf78b5ea591f66d92d9e0f2b798
|
|||
// Paper start - rewrite chunk system
|
||||
if (this.updatingSectionStatus) {
|
||||
LOGGER.error("Refusing to update position for entity " + this + " to position " + new Vec3(x, y, z) + " since it is processing a section status update", new Throwable());
|
||||
@@ -4246,6 +4251,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -4225,6 +4230,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
this.levelCallback.onMove();
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] incremental chunk and player saving
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index a106f5f573c9eec1f56fa88f7398ac28d231b5e5..04258e07f806acd9a0d659b682e0119a5dc23adf 100644
|
||||
index 219e191ff4d590aee9b7a704ba6fe84c3c12f43a..a5353af5ff47b5be7dac9a4e55989ad9490cf30f 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -855,7 +855,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
@ -53,7 +53,7 @@ index a106f5f573c9eec1f56fa88f7398ac28d231b5e5..04258e07f806acd9a0d659b682e0119a
|
|||
// Paper start - move executeAll() into full server tick timing
|
||||
try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index a8c1620ec48adcd2bb116d48f8bb2d4af50f5f43..7d7dc8246f44d6ffd46b05f917ffbdb9cc24372b 100644
|
||||
index e27067e72a49e127aa4abb17f5ed1df09f943f3c..4e58f31e4852a0811f85596653f6db630a75b069 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -452,6 +452,15 @@ public class ServerChunkCache extends ChunkSource {
|
||||
|
@ -73,7 +73,7 @@ index a8c1620ec48adcd2bb116d48f8bb2d4af50f5f43..7d7dc8246f44d6ffd46b05f917ffbdb9
|
|||
public void close() throws IOException {
|
||||
// CraftBukkit start
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 8467ea174dd48010b94b3f3c84ce097ecbb2ef14..5826536978724b54080d7d4ee61aa79800d57800 100644
|
||||
index 754e8de31e27264deebc94b1d3a9a51b5ca7e965..0ff614ea19ff5420c506fe402caf230b1e0a3a36 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1283,6 +1283,37 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
|
@ -115,7 +115,7 @@ index 8467ea174dd48010b94b3f3c84ce097ecbb2ef14..5826536978724b54080d7d4ee61aa798
|
|||
// Paper start - rewrite chunk system - add close param
|
||||
this.save(progressListener, flush, savingDisabled, false);
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 6d411d6ccef650225f37275ec7c5033991408f25..4f98f80f6d8bebba33bad37fe6a722f778f93ed8 100644
|
||||
index a3c1797549e3b149f425f857bbf8564c5ef1e30e..2c2b1aef3f510edb9bb124581739f06692ab5673 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -184,6 +184,7 @@ import org.bukkit.inventory.MainHand;
|
||||
|
@ -127,10 +127,10 @@ index 6d411d6ccef650225f37275ec7c5033991408f25..4f98f80f6d8bebba33bad37fe6a722f7
|
|||
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10;
|
||||
public ServerGamePacketListenerImpl connection;
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 8b4c98ff8c411ee6f4efdf4839f9b34ea79fd599..76ab209f27afb88dfb26b8a45a6b36328f63ed45 100644
|
||||
index ac6c1c1cf0d736c31a4e3666cb9e10ba8bc1c7c5..3c7257d745406b4675155d7990a6661db7391d6b 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -522,6 +522,7 @@ public abstract class PlayerList {
|
||||
@@ -554,6 +554,7 @@ public abstract class PlayerList {
|
||||
|
||||
protected void save(ServerPlayer player) {
|
||||
if (!player.getBukkitEntity().isPersistent()) return; // CraftBukkit
|
||||
|
@ -138,7 +138,7 @@ index 8b4c98ff8c411ee6f4efdf4839f9b34ea79fd599..76ab209f27afb88dfb26b8a45a6b3632
|
|||
this.playerIo.save(player);
|
||||
ServerStatsCounter serverstatisticmanager = (ServerStatsCounter) player.getStats(); // CraftBukkit
|
||||
|
||||
@@ -1119,10 +1120,22 @@ public abstract class PlayerList {
|
||||
@@ -1151,10 +1152,22 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
public void saveAll() {
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Wyatt Childers <wchilders@nearce.com>
|
||||
Date: Fri, 3 Jul 2020 14:57:05 -0400
|
||||
Subject: [PATCH] Spawn player in correct world on login
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 76ab209f27afb88dfb26b8a45a6b36328f63ed45..fc89e30c529ffee9acfd6bab1a89bbe56e80ba51 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -204,7 +204,18 @@ public abstract class PlayerList {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
- if (nbttagcompound != null) {
|
||||
+ // Paper start - move logic in Entity to here, to use bukkit supplied world UUID.
|
||||
+ if (nbttagcompound != null && nbttagcompound.contains("WorldUUIDMost") && nbttagcompound.contains("WorldUUIDLeast")) {
|
||||
+ UUID uid = new UUID(nbttagcompound.getLong("WorldUUIDMost"), nbttagcompound.getLong("WorldUUIDLeast"));
|
||||
+ org.bukkit.World bWorld = org.bukkit.Bukkit.getServer().getWorld(uid);
|
||||
+ if (bWorld != null) {
|
||||
+ resourcekey = ((CraftWorld) bWorld).getHandle().dimension();
|
||||
+ } else {
|
||||
+ resourcekey = Level.OVERWORLD;
|
||||
+ }
|
||||
+ } else if (nbttagcompound != null) {
|
||||
+ // Vanilla migration support
|
||||
+ // Paper end
|
||||
DataResult<ResourceKey<Level>> dataresult = DimensionType.parseLegacy(new Dynamic(NbtOps.INSTANCE, nbttagcompound.get("Dimension"))); // CraftBukkit - decompile error
|
||||
Logger logger = PlayerList.LOGGER;
|
||||
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Don't check chunk for portal on world gen entity add
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index c87b149c7de77275252a5d6e182f96059760890b..b2383510e00dcd68dee1a1f48aab873ae09f4d97 100644
|
||||
index 109c381adefd61c69768ce1572873b2e629aff0e..2b0178507a39c95fff94bea382bacebb8c40f1b7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -3508,7 +3508,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
@ -10,10 +10,10 @@ This fixes that by checking if the modified spawn location is
|
|||
still at a respawn anchor.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index fc89e30c529ffee9acfd6bab1a89bbe56e80ba51..1c95c4ff3f4b1811ff60ecb9518e0ef90c5120a5 100644
|
||||
index 3c7257d745406b4675155d7990a6661db7391d6b..e9b5d987c1891ba269ba6beec57c1e0fb65dbb4d 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -789,6 +789,7 @@ public abstract class PlayerList {
|
||||
@@ -810,6 +810,7 @@ public abstract class PlayerList {
|
||||
// Paper start
|
||||
boolean isBedSpawn = false;
|
||||
boolean isRespawn = false;
|
||||
|
@ -21,7 +21,7 @@ index fc89e30c529ffee9acfd6bab1a89bbe56e80ba51..1c95c4ff3f4b1811ff60ecb9518e0ef9
|
|||
// Paper end
|
||||
|
||||
// CraftBukkit start - fire PlayerRespawnEvent
|
||||
@@ -799,7 +800,7 @@ public abstract class PlayerList {
|
||||
@@ -820,7 +821,7 @@ public abstract class PlayerList {
|
||||
Optional optional;
|
||||
|
||||
if (blockposition != null) {
|
||||
|
@ -30,7 +30,7 @@ index fc89e30c529ffee9acfd6bab1a89bbe56e80ba51..1c95c4ff3f4b1811ff60ecb9518e0ef9
|
|||
} else {
|
||||
optional = Optional.empty();
|
||||
}
|
||||
@@ -843,7 +844,12 @@ public abstract class PlayerList {
|
||||
@@ -864,7 +865,12 @@ public abstract class PlayerList {
|
||||
}
|
||||
// Spigot End
|
||||
|
||||
|
@ -44,7 +44,7 @@ index fc89e30c529ffee9acfd6bab1a89bbe56e80ba51..1c95c4ff3f4b1811ff60ecb9518e0ef9
|
|||
if (!flag) entityplayer.reset(); // SPIGOT-4785
|
||||
isRespawn = true; // Paper
|
||||
} else {
|
||||
@@ -882,8 +888,14 @@ public abstract class PlayerList {
|
||||
@@ -903,8 +909,14 @@ public abstract class PlayerList {
|
||||
}
|
||||
// entityplayer1.initInventoryMenu();
|
||||
entityplayer1.setHealth(entityplayer1.getHealth());
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Brand support
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 4f98f80f6d8bebba33bad37fe6a722f778f93ed8..48985c0577fe1a09838137286e32128b29a60552 100644
|
||||
index 2c2b1aef3f510edb9bb124581739f06692ab5673..567bfcdf5c946d09bb8188435ee13930082dccf5 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -271,6 +271,7 @@ public class ServerPlayer extends Player {
|
||||
|
@ -17,7 +17,7 @@ index 4f98f80f6d8bebba33bad37fe6a722f778f93ed8..48985c0577fe1a09838137286e32128b
|
|||
// Paper start - replace player chunk loader
|
||||
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index d1808bf9dc19fad84da5eb3b4c3d549bc624b00a..e8133a1ec975b7f63926acc7d6ab9291a2107084 100644
|
||||
index d25b6431ce617d90fd1d6489a308d6630b92c175..96ee68e6656a59d959ad7a7e78f5a3752d6e3dbb 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -54,6 +54,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
|
@ -57,7 +57,7 @@ index d1808bf9dc19fad84da5eb3b4c3d549bc624b00a..e8133a1ec975b7f63926acc7d6ab9291
|
|||
} catch (Exception ex) {
|
||||
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index a516aa3ff7949d933c15220160f83a5b5dd5fd6c..82c3cac22e7384966bcd4d55a3434b781b5a6795 100644
|
||||
index b92cc9f8d62cc3bfefe42c4c1fb08af4731dd48f..7b1404ac481ea9a059197b9f752327ef0bf72c5c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -3009,6 +3009,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity
|
|||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
index 71a2ac37046adb3826bc2e76b4ac385c7e331f5e..8ed8bd2c539af20aa97bff1c0f719c4c2f793fc5 100644
|
||||
index 38cad5b0d7e6018adda56b3292280738c46622e9..c8e729e949e7a8301f17768d6ae3f3ce940bb73a 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
@@ -920,5 +920,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
|
@ -7,7 +7,7 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a
|
|||
village bell. Passes along the bell block and the player who rang it.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index e05b03b356d7a5de9f326a1004326326efd0e301..e18e733cd13b7b69170a839e78341f3f339afa09 100644
|
||||
index f4040a1187b49a3aaaca91ff983433b404765043..a19979dac60552791b7a8dd4920ba75b525340ca 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -367,10 +367,11 @@ public class CraftEventFactory {
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Add zombie targets turtle egg config
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
index 4215c45aa1073b3c70eb58a06eb3dce26f389c90..760b880a11e8ece98b41f934f9a2441fd020ecd6 100644
|
||||
index 93ca1016806103fe688379c99afc57cb02635f65..f99e4382b4b191d9bd673a4307c6641857b836ca 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
@@ -109,7 +109,7 @@ public class Zombie extends Monster {
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Fix hex colors not working in some kick messages
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
|
||||
index e6275103156b720d774e197ea61659f1f1699025..65ee0a7183abb0a4b1f36d2ef9631c00b52eb99e 100644
|
||||
index e8cf9eafe0908bc9b716d9b6ead97828a43413ec..2ee5c884571228a353120f658f1a2d39373ea4ca 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
|
||||
@@ -77,12 +77,12 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
|
||||
|
@ -25,7 +25,7 @@ index e6275103156b720d774e197ea61659f1f1699025..65ee0a7183abb0a4b1f36d2ef9631c00
|
|||
|
||||
this.connection.send(new ClientboundLoginDisconnectPacket(ichatmutablecomponent));
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index c3e7a5f61e94d9905dc805bfc486819b61e143d1..7ae0ecc93a92edeb172d9ed0709c8f7f068cdf4e 100644
|
||||
index 673652231a65e9441ee882c86656b86a86547488..97e91910c2c30b4f838e78794c9107bdfe8d7668 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -97,7 +97,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
|
@ -52,7 +52,7 @@ index 2bc31c28d0d5469476699b69efa6e07325f2a852..4066dd6a638cf2186c628905915f6353
|
|||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java
|
||||
index 8c6edd032c927f7d1e04e944b4ce5598d71cdd81..7f88b910dfd0303f69b4fd1c7918a401c1f369f2 100644
|
||||
index 893ff998afaa47500a03ae55ce45e9862ab1cc18..a3021fbc570ae47eb6b0d4a89388c8ed893aced7 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/FireBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java
|
||||
@@ -13,6 +13,7 @@ import net.minecraft.server.level.ServerLevel;
|
|
@ -10,7 +10,7 @@ public org.bukkit.craftbukkit.inventory.CraftMetaFirework getNBT(Lorg/bukkit/Fir
|
|||
Co-authored-by: MeFisto94 <MeFisto94@users.noreply.github.com>
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||
index e172d05e9e2b8d7844ecff286430f94c1b2fd7db..5a1b0f2352016497099c68c5bcd09a43ebe8bf3a 100644
|
||||
index 35e264172688be6cf6e82d948f591893d97a43aa..8313d6de11427a4340ac9fc4f3a04070a5c80cd8 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||
@@ -668,5 +668,10 @@ public class CraftBlock implements Block {
|
||||
|
@ -25,7 +25,7 @@ index e172d05e9e2b8d7844ecff286430f94c1b2fd7db..5a1b0f2352016497099c68c5bcd09a43
|
|||
// Paper end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
|
||||
index e8334e2264510f5101e80b4f130e7ae1442560d7..57decf4156f176ebcc988478c17856cbc555c5e4 100644
|
||||
index 9ae78a0fe829c7487a945a801dbbca2375da1cbb..5b09e7e08c61b10044ac5f481bf10bb79feda8a3 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
|
||||
@@ -194,6 +194,11 @@ public class CraftEnchantment extends Enchantment {
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Cache block data strings
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 04258e07f806acd9a0d659b682e0119a5dc23adf..14e82938f919975c4ff8d463307d1d26db18edc3 100644
|
||||
index a5353af5ff47b5be7dac9a4e55989ad9490cf30f..3ce983b0e93c1f70acaa22c800273fe625b20454 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -2049,6 +2049,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
@ -9,7 +9,7 @@ as this is how Vanilla teleports entities.
|
|||
Cancel any pending motion when teleported.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index c3844274b185decd92d021e7c7343adb56052cc6..3a85c81aceae20820e5630b745eadf012bad1faf 100644
|
||||
index 5cf42146e1885fe1427ac7a248e2ba6dc1b4128b..5566a7f225ea16eeb47c7bd3ad41515383574dfa 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -657,7 +657,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
|
@ -31,7 +31,7 @@ index c3844274b185decd92d021e7c7343adb56052cc6..3a85c81aceae20820e5630b745eadf01
|
|||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index f2faddf78b5ea591f66d92d9e0f2b7984a3c2124..2d416d0d657667d857794bafa315c720dee9762a 100644
|
||||
index eedb6db6a5e4879847ea593975d6f6f1de954642..1035faf0a7af0cae34065c93da23736bcfe2f0ef 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -159,6 +159,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
|
@ -69,7 +69,7 @@ index 369298dfd437c1c83801f3d4ba63484ee1b969fe..ae2b95f53e875716489821dc9b0a3a35
|
|||
if (entity instanceof Mob) {
|
||||
Mob entityinsentient = (Mob) entity;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index eaa59959f4804d38ae486028c854ed63207fd3b9..2c4704fb85f29a02b7245d36e8e4383534c701f9 100644
|
||||
index fa1ebfb89eeb129abf6263ea93fb14e5b7607610..a5751fa22a6638abae155de483a769f12b125650 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -579,7 +579,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Add additional open container api to HumanEntity
|
|||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
index 80694a1d660a10909408c9b3169dda7847bf295e..05d9a9968588381aaa3aeb06ef4d18fed4085229 100644
|
||||
index 4ac714e39804fc8d269a717e8abf98f5814319e8..d41e37afeab1e8bb098c6ed012b10b113c4a4715 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
@@ -461,6 +461,70 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
|
@ -6,10 +6,10 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 2d416d0d657667d857794bafa315c720dee9762a..c78df4fc62a347455f8d7b3aa186344863915ab3 100644
|
||||
index 1035faf0a7af0cae34065c93da23736bcfe2f0ef..1a092af20c9dd18ddcf770bcc3cb3bead1a609a8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -4472,4 +4472,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -4451,4 +4451,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
|
||||
void accept(Entity entity, double x, double y, double z);
|
||||
}
|
|
@ -5,10 +5,10 @@ Subject: [PATCH] Entity#isTicking
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index c78df4fc62a347455f8d7b3aa186344863915ab3..658e47bf5aff1e56462cc3f0a87eeb7349654176 100644
|
||||
index 1a092af20c9dd18ddcf770bcc3cb3bead1a609a8..121139196c82eb87be771d93f0ca52b951c7eb52 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -4477,5 +4477,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -4456,5 +4456,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
public static int nextEntityId() {
|
||||
return ENTITY_COUNTER.incrementAndGet();
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ index c78df4fc62a347455f8d7b3aa186344863915ab3..658e47bf5aff1e56462cc3f0a87eeb73
|
|||
// Paper end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index 2c4704fb85f29a02b7245d36e8e4383534c701f9..cacefccf15d68759ec26548ac1c10ee97e251ac4 100644
|
||||
index a5751fa22a6638abae155de483a769f12b125650..505ab2218c87961fd8c616a130de5b5e2e597eb4 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -1363,5 +1363,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
|
@ -6,7 +6,7 @@ Subject: [PATCH] Fix deop kicking non-whitelisted player when white list is
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 14e82938f919975c4ff8d463307d1d26db18edc3..e01e32c66afbc0719e3c47cb61e2e205876da884 100644
|
||||
index 3ce983b0e93c1f70acaa22c800273fe625b20454..331cc75f4802b7c6a2903d506e58d887ba15921d 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -2132,13 +2132,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
@ -6,7 +6,7 @@ Subject: [PATCH] Fix for large move vectors crashing server
|
|||
Check movement distance also based on current position.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 3a85c81aceae20820e5630b745eadf012bad1faf..d8174c67d31fa8b6730a80a8e2399eed5737f838 100644
|
||||
index 5566a7f225ea16eeb47c7bd3ad41515383574dfa..e4c4984285162523285b19de2e0c81b076b9c33b 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -464,9 +464,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Villager#resetOffers
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
|
||||
index 8f2d68890297521274a5c23daa272f0341427eec..629b79c6e59944994295768904c449733764cf99 100644
|
||||
index 0ded8ee2deb51bea7506a8fa2d21f5e160694d54..66b7a2c9a7dc18a98bf2c3aac863a10cbc3ae9f9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
|
||||
@@ -114,6 +114,13 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
|
||||
|
@ -23,7 +23,7 @@ index 8f2d68890297521274a5c23daa272f0341427eec..629b79c6e59944994295768904c44973
|
|||
public MerchantOffers getOffers() {
|
||||
if (this.offers == null) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java
|
||||
index 1467232779541a9e38420caabf273662f380794c..762354681315e4c74e414bf7d677b5422385161e 100644
|
||||
index 19833c1fc6ee85e031e3c6aac3b00f44730c5e02..8db2c70d3600555bcb419260cafd56409478b227 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java
|
||||
@@ -70,4 +70,11 @@ public class CraftAbstractVillager extends CraftAgeable implements AbstractVilla
|
|
@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling
|
|||
cases where a captured entry is overriden) - but for now this will do.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 221a1e66814dda35feff9fa9ca0fe54feec335f9..1577b7317b85708d39d4171321df785a8107bdb2 100644
|
||||
index 7825f6185a9a73dd395cdb6d86947d33d8512200..e22214b99472b23ffc95c011b19bdb59e2d9bb40 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -157,7 +157,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
|
@ -49,10 +49,10 @@ index 96ee68e6656a59d959ad7a7e78f5a3752d6e3dbb..d660041805bcd1bb97cf347d8b1cfe5c
|
|||
this.connection.disconnect(ichatbasecomponent);
|
||||
}));
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index cedc6b1e4255336b610ab9ba88a04d8dfde433cf..2c3ff91a7275158cdffa828e133a131b138bfa7c 100644
|
||||
index e9b5d987c1891ba269ba6beec57c1e0fb65dbb4d..9174b356fcd0a4ae33e4b9e0cb085bbdba31a20d 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -560,7 +560,7 @@ public abstract class PlayerList {
|
||||
@@ -581,7 +581,7 @@ public abstract class PlayerList {
|
||||
entityplayer.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper
|
||||
}
|
||||
|
|
@ -5,10 +5,10 @@ Subject: [PATCH] Expose world spawn angle
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 2c3ff91a7275158cdffa828e133a131b138bfa7c..3f6e0319c1580dface0a175ebb93321ae4f45a35 100644
|
||||
index 9174b356fcd0a4ae33e4b9e0cb085bbdba31a20d..9cb8d94e81fd9ce5e3d09a6bae4fb8beaae09454 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -832,7 +832,7 @@ public abstract class PlayerList {
|
||||
@@ -853,7 +853,7 @@ public abstract class PlayerList {
|
||||
if (location == null) {
|
||||
worldserver1 = this.server.getLevel(Level.OVERWORLD);
|
||||
blockposition = entityplayer1.getSpawnPoint(worldserver1);
|
|
@ -28,10 +28,10 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..33d9131e9c75ef23cd637f5d6c39a270
|
|||
|
||||
public Vec3 decode(long x, long y, long z) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 9068a9646a7e436a5a0d9ea9deb52b78a316ba4a..9d169d6504ee486127b22cd4e6429c4eb5b7ec0a 100644
|
||||
index 9257855651f7605935ecab121e239bef7218e53c..e8604fa9ef819db8a5f5fabc99022095bce7b00d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -4248,6 +4248,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -4227,6 +4227,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
return;
|
||||
}
|
||||
// Paper end - rewrite chunk system
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue