mirror of
https://github.com/SparklyPower/SparklyPaper.git
synced 2025-12-19 15:09:27 +00:00
Update to Paper 1.21.6
This commit is contained in:
2
.github/workflows/auto-update.yml
vendored
2
.github/workflows/auto-update.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: 'SparklyPaper'
|
path: 'SparklyPaper'
|
||||||
ref: 'ver/1.21.5'
|
ref: 'ver/1.21.6'
|
||||||
token: ${{ secrets.LORITTA_PAT }}
|
token: ${{ secrets.LORITTA_PAT }}
|
||||||
|
|
||||||
- name: Checkout Paper Repository
|
- name: Checkout Paper Repository
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
group=net.sparklypower.sparklypaper
|
group=net.sparklypower.sparklypaper
|
||||||
version=1.21.5-R0.1-SNAPSHOT
|
version=1.21.6-R0.1-SNAPSHOT
|
||||||
mcVersion=1.21.5
|
mcVersion=1.21.6
|
||||||
paperRef=2ba1675c7506cadd8a540ea452e5dafb79ae8947
|
paperRef=245b5473a02d2e3910f3821ae96a11ce59c2a937
|
||||||
|
|
||||||
org.gradle.configuration-cache=true
|
org.gradle.configuration-cache=true
|
||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
|
|||||||
@@ -9,25 +9,24 @@
|
|||||||
`maven-publish`
|
`maven-publish`
|
||||||
idea
|
idea
|
||||||
id("io.papermc.paperweight.core")
|
id("io.papermc.paperweight.core")
|
||||||
@@ -24,6 +_,17 @@
|
@@ -21,6 +_,16 @@
|
||||||
minecraftVersion = providers.gradleProperty("mcVersion")
|
}
|
||||||
gitFilePatches = false
|
|
||||||
|
|
||||||
|
paperweight {
|
||||||
+ val fork = forks.register("sparklypaper") {
|
+ val fork = forks.register("sparklypaper") {
|
||||||
+ upstream.patchDir("paperServer") {
|
+ upstream.patchDir("paperServer") {
|
||||||
+ upstreamPath = "paper-server"
|
+ upstreamPath = "paper-server"
|
||||||
+ excludes = setOf("src/minecraft", "patches", "build.gradle.kts")
|
+ excludes = setOf("src/minecraft", "patches", "build.gradle.kts")
|
||||||
+ patchesDir = rootDirectory.dir("sparklypaper-server/paper-patches")
|
+ patchesDir = rootDirectory.dir("sparklypaper-server/paper-patches")
|
||||||
+ outputDir = rootDirectory.dir("paper-server")
|
+ outputDir = rootDirectory.dir("paper-server")
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
|
||||||
+ activeFork = fork
|
+ activeFork = fork
|
||||||
+
|
+
|
||||||
//updatingMinecraft {
|
minecraftVersion = providers.gradleProperty("mcVersion")
|
||||||
// oldPaperCommit = "f4f275519f7c1fbe9db173b7144a4fe81440e365"
|
gitFilePatches = false
|
||||||
//}
|
|
||||||
@@ -108,7 +_,20 @@
|
@@ -105,7 +_,19 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,19 +36,18 @@
|
|||||||
+ java { srcDir("../paper-server/src/main/java") }
|
+ java { srcDir("../paper-server/src/main/java") }
|
||||||
+ resources { srcDir("../paper-server/src/main/resources") }
|
+ resources { srcDir("../paper-server/src/main/resources") }
|
||||||
+ }
|
+ }
|
||||||
+ test {
|
+ test {
|
||||||
+ java { srcDir("../paper-server/src/test/java") }
|
+ java { srcDir("../paper-server/src/test/java") }
|
||||||
+ resources { srcDir("../paper-server/src/test/resources") }
|
+ resources { srcDir("../paper-server/src/test/resources") }
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
+
|
|
||||||
+val log4jPlugins = sourceSets.create("log4jPlugins") {
|
+val log4jPlugins = sourceSets.create("log4jPlugins") {
|
||||||
+ java { srcDir("../paper-server/src/log4jPlugins/java") }
|
+ java { srcDir("../paper-server/src/log4jPlugins/java") }
|
||||||
+}
|
+}
|
||||||
configurations.named(log4jPlugins.compileClasspathConfigurationName) {
|
configurations.named(log4jPlugins.compileClasspathConfigurationName) {
|
||||||
extendsFrom(configurations.compileClasspath.get())
|
extendsFrom(configurations.compileClasspath.get())
|
||||||
}
|
}
|
||||||
@@ -130,7 +_,12 @@
|
@@ -127,7 +_,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -63,7 +61,7 @@
|
|||||||
implementation("ca.spottedleaf:concurrentutil:0.0.3")
|
implementation("ca.spottedleaf:concurrentutil:0.0.3")
|
||||||
implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+
|
implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+
|
||||||
implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21
|
implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21
|
||||||
@@ -201,9 +_,14 @@
|
@@ -198,9 +_,14 @@
|
||||||
val build = System.getenv("BUILD_NUMBER") ?: null
|
val build = System.getenv("BUILD_NUMBER") ?: null
|
||||||
val buildTime = if (build != null) Instant.now() else Instant.EPOCH
|
val buildTime = if (build != null) Instant.now() else Instant.EPOCH
|
||||||
val gitHash = git.exec(providers, "rev-parse", "--short=7", "HEAD").get().trim()
|
val gitHash = git.exec(providers, "rev-parse", "--short=7", "HEAD").get().trim()
|
||||||
@@ -79,7 +77,7 @@
|
|||||||
attributes(
|
attributes(
|
||||||
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
||||||
"Implementation-Title" to "Paper",
|
"Implementation-Title" to "Paper",
|
||||||
@@ -212,8 +_,8 @@
|
@@ -209,8 +_,8 @@
|
||||||
"Specification-Title" to "Paper",
|
"Specification-Title" to "Paper",
|
||||||
"Specification-Version" to project.version,
|
"Specification-Version" to project.version,
|
||||||
"Specification-Vendor" to "Paper Team",
|
"Specification-Vendor" to "Paper Team",
|
||||||
@@ -90,7 +88,7 @@
|
|||||||
"Build-Number" to (build ?: ""),
|
"Build-Number" to (build ?: ""),
|
||||||
"Build-Time" to buildTime.toString(),
|
"Build-Time" to buildTime.toString(),
|
||||||
"Git-Branch" to gitBranch,
|
"Git-Branch" to gitBranch,
|
||||||
@@ -267,7 +_,7 @@
|
@@ -269,7 +_,7 @@
|
||||||
jvmArgumentProviders.add(provider)
|
jvmArgumentProviders.add(provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,18 +51,18 @@ index ca02c4c71a0a5a1a0ae8bbb40f0b1b7eac64e6fd..7ce68f270d809ab0b2be45ffdd0346f0
|
|||||||
List<org.bukkit.block.BlockState> states = new java.util.ArrayList<>(level.capturedBlockStates.values());
|
List<org.bukkit.block.BlockState> states = new java.util.ArrayList<>(level.capturedBlockStates.values());
|
||||||
level.capturedBlockStates.clear();
|
level.capturedBlockStates.clear();
|
||||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||||
index 6670762f64eb4f1904c1a83f55aae4fe638462d3..7485ce0c4ff7dd1d2b04cb162b2c2759752df98a 100644
|
index 6f492b08d63eb6621383261361f94eaeb7e2f20c..f7d3804035d2c8daecef0b52b4346e9b20da12f2 100644
|
||||||
--- a/net/minecraft/server/MinecraftServer.java
|
--- a/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/net/minecraft/server/MinecraftServer.java
|
+++ b/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -303,6 +303,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -304,6 +304,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
|
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
|
||||||
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
||||||
public final Set<net.minecraft.world.entity.Entity> entitiesWithScheduledTasks = java.util.concurrent.ConcurrentHashMap.newKeySet(); // SparklyPaper - skip EntityScheduler's executeTick checks if there isn't any tasks to be run (concurrent because plugins may schedule tasks async)
|
public final Set<net.minecraft.world.entity.Entity> entitiesWithScheduledTasks = java.util.concurrent.ConcurrentHashMap.newKeySet(); // SparklyPaper - skip EntityScheduler's executeTick checks if there isn't any tasks to be run (concurrent because plugins may schedule tasks async)
|
||||||
+ public java.util.concurrent.Semaphore serverLevelTickingSemaphore = null; // SparklyPaper - parallel world ticking
|
+ public java.util.concurrent.Semaphore serverLevelTickingSemaphore = null; // SparklyPaper - parallel world ticking
|
||||||
|
|
||||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
||||||
AtomicReference<S> atomicReference = new AtomicReference<>();
|
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
|
||||||
@@ -1717,6 +1718,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1719,6 +1720,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
}
|
}
|
||||||
|
|
||||||
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
|
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
|
||||||
@@ -72,7 +72,7 @@ index 6670762f64eb4f1904c1a83f55aae4fe638462d3..7485ce0c4ff7dd1d2b04cb162b2c2759
|
|||||||
for (ServerLevel serverLevel : this.getAllLevels()) {
|
for (ServerLevel serverLevel : this.getAllLevels()) {
|
||||||
serverLevel.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
|
serverLevel.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
|
||||||
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
||||||
@@ -1733,27 +1737,46 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1735,27 +1739,46 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
profilerFiller.push("tick");
|
profilerFiller.push("tick");
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ index 6670762f64eb4f1904c1a83f55aae4fe638462d3..7485ce0c4ff7dd1d2b04cb162b2c2759
|
|||||||
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||||
|
|
||||||
profilerFiller.popPush("connection");
|
profilerFiller.popPush("connection");
|
||||||
@@ -1844,6 +1867,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1846,6 +1869,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
Map<ResourceKey<Level>, ServerLevel> oldLevels = this.levels;
|
Map<ResourceKey<Level>, ServerLevel> oldLevels = this.levels;
|
||||||
Map<ResourceKey<Level>, ServerLevel> newLevels = Maps.newLinkedHashMap(oldLevels);
|
Map<ResourceKey<Level>, ServerLevel> newLevels = Maps.newLinkedHashMap(oldLevels);
|
||||||
newLevels.remove(level.dimension());
|
newLevels.remove(level.dimension());
|
||||||
@@ -144,7 +144,7 @@ index 6670762f64eb4f1904c1a83f55aae4fe638462d3..7485ce0c4ff7dd1d2b04cb162b2c2759
|
|||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
index 8e83d37ffda1b5bfcacd5578e622b5dc09f6870c..11d334db1688dfaf087d854da604895fe7091b8e 100644
|
index c1f8bf904a099e80248d5970ce14fd810e683b4d..9034f43140cd92919d2d6eb7aec47f4bc8019e8c 100644
|
||||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -193,6 +193,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -193,6 +193,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
@@ -159,7 +159,7 @@ index 8e83d37ffda1b5bfcacd5578e622b5dc09f6870c..11d334db1688dfaf087d854da604895f
|
|||||||
this.setPvpAllowed(properties.pvp);
|
this.setPvpAllowed(properties.pvp);
|
||||||
this.setFlightAllowed(properties.allowFlight);
|
this.setFlightAllowed(properties.allowFlight);
|
||||||
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
|
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
|
||||||
index 59e8a5e1b35c81883c9b1ca00c6e55d77584d8cc..b8a2f110aeb30d1d75222712de9186a185129807 100644
|
index 2882cd829d4d8e1f8615f085f6908efcdf68ac62..7b058fed0ca52b2f74f5cf4534df7b24c2da5c59 100644
|
||||||
--- a/net/minecraft/server/level/ServerChunkCache.java
|
--- a/net/minecraft/server/level/ServerChunkCache.java
|
||||||
+++ b/net/minecraft/server/level/ServerChunkCache.java
|
+++ b/net/minecraft/server/level/ServerChunkCache.java
|
||||||
@@ -177,7 +177,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
@@ -177,7 +177,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||||
@@ -172,19 +172,19 @@ index 59e8a5e1b35c81883c9b1ca00c6e55d77584d8cc..b8a2f110aeb30d1d75222712de9186a1
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||||
index 2915ad139a094f6d487c65b39ef065c1340a4685..dac59bdd0496c592d8148e05b82e6ff280f05d5d 100644
|
index ecfe237fbecde610d095647a1f2a10f7d426d786..7c178bd28880a8fea2bbae7cd0c81fa59448f439 100644
|
||||||
--- a/net/minecraft/server/level/ServerLevel.java
|
--- a/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -180,7 +180,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -182,7 +182,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
private final MinecraftServer server;
|
private final MinecraftServer server;
|
||||||
public final net.minecraft.world.level.storage.PrimaryLevelData serverLevelData; // CraftBukkit - type
|
public final net.minecraft.world.level.storage.PrimaryLevelData serverLevelData; // CraftBukkit - type
|
||||||
private int lastSpawnChunkRadius;
|
private int lastSpawnChunkRadius;
|
||||||
- final EntityTickList entityTickList = new EntityTickList();
|
- final EntityTickList entityTickList = new EntityTickList();
|
||||||
+ final EntityTickList entityTickList = new EntityTickList(this); // SparklyPaper - parallel world ticking
|
+ final EntityTickList entityTickList = new EntityTickList(this); // SparklyPaper - parallel world ticking
|
||||||
|
private final ServerWaypointManager waypointManager;
|
||||||
// Paper - rewrite chunk system
|
// Paper - rewrite chunk system
|
||||||
private final GameEventDispatcher gameEventDispatcher;
|
private final GameEventDispatcher gameEventDispatcher;
|
||||||
public boolean noSave;
|
@@ -207,6 +207,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
@@ -204,6 +204,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
|
||||||
private final StructureCheck structureCheck;
|
private final StructureCheck structureCheck;
|
||||||
private final boolean tickTime;
|
private final boolean tickTime;
|
||||||
private final RandomSequences randomSequences;
|
private final RandomSequences randomSequences;
|
||||||
@@ -192,7 +192,7 @@ index 2915ad139a094f6d487c65b39ef065c1340a4685..dac59bdd0496c592d8148e05b82e6ff2
|
|||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
public final LevelStorageSource.LevelStorageAccess levelStorageAccess;
|
public final LevelStorageSource.LevelStorageAccess levelStorageAccess;
|
||||||
@@ -677,6 +678,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -681,6 +682,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
this.chunkDataController = new ca.spottedleaf.moonrise.patches.chunk_system.io.datacontroller.ChunkDataController((ServerLevel)(Object)this, this.chunkTaskScheduler);
|
this.chunkDataController = new ca.spottedleaf.moonrise.patches.chunk_system.io.datacontroller.ChunkDataController((ServerLevel)(Object)this, this.chunkTaskScheduler);
|
||||||
// Paper end - rewrite chunk system
|
// Paper end - rewrite chunk system
|
||||||
this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit
|
this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit
|
||||||
@@ -200,7 +200,7 @@ index 2915ad139a094f6d487c65b39ef065c1340a4685..dac59bdd0496c592d8148e05b82e6ff2
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Paper start
|
// Paper start
|
||||||
@@ -1225,7 +1227,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1233,7 +1235,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
}
|
}
|
||||||
// Paper start - rewrite chunk system
|
// Paper start - rewrite chunk system
|
||||||
if ((++this.tickedBlocksOrFluids & 7L) != 0L) {
|
if ((++this.tickedBlocksOrFluids & 7L) != 0L) {
|
||||||
@@ -209,7 +209,7 @@ index 2915ad139a094f6d487c65b39ef065c1340a4685..dac59bdd0496c592d8148e05b82e6ff2
|
|||||||
}
|
}
|
||||||
// Paper end - rewrite chunk system
|
// Paper end - rewrite chunk system
|
||||||
|
|
||||||
@@ -1238,7 +1240,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1246,7 +1248,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
}
|
}
|
||||||
// Paper start - rewrite chunk system
|
// Paper start - rewrite chunk system
|
||||||
if ((++this.tickedBlocksOrFluids & 7L) != 0L) {
|
if ((++this.tickedBlocksOrFluids & 7L) != 0L) {
|
||||||
@@ -218,7 +218,7 @@ index 2915ad139a094f6d487c65b39ef065c1340a4685..dac59bdd0496c592d8148e05b82e6ff2
|
|||||||
}
|
}
|
||||||
// Paper end - rewrite chunk system
|
// Paper end - rewrite chunk system
|
||||||
|
|
||||||
@@ -1498,6 +1500,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1520,6 +1522,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addPlayer(ServerPlayer player) {
|
private void addPlayer(ServerPlayer player) {
|
||||||
@@ -226,7 +226,7 @@ index 2915ad139a094f6d487c65b39ef065c1340a4685..dac59bdd0496c592d8148e05b82e6ff2
|
|||||||
Entity entity = this.getEntity(player.getUUID());
|
Entity entity = this.getEntity(player.getUUID());
|
||||||
if (entity != null) {
|
if (entity != null) {
|
||||||
LOGGER.warn("Force-added player with duplicate UUID {}", player.getUUID());
|
LOGGER.warn("Force-added player with duplicate UUID {}", player.getUUID());
|
||||||
@@ -1510,7 +1513,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1532,7 +1535,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
private boolean addEntity(Entity entity, @Nullable org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason) {
|
private boolean addEntity(Entity entity, @Nullable org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason) {
|
||||||
@@ -236,18 +236,18 @@ index 2915ad139a094f6d487c65b39ef065c1340a4685..dac59bdd0496c592d8148e05b82e6ff2
|
|||||||
// Paper start - extra debug info
|
// Paper start - extra debug info
|
||||||
if (entity.valid) {
|
if (entity.valid) {
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 3781d9cc174b7aecacb9b9855d52c7b1ff05835c..1f762b49a2a8f6e469ce0d7336198d5f82737a0b 100644
|
index 53f038e1b5e7a13a08a0c925c8bd3f8a40868195..d6212fb075c02cc7a9e15ff9040e406fc12e4c51 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -450,6 +450,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
@@ -461,6 +461,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
return this.viewDistanceHolder;
|
return this.viewDistanceHolder;
|
||||||
}
|
}
|
||||||
// Paper end - rewrite chunk system
|
// Paper end - rewrite chunk system
|
||||||
+ public boolean hasTickedAtLeastOnceInNewWorld = false; // SparklyPaper - parallel world ticking (fixes bug in DreamResourceReset where the inventory is opened AFTER the player has changed worlds, if you click with the quick tp torch in a chest, because the inventory is opened AFTER the player has teleported)
|
+ public boolean hasTickedAtLeastOnceInNewWorld = false; // SparklyPaper - parallel world ticking (fixes bug in DreamResourceReset where the inventory is opened AFTER the player has changed worlds, if you click with the quick tp torch in a chest, because the inventory is opened AFTER the player has teleported)
|
||||||
|
|
||||||
public ServerPlayer(MinecraftServer server, ServerLevel level, GameProfile gameProfile, ClientInformation clientInformation) {
|
public ServerPlayer(MinecraftServer server, ServerLevel level, GameProfile gameProfile, ClientInformation clientInformation) {
|
||||||
super(level, level.getSharedSpawnPos(), level.getSharedSpawnAngle(), gameProfile);
|
super(level, gameProfile);
|
||||||
@@ -736,6 +737,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
@@ -741,6 +742,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
@@ -255,7 +255,7 @@ index 3781d9cc174b7aecacb9b9855d52c7b1ff05835c..1f762b49a2a8f6e469ce0d7336198d5f
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
if (this.joining) {
|
if (this.joining) {
|
||||||
this.joining = false;
|
this.joining = false;
|
||||||
@@ -1364,6 +1366,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
@@ -1396,6 +1398,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
return this;
|
return this;
|
||||||
} else {
|
} else {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
@@ -263,7 +263,7 @@ index 3781d9cc174b7aecacb9b9855d52c7b1ff05835c..1f762b49a2a8f6e469ce0d7336198d5f
|
|||||||
/*
|
/*
|
||||||
this.isChangingDimension = true;
|
this.isChangingDimension = true;
|
||||||
LevelData levelData = level.getLevelData();
|
LevelData levelData = level.getLevelData();
|
||||||
@@ -1696,6 +1699,12 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
@@ -1732,6 +1735,12 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
return OptionalInt.empty();
|
return OptionalInt.empty();
|
||||||
} else {
|
} else {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
@@ -276,7 +276,7 @@ index 3781d9cc174b7aecacb9b9855d52c7b1ff05835c..1f762b49a2a8f6e469ce0d7336198d5f
|
|||||||
this.containerMenu = abstractContainerMenu; // Moved up
|
this.containerMenu = abstractContainerMenu; // Moved up
|
||||||
if (!this.isImmobile())
|
if (!this.isImmobile())
|
||||||
this.connection
|
this.connection
|
||||||
@@ -1760,6 +1769,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
@@ -1796,6 +1805,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) {
|
public void closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) {
|
||||||
@@ -289,10 +289,10 @@ index 3781d9cc174b7aecacb9b9855d52c7b1ff05835c..1f762b49a2a8f6e469ce0d7336198d5f
|
|||||||
// Paper end - Inventory close reason
|
// Paper end - Inventory close reason
|
||||||
this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId));
|
this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId));
|
||||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||||
index 9ca3c55a3b5b1a532b86b08eb92460df4cb54f2a..b493183213e540c4170680cd1b7699348ae53621 100644
|
index b1524279c02cd3be82338a6bd0320cb125a134d5..f628bd1fea97c2dba581f74c5aff5c5b888c4c9e 100644
|
||||||
--- a/net/minecraft/server/players/PlayerList.java
|
--- a/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/net/minecraft/server/players/PlayerList.java
|
+++ b/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -113,7 +113,7 @@ public abstract class PlayerList {
|
@@ -112,7 +112,7 @@ public abstract class PlayerList {
|
||||||
private static final SimpleDateFormat BAN_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
|
private static final SimpleDateFormat BAN_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
|
||||||
private final MinecraftServer server;
|
private final MinecraftServer server;
|
||||||
public final List<ServerPlayer> players = new java.util.concurrent.CopyOnWriteArrayList(); // CraftBukkit - ArrayList -> CopyOnWriteArrayList: Iterator safety
|
public final List<ServerPlayer> players = new java.util.concurrent.CopyOnWriteArrayList(); // CraftBukkit - ArrayList -> CopyOnWriteArrayList: Iterator safety
|
||||||
@@ -301,7 +301,7 @@ index 9ca3c55a3b5b1a532b86b08eb92460df4cb54f2a..b493183213e540c4170680cd1b769934
|
|||||||
private final UserBanList bans = new UserBanList(USERBANLIST_FILE);
|
private final UserBanList bans = new UserBanList(USERBANLIST_FILE);
|
||||||
private final IpBanList ipBans = new IpBanList(IPBANLIST_FILE);
|
private final IpBanList ipBans = new IpBanList(IPBANLIST_FILE);
|
||||||
private final ServerOpList ops = new ServerOpList(OPLIST_FILE);
|
private final ServerOpList ops = new ServerOpList(OPLIST_FILE);
|
||||||
@@ -134,7 +134,7 @@ public abstract class PlayerList {
|
@@ -133,7 +133,7 @@ public abstract class PlayerList {
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
private org.bukkit.craftbukkit.CraftServer cserver;
|
private org.bukkit.craftbukkit.CraftServer cserver;
|
||||||
@@ -310,7 +310,7 @@ index 9ca3c55a3b5b1a532b86b08eb92460df4cb54f2a..b493183213e540c4170680cd1b769934
|
|||||||
public @Nullable String collideRuleTeamName; // Paper - Configurable player collision
|
public @Nullable String collideRuleTeamName; // Paper - Configurable player collision
|
||||||
|
|
||||||
public PlayerList(MinecraftServer server, LayeredRegistryAccess<RegistryLayer> registries, PlayerDataStorage playerIo, int maxPlayers) {
|
public PlayerList(MinecraftServer server, LayeredRegistryAccess<RegistryLayer> registries, PlayerDataStorage playerIo, int maxPlayers) {
|
||||||
@@ -150,6 +150,7 @@ public abstract class PlayerList {
|
@@ -149,6 +149,7 @@ public abstract class PlayerList {
|
||||||
abstract public void loadAndSaveFiles(); // Paper - fix converting txt to json file; moved from DedicatedPlayerList constructor
|
abstract public void loadAndSaveFiles(); // Paper - fix converting txt to json file; moved from DedicatedPlayerList constructor
|
||||||
|
|
||||||
public void placeNewPlayer(Connection connection, ServerPlayer player, CommonListenerCookie cookie) {
|
public void placeNewPlayer(Connection connection, ServerPlayer player, CommonListenerCookie cookie) {
|
||||||
@@ -318,7 +318,7 @@ index 9ca3c55a3b5b1a532b86b08eb92460df4cb54f2a..b493183213e540c4170680cd1b769934
|
|||||||
player.isRealPlayer = true; // Paper
|
player.isRealPlayer = true; // Paper
|
||||||
player.loginTime = System.currentTimeMillis(); // Paper - Replace OfflinePlayer#getLastPlayed
|
player.loginTime = System.currentTimeMillis(); // Paper - Replace OfflinePlayer#getLastPlayed
|
||||||
GameProfile gameProfile = player.getGameProfile();
|
GameProfile gameProfile = player.getGameProfile();
|
||||||
@@ -713,6 +714,12 @@ public abstract class PlayerList {
|
@@ -709,6 +710,12 @@ public abstract class PlayerList {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerPlayer respawn(ServerPlayer player, boolean keepInventory, Entity.RemovalReason reason, @Nullable org.bukkit.event.player.PlayerRespawnEvent.RespawnReason eventReason, @Nullable org.bukkit.Location location) {
|
public ServerPlayer respawn(ServerPlayer player, boolean keepInventory, Entity.RemovalReason reason, @Nullable org.bukkit.event.player.PlayerRespawnEvent.RespawnReason eventReason, @Nullable org.bukkit.Location location) {
|
||||||
@@ -331,7 +331,7 @@ index 9ca3c55a3b5b1a532b86b08eb92460df4cb54f2a..b493183213e540c4170680cd1b769934
|
|||||||
player.stopRiding(); // CraftBukkit
|
player.stopRiding(); // CraftBukkit
|
||||||
this.players.remove(player);
|
this.players.remove(player);
|
||||||
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
|
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
|
||||||
@@ -723,6 +730,7 @@ public abstract class PlayerList {
|
@@ -719,6 +726,7 @@ public abstract class PlayerList {
|
||||||
ServerPlayer serverPlayer = player;
|
ServerPlayer serverPlayer = player;
|
||||||
Level fromWorld = player.level();
|
Level fromWorld = player.level();
|
||||||
player.wonGame = false;
|
player.wonGame = false;
|
||||||
@@ -340,10 +340,10 @@ index 9ca3c55a3b5b1a532b86b08eb92460df4cb54f2a..b493183213e540c4170680cd1b769934
|
|||||||
serverPlayer.connection = player.connection;
|
serverPlayer.connection = player.connection;
|
||||||
serverPlayer.restoreFrom(player, keepInventory);
|
serverPlayer.restoreFrom(player, keepInventory);
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index 81a18b8e605bd4c28b48a32c80be231609182970..bdb0e6b868101c1204b93c13623d2f55c96e64c8 100644
|
index 9344cdbad8415f6ff4d592d3f13390e85477a10d..51481f4fd09e03690182165d44a6cd88f34910fe 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -805,7 +805,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -834,7 +834,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
public void postTick() {
|
public void postTick() {
|
||||||
// No clean way to break out of ticking once the entity has been copied to a new world, so instead we move the portalling later in the tick cycle
|
// No clean way to break out of ticking once the entity has been copied to a new world, so instead we move the portalling later in the tick cycle
|
||||||
@@ -352,10 +352,10 @@ index 81a18b8e605bd4c28b48a32c80be231609182970..bdb0e6b868101c1204b93c13623d2f55
|
|||||||
this.handlePortal();
|
this.handlePortal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3788,6 +3788,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -3999,6 +3999,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
}
|
}
|
||||||
|
|
||||||
private Entity teleportCrossDimension(ServerLevel level, TeleportTransition teleportTransition) {
|
private Entity teleportCrossDimension(ServerLevel oldLevel, ServerLevel newLevel, TeleportTransition teleportTransition) {
|
||||||
+ ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread(level, "Cannot teleport entity to another world off-main, from world " + this.level.getWorld().getName() + " to world " + level.getWorld().getName()); // SparklyPaper - parallel world ticking (additional concurrency issues logs)
|
+ ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread(level, "Cannot teleport entity to another world off-main, from world " + this.level.getWorld().getName() + " to world " + level.getWorld().getName()); // SparklyPaper - parallel world ticking (additional concurrency issues logs)
|
||||||
List<Entity> passengers = this.getPassengers();
|
List<Entity> passengers = this.getPassengers();
|
||||||
List<Entity> list = new ArrayList<>(passengers.size());
|
List<Entity> list = new ArrayList<>(passengers.size());
|
||||||
@@ -380,10 +380,10 @@ index 813417a09b4acc7d57e80a53d970767e230d75b1..b8ff46e7543f00d963a6aa87509a1173
|
|||||||
this.containerId = containerId;
|
this.containerId = containerId;
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||||
index 24ecca78dc1140b6fc47d59f2acefca6bc2b0220..e02e149c4ea52f2c3e4670d81504b655ebd86026 100644
|
index cf283389d9263ba29720bf296a778be9eaf308a7..403cc6642dad5ac46f989ebcfb042fa0a36bc035 100644
|
||||||
--- a/net/minecraft/world/item/ItemStack.java
|
--- a/net/minecraft/world/item/ItemStack.java
|
||||||
+++ b/net/minecraft/world/item/ItemStack.java
|
+++ b/net/minecraft/world/item/ItemStack.java
|
||||||
@@ -406,8 +406,8 @@ public final class ItemStack implements DataComponentHolder {
|
@@ -398,8 +398,8 @@ public final class ItemStack implements DataComponentHolder {
|
||||||
if (interactionResult.consumesAction() && serverLevel.captureTreeGeneration && !serverLevel.capturedBlockStates.isEmpty()) {
|
if (interactionResult.consumesAction() && serverLevel.captureTreeGeneration && !serverLevel.capturedBlockStates.isEmpty()) {
|
||||||
serverLevel.captureTreeGeneration = false;
|
serverLevel.captureTreeGeneration = false;
|
||||||
org.bukkit.Location location = org.bukkit.craftbukkit.util.CraftLocation.toBukkit(clickedPos, serverLevel.getWorld());
|
org.bukkit.Location location = org.bukkit.craftbukkit.util.CraftLocation.toBukkit(clickedPos, serverLevel.getWorld());
|
||||||
@@ -395,7 +395,7 @@ index 24ecca78dc1140b6fc47d59f2acefca6bc2b0220..e02e149c4ea52f2c3e4670d81504b655
|
|||||||
serverLevel.capturedBlockStates.clear();
|
serverLevel.capturedBlockStates.clear();
|
||||||
org.bukkit.event.world.StructureGrowEvent structureEvent = null;
|
org.bukkit.event.world.StructureGrowEvent structureEvent = null;
|
||||||
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
||||||
index 71454f733a568e713d6be01a8c882529a0ef1b35..617d1b0d99c90a4f2e252a06cb531ed9ceaae9fb 100644
|
index 722dc48c88e7a7374e7b9aa5bcdc0ed2cc1775b4..0184cf93144246d464ed1654a1850f1729460ce6 100644
|
||||||
--- a/net/minecraft/world/level/Level.java
|
--- a/net/minecraft/world/level/Level.java
|
||||||
+++ b/net/minecraft/world/level/Level.java
|
+++ b/net/minecraft/world/level/Level.java
|
||||||
@@ -161,6 +161,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -161,6 +161,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
@@ -432,15 +432,15 @@ index 71454f733a568e713d6be01a8c882529a0ef1b35..617d1b0d99c90a4f2e252a06cb531ed9
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Paper start - Option to prevent armor stands from doing entity lookups
|
// Paper start - Option to prevent armor stands from doing entity lookups
|
||||||
@@ -1632,6 +1634,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -1626,6 +1628,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public BlockEntity getBlockEntity(BlockPos pos, boolean validate) {
|
@Override
|
||||||
|
public BlockEntity getBlockEntity(BlockPos pos) {
|
||||||
+ ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThreadOrAsyncThread((ServerLevel) this, "Cannot read world asynchronously"); // SparklyPaper - parallel world ticking
|
+ ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThreadOrAsyncThread((ServerLevel) this, "Cannot read world asynchronously"); // SparklyPaper - parallel world ticking
|
||||||
// Paper start - Perf: Optimize capturedTileEntities lookup
|
// Paper start - Perf: Optimize capturedTileEntities lookup
|
||||||
net.minecraft.world.level.block.entity.BlockEntity blockEntity;
|
net.minecraft.world.level.block.entity.BlockEntity blockEntity;
|
||||||
if (!this.capturedTileEntities.isEmpty() && (blockEntity = this.capturedTileEntities.get(pos)) != null) {
|
if (!this.capturedTileEntities.isEmpty() && (blockEntity = this.capturedTileEntities.get(pos)) != null) {
|
||||||
@@ -1649,6 +1652,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -1642,6 +1645,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBlockEntity(BlockEntity blockEntity) {
|
public void setBlockEntity(BlockEntity blockEntity) {
|
||||||
@@ -448,7 +448,7 @@ index 71454f733a568e713d6be01a8c882529a0ef1b35..617d1b0d99c90a4f2e252a06cb531ed9
|
|||||||
BlockPos blockPos = blockEntity.getBlockPos();
|
BlockPos blockPos = blockEntity.getBlockPos();
|
||||||
if (!this.isOutsideBuildHeight(blockPos)) {
|
if (!this.isOutsideBuildHeight(blockPos)) {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
@@ -1733,6 +1737,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -1726,6 +1730,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Entity> getEntities(@Nullable Entity entity, AABB boundingBox, Predicate<? super Entity> predicate) {
|
public List<Entity> getEntities(@Nullable Entity entity, AABB boundingBox, Predicate<? super Entity> predicate) {
|
||||||
@@ -456,7 +456,7 @@ index 71454f733a568e713d6be01a8c882529a0ef1b35..617d1b0d99c90a4f2e252a06cb531ed9
|
|||||||
Profiler.get().incrementCounter("getEntities");
|
Profiler.get().incrementCounter("getEntities");
|
||||||
List<Entity> list = Lists.newArrayList();
|
List<Entity> list = Lists.newArrayList();
|
||||||
|
|
||||||
@@ -2054,8 +2059,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -2051,8 +2056,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
public abstract RecipeAccess recipeAccess();
|
public abstract RecipeAccess recipeAccess();
|
||||||
|
|
||||||
public BlockPos getBlockRandomPos(int x, int y, int z, int yMask) {
|
public BlockPos getBlockRandomPos(int x, int y, int z, int yMask) {
|
||||||
@@ -551,10 +551,10 @@ index a22cb810622e0ae97bc2a0d6390d026d9482b783..7934299d633524a9ef8c9d315a48c0f5
|
|||||||
java.util.List<org.bukkit.block.BlockState> blocks = new java.util.ArrayList<>(level.capturedBlockStates.values());
|
java.util.List<org.bukkit.block.BlockState> blocks = new java.util.ArrayList<>(level.capturedBlockStates.values());
|
||||||
level.capturedBlockStates.clear();
|
level.capturedBlockStates.clear();
|
||||||
diff --git a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
|
diff --git a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
|
||||||
index c63370fd458fb4f7190b79b1a8174fcc92d88f9c..5c2033ef17d27ee7242de0c4a00425f74d50cad9 100644
|
index 5a094257a31f0500278a706a418e1697f8810ffb..2fde02112ae6e88ef017e8f148cf3ab543f43616 100644
|
||||||
--- a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
|
--- a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
|
||||||
+++ b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
|
+++ b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
|
||||||
@@ -79,6 +79,12 @@ public abstract class BaseContainerBlockEntity extends BlockEntity implements Co
|
@@ -76,6 +76,12 @@ public abstract class BaseContainerBlockEntity extends BlockEntity implements Co
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean canUnlock(Player player, LockCode code, Component displayName, @Nullable BlockEntity blockEntity) {
|
public static boolean canUnlock(Player player, LockCode code, Component displayName, @Nullable BlockEntity blockEntity) {
|
||||||
@@ -568,7 +568,7 @@ index c63370fd458fb4f7190b79b1a8174fcc92d88f9c..5c2033ef17d27ee7242de0c4a00425f7
|
|||||||
final org.bukkit.block.Block block = org.bukkit.craftbukkit.block.CraftBlock.at(blockEntity.getLevel(), blockEntity.getBlockPos());
|
final org.bukkit.block.Block block = org.bukkit.craftbukkit.block.CraftBlock.at(blockEntity.getLevel(), blockEntity.getBlockPos());
|
||||||
net.kyori.adventure.text.Component lockedMessage = net.kyori.adventure.text.Component.translatable("container.isLocked", io.papermc.paper.adventure.PaperAdventure.asAdventure(displayName));
|
net.kyori.adventure.text.Component lockedMessage = net.kyori.adventure.text.Component.translatable("container.isLocked", io.papermc.paper.adventure.PaperAdventure.asAdventure(displayName));
|
||||||
diff --git a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
diff --git a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
||||||
index 2627583ab12d886b1fba0b1d1e599f942926b499..2caa770411c542a70fe50267ce4cffb22fc94b97 100644
|
index 0a94670dc20bb9c521b0395633eb100393895f6a..4ad9c47862a9791f72a18835a343bf0e962c14c8 100644
|
||||||
--- a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
--- a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
||||||
+++ b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
+++ b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
||||||
@@ -43,9 +43,7 @@ public class SculkCatalystBlockEntity extends BlockEntity implements GameEventLi
|
@@ -43,9 +43,7 @@ public class SculkCatalystBlockEntity extends BlockEntity implements GameEventLi
|
||||||
@@ -667,10 +667,10 @@ index d23f255de9208f42125fa358a9e8194c984fe4d3..54d64e77dc8c4bef25822d74a30be1a8
|
|||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
|
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
index 5d3fc807221392d378fec283bfdefb8747fb8376..b674e2dbf35b489baf3615236b74f62efe2f33be 100644
|
index 75578e6ed7233a03d9b6cd3c6d3997f1c6148392..061218fc1fb0c4f4405eb4980ac17622c891aad6 100644
|
||||||
--- a/net/minecraft/world/level/chunk/LevelChunk.java
|
--- a/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
|
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
@@ -358,6 +358,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
@@ -360,6 +360,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public BlockState setBlockState(BlockPos pos, BlockState state, int flags) {
|
public BlockState setBlockState(BlockPos pos, BlockState state, int flags) {
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
--- a/net/minecraft/server/MinecraftServer.java
|
--- a/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/net/minecraft/server/MinecraftServer.java
|
+++ b/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -302,6 +_,7 @@
|
@@ -303,6 +_,7 @@
|
||||||
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||||
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
|
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
|
||||||
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
||||||
+ public final Set<net.minecraft.world.entity.Entity> entitiesWithScheduledTasks = java.util.concurrent.ConcurrentHashMap.newKeySet(); // SparklyPaper - skip EntityScheduler's executeTick checks if there isn't any tasks to be run (concurrent because plugins may schedule tasks async)
|
+ public final Set<net.minecraft.world.entity.Entity> entitiesWithScheduledTasks = java.util.concurrent.ConcurrentHashMap.newKeySet(); // SparklyPaper - skip EntityScheduler's executeTick checks if there isn't any tasks to be run (concurrent because plugins may schedule tasks async)
|
||||||
|
|
||||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
||||||
AtomicReference<S> atomicReference = new AtomicReference<>();
|
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
|
||||||
@@ -1657,6 +_,18 @@
|
@@ -1659,6 +_,18 @@
|
||||||
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
|
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
|
||||||
// Paper start - Folia scheduler API
|
// Paper start - Folia scheduler API
|
||||||
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) org.bukkit.Bukkit.getGlobalRegionScheduler()).tick();
|
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) org.bukkit.Bukkit.getGlobalRegionScheduler()).tick();
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
getAllLevels().forEach(level -> {
|
getAllLevels().forEach(level -> {
|
||||||
for (final net.minecraft.world.entity.Entity entity : level.getEntities().getAll()) {
|
for (final net.minecraft.world.entity.Entity entity : level.getEntities().getAll()) {
|
||||||
if (entity.isRemoved()) {
|
if (entity.isRemoved()) {
|
||||||
@@ -1668,6 +_,8 @@
|
@@ -1670,6 +_,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
// Paper end - Folia scheduler API
|
// Paper end - Folia scheduler API
|
||||||
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
|
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
|
||||||
profilerFiller.push("commandFunctions");
|
profilerFiller.push("commandFunctions");
|
||||||
@@ -1719,7 +_,16 @@
|
@@ -1721,7 +_,16 @@
|
||||||
profilerFiller.push("tick");
|
profilerFiller.push("tick");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -581,6 +_,31 @@
|
@@ -608,6 +_,31 @@
|
||||||
LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", rootVehicle.getName().getString(), this.player.getName().getString(), Math.sqrt(d7));
|
LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", rootVehicle.getName().getString(), this.player.getName().getString(), Math.sqrt(d7));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -28,11 +28,11 @@
|
|||||||
+ f1 = playerMoveControllableVehicleEvent.getTo().getPitch();
|
+ f1 = playerMoveControllableVehicleEvent.getTo().getPitch();
|
||||||
+ }
|
+ }
|
||||||
+ // SparklyPaper end
|
+ // SparklyPaper end
|
||||||
+
|
+
|
||||||
rootVehicle.absSnapTo(d, d1, d2, f, f1);
|
|
||||||
this.player.absSnapTo(d, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit
|
|
||||||
// Paper start - optimise out extra getCubes
|
// Paper start - optimise out extra getCubes
|
||||||
@@ -1468,7 +_,7 @@
|
boolean teleportBack = flag1;
|
||||||
|
if (!teleportBack) {
|
||||||
|
@@ -1502,7 +_,7 @@
|
||||||
d3 = d - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above
|
d3 = d - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above
|
||||||
d4 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above
|
d4 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above
|
||||||
d5 = d2 - this.lastGoodZ; // Paper - diff on change, used for checking large move vectors above
|
d5 = d2 - this.lastGoodZ; // Paper - diff on change, used for checking large move vectors above
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
if (this.player.onGround() && !packet.isOnGround() && flag) {
|
if (this.player.onGround() && !packet.isOnGround() && flag) {
|
||||||
// Paper start - Add PlayerJumpEvent
|
// Paper start - Add PlayerJumpEvent
|
||||||
org.bukkit.entity.Player player = this.getCraftPlayer();
|
org.bukkit.entity.Player player = this.getCraftPlayer();
|
||||||
@@ -1502,7 +_,37 @@
|
@@ -1536,7 +_,37 @@
|
||||||
|
|
||||||
boolean flag1 = this.player.verticalCollisionBelow;
|
boolean flag1 = this.player.verticalCollisionBelow;
|
||||||
this.player.move(MoverType.PLAYER, new Vec3(d3, d4, d5));
|
this.player.move(MoverType.PLAYER, new Vec3(d3, d4, d5));
|
||||||
@@ -80,9 +80,9 @@
|
|||||||
final boolean didCollide = toX != this.player.getX() || toY != this.player.getY() || toZ != this.player.getZ(); // Paper - needed here as the difference in Y can be reset - also note: this is only a guess at whether collisions took place, floating point errors can make this true when it shouldn't be...
|
final boolean didCollide = toX != this.player.getX() || toY != this.player.getY() || toZ != this.player.getZ(); // Paper - needed here as the difference in Y can be reset - also note: this is only a guess at whether collisions took place, floating point errors can make this true when it shouldn't be...
|
||||||
// Paper start - prevent position desync
|
// Paper start - prevent position desync
|
||||||
if (this.awaitingPositionFromClient != null) {
|
if (this.awaitingPositionFromClient != null) {
|
||||||
@@ -1636,14 +_,14 @@
|
@@ -1669,14 +_,14 @@
|
||||||
&& this.noBlocksAround(this.player);
|
&& this.noBlocksAround(this.player);
|
||||||
this.player.serverLevel().getChunkSource().move(this.player);
|
this.player.level().getChunkSource().move(this.player);
|
||||||
Vec3 vec3 = new Vec3(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z);
|
Vec3 vec3 = new Vec3(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z);
|
||||||
- this.player.setOnGroundWithMovement(packet.isOnGround(), packet.horizontalCollision(), vec3);
|
- this.player.setOnGroundWithMovement(packet.isOnGround(), packet.horizontalCollision(), vec3);
|
||||||
- this.player.doCheckFallDamage(vec3.x, vec3.y, vec3.z, packet.isOnGround());
|
- this.player.doCheckFallDamage(vec3.x, vec3.y, vec3.z, packet.isOnGround());
|
||||||
@@ -98,16 +98,16 @@
|
|||||||
|| this.player.hasLandedInLiquid()
|
|| this.player.hasLandedInLiquid()
|
||||||
|| this.player.onClimbable()
|
|| this.player.onClimbable()
|
||||||
|| this.player.isSpectator()
|
|| this.player.isSpectator()
|
||||||
@@ -1658,7 +_,7 @@
|
@@ -1691,7 +_,7 @@
|
||||||
this.lastGoodZ = this.player.getZ();
|
this.lastGoodZ = this.player.getZ();
|
||||||
} else {
|
} else {
|
||||||
this.internalTeleport(x, y, z, f, f1); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet.
|
this.internalTeleport(x, y, z, f, f1); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet.
|
||||||
- this.player.doCheckFallDamage(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z, packet.isOnGround());
|
- this.player.doCheckFallDamage(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z, packet.isOnGround());
|
||||||
+ this.player.doCheckFallDamage(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z, isOnGround); // SparklyPaper - Add PlayerPreMoveEvent
|
+ this.player.doCheckFallDamage(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z, isOnGround); // SparklyPaper - Add PlayerPreMoveEvent
|
||||||
this.player.removeLatestMovementRecordingBatch();
|
this.player.removeLatestMovementRecording();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3163,6 +_,21 @@
|
@@ -3175,6 +_,21 @@
|
||||||
} else {
|
} else {
|
||||||
event = new CraftItemEvent(recipe, inventory, type, slotNum, click, action);
|
event = new CraftItemEvent(recipe, inventory, type, slotNum, click, action);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -294,10 +294,10 @@ index 69cdd304d255d52c9b7dc9b6a33ffdb630b79abe..8fc5691d608359ce848b8caecdd55ddd
|
|||||||
+ // SparklyPaper end
|
+ // SparklyPaper end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..4b2367be92e28331d4e15bab68333d3afcd61950 100644
|
index 7990382df41824b7a4072fd4a44d02a229a4d9b6..343267292db75188cae483d72bc8faf03741a5b6 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
@@ -456,7 +456,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -474,7 +474,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean unloadChunk0(int x, int z, boolean save) {
|
private boolean unloadChunk0(int x, int z, boolean save) {
|
||||||
@@ -306,7 +306,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..4b2367be92e28331d4e15bab68333d3a
|
|||||||
if (!this.isChunkLoaded(x, z)) {
|
if (!this.isChunkLoaded(x, z)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -473,6 +473,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -491,6 +491,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean refreshChunk(int x, int z) {
|
public boolean refreshChunk(int x, int z) {
|
||||||
@@ -314,7 +314,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..4b2367be92e28331d4e15bab68333d3a
|
|||||||
ChunkHolder playerChunk = this.world.getChunkSource().chunkMap.getVisibleChunkIfPresent(ChunkPos.asLong(x, z));
|
ChunkHolder playerChunk = this.world.getChunkSource().chunkMap.getVisibleChunkIfPresent(ChunkPos.asLong(x, z));
|
||||||
if (playerChunk == null) return false;
|
if (playerChunk == null) return false;
|
||||||
|
|
||||||
@@ -523,6 +524,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -541,6 +542,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean loadChunk(int x, int z, boolean generate) {
|
public boolean loadChunk(int x, int z, boolean generate) {
|
||||||
@@ -322,7 +322,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..4b2367be92e28331d4e15bab68333d3a
|
|||||||
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
|
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
|
||||||
warnUnsafeChunk("loading a faraway chunk", x, z); // Paper
|
warnUnsafeChunk("loading a faraway chunk", x, z); // Paper
|
||||||
ChunkAccess chunk = this.world.getChunkSource().getChunk(x, z, generate || isChunkGenerated(x, z) ? ChunkStatus.FULL : ChunkStatus.EMPTY, true); // Paper
|
ChunkAccess chunk = this.world.getChunkSource().getChunk(x, z, generate || isChunkGenerated(x, z) ? ChunkStatus.FULL : ChunkStatus.EMPTY, true); // Paper
|
||||||
@@ -751,6 +753,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -769,6 +771,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean generateTree(Location loc, TreeType type, BlockChangeDelegate delegate) {
|
public boolean generateTree(Location loc, TreeType type, BlockChangeDelegate delegate) {
|
||||||
@@ -330,7 +330,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..4b2367be92e28331d4e15bab68333d3a
|
|||||||
this.world.captureTreeGeneration = true;
|
this.world.captureTreeGeneration = true;
|
||||||
this.world.captureBlockStates = true;
|
this.world.captureBlockStates = true;
|
||||||
boolean grownTree = this.generateTree(loc, type);
|
boolean grownTree = this.generateTree(loc, type);
|
||||||
@@ -866,6 +869,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -884,6 +887,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
}
|
}
|
||||||
public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source, Consumer<net.minecraft.world.level.ServerExplosion> configurator) {
|
public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source, Consumer<net.minecraft.world.level.ServerExplosion> configurator) {
|
||||||
// Paper end - expand explosion API
|
// Paper end - expand explosion API
|
||||||
@@ -338,7 +338,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..4b2367be92e28331d4e15bab68333d3a
|
|||||||
net.minecraft.world.level.Level.ExplosionInteraction explosionType;
|
net.minecraft.world.level.Level.ExplosionInteraction explosionType;
|
||||||
if (!breakBlocks) {
|
if (!breakBlocks) {
|
||||||
explosionType = net.minecraft.world.level.Level.ExplosionInteraction.NONE; // Don't break blocks
|
explosionType = net.minecraft.world.level.Level.ExplosionInteraction.NONE; // Don't break blocks
|
||||||
@@ -957,6 +961,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -975,6 +979,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getHighestBlockYAt(int x, int z, org.bukkit.HeightMap heightMap) {
|
public int getHighestBlockYAt(int x, int z, org.bukkit.HeightMap heightMap) {
|
||||||
@@ -346,7 +346,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..4b2367be92e28331d4e15bab68333d3a
|
|||||||
warnUnsafeChunk("getting a faraway chunk", x >> 4, z >> 4); // Paper
|
warnUnsafeChunk("getting a faraway chunk", x >> 4, z >> 4); // Paper
|
||||||
// Transient load for this tick
|
// Transient load for this tick
|
||||||
return this.world.getChunk(x >> 4, z >> 4).getHeight(CraftHeightMap.toNMS(heightMap), x, z);
|
return this.world.getChunk(x >> 4, z >> 4).getHeight(CraftHeightMap.toNMS(heightMap), x, z);
|
||||||
@@ -987,6 +992,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -1005,6 +1010,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
@Override
|
@Override
|
||||||
public void setBiome(int x, int y, int z, Holder<net.minecraft.world.level.biome.Biome> bb) {
|
public void setBiome(int x, int y, int z, Holder<net.minecraft.world.level.biome.Biome> bb) {
|
||||||
BlockPos pos = new BlockPos(x, 0, z);
|
BlockPos pos = new BlockPos(x, 0, z);
|
||||||
@@ -354,7 +354,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..4b2367be92e28331d4e15bab68333d3a
|
|||||||
if (this.world.hasChunkAt(pos)) {
|
if (this.world.hasChunkAt(pos)) {
|
||||||
net.minecraft.world.level.chunk.LevelChunk chunk = this.world.getChunkAt(pos);
|
net.minecraft.world.level.chunk.LevelChunk chunk = this.world.getChunkAt(pos);
|
||||||
|
|
||||||
@@ -2295,6 +2301,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -2313,6 +2319,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendGameEvent(Entity sourceEntity, org.bukkit.GameEvent gameEvent, Vector position) {
|
public void sendGameEvent(Entity sourceEntity, org.bukkit.GameEvent gameEvent, Vector position) {
|
||||||
@@ -532,10 +532,10 @@ index a4d5c65edc1db59f3486ce5d3757cc306211a54b..3609e71f382f80017acb91c5e286008d
|
|||||||
this.getNMS().tick(level, this.position, level.random);
|
this.getNMS().tick(level, this.position, level.random);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
|
||||||
index 3422970353dcd886934b9ee906467769d39abbde..79f53cfa396ae67b1e5432ca353cebafae9499fa 100644
|
index 7232b560aac9fbe48318f7af1c875583e06723ee..731cf7ef140c454466d8961e74ad2f43c0f9242d 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
|
||||||
@@ -25,7 +25,7 @@ public abstract class CraftBlockEntityState<T extends BlockEntity> extends Craft
|
@@ -32,7 +32,7 @@ public abstract class CraftBlockEntityState<T extends BlockEntity> extends Craft
|
||||||
private final T blockEntity;
|
private final T blockEntity;
|
||||||
private final T snapshot;
|
private final T snapshot;
|
||||||
public boolean snapshotDisabled; // Paper
|
public boolean snapshotDisabled; // Paper
|
||||||
@@ -544,7 +544,7 @@ index 3422970353dcd886934b9ee906467769d39abbde..79f53cfa396ae67b1e5432ca353cebaf
|
|||||||
|
|
||||||
public CraftBlockEntityState(World world, T blockEntity) {
|
public CraftBlockEntityState(World world, T blockEntity) {
|
||||||
super(world, blockEntity.getBlockPos(), blockEntity.getBlockState());
|
super(world, blockEntity.getBlockPos(), blockEntity.getBlockState());
|
||||||
@@ -34,8 +34,8 @@ public abstract class CraftBlockEntityState<T extends BlockEntity> extends Craft
|
@@ -41,8 +41,8 @@ public abstract class CraftBlockEntityState<T extends BlockEntity> extends Craft
|
||||||
|
|
||||||
try { // Paper - Show blockstate location if we failed to read it
|
try { // Paper - Show blockstate location if we failed to read it
|
||||||
// Paper start
|
// Paper start
|
||||||
@@ -581,7 +581,7 @@ index 196835bdf95ba0e149b2977e9ef41698971f501f..641adf9666fef4d15bc9b585aabfe687
|
|||||||
net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
|
net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||||
index 2338e7c115037430cefae26a571ded71f77983c4..15ba9c5588b6ef8da7e495dccbdcd53711ee4af1 100644
|
index cc5028cebcd0504635734907c73ee5c9d91f0e71..be3840a298fa778937803341018868351cdb535f 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||||
@@ -195,14 +195,14 @@ public final class CraftBlockStates {
|
@@ -195,14 +195,14 @@ public final class CraftBlockStates {
|
||||||
@@ -603,10 +603,10 @@ index 2338e7c115037430cefae26a571ded71f77983c4..15ba9c5588b6ef8da7e495dccbdcd537
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
index b60d1816fe97c01d13ba46311c57a0fc29e86e19..077f3d3173bfab9196b504a0386479e3af41f59a 100644
|
index ffcc282dec5c3874f1170b42f1752a0f8421fe35..d24656e96f4628f7d02f0e0026e2ef7258765b35 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
@@ -808,7 +808,7 @@ public class CraftEventFactory {
|
@@ -809,7 +809,7 @@ public class CraftEventFactory {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -615,7 +615,7 @@ index b60d1816fe97c01d13ba46311c57a0fc29e86e19..077f3d3173bfab9196b504a0386479e3
|
|||||||
|
|
||||||
public static boolean handleBlockSpreadEvent(LevelAccessor world, BlockPos source, BlockPos target, net.minecraft.world.level.block.state.BlockState state, int flags) {
|
public static boolean handleBlockSpreadEvent(LevelAccessor world, BlockPos source, BlockPos target, net.minecraft.world.level.block.state.BlockState state, int flags) {
|
||||||
return handleBlockSpreadEvent(world, source, target, state, flags, false);
|
return handleBlockSpreadEvent(world, source, target, state, flags, false);
|
||||||
@@ -824,7 +824,7 @@ public class CraftEventFactory {
|
@@ -825,7 +825,7 @@ public class CraftEventFactory {
|
||||||
CraftBlockState snapshot = CraftBlockStates.getBlockState(world, target);
|
CraftBlockState snapshot = CraftBlockStates.getBlockState(world, target);
|
||||||
snapshot.setData(state);
|
snapshot.setData(state);
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
@@ -165,6 +_,14 @@
|
@@ -157,7 +_,14 @@
|
||||||
.defaultsTo(new File[] {})
|
.ofType(File.class)
|
||||||
.describedAs("Jar file");
|
.defaultsTo(new File("paper.yml"))
|
||||||
|
.describedAs("Yml file");
|
||||||
|
-
|
||||||
+ // SparklyPaper start - config files
|
+ // SparklyPaper start - config files
|
||||||
+ acceptsAll(asList("sparklypaper", "sparklypaper-settings"), "File for SparklyPaper settings")
|
+ this.acceptsAll(asList("sparklypaper", "sparklypaper-settings"), "File for SparklyPaper settings")
|
||||||
+ .withRequiredArg()
|
+ .withRequiredArg()
|
||||||
+ .ofType(File.class)
|
+ .ofType(File.class)
|
||||||
+ .defaultsTo(new File("sparklypaper.yml"))
|
+ .defaultsTo(new File("sparklypaper.yml"))
|
||||||
+ .describedAs("Yml file");
|
+ .describedAs("Yml file");
|
||||||
+ // SparklyPaper end
|
+ // SparklyPaper end
|
||||||
+
|
+
|
||||||
acceptsAll(asList("server-name"), "Name of the server")
|
this.acceptsAll(asList("add-plugin", "add-extra-plugin-jar"), "Specify paths to extra plugin jars to be loaded in addition to those in the plugins folder. This argument can be specified multiple times, once for each extra plugin jar path.")
|
||||||
.withRequiredArg()
|
.withRequiredArg()
|
||||||
.ofType(String.class)
|
.ofType(File.class)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
@@ -85,7 +_,7 @@
|
@@ -93,7 +_,7 @@
|
||||||
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftEntity.DATA_TYPE_REGISTRY);
|
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftEntity.DATA_TYPE_REGISTRY);
|
||||||
protected net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers
|
protected net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers
|
||||||
// Paper start - Folia shedulers
|
// Paper start - Folia shedulers
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
private final io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler apiScheduler = new io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler(this);
|
private final io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler apiScheduler = new io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler(this);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -98,6 +_,7 @@
|
@@ -106,6 +_,7 @@
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.entity = entity;
|
this.entity = entity;
|
||||||
this.entityType = CraftEntityType.minecraftToBukkit(entity.getType());
|
this.entityType = CraftEntityType.minecraftToBukkit(entity.getType());
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
@@ -1307,6 +_,23 @@
|
@@ -1308,6 +_,23 @@
|
||||||
Bukkit.getPluginManager().callEvent(crafterCraftEvent);
|
Bukkit.getPluginManager().callEvent(crafterCraftEvent);
|
||||||
return crafterCraftEvent;
|
return crafterCraftEvent;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
@@ -87,6 +_,7 @@
|
@@ -93,6 +_,7 @@
|
||||||
public final class CraftMagicNumbers implements UnsafeValues {
|
|
||||||
public static final CraftMagicNumbers INSTANCE = new CraftMagicNumbers();
|
public static final CraftMagicNumbers INSTANCE = new CraftMagicNumbers();
|
||||||
public static final boolean DISABLE_OLD_API_SUPPORT = Boolean.getBoolean("paper.disableOldApiSupport"); // Paper
|
public static final boolean DISABLE_OLD_API_SUPPORT = Boolean.getBoolean("paper.disableOldApiSupport"); // Paper
|
||||||
+ private static final boolean JUST_CORRUPT_IT = Boolean.getBoolean("sparklypaper.ignoreItemDataVersion"); // SparklyPaper - allow item downgrades
|
+ private static final boolean JUST_CORRUPT_IT = Boolean.getBoolean("sparklypaper.ignoreItemDataVersion"); // SparklyPaper - allow item downgrades
|
||||||
|
|
||||||
private final Commodore commodore = new Commodore();
|
private final Commodore commodore = new Commodore();
|
||||||
|
|
||||||
@@ -242,7 +_,7 @@
|
@@ -248,7 +_,7 @@
|
||||||
@Override
|
@Override
|
||||||
public Material getMaterial(String material, int version) {
|
public Material getMaterial(String material, int version) {
|
||||||
Preconditions.checkArgument(material != null, "material == null");
|
Preconditions.checkArgument(material != null, "material == null");
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
// Fastpath up to date materials
|
// Fastpath up to date materials
|
||||||
if (version == this.getDataVersion()) {
|
if (version == this.getDataVersion()) {
|
||||||
@@ -752,7 +_,7 @@
|
@@ -772,7 +_,7 @@
|
||||||
throw new RuntimeException(ex);
|
throw new RuntimeException(ex);
|
||||||
}
|
}
|
||||||
int dataVersion = compound.getIntOr("DataVersion", 0);
|
int dataVersion = compound.getIntOr("DataVersion", 0);
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
--- a/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
--- a/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
||||||
+++ b/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
+++ b/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
||||||
@@ -137,6 +_,9 @@
|
@@ -141,6 +_,9 @@
|
||||||
Material.RESIN_BRICK, Material.POTTED_OPEN_EYEBLOSSOM, Material.POTTED_CLOSED_EYEBLOSSOM,
|
Material.BLACK_HARNESS, Material.BLUE_HARNESS, Material.BROWN_HARNESS, Material.CYAN_HARNESS, Material.DRIED_GHAST, Material.GRAY_HARNESS, Material.GREEN_HARNESS, Material.HAPPY_GHAST_SPAWN_EGG, Material.LIGHT_BLUE_HARNESS, Material.LIGHT_GRAY_HARNESS,
|
||||||
// 1.21.5
|
Material.LIME_HARNESS, Material.MAGENTA_HARNESS, Material.ORANGE_HARNESS, Material.PINK_HARNESS, Material.PURPLE_HARNESS, Material.RED_HARNESS, Material.WHITE_HARNESS, Material.YELLOW_HARNESS,
|
||||||
Material.WILDFLOWERS, Material.LEAF_LITTER, Material.TEST_BLOCK, Material.TEST_INSTANCE_BLOCK, Material.BUSH, Material.FIREFLY_BUSH, Material.SHORT_DRY_GRASS, Material.TALL_DRY_GRASS, Material.CACTUS_FLOWER, Material.BLUE_EGG, Material.BROWN_EGG,
|
Material.MUSIC_DISC_TEARS,
|
||||||
+ // SparklyPower custom blocks
|
+ // SparklyPower custom blocks
|
||||||
+ Material.SPARKLYPOWER_RAINBOW_WOOL, Material.SPARKLYPOWER_RAINBOW_CONCRETE, Material.SPARKLYPOWER_RAINBOW_TERRACOTTA, Material.SPARKLYPOWER_ASPHALT_PLAYER, Material.SPARKLYPOWER_ASPHALT_SERVER, Material.SPARKLYPOWER_ASPHALT_PLAYER_SLAB,
|
+ Material.SPARKLYPOWER_RAINBOW_WOOL, Material.SPARKLYPOWER_RAINBOW_CONCRETE, Material.SPARKLYPOWER_RAINBOW_TERRACOTTA, Material.SPARKLYPOWER_ASPHALT_PLAYER, Material.SPARKLYPOWER_ASPHALT_SERVER, Material.SPARKLYPOWER_ASPHALT_PLAYER_SLAB,
|
||||||
+ Material.SPARKLYPOWER_ASPHALT_SERVER_SLAB,
|
+ Material.SPARKLYPOWER_ASPHALT_SERVER_SLAB,
|
||||||
|
|||||||
Reference in New Issue
Block a user