Don't recalculate permissions for players on world change

This commit is contained in:
William Blake Galbreath
2019-08-01 17:24:22 -05:00
parent 079777c6e7
commit dd34d7f798
2 changed files with 55 additions and 0 deletions

View File

@@ -75,6 +75,11 @@ use-better-mending
* **default**: true
* **description:** Set to true for mending enchantment to always repair the most damaged equipment first
update-perms-on-world-change
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* **default**: false
* **description:** When a player changes worlds the server recalculates their permissions and resends their available commands. This can be laggy, so the option is disabled by default
logger
~~~~~~
* show-duplicate-entity-uuid-errors

View File

@@ -0,0 +1,50 @@
From 02b283ebcb6564ec20c53360f7ef49a7e5077e5f 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 | 3 ++-
src/main/java/net/pl3x/purpur/PurpurConfig.java | 5 +++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index a183bb45..11ba67d5 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -709,7 +709,7 @@ 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);
+ if (net.pl3x.purpur.PurpurConfig.updatePermissionsOnWorldChange) updatePermissions(entityplayer1); // Purpur
if (!entityplayer.playerConnection.isDisconnected()) {
worldserver.addPlayerRespawn(entityplayer1);
this.players.add(entityplayer1);
@@ -750,6 +750,7 @@ public abstract class PlayerList {
return entityplayer1;
}
+ public void updatePermissions(EntityPlayer entityPlayer) { d(entityPlayer); } // Purpur
public void d(EntityPlayer entityplayer) {
GameProfile gameprofile = entityplayer.getProfile();
int i = this.server.a(gameprofile);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 01c9d086..20231143 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.20.1