Paper/Spigot-Server-Patches/0349-MC-145260-Fix-Whitelist-On-Off-inconsistency.patch
Aikar f2d1b6e549
Clean up duplicate PlayerInitialSpawnEvent
Confused on this one, as commit history says Spigots version is older
than our version, so i'm not sure how we ended up duplicating this when
the 2 events are 100% identical.

Subclass spigots event and rely on the inheritance system, and clean up
the duplicate event fires.

Fix Spigots setPosition to use setPositionRaw to avoid chunk load prematurely.
2020-04-19 04:34:43 -04:00

67 lines
2.9 KiB
Diff

From 1d088d17e9e9e57ed6e7b53b0d076d37f8f64229 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 2 Mar 2019 16:12:35 -0500
Subject: [PATCH] MC-145260: Fix Whitelist On/Off inconsistency
mojang stored whitelist state in 2 places (Whitelist Object, PlayerList)
some things checked PlayerList, some checked object. This moves
everything to the Whitelist object.
https://github.com/PaperMC/Paper/issues/1880
diff --git a/src/main/java/net/minecraft/server/JsonList.java b/src/main/java/net/minecraft/server/JsonList.java
index 8570e38f4..c97be42dd 100644
--- a/src/main/java/net/minecraft/server/JsonList.java
+++ b/src/main/java/net/minecraft/server/JsonList.java
@@ -64,6 +64,7 @@ public class JsonList<K, V extends JsonListEntry<K>> {
return this.e;
}
+ public void setEnabled(boolean flag) { this.a(flag); } // Paper - OBFHeLPER
public void a(boolean flag) {
this.e = flag;
}
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index e148940ab..f71c9f4a8 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -62,7 +62,7 @@ public abstract class PlayerList {
// private final Map<UUID, AdvancementDataPlayer> p;
// CraftBukkit end
public IPlayerFileData playerFileData;
- private boolean hasWhitelist;
+ //private boolean hasWhitelist;
protected final int maxPlayers;
private int viewDistance;
private EnumGamemode t;
@@ -887,9 +887,9 @@ public abstract class PlayerList {
}
public boolean isWhitelisted(GameProfile gameprofile, org.bukkit.event.player.PlayerLoginEvent loginEvent) {
boolean isOp = this.operators.d(gameprofile);
- boolean isWhitelisted = !this.hasWhitelist || isOp || this.whitelist.d(gameprofile);
+ boolean isWhitelisted = !this.getHasWhitelist() || isOp || this.whitelist.d(gameprofile);
final com.destroystokyo.paper.event.profile.ProfileWhitelistVerifyEvent event;
- event = new com.destroystokyo.paper.event.profile.ProfileWhitelistVerifyEvent(MCUtil.toBukkit(gameprofile), this.hasWhitelist, isWhitelisted, isOp, org.spigotmc.SpigotConfig.whitelistMessage);
+ event = new com.destroystokyo.paper.event.profile.ProfileWhitelistVerifyEvent(MCUtil.toBukkit(gameprofile), this.getHasWhitelist(), isWhitelisted, isOp, org.spigotmc.SpigotConfig.whitelistMessage);
event.callEvent();
if (!event.isWhitelisted()) {
if (loginEvent != null) {
@@ -1018,11 +1018,11 @@ public abstract class PlayerList {
}
public boolean getHasWhitelist() {
- return this.hasWhitelist;
+ return this.whitelist.isEnabled(); // Paper
}
public void setHasWhitelist(boolean flag) {
- this.hasWhitelist = flag;
+ this.whitelist.setEnabled(flag); // Paper
}
public List<EntityPlayer> b(String s) {
--
2.25.1