mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-26 22:40:21 +01:00
Paper 1.9.2 Update
This commit is contained in:
parent
e96190ed9e
commit
f16d938497
19 changed files with 194 additions and 6082 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -48,3 +48,4 @@ CraftBukkit
|
|||
Paperclip
|
||||
Paperclip.jar
|
||||
paperclip.jar
|
||||
paperclip-*.jar
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 29cbded5ff05b66a9af3ac22efe07031d5fb5742
|
||||
Subproject commit 46d0be39f2fae4732ebe544dfada3949a18e2092
|
2
Bukkit
2
Bukkit
|
@ -1 +1 @@
|
|||
Subproject commit 56605a05f6c85762d46b0b76b9eb20cfc7991e7e
|
||||
Subproject commit 8ce4d2f45fbdb7cd85346b220f6a9d34f2000910
|
|
@ -1 +1 @@
|
|||
Subproject commit 7fc5cd856e46182e727f383a911ffa46326611f1
|
||||
Subproject commit 8b61cc52088ccb9220970740a4905baf3781a680
|
|
@ -1 +1 @@
|
|||
Subproject commit 1d8ff24ec3fff88334498bfb4071b6b6c834cc07
|
||||
Subproject commit 9bb246f7f19963ef91e22af3e05a315ee5e5e746
|
2
Spigot
2
Spigot
|
@ -1 +1 @@
|
|||
Subproject commit d20369fcad255c6ab18fab8180fac63ff4cedec3
|
||||
Subproject commit 1480adb82751e38cca5bcc75202ece68277b0113
|
|
@ -24,7 +24,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
- <artifactId>spigot-api</artifactId>
|
||||
+ <groupId>com.destroystokyo.paper</groupId>
|
||||
+ <artifactId>paper-api</artifactId>
|
||||
<version>1.9-R0.1-SNAPSHOT</version>
|
||||
<version>1.9.2-R0.1-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
- <name>Spigot-API</name>
|
||||
|
|
|
@ -168,7 +168,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
+ // Paper end
|
||||
|
||||
world.addEntity(entitytntprimed);
|
||||
world.a((EntityHuman) null, entitytntprimed.locX, entitytntprimed.locY, entitytntprimed.locZ, SoundEffects.gj, SoundCategory.BLOCKS, 1.0F, 1.0F);
|
||||
world.a((EntityHuman) null, entitytntprimed.locX, entitytntprimed.locY, entitytntprimed.locZ, SoundEffects.gk, SoundCategory.BLOCKS, 1.0F, 1.0F);
|
||||
diff --git a/src/main/java/net/minecraft/server/DispenserRegistry.java b/src/main/java/net/minecraft/server/DispenserRegistry.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/DispenserRegistry.java
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Wed, 2 Mar 2016 00:21:24 -0600
|
||||
Subject: [PATCH] Fix redstone lag issues
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
||||
netherVoidTopDamage = getBoolean( "nether-ceiling-void-damage", false );
|
||||
log("Top of the nether void damage: " + netherVoidTopDamage);
|
||||
}
|
||||
+
|
||||
+ public int tickNextTickCap;
|
||||
+ public boolean tickNextTickListCapIgnoresRedstone;
|
||||
+ private void tickNextTickCap() {
|
||||
+ tickNextTickCap = getInt("tick-next-tick-list-cap", 1000); // Higher values will be friendlier to vanilla style mechanics (to a point) but may hurt performance
|
||||
+ tickNextTickListCapIgnoresRedstone = getBoolean("tick-next-tick-list-cap-ignores-redstone", false); // Redstone TickNextTicks will always bypass the preceding cap
|
||||
+ log("WorldServer TickNextTick cap set at " + tickNextTickCap);
|
||||
+ log("WorldServer TickNextTickList cap always processes redstone: " + tickNextTickListCapIgnoresRedstone);
|
||||
+
|
||||
+ }
|
||||
+
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/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 implements IAsyncTaskHandler {
|
||||
if (false) { // CraftBukkit
|
||||
throw new IllegalStateException("TickNextTick list out of synch");
|
||||
} else {
|
||||
+ // Paper start - No, stop doing this, it affects things like redstone
|
||||
+ /*
|
||||
if (i > 1000) {
|
||||
// CraftBukkit start - If the server has too much to process over time, try to alleviate that
|
||||
if (i > 20 * 1000) {
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World implements IAsyncTaskHandler {
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
+ */
|
||||
+ if (i > paperConfig.tickNextTickCap) {
|
||||
+ i = paperConfig.tickNextTickCap;
|
||||
+ }
|
||||
+ // Paper end
|
||||
|
||||
this.methodProfiler.a("cleaning");
|
||||
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World implements IAsyncTaskHandler {
|
||||
}
|
||||
timings.scheduledBlocksCleanup.stopTiming(); // Paper
|
||||
|
||||
+ // Paper start - Allow redstone ticks to bypass the tickNextTickListCap
|
||||
+ if (paperConfig.tickNextTickListCapIgnoresRedstone) {
|
||||
+ Iterator<NextTickListEntry> iterator = this.nextTickList.iterator();
|
||||
+ while (iterator.hasNext()) {
|
||||
+ NextTickListEntry next = iterator.next();
|
||||
+ if (!flag && next.b > this.worldData.getTime()) {
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ IBlockData data = next.a().getBlockData();
|
||||
+ if (next.a().isPowerSource(data) || next.a() instanceof IInventory) {
|
||||
+ iterator.remove();
|
||||
+ this.U.add(next);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ // Paper end
|
||||
+
|
||||
this.methodProfiler.b();
|
||||
this.methodProfiler.a("ticking");
|
||||
timings.scheduledBlocksTicking.startTiming(); // Paper
|
||||
--
|
|
@ -21,9 +21,20 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
||||
|
||||
netherVoidTopDamage = getBoolean( "nether-ceiling-void-damage", false );
|
||||
log("Top of the nether void damage: " + netherVoidTopDamage);
|
||||
}
|
||||
|
||||
+
|
||||
+ public int tickNextTickCap;
|
||||
+ public boolean tickNextTickListCapIgnoresRedstone;
|
||||
+ private void tickNextTickCap() {
|
||||
+ tickNextTickCap = getInt("tick-next-tick-list-cap", 1000); // Higher values will be friendlier to vanilla style mechanics (to a point) but may hurt performance
|
||||
+ tickNextTickListCapIgnoresRedstone = getBoolean("tick-next-tick-list-cap-ignores-redstone", false); // Redstone TickNextTicks will always bypass the preceding cap
|
||||
+ log("WorldServer TickNextTick cap set at " + tickNextTickCap);
|
||||
+ log("WorldServer TickNextTickList cap always processes redstone: " + tickNextTickListCapIgnoresRedstone);
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ public boolean queueLightUpdates;
|
||||
+ private void queueLightUpdates() {
|
||||
+ queueLightUpdates = getBoolean("queue-light-updates", false);
|
||||
|
|
86
Spigot-Server-Patches/MC-Dev-fixes.patch
Normal file
86
Spigot-Server-Patches/MC-Dev-fixes.patch
Normal file
|
@ -0,0 +1,86 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Wed, 30 Mar 2016 19:36:20 -0400
|
||||
Subject: [PATCH] MC Dev fixes
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/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> {
|
||||
return Objects.toStringHelper(this).add("x", this.getX()).add("y", this.getY()).add("z", this.getZ()).toString();
|
||||
}
|
||||
|
||||
- public int compareTo(Object object) {
|
||||
+ public int compareTo(BaseBlockPosition object) { // Paper - decompile fix
|
||||
return this.i((BaseBlockPosition) object);
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/BiomeBase.java
|
||||
+++ b/src/main/java/net/minecraft/server/BiomeBase.java
|
||||
@@ -0,0 +0,0 @@ public abstract class BiomeBase {
|
||||
protected List<BiomeBase.BiomeMeta> x;
|
||||
|
||||
public static int a(BiomeBase biomebase) {
|
||||
- return BiomeBase.REGISTRY_ID.a((Object) biomebase);
|
||||
+ return BiomeBase.REGISTRY_ID.a(biomebase); // Paper - decompile fix
|
||||
}
|
||||
|
||||
public static BiomeBase a(int i) {
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockStateList.java b/src/main/java/net/minecraft/server/BlockStateList.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockStateList.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockStateList.java
|
||||
@@ -0,0 +0,0 @@ public class BlockStateList {
|
||||
if (!BlockStateList.a.matcher(s).matches()) {
|
||||
throw new IllegalArgumentException("Block: " + block.getClass() + " has invalidly named property: " + s);
|
||||
} else {
|
||||
- Iterator iterator = iblockstate.c().iterator();
|
||||
+ Iterator<T> iterator = iblockstate.c().iterator(); // Paper - decompile fix
|
||||
|
||||
String s1;
|
||||
|
||||
@@ -0,0 +0,0 @@ public class BlockStateList {
|
||||
return s;
|
||||
}
|
||||
|
||||
- Comparable comparable = (Comparable) iterator.next();
|
||||
+ T comparable = iterator.next(); // Paper - decompile fix
|
||||
|
||||
s1 = iblockstate.a(comparable);
|
||||
} while (BlockStateList.a.matcher(s1).matches());
|
||||
@@ -0,0 +0,0 @@ public class BlockStateList {
|
||||
if (!this.b.containsKey(iblockstate)) {
|
||||
throw new IllegalArgumentException("Cannot get property " + iblockstate + " as it does not exist in " + this.a.t());
|
||||
} else {
|
||||
- return (Comparable) iblockstate.b().cast(this.b.get(iblockstate));
|
||||
+ return iblockstate.b().cast(this.b.get(iblockstate)); // Paper - decompile fix
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/CommandAbstract.java b/src/main/java/net/minecraft/server/CommandAbstract.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/CommandAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/CommandAbstract.java
|
||||
@@ -0,0 +0,0 @@ public abstract class CommandAbstract implements ICommand {
|
||||
}
|
||||
|
||||
if (object != null && oclass.isAssignableFrom(object.getClass())) {
|
||||
- return (Entity) object;
|
||||
+ return (T) object; // Paper - fix decompile error
|
||||
} else {
|
||||
throw new ExceptionEntityNotFound();
|
||||
}
|
||||
@@ -0,0 +0,0 @@ public abstract class CommandAbstract implements ICommand {
|
||||
return this.getCommand().compareTo(icommand.getCommand());
|
||||
}
|
||||
|
||||
- public int compareTo(Object object) {
|
||||
+ public int compareTo(ICommand object) { // Paper - fix decompile error
|
||||
return this.a((ICommand) object);
|
||||
}
|
||||
|
||||
--
|
|
@ -23,7 +23,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
- if (!this.b.containsKey(iblockstate)) {
|
||||
- throw new IllegalArgumentException("Cannot get property " + iblockstate + " as it does not exist in " + this.a.t());
|
||||
- } else {
|
||||
- return iblockstate.b().cast(this.b.get(iblockstate));
|
||||
- return iblockstate.b().cast(this.b.get(iblockstate)); // Paper - decompile fix
|
||||
- }
|
||||
+ return iblockstate.b().cast(this.b.get(iblockstate)); // Paper
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
+ <groupId>com.destroystokyo.paper</groupId>
|
||||
+ <artifactId>paper</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.9-R0.1-SNAPSHOT</version>
|
||||
<version>1.9.2-R0.1-SNAPSHOT</version>
|
||||
- <name>Spigot</name>
|
||||
- <url>http://www.spigotmc.org</url>
|
||||
+ <name>Paper</name>
|
||||
|
|
|
@ -8,15 +8,7 @@ diff --git a/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFoo
|
|||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFooter.java
|
||||
+++ b/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFooter.java
|
||||
@@ -0,0 +0,0 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
-import net.minecraft.server.IChatBaseComponent;
|
||||
-import net.minecraft.server.Packet;
|
||||
-import net.minecraft.server.PacketDataSerializer;
|
||||
-import net.minecraft.server.PacketListenerPlayOut;
|
||||
-
|
||||
import java.io.IOException;
|
||||
@@ -0,0 +0,0 @@ import java.io.IOException;
|
||||
|
||||
public class PacketPlayOutPlayerListHeaderFooter implements Packet<PacketListenerPlayOut> {
|
||||
|
||||
|
|
|
@ -45,12 +45,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
} else if (astring[0].equals("reload")) {
|
||||
minecraftserver.getPlayerList().reloadWhitelist();
|
||||
@@ -0,0 +0,0 @@ public class CommandWhitelist extends CommandAbstract {
|
||||
return a((ICommand) o);
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
// Paper end
|
||||
+
|
||||
+ // Paper start
|
||||
+ /**
|
||||
+ * Paper - Adds or removes a player from the game whitelist
|
||||
+ * Adds or removes a player from the game whitelist
|
||||
+ *
|
||||
+ * @param mcserver running instance of MinecraftServer
|
||||
+ * @param playerName the player we're going to be whitelisting
|
||||
|
@ -85,5 +86,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ // Paper end
|
||||
}
|
||||
--
|
File diff suppressed because it is too large
Load diff
|
@ -53,6 +53,10 @@ basedir=$basedir/Spigot
|
|||
popd
|
||||
basedir=$(dirname "$basedir")
|
||||
|
||||
echo "Importing MC Dev"
|
||||
|
||||
./importmcdev.sh
|
||||
|
||||
# Apply paper
|
||||
(
|
||||
applyPatch Spigot/Spigot-API Paper-API HEAD &&
|
||||
|
|
65
importmcdev.sh
Executable file
65
importmcdev.sh
Executable file
|
@ -0,0 +1,65 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
nms="net/minecraft/server"
|
||||
export MODLOG=""
|
||||
PS1="$"
|
||||
basedir=`pwd`
|
||||
|
||||
workdir=$basedir/work
|
||||
minecraftversion=$(cat BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
|
||||
decompiledir=$workdir/$minecraftversion
|
||||
|
||||
export importedmcdev=""
|
||||
function import {
|
||||
export importedmcdev="$importedmcdev $1"
|
||||
file="${1}.java"
|
||||
target="$basedir/Spigot/Spigot-Server/src/main/java/$nms/$file"
|
||||
base="$decompiledir/$nms/$file"
|
||||
|
||||
if [[ ! -f "$target" ]]; then
|
||||
export MODLOG="$MODLOG Imported $file from mc-dev\n";
|
||||
echo "Copying $base to $target"
|
||||
cp "$base" "$target"
|
||||
fi
|
||||
}
|
||||
|
||||
(
|
||||
cd Spigot/Spigot-Server/
|
||||
lastlog=$(git log -1 --oneline)
|
||||
if [[ "$lastlog" = *"mc-dev Imports"* ]]; then
|
||||
git reset --hard HEAD^
|
||||
fi
|
||||
)
|
||||
|
||||
import BaseBlockPosition
|
||||
import BiomeBase
|
||||
import BiomeMesa
|
||||
import BlockChest
|
||||
import BlockFalling
|
||||
import BlockFluids
|
||||
import BlockPosition
|
||||
import BlockStateList
|
||||
import ChunkProviderFlat
|
||||
import ChunkProviderGenerate
|
||||
import ChunkProviderHell
|
||||
import CommandAbstract
|
||||
import CommandScoreboard
|
||||
import CommandWhitelist
|
||||
import DataConverterMaterialId
|
||||
import EULA
|
||||
import EntitySquid
|
||||
import FileIOThread
|
||||
import ItemBlock
|
||||
import PacketPlayInResourcePackStatus
|
||||
import PacketPlayOutPlayerListHeaderFooter
|
||||
import PacketPlayOutTitle
|
||||
import PacketPlayOutUpdateTime
|
||||
import PathfinderGoalFloat
|
||||
import PersistentVillage
|
||||
import TileEntityEnderChest
|
||||
|
||||
(
|
||||
cd Spigot/Spigot-Server/
|
||||
git add src -A
|
||||
echo -e "mc-dev Imports\n\n$MODLOG" | git commit src -F -
|
||||
)
|
15
paperclip.sh
15
paperclip.sh
|
@ -1,14 +1,19 @@
|
|||
#!/usr/bin/env bash
|
||||
basedir=`pwd`
|
||||
workdir=$basedir/work
|
||||
mcver=$(cat BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
|
||||
decompiledir="$workdir/$mcver"
|
||||
|
||||
paperjar="$basedir/$(ls ./Paper-Server/target/paper*-SNAPSHOT.jar)"
|
||||
vanillajar="${decompiledir}/${mcver}.jar"
|
||||
|
||||
cp ./Paper-Server/target/paper*-SNAPSHOT.jar ./Paperclip/paper-1.9.jar
|
||||
cp ./work/1.9/1.9.jar ./Paperclip/minecraft_server.1.9.jar
|
||||
cd ./Paperclip
|
||||
mvn clean package
|
||||
mvn clean package -Dmcver=${mcver} -Dpaperjar="${paperjar}" -Dvanillajar="${vanillajar}"
|
||||
cd ..
|
||||
cp ./Paperclip/target/paperclip*-SNAPSHOT.jar ./paperclip.jar
|
||||
cp ./Paperclip/target/paperclip-${mcver}.jar ./paperclip-${mcver}.jar
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
echo "Build success!"
|
||||
echo "Copied final jar to $(pwd)/paperclip.jar"
|
||||
echo "Copied final jar to $(pwd)/paperclip-${mcver}.jar"
|
||||
|
|
Loading…
Reference in a new issue