9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-23 17:09:26 +00:00

Fix fakeplayer render (#132)

This commit is contained in:
violetc
2023-09-12 20:12:34 +08:00
parent ef4244ec98
commit 35492f42c7
17 changed files with 142 additions and 121 deletions

View File

@@ -58,7 +58,7 @@ index acc49f66bf34e2507d0ee6fec0a56b11bfc68f46..7fc87841fd72fc9b5bca4fbdffd378c7
AdvancementProgress advancementprogress = this.getOrStartProgress(advancement);
boolean flag1 = advancementprogress.isDone();
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 65d947df910d60f478e7a449eb161e5105e2c0c9..0034c4bcd8301788fd86e279c6632ad0a95dbd37 100644
index 65d947df910d60f478e7a449eb161e5105e2c0c9..56be0c66374b6cb200d43212582fd1280442a6a3 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1584,6 +1584,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -68,7 +68,7 @@ index 65d947df910d60f478e7a449eb161e5105e2c0c9..0034c4bcd8301788fd86e279c6632ad0
+ // Leaves start - render bot
+ if (entity instanceof top.leavesmc.leaves.bot.ServerBot bot) {
+ if (top.leavesmc.leaves.LeavesConfig.alwaysSendFakeplayerData) {
+ bot.render(player, false);
+ bot.sendFakeData(player.connection, false);
+ }
+ }
+ // Leaves end - render bot
@@ -76,10 +76,18 @@ index 65d947df910d60f478e7a449eb161e5105e2c0c9..0034c4bcd8301788fd86e279c6632ad0
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index b382da838acc04a1c5d89064b4fa43bcdd38ae71..0cc848a600fa0f8af4f5f991834dd1d044c1c897 100644
index b382da838acc04a1c5d89064b4fa43bcdd38ae71..c63142cea44d26c6742f39b090eeba8f2052662c 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -185,6 +185,7 @@ import org.bukkit.event.player.PlayerTeleportEvent;
@@ -100,7 +100,6 @@ import net.minecraft.util.Mth;
import net.minecraft.util.RandomSource;
import net.minecraft.util.Unit;
import net.minecraft.world.damagesource.DamageSource;
-import net.minecraft.world.damagesource.DamageSources;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
@@ -185,6 +184,7 @@ import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.event.player.PlayerToggleSneakEvent;
import org.bukkit.inventory.MainHand;
@@ -87,7 +95,7 @@ index b382da838acc04a1c5d89064b4fa43bcdd38ae71..0cc848a600fa0f8af4f5f991834dd1d0
// CraftBukkit end
public class ServerPlayer extends Player {
@@ -719,15 +720,19 @@ public class ServerPlayer extends Player {
@@ -719,15 +719,19 @@ public class ServerPlayer extends Player {
}
// Paper start - Configurable container update tick rate
@@ -115,7 +123,7 @@ index b382da838acc04a1c5d89064b4fa43bcdd38ae71..0cc848a600fa0f8af4f5f991834dd1d0
Entity entity = this.getCamera();
@@ -743,7 +748,7 @@ public class ServerPlayer extends Player {
@@ -743,7 +747,7 @@ public class ServerPlayer extends Player {
}
}
@@ -124,7 +132,7 @@ index b382da838acc04a1c5d89064b4fa43bcdd38ae71..0cc848a600fa0f8af4f5f991834dd1d0
if (this.levitationStartPos != null) {
CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime);
}
@@ -936,7 +941,7 @@ public class ServerPlayer extends Player {
@@ -936,7 +940,7 @@ public class ServerPlayer extends Player {
java.util.List<org.bukkit.inventory.ItemStack> loot = new java.util.ArrayList<org.bukkit.inventory.ItemStack>(this.getInventory().getContainerSize());
boolean keepInventory = this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) || this.isSpectator();
@@ -133,14 +141,14 @@ index b382da838acc04a1c5d89064b4fa43bcdd38ae71..0cc848a600fa0f8af4f5f991834dd1d0
for (ItemStack item : this.getInventory().getContents()) {
if (!item.isEmpty() && !EnchantmentHelper.hasVanishingCurse(item)) {
loot.add(CraftItemStack.asCraftMirror(item));
@@ -1265,6 +1270,13 @@ public class ServerPlayer extends Player {
@@ -1265,6 +1269,13 @@ public class ServerPlayer extends Player {
this.lastSentHealth = -1.0F;
this.lastSentFood = -1;
+ // Leaves start - bot support
+ if (top.leavesmc.leaves.LeavesConfig.fakeplayerSupport) {
+ ServerBot.getBots().forEach(bot1 ->
+ bot1.render(this, true)); // Leaves - render bot
+ bot1.sendFakeDataIfNeed(this, true)); // Leaves - render bot
+ }
+ // Leaves end - bot support
+
@@ -148,18 +156,10 @@ index b382da838acc04a1c5d89064b4fa43bcdd38ae71..0cc848a600fa0f8af4f5f991834dd1d0
PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld());
this.level().getCraftServer().getPluginManager().callEvent(changeEvent);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index f097ec5b4e3ad6b1a7c464a8cff4f8b2568fcf4f..c64c53075efdefc5bb845f954de87c3f3f9d3fcf 100644
index f097ec5b4e3ad6b1a7c464a8cff4f8b2568fcf4f..175c117bb5acca0b0d43b5ce090e51e20a2ca23b 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -81,6 +81,7 @@ import net.minecraft.server.ServerScoreboard;
import net.minecraft.tags.BlockTags;
import net.minecraft.tags.TagNetworkSerialization;
import net.minecraft.util.Mth;
+import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
@@ -101,6 +102,7 @@ import net.minecraft.world.scores.Objective;
@@ -101,6 +101,7 @@ import net.minecraft.world.scores.Objective;
import net.minecraft.world.scores.PlayerTeam;
import net.minecraft.world.scores.Scoreboard; // Paper
import net.minecraft.world.scores.Team;
@@ -167,7 +167,23 @@ index f097ec5b4e3ad6b1a7c464a8cff4f8b2568fcf4f..c64c53075efdefc5bb845f954de87c3f
import org.slf4j.Logger;
// CraftBukkit start
@@ -342,6 +344,19 @@ public abstract class PlayerList {
@@ -118,7 +119,6 @@ import org.bukkit.Location;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.entity.CraftPlayer;
-import org.bukkit.craftbukkit.util.CraftChatMessage;
import org.bukkit.craftbukkit.util.CraftLocation;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerChangedWorldEvent;
@@ -127,7 +127,6 @@ import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason;
-import org.bukkit.event.player.PlayerSpawnChangeEvent;
// CraftBukkit end
public abstract class PlayerList {
@@ -342,6 +341,21 @@ public abstract class PlayerList {
return;
}
@@ -179,29 +195,31 @@ index f097ec5b4e3ad6b1a7c464a8cff4f8b2568fcf4f..c64c53075efdefc5bb845f954de87c3f
+ this.playersByName.put(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT), player);
+ this.playersByUUID.put(player.getUUID(), player);
+ }
+ ServerBot.getBots().forEach(bot1 ->
+ bot1.render(playerconnection, true,player.getBukkitEntity().getWorld() == bot1.getBukkitEntity().getWorld())); // Leaves - render bot
+ ServerBot.getBots().forEach(bot1 -> {
+ bot1.sendPlayerInfo(player);
+ bot1.sendFakeDataIfNeed(player, true);
+ }); // Leaves - render bot
+ }
+ // Leaves end - bot support
+
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure
@@ -985,6 +1000,13 @@ public abstract class PlayerList {
@@ -985,6 +999,13 @@ public abstract class PlayerList {
}
// Paper end
+ // Leaves start - bot support
+ if (top.leavesmc.leaves.LeavesConfig.fakeplayerSupport) {
+ top.leavesmc.leaves.bot.ServerBot.getBots().forEach(bot1 ->
+ bot1.render(entityplayer1, true)); // Leaves - render bot
+ bot1.sendFakeDataIfNeed(entityplayer1, true)); // Leaves - render bot
+ }
+ // Leaves end - bot support
+
// CraftBukkit end
return entityplayer1;
}
@@ -1095,11 +1117,16 @@ public abstract class PlayerList {
@@ -1095,11 +1116,16 @@ public abstract class PlayerList {
}
public String[] getPlayerNamesArray() {
@@ -219,7 +237,7 @@ index f097ec5b4e3ad6b1a7c464a8cff4f8b2568fcf4f..c64c53075efdefc5bb845f954de87c3f
return astring;
}
@@ -1578,4 +1605,16 @@ public abstract class PlayerList {
@@ -1578,4 +1604,16 @@ public abstract class PlayerList {
public boolean isAllowCheatsForAllPlayers() {
return this.allowCheatsForAllPlayers;
}
@@ -1148,10 +1166,10 @@ index 0000000000000000000000000000000000000000..daaece30b2a3983f1cc9ee9a851e8f37
+}
diff --git a/src/main/java/top/leavesmc/leaves/bot/ServerBot.java b/src/main/java/top/leavesmc/leaves/bot/ServerBot.java
new file mode 100644
index 0000000000000000000000000000000000000000..4365351efbe01b46b5df29a34bef08abfa79cd9e
index 0000000000000000000000000000000000000000..8bcffe8d307c9664133a37677900312c2a19c275
--- /dev/null
+++ b/src/main/java/top/leavesmc/leaves/bot/ServerBot.java
@@ -0,0 +1,711 @@
@@ -0,0 +1,712 @@
+package top.leavesmc.leaves.bot;
+
+import com.google.common.collect.Lists;
@@ -1178,6 +1196,7 @@ index 0000000000000000000000000000000000000000..4365351efbe01b46b5df29a34bef08ab
+import net.minecraft.server.level.ServerPlayer;
+import net.minecraft.server.network.ServerGamePacketListenerImpl;
+import net.minecraft.server.network.ServerPlayerConnection;
+import net.minecraft.server.players.PlayerList;
+import net.minecraft.stats.ServerStatsCounter;
+import net.minecraft.world.InteractionHand;
+import net.minecraft.world.InteractionResult;
@@ -1238,6 +1257,7 @@ index 0000000000000000000000000000000000000000..4365351efbe01b46b5df29a34bef08ab
+
+ private final Map<String, BotAction> actions;
+ private final boolean removeOnDeath;
+ private final int tracingRange;
+
+ private Vec3 velocity;
+ private int fireTicks;
@@ -1268,6 +1288,7 @@ index 0000000000000000000000000000000000000000..4365351efbe01b46b5df29a34bef08ab
+ this.fauxSleeping = LeavesConfig.fakeplayerSkipSleep;
+ this.waterSwim = true;
+ this.knockback = Vec3.ZERO;
+ this.tracingRange = world.spigotConfig.playerTrackingRange * world.spigotConfig.playerTrackingRange;
+ }
+
+ public static ServerBot createBot(@NotNull BotCreateState state) {
@@ -1334,46 +1355,44 @@ index 0000000000000000000000000000000000000000..4365351efbe01b46b5df29a34bef08ab
+ return ServerBot.getBots().size() < top.leavesmc.leaves.LeavesConfig.fakeplayerLimit;
+ }
+
+ private void renderAll() {
+ Packet<?>[] packets = getRenderPackets();
+ Bukkit.getOnlinePlayers().forEach(p ->
+ render(((CraftPlayer) p).getHandle().connection, packets, false, p.getWorld() == getBukkitPlayer().getWorld()));
+ public void renderAll() {
+ MinecraftServer.getServer().getPlayerList().getPlayers().forEach(
+ player -> {
+ this.sendPlayerInfo(player);
+ this.sendFakeData(player.connection, false);
+ }
+ );
+ }
+
+ public void render(ServerPlayerConnection connection, boolean login, boolean all) {
+ render(connection, getRenderPackets(), login, all && LeavesConfig.alwaysSendFakeplayerData);
+ public void sendPlayerInfo(ServerPlayer player) {
+ player.connection.send(new ClientboundPlayerInfoUpdatePacket(EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME), List.of(this)));
+ }
+
+ public void render(ServerPlayer player, boolean login) {
+ render(player.connection, getRenderPackets(), login, player.level() == this.level() && LeavesConfig.alwaysSendFakeplayerData);
+ public boolean needSendFakeData(ServerPlayer player) {
+ return LeavesConfig.alwaysSendFakeplayerData && (player.level() == this.level() && player.position().distanceToSqr(this.position()) > this.tracingRange);
+ }
+
+ private void render(@NotNull ServerPlayerConnection connection, Packet<?> @NotNull [] packets, boolean login, boolean all) { // always use getRenderPackets() to get packets. replace it soon
+ connection.send(packets[0]);
+ if (all) {
+ connection.send(packets[1]);
+ public void sendFakeDataIfNeed(ServerPlayer player, boolean login) {
+ if (needSendFakeData(player)) {
+ this.sendFakeData(player.connection, login);
+ }
+ }
+
+ public void sendFakeData(ServerPlayerConnection playerConnection, boolean login) {
+ playerConnection.send(new ClientboundAddPlayerPacket(this));
+ if (login) {
+ Bukkit.getScheduler().runTaskLater(MINECRAFT_PLUGIN, () -> {
+ connection.send(packets[2]);
+ connection.send(new ClientboundRotateHeadPacket(this, (byte) ((getYRot() * 256f) / 360f)));
+ }, 10);
+ } else {
+ connection.send(packets[2]);
+ connection.send(new ClientboundRotateHeadPacket(this, (byte) ((getYRot() * 256f) / 360f)));
+ }
+ }
+ }
+
+ @Contract(" -> new")
+ private Packet<?> @NotNull [] getRenderPackets() {
+ return new Packet[]{
+ new ClientboundPlayerInfoUpdatePacket(EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME), List.of(this)),
+ new ClientboundAddPlayerPacket(this),
+ // new ClientboundSetEntityDataPacket(this.getId(), ),
+ new ClientboundRotateHeadPacket(this, (byte) ((getYRot() * 256f) / 360f))
+ };
+ }
+
+ private void sendPacket(Packet<?> packet) {
+ Bukkit.getOnlinePlayers().forEach(p -> ((CraftPlayer) p).getHandle().connection.send(packet));
+ MinecraftServer.getServer().getPlayerList().getPlayers().forEach(
+ player -> player.connection.send(packet)
+ );
+ }
+
+ // die check start

View File

@@ -155,10 +155,10 @@ index 3c0651fa5a5db880202c9a3805a6455269c5f16d..434e5e1fd280dc5b1bd29fc2a196ce0b
if (packet == null || this.processedDisconnect) { // Spigot
return;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index c64c53075efdefc5bb845f954de87c3f3f9d3fcf..bdf17bce2b4c0a2c64abefcc82a6e9690f96d186 100644
index 175c117bb5acca0b0d43b5ce090e51e20a2ca23b..0e095d71cbe46acbf076623a0e1af6963610e5c4 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1466,7 +1466,7 @@ public abstract class PlayerList {
@@ -1465,7 +1465,7 @@ public abstract class PlayerList {
}
public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public

View File

@@ -35,11 +35,11 @@ index 434e5e1fd280dc5b1bd29fc2a196ce0b803279f7..2ed3fba5de71bb36187b8a65f65673a4
byte[] data = new byte[packet.data.readableBytes()];
packet.data.readBytes(data);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index bdf17bce2b4c0a2c64abefcc82a6e9690f96d186..0ca2aca30468ecce20970354b1faf24b3a58a00f 100644
index 0e095d71cbe46acbf076623a0e1af6963610e5c4..afbe81cec75b06d17699e005acf715d61c56f68d 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -356,6 +356,7 @@ public abstract class PlayerList {
bot1.render(playerconnection, true,player.getBukkitEntity().getWorld() == bot1.getBukkitEntity().getWorld())); // Leaves - render bot
@@ -355,6 +355,7 @@ public abstract class PlayerList {
}); // Leaves - render bot
}
// Leaves end - bot support
+ top.leavesmc.leaves.protocol.PcaSyncProtocol.onJoin(player); // Leaves - pca

View File

@@ -32,10 +32,10 @@ index 2ed3fba5de71bb36187b8a65f65673a4f426cfd0..4004b3d068b97efa835798b05aa424d0
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 0ca2aca30468ecce20970354b1faf24b3a58a00f..ecdf7bc56ad035881cbb0c36d7fbad7bb11ab442 100644
index afbe81cec75b06d17699e005acf715d61c56f68d..81088d403e3988f4004d6cf368aa15dfa3ac26aa 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -357,6 +357,7 @@ public abstract class PlayerList {
@@ -356,6 +356,7 @@ public abstract class PlayerList {
}
// Leaves end - bot support
top.leavesmc.leaves.protocol.PcaSyncProtocol.onJoin(player); // Leaves - pca
@@ -43,7 +43,7 @@ index 0ca2aca30468ecce20970354b1faf24b3a58a00f..ecdf7bc56ad035881cbb0c36d7fbad7b
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
@@ -608,6 +609,7 @@ public abstract class PlayerList {
@@ -607,6 +608,7 @@ public abstract class PlayerList {
return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : PaperAdventure.asAdventure(entityplayer.getDisplayName())));
}
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
@@ -51,7 +51,7 @@ index 0ca2aca30468ecce20970354b1faf24b3a58a00f..ecdf7bc56ad035881cbb0c36d7fbad7b
// Paper end
ServerLevel worldserver = entityplayer.serverLevel();
@@ -1600,7 +1602,7 @@ public abstract class PlayerList {
@@ -1599,7 +1601,7 @@ public abstract class PlayerList {
entityplayer.connection.send(packetplayoutrecipeupdate);
entityplayer.getRecipeBook().sendInitialRecipeBook(entityplayer);
}

View File

@@ -20,10 +20,10 @@ index 4004b3d068b97efa835798b05aa424d08b8e3229..bb0e97bd0f4332a2da1b9f077d61b6f8
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index ecdf7bc56ad035881cbb0c36d7fbad7bb11ab442..9edb1fb5f1609e7e95245a4b946220a29dcb06b3 100644
index 81088d403e3988f4004d6cf368aa15dfa3ac26aa..34771b561d6e944e77b85ee4b4018453b30ba388 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -358,6 +358,7 @@ public abstract class PlayerList {
@@ -357,6 +357,7 @@ public abstract class PlayerList {
// Leaves end - bot support
top.leavesmc.leaves.protocol.PcaSyncProtocol.onJoin(player); // Leaves - pca
top.leavesmc.leaves.protocol.BBORProtocol.onPlayerLoggedIn(player); // Leaves - bbor

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Player operation limiter
This patch is Powered by plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition)
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 0cc848a600fa0f8af4f5f991834dd1d044c1c897..39a88eb5de7b735257f368856cd6d6d37521f257 100644
index c63142cea44d26c6742f39b090eeba8f2052662c..20778affc3e42d6eeb898e42671dc9ac83d05242 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -279,6 +279,10 @@ public class ServerPlayer extends Player {
@@ -278,6 +278,10 @@ public class ServerPlayer extends Player {
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event
@@ -20,7 +20,7 @@ index 0cc848a600fa0f8af4f5f991834dd1d044c1c897..39a88eb5de7b735257f368856cd6d6d3
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));
public io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
@@ -712,6 +716,7 @@ public class ServerPlayer extends Player {
@@ -711,6 +715,7 @@ public class ServerPlayer extends Player {
this.joining = false;
}
// CraftBukkit end
@@ -28,7 +28,7 @@ index 0cc848a600fa0f8af4f5f991834dd1d044c1c897..39a88eb5de7b735257f368856cd6d6d3
this.gameMode.tick();
this.wardenSpawnTracker.tick();
--this.spawnInvulnerableTime;
@@ -2666,5 +2671,32 @@ public class ServerPlayer extends Player {
@@ -2665,5 +2670,32 @@ public class ServerPlayer extends Player {
public CraftPlayer getBukkitEntity() {
return (CraftPlayer) super.getBukkitEntity();
}

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Return nether portal fix
This patch is powered by NetherPortalFix(https://github.com/TwelveIterationMods/NetherPortalFix)
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 39a88eb5de7b735257f368856cd6d6d37521f257..6a1922f5e1065ffa46d3ba4fa72596bebed826d4 100644
index 20778affc3e42d6eeb898e42671dc9ac83d05242..2c3e286d683437c1435b76665a5f94082a1b2ec5 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -186,6 +186,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -185,6 +185,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.event.player.PlayerToggleSneakEvent;
import org.bukkit.inventory.MainHand;
import top.leavesmc.leaves.bot.ServerBot;
@@ -17,7 +17,7 @@ index 39a88eb5de7b735257f368856cd6d6d37521f257..6a1922f5e1065ffa46d3ba4fa72596be
// CraftBukkit end
public class ServerPlayer extends Player {
@@ -1286,6 +1287,24 @@ public class ServerPlayer extends Player {
@@ -1285,6 +1286,24 @@ public class ServerPlayer extends Player {
PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld());
this.level().getCraftServer().getPluginManager().callEvent(changeEvent);
// CraftBukkit end
@@ -42,7 +42,7 @@ index 39a88eb5de7b735257f368856cd6d6d37521f257..6a1922f5e1065ffa46d3ba4fa72596be
}
// Paper start
if (this.isBlocking()) {
@@ -1338,6 +1357,30 @@ public class ServerPlayer extends Player {
@@ -1337,6 +1356,30 @@ public class ServerPlayer extends Player {
protected Optional<BlockUtil.FoundRectangle> getExitPortal(ServerLevel worldserver, BlockPos blockposition, boolean flag, WorldBorder worldborder, int searchRadius, boolean canCreatePortal, int createRadius) { // CraftBukkit
Optional<BlockUtil.FoundRectangle> optional = super.getExitPortal(worldserver, blockposition, flag, worldborder, searchRadius, canCreatePortal, createRadius); // CraftBukkit
@@ -74,7 +74,7 @@ index 39a88eb5de7b735257f368856cd6d6d37521f257..6a1922f5e1065ffa46d3ba4fa72596be
return optional;
} else {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 9edb1fb5f1609e7e95245a4b946220a29dcb06b3..d4e0a2bbf07dae404b510923a401444af4f40430 100644
index 34771b561d6e944e77b85ee4b4018453b30ba388..00fa187c70c6c0f7eea03fbd320fb938addcb410 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -27,6 +27,8 @@ import java.util.UUID;
@@ -86,8 +86,8 @@ index 9edb1fb5f1609e7e95245a4b946220a29dcb06b3..d4e0a2bbf07dae404b510923a401444a
import net.minecraft.ChatFormatting;
import net.minecraft.FileUtil;
import net.minecraft.commands.CommandSourceStack;
@@ -132,6 +134,8 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason;
import org.bukkit.event.player.PlayerSpawnChangeEvent;
@@ -129,6 +131,8 @@ import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason;
// CraftBukkit end
+import top.leavesmc.leaves.util.ReturnPortalManager; // Leaves - return portal fix
@@ -95,7 +95,7 @@ index 9edb1fb5f1609e7e95245a4b946220a29dcb06b3..d4e0a2bbf07dae404b510923a401444a
public abstract class PlayerList {
public static final File USERBANLIST_FILE = new File("banned-players.json");
@@ -991,6 +995,24 @@ public abstract class PlayerList {
@@ -990,6 +994,24 @@ public abstract class PlayerList {
if (fromWorld != location.getWorld()) {
PlayerChangedWorldEvent event = new PlayerChangedWorldEvent(entityplayer.getBukkitEntity(), fromWorld);
server.server.getPluginManager().callEvent(event);
@@ -121,7 +121,7 @@ index 9edb1fb5f1609e7e95245a4b946220a29dcb06b3..d4e0a2bbf07dae404b510923a401444a
// Save player file again if they were disconnected
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 72268f148a9d676975fa881fa94757ca96e39d82..f560f0b91818d8c41c6842a241699fe5f3163818 100644
index 3a3b1439f6f20a82f6800272bd99feb3596fdecb..d56f683a5d043f3be624a94d889acc1df0e95554 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -242,7 +242,7 @@ public abstract class LivingEntity extends Entity implements Attackable {

View File

@@ -17,10 +17,10 @@ index 8150ac9c98a30afff5fc04fdec8af6d340c4b9f5..c748b29bf2d4382215bffd41854f70fd
MinecraftTimings.tickablesTimer.startTiming(); // Spigot // Paper
for (int i = 0; i < this.tickables.size(); ++i) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index d4e0a2bbf07dae404b510923a401444af4f40430..d345dbbe76fdef80834bcacee7862d7115e12dd3 100644
index 00fa187c70c6c0f7eea03fbd320fb938addcb410..d29db001f12c072fbba1f981ca02880cb39cf62e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -363,6 +363,7 @@ public abstract class PlayerList {
@@ -362,6 +362,7 @@ public abstract class PlayerList {
top.leavesmc.leaves.protocol.PcaSyncProtocol.onJoin(player); // Leaves - pca
top.leavesmc.leaves.protocol.BBORProtocol.onPlayerLoggedIn(player); // Leaves - bbor
top.leavesmc.leaves.protocol.JadeProtocol.onPlayerJoin(player); // Leaves - Jade
@@ -28,7 +28,7 @@ index d4e0a2bbf07dae404b510923a401444af4f40430..d345dbbe76fdef80834bcacee7862d71
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
@@ -615,6 +616,7 @@ public abstract class PlayerList {
@@ -614,6 +615,7 @@ public abstract class PlayerList {
}
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
top.leavesmc.leaves.protocol.BBORProtocol.onPlayerLoggedOut(entityplayer); // Leaves - bbor

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Xaero Map Protocol
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index d345dbbe76fdef80834bcacee7862d7115e12dd3..c81d0a6e534d54db00c5f4595df0478a8342dfaf 100644
index d29db001f12c072fbba1f981ca02880cb39cf62e..7bb6b4da0495b2ad5a95e858f01577afe157d470 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1311,6 +1311,7 @@ public abstract class PlayerList {
@@ -1310,6 +1310,7 @@ public abstract class PlayerList {
player.connection.send(new ClientboundInitializeBorderPacket(worldborder));
player.connection.send(new ClientboundSetTimePacket(world.getGameTime(), world.getDayTime(), world.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)));
player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(world.getSharedSpawnPos(), world.getSharedSpawnAngle()));

View File

@@ -19,10 +19,10 @@ index 6d527cdb75e767182dce5b338322a9c27b21d5b8..7634fc05f7e1bd12c9c6aa9204af6133
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index c81d0a6e534d54db00c5f4595df0478a8342dfaf..d07442bc4a3abf00aac17375628cd1ae0eae28f1 100644
index 7bb6b4da0495b2ad5a95e858f01577afe157d470..a137b9bff6595594ebe149ff766abd9edea04294 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -364,6 +364,7 @@ public abstract class PlayerList {
@@ -363,6 +363,7 @@ public abstract class PlayerList {
top.leavesmc.leaves.protocol.BBORProtocol.onPlayerLoggedIn(player); // Leaves - bbor
top.leavesmc.leaves.protocol.JadeProtocol.onPlayerJoin(player); // Leaves - Jade
top.leavesmc.leaves.protocol.AppleSkinProtocol.onPlayerLoggedIn(player); // Leaves - appleskin

View File

@@ -17,10 +17,10 @@ index 5c09e2164a045346e0e2d4ce64408ac9209cf501..d47e29850462356e843591deba7e8a83
MinecraftTimings.tickablesTimer.startTiming(); // Spigot // Paper
for (int i = 0; i < this.tickables.size(); ++i) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index d07442bc4a3abf00aac17375628cd1ae0eae28f1..dde9803e5163b4bba99831ab09f4283c0d748a79 100644
index a137b9bff6595594ebe149ff766abd9edea04294..7ee3840b1e44f3b9596ca839e252cdee3d41eda6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -618,6 +618,7 @@ public abstract class PlayerList {
@@ -617,6 +617,7 @@ public abstract class PlayerList {
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
top.leavesmc.leaves.protocol.BBORProtocol.onPlayerLoggedOut(entityplayer); // Leaves - bbor
top.leavesmc.leaves.protocol.AppleSkinProtocol.onPlayerLoggedOut(entityplayer); // Leaves - appleskin

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Fix Paper#9372
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 6a1922f5e1065ffa46d3ba4fa72596bebed826d4..2da9ce7472dc06083959b6da540570eac6245756 100644
index 2c3e286d683437c1435b76665a5f94082a1b2ec5..9966d7e1f542a2a9602381869c2c671d33a60c5a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1257,6 +1257,7 @@ public class ServerPlayer extends Player {
@@ -1256,6 +1256,7 @@ public class ServerPlayer extends Player {
this.setServerLevel(worldserver);
this.connection.teleport(exit); // CraftBukkit - use internal teleport without event
this.connection.resetPosition();
@@ -17,7 +17,7 @@ index 6a1922f5e1065ffa46d3ba4fa72596bebed826d4..2da9ce7472dc06083959b6da540570ea
worldserver.addDuringPortalTeleport(this);
worldserver1.getProfiler().pop();
this.triggerDimensionChangeTriggers(worldserver1);
@@ -1973,6 +1974,7 @@ public class ServerPlayer extends Player {
@@ -1972,6 +1973,7 @@ public class ServerPlayer extends Player {
public void moveTo(double x, double y, double z) {
super.moveTo(x, y, z);
this.connection.resetPosition();
@@ -25,7 +25,7 @@ index 6a1922f5e1065ffa46d3ba4fa72596bebed826d4..2da9ce7472dc06083959b6da540570ea
}
@Override
@@ -2209,6 +2211,7 @@ public class ServerPlayer extends Player {
@@ -2208,6 +2210,7 @@ public class ServerPlayer extends Player {
this.connection.send(new ClientboundSetCameraPacket(this.camera));
this.connection.resetPosition();
@@ -33,7 +33,7 @@ index 6a1922f5e1065ffa46d3ba4fa72596bebed826d4..2da9ce7472dc06083959b6da540570ea
}
}
@@ -2661,6 +2664,7 @@ public class ServerPlayer extends Player {
@@ -2660,6 +2663,7 @@ public class ServerPlayer extends Player {
public void forceSetPositionRotation(double x, double y, double z, float yaw, float pitch) {
this.moveTo(x, y, z, yaw, pitch);
this.connection.resetPosition();

View File

@@ -19,10 +19,10 @@ index 3d7e2654d67b9b61cf783e234e33576a03351413..f5e16e9f144824a78ccd4a9fa0a5c0f3
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index dde9803e5163b4bba99831ab09f4283c0d748a79..a1629559dc62adbd8918727bde2a65574d26f3ac 100644
index 7ee3840b1e44f3b9596ca839e252cdee3d41eda6..c9b5184baefae815e94e041a9ce41557524c4eb7 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -365,6 +365,7 @@ public abstract class PlayerList {
@@ -364,6 +364,7 @@ public abstract class PlayerList {
top.leavesmc.leaves.protocol.JadeProtocol.onPlayerJoin(player); // Leaves - Jade
top.leavesmc.leaves.protocol.AppleSkinProtocol.onPlayerLoggedIn(player); // Leaves - appleskin
top.leavesmc.leaves.protocol.CarpetServerProtocol.onPlayerJoin(player); // Leaves - carpet

View File

@@ -346,18 +346,18 @@ index 2ff578e4a953ffcf5176815ba8e3f06f73499989..bf082b9c3947d6037328526e5bfafe2b
final String s;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index a1629559dc62adbd8918727bde2a65574d26f3ac..70b201502a5ee4fca3da2cd2658b42ece0b3211e 100644
index c9b5184baefae815e94e041a9ce41557524c4eb7..63149cfdfbc129fa02070e06d44a9417dbde7c5f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -134,6 +134,7 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason;
import org.bukkit.event.player.PlayerSpawnChangeEvent;
@@ -131,6 +131,7 @@ import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason;
// CraftBukkit end
+import top.leavesmc.leaves.util.ArrayConstants;
import top.leavesmc.leaves.util.ReturnPortalManager; // Leaves - return portal fix
public abstract class PlayerList {
@@ -736,7 +737,7 @@ public abstract class PlayerList {
@@ -735,7 +736,7 @@ public abstract class PlayerList {
while (iterator.hasNext()) {
entityplayer = (ServerPlayer) iterator.next();
this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved

View File

@@ -115,10 +115,10 @@ index fd9e85dab7c511873824cac56a270ff435792292..257e51570ed08660613895f5a1eccbee
}
// Leaves end - bot can't get advancement
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 70b201502a5ee4fca3da2cd2658b42ece0b3211e..383ed8f9962ea4b9c00aa3c8c4d877e42dd8ac16 100644
index 63149cfdfbc129fa02070e06d44a9417dbde7c5f..6f609ec7a9814a44afc82aa504010519d614b796 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -136,6 +136,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent;
@@ -133,6 +133,7 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason;
import top.leavesmc.leaves.util.ArrayConstants;
import top.leavesmc.leaves.util.ReturnPortalManager; // Leaves - return portal fix
@@ -126,7 +126,7 @@ index 70b201502a5ee4fca3da2cd2658b42ece0b3211e..383ed8f9962ea4b9c00aa3c8c4d877e4
public abstract class PlayerList {
@@ -168,6 +169,7 @@ public abstract class PlayerList {
@@ -165,6 +166,7 @@ public abstract class PlayerList {
private boolean allowCheatsForAllPlayers;
private static final boolean ALLOW_LOGOUTIVATOR = false;
private int sendAllPlayerInfoIn;
@@ -134,7 +134,7 @@ index 70b201502a5ee4fca3da2cd2658b42ece0b3211e..383ed8f9962ea4b9c00aa3c8c4d877e4
// CraftBukkit start
private CraftServer cserver;
@@ -195,6 +197,108 @@ public abstract class PlayerList {
@@ -192,6 +194,110 @@ public abstract class PlayerList {
}
abstract public void loadAndSaveFiles(); // Paper - moved from DedicatedPlayerList constructor
@@ -196,8 +196,10 @@ index 70b201502a5ee4fca3da2cd2658b42ece0b3211e..383ed8f9962ea4b9c00aa3c8c4d877e4
+ this.playersByName.put(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT), player);
+ this.playersByUUID.put(player.getUUID(), player);
+ }
+ ServerBot.getBots().forEach(bot1 ->
+ bot1.render(playerconnection, true,player.getBukkitEntity().getWorld() == bot1.getBukkitEntity().getWorld())); // Leaves - render bot
+ ServerBot.getBots().forEach(bot1 -> {
+ bot1.sendPlayerInfo(player);
+ bot1.sendFakeDataIfNeed(player, true);
+ }); // Leaves - render bot
+ }
+ // Leaves end - bot support
+
@@ -243,7 +245,7 @@ index 70b201502a5ee4fca3da2cd2658b42ece0b3211e..383ed8f9962ea4b9c00aa3c8c4d877e4
public void placeNewPlayer(Connection connection, ServerPlayer player) {
player.isRealPlayer = true; // Paper
player.loginTime = System.currentTimeMillis(); // Paper
@@ -326,6 +430,7 @@ public abstract class PlayerList {
@@ -323,6 +429,7 @@ public abstract class PlayerList {
// entityplayer.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(this.players)); // CraftBukkit - replaced with loop below
this.players.add(player);
@@ -251,7 +253,7 @@ index 70b201502a5ee4fca3da2cd2658b42ece0b3211e..383ed8f9962ea4b9c00aa3c8c4d877e4
this.playersByName.put(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT), player); // Spigot
this.playersByUUID.put(player.getUUID(), player);
// this.broadcastAll(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityplayer))); // CraftBukkit - replaced with loop below
@@ -399,6 +504,12 @@ public abstract class PlayerList {
@@ -398,6 +505,12 @@ public abstract class PlayerList {
continue;
}
@@ -264,7 +266,7 @@ index 70b201502a5ee4fca3da2cd2658b42ece0b3211e..383ed8f9962ea4b9c00aa3c8c4d877e4
onlinePlayers.add(entityplayer1); // Paper - use single player info update packet
}
// Paper start - use single player info update packet
@@ -613,6 +724,43 @@ public abstract class PlayerList {
@@ -612,6 +725,43 @@ public abstract class PlayerList {
}
@@ -308,7 +310,7 @@ index 70b201502a5ee4fca3da2cd2658b42ece0b3211e..383ed8f9962ea4b9c00aa3c8c4d877e4
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer) { // CraftBukkit - return string // Paper - return Component
// Paper start
return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : PaperAdventure.asAdventure(entityplayer.getDisplayName())));
@@ -683,6 +831,7 @@ public abstract class PlayerList {
@@ -682,6 +832,7 @@ public abstract class PlayerList {
entityplayer.retireScheduler(); // Paper - Folia schedulers
entityplayer.getAdvancements().stopListening();
this.players.remove(entityplayer);

View File

@@ -109,10 +109,10 @@ index d47e29850462356e843591deba7e8a83f59faba0..5f61f4861254fb05f069f8e95a3e84c4
ReportedException reportedexception = null;
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 2da9ce7472dc06083959b6da540570eac6245756..11f83f29e078b8f96c52d9d4d7c0c25b6e980155 100644
index 9966d7e1f542a2a9602381869c2c671d33a60c5a..c9a89a93a816f500cdfb52d8ee153c8d4a98df1e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2742,7 +2742,7 @@ public class ServerPlayer extends Player {
@@ -2741,7 +2741,7 @@ public class ServerPlayer extends Player {
}
public boolean allowOperation() {

View File

@@ -1178,7 +1178,7 @@ index f8edbc95ffe7de0341e5724ad3efe69c74e95a07..2390788d6a472d900e1cf014e4c4a683
// Paper start
if (waitableArray[0] != null) {
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 7d0a532921ef6b18da235cbea3437ae554221c5c..975c18cf108b754f358942c81781a4717686f6bb 100644
index a1bf598332fafe372b98e331a92c48b948ac29f7..ed7154afa61d8e555346f17543280f106ab97e37 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,13 +1,10 @@
@@ -1712,7 +1712,7 @@ index 43dc38afc03323ebf4192f58a7703402f9379ade..e22cf5ed3c905d0536cad7ac23b7d94f
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 383ed8f9962ea4b9c00aa3c8c4d877e42dd8ac16..0fb91e5180d49530ddf796ec5e69b2176ffc44d3 100644
index 6f609ec7a9814a44afc82aa504010519d614b796..cf4ea675119d3c1a12435a6f00309ea2023e0a71 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1,6 +1,5 @@
@@ -1722,7 +1722,7 @@ index 383ed8f9962ea4b9c00aa3c8c4d877e42dd8ac16..0fb91e5180d49530ddf796ec5e69b217
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -1425,7 +1424,6 @@ public abstract class PlayerList {
@@ -1426,7 +1425,6 @@ public abstract class PlayerList {
public void saveAll(int interval) {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
@@ -1730,7 +1730,7 @@ index 383ed8f9962ea4b9c00aa3c8c4d877e42dd8ac16..0fb91e5180d49530ddf796ec5e69b217
int numSaved = 0;
long now = MinecraftServer.currentTick;
for (int i = 0; i < this.players.size(); ++i) {
@@ -1436,7 +1434,6 @@ public abstract class PlayerList {
@@ -1437,7 +1435,6 @@ public abstract class PlayerList {
}
// Paper end
}