05466e3b47
Upstream has released updates that appear to apply compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing. Bukkit Changes: d2834556 SPIGOT-4219: Event for PigZombies angering. CraftBukkit Changes: a9c796f1 SPIGOT-4184: Fix furnaces not matching Vanilla smelt or animations 195f071e SPIGOT-4219: Event for PigZombies angering. 5e3082c7 SPIGOT-4230: Improve legacy block types
44 lines
1.8 KiB
Diff
44 lines
1.8 KiB
Diff
From d9e146f01679a6389ff7838846ff6530b8333a55 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Tue, 22 Mar 2016 00:33:47 -0400
|
|
Subject: [PATCH] Use a Shared Random for Entities
|
|
|
|
Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index 27020c7e29..07172d3dd8 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -51,6 +51,20 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
|
|
// CraftBukkit start
|
|
private static final int CURRENT_LEVEL = 2;
|
|
+ // Paper start
|
|
+ public static Random SHARED_RANDOM = new Random() {
|
|
+ private boolean locked = false;
|
|
+ @Override
|
|
+ public synchronized void setSeed(long seed) {
|
|
+ if (locked) {
|
|
+ LogManager.getLogger().error("Ignoring setSeed on Entity.SHARED_RANDOM", new Throwable());
|
|
+ } else {
|
|
+ super.setSeed(seed);
|
|
+ locked = true;
|
|
+ }
|
|
+ }
|
|
+ };
|
|
+ // Paper end
|
|
static boolean isLevelAtLeast(NBTTagCompound tag, int level) {
|
|
return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level;
|
|
}
|
|
@@ -184,7 +198,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
this.length = 1.8F;
|
|
this.aA = 1.0F;
|
|
this.aB = 1.0F;
|
|
- this.random = new Random();
|
|
+ this.random = SHARED_RANDOM; // Paper
|
|
this.fireTicks = -this.getMaxFireTicks();
|
|
this.justCreated = true;
|
|
this.uniqueID = MathHelper.a(this.random);
|
|
--
|
|
2.18.0
|
|
|