papermc/Spigot-Server-Patches/0159-Faster-redstone-torch-rapid-clock-removal.patch
Aikar fe18b38aea Remove unneeded mob spawn cap patch - Fixes #235
I misread the code and thought the code kept looping until the mob spawn cap was hit.

Upon furthur review, this is not true, so this patch doesn't do anything sane.
2016-05-27 21:35:28 -04:00

43 lines
1.8 KiB
Diff

From 335b62827ed9942cf0a7482071634360bb5c4fa1 Mon Sep 17 00:00:00 2001
From: Martin Panzer <postremus1996@googlemail.com>
Date: Mon, 23 May 2016 12:12:37 +0200
Subject: [PATCH] Faster redstone torch rapid clock removal
Only resize the the redstone torch list once, since resizing arrays / lists is costly
diff --git a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
index e2f4f44..cf24c45 100644
--- a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
+++ b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
@@ -118,9 +118,17 @@ public class BlockRedstoneTorch extends BlockTorch {
boolean flag = this.g(world, blockposition, iblockdata);
List list = (List) BlockRedstoneTorch.g.get(world);
- while (list != null && !list.isEmpty() && world.getTime() - ((BlockRedstoneTorch.RedstoneUpdateInfo) list.get(0)).b > 60L) {
- list.remove(0);
+ // Paper start
+ if (list != null) {
+ int index = 0;
+ while (index < list.size() && world.getTime() - ((BlockRedstoneTorch.RedstoneUpdateInfo) list.get(index)).getTime() > 60L) {
+ index++;
+ }
+ if (index > 0) {
+ list.subList(0, index).clear();
+ }
}
+ // Paper end
// CraftBukkit start
org.bukkit.plugin.PluginManager manager = world.getServer().getPluginManager();
@@ -204,7 +212,7 @@ public class BlockRedstoneTorch extends BlockTorch {
static class RedstoneUpdateInfo {
BlockPosition a;
- long b;
+ long b; final long getTime() { return this.b; } // Paper - OBFHELPER
public RedstoneUpdateInfo(BlockPosition blockposition, long i) {
this.a = blockposition;
--
2.7.4 (Apple Git-66)