aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0063-Disable-Scoreboards-for-non-players-by-default.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0063-Disable-Scoreboards-for-non-players-by-default.patch')
-rw-r--r--patches/server/0063-Disable-Scoreboards-for-non-players-by-default.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/patches/server/0063-Disable-Scoreboards-for-non-players-by-default.patch b/patches/server/0063-Disable-Scoreboards-for-non-players-by-default.patch
new file mode 100644
index 0000000000..ba39658f01
--- /dev/null
+++ b/patches/server/0063-Disable-Scoreboards-for-non-players-by-default.patch
@@ -0,0 +1,36 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Aikar <[email protected]>
+Date: Tue, 8 Mar 2016 23:25:45 -0500
+Subject: [PATCH] Disable Scoreboards for non players by default
+
+Entities collision is checking for scoreboards setting.
+This is very heavy to do map lookups for every collision to check
+this setting.
+
+So avoid looking up scoreboards and short circuit to the "not on a team"
+logic which is most likely to be true.
+
+diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
+index d5f5864b7c1ad4c30f37b360b317b63c129e3a3f..82e57978b79b5275b98a1fa7731c6a23ee861a2f 100644
+--- a/src/main/java/net/minecraft/world/entity/Entity.java
++++ b/src/main/java/net/minecraft/world/entity/Entity.java
+@@ -2934,6 +2934,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+
+ @Nullable
+ public PlayerTeam getTeam() {
++ if (!this.level().paperConfig().scoreboards.allowNonPlayerEntitiesOnScoreboards && !(this instanceof Player)) { return null; } // Paper - Perf: Disable Scoreboards for non players by default
+ return this.level().getScoreboard().getPlayersTeam(this.getScoreboardName());
+ }
+
+diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
+index 97ad63aad3c559feb1e762af1e00fd550aa5b251..ba194f42217f1176ac08123d3bb5cb24e1a6c119 100644
+--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
++++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
+@@ -848,6 +848,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+ String s = nbt.getString("Team");
+ Scoreboard scoreboard = this.level().getScoreboard();
+ PlayerTeam scoreboardteam = scoreboard.getPlayerTeam(s);
++ if (!this.level().paperConfig().scoreboards.allowNonPlayerEntitiesOnScoreboards && !(this instanceof net.minecraft.world.entity.player.Player)) { scoreboardteam = null; } // Paper - Perf: Disable Scoreboards for non players by default
+ boolean flag = scoreboardteam != null && scoreboard.addPlayerToTeam(this.getStringUUID(), scoreboardteam);
+
+ if (!flag) {