mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-23 17:09:29 +00:00
34 lines
2.3 KiB
Diff
34 lines
2.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
|
Date: Mon, 24 Jun 2024 10:49:04 +0800
|
|
Subject: [PATCH] Do not place player if the server is full
|
|
|
|
Fix https://github.com/PaperMC/Paper/issues/10668
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
index eaf81d2fdebae94c3ba5eead84a3ebf1c09fa7ad..dca6ca722c2ce8ab320c2e36eb12fa75b78758ec 100644
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
@@ -78,6 +78,7 @@ import net.minecraft.server.level.ClientInformation;
|
|
import net.minecraft.server.level.ServerLevel;
|
|
import net.minecraft.server.level.ServerPlayer;
|
|
import net.minecraft.server.network.CommonListenerCookie;
|
|
+import net.minecraft.server.network.ServerCommonPacketListenerImpl;
|
|
import net.minecraft.server.network.ServerGamePacketListenerImpl;
|
|
import net.minecraft.server.network.ServerLoginPacketListenerImpl;
|
|
import net.minecraft.sounds.SoundEvents;
|
|
@@ -281,6 +282,13 @@ public abstract class PlayerList {
|
|
return;
|
|
}
|
|
// Gale end - MultiPaper - do not place player in world if kicked before being spawned in
|
|
+ // Leaf start - Do not place player if the server is full - copied from canPlayerLogin
|
|
+ if (this.players.size() >= this.maxPlayers && !(player.getBukkitEntity().hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameprofile))) { // Purpur
|
|
+ connection.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)));
|
|
+ //playerconnection.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)), org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT);
|
|
+ return;
|
|
+ }
|
|
+ // Leaf end - Do not place player if the server is full - copied from canPlayerLogin
|
|
|
|
Location loc = ev.getSpawnLocation();
|
|
worldserver1 = ((CraftWorld) loc.getWorld()).getHandle();
|