Files
Purpur/patches/server/0121-PaperPR-Don-t-recalculate-permissions-for-players-on.patch
William Blake Galbreath 1c4687461d Rebuild patches
2020-04-04 20:28:11 -05:00

73 lines
3.5 KiB
Diff

From 212be812f3e565dfd27838cb38d93c23054f7a63 Mon Sep 17 00:00:00 2001
From: Tom <cryptite@gmail.com>
Date: Fri, 12 Jul 2019 07:59:35 -0500
Subject: [PATCH] PaperPR - Don't recalculate permissions for players on world
change
---
src/main/java/net/minecraft/server/PlayerList.java | 9 +++++----
src/main/java/net/pl3x/purpur/PurpurConfig.java | 5 +++++
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 67228329bd..39b33d9d72 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -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);
+ movedToWorld = true; // Purpur
this.d(entityplayer1);
+ movedToWorld = false; // Purpur
if (!entityplayer.playerConnection.isDisconnected()) {
worldserver.addPlayerRespawn(entityplayer1);
this.players.add(entityplayer1);
@@ -908,10 +907,12 @@ public abstract class PlayerList {
entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, b0));
}
- entityplayer.getBukkitEntity().recalculatePermissions(); // CraftBukkit
+ if (!(movedToWorld && !net.pl3x.purpur.PurpurConfig.recalculatePermsOnWorldChange)) entityplayer.getBukkitEntity().recalculatePermissions(); // CraftBukkit // Purpur
this.server.getCommandDispatcher().a(entityplayer);
}
+ 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 7699b81dad..bb5ba4f137 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -193,6 +193,11 @@ public class PurpurConfig {
slimeBlocksNotPushable = getBoolean("settings.blocks.slime.not-movable-by-piston", slimeBlocksNotPushable);
}
+ public static boolean recalculatePermsOnWorldChange = true;
+ private static void updatePermissionsOnWorldChange() {
+ recalculatePermsOnWorldChange = getBoolean("settings.recalculate-perms-on-world-change", recalculatePermsOnWorldChange);
+ }
+
public static String serverModName = "Purpur";
private static void serverModName() {
serverModName = getString("settings.server-mod-name", serverModName);
--
2.24.0