I'll get this right one of these times :S

This commit is contained in:
William Blake Galbreath
2020-02-07 17:11:06 -06:00
parent 60ae20bca5
commit f08ad926af
2 changed files with 29 additions and 16 deletions

View File

@@ -1,44 +1,57 @@
From f9348099359bcbd9526f496b47d44d2d8f0c82dc Mon Sep 17 00:00:00 2001
From 2e011621b6713aa46e814010bfea008299906ac2 Mon Sep 17 00:00:00 2001
From: Tom <cryptite@gmail.com>
Date: Fri, 12 Jul 2019 07:59:35 -0500
Subject: [PATCH] Don't recalculate permissions for players on world change
---
src/main/java/net/minecraft/server/PlayerList.java | 8 ++++++--
src/main/java/net/minecraft/server/PlayerList.java | 9 +++++----
src/main/java/net/pl3x/purpur/PurpurConfig.java | 5 +++++
2 files changed, 11 insertions(+), 2 deletions(-)
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 7b79ee4f..8a204be2 100644
index 7b79ee4fe..c8868c231 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -712,7 +712,9 @@ public abstract class PlayerList {
@@ -32,13 +32,10 @@ import org.bukkit.Location;
import org.bukkit.craftbukkit.util.CraftChatMessage;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerChangedWorldEvent;
-import org.bukkit.event.player.PlayerPortalEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
-import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
-import org.bukkit.util.Vector;
import org.spigotmc.event.player.PlayerSpawnLocationEvent;
// CraftBukkit end
@@ -712,7 +709,9 @@ public abstract class PlayerList {
entityplayer1.playerConnection.sendPacket(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
entityplayer1.playerConnection.sendPacket(new PacketPlayOutExperience(entityplayer1.exp, entityplayer1.expTotal, entityplayer1.expLevel));
this.a(entityplayer1, worldserver);
- this.d(entityplayer1);
+ skipPermRecalc = true; // Purpur
+ d(entityplayer1);
+ skipPermRecalc = false; // Purpur
+ movedToWorld = true; // Purpur
this.d(entityplayer1);
+ movedToWorld = false; // Purpur
if (!entityplayer.playerConnection.isDisconnected()) {
worldserver.addPlayerRespawn(entityplayer1);
this.players.add(entityplayer1);
@@ -907,10 +909,12 @@ public abstract class PlayerList {
@@ -907,10 +906,12 @@ public abstract class PlayerList {
entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, b0));
}
- entityplayer.getBukkitEntity().recalculatePermissions(); // CraftBukkit
+ if (!skipPermRecalc && net.pl3x.purpur.PurpurConfig.updatePermissionsOnWorldChange) entityplayer.getBukkitEntity().recalculatePermissions(); // CraftBukkit
+ if (!(movedToWorld && !net.pl3x.purpur.PurpurConfig.updatePermissionsOnWorldChange)) entityplayer.getBukkitEntity().recalculatePermissions(); // CraftBukkit // Purpur
this.server.getCommandDispatcher().a(entityplayer);
}
+ private boolean skipPermRecalc = false; // Purpur
+ private boolean movedToWorld = false; // Purpur
+
// Paper start
public boolean isWhitelisted(GameProfile gameprofile) {
return isWhitelisted(gameprofile, null);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index c35d19f6..12b2e121 100644
index c35d19f66..12b2e1211 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -166,6 +166,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From 1dda091ec37fc952104f45ce6996bcd89e9e4f96 Mon Sep 17 00:00:00 2001
From d83f60a0f9036de2c64e949e943b39c5f17b2b2a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 28 Dec 2019 04:21:54 -0600
Subject: [PATCH] Add permission for F3+N debug
@@ -8,10 +8,10 @@ Subject: [PATCH] Add permission for F3+N debug
1 file changed, 1 insertion(+)
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 5efc1431..d48f5ac2 100644
index c8868c231..5d6502707 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -905,6 +905,7 @@ public abstract class PlayerList {
@@ -902,6 +902,7 @@ public abstract class PlayerList {
} else {
b0 = (byte) (24 + i);
}