mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-22 10:35:38 +01:00
Cleanup patch
This commit is contained in:
parent
b8cb45d88d
commit
4c8d497932
@ -1,6 +1,6 @@
|
|||||||
From e3016c35f320021f736589487349f7a4887c7e38 Mon Sep 17 00:00:00 2001
|
From c9ed47ce088878a5e0fdaa3bcf635aa201a6fd82 Mon Sep 17 00:00:00 2001
|
||||||
From: md_5 <md_5@live.com.au>
|
From: md_5 <md_5@live.com.au>
|
||||||
Date: Sat, 16 Mar 2013 08:51:12 +1100
|
Date: Sat, 16 Mar 2013 10:10:46 +1100
|
||||||
Subject: [PATCH] Spigot changes.
|
Subject: [PATCH] Spigot changes.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -22,7 +22,7 @@ Subject: [PATCH] Spigot changes.
|
|||||||
src/main/java/net/minecraft/server/PlayerList.java | 10 +-
|
src/main/java/net/minecraft/server/PlayerList.java | 10 +-
|
||||||
.../net/minecraft/server/ThreadLoginVerifier.java | 21 +++
|
.../net/minecraft/server/ThreadLoginVerifier.java | 21 +++
|
||||||
src/main/java/net/minecraft/server/World.java | 152 ++++++++++++++++++---
|
src/main/java/net/minecraft/server/World.java | 152 ++++++++++++++++++---
|
||||||
.../java/net/minecraft/server/WorldServer.java | 126 +++++++++++++----
|
.../java/net/minecraft/server/WorldServer.java | 123 ++++++++++++++---
|
||||||
.../java/org/bukkit/craftbukkit/CraftServer.java | 45 +++---
|
.../java/org/bukkit/craftbukkit/CraftServer.java | 45 +++---
|
||||||
.../java/org/bukkit/craftbukkit/CraftWorld.java | 76 ++++++++++-
|
.../java/org/bukkit/craftbukkit/CraftWorld.java | 76 ++++++++++-
|
||||||
src/main/java/org/bukkit/craftbukkit/Spigot.java | 20 +++
|
src/main/java/org/bukkit/craftbukkit/Spigot.java | 20 +++
|
||||||
@ -32,7 +32,7 @@ Subject: [PATCH] Spigot changes.
|
|||||||
.../org/bukkit/craftbukkit/util/LongHashSet.java | 11 +-
|
.../org/bukkit/craftbukkit/util/LongHashSet.java | 11 +-
|
||||||
.../bukkit/craftbukkit/util/LongObjectHashMap.java | 5 +
|
.../bukkit/craftbukkit/util/LongObjectHashMap.java | 5 +
|
||||||
src/main/resources/configurations/bukkit.yml | 27 ++++
|
src/main/resources/configurations/bukkit.yml | 27 ++++
|
||||||
28 files changed, 559 insertions(+), 98 deletions(-)
|
28 files changed, 557 insertions(+), 97 deletions(-)
|
||||||
create mode 100644 src/main/java/org/bukkit/craftbukkit/Spigot.java
|
create mode 100644 src/main/java/org/bukkit/craftbukkit/Spigot.java
|
||||||
create mode 100644 src/main/java/org/bukkit/craftbukkit/util/FlatMap.java
|
create mode 100644 src/main/java/org/bukkit/craftbukkit/util/FlatMap.java
|
||||||
|
|
||||||
@ -467,7 +467,7 @@ index 0686ba0..c185f64 100644
|
|||||||
URL url = new URL("http://session.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(PendingConnection.d(this.pendingConnection), "UTF-8") + "&serverId=" + URLEncoder.encode(s, "UTF-8"));
|
URL url = new URL("http://session.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(PendingConnection.d(this.pendingConnection), "UTF-8") + "&serverId=" + URLEncoder.encode(s, "UTF-8"));
|
||||||
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(url.openStream()));
|
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(url.openStream()));
|
||||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||||
index 9c39815..7b2539b 100644
|
index 9c39815..67f2560 100644
|
||||||
--- a/src/main/java/net/minecraft/server/World.java
|
--- a/src/main/java/net/minecraft/server/World.java
|
||||||
+++ b/src/main/java/net/minecraft/server/World.java
|
+++ b/src/main/java/net/minecraft/server/World.java
|
||||||
@@ -67,14 +67,27 @@ public abstract class World implements IBlockAccess {
|
@@ -67,14 +67,27 @@ public abstract class World implements IBlockAccess {
|
||||||
@ -484,15 +484,15 @@ index 9c39815..7b2539b 100644
|
|||||||
public boolean isStatic;
|
public boolean isStatic;
|
||||||
+ // Spigot start
|
+ // Spigot start
|
||||||
|
|
||||||
+ public static final long chunkToKey(int x, int z) {
|
+ public static long chunkToKey(int x, int z) {
|
||||||
+ long k = ((((long)x) & 0xFFFF0000L) << 16) | ((((long)x) & 0x0000FFFFL) << 0);
|
+ long k = ((((long)x) & 0xFFFF0000L) << 16) | ((((long)x) & 0x0000FFFFL) << 0);
|
||||||
+ k |= ((((long)z) & 0xFFFF0000L) << 32) | ((((long)z) & 0x0000FFFFL) << 16);
|
+ k |= ((((long)z) & 0xFFFF0000L) << 32) | ((((long)z) & 0x0000FFFFL) << 16);
|
||||||
+ return k;
|
+ return k;
|
||||||
+ }
|
+ }
|
||||||
+ public static final int keyToX(long k) {
|
+ public static int keyToX(long k) {
|
||||||
+ return (int)(((k >> 16) & 0xFFFF0000) | (k & 0x0000FFFF));
|
+ return (int)(((k >> 16) & 0xFFFF0000) | (k & 0x0000FFFF));
|
||||||
+ }
|
+ }
|
||||||
+ public static final int keyToZ(long k) {
|
+ public static int keyToZ(long k) {
|
||||||
+ return (int)(((k >> 32) & 0xFFFF0000L) | ((k >> 16) & 0x0000FFFF));
|
+ return (int)(((k >> 32) & 0xFFFF0000L) | ((k >> 16) & 0x0000FFFF));
|
||||||
+ }
|
+ }
|
||||||
+ // Spigot end
|
+ // Spigot end
|
||||||
@ -519,8 +519,8 @@ index 9c39815..7b2539b 100644
|
|||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
+ // Spigot start
|
+ // Spigot start
|
||||||
+ this.chunkTickList = new gnu.trove.map.hash.TLongShortHashMap(getWorld().growthPerTick * 5, 0.7f, Long.MIN_VALUE, Short.MIN_VALUE);
|
+ chunkTickList = new gnu.trove.map.hash.TLongShortHashMap(world.growthPerTick * 5, 0.7f, Long.MIN_VALUE, Short.MIN_VALUE);
|
||||||
+ chunkTickList.setAutoCompactionFactor(0.0F);
|
+ chunkTickList.setAutoCompactionFactor(0);
|
||||||
+ // Spigot end
|
+ // Spigot end
|
||||||
+
|
+
|
||||||
this.O = this.random.nextInt(12000);
|
this.O = this.random.nextInt(12000);
|
||||||
@ -651,13 +651,13 @@ index 9c39815..7b2539b 100644
|
|||||||
+
|
+
|
||||||
+ if (optimalChunks <= 0) return;
|
+ if (optimalChunks <= 0) return;
|
||||||
+ if (players.size() == 0) return;
|
+ if (players.size() == 0) return;
|
||||||
+ //Keep chunks with growth inside of the optimal chunk range
|
+ // Keep chunks with growth inside of the optimal chunk range
|
||||||
+ int chunksPerPlayer = Math.min(200, Math.max(1, (int)(((optimalChunks - players.size()) / (double)players.size()) + 0.5)));
|
+ int chunksPerPlayer = Math.min(200, Math.max(1, (int) (((optimalChunks - players.size()) / (double) players.size()) + 0.5)));
|
||||||
+ int randRange = 3 + chunksPerPlayer / 30;
|
+ int randRange = 3 + chunksPerPlayer / 30;
|
||||||
+ if(randRange > chunkTickRadius) { // Limit to normal tick radius - including view distance
|
+ if (randRange > chunkTickRadius) { // Limit to normal tick radius - including view distance
|
||||||
+ randRange = chunkTickRadius;
|
+ randRange = chunkTickRadius;
|
||||||
+ }
|
+ }
|
||||||
+ //odds of growth happening vs growth happening in vanilla
|
+ // odds of growth happening vs growth happening in vanilla
|
||||||
+ final float modifiedOdds = Math.max(35, Math.min(100, ((chunksPerPlayer + 1) * 100F) / 15F));
|
+ final float modifiedOdds = Math.max(35, Math.min(100, ((chunksPerPlayer + 1) * 100F) / 15F));
|
||||||
+ this.modifiedOdds = modifiedOdds;
|
+ this.modifiedOdds = modifiedOdds;
|
||||||
+ this.growthOdds = modifiedOdds;
|
+ this.growthOdds = modifiedOdds;
|
||||||
@ -681,12 +681,12 @@ index 9c39815..7b2539b 100644
|
|||||||
+ int chunkX = MathHelper.floor(entityhuman.locX / 16.0D);
|
+ int chunkX = MathHelper.floor(entityhuman.locX / 16.0D);
|
||||||
+ int chunkZ = MathHelper.floor(entityhuman.locZ / 16.0D);
|
+ int chunkZ = MathHelper.floor(entityhuman.locZ / 16.0D);
|
||||||
+
|
+
|
||||||
+ //Always update the chunk the player is on
|
+ // Always update the chunk the player is on
|
||||||
+ long key = chunkToKey(chunkX, chunkZ);
|
+ long key = chunkToKey(chunkX, chunkZ);
|
||||||
+ int existingPlayers = Math.max(0, chunkTickList.get(key)); //filter out -1's
|
+ int existingPlayers = Math.max(0, chunkTickList.get(key)); //filter out -1's
|
||||||
+ chunkTickList.put(key, (short) (existingPlayers + 1));
|
+ chunkTickList.put(key, (short) (existingPlayers + 1));
|
||||||
+
|
+
|
||||||
+ //Check and see if we update the chunks surrounding the player this tick
|
+ // Check and see if we update the chunks surrounding the player this tick
|
||||||
+ for (int chunk = 0; chunk < chunksPerPlayer; chunk++) {
|
+ for (int chunk = 0; chunk < chunksPerPlayer; chunk++) {
|
||||||
+ int dx = (random.nextBoolean() ? 1 : -1) * random.nextInt(randRange);
|
+ int dx = (random.nextBoolean() ? 1 : -1) * random.nextInt(randRange);
|
||||||
+ int dz = (random.nextBoolean() ? 1 : -1) * random.nextInt(randRange);
|
+ int dz = (random.nextBoolean() ? 1 : -1) * random.nextInt(randRange);
|
||||||
@ -710,7 +710,7 @@ index 9c39815..7b2539b 100644
|
|||||||
entityhuman = (EntityHuman) this.players.get(i);
|
entityhuman = (EntityHuman) this.players.get(i);
|
||||||
j = MathHelper.floor(entityhuman.locX) + this.random.nextInt(11) - 5;
|
j = MathHelper.floor(entityhuman.locX) + this.random.nextInt(11) - 5;
|
||||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
index d99b6a3..35c76bf 100644
|
index d99b6a3..b806bdf 100644
|
||||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
@@ -1,5 +1,7 @@
|
@@ -1,5 +1,7 @@
|
||||||
@ -747,11 +747,11 @@ index d99b6a3..35c76bf 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.M == null) {
|
if (this.M == null) {
|
||||||
@@ -277,15 +280,31 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -277,15 +280,30 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void g() {
|
protected void g() {
|
||||||
+ // Spigot start
|
+ // Spigot start
|
||||||
+ this.aggregateTicks--;
|
+ this.aggregateTicks--;
|
||||||
+ if (this.aggregateTicks != 0) return;
|
+ if (this.aggregateTicks != 0) return;
|
||||||
+ aggregateTicks = this.getWorld().aggregateTicks;
|
+ aggregateTicks = this.getWorld().aggregateTicks;
|
||||||
@ -760,13 +760,11 @@ index d99b6a3..35c76bf 100644
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
- // Iterator iterator = this.chunkTickList.iterator();
|
// Iterator iterator = this.chunkTickList.iterator();
|
||||||
+ // Iterator iterator = this.chunkTickList.iterator(); // CraftBukkit
|
|
||||||
|
|
||||||
- for (long chunkCoord : this.chunkTickList.popAll()) {
|
- for (long chunkCoord : this.chunkTickList.popAll()) {
|
||||||
- int chunkX = LongHash.msw(chunkCoord);
|
- int chunkX = LongHash.msw(chunkCoord);
|
||||||
- int chunkZ = LongHash.lsw(chunkCoord);
|
- int chunkZ = LongHash.lsw(chunkCoord);
|
||||||
+ // CraftBukkit start
|
|
||||||
+ // Spigot start
|
+ // Spigot start
|
||||||
+ for (TLongShortIterator iter = chunkTickList.iterator(); iter.hasNext();) {
|
+ for (TLongShortIterator iter = chunkTickList.iterator(); iter.hasNext();) {
|
||||||
+ iter.advance();
|
+ iter.advance();
|
||||||
@ -774,7 +772,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
+ int chunkX = World.keyToX(chunkCoord);
|
+ int chunkX = World.keyToX(chunkCoord);
|
||||||
+ int chunkZ = World.keyToZ(chunkCoord);
|
+ int chunkZ = World.keyToZ(chunkCoord);
|
||||||
+ // If unloaded, or in procedd of being unloaded, drop it
|
+ // If unloaded, or in procedd of being unloaded, drop it
|
||||||
+ if ((!this.isChunkLoaded(chunkX, chunkZ)) || (this.chunkProviderServer.unloadQueue.contains(chunkX, chunkZ))) {
|
+ if ((!this.isChunkLoaded(chunkX, chunkZ)) || (this.chunkProviderServer.unloadQueue.contains(chunkX, chunkZ))) {
|
||||||
+ iter.remove();
|
+ iter.remove();
|
||||||
+ continue;
|
+ continue;
|
||||||
+ }
|
+ }
|
||||||
@ -783,7 +781,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
// ChunkCoordIntPair chunkcoordintpair = (ChunkCoordIntPair) iterator.next();
|
// ChunkCoordIntPair chunkcoordintpair = (ChunkCoordIntPair) iterator.next();
|
||||||
int k = chunkX * 16;
|
int k = chunkX * 16;
|
||||||
int l = chunkZ * 16;
|
int l = chunkZ * 16;
|
||||||
@@ -383,7 +402,17 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -383,7 +401,17 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
|
|
||||||
if (block != null && block.isTicking()) {
|
if (block != null && block.isTicking()) {
|
||||||
++i;
|
++i;
|
||||||
@ -802,7 +800,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -429,10 +458,11 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -429,10 +457,11 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
nextticklistentry.a(j1);
|
nextticklistentry.a(j1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -818,7 +816,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,10 +474,11 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -444,10 +473,11 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
nextticklistentry.a((long) i1 + this.worldData.getTime());
|
nextticklistentry.a((long) i1 + this.worldData.getTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -834,7 +832,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void tickEntities() {
|
public void tickEntities() {
|
||||||
@@ -469,9 +500,9 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -469,9 +499,9 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
public boolean a(boolean flag) {
|
public boolean a(boolean flag) {
|
||||||
int i = this.M.size();
|
int i = this.M.size();
|
||||||
|
|
||||||
@ -847,7 +845,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
if (i > 1000) {
|
if (i > 1000) {
|
||||||
// CraftBukkit start - if the server has too much to process over time, try to alleviate that
|
// CraftBukkit start - if the server has too much to process over time, try to alleviate that
|
||||||
if (i > 20 * 1000) {
|
if (i > 20 * 1000) {
|
||||||
@@ -492,9 +523,11 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -492,9 +522,11 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -862,7 +860,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.methodProfiler.b();
|
this.methodProfiler.b();
|
||||||
@@ -536,10 +569,12 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -536,10 +568,12 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
this.methodProfiler.b();
|
this.methodProfiler.b();
|
||||||
this.T.clear();
|
this.T.clear();
|
||||||
return !this.M.isEmpty();
|
return !this.M.isEmpty();
|
||||||
@ -876,7 +874,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
ArrayList arraylist = null;
|
ArrayList arraylist = null;
|
||||||
ChunkCoordIntPair chunkcoordintpair = chunk.l();
|
ChunkCoordIntPair chunkcoordintpair = chunk.l();
|
||||||
int i = (chunkcoordintpair.x << 4) - 2;
|
int i = (chunkcoordintpair.x << 4) - 2;
|
||||||
@@ -578,6 +613,7 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -578,6 +612,7 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
}
|
}
|
||||||
|
|
||||||
return arraylist;
|
return arraylist;
|
||||||
@ -884,7 +882,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void entityJoinedWorld(Entity entity, boolean flag) {
|
public void entityJoinedWorld(Entity entity, boolean flag) {
|
||||||
@@ -648,7 +684,7 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -648,7 +683,7 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.L == null) {
|
if (this.L == null) {
|
||||||
@ -893,7 +891,7 @@ index d99b6a3..35c76bf 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.M == null) {
|
if (this.M == null) {
|
||||||
@@ -934,4 +970,48 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
@@ -934,4 +969,48 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
|
||||||
return this.setTypeIdAndData(x, y, z, typeId, data, 3);
|
return this.setTypeIdAndData(x, y, z, typeId, data, 3);
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
Loading…
Reference in New Issue
Block a user