Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9188)

* Updated Upstream (Bukkit/CraftBukkit/Spigot)

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:
2fcba9b2 SPIGOT-7347: Add missing documentation and details to ShapedRecipe
c278419d PR-854: Move getHighestBlockYAt methods from World to RegionAccessor
201399fb PR-853: Add API for directly setting Display transformation matrices
ecfa559a PR-849: Add InventoryView#setTitle
653d7edb SPIGOT-519: Add TNTPrimeEvent
22fccc09 PR-846: Add method to get chunk load level
a070a52c PR-844: Add methods to convert Vector to and from JOML vectors
cc7111fe PR-276: Add accessors to Wither's invulnerability ticks
777d24e9 SPIGOT-7209: Accessors and events for player's exp cooldown
ccb2d01b SPIGOT-6308: Deprecate the location name property of map items
cd04a31b PR-780: Add PlayerSpawnChangeEvent
7d1f5b64 SPIGOT-6780: Improve documentation for World#spawnFallingBlock
5696668a SPIGOT-6885: Add test and easier to debug code for reference in yaml configuration comments
2e13cff7 PR-589: Expand the FishHook API
2c7d3da5 PR-279: Minor edits to various Javadocs

CraftBukkit Changes:
01b2e1af4 SPIGOT-7346: Disallow players from executing commands after disconnecting
7fe5ee022 PR-1186: Move getHighestBlockYAt methods from World to RegionAccessor
bcc85ef67 PR-1185: Add API for directly setting Display transformation matrices
a7cfc778f PR-1176: Add InventoryView#setTitle
563d42226 SPIGOT-519: Add TNTPrimeEvent
ccbc6abca Add test for Chunk.LoadLevel mirroring
2926e0513 PR-1171: Add method to get chunk load level
63cad7f84 PR-375: Add accessors to Wither's invulnerability ticks
bfd8b1ac8 SPIGOT-7209: Accessors and events for player's exp cooldown
f92a41c39 PR-1181: Consolidate Location conversion code
10f866759 SPIGOT-6308: Deprecate the location name property of map items
82f7b658a PR-1095: Add PlayerSpawnChangeEvent
b421af7e4 PR-808: Expand the FishHook API
598ad7b3f Increase outdated build delay

Spigot Changes:
d1bd3bd2 Rebuild patches
e4265cc8 SPIGOT-7297: Entity Tracking Range option for Display entities

* Work around javac bug

* Call PlayerSpawnChangeEvent

* Updated Upstream (Bukkit/CraftBukkit/Spigot)

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:
2fcba9b2 SPIGOT-7347: Add missing documentation and details to ShapedRecipe
c278419d PR-854: Move getHighestBlockYAt methods from World to RegionAccessor
201399fb PR-853: Add API for directly setting Display transformation matrices

CraftBukkit Changes:
01b2e1af4 SPIGOT-7346: Disallow players from executing commands after disconnecting
7fe5ee022 PR-1186: Move getHighestBlockYAt methods from World to RegionAccessor
bcc85ef67 PR-1185: Add API for directly setting Display transformation matrices

Spigot Changes:
7da74dae Rebuild patches
This commit is contained in:
Nassim Jahnke 2023-05-12 13:10:08 +02:00 committed by GitHub
parent 688409279f
commit efd47e3a68
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
556 changed files with 1633 additions and 1598 deletions

View file

@ -2215,7 +2215,7 @@ index 5725631835ea68802c75934cd85d5c1b1a78d358..b130edcdc4a91e6d1cfc59d80223edf9
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 3243cfd90e11176efc2059d864fb962497d70942..7e4c10bfdaf1e7f2dfc03d220e5c731927b0b5f9 100644
index e8f748a7af40637b6aa5e0b032de909316e1161f..8105a30251c45b4ab111c97d34029c66180922fd 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -161,6 +161,7 @@ import net.minecraft.world.scores.Score;
@ -2226,7 +2226,7 @@ index 3243cfd90e11176efc2059d864fb962497d70942..7e4c10bfdaf1e7f2dfc03d220e5c7319
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.WeatherType;
@@ -241,6 +242,7 @@ public class ServerPlayer extends Player {
@@ -243,6 +244,7 @@ public class ServerPlayer extends Player {
// CraftBukkit start
public String displayName;
@ -2234,7 +2234,7 @@ index 3243cfd90e11176efc2059d864fb962497d70942..7e4c10bfdaf1e7f2dfc03d220e5c7319
public Component listName;
public org.bukkit.Location compassTarget;
public int newExp = 0;
@@ -324,6 +326,7 @@ public class ServerPlayer extends Player {
@@ -326,6 +328,7 @@ public class ServerPlayer extends Player {
// CraftBukkit start
this.displayName = this.getScoreboardName();
@ -2242,7 +2242,7 @@ index 3243cfd90e11176efc2059d864fb962497d70942..7e4c10bfdaf1e7f2dfc03d220e5c7319
this.bukkitPickUpLoot = true;
this.maxHealthCache = this.getMaxHealth();
}
@@ -817,22 +820,17 @@ public class ServerPlayer extends Player {
@@ -819,22 +822,17 @@ public class ServerPlayer extends Player {
String deathmessage = defaultMessage.getString();
this.keepLevel = keepInventory; // SPIGOT-2222: pre-set keepLevel
@ -2269,7 +2269,7 @@ index 3243cfd90e11176efc2059d864fb962497d70942..7e4c10bfdaf1e7f2dfc03d220e5c7319
this.connection.send(new ClientboundPlayerCombatKillPacket(this.getCombatTracker(), ichatbasecomponent), PacketSendListener.exceptionallySend(() -> {
boolean flag1 = true;
@@ -1769,13 +1767,13 @@ public class ServerPlayer extends Player {
@@ -1771,13 +1769,13 @@ public class ServerPlayer extends Player {
public void sendSystemMessage(Component message, boolean overlay) {
if (this.acceptsSystemMessages(overlay)) {
@ -2285,7 +2285,7 @@ index 3243cfd90e11176efc2059d864fb962497d70942..7e4c10bfdaf1e7f2dfc03d220e5c7319
} else {
return null;
}
@@ -1784,8 +1782,13 @@ public class ServerPlayer extends Player {
@@ -1786,8 +1784,13 @@ public class ServerPlayer extends Player {
}
public void sendChatMessage(OutgoingChatMessage message, boolean filterMaskEnabled, ChatType.Bound params) {
@ -2300,7 +2300,7 @@ index 3243cfd90e11176efc2059d864fb962497d70942..7e4c10bfdaf1e7f2dfc03d220e5c7319
}
}
@@ -1803,6 +1806,7 @@ public class ServerPlayer extends Player {
@@ -1805,6 +1808,7 @@ public class ServerPlayer extends Player {
}
public String locale = "en_us"; // CraftBukkit - add, lowercase
@ -2308,7 +2308,7 @@ index 3243cfd90e11176efc2059d864fb962497d70942..7e4c10bfdaf1e7f2dfc03d220e5c7319
public void updateOptions(ServerboundClientInformationPacket packet) {
// CraftBukkit start
if (getMainArm() != packet.mainHand()) {
@@ -1814,6 +1818,10 @@ public class ServerPlayer extends Player {
@@ -1816,6 +1820,10 @@ public class ServerPlayer extends Player {
this.server.server.getPluginManager().callEvent(event);
}
this.locale = packet.language;
@ -2320,7 +2320,7 @@ index 3243cfd90e11176efc2059d864fb962497d70942..7e4c10bfdaf1e7f2dfc03d220e5c7319
// CraftBukkit end
this.chatVisibility = packet.chatVisibility();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f8c2660b4 100644
index d4065032c7d9f37c1f64f61d67f7204139e3b493..531c8e74e7aa81a483650ec891a994ff7ff70a5c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -187,6 +187,8 @@ import net.minecraft.world.phys.shapes.VoxelShape;
@ -2332,7 +2332,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
import com.mojang.datafixers.util.Pair;
import java.util.Arrays;
import java.util.concurrent.ExecutionException;
@@ -251,7 +253,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -252,7 +254,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private static final int NO_BLOCK_UPDATES_TO_ACK = -1;
private static final int TRACKED_MESSAGE_DISCONNECT_THRESHOLD = 4096;
private static final Component CHAT_VALIDATION_FAILED = Component.translatable("multiplayer.disconnect.chat_validation_failed");
@ -2341,7 +2341,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
private final MinecraftServer server;
public ServerPlayer player;
private int tickCount;
@@ -439,14 +441,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -440,14 +442,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return this.server.isSingleplayerOwner(this.player.getGameProfile());
}
@ -2365,7 +2365,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
// CraftBukkit start - fire PlayerKickEvent
if (this.processedDisconnect) {
return;
@@ -455,7 +460,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -456,7 +461,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
Waitable waitable = new Waitable() {
@Override
protected Object evaluate() {
@ -2374,7 +2374,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
return null;
}
};
@@ -472,9 +477,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -473,9 +478,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return;
}
@ -2386,7 +2386,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
if (this.cserver.getServer().isRunning()) {
this.cserver.getPluginManager().callEvent(event);
@@ -486,7 +491,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -487,7 +492,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
this.player.kickLeaveMessage = event.getLeaveMessage(); // CraftBukkit - SPIGOT-3034: Forward leave message to PlayerQuitEvent
// Send the possibly modified leave message
@ -2395,7 +2395,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
// CraftBukkit end
this.connection.send(new ClientboundDisconnectPacket(ichatbasecomponent), PacketSendListener.thenRun(() -> {
@@ -1783,9 +1788,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1784,9 +1789,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
*/
this.player.disconnect();
@ -2410,7 +2410,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
}
// CraftBukkit end
this.player.getTextFilter().leave();
@@ -1882,11 +1889,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1883,11 +1890,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
CompletableFuture<FilteredText> completablefuture = this.filterTextPacket(playerchatmessage.signedContent());
@ -2424,7 +2424,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
this.broadcastChatMessage(playerchatmessage1);
}, this.server.chatExecutor); // CraftBukkit - async chat
@@ -1986,7 +1993,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1993,7 +2000,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(acknowledgment);
if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
@ -2433,7 +2433,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
return Optional.empty();
} else {
this.player.resetLastActionTime();
@@ -2044,7 +2051,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2051,7 +2058,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.handleCommand(s);
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) {
// Do nothing, this is coming from a plugin
@ -2447,7 +2447,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
Player player = this.getCraftPlayer();
AsyncPlayerChatEvent event = new AsyncPlayerChatEvent(async, player, s, new LazyPlayerSet(this.server));
String originalFormat = event.getFormat(), originalMessage = event.getMessage();
@@ -2174,7 +2186,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2181,7 +2193,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
});
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) { // Re-add "Command Only" flag check
@ -2456,7 +2456,7 @@ index 29cbad55217400f5ba830b876422dc1823c33a71..9116de00912e07dc049735a183719f6f
} else {
this.chat(s, message, true);
}
@@ -2996,30 +3008,30 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3003,30 +3015,30 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return;
}
@ -2536,7 +2536,7 @@ index 1cb95db25a20d38faacd99a5805630c1598e9db3..d99b2235038eb1aba8cda474c4aa51e2
@Override
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7fc189842 100644
index 9909208363443a216cf689197f103d9e79119bbf..857ce5715e4ea68df2964a3f6595cdb8526cd32a 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -8,6 +8,7 @@ import com.mojang.logging.LogUtils;
@ -2547,7 +2547,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
import java.io.File;
import java.net.SocketAddress;
import java.nio.file.Path;
@@ -274,7 +275,7 @@ public abstract class PlayerList {
@@ -276,7 +277,7 @@ public abstract class PlayerList {
}
// CraftBukkit start
ichatmutablecomponent.withStyle(ChatFormatting.YELLOW);
@ -2556,7 +2556,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
playerconnection.teleport(player.getX(), player.getY(), player.getZ(), player.getYRot(), player.getXRot());
ServerStatus serverping = this.server.getStatus();
@@ -295,19 +296,18 @@ public abstract class PlayerList {
@@ -297,19 +298,18 @@ public abstract class PlayerList {
// Ensure that player inventory is populated with its viewer
player.containerMenu.transferTo(player.containerMenu, bukkitPlayer);
@ -2581,7 +2581,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
}
// CraftBukkit end
@@ -504,7 +504,7 @@ public abstract class PlayerList {
@@ -506,7 +506,7 @@ public abstract class PlayerList {
}
@ -2590,7 +2590,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
ServerLevel worldserver = entityplayer.getLevel();
entityplayer.awardStat(Stats.LEAVE_GAME);
@@ -515,7 +515,7 @@ public abstract class PlayerList {
@@ -517,7 +517,7 @@ public abstract class PlayerList {
entityplayer.closeContainer();
}
@ -2599,7 +2599,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
this.cserver.getPluginManager().callEvent(playerQuitEvent);
entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
@@ -568,7 +568,7 @@ public abstract class PlayerList {
@@ -570,7 +570,7 @@ public abstract class PlayerList {
this.cserver.getScoreboardManager().removePlayer(entityplayer.getBukkitEntity());
// CraftBukkit end
@ -2608,7 +2608,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
}
// CraftBukkit start - Whole method, SocketAddress to LoginListener, added hostname to signature, return EntityPlayer
@@ -614,10 +614,10 @@ public abstract class PlayerList {
@@ -616,10 +616,10 @@ public abstract class PlayerList {
}
// return chatmessage;
@ -2621,7 +2621,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
} else if (this.getIpBans().isBanned(socketaddress) && !this.getIpBans().get(socketaddress).hasExpired()) {
IpBanListEntry ipbanentry = this.ipBans.get(socketaddress);
@@ -627,17 +627,17 @@ public abstract class PlayerList {
@@ -629,17 +629,17 @@ public abstract class PlayerList {
}
// return chatmessage;
@ -2642,7 +2642,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
return null;
}
return entity;
@@ -1148,7 +1148,7 @@ public abstract class PlayerList {
@@ -1150,7 +1150,7 @@ public abstract class PlayerList {
public void removeAll() {
// CraftBukkit start - disconnect safely
for (ServerPlayer player : this.players) {
@ -2651,7 +2651,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
}
// CraftBukkit end
@@ -1189,24 +1189,43 @@ public abstract class PlayerList {
@@ -1191,24 +1191,43 @@ public abstract class PlayerList {
}
public void broadcastChatMessage(PlayerChatMessage message, ServerPlayer sender, ChatType.Bound params) {
@ -2698,7 +2698,7 @@ index 7a8b26068a244be553d55f0018a9edebe00b6dff..d00a2da03f8911f0e07ca22c8c569be7
}
if (flag1 && sender != null) {
@@ -1215,7 +1234,7 @@ public abstract class PlayerList {
@@ -1217,7 +1236,7 @@ public abstract class PlayerList {
}
@ -2817,10 +2817,10 @@ index 0e04e7467ee27ea9e3ef60fe598cc21ab39f4c68..0f5e92a2256fe22b55d2428f98db403a
}
collection = icons;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 059ba63319f6ca04750a7d6b095e6179cae68b4f..cb2dc6db887856c5f60d127f5999a0785702f2f4 100644
index 6581c2c498a73c1fb60bb922114e24a43d355748..44f10adc1957436d9067657b95f04a12b9b7a867 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -600,8 +600,10 @@ public final class CraftServer implements Server {
@@ -601,8 +601,10 @@ public final class CraftServer implements Server {
}
@Override
@ -2831,7 +2831,7 @@ index 059ba63319f6ca04750a7d6b095e6179cae68b4f..cb2dc6db887856c5f60d127f5999a078
}
@Override
@@ -1439,7 +1441,15 @@ public final class CraftServer implements Server {
@@ -1440,7 +1442,15 @@ public final class CraftServer implements Server {
return this.configuration.getInt("settings.spawn-radius", -1);
}
@ -2847,7 +2847,7 @@ index 059ba63319f6ca04750a7d6b095e6179cae68b4f..cb2dc6db887856c5f60d127f5999a078
public String getShutdownMessage() {
return this.configuration.getString("settings.shutdown-message");
}
@@ -1607,7 +1617,20 @@ public final class CraftServer implements Server {
@@ -1608,7 +1618,20 @@ public final class CraftServer implements Server {
}
@Override
@ -2868,7 +2868,7 @@ index 059ba63319f6ca04750a7d6b095e6179cae68b4f..cb2dc6db887856c5f60d127f5999a078
Set<CommandSender> recipients = new HashSet<>();
for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
if (permissible instanceof CommandSender && permissible.hasPermission(permission)) {
@@ -1615,14 +1638,14 @@ public final class CraftServer implements Server {
@@ -1616,14 +1639,14 @@ public final class CraftServer implements Server {
}
}
@ -2885,7 +2885,7 @@ index 059ba63319f6ca04750a7d6b095e6179cae68b4f..cb2dc6db887856c5f60d127f5999a078
for (CommandSender recipient : recipients) {
recipient.sendMessage(message);
@@ -1873,6 +1896,14 @@ public final class CraftServer implements Server {
@@ -1874,6 +1897,14 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, type);
}
@ -2900,7 +2900,7 @@ index 059ba63319f6ca04750a7d6b095e6179cae68b4f..cb2dc6db887856c5f60d127f5999a078
@Override
public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) {
Validate.isTrue(type.isCreatable(), "Cannot open an inventory of type ", type);
@@ -1885,13 +1916,28 @@ public final class CraftServer implements Server {
@@ -1886,13 +1917,28 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, size);
}
@ -2929,7 +2929,7 @@ index 059ba63319f6ca04750a7d6b095e6179cae68b4f..cb2dc6db887856c5f60d127f5999a078
public Merchant createMerchant(String title) {
return new CraftMerchantCustom(title == null ? InventoryType.MERCHANT.getDefaultTitle() : title);
}
@@ -1956,6 +2002,12 @@ public final class CraftServer implements Server {
@@ -1957,6 +2003,12 @@ public final class CraftServer implements Server {
return Thread.currentThread().equals(console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog)
}
@ -2942,7 +2942,7 @@ index 059ba63319f6ca04750a7d6b095e6179cae68b4f..cb2dc6db887856c5f60d127f5999a078
@Override
public String getMotd() {
return this.console.getMotd();
@@ -2382,4 +2434,15 @@ public final class CraftServer implements Server {
@@ -2383,4 +2435,15 @@ public final class CraftServer implements Server {
return this.spigot;
}
// Spigot end
@ -2959,10 +2959,10 @@ index 059ba63319f6ca04750a7d6b095e6179cae68b4f..cb2dc6db887856c5f60d127f5999a078
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 9a033c136062c43e6db8107fdff059a6807aed02..4186943ba9e94758d579477e8fadaf8e05ef93f3 100644
index 981bfb92cd4d167620631facc51da564633b3adc..2f83e56b59407dc388240676ae5cfd73de2a9066 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -150,6 +150,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -151,6 +151,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
private final BlockMetadataStore blockMetadata = new BlockMetadataStore(this);
private final Object2IntOpenHashMap<SpawnCategory> spawnCategoryLimit = new Object2IntOpenHashMap<>();
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftWorld.DATA_TYPE_REGISTRY);
@ -2970,7 +2970,7 @@ index 9a033c136062c43e6db8107fdff059a6807aed02..4186943ba9e94758d579477e8fadaf8e
private static final Random rand = new Random();
@@ -1997,5 +1998,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1983,5 +1984,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return ret;
}
@ -2990,7 +2990,7 @@ index 9a033c136062c43e6db8107fdff059a6807aed02..4186943ba9e94758d579477e8fadaf8e
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index fe726771b76cabcb58bf624969490d9595965082..e16a458a708080ff5321362cba440fa465dba7d6 100644
index 6f4efb5553da256ee3a6dc422167d4cdbb208a5d..4e7208a891da461a10920482e4e4427ace23fb45 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -20,6 +20,12 @@ public class Main {
@ -3357,7 +3357,7 @@ index f6c614bb1184f9c79121f64a2a030bf3f094b671..e8334e2264510f5101e80b4f130e7ae1
public net.minecraft.world.item.enchantment.Enchantment getHandle() {
return this.target;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index f4cdda9fabb3a13f7cc8b6056815bdbae704db9d..17c914088b467007aada17e3b2238a9c76fb532b 100644
index cf9bbc1334a151dfd96be91e6f2cf3cb9afd9384..2849f70314f1cd8aeac38c8ab37d293732d4504c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -202,6 +202,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@ -3420,10 +3420,10 @@ index f4cdda9fabb3a13f7cc8b6056815bdbae704db9d..17c914088b467007aada17e3b2238a9c
@Override
public boolean isPermissionSet(String name) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
index aea8bdbfe0c16c664d787e8abcd189f1019fccce..e38c32708ac7969dbc342989d2a5a767e26e4c3d 100644
index 1ea310624abbc949eaa16c1e2b85de6c31dd3d43..a26743682edcd9329d70ae1ff38310c8379f94e1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -321,9 +321,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -322,9 +322,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
container = CraftEventFactory.callInventoryOpenEvent(player, container);
if (container == null) return;
@ -3438,7 +3438,7 @@ index aea8bdbfe0c16c664d787e8abcd189f1019fccce..e38c32708ac7969dbc342989d2a5a767
player.containerMenu = container;
player.initMenu(container);
}
@@ -392,8 +395,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -393,8 +396,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// Now open the window
MenuType<?> windowType = CraftContainer.getNotchInventoryType(inventory.getTopInventory());
@ -3472,10 +3472,10 @@ index 446fdca49a5a6999626a7ee3a1d5c168b15a09dd..f9863e138994f6c7a7975a852f106faa
public boolean isOp() {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index f00a6d38609d38ea51153997ba526963d734c372..8fcd46bef75b3d48356445575c4a6c1b93b61072 100644
index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..f1208e752cdab08228d790a5195114a62d16d399 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -279,14 +279,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -283,14 +283,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getDisplayName() {
@ -3515,7 +3515,7 @@ index f00a6d38609d38ea51153997ba526963d734c372..8fcd46bef75b3d48356445575c4a6c1b
@Override
public String getPlayerListName() {
return this.getHandle().listName == null ? getName() : CraftChatMessage.fromComponent(this.getHandle().listName);
@@ -305,42 +330,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -309,42 +334,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
@ -3567,7 +3567,7 @@ index f00a6d38609d38ea51153997ba526963d734c372..8fcd46bef75b3d48356445575c4a6c1b
this.getHandle().connection.send(packet);
}
@@ -372,6 +397,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -376,6 +401,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.disconnect(message == null ? "" : message);
}
@ -3591,7 +3591,7 @@ index f00a6d38609d38ea51153997ba526963d734c372..8fcd46bef75b3d48356445575c4a6c1b
@Override
public void setCompassTarget(Location loc) {
if (this.getHandle().connection == null) return;
@@ -700,6 +742,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -704,6 +746,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
@ -3612,40 +3612,33 @@ index f00a6d38609d38ea51153997ba526963d734c372..8fcd46bef75b3d48356445575c4a6c1b
+ Component[] components = CraftSign.sanitizeLines(lines);
+ this.sendSignChange0(components, loc, dyeColor, hasGlowingText);
+ }
+
+ private void sendSignChange0(Component[] components, Location loc, DyeColor dyeColor, boolean hasGlowingText) {
+ SignBlockEntity sign = new SignBlockEntity(new BlockPos(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), Blocks.OAK_SIGN.defaultBlockState());
+ sign.setColor(net.minecraft.world.item.DyeColor.byId(dyeColor.getWoolData()));
+ sign.setHasGlowingText(hasGlowingText);
+ for (int i = 0; i < components.length; i++) {
+ sign.setMessage(i, components[i]);
+ }
+
+ getHandle().connection.send(sign.getUpdatePacket());
+ }
+ // Paper end
@Override
public void sendSignChange(Location loc, String[] lines) {
this.sendSignChange(loc, lines, DyeColor.BLACK);
@@ -727,14 +798,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -731,6 +791,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
Component[] components = CraftSign.sanitizeLines(lines);
- SignBlockEntity sign = new SignBlockEntity(new BlockPos(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), Blocks.OAK_SIGN.defaultBlockState());
+ /*SignBlockEntity sign = new SignBlockEntity(new BlockPos(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), Blocks.OAK_SIGN.defaultBlockState());
+ // Paper start - adventure
+ this.sendSignChange0(components, loc, dyeColor, hasGlowingText);
+ }
+
+ private void sendSignChange0(Component[] components, Location loc, DyeColor dyeColor, boolean hasGlowingText) {
SignBlockEntity sign = new SignBlockEntity(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState());
sign.setColor(net.minecraft.world.item.DyeColor.byId(dyeColor.getWoolData()));
sign.setHasGlowingText(hasGlowingText);
for (int i = 0; i < components.length; i++) {
@@ -738,7 +803,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
sign.setMessage(i, components[i]);
}
- this.getHandle().connection.send(sign.getUpdatePacket());
+ this.getHandle().connection.send(sign.getUpdatePacket());*/ // Paper
+ this.sendSignChange0(components, loc, dyeColor, hasGlowingText); // Paper
+ getHandle().connection.send(sign.getUpdatePacket());
+ // Paper end
}
@Override
@@ -1617,7 +1689,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1631,7 +1697,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url) {
@ -3654,7 +3647,7 @@ index f00a6d38609d38ea51153997ba526963d734c372..8fcd46bef75b3d48356445575c4a6c1b
}
@Override
@@ -1632,7 +1704,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1646,7 +1712,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url, byte[] hash, boolean force) {
@ -3663,7 +3656,7 @@ index f00a6d38609d38ea51153997ba526963d734c372..8fcd46bef75b3d48356445575c4a6c1b
}
@Override
@@ -1648,6 +1720,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1662,6 +1728,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
@ -3685,7 +3678,7 @@ index f00a6d38609d38ea51153997ba526963d734c372..8fcd46bef75b3d48356445575c4a6c1b
public void addChannel(String channel) {
Preconditions.checkState(this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel);
channel = StandardMessenger.validateAndCorrectChannel(channel);
@@ -2052,6 +2139,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2066,6 +2147,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (this.getHandle().clientViewDistance == null) ? Bukkit.getViewDistance() : this.getHandle().clientViewDistance;
}
@ -3698,7 +3691,7 @@ index f00a6d38609d38ea51153997ba526963d734c372..8fcd46bef75b3d48356445575c4a6c1b
@Override
public int getPing() {
return this.getHandle().latency;
@@ -2097,6 +2190,254 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2111,6 +2198,254 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().allowsListing();
}
@ -3976,10 +3969,10 @@ index 2becf197a5c2d94f23f72a9b20cb2cd05a0807df..99096c1e3f045e4a99335faedfb8e77e
@Override
public int getLineWidth() {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index c1a3f7b281ecc1551dd51faac046e02064a72afe..9bf4b8865237fd2555ed0e4b2e619afd7dc6845e 100644
index f81248294a4ccc4a9c88b071654f8a62713e397c..f1dc8eaa571f54e5885ceada9929d965992d7760 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -836,9 +836,9 @@ public class CraftEventFactory {
@@ -838,9 +838,9 @@ public class CraftEventFactory {
return event;
}
@ -3991,7 +3984,7 @@ index c1a3f7b281ecc1551dd51faac046e02064a72afe..9bf4b8865237fd2555ed0e4b2e619afd
event.setKeepInventory(keepInventory);
event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel
org.bukkit.World world = entity.getWorld();
@@ -863,7 +863,7 @@ public class CraftEventFactory {
@@ -865,7 +865,7 @@ public class CraftEventFactory {
* Server methods
*/
public static ServerListPingEvent callServerListPingEvent(Server craftServer, InetAddress address, String motd, int numPlayers, int maxPlayers) {
@ -4001,10 +3994,10 @@ index c1a3f7b281ecc1551dd51faac046e02064a72afe..9bf4b8865237fd2555ed0e4b2e619afd
return event;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
index a94bfca34ba87976a51c5572250059d393041f38..7d0d2cd4d34d6652eb45aa13442e1081a3a6bd56 100644
index a2b1e3a8747cc26c617f06f9000b7b40b5b9c6c7..fe54d5cb2414c7b6f42d192c74f810e7b5e43f0e 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
@@ -68,6 +68,13 @@ public class CraftContainer extends AbstractContainerMenu {
@@ -72,6 +72,13 @@ public class CraftContainer extends AbstractContainerMenu {
return inventory.getType();
}
@ -4017,7 +4010,7 @@ index a94bfca34ba87976a51c5572250059d393041f38..7d0d2cd4d34d6652eb45aa13442e1081
+
@Override
public String getTitle() {
return inventory instanceof CraftInventoryCustom ? ((CraftInventoryCustom.MinecraftInventory) ((CraftInventory) inventory).getInventory()).getTitle() : inventory.getType().getDefaultTitle();
return title;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
index 6486a76466691f958349a4706d7c9caff9cb8f64..f3ebaefd949ae73afad3dcb69b8d9c632cc782f7 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
@ -4105,10 +4098,10 @@ index 6486a76466691f958349a4706d7c9caff9cb8f64..f3ebaefd949ae73afad3dcb69b8d9c63
return this.title;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java
index 6a64fbb8b4937f39d5fdc2e2cbec26c83c74c486..7d6b5fdb00a5c1614849735634262a36a4efbd66 100644
index 4dd9a80af9901287ab6740b072f2b89678c3d0cb..b2586684295b295a3196a2a9cf724cec975b5a40 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java
@@ -64,6 +64,13 @@ public class CraftInventoryView extends InventoryView {
@@ -73,6 +73,13 @@ public class CraftInventoryView extends InventoryView {
return CraftItemStack.asCraftMirror(this.container.getSlot(slot).getItem());
}
@ -4121,7 +4114,7 @@ index 6a64fbb8b4937f39d5fdc2e2cbec26c83c74c486..7d6b5fdb00a5c1614849735634262a36
+
@Override
public String getTitle() {
return CraftChatMessage.fromComponent(this.container.getTitle());
return this.title;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
index 309a0a7e26651a7a675326382df838b423830f33..eeb01a1b54e450f95b33864b030d2183d29309da 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java