Files
Purpur/patches/server/0048-Don-t-recalculate-permissions-for-players-on-world-c.patch
2020-02-07 16:49:53 -06:00

59 lines
2.9 KiB
Diff

From 6aab71857c77b0ce39716b16355c035da7a7c14e 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/pl3x/purpur/PurpurConfig.java | 5 +++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 7b79ee4f..5efc1431 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 {
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
if (!entityplayer.playerConnection.isDisconnected()) {
worldserver.addPlayerRespawn(entityplayer1);
this.players.add(entityplayer1);
@@ -907,10 +909,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
this.server.getCommandDispatcher().a(entityplayer);
}
+ private boolean skipPermRecalc = 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
--- 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 {
useBetterMending = getBoolean("settings.use-better-mending", useBetterMending);
}
+ public static boolean updatePermissionsOnWorldChange = false;
+ private static void updatePermissionsOnWorldChange() {
+ updatePermissionsOnWorldChange = getBoolean("settings.update-perms-on-world-change", updatePermissionsOnWorldChange);
+ }
+
public static boolean requireShiftToMount = true;
private static void requireShiftToMount() {
requireShiftToMount = getBoolean("settings.mobs.require-shift-to-mount", requireShiftToMount);
--
2.24.0