mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-22 10:57:43 +01:00
59 lines
2.9 KiB
Diff
59 lines
2.9 KiB
Diff
From f9348099359bcbd9526f496b47d44d2d8f0c82dc 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..8a204be2 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
|
|
|