mirror of
https://hub.spigotmc.org/stash/scm/spigot/spigot.git
synced 2025-09-18 21:33:01 +00:00

Instead of doing an unsafe cast, actually check if the HumanEntity supplied is a CraftHumanEntity. Plugins adding custom HumanEntities to the viewers of an inventory will end up crashing the server when the Chunk containing the block which contains the inventory unloads, since the original cast is unchecked here. I'm not sure if there was a reason for casting to CraftHumanEntity, so I kept it, but HumanEntity, as I'm sure you know, has a closeInventory() method you could call instead of getting the CraftBukkit handle. There's probably a reason behind it, though. I tried to follow the formatting conventions, but I may have missed something. Tested the easily reproducible issue using this patch compiled, and it works fine; no crashes in sight.
30 lines
1.3 KiB
Diff
30 lines
1.3 KiB
Diff
From 161cdb522267db951b26782afcb45782d21cf0b5 Mon Sep 17 00:00:00 2001
|
|
From: Thinkofdeath <thethinkofdeath@gmail.com>
|
|
Date: Mon, 2 Dec 2013 23:42:09 +0000
|
|
Subject: [PATCH] Fix some chunks not being sent to the client
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
|
index ab0af12..b1213f0 100644
|
|
--- a/src/main/java/net/minecraft/server/Chunk.java
|
|
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
|
@@ -961,7 +961,15 @@ public class Chunk {
|
|
}
|
|
|
|
public boolean isReady() {
|
|
- return this.m && this.done && this.lit;
|
|
+ // Spigot Start
|
|
+ /*
|
|
+ * As of 1.7, Mojang added a check to make sure that only chunks which have been lit are sent to the client.
|
|
+ * Unfortunately this interferes with our modified chunk ticking algorithm, which will only tick chunks distant from the player on a very infrequent basis.
|
|
+ * We cannot unfortunately do this lighting stage during chunk gen as it appears to put a lot more noticeable load on the server, than when it is done at play time.
|
|
+ * For now at least we will simply send all chunks, in accordance with pre 1.7 behaviour.
|
|
+ */
|
|
+ return true;
|
|
+ // Spigot End
|
|
}
|
|
|
|
public ChunkCoordIntPair l() {
|
|
--
|
|
1.9.1
|
|
|