mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-19 14:51:27 +01:00
More progress
This commit is contained in:
parent
0d64f85acc
commit
2dc2fcce09
@ -6,7 +6,7 @@ Subject: [PATCH] Add PlayerInitialSpawnEvent
|
|||||||
For modifying a player's initial spawn location as they join the server
|
For modifying a player's initial spawn location as they join the server
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
index fc3422cca3..00bab3f758 100644
|
index 1652a57e2..948a6e3b7 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
||||||
@ -15,15 +15,13 @@ index fc3422cca3..00bab3f758 100644
|
|||||||
|
|
||||||
- entityplayer.spawnIn(worldserver);
|
- entityplayer.spawnIn(worldserver);
|
||||||
+ // Paper start - support PlayerInitialSpawnEvent
|
+ // Paper start - support PlayerInitialSpawnEvent
|
||||||
+ Location originalLoc = new Location(entityplayer.world.getWorld(), entityplayer.locX, entityplayer.locY, entityplayer.locZ, entityplayer.yaw, entityplayer.pitch);
|
+ Location originalLoc = new Location(entityplayer.world.getWorld(), entityplayer.locX(), entityplayer.locY(), entityplayer.locZ(), entityplayer.yaw, entityplayer.pitch);
|
||||||
+ com.destroystokyo.paper.event.player.PlayerInitialSpawnEvent event = new com.destroystokyo.paper.event.player.PlayerInitialSpawnEvent(entityplayer.getBukkitEntity(), originalLoc);
|
+ com.destroystokyo.paper.event.player.PlayerInitialSpawnEvent event = new com.destroystokyo.paper.event.player.PlayerInitialSpawnEvent(entityplayer.getBukkitEntity(), originalLoc);
|
||||||
+ this.server.server.getPluginManager().callEvent(event);
|
+ this.server.server.getPluginManager().callEvent(event);
|
||||||
+
|
+
|
||||||
+ Location newLoc = event.getSpawnLocation();
|
+ Location newLoc = event.getSpawnLocation();
|
||||||
+ entityplayer.world = ((CraftWorld) newLoc.getWorld()).getHandle();
|
+ entityplayer.world = ((CraftWorld) newLoc.getWorld()).getHandle();
|
||||||
+ entityplayer.locX = newLoc.getX();
|
+ entityplayer.setPositionRaw(newLoc.getX(), newLoc.getY(), newLoc.getZ());
|
||||||
+ entityplayer.locY = newLoc.getY();
|
|
||||||
+ entityplayer.locZ = newLoc.getZ();
|
|
||||||
+ entityplayer.yaw = newLoc.getYaw();
|
+ entityplayer.yaw = newLoc.getYaw();
|
||||||
+ entityplayer.pitch = newLoc.getPitch();
|
+ entityplayer.pitch = newLoc.getPitch();
|
||||||
+ entityplayer.dimension = ((CraftWorld) newLoc.getWorld()).getHandle().worldProvider.getDimensionManager();
|
+ entityplayer.dimension = ((CraftWorld) newLoc.getWorld()).getHandle().worldProvider.getDimensionManager();
|
||||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerUseUnknownEntityEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java b/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java
|
diff --git a/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java b/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java
|
||||||
index 680adbdeb0..3f7697b39c 100644
|
index 680adbdeb..3f7697b39 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java
|
--- a/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java
|
+++ b/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java
|
||||||
@@ -0,0 +0,0 @@ import javax.annotation.Nullable;
|
@@ -0,0 +0,0 @@ import javax.annotation.Nullable;
|
||||||
@ -18,7 +18,7 @@ index 680adbdeb0..3f7697b39c 100644
|
|||||||
private Vec3D c;
|
private Vec3D c;
|
||||||
private EnumHand d;
|
private EnumHand d;
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index 7906b67570..32c6e2eca4 100644
|
index d90c6a732..f91144693 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
|
@ -5,88 +5,8 @@ Subject: [PATCH] Add World Util Methods
|
|||||||
|
|
||||||
Methods that can be used for other patches to help improve logic.
|
Methods that can be used for other patches to help improve logic.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
|
||||||
index 6c13ae3bae..77d6d5e6eb 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/Chunk.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
|
||||||
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
|
|
||||||
return this.world.getChunkProvider().getLightEngine();
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public final int getLightSubtracted(BlockPosition blockposition, int i) { return this.a(blockposition, i); } // Paper - OBFHELPER
|
|
||||||
public int a(BlockPosition blockposition, int i) {
|
|
||||||
return this.a(blockposition, i, this.world.getWorldProvider().g());
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
||||||
index ce723c62e1..ea5905817a 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/World.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/World.java
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
|
||||||
protected final java.util.Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet(); // Paper
|
|
||||||
private final long b = 16777215L;
|
|
||||||
final Thread serverThread; // CraftBukkit - package private
|
|
||||||
- private int u;
|
|
||||||
+ private int u; public int getSkylightSubtracted() { return this.u; } public void setSkylightSubtracted(int value) { this.u = value;} // Paper - OBFHELPER
|
|
||||||
protected int i = (new Random()).nextInt();
|
|
||||||
protected final int j = 1013904223;
|
|
||||||
protected float lastRainLevel;
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
|
||||||
return i < 0 || i >= 256;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Paper start
|
|
||||||
+ public boolean isLoadedAndInBounds(BlockPosition blockposition) {
|
|
||||||
+ return getWorldBorder().isInBounds(blockposition) && getChunkIfLoaded(blockposition.getX() >> 4, blockposition.getZ() >> 4) != null;
|
|
||||||
+ }
|
|
||||||
+ public Chunk getChunkIfLoaded(BlockPosition blockposition) {
|
|
||||||
+ return getChunkIfLoaded(blockposition.getX() >> 4, blockposition.getZ() >> 4);
|
|
||||||
+ }
|
|
||||||
+ // test if meets light level, return faster
|
|
||||||
+ // logic copied from below
|
|
||||||
+ public boolean isLightLevel(BlockPosition blockposition, int level) {
|
|
||||||
+ return this.getLightLevel(blockposition) >= level; // TODO
|
|
||||||
+// if (isValidLocation(blockposition)) {
|
|
||||||
+// if (this.getType(blockposition).c(this, blockposition)) { // use neighbour brightness (where did this go)
|
|
||||||
+// int sky = getSkylightSubtracted();
|
|
||||||
+// if (this.getLightLevel(blockposition.up(), sky) >= level) {
|
|
||||||
+// return true;
|
|
||||||
+// }
|
|
||||||
+// if (this.getLightLevel(blockposition.east(), sky) >= level) {
|
|
||||||
+// return true;
|
|
||||||
+// }
|
|
||||||
+// if (this.getLightLevel(blockposition.west(), sky) >= level) {
|
|
||||||
+// return true;
|
|
||||||
+// }
|
|
||||||
+// if (this.getLightLevel(blockposition.south(), sky) >= level) {
|
|
||||||
+// return true;
|
|
||||||
+// }
|
|
||||||
+// if (this.getLightLevel(blockposition.north(), sky) >= level) {
|
|
||||||
+// return true;
|
|
||||||
+// }
|
|
||||||
+// return false;
|
|
||||||
+// } else {
|
|
||||||
+// if (blockposition.getY() >= 256) {
|
|
||||||
+// blockposition = new BlockPosition(blockposition.getX(), 255, blockposition.getZ());
|
|
||||||
+// }
|
|
||||||
+//
|
|
||||||
+// Chunk chunk = this.getChunkAtWorldCoords(blockposition);
|
|
||||||
+// return chunk.getLightSubtracted(blockposition, this.getSkylightSubtracted()) >= level;
|
|
||||||
+// }
|
|
||||||
+// } else {
|
|
||||||
+// return true;
|
|
||||||
+// }
|
|
||||||
+ }
|
|
||||||
+ // reduces need to do isLoaded before getType
|
|
||||||
+ public IBlockData getTypeIfLoadedAndInBounds(BlockPosition blockposition) {
|
|
||||||
+ return getWorldBorder().isInBounds(blockposition) ? getTypeIfLoaded(blockposition) : null;
|
|
||||||
+ }
|
|
||||||
+ // Paper end
|
|
||||||
+
|
|
||||||
public Chunk getChunkAtWorldCoords(BlockPosition blockposition) {
|
|
||||||
return this.getChunkAt(blockposition.getX() >> 4, blockposition.getZ() >> 4);
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java
|
diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java
|
||||||
index 4cf31207e0..1388610a7b 100644
|
index 020e5c171..4ee13ac45 100644
|
||||||
--- a/src/main/java/net/minecraft/server/WorldBorder.java
|
--- a/src/main/java/net/minecraft/server/WorldBorder.java
|
||||||
+++ b/src/main/java/net/minecraft/server/WorldBorder.java
|
+++ b/src/main/java/net/minecraft/server/WorldBorder.java
|
||||||
@@ -0,0 +0,0 @@ public class WorldBorder {
|
@@ -0,0 +0,0 @@ public class WorldBorder {
|
||||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Add ability to configure frosted_ice properties
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
index da2746754..bea878970 100644
|
index b1682894f..d00e8155d 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
||||||
@ -24,23 +24,23 @@ index da2746754..bea878970 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/BlockIceFrost.java b/src/main/java/net/minecraft/server/BlockIceFrost.java
|
diff --git a/src/main/java/net/minecraft/server/BlockIceFrost.java b/src/main/java/net/minecraft/server/BlockIceFrost.java
|
||||||
index 1a0c2eeaa..39c3bbc9c 100644
|
index af17aba8b..5e414138e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/BlockIceFrost.java
|
--- a/src/main/java/net/minecraft/server/BlockIceFrost.java
|
||||||
+++ b/src/main/java/net/minecraft/server/BlockIceFrost.java
|
+++ b/src/main/java/net/minecraft/server/BlockIceFrost.java
|
||||||
@@ -0,0 +0,0 @@ public class BlockIceFrost extends BlockIce {
|
@@ -0,0 +0,0 @@ public class BlockIceFrost extends BlockIce {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(IBlockData iblockdata, World world, BlockPosition blockposition, Random random) {
|
public void tick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
|
||||||
+ if (!world.paperConfig.frostedIceEnabled) return; // Paper - add ability to disable frosted ice
|
+ if (!worldserver.paperConfig.frostedIceEnabled) return; // Paper - add ability to disable frosted ice
|
||||||
if ((random.nextInt(3) == 0 || this.a(world, blockposition, 4)) && world.getLightLevel(blockposition) > 11 - (Integer) iblockdata.get(BlockIceFrost.a) - iblockdata.b((IBlockAccess) world, blockposition) && this.e(iblockdata, world, blockposition)) {
|
if ((random.nextInt(3) == 0 || this.a(worldserver, blockposition, 4)) && worldserver.getLightLevel(blockposition) > 11 - (Integer) iblockdata.get(BlockIceFrost.a) - iblockdata.b((IBlockAccess) worldserver, blockposition) && this.e(iblockdata, (World) worldserver, blockposition)) {
|
||||||
BlockPosition.PooledBlockPosition blockposition_pooledblockposition = BlockPosition.PooledBlockPosition.r();
|
BlockPosition.PooledBlockPosition blockposition_pooledblockposition = BlockPosition.PooledBlockPosition.r();
|
||||||
Throwable throwable = null;
|
Throwable throwable = null;
|
||||||
@@ -0,0 +0,0 @@ public class BlockIceFrost extends BlockIce {
|
@@ -0,0 +0,0 @@ public class BlockIceFrost extends BlockIce {
|
||||||
IBlockData iblockdata1 = world.getType(blockposition_pooledblockposition);
|
IBlockData iblockdata1 = worldserver.getType(blockposition_pooledblockposition);
|
||||||
|
|
||||||
if (iblockdata1.getBlock() == this && !this.e(iblockdata1, world, blockposition_pooledblockposition)) {
|
if (iblockdata1.getBlock() == this && !this.e(iblockdata1, (World) worldserver, blockposition_pooledblockposition)) {
|
||||||
- world.getBlockTickList().a(blockposition_pooledblockposition, this, MathHelper.nextInt(random, 20, 40));
|
- worldserver.getBlockTickList().a(blockposition_pooledblockposition, this, MathHelper.nextInt(random, 20, 40));
|
||||||
+ world.getBlockTickList().a(blockposition_pooledblockposition, this, MathHelper.nextInt(random, world.paperConfig.frostedIceDelayMin, world.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
|
+ worldserver.getBlockTickList().a(blockposition_pooledblockposition, this, MathHelper.nextInt(random, worldserver.paperConfig.frostedIceDelayMin, worldserver.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable throwable1) {
|
} catch (Throwable throwable1) {
|
||||||
@ -48,8 +48,8 @@ index 1a0c2eeaa..39c3bbc9c 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
- world.getBlockTickList().a(blockposition, this, MathHelper.nextInt(random, 20, 40));
|
- worldserver.getBlockTickList().a(blockposition, this, MathHelper.nextInt(random, 20, 40));
|
||||||
+ world.getBlockTickList().a(blockposition, this, MathHelper.nextInt(random, world.paperConfig.frostedIceDelayMin, world.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
|
+ worldserver.getBlockTickList().a(blockposition, this, MathHelper.nextInt(random, worldserver.paperConfig.frostedIceDelayMin, worldserver.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ index 000000000..f699ce18c
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
index 46635a530..6c13ae3ba 100644
|
index f62429277..be32b31e7 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Chunk.java
|
--- a/src/main/java/net/minecraft/server/Chunk.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
@@ -0,0 +0,0 @@
|
@@ -0,0 +0,0 @@
|
||||||
@ -80,7 +80,7 @@ index 46635a530..6c13ae3ba 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||||
index 15480a8df..0e8f08569 100644
|
index 459baf26d..038b7b68d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||||
@@ -0,0 +0,0 @@ import java.util.function.BooleanSupplier;
|
@@ -0,0 +0,0 @@ import java.util.function.BooleanSupplier;
|
||||||
@ -94,7 +94,7 @@ index 15480a8df..0e8f08569 100644
|
|||||||
public class ChunkProviderServer extends IChunkProvider {
|
public class ChunkProviderServer extends IChunkProvider {
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
|
diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
|
||||||
index 2cb0962ff..21a8ed323 100644
|
index c9c2b0025..1422503e1 100644
|
||||||
--- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
|
--- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
|
||||||
+++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
|
+++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
|
||||||
@@ -0,0 +0,0 @@
|
@@ -0,0 +0,0 @@
|
||||||
@ -121,7 +121,7 @@ index 2cb0962ff..21a8ed323 100644
|
|||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||||
index 04a65b487..b65f4226b 100644
|
index 25eb8f648..1d4eddd93 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||||
@@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
@@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||||
@ -141,34 +141,27 @@ index 04a65b487..b65f4226b 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
|
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
|
||||||
index 8b17dde50..d6cecfc09 100644
|
index 64be7cb97..515cc034e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/RegionFile.java
|
--- a/src/main/java/net/minecraft/server/RegionFile.java
|
||||||
+++ b/src/main/java/net/minecraft/server/RegionFile.java
|
+++ b/src/main/java/net/minecraft/server/RegionFile.java
|
||||||
@@ -0,0 +0,0 @@
|
|
||||||
package net.minecraft.server;
|
|
||||||
|
|
||||||
+import com.destroystokyo.paper.exception.ServerInternalException;
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import java.io.BufferedInputStream;
|
|
||||||
import java.io.BufferedOutputStream;
|
|
||||||
@@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable {
|
@@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable {
|
||||||
}
|
return true;
|
||||||
}
|
}
|
||||||
} catch (IOException ioexception) {
|
} catch (IOException ioexception) {
|
||||||
+ ServerInternalException.reportInternalException(ioexception); // Paper
|
+ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(ioexception); // Paper
|
||||||
return null;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable {
|
@@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable {
|
||||||
// this.b(chunkcoordintpair, (int) (SystemUtils.getTimeMillis() / 1000L)); // Spigot - move this into writeChunk
|
filechannel.write(bytebuffer);
|
||||||
} catch (IOException ioexception) {
|
} catch (Throwable throwable1) {
|
||||||
ioexception.printStackTrace();
|
throwable = throwable1;
|
||||||
+ ServerInternalException.reportInternalException(ioexception); // Paper
|
+ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(throwable); // Paper
|
||||||
}
|
throw throwable1;
|
||||||
|
} finally {
|
||||||
}
|
if (filechannel != null) {
|
||||||
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
index fc2bb1d69..9c065c999 100644
|
index 8ba344df6..02157d051 100644
|
||||||
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.LogManager;
|
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.LogManager;
|
||||||
@ -196,7 +189,7 @@ index fc2bb1d69..9c065c999 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/VillageSiege.java b/src/main/java/net/minecraft/server/VillageSiege.java
|
diff --git a/src/main/java/net/minecraft/server/VillageSiege.java b/src/main/java/net/minecraft/server/VillageSiege.java
|
||||||
index a58d3ba4c..6e4c5d4d8 100644
|
index a8d1a0727..90e863280 100644
|
||||||
--- a/src/main/java/net/minecraft/server/VillageSiege.java
|
--- a/src/main/java/net/minecraft/server/VillageSiege.java
|
||||||
+++ b/src/main/java/net/minecraft/server/VillageSiege.java
|
+++ b/src/main/java/net/minecraft/server/VillageSiege.java
|
||||||
@@ -0,0 +0,0 @@
|
@@ -0,0 +0,0 @@
|
||||||
@ -216,7 +209,7 @@ index a58d3ba4c..6e4c5d4d8 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 76704abda..ce723c62e 100644
|
index 464a8da31..5d8404f8a 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
|
||||||
@@ -0,0 +0,0 @@ package net.minecraft.server;
|
@@ -0,0 +0,0 @@ package net.minecraft.server;
|
||||||
@ -229,7 +222,7 @@ index 76704abda..ce723c62e 100644
|
|||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
gameprofilerfiller.exit();
|
gameprofilerfiller.exit();
|
||||||
} catch (Throwable throwable) {
|
} catch (Throwable throwable) {
|
||||||
// Paper start - Prevent tile entity and entity crashes
|
// Paper start - Prevent tile entity and entity crashes
|
||||||
@ -242,12 +235,12 @@ index 76704abda..ce723c62e 100644
|
|||||||
tilesThisCycle--;
|
tilesThisCycle--;
|
||||||
this.tileEntityListTick.remove(tileTickPosition--);
|
this.tileEntityListTick.remove(tileTickPosition--);
|
||||||
continue;
|
continue;
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
consumer.accept(entity);
|
consumer.accept(entity);
|
||||||
} catch (Throwable throwable) {
|
} catch (Throwable throwable) {
|
||||||
// Paper start - Prevent tile entity and entity crashes
|
// Paper start - Prevent tile entity and entity crashes
|
||||||
- System.err.println("Entity threw exception at " + entity.world.getWorld().getName() + ":" + entity.locX + "," + entity.locY + "," + entity.locZ);
|
- System.err.println("Entity threw exception at " + entity.world.getWorld().getName() + ":" + entity.locX() + "," + entity.locY() + "," + entity.locZ());
|
||||||
+ String msg = "Entity threw exception at " + entity.world.getWorld().getName() + ":" + entity.locX + "," + entity.locY + "," + entity.locZ;
|
+ String msg = "Entity threw exception at " + entity.world.getWorld().getName() + ":" + entity.locX() + "," + entity.locY() + "," + entity.locZ();
|
||||||
+ System.err.println(msg);
|
+ System.err.println(msg);
|
||||||
throwable.printStackTrace();
|
throwable.printStackTrace();
|
||||||
+ getServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable)));
|
+ getServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable)));
|
||||||
@ -255,7 +248,7 @@ index 76704abda..ce723c62e 100644
|
|||||||
return;
|
return;
|
||||||
// Paper end
|
// Paper end
|
||||||
diff --git a/src/main/java/net/minecraft/server/WorldPersistentData.java b/src/main/java/net/minecraft/server/WorldPersistentData.java
|
diff --git a/src/main/java/net/minecraft/server/WorldPersistentData.java b/src/main/java/net/minecraft/server/WorldPersistentData.java
|
||||||
index f5f540032..00e9a1735 100644
|
index 19e68a783..a2a25cf6a 100644
|
||||||
--- a/src/main/java/net/minecraft/server/WorldPersistentData.java
|
--- a/src/main/java/net/minecraft/server/WorldPersistentData.java
|
||||||
+++ b/src/main/java/net/minecraft/server/WorldPersistentData.java
|
+++ b/src/main/java/net/minecraft/server/WorldPersistentData.java
|
||||||
@@ -0,0 +0,0 @@ public class WorldPersistentData {
|
@@ -0,0 +0,0 @@ public class WorldPersistentData {
|
||||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] Add handshake event to allow plugins to handle client
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/HandshakeListener.java b/src/main/java/net/minecraft/server/HandshakeListener.java
|
diff --git a/src/main/java/net/minecraft/server/HandshakeListener.java b/src/main/java/net/minecraft/server/HandshakeListener.java
|
||||||
index 756330a6c..66dda900b 100644
|
index 963dbd064..d0b9c6e3d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/HandshakeListener.java
|
--- a/src/main/java/net/minecraft/server/HandshakeListener.java
|
||||||
+++ b/src/main/java/net/minecraft/server/HandshakeListener.java
|
+++ b/src/main/java/net/minecraft/server/HandshakeListener.java
|
||||||
@@ -0,0 +0,0 @@ public class HandshakeListener implements PacketHandshakingInListener {
|
@@ -0,0 +0,0 @@ public class HandshakeListener implements PacketHandshakingInListener {
|
||||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] Allow Reloading of Custom Permissions
|
|||||||
https://github.com/PaperMC/Paper/issues/49
|
https://github.com/PaperMC/Paper/issues/49
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 4a43da08a5..8b8e85b711 100644
|
index cf12da15c..110fee6b6 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
||||||
|
@ -6,32 +6,31 @@ Subject: [PATCH] Chunk Save Reattempt
|
|||||||
We commonly have "Stream Closed" errors on chunk saving, so this code should re-try to save the chunk in the event of failure and hopefully prevent rollbacks.
|
We commonly have "Stream Closed" errors on chunk saving, so this code should re-try to save the chunk in the event of failure and hopefully prevent rollbacks.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
|
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
|
||||||
index d6cecfc09b..fb529eac91 100644
|
index 515cc034e..5d2cbbad2 100644
|
||||||
--- a/src/main/java/net/minecraft/server/RegionFile.java
|
--- a/src/main/java/net/minecraft/server/RegionFile.java
|
||||||
+++ b/src/main/java/net/minecraft/server/RegionFile.java
|
+++ b/src/main/java/net/minecraft/server/RegionFile.java
|
||||||
@@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable {
|
@@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable {
|
||||||
|
return true;
|
||||||
// this.b(chunkcoordintpair, (int) (SystemUtils.getTimeMillis() / 1000L)); // Spigot - move this into writeChunk
|
}
|
||||||
} catch (IOException ioexception) {
|
} catch (IOException ioexception) {
|
||||||
- ioexception.printStackTrace();
|
- com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(ioexception); // Paper
|
||||||
- ServerInternalException.reportInternalException(ioexception); // Paper
|
+ com.destroystokyo.paper.util.SneakyThrow.sneaky(ioexception); // Paper - we want the upper try/catch to retry this
|
||||||
+ com.destroystokyo.paper.util.SneakyThrow.sneaky(ioexception); // Paper - we want the upper try/catch to retry this
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java
|
diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java
|
||||||
index 84fe9ee3bf..1ea9e5bb43 100644
|
index a7f19c849..2fe27b460 100644
|
||||||
--- a/src/main/java/net/minecraft/server/RegionFileCache.java
|
--- a/src/main/java/net/minecraft/server/RegionFileCache.java
|
||||||
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java
|
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class RegionFileCache implements AutoCloseable {
|
@@ -0,0 +0,0 @@ public final class RegionFileCache implements AutoCloseable {
|
||||||
}
|
|
||||||
|
|
||||||
protected void write(ChunkCoordIntPair chunkcoordintpair, NBTTagCompound nbttagcompound) throws IOException {
|
protected void write(ChunkCoordIntPair chunkcoordintpair, NBTTagCompound nbttagcompound) throws IOException {
|
||||||
|
RegionFile regionfile = this.getFile(chunkcoordintpair, false); // CraftBukkit
|
||||||
+ int attempts = 0; Exception laste = null; while (attempts++ < 5) { try { // Paper
|
+ int attempts = 0; Exception laste = null; while (attempts++ < 5) { try { // Paper
|
||||||
RegionFile regionfile = this.a(chunkcoordintpair, false); // CraftBukkit
|
|
||||||
DataOutputStream dataoutputstream = regionfile.c(chunkcoordintpair);
|
DataOutputStream dataoutputstream = regionfile.c(chunkcoordintpair);
|
||||||
Throwable throwable = null;
|
Throwable throwable = null;
|
||||||
@@ -0,0 +0,0 @@ public abstract class RegionFileCache implements AutoCloseable {
|
|
||||||
|
@@ -0,0 +0,0 @@ public final class RegionFileCache implements AutoCloseable {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Complete resource pack API
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index 962362889a..7906b67570 100644
|
index fae57fc2c..d90c6a732 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
@ -22,7 +22,7 @@ index 962362889a..7906b67570 100644
|
|||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index 3be0c60b5c..dbd34b1432 100644
|
index b0a459d3f..d6452504b 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
|
@ -11,7 +11,7 @@ For people who want all chunks to be treated equally, you can chose a fixed valu
|
|||||||
This allows to fine-tune vanilla gameplay.
|
This allows to fine-tune vanilla gameplay.
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
index b910b648f..4afd7553d 100644
|
index cc81e1cae..edb5248f3 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
||||||
@ -30,15 +30,15 @@ index b910b648f..4afd7553d 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
index 2dbfca3f0..85e17253d 100644
|
index fd9ba8232..034e8684d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Chunk.java
|
--- a/src/main/java/net/minecraft/server/Chunk.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
|
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long q() {
|
public long getInhabitedTime() {
|
||||||
- return this.t;
|
- return this.inhabitedTime;
|
||||||
+ return world.paperConfig.fixedInhabitedTime < 0 ? this.t : world.paperConfig.fixedInhabitedTime; // Paper
|
+ return world.paperConfig.fixedInhabitedTime < 0 ? this.inhabitedTime : world.paperConfig.fixedInhabitedTime; // Paper
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Configurable Grass Spread Tick Rate
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
index 4afd7553d..88a4f8882 100644
|
index edb5248f3..862cbfbd5 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
||||||
@ -20,15 +20,15 @@ index 4afd7553d..88a4f8882 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/BlockDirtSnowSpreadable.java b/src/main/java/net/minecraft/server/BlockDirtSnowSpreadable.java
|
diff --git a/src/main/java/net/minecraft/server/BlockDirtSnowSpreadable.java b/src/main/java/net/minecraft/server/BlockDirtSnowSpreadable.java
|
||||||
index c4c9a353a..cb90b74ca 100644
|
index 9b25fc2f9..2b19b6754 100644
|
||||||
--- a/src/main/java/net/minecraft/server/BlockDirtSnowSpreadable.java
|
--- a/src/main/java/net/minecraft/server/BlockDirtSnowSpreadable.java
|
||||||
+++ b/src/main/java/net/minecraft/server/BlockDirtSnowSpreadable.java
|
+++ b/src/main/java/net/minecraft/server/BlockDirtSnowSpreadable.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class BlockDirtSnowSpreadable extends BlockDirtSnow {
|
@@ -0,0 +0,0 @@ public abstract class BlockDirtSnowSpreadable extends BlockDirtSnow {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(IBlockData iblockdata, World world, BlockPosition blockposition, Random random) {
|
public void tick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
|
||||||
+ if (this instanceof BlockGrass && world.paperConfig.grassUpdateRate != 1 && (world.paperConfig.grassUpdateRate < 1 || (MinecraftServer.currentTick + blockposition.hashCode()) % world.paperConfig.grassUpdateRate != 0)) { return; } // Paper
|
+ if (this instanceof BlockGrass && worldserver.paperConfig.grassUpdateRate != 1 && (worldserver.paperConfig.grassUpdateRate < 1 || (MinecraftServer.currentTick + blockposition.hashCode()) % worldserver.paperConfig.grassUpdateRate != 0)) { return; } // Paper
|
||||||
if (!world.isClientSide) {
|
if (!b(iblockdata, (IWorldReader) worldserver, blockposition)) {
|
||||||
if (!b(iblockdata, (IWorldReader) world, blockposition)) {
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
|
if (org.bukkit.craftbukkit.event.CraftEventFactory.callBlockFadeEvent(worldserver, blockposition, Blocks.DIRT.getBlockData()).isCancelled()) {
|
||||||
--
|
--
|
@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Non Player Arrow Despawn Rate
|
|||||||
Can set a much shorter despawn rate for arrows that players can not pick up.
|
Can set a much shorter despawn rate for arrows that players can not pick up.
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
index aaa1b60f9..b72da38a7 100644
|
index 2c20de281..64146effd 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
||||||
@ -30,7 +30,7 @@ index aaa1b60f9..b72da38a7 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
|
diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
|
||||||
index e83b50ed4..2b829abac 100644
|
index 6723ffcca..fc70d50ac 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityArrow.java
|
--- a/src/main/java/net/minecraft/server/EntityArrow.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityArrow.java
|
+++ b/src/main/java/net/minecraft/server/EntityArrow.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class EntityArrow extends Entity implements IProjectile {
|
@@ -0,0 +0,0 @@ public abstract class EntityArrow extends Entity implements IProjectile {
|
||||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Configurable Player Collision
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
index 0cef1853f5..dc3438890b 100644
|
index d500cd75a..e4f0db64c 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperConfig {
|
@@ -0,0 +0,0 @@ public class PaperConfig {
|
||||||
@ -19,7 +19,7 @@ index 0cef1853f5..dc3438890b 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index fe50d4ff71..e3bd80c934 100644
|
index 25774fb73..696cab131 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||||
@ -44,7 +44,7 @@ index fe50d4ff71..e3bd80c934 100644
|
|||||||
this.server.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.STARTUP));
|
this.server.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.STARTUP));
|
||||||
this.serverConnection.acceptConnections();
|
this.serverConnection.acceptConnections();
|
||||||
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java b/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java
|
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java b/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java
|
||||||
index b0740965a4..6b1a914d2f 100644
|
index b0740965a..6b1a914d2 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java
|
--- a/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java
|
+++ b/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java
|
||||||
@@ -0,0 +0,0 @@ public class PacketPlayOutScoreboardTeam implements Packet<PacketListenerPlayOut
|
@@ -0,0 +0,0 @@ public class PacketPlayOutScoreboardTeam implements Packet<PacketListenerPlayOut
|
||||||
@ -57,7 +57,7 @@ index b0740965a4..6b1a914d2f 100644
|
|||||||
packetdataserializer.a(this.c);
|
packetdataserializer.a(this.c);
|
||||||
packetdataserializer.a(this.d);
|
packetdataserializer.a(this.d);
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
index d368b39751..ee5297dc38 100644
|
index 94a24a49c..b7012b5b6 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
||||||
@ -80,7 +80,7 @@ index d368b39751..ee5297dc38 100644
|
|||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
// CraftBukkit - Moved from above, added world
|
// CraftBukkit - Moved from above, added world
|
||||||
PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", entityplayer.getDisplayName().getString(), s1, entityplayer.getId(), entityplayer.world.worldData.getName(), entityplayer.locX, entityplayer.locY, entityplayer.locZ);
|
PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", entityplayer.getDisplayName().getString(), s1, entityplayer.getId(), entityplayer.world.worldData.getName(), entityplayer.locX(), entityplayer.locY(), entityplayer.locZ());
|
||||||
}
|
}
|
||||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
||||||
entityplayer.playerTick();// SPIGOT-924
|
entityplayer.playerTick();// SPIGOT-924
|
||||||
@ -100,10 +100,9 @@ index d368b39751..ee5297dc38 100644
|
|||||||
if (entityplayer.isPassenger()) {
|
if (entityplayer.isPassenger()) {
|
||||||
Entity entity = entityplayer.getRootVehicle();
|
Entity entity = entityplayer.getRootVehicle();
|
||||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
||||||
player.playerConnection.disconnect(this.server.server.getShutdownMessage()); // CraftBukkit - add custom shutdown message
|
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
-
|
|
||||||
+ // Paper start - Remove collideRule team if it exists
|
+ // Paper start - Remove collideRule team if it exists
|
||||||
+ if (this.collideRuleTeamName != null) {
|
+ if (this.collideRuleTeamName != null) {
|
||||||
+ final Scoreboard scoreboard = this.getServer().getWorldServer(DimensionManager.OVERWORLD).getScoreboard();
|
+ final Scoreboard scoreboard = this.getServer().getWorldServer(DimensionManager.OVERWORLD).getScoreboard();
|
||||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] Configurable RCON IP address
|
|||||||
For servers with multiple IP's, ability to bind to a specific interface.
|
For servers with multiple IP's, ability to bind to a specific interface.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/DedicatedServerProperties.java
|
diff --git a/src/main/java/net/minecraft/server/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/DedicatedServerProperties.java
|
||||||
index ad1e3508a7..0c3ec83570 100644
|
index ad1e3508a..0c3ec8357 100644
|
||||||
--- a/src/main/java/net/minecraft/server/DedicatedServerProperties.java
|
--- a/src/main/java/net/minecraft/server/DedicatedServerProperties.java
|
||||||
+++ b/src/main/java/net/minecraft/server/DedicatedServerProperties.java
|
+++ b/src/main/java/net/minecraft/server/DedicatedServerProperties.java
|
||||||
@@ -0,0 +0,0 @@ public class DedicatedServerProperties extends PropertyManager<DedicatedServerPr
|
@@ -0,0 +0,0 @@ public class DedicatedServerProperties extends PropertyManager<DedicatedServerPr
|
||||||
@ -30,7 +30,7 @@ index ad1e3508a7..0c3ec83570 100644
|
|||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
diff --git a/src/main/java/net/minecraft/server/PropertyManager.java b/src/main/java/net/minecraft/server/PropertyManager.java
|
diff --git a/src/main/java/net/minecraft/server/PropertyManager.java b/src/main/java/net/minecraft/server/PropertyManager.java
|
||||||
index d7e81a6d99..729455ce53 100644
|
index d7e81a6d9..729455ce5 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PropertyManager.java
|
--- a/src/main/java/net/minecraft/server/PropertyManager.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PropertyManager.java
|
+++ b/src/main/java/net/minecraft/server/PropertyManager.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class PropertyManager<T extends PropertyManager<T>> {
|
@@ -0,0 +0,0 @@ public abstract class PropertyManager<T extends PropertyManager<T>> {
|
||||||
@ -45,7 +45,7 @@ index d7e81a6d99..729455ce53 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/RemoteControlListener.java b/src/main/java/net/minecraft/server/RemoteControlListener.java
|
diff --git a/src/main/java/net/minecraft/server/RemoteControlListener.java b/src/main/java/net/minecraft/server/RemoteControlListener.java
|
||||||
index e48d6dcd74..2ce490be00 100644
|
index e48d6dcd7..2ce490be0 100644
|
||||||
--- a/src/main/java/net/minecraft/server/RemoteControlListener.java
|
--- a/src/main/java/net/minecraft/server/RemoteControlListener.java
|
||||||
+++ b/src/main/java/net/minecraft/server/RemoteControlListener.java
|
+++ b/src/main/java/net/minecraft/server/RemoteControlListener.java
|
||||||
@@ -0,0 +0,0 @@ public class RemoteControlListener extends RemoteConnectionThread {
|
@@ -0,0 +0,0 @@ public class RemoteControlListener extends RemoteConnectionThread {
|
||||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Configurable spawn chances for skeleton horses
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
index b72da38a7..b910b648f 100644
|
index 64146effd..cc81e1cae 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
||||||
@ -22,7 +22,7 @@ index b72da38a7..b910b648f 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
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 9928e5aab..d3039c2fd 100644
|
index fe20687b2..8307379e9 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
|
||||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||||
|
@ -5,17 +5,14 @@ Subject: [PATCH] Custom replacement for eaten items
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
index c335a20fa9..adacb1847c 100644
|
index 6e8adb65c..14097275c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
||||||
|
|
||||||
protected void q() {
|
|
||||||
if (!this.activeItem.isEmpty() && this.isHandRaised()) {
|
|
||||||
+ PlayerItemConsumeEvent event = null; // Paper
|
|
||||||
this.b(this.activeItem, 16);
|
this.b(this.activeItem, 16);
|
||||||
// CraftBukkit start - fire PlayerItemConsumeEvent
|
// CraftBukkit start - fire PlayerItemConsumeEvent
|
||||||
ItemStack itemstack;
|
ItemStack itemstack;
|
||||||
|
+ PlayerItemConsumeEvent event = null; // Paper
|
||||||
if (this instanceof EntityPlayer) {
|
if (this instanceof EntityPlayer) {
|
||||||
org.bukkit.inventory.ItemStack craftItem = CraftItemStack.asBukkitCopy(this.activeItem);
|
org.bukkit.inventory.ItemStack craftItem = CraftItemStack.asBukkitCopy(this.activeItem);
|
||||||
- PlayerItemConsumeEvent event = new PlayerItemConsumeEvent((Player) this.getBukkitEntity(), craftItem);
|
- PlayerItemConsumeEvent event = new PlayerItemConsumeEvent((Player) this.getBukkitEntity(), craftItem);
|
||||||
@ -35,7 +32,7 @@ index c335a20fa9..adacb1847c 100644
|
|||||||
+ // Paper end
|
+ // Paper end
|
||||||
this.a(this.getRaisedHand(), itemstack);
|
this.a(this.getRaisedHand(), itemstack);
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
this.dp();
|
this.dH();
|
||||||
+ // Paper start - if the replacement is anything but the default, update the client inventory
|
+ // Paper start - if the replacement is anything but the default, update the client inventory
|
||||||
+ if (this instanceof EntityPlayer && !com.google.common.base.Objects.equal(defaultReplacement, itemstack)) {
|
+ if (this instanceof EntityPlayer && !com.google.common.base.Objects.equal(defaultReplacement, itemstack)) {
|
||||||
+ ((EntityPlayer) this).getBukkitEntity().updateInventory();
|
+ ((EntityPlayer) this).getBukkitEntity().updateInventory();
|
||||||
|
@ -16,7 +16,7 @@ modify that. Under the previous logic, plugins were unable (cleanly) override pe
|
|||||||
A config option has been added for those who depend on the previous behavior, but I don't expect that.
|
A config option has been added for those who depend on the previous behavior, but I don't expect that.
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
index 0c65afccfd..6cc99ffe43 100644
|
index f402a29b0..6ef5bb9f3 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperConfig {
|
@@ -0,0 +0,0 @@ public class PaperConfig {
|
||||||
@ -30,7 +30,7 @@ index 0c65afccfd..6cc99ffe43 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index ca4d68c181..adcb6fd1f3 100644
|
index 733abbbd9..cf12da15c 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
||||||
|
@ -11,7 +11,7 @@ So avoid looking up scoreboards and short circuit to the "not on a team"
|
|||||||
logic which is most likely to be true.
|
logic which is most likely to be true.
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
index 773fa8c32..970de3fe8 100644
|
index ba16bcc31..f5e7f24c5 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
||||||
@ -25,7 +25,7 @@ index 773fa8c32..970de3fe8 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||||
index 9629489fa..a9271479b 100644
|
index 2aea9ba50..2e5426432 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||||
@ -37,7 +37,7 @@ index 9629489fa..a9271479b 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
index fd5d1e1c8..c335a20fa 100644
|
index e38be6eba..6e8adb65c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
||||||
|
@ -5,83 +5,76 @@ Subject: [PATCH] Do not load chunks for Pathfinding
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/ChunkCache.java b/src/main/java/net/minecraft/server/ChunkCache.java
|
diff --git a/src/main/java/net/minecraft/server/ChunkCache.java b/src/main/java/net/minecraft/server/ChunkCache.java
|
||||||
index 869e8548c6..beb50d2068 100644
|
index 818872944..1065c0dec 100644
|
||||||
--- a/src/main/java/net/minecraft/server/ChunkCache.java
|
--- a/src/main/java/net/minecraft/server/ChunkCache.java
|
||||||
+++ b/src/main/java/net/minecraft/server/ChunkCache.java
|
+++ b/src/main/java/net/minecraft/server/ChunkCache.java
|
||||||
@@ -0,0 +0,0 @@ public class ChunkCache implements IWorldReader {
|
@@ -0,0 +0,0 @@ public class ChunkCache implements IBlockAccess, ICollisionAccess {
|
||||||
|
|
||||||
for (k = this.a; k <= i; ++k) {
|
for (k = this.a; k <= i; ++k) {
|
||||||
for (l = this.b; l <= j; ++l) {
|
for (l = this.b; l <= j; ++l) {
|
||||||
- this.c[k - this.a][l - this.b] = world.getChunkAt(k, l, ChunkStatus.FULL, false);
|
- this.c[k - this.a][l - this.b] = ichunkprovider.a(k, l);
|
||||||
+ this.c[k - this.a][l - this.b] = world.getChunkIfLoadedImmediately(k, l); // Paper
|
+ this.c[k - this.a][l - this.b] = world.getChunkIfLoadedImmediately(k, l); // Paper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public class ChunkCache implements IWorldReader {
|
|
||||||
int k = i - this.a;
|
|
||||||
int l = j - this.b;
|
|
||||||
|
|
||||||
- return k >= 0 && k < this.c.length && l >= 0 && l < this.c[k].length;
|
|
||||||
+ return k >= 0 && k < this.c.length && l >= 0 && l < this.c[k].length && this.c[k][l] != null; // Paper - We don't always load chunks
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||||
index 4d04ba8fc6..126c05adc7 100644
|
index 5e7158ba1..39a0c45bb 100644
|
||||||
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
|
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||||
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class NavigationAbstract {
|
@@ -0,0 +0,0 @@ public abstract class NavigationAbstract {
|
||||||
protected PathfinderAbstract o;
|
|
||||||
private BlockPosition q;
|
private BlockPosition q;
|
||||||
private int r;
|
private int r;
|
||||||
- private Pathfinder s;
|
private float s;
|
||||||
+ private Pathfinder s; public Pathfinder getPathfinder() { return this.s; } // Paper - OBFHELPER
|
- private final Pathfinder t;
|
||||||
|
+ private final Pathfinder t; public Pathfinder getPathfinder() { return this.t; } // Paper - OBFHELPER
|
||||||
|
|
||||||
public NavigationAbstract(EntityInsentient entityinsentient, World world) {
|
public NavigationAbstract(EntityInsentient entityinsentient, World world) {
|
||||||
this.g = Vec3D.a;
|
this.g = Vec3D.a;
|
||||||
diff --git a/src/main/java/net/minecraft/server/Pathfinder.java b/src/main/java/net/minecraft/server/Pathfinder.java
|
diff --git a/src/main/java/net/minecraft/server/Pathfinder.java b/src/main/java/net/minecraft/server/Pathfinder.java
|
||||||
index 30b4569a39..0cec80ec7d 100644
|
index 619957061..67c63cfe3 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Pathfinder.java
|
--- a/src/main/java/net/minecraft/server/Pathfinder.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Pathfinder.java
|
+++ b/src/main/java/net/minecraft/server/Pathfinder.java
|
||||||
@@ -0,0 +0,0 @@ public class Pathfinder {
|
@@ -0,0 +0,0 @@ public class Pathfinder {
|
||||||
private final Set<PathPoint> b = Sets.newHashSet();
|
private final Set<PathPoint> b = Sets.newHashSet();
|
||||||
private final PathPoint[] c = new PathPoint[32];
|
private final PathPoint[] c = new PathPoint[32];
|
||||||
private final int d;
|
private final int d;
|
||||||
- private PathfinderAbstract e;
|
- private final PathfinderAbstract e;
|
||||||
+ private PathfinderAbstract e; public PathfinderAbstract getPathfinder() { return this.e; } // Paper - OBFHELPER
|
+ private final PathfinderAbstract e; public PathfinderAbstract getPathfinder() { return this.e; } // Paper - OBFHELPER
|
||||||
|
|
||||||
public Pathfinder(PathfinderAbstract pathfinderabstract, int i) {
|
public Pathfinder(PathfinderAbstract pathfinderabstract, int i) {
|
||||||
this.e = pathfinderabstract;
|
this.e = pathfinderabstract;
|
||||||
diff --git a/src/main/java/net/minecraft/server/PathfinderNormal.java b/src/main/java/net/minecraft/server/PathfinderNormal.java
|
diff --git a/src/main/java/net/minecraft/server/PathfinderNormal.java b/src/main/java/net/minecraft/server/PathfinderNormal.java
|
||||||
index 617c29a58a..45fd135034 100644
|
index ef248ebcc..4240ca81c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PathfinderNormal.java
|
--- a/src/main/java/net/minecraft/server/PathfinderNormal.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PathfinderNormal.java
|
+++ b/src/main/java/net/minecraft/server/PathfinderNormal.java
|
||||||
@@ -0,0 +0,0 @@ public class PathfinderNormal extends PathfinderAbstract {
|
@@ -0,0 +0,0 @@ public class PathfinderNormal extends PathfinderAbstract {
|
||||||
PathType pathtype = this.b(iblockaccess, i, j, k);
|
PathType pathtype = c(iblockaccess, i, j, k);
|
||||||
|
|
||||||
if (pathtype == PathType.OPEN && j >= 1) {
|
if (pathtype == PathType.OPEN && j >= 1) {
|
||||||
- Block block = iblockaccess.getType(new BlockPosition(i, j - 1, k)).getBlock();
|
- Block block = iblockaccess.getType(new BlockPosition(i, j - 1, k)).getBlock();
|
||||||
+ Block block = iblockaccess.getBlockIfLoaded(new BlockPosition(i, j - 1, k)); // Paper
|
+ Block block = iblockaccess.getBlockIfLoaded(new BlockPosition(i, j - 1, k)); // Paper
|
||||||
+ if (block == null) return PathType.BLOCKED; // Paper
|
+ if (block == null) return PathType.BLOCKED; // Paper
|
||||||
PathType pathtype1 = this.b(iblockaccess, i, j - 1, k);
|
PathType pathtype1 = c(iblockaccess, i, j - 1, k);
|
||||||
|
|
||||||
pathtype = pathtype1 != PathType.WALKABLE && pathtype1 != PathType.OPEN && pathtype1 != PathType.WATER && pathtype1 != PathType.LAVA ? PathType.WALKABLE : PathType.OPEN;
|
pathtype = pathtype1 != PathType.WALKABLE && pathtype1 != PathType.OPEN && pathtype1 != PathType.WATER && pathtype1 != PathType.LAVA ? PathType.WALKABLE : PathType.OPEN;
|
||||||
@@ -0,0 +0,0 @@ public class PathfinderNormal extends PathfinderAbstract {
|
@@ -0,0 +0,0 @@ public class PathfinderNormal extends PathfinderAbstract {
|
||||||
for (int l = -1; l <= 1; ++l) {
|
|
||||||
for (int i1 = -1; i1 <= 1; ++i1) {
|
for (int i1 = -1; i1 <= 1; ++i1) {
|
||||||
if (l != 0 || i1 != 0) {
|
for (int j1 = -1; j1 <= 1; ++j1) {
|
||||||
- Block block = iblockaccess.getType(blockposition_pooledblockposition.d(l + i, j, i1 + k)).getBlock();
|
if (l != 0 || j1 != 0) {
|
||||||
+ Block block = iblockaccess.getBlockIfLoaded(blockposition_pooledblockposition.d(l + i, j, i1 + k)); // Paper
|
- Block block = iblockaccess.getType(blockposition_pooledblockposition.d(l + i, i1 + j, j1 + k)).getBlock();
|
||||||
|
-
|
||||||
- if (block == Blocks.CACTUS) {
|
+ // Paper start
|
||||||
+ if (block == null) pathtype = PathType.BLOCKED; // Paper
|
+ Block block = iblockaccess.getBlockIfLoaded(blockposition_pooledblockposition.d(l + i, i1 + j, j1 + k));
|
||||||
+ else if (block == Blocks.CACTUS) { // Paper
|
+ if (block == null) {
|
||||||
|
+ pathtype = PathType.BLOCKED;
|
||||||
|
+ } else
|
||||||
|
+ // Paper end
|
||||||
|
if (block == Blocks.CACTUS) {
|
||||||
pathtype = PathType.DANGER_CACTUS;
|
pathtype = PathType.DANGER_CACTUS;
|
||||||
} else if (block == Blocks.FIRE) {
|
} else if (block != Blocks.FIRE && block != Blocks.LAVA) {
|
||||||
pathtype = PathType.DANGER_FIRE;
|
|
||||||
@@ -0,0 +0,0 @@ public class PathfinderNormal extends PathfinderAbstract {
|
@@ -0,0 +0,0 @@ public class PathfinderNormal extends PathfinderAbstract {
|
||||||
|
|
||||||
protected PathType b(IBlockAccess iblockaccess, int i, int j, int k) {
|
protected static PathType c(IBlockAccess iblockaccess, int i, int j, int k) {
|
||||||
BlockPosition blockposition = new BlockPosition(i, j, k);
|
BlockPosition blockposition = new BlockPosition(i, j, k);
|
||||||
- IBlockData iblockdata = iblockaccess.getType(blockposition);
|
- IBlockData iblockdata = iblockaccess.getType(blockposition);
|
||||||
+ IBlockData iblockdata = iblockaccess.getTypeIfLoaded(blockposition); // Paper
|
+ IBlockData iblockdata = iblockaccess.getTypeIfLoaded(blockposition); // Paper
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Aikar <aikar@aikar.co>
|
|
||||||
Date: Thu, 31 Mar 2016 19:17:58 -0400
|
|
||||||
Subject: [PATCH] Do not load chunks for light checks
|
|
||||||
|
|
||||||
Should only happen for blocks on the edge that uses neighbors light level
|
|
||||||
(certain blocks). In that case, there will be 3-4 other neighbors to get a light level from.
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
||||||
index 1ffa8b42b..35fb686d8 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/World.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/World.java
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
|
||||||
if (blockposition.getY() >= 256) {
|
|
||||||
blockposition = new BlockPosition(blockposition.getX(), 255, blockposition.getZ());
|
|
||||||
}
|
|
||||||
+ if (!this.isLoaded(blockposition)) return 0; // Paper
|
|
||||||
|
|
||||||
return this.getChunkAtWorldCoords(blockposition).a(blockposition, i);
|
|
||||||
}
|
|
||||||
--
|
|
@ -5,12 +5,12 @@ Subject: [PATCH] Entity AddTo/RemoveFrom World Events
|
|||||||
|
|
||||||
|
|
||||||
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 dfb8a70a2c..835428e839 100644
|
index 30c9cfa12..64b80441f 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
|
||||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||||
if (entity instanceof EntityInsentient) {
|
if (entity instanceof EntityInsentient) {
|
||||||
this.H.remove(((EntityInsentient) entity).getNavigation());
|
this.navigators.remove(((EntityInsentient) entity).getNavigation());
|
||||||
}
|
}
|
||||||
-
|
-
|
||||||
+ new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
|
+ new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
|
||||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] EntityPathfindEvent
|
|||||||
Fires when an Entity decides to start moving to a location.
|
Fires when an Entity decides to start moving to a location.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/Navigation.java b/src/main/java/net/minecraft/server/Navigation.java
|
diff --git a/src/main/java/net/minecraft/server/Navigation.java b/src/main/java/net/minecraft/server/Navigation.java
|
||||||
index 9ca0e2c9d0..fd1dbb1085 100644
|
index 3fdeda0ce..abf450917 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Navigation.java
|
--- a/src/main/java/net/minecraft/server/Navigation.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Navigation.java
|
+++ b/src/main/java/net/minecraft/server/Navigation.java
|
||||||
@@ -0,0 +0,0 @@ public class Navigation extends NavigationAbstract {
|
@@ -0,0 +0,0 @@ public class Navigation extends NavigationAbstract {
|
||||||
@ -19,7 +19,7 @@ index 9ca0e2c9d0..fd1dbb1085 100644
|
|||||||
|
|
||||||
private int t() {
|
private int t() {
|
||||||
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||||
index 4e49133b03..4d04ba8fc6 100644
|
index a600ee765..5e7158ba1 100644
|
||||||
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
|
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||||
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||||
@@ -0,0 +0,0 @@ import javax.annotation.Nullable;
|
@@ -0,0 +0,0 @@ import javax.annotation.Nullable;
|
||||||
@ -59,7 +59,7 @@ index 4e49133b03..4d04ba8fc6 100644
|
|||||||
+ // Paper end
|
+ // Paper end
|
||||||
if (set.isEmpty()) {
|
if (set.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
} else if (this.a.locY < 0.0D) {
|
} else if (this.a.locY() < 0.0D) {
|
||||||
@@ -0,0 +0,0 @@ public abstract class NavigationAbstract {
|
@@ -0,0 +0,0 @@ public abstract class NavigationAbstract {
|
||||||
} else if (this.c != null && !this.c.b() && set.contains(this.q)) {
|
} else if (this.c != null && !this.c.b() && set.contains(this.q)) {
|
||||||
return this.c;
|
return this.c;
|
||||||
@ -82,10 +82,10 @@ index 4e49133b03..4d04ba8fc6 100644
|
|||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
this.b.getMethodProfiler().enter("pathfind");
|
this.b.getMethodProfiler().enter("pathfind");
|
||||||
float f = this.i();
|
float f = (float) this.p.getValue();
|
||||||
BlockPosition blockposition = flag ? (new BlockPosition(this.a)).up() : new BlockPosition(this.a);
|
BlockPosition blockposition = flag ? (new BlockPosition(this.a)).up() : new BlockPosition(this.a);
|
||||||
diff --git a/src/main/java/net/minecraft/server/NavigationFlying.java b/src/main/java/net/minecraft/server/NavigationFlying.java
|
diff --git a/src/main/java/net/minecraft/server/NavigationFlying.java b/src/main/java/net/minecraft/server/NavigationFlying.java
|
||||||
index f5844a7260..fbf5752aa5 100644
|
index 5b057e96d..f16c6d1fa 100644
|
||||||
--- a/src/main/java/net/minecraft/server/NavigationFlying.java
|
--- a/src/main/java/net/minecraft/server/NavigationFlying.java
|
||||||
+++ b/src/main/java/net/minecraft/server/NavigationFlying.java
|
+++ b/src/main/java/net/minecraft/server/NavigationFlying.java
|
||||||
@@ -0,0 +0,0 @@ public class NavigationFlying extends NavigationAbstract {
|
@@ -0,0 +0,0 @@ public class NavigationFlying extends NavigationAbstract {
|
||||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] EntityRegainHealthEvent isFastRegen API
|
|||||||
Don't even get me started
|
Don't even get me started
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
index 18e152b8f..45c024ca2 100644
|
index bdbd89996..191e7dfaf 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
||||||
@ -28,7 +28,7 @@ index 18e152b8f..45c024ca2 100644
|
|||||||
if (this.valid) {
|
if (this.valid) {
|
||||||
this.world.getServer().getPluginManager().callEvent(event);
|
this.world.getServer().getPluginManager().callEvent(event);
|
||||||
diff --git a/src/main/java/net/minecraft/server/FoodMetaData.java b/src/main/java/net/minecraft/server/FoodMetaData.java
|
diff --git a/src/main/java/net/minecraft/server/FoodMetaData.java b/src/main/java/net/minecraft/server/FoodMetaData.java
|
||||||
index 739b8fd18..28b04f35e 100644
|
index 01d702d5c..c3a9a9bd4 100644
|
||||||
--- a/src/main/java/net/minecraft/server/FoodMetaData.java
|
--- a/src/main/java/net/minecraft/server/FoodMetaData.java
|
||||||
+++ b/src/main/java/net/minecraft/server/FoodMetaData.java
|
+++ b/src/main/java/net/minecraft/server/FoodMetaData.java
|
||||||
@@ -0,0 +0,0 @@ public class FoodMetaData {
|
@@ -0,0 +0,0 @@ public class FoodMetaData {
|
||||||
|
@ -5,10 +5,10 @@ Subject: [PATCH] Fix Cancelling BlockPlaceEvent triggering physics
|
|||||||
|
|
||||||
|
|
||||||
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 a0e3974a54..07d1505867 100644
|
index c4d5907b5..57633955c 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
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
public void b(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1) {}
|
public void b(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1) {}
|
||||||
|
|
||||||
public void applyPhysics(BlockPosition blockposition, Block block) {
|
public void applyPhysics(BlockPosition blockposition, Block block) {
|
||||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Fix reducedDebugInfo not initialized on client
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
index 35bda2e1d..cce5305fb 100644
|
index 948a6e3b7..05ea0ace5 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
||||||
|
@ -18,7 +18,7 @@ For consistency, the old API methods now forward to use the
|
|||||||
ItemMeta API equivalents, and should deprecate the old API's.
|
ItemMeta API equivalents, and should deprecate the old API's.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
index 9ebfbff46b..b1dfd64d15 100644
|
index 8e8fab497..0a1596ff0 100644
|
||||||
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
||||||
@@ -0,0 +0,0 @@ import com.mojang.brigadier.StringReader;
|
@@ -0,0 +0,0 @@ import com.mojang.brigadier.StringReader;
|
||||||
@ -31,9 +31,9 @@ index 9ebfbff46b..b1dfd64d15 100644
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
@@ -0,0 +0,0 @@ public final class ItemStack {
|
@@ -0,0 +0,0 @@ public final class ItemStack {
|
||||||
decimalformat.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ROOT));
|
|
||||||
return decimalformat;
|
return decimalformat;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ private static final java.util.Comparator<? super NBTTagCompound> enchantSorter = java.util.Comparator.comparing(o -> o.getString("id"));
|
+ private static final java.util.Comparator<? super NBTTagCompound> enchantSorter = java.util.Comparator.comparing(o -> o.getString("id"));
|
||||||
+ private void processEnchantOrder(NBTTagCompound tag) {
|
+ private void processEnchantOrder(NBTTagCompound tag) {
|
||||||
@ -50,9 +50,10 @@ index 9ebfbff46b..b1dfd64d15 100644
|
|||||||
+ } catch (Exception ignored) {}
|
+ } catch (Exception ignored) {}
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
|
+
|
||||||
public ItemStack(IMaterial imaterial) {
|
public ItemStack(IMaterial imaterial) {
|
||||||
this(imaterial, 1);
|
this(imaterial, 1);
|
||||||
|
}
|
||||||
@@ -0,0 +0,0 @@ public final class ItemStack {
|
@@ -0,0 +0,0 @@ public final class ItemStack {
|
||||||
if (nbttagcompound.hasKeyOfType("tag", 10)) {
|
if (nbttagcompound.hasKeyOfType("tag", 10)) {
|
||||||
// CraftBukkit start - make defensive copy as this data may be coming from the save thread
|
// CraftBukkit start - make defensive copy as this data may be coming from the save thread
|
||||||
@ -66,9 +67,9 @@ index 9ebfbff46b..b1dfd64d15 100644
|
|||||||
public void setTag(@Nullable NBTTagCompound nbttagcompound) {
|
public void setTag(@Nullable NBTTagCompound nbttagcompound) {
|
||||||
this.tag = nbttagcompound;
|
this.tag = nbttagcompound;
|
||||||
+ processEnchantOrder(this.tag); // Paper
|
+ processEnchantOrder(this.tag); // Paper
|
||||||
}
|
// CraftBukkit start - ensure null tags do not get inappropriately used (SpigotCraft#463)
|
||||||
|
if (this.tag == null && this.item != null && this.item.usesDurability()) {
|
||||||
public IChatBaseComponent getName() {
|
this.setDamage(this.getDamage());
|
||||||
@@ -0,0 +0,0 @@ public final class ItemStack {
|
@@ -0,0 +0,0 @@ public final class ItemStack {
|
||||||
nbttagcompound.setString("id", String.valueOf(IRegistry.ENCHANTMENT.getKey(enchantment)));
|
nbttagcompound.setString("id", String.valueOf(IRegistry.ENCHANTMENT.getKey(enchantment)));
|
||||||
nbttagcompound.setShort("lvl", (short) ((byte) i));
|
nbttagcompound.setShort("lvl", (short) ((byte) i));
|
||||||
@ -78,7 +79,7 @@ index 9ebfbff46b..b1dfd64d15 100644
|
|||||||
|
|
||||||
public boolean hasEnchantments() {
|
public boolean hasEnchantments() {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||||||
index b0f9fa0ecd..9c9852f7a2 100644
|
index 15e3edee2..410444747 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||||||
@@ -0,0 +0,0 @@ public final class CraftItemStack extends ItemStack {
|
@@ -0,0 +0,0 @@ public final class CraftItemStack extends ItemStack {
|
||||||
@ -140,13 +141,7 @@ index b0f9fa0ecd..9c9852f7a2 100644
|
|||||||
- NBTTagList list = getEnchantmentList(handle), listCopy;
|
- NBTTagList list = getEnchantmentList(handle), listCopy;
|
||||||
- if (list == null) {
|
- if (list == null) {
|
||||||
- return 0;
|
- return 0;
|
||||||
+ // Paper start - replace entire method
|
- }
|
||||||
+ final ItemMeta itemMeta = getItemMeta();
|
|
||||||
+ int level = itemMeta.getEnchantLevel(ench);
|
|
||||||
+ if (level > 0) {
|
|
||||||
+ itemMeta.removeEnchant(ench);
|
|
||||||
+ setItemMeta(itemMeta);
|
|
||||||
}
|
|
||||||
- int index = Integer.MIN_VALUE;
|
- int index = Integer.MIN_VALUE;
|
||||||
- int level = Integer.MIN_VALUE;
|
- int level = Integer.MIN_VALUE;
|
||||||
- int size = list.size();
|
- int size = list.size();
|
||||||
@ -178,11 +173,17 @@ index b0f9fa0ecd..9c9852f7a2 100644
|
|||||||
- if (i != index) {
|
- if (i != index) {
|
||||||
- listCopy.add(list.get(i));
|
- listCopy.add(list.get(i));
|
||||||
- }
|
- }
|
||||||
- }
|
+ // Paper start - replace entire method
|
||||||
|
+ final ItemMeta itemMeta = getItemMeta();
|
||||||
|
+ int level = itemMeta.getEnchantLevel(ench);
|
||||||
|
+ if (level > 0) {
|
||||||
|
+ itemMeta.removeEnchant(ench);
|
||||||
|
+ setItemMeta(itemMeta);
|
||||||
|
}
|
||||||
- handle.getTag().set(ENCHANTMENTS.NBT, listCopy);
|
- handle.getTag().set(ENCHANTMENTS.NBT, listCopy);
|
||||||
-
|
|
||||||
return level;
|
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
|
|
||||||
|
return level;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -193,7 +194,7 @@ index b0f9fa0ecd..9c9852f7a2 100644
|
|||||||
|
|
||||||
static Map<Enchantment, Integer> getEnchantments(net.minecraft.server.ItemStack item) {
|
static Map<Enchantment, Integer> getEnchantments(net.minecraft.server.ItemStack item) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
||||||
index 33c988ead3..479a5686aa 100644
|
index 0f901453d..5ee968f2e 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
||||||
@@ -0,0 +0,0 @@ import com.google.common.collect.ImmutableList;
|
@@ -0,0 +0,0 @@ import com.google.common.collect.ImmutableList;
|
||||||
@ -204,14 +205,14 @@ index 33c988ead3..479a5686aa 100644
|
|||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
import com.google.common.collect.SetMultimap;
|
import com.google.common.collect.SetMultimap;
|
||||||
@@ -0,0 +0,0 @@ import java.util.ArrayList;
|
@@ -0,0 +0,0 @@ import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.EnumSet;
|
|
||||||
+import java.util.Comparator; // Paper
|
+import java.util.Comparator; // Paper
|
||||||
|
import java.util.EnumSet;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
@@ -0,0 +0,0 @@ import java.util.Locale;
|
@@ -0,0 +0,0 @@ import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
@ -306,9 +307,10 @@ index 33c988ead3..479a5686aa 100644
|
|||||||
if (this.hasAttributeModifiers()) {
|
if (this.hasAttributeModifiers()) {
|
||||||
clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
|
clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
|
||||||
@@ -0,0 +0,0 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
|
@@ -0,0 +0,0 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
|
||||||
|
return HANDLED_TAGS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
+
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ private static class EnchantmentMap extends TreeMap<Enchantment, Integer> {
|
+ private static class EnchantmentMap extends TreeMap<Enchantment, Integer> {
|
||||||
+ private EnchantmentMap(Map<Enchantment, Integer> enchantments) {
|
+ private EnchantmentMap(Map<Enchantment, Integer> enchantments) {
|
||||||
@ -326,7 +328,5 @@ index 33c988ead3..479a5686aa 100644
|
|||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
+
|
+
|
||||||
// Spigot start
|
}
|
||||||
private final Spigot spigot = new Spigot()
|
|
||||||
{
|
|
||||||
--
|
--
|
@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerLocaleChangeEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
index 55e8174bf..3b80e7bfb 100644
|
index 6354f25b2..6595dca86 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||||
@@ -0,0 +0,0 @@ import org.bukkit.inventory.MainHand;
|
@@ -0,0 +0,0 @@ import org.bukkit.inventory.MainHand;
|
||||||
@ -36,11 +36,11 @@ index 55e8174bf..3b80e7bfb 100644
|
|||||||
+ new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), oldLocale, this.locale).callEvent();
|
+ new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), oldLocale, this.locale).callEvent();
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
this.ck = packetplayinsettings.d();
|
this.ch = packetplayinsettings.d();
|
||||||
this.cl = packetplayinsettings.e();
|
this.ci = packetplayinsettings.e();
|
||||||
this.getDataWatcher().set(EntityPlayer.bt, (byte) packetplayinsettings.f());
|
this.getDataWatcher().set(EntityPlayer.bq, (byte) packetplayinsettings.f());
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index 881fa70b2..151dcf243 100644
|
index f48a77f21..534e2756d 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
@ -57,12 +57,11 @@ index 881fa70b2..151dcf243 100644
|
|||||||
|
|
||||||
// Paper start
|
// Paper start
|
||||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
@Override
|
}
|
||||||
public String getLocale()
|
|
||||||
{
|
|
||||||
- return getHandle().locale;
|
|
||||||
+ return CraftPlayer.this.getLocale(); // Paper
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
- @Override
|
||||||
|
public Set<Player> getHiddenPlayers()
|
||||||
|
{
|
||||||
|
Set<Player> ret = new HashSet<Player>();
|
||||||
--
|
--
|
@ -13,7 +13,7 @@ custom renderers are in use, defaulting to the much simpler Vanilla system.
|
|||||||
Additionally, numerous issues to player position tracking on maps has been fixed.
|
Additionally, numerous issues to player position tracking on maps has been fixed.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||||
index 9bddbd8a88..4ceac0a2ff 100644
|
index 761fe32ba..242d0df1c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving {
|
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving {
|
||||||
@ -30,7 +30,7 @@ index 9bddbd8a88..4ceac0a2ff 100644
|
|||||||
return entityitem;
|
return entityitem;
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/WorldMap.java b/src/main/java/net/minecraft/server/WorldMap.java
|
diff --git a/src/main/java/net/minecraft/server/WorldMap.java b/src/main/java/net/minecraft/server/WorldMap.java
|
||||||
index fc08158937..090d3dbd31 100644
|
index a56ac3da8..2f1be1995 100644
|
||||||
--- a/src/main/java/net/minecraft/server/WorldMap.java
|
--- a/src/main/java/net/minecraft/server/WorldMap.java
|
||||||
+++ b/src/main/java/net/minecraft/server/WorldMap.java
|
+++ b/src/main/java/net/minecraft/server/WorldMap.java
|
||||||
@@ -0,0 +0,0 @@ public class WorldMap extends PersistentBase {
|
@@ -0,0 +0,0 @@ public class WorldMap extends PersistentBase {
|
||||||
@ -102,7 +102,7 @@ index fc08158937..090d3dbd31 100644
|
|||||||
for ( org.bukkit.map.MapCursor cursor : render.cursors) {
|
for ( org.bukkit.map.MapCursor cursor : render.cursors) {
|
||||||
|
|
||||||
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 5a6b82dbc3..d50e804102 100644
|
index f03e562c3..ea9899889 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
|
||||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||||
@ -114,7 +114,7 @@ index 5a6b82dbc3..d50e804102 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java
|
||||||
index 256a131781..5768cd512e 100644
|
index 256a13178..5768cd512 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java
|
--- a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java
|
||||||
@@ -0,0 +0,0 @@ import org.bukkit.map.MapCursor;
|
@@ -0,0 +0,0 @@ import org.bukkit.map.MapCursor;
|
||||||
|
@ -443,7 +443,7 @@ index ee2059cf8..77bb6b092 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/VillagePlace.java b/src/main/java/net/minecraft/server/VillagePlace.java
|
diff --git a/src/main/java/net/minecraft/server/VillagePlace.java b/src/main/java/net/minecraft/server/VillagePlace.java
|
||||||
index c137484f6..5f03eb40b 100644
|
index c137484f6..c999f8c9b 100644
|
||||||
--- a/src/main/java/net/minecraft/server/VillagePlace.java
|
--- a/src/main/java/net/minecraft/server/VillagePlace.java
|
||||||
+++ b/src/main/java/net/minecraft/server/VillagePlace.java
|
+++ b/src/main/java/net/minecraft/server/VillagePlace.java
|
||||||
@@ -0,0 +0,0 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
|
@@ -0,0 +0,0 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
|
||||||
@ -456,6 +456,15 @@ index c137484f6..5f03eb40b 100644
|
|||||||
chunksection.getClass();
|
chunksection.getClass();
|
||||||
return stream.anyMatch(chunksection::a);
|
return stream.anyMatch(chunksection::a);
|
||||||
@@ -0,0 +0,0 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
|
@@ -0,0 +0,0 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
|
||||||
|
SectionPosition.b(new ChunkCoordIntPair(blockposition), Math.floorDiv(i, 16)).map((sectionposition) -> {
|
||||||
|
return Pair.of(sectionposition, this.d(sectionposition.v()));
|
||||||
|
}).filter((pair) -> {
|
||||||
|
- return !(Boolean) ((Optional) pair.getSecond()).map(VillagePlaceSection::a).orElse(false);
|
||||||
|
+ return !(Boolean) (pair.getSecond()).map(VillagePlaceSection::a).orElse(false); // Paper - decompile fix
|
||||||
|
}).map((pair) -> {
|
||||||
|
return ((SectionPosition) pair.getFirst()).u();
|
||||||
|
}).filter((chunkcoordintpair) -> {
|
||||||
|
@@ -0,0 +0,0 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
|
||||||
|
|
||||||
private final Predicate<? super VillagePlaceRecord> d;
|
private final Predicate<? super VillagePlaceRecord> d;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener
|
|||||||
Saves on some object allocation and processing when no plugin listens to this
|
Saves on some object allocation and processing when no plugin listens to this
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/BlockPlant.java b/src/main/java/net/minecraft/server/BlockPlant.java
|
diff --git a/src/main/java/net/minecraft/server/BlockPlant.java b/src/main/java/net/minecraft/server/BlockPlant.java
|
||||||
index 9bf42bb5e..0526af776 100644
|
index ed1da4f4b..a6891b9fa 100644
|
||||||
--- a/src/main/java/net/minecraft/server/BlockPlant.java
|
--- a/src/main/java/net/minecraft/server/BlockPlant.java
|
||||||
+++ b/src/main/java/net/minecraft/server/BlockPlant.java
|
+++ b/src/main/java/net/minecraft/server/BlockPlant.java
|
||||||
@@ -0,0 +0,0 @@ public class BlockPlant extends Block {
|
@@ -0,0 +0,0 @@ public class BlockPlant extends Block {
|
||||||
@ -19,7 +19,7 @@ index 9bf42bb5e..0526af776 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/BlockTallPlant.java b/src/main/java/net/minecraft/server/BlockTallPlant.java
|
diff --git a/src/main/java/net/minecraft/server/BlockTallPlant.java b/src/main/java/net/minecraft/server/BlockTallPlant.java
|
||||||
index ef392f5fe..227fe073f 100644
|
index 42e86881b..6cdce1158 100644
|
||||||
--- a/src/main/java/net/minecraft/server/BlockTallPlant.java
|
--- a/src/main/java/net/minecraft/server/BlockTallPlant.java
|
||||||
+++ b/src/main/java/net/minecraft/server/BlockTallPlant.java
|
+++ b/src/main/java/net/minecraft/server/BlockTallPlant.java
|
||||||
@@ -0,0 +0,0 @@ public class BlockTallPlant extends BlockPlant {
|
@@ -0,0 +0,0 @@ public class BlockTallPlant extends BlockPlant {
|
||||||
@ -32,7 +32,7 @@ index ef392f5fe..227fe073f 100644
|
|||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index f56edde78..34be67417 100644
|
index 81d3a5262..25774fb73 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||||
@ -44,10 +44,10 @@ index f56edde78..34be67417 100644
|
|||||||
this.methodProfiler.a(() -> {
|
this.methodProfiler.a(() -> {
|
||||||
return worldserver.getWorldData().getName() + " " + IRegistry.DIMENSION_TYPE.getKey(worldserver.worldProvider.getDimensionManager());
|
return worldserver.getWorldData().getName() + " " + IRegistry.DIMENSION_TYPE.getKey(worldserver.worldProvider.getDimensionManager());
|
||||||
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 c40777ecb..cb5515dc3 100644
|
index 182376a0a..ead8d84be 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
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
iblockdata1.b(this, blockposition, j); // Don't call an event for the old block to limit event spam
|
iblockdata1.b(this, blockposition, j); // Don't call an event for the old block to limit event spam
|
||||||
CraftWorld world = ((WorldServer) this).getWorld();
|
CraftWorld world = ((WorldServer) this).getWorld();
|
||||||
@ -56,7 +56,7 @@ index c40777ecb..cb5515dc3 100644
|
|||||||
BlockPhysicsEvent event = new BlockPhysicsEvent(world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()), CraftBlockData.fromData(iblockdata));
|
BlockPhysicsEvent event = new BlockPhysicsEvent(world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()), CraftBlockData.fromData(iblockdata));
|
||||||
this.getServer().getPluginManager().callEvent(event);
|
this.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
try {
|
try {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
CraftWorld world = ((WorldServer) this).getWorld();
|
CraftWorld world = ((WorldServer) this).getWorld();
|
||||||
@ -66,7 +66,7 @@ index c40777ecb..cb5515dc3 100644
|
|||||||
this.getServer().getPluginManager().callEvent(event);
|
this.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
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 df3a9340a..559dee777 100644
|
index 8307379e9..30c9cfa12 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
|
||||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||||
|
@ -12,12 +12,12 @@ Replace all calls to the new place to the unnecessary forward.
|
|||||||
Optimize getType and getBlockData to manually inline and optimize the calls
|
Optimize getType and getBlockData to manually inline and optimize the calls
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||||
index 2852a17f23..7cb46d7a9c 100644
|
index a3b5793e4..71089442c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
--- a/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||||
+++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
+++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||||
@@ -0,0 +0,0 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
|
@@ -0,0 +0,0 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
|
||||||
private final int a;
|
|
||||||
private final int b;
|
private final int b;
|
||||||
|
@Deprecated
|
||||||
private final int c;
|
private final int c;
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ public boolean isValidLocation() {
|
+ public boolean isValidLocation() {
|
||||||
@ -30,29 +30,8 @@ index 2852a17f23..7cb46d7a9c 100644
|
|||||||
|
|
||||||
public BaseBlockPosition(int i, int j, int k) {
|
public BaseBlockPosition(int i, int j, int k) {
|
||||||
this.a = i;
|
this.a = i;
|
||||||
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
|
|
||||||
index 2613de6624..2eabaaeba2 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/BlockPosition.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
|
|
||||||
@@ -0,0 +0,0 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
|
|
||||||
protected int b;
|
|
||||||
protected int c;
|
|
||||||
protected int d;
|
|
||||||
+ // Paper start
|
|
||||||
+ @Override
|
|
||||||
+ public boolean isValidLocation() {
|
|
||||||
+ return b >= -30000000 && d >= -30000000 && b < 30000000 && d < 30000000 && c >= 0 && c < 256;
|
|
||||||
+ }
|
|
||||||
+ @Override
|
|
||||||
+ public boolean isInvalidYLocation() {
|
|
||||||
+ return c < 0 || c >= 256;
|
|
||||||
+ }
|
|
||||||
+ // Paper end
|
|
||||||
|
|
||||||
public MutableBlockPosition() {
|
|
||||||
this(0, 0, 0);
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
index 4aaf20dfcb..591c823b39 100644
|
index be32b31e7..fd9ba8232 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Chunk.java
|
--- a/src/main/java/net/minecraft/server/Chunk.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
|
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
|
||||||
@ -85,7 +64,7 @@ index 4aaf20dfcb..591c823b39 100644
|
|||||||
IBlockData iblockdata = null;
|
IBlockData iblockdata = null;
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java
|
diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java
|
||||||
index f4605e3937..c4c181c1d5 100644
|
index 652067757..0d5deee36 100644
|
||||||
--- a/src/main/java/net/minecraft/server/ChunkSection.java
|
--- a/src/main/java/net/minecraft/server/ChunkSection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/ChunkSection.java
|
+++ b/src/main/java/net/minecraft/server/ChunkSection.java
|
||||||
@@ -0,0 +0,0 @@ public class ChunkSection {
|
@@ -0,0 +0,0 @@ public class ChunkSection {
|
||||||
@ -93,25 +72,25 @@ index f4605e3937..c4c181c1d5 100644
|
|||||||
private short tickingBlockCount;
|
private short tickingBlockCount;
|
||||||
private short e;
|
private short e;
|
||||||
- private final DataPaletteBlock<IBlockData> blockIds;
|
- private final DataPaletteBlock<IBlockData> blockIds;
|
||||||
+ final DataPaletteBlock<IBlockData> blockIds; // Paper - package
|
+ final DataPaletteBlock<IBlockData> blockIds;
|
||||||
|
|
||||||
public ChunkSection(int i) {
|
public ChunkSection(int i) {
|
||||||
this(i, (short) 0, (short) 0, (short) 0);
|
this(i, (short) 0, (short) 0, (short) 0);
|
||||||
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 769d59271a..822db5d4c0 100644
|
index 4feb3e9d8..182376a0a 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
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isValidLocation(BlockPosition blockposition) {
|
public static boolean isValidLocation(BlockPosition blockposition) {
|
||||||
- return !isOutsideWorld(blockposition) && blockposition.getX() >= -30000000 && blockposition.getZ() >= -30000000 && blockposition.getX() < 30000000 && blockposition.getZ() < 30000000;
|
- return !isOutsideWorld(blockposition) && blockposition.getX() >= -30000000 && blockposition.getZ() >= -30000000 && blockposition.getX() < 30000000 && blockposition.getZ() < 30000000;
|
||||||
+ return blockposition.isValidLocation(); // Paper
|
+ return blockposition.isValidLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isOutsideWorld(BlockPosition blockposition) {
|
public static boolean isOutsideWorld(BlockPosition blockposition) {
|
||||||
- return b(blockposition.getY());
|
- return b(blockposition.getY());
|
||||||
+ return blockposition.isInvalidYLocation(); // Paper
|
+ return blockposition.isInvalidYLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean b(int i) {
|
public static boolean b(int i) {
|
||||||
|
@ -12,7 +12,7 @@ for this on CB at one point but I can't find it. We may need to do this
|
|||||||
ourselves at some point in the future.
|
ourselves at some point in the future.
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
index 88a4f8882..da2746754 100644
|
index 862cbfbd5..b1682894f 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
||||||
@ -26,7 +26,7 @@ index 88a4f8882..da2746754 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
index 32c6e2eca..046bcb27e 100644
|
index f91144693..8f182fcc8 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||||
@ -37,7 +37,7 @@ index 32c6e2eca..046bcb27e 100644
|
|||||||
+ // Paper Start - (Meh) Support for vanilla world scoreboard name coloring
|
+ // Paper Start - (Meh) Support for vanilla world scoreboard name coloring
|
||||||
+ String displayName = event.getPlayer().getDisplayName();
|
+ String displayName = event.getPlayer().getDisplayName();
|
||||||
+ if (this.player.getWorld().paperConfig.useVanillaScoreboardColoring) {
|
+ if (this.player.getWorld().paperConfig.useVanillaScoreboardColoring) {
|
||||||
+ IChatBaseComponent nameFromTeam = ScoreboardTeam.a(this.player.getScoreboardTeam(),((CraftPlayer) player).getHandle().getDisplayName());
|
+ IChatBaseComponent nameFromTeam = ScoreboardTeam.a(this.player.getScoreboardTeam(), ((CraftPlayer) player).getHandle().getDisplayName());
|
||||||
+ // Explicitly add a RESET here, vanilla uses components for this now...
|
+ // Explicitly add a RESET here, vanilla uses components for this now...
|
||||||
+ displayName = CraftChatMessage.fromComponent(nameFromTeam, EnumChatFormat.WHITE) + org.bukkit.ChatColor.RESET;
|
+ displayName = CraftChatMessage.fromComponent(nameFromTeam, EnumChatFormat.WHITE) + org.bukkit.ChatColor.RESET;
|
||||||
+ }
|
+ }
|
||||||
@ -48,7 +48,7 @@ index 32c6e2eca..046bcb27e 100644
|
|||||||
if (((LazyPlayerSet) event.getRecipients()).isLazy()) {
|
if (((LazyPlayerSet) event.getRecipients()).isLazy()) {
|
||||||
for (Object recipient : minecraftServer.getPlayerList().players) {
|
for (Object recipient : minecraftServer.getPlayerList().players) {
|
||||||
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
index cce5305fb..d368b3975 100644
|
index 05ea0ace5..94a24a49c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
||||||
@ -58,6 +58,6 @@ index cce5305fb..d368b3975 100644
|
|||||||
- String joinMessage = CraftChatMessage.fromComponent(chatmessage);
|
- String joinMessage = CraftChatMessage.fromComponent(chatmessage);
|
||||||
+ String joinMessage = CraftChatMessage.fromComponent(chatmessage, EnumChatFormat.WHITE);
|
+ String joinMessage = CraftChatMessage.fromComponent(chatmessage, EnumChatFormat.WHITE);
|
||||||
|
|
||||||
playerconnection.a(entityplayer.locX, entityplayer.locY, entityplayer.locZ, entityplayer.yaw, entityplayer.pitch);
|
playerconnection.a(entityplayer.locX(), entityplayer.locY(), entityplayer.locZ(), entityplayer.yaw, entityplayer.pitch);
|
||||||
this.players.add(entityplayer);
|
this.players.add(entityplayer);
|
||||||
--
|
--
|
@ -7,7 +7,7 @@ This causes the nether to spam unload/reload chunks, plus overall
|
|||||||
bad behavior.
|
bad behavior.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java
|
diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java
|
||||||
index 81e9717ae..49e3d7284 100644
|
index 2909f78f8..9cf7d0b9e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/BlockFire.java
|
--- a/src/main/java/net/minecraft/server/BlockFire.java
|
||||||
+++ b/src/main/java/net/minecraft/server/BlockFire.java
|
+++ b/src/main/java/net/minecraft/server/BlockFire.java
|
||||||
@@ -0,0 +0,0 @@ public class BlockFire extends Block {
|
@@ -0,0 +0,0 @@ public class BlockFire extends Block {
|
||||||
@ -15,20 +15,20 @@ index 81e9717ae..49e3d7284 100644
|
|||||||
|
|
||||||
blockposition_mutableblockposition.g(blockposition).e(l, j1, i1);
|
blockposition_mutableblockposition.g(blockposition).e(l, j1, i1);
|
||||||
+ if (!world.isLoaded(blockposition_mutableblockposition)) continue; // Paper
|
+ if (!world.isLoaded(blockposition_mutableblockposition)) continue; // Paper
|
||||||
int l1 = this.a((IWorldReader) world, (BlockPosition) blockposition_mutableblockposition);
|
int l1 = this.a((IWorldReader) worldserver, (BlockPosition) blockposition_mutableblockposition);
|
||||||
|
|
||||||
if (l1 > 0) {
|
if (l1 > 0) {
|
||||||
@@ -0,0 +0,0 @@ public class BlockFire extends Block {
|
@@ -0,0 +0,0 @@ public class BlockFire extends Block {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void a(World world, BlockPosition blockposition, int i, Random random, int j, BlockPosition sourceposition) { // CraftBukkit add sourceposition
|
private void a(World world, BlockPosition blockposition, int i, Random random, int j, BlockPosition sourceposition) { // CraftBukkit add sourceposition
|
||||||
- int k = this.q(world.getType(blockposition));
|
- int k = this.i(world.getType(blockposition));
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ final IBlockData iblockdata = world.getTypeIfLoaded(blockposition);
|
+ final IBlockData iblockdata = world.getTypeIfLoaded(blockposition);
|
||||||
+ if (iblockdata == null) {
|
+ if (iblockdata == null) {
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ int k = this.q(iblockdata);
|
+ int k = this.i(iblockdata);
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
|
|
||||||
if (random.nextInt(i) < k) {
|
if (random.nextInt(i) < k) {
|
||||||
|
@ -23,7 +23,7 @@ index fa6400dcc..e2f3cec74 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
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 53757ee20..970ead244 100644
|
index 53757ee20..5793ebd00 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
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
@ -55,7 +55,7 @@ index 53757ee20..970ead244 100644
|
|||||||
- entity.appendEntityCrashDetails(crashreportsystemdetails);
|
- entity.appendEntityCrashDetails(crashreportsystemdetails);
|
||||||
- throw new ReportedException(crashreport);
|
- throw new ReportedException(crashreport);
|
||||||
+ // Paper start - Prevent tile entity and entity crashes
|
+ // Paper start - Prevent tile entity and entity crashes
|
||||||
+ System.err.println("Entity threw exception at " + entity.world.getWorld().getName() + ":" + entity.locX + "," + entity.locY + "," + entity.locZ);
|
+ System.err.println("Entity threw exception at " + entity.world.getWorld().getName() + ":" + entity.locX() + "," + entity.locY() + "," + entity.locZ());
|
||||||
+ throwable.printStackTrace();
|
+ throwable.printStackTrace();
|
||||||
+ entity.dead = true;
|
+ entity.dead = true;
|
||||||
+ return;
|
+ return;
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Antony Riley <antony@cyberiantiger.org>
|
|
||||||
Date: Tue, 29 Mar 2016 06:56:23 +0300
|
|
||||||
Subject: [PATCH] Reduce IO ops opening a new region file.
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
|
|
||||||
index fb529eac9..faf425588 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/RegionFile.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/RegionFile.java
|
|
||||||
@@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable {
|
|
||||||
private final File file;
|
|
||||||
// Spigot end
|
|
||||||
private static final byte[] a = new byte[4096];
|
|
||||||
- private final RandomAccessFile b; // PAIL dataFile
|
|
||||||
+ private final RandomAccessFile b; private RandomAccessFile getDataFile() { return this.b; } // Paper - OBFHELPER // PAIL dataFile
|
|
||||||
private final int[] c = new int[1024];
|
|
||||||
private final int[] d = new int[1024];
|
|
||||||
private final List<Boolean> e; // PAIL freeSectors
|
|
||||||
@@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable {
|
|
||||||
this.e.set(1, false);
|
|
||||||
this.b.seek(0L);
|
|
||||||
|
|
||||||
+ // Paper Start
|
|
||||||
+ java.nio.ByteBuffer header = java.nio.ByteBuffer.allocate(8192);
|
|
||||||
+ while (header.hasRemaining()) {
|
|
||||||
+ if (this.getDataFile().getChannel().read(header) == -1) throw new java.io.EOFException();
|
|
||||||
+ }
|
|
||||||
+ ((java.nio.Buffer) header).clear();
|
|
||||||
+ java.nio.IntBuffer headerAsInts = header.asIntBuffer();
|
|
||||||
+ // Paper End
|
|
||||||
+
|
|
||||||
int k;
|
|
||||||
|
|
||||||
for (j = 0; j < 1024; ++j) {
|
|
||||||
- k = this.b.readInt();
|
|
||||||
+ k = headerAsInts.get(); // Paper
|
|
||||||
this.c[j] = k;
|
|
||||||
// Spigot start
|
|
||||||
int length = k & 255;
|
|
||||||
@@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable {
|
|
||||||
}
|
|
||||||
|
|
||||||
for (j = 0; j < 1024; ++j) {
|
|
||||||
- k = this.b.readInt();
|
|
||||||
+ k = headerAsInts.get(); // Paper
|
|
||||||
this.d[j] = k;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
@ -9,7 +9,7 @@ Before: http://i.imgur.com/nQsMzAE.png
|
|||||||
After: http://i.imgur.com/nJ46crB.png
|
After: http://i.imgur.com/nJ46crB.png
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/DataBits.java b/src/main/java/net/minecraft/server/DataBits.java
|
diff --git a/src/main/java/net/minecraft/server/DataBits.java b/src/main/java/net/minecraft/server/DataBits.java
|
||||||
index 08d1be3117..a75b08ee33 100644
|
index 2edd9b871..f9680b683 100644
|
||||||
--- a/src/main/java/net/minecraft/server/DataBits.java
|
--- a/src/main/java/net/minecraft/server/DataBits.java
|
||||||
+++ b/src/main/java/net/minecraft/server/DataBits.java
|
+++ b/src/main/java/net/minecraft/server/DataBits.java
|
||||||
@@ -0,0 +0,0 @@ public class DataBits {
|
@@ -0,0 +0,0 @@ public class DataBits {
|
||||||
|
@ -7,7 +7,7 @@ Metadata is not meant to persist reload as things break badly with non primitive
|
|||||||
This will remove metadata on reload so it does not crash everything if a plugin uses it.
|
This will remove metadata on reload so it does not crash everything if a plugin uses it.
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 20bd804bce..5d50baa038 100644
|
index 110fee6b6..09c62261a 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
||||||
|
@ -6,10 +6,10 @@ Subject: [PATCH] Remove unused World Tile Entity List
|
|||||||
Massive hit to performance and it is completely unnecessary.
|
Massive hit to performance and it is completely unnecessary.
|
||||||
|
|
||||||
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 38abe7cf34..fccc85ff82 100644
|
index 57633955c..7d5f6e220 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
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
|
|
||||||
protected static final Logger LOGGER = LogManager.getLogger();
|
protected static final Logger LOGGER = LogManager.getLogger();
|
||||||
private static final EnumDirection[] a = EnumDirection.values();
|
private static final EnumDirection[] a = EnumDirection.values();
|
||||||
@ -17,8 +17,8 @@ index 38abe7cf34..fccc85ff82 100644
|
|||||||
+ //public final List<TileEntity> tileEntityList = Lists.newArrayList(); // Paper - remove unused list
|
+ //public final List<TileEntity> tileEntityList = Lists.newArrayList(); // Paper - remove unused list
|
||||||
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
|
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
|
||||||
protected final List<TileEntity> tileEntityListPending = Lists.newArrayList();
|
protected final List<TileEntity> tileEntityListPending = Lists.newArrayList();
|
||||||
protected final java.util.Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet(); // Paper
|
protected final java.util.Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet();
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
}, tileentity::getPosition});
|
}, tileentity::getPosition});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ index 38abe7cf34..fccc85ff82 100644
|
|||||||
this.tileEntityListTick.add(tileentity);
|
this.tileEntityListTick.add(tileentity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
timings.tileEntityTick.startTiming(); // Spigot
|
timings.tileEntityTick.startTiming(); // Spigot
|
||||||
if (!this.tileEntityListUnload.isEmpty()) {
|
if (!this.tileEntityListUnload.isEmpty()) {
|
||||||
this.tileEntityListTick.removeAll(this.tileEntityListUnload);
|
this.tileEntityListTick.removeAll(this.tileEntityListUnload);
|
||||||
@ -39,7 +39,7 @@ index 38abe7cf34..fccc85ff82 100644
|
|||||||
this.tileEntityListUnload.clear();
|
this.tileEntityListUnload.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
tilesThisCycle--;
|
tilesThisCycle--;
|
||||||
this.tileEntityListTick.remove(tileTickPosition--);
|
this.tileEntityListTick.remove(tileTickPosition--);
|
||||||
// Spigot end
|
// Spigot end
|
||||||
@ -48,7 +48,7 @@ index 38abe7cf34..fccc85ff82 100644
|
|||||||
if (this.isLoaded(tileentity.getPosition())) {
|
if (this.isLoaded(tileentity.getPosition())) {
|
||||||
this.getChunkAtWorldCoords(tileentity.getPosition()).removeTileEntity(tileentity.getPosition());
|
this.getChunkAtWorldCoords(tileentity.getPosition()).removeTileEntity(tileentity.getPosition());
|
||||||
}
|
}
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
this.notify(tileentity1.getPosition(), iblockdata, iblockdata, 3);
|
this.notify(tileentity1.getPosition(), iblockdata, iblockdata, 3);
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
// From above, don't screw this up - SPIGOT-1746
|
// From above, don't screw this up - SPIGOT-1746
|
||||||
@ -57,7 +57,7 @@ index 38abe7cf34..fccc85ff82 100644
|
|||||||
this.a(tileentity1);
|
this.a(tileentity1);
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -0,0 +0,0 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
@@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||||
} else {
|
} else {
|
||||||
if (tileentity != null) {
|
if (tileentity != null) {
|
||||||
this.tileEntityListPending.remove(tileentity);
|
this.tileEntityListPending.remove(tileentity);
|
||||||
@ -67,7 +67,7 @@ index 38abe7cf34..fccc85ff82 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 835428e839..5a6b82dbc3 100644
|
index 64b80441f..f03e562c3 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
|
||||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||||
|
@ -11,7 +11,7 @@ The implementation uses a LinkedHashMap as an LRU cache (modified from HashMap).
|
|||||||
The maximum size of the RegionFileCache is also made configurable.
|
The maximum size of the RegionFileCache is also made configurable.
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
index 6cc99ffe43..0cef1853f5 100644
|
index 6ef5bb9f3..d500cd75a 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||||
@@ -0,0 +0,0 @@ public class PaperConfig {
|
@@ -0,0 +0,0 @@ public class PaperConfig {
|
||||||
@ -25,23 +25,15 @@ index 6cc99ffe43..0cef1853f5 100644
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java
|
diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java
|
||||||
index 1ea9e5bb43..21b3b06f53 100644
|
index 2fe27b460..57ce53cfd 100644
|
||||||
--- a/src/main/java/net/minecraft/server/RegionFileCache.java
|
--- a/src/main/java/net/minecraft/server/RegionFileCache.java
|
||||||
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java
|
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java
|
||||||
@@ -0,0 +0,0 @@ import java.io.DataOutputStream;
|
@@ -0,0 +0,0 @@ public final class RegionFileCache implements AutoCloseable {
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
+import com.destroystokyo.paper.PaperConfig; // Paper
|
|
||||||
|
|
||||||
public abstract class RegionFileCache implements AutoCloseable {
|
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class RegionFileCache implements AutoCloseable {
|
|
||||||
if (regionfile != null) {
|
if (regionfile != null) {
|
||||||
return regionfile;
|
return regionfile;
|
||||||
} else {
|
} else {
|
||||||
- if (this.cache.size() >= 256) {
|
- if (this.cache.size() >= 256) {
|
||||||
+ if (this.cache.size() >= PaperConfig.regionFileCacheSize) { // Paper - configurable
|
+ if (this.cache.size() >= com.destroystokyo.paper.PaperConfig.regionFileCacheSize) { // Paper - configurable
|
||||||
((RegionFile) this.cache.removeLast()).close();
|
((RegionFile) this.cache.removeLast()).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,13 +6,13 @@ 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.
|
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
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||||
index 39ca7d5870..865dfa2b05 100644
|
index 2e5426432..167d22574 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||||
|
return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level;
|
||||||
|
}
|
||||||
|
|
||||||
// CraftBukkit start
|
|
||||||
private static final int CURRENT_LEVEL = 2;
|
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ public static Random SHARED_RANDOM = new Random() {
|
+ public static Random SHARED_RANDOM = new Random() {
|
||||||
+ private boolean locked = false;
|
+ private boolean locked = false;
|
||||||
@ -27,11 +27,12 @@ index 39ca7d5870..865dfa2b05 100644
|
|||||||
+ }
|
+ }
|
||||||
+ };
|
+ };
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
static boolean isLevelAtLeast(NBTTagCompound tag, int level) {
|
+
|
||||||
return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level;
|
private CraftEntity bukkitEntity;
|
||||||
}
|
|
||||||
|
public CraftEntity getBukkitEntity() {
|
||||||
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||||
this.B = Vec3D.a;
|
this.y = Vec3D.a;
|
||||||
this.av = 1.0F;
|
this.av = 1.0F;
|
||||||
this.aw = 1.0F;
|
this.aw = 1.0F;
|
||||||
- this.random = new Random();
|
- this.random = new Random();
|
||||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] Workaround for setting passengers on players
|
|||||||
SPIGOT-1915 & GH-114
|
SPIGOT-1915 & GH-114
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index d0d61fd29..57f2499ca 100644
|
index 493edc743..f48a77f21 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] handle NaN health/absorb values and repair bad data
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
index adacb1847c..217fd0c2dd 100644
|
index 14097275c..bdbd89996 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
||||||
@ -44,7 +44,7 @@ index adacb1847c..217fd0c2dd 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index b6a93c4f4c..427f392f9a 100644
|
index d6452504b..493edc743 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] remove null possibility for getServer singleton
|
|||||||
to stop IDE complaining about potential NPE
|
to stop IDE complaining about potential NPE
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index b4eb53f28a..fbad6a31c1 100644
|
index 696cab131..2a40bb0b8 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -0,0 +0,0 @@ import org.spigotmc.SlackActivityAccountant; // Spigot
|
@@ -0,0 +0,0 @@ import org.spigotmc.SlackActivityAccountant; // Spigot
|
||||||
@ -23,8 +23,8 @@ index b4eb53f28a..fbad6a31c1 100644
|
|||||||
this.ae = new ResourceManager(EnumResourcePackType.SERVER_DATA, this.serverThread);
|
this.ae = new ResourceManager(EnumResourcePackType.SERVER_DATA, this.serverThread);
|
||||||
+ SERVER = this; // Paper - better singleton
|
+ SERVER = this; // Paper - better singleton
|
||||||
this.resourcePackRepository = new ResourcePackRepository<>(ResourcePackLoader::new);
|
this.resourcePackRepository = new ResourcePackRepository<>(ResourcePackLoader::new);
|
||||||
this.ai = new CraftingManager();
|
this.craftingManager = new CraftingManager();
|
||||||
this.aj = new TagRegistry();
|
this.tagRegistry = new TagRegistry();
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
|
Loading…
Reference in New Issue
Block a user