patches work
This commit is contained in:
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
@@ -5,10 +5,10 @@ Subject: [PATCH] Add World Instance flag
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
||||||
index 17d404d6d1a5b46b58d612fca38f17e71adee92e..8542f193fe7be07d47b26dd0434965f2c3cd1be9 100644
|
index d3081d4445af73c2c7b23c5fc60861f184ac808e..415a137775f072d1aefa841b01b6bf7a5f97b6a3 100644
|
||||||
--- a/src/main/java/org/bukkit/World.java
|
--- a/src/main/java/org/bukkit/World.java
|
||||||
+++ b/src/main/java/org/bukkit/World.java
|
+++ b/src/main/java/org/bukkit/World.java
|
||||||
@@ -2664,6 +2664,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
@@ -2663,6 +2663,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||||||
*/
|
*/
|
||||||
public void setAutoSave(boolean value);
|
public void setAutoSave(boolean value);
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Smooth Teleports
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||||
index 087898a50909a40aabec09f1e52cefed6565ba4c..1ca7b2800dc57e4b617d8225e9c18f30952b993e 100644
|
index ae61a39b25267b84fe0b8766e4b12d9b24b44ded..3a7d0900e7802c40377086ba8acec5a3f90a340d 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||||
@@ -3169,6 +3169,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
@@ -3437,6 +3437,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||||
String getClientBrandName();
|
String getClientBrandName();
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
|
|||||||
@@ -5,17 +5,17 @@ Subject: [PATCH] AntiXray Bypass
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||||
index d422017c54d49a5a6aaa5226162cb152c20183a9..702a1b611bb107ea134830446ee748ebf6328bca 100644
|
index 3a7d0900e7802c40377086ba8acec5a3f90a340d..cd21d9a16b8d50d2cc3b13fa3621a6aa3a859955 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||||
@@ -2952,6 +2952,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
@@ -2949,6 +2949,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||||
*/
|
*/
|
||||||
boolean hasResourcePack();
|
public void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra);
|
||||||
|
|
||||||
+ // Slice start
|
+ // Slice start
|
||||||
+ void toggleAntiXrayBypass(boolean bypass);
|
+ void toggleAntiXrayBypass(boolean bypass);
|
||||||
+ // Slice end
|
+ // Slice end
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
* Gets a copy of this players profile
|
* Spawns the particle (the number of times specified by count)
|
||||||
* @return The players profile object
|
* at the target location. The position of each particle will be
|
||||||
|
|||||||
@@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..b5cc9538a70c7ce0b494d4878d51b521
|
|||||||
+}
|
+}
|
||||||
\ No newline at end of file
|
\ No newline at end of file
|
||||||
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
||||||
index 8542f193fe7be07d47b26dd0434965f2c3cd1be9..ba2bc145caf408a81d6f7a69479298628ebf0cf0 100644
|
index 415a137775f072d1aefa841b01b6bf7a5f97b6a3..ffd89e5e2039c0f1662236db112bbf25eabb0a17 100644
|
||||||
--- a/src/main/java/org/bukkit/World.java
|
--- a/src/main/java/org/bukkit/World.java
|
||||||
+++ b/src/main/java/org/bukkit/World.java
|
+++ b/src/main/java/org/bukkit/World.java
|
||||||
@@ -501,6 +501,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
@@ -525,6 +525,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||||||
//@Deprecated // Paper
|
//@Deprecated // Paper
|
||||||
public boolean refreshChunk(int x, int z);
|
public boolean refreshChunk(int x, int z);
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Equipment Packet Caching
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||||
index 19e58e62ae442ef9be02ca7fa2f55e370a54afa4..94aafbc3a08dec7c66cef89de7a5283049a4bf05 100644
|
index e68c71047b2bc1b456c380db25b3ff376852b4a9..181e605e97e3bdda119144ccc0413740cdfd6ee7 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||||
@@ -1192,4 +1192,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
@@ -1270,4 +1270,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||||
*/
|
*/
|
||||||
void setBodyYaw(float bodyYaw);
|
void setBodyYaw(float bodyYaw);
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|||||||
30
patches/api/0021-Non-saveable-entities.patch
Normal file
30
patches/api/0021-Non-saveable-entities.patch
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cryptite <cryptite@gmail.com>
|
||||||
|
Date: Thu, 28 Dec 2023 09:11:49 -0600
|
||||||
|
Subject: [PATCH] Non-saveable-entities
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
|
||||||
|
index 1d0fd7ff8449f815a7d980af0b378181ea8bf8d8..0b057d6be0d55c275867bd1cb98387bc3237d881 100644
|
||||||
|
--- a/src/main/java/org/bukkit/entity/Entity.java
|
||||||
|
+++ b/src/main/java/org/bukkit/entity/Entity.java
|
||||||
|
@@ -1107,4 +1107,19 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
|
||||||
|
*/
|
||||||
|
@NotNull String getScoreboardEntryName();
|
||||||
|
// Paper end - entity scoreboard name
|
||||||
|
+
|
||||||
|
+ // Slice start
|
||||||
|
+ /**
|
||||||
|
+ * Returns true if the entity can be saved. If false, the entity will never be serialized or saved.
|
||||||
|
+ */
|
||||||
|
+ boolean isSaveable();
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Sets whether the entity can be serialized and saved to disk.
|
||||||
|
+ *
|
||||||
|
+ * @param saveable the saveable status
|
||||||
|
+ * @see #isSaveable()
|
||||||
|
+ */
|
||||||
|
+ void setSaveable(boolean saveable);
|
||||||
|
+ // Slice end
|
||||||
|
}
|
||||||
2936
patches/server/0001-Initial.patch
Normal file
2936
patches/server/0001-Initial.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,7 @@ Subject: [PATCH] Build Changes
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 79beac737c17412913983614bd478d33e3c6ed58..b049d50ba82d07f89a608333d4c9e84cfe631c09 100644
|
index 58da26ad2f128ba0b66f86820f60853f4be352f0..f9df4ced9b313333102d5f76dff20841a789e53f 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
|
@@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
|
||||||
@@ -16,7 +16,7 @@ index 79beac737c17412913983614bd478d33e3c6ed58..b049d50ba82d07f89a608333d4c9e84c
|
|||||||
- implementation(project(":paper-mojangapi"))
|
- implementation(project(":paper-mojangapi"))
|
||||||
+ // Slice start
|
+ // Slice start
|
||||||
+ implementation(project(":slice-api"))
|
+ implementation(project(":slice-api"))
|
||||||
+ implementation("io.papermc.paper:paper-mojangapi:1.19.2-R0.1-SNAPSHOT") {
|
+ implementation("io.papermc.paper:paper-mojangapi:1.20.4-R0.1-SNAPSHOT") {
|
||||||
+ exclude("io.papermc.paper", "paper-api")
|
+ exclude("io.papermc.paper", "paper-api")
|
||||||
+ }
|
+ }
|
||||||
+ // Slice end
|
+ // Slice end
|
||||||
@@ -42,10 +42,10 @@ index 79beac737c17412913983614bd478d33e3c6ed58..b049d50ba82d07f89a608333d4c9e84c
|
|||||||
standardInput = System.`in`
|
standardInput = System.`in`
|
||||||
workingDir = rootProject.layout.projectDirectory
|
workingDir = rootProject.layout.projectDirectory
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index 8f31413c939cc2b0454ad3d9a1b618dbae449d00..d91ad3622592ece58877f975cdcbf984e61219d7 100644
|
index 34f19ac897a30c0c4e3ab406013fcca1c8b7db93..04c6357d24a095bcff40e267cd40920e3b3c3c5d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -1697,7 +1697,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1866,7 +1866,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
@DontObfuscate
|
@DontObfuscate
|
||||||
public String getServerModName() {
|
public String getServerModName() {
|
||||||
@@ -55,10 +55,10 @@ index 8f31413c939cc2b0454ad3d9a1b618dbae449d00..d91ad3622592ece58877f975cdcbf984
|
|||||||
|
|
||||||
public SystemReport fillSystemReport(SystemReport details) {
|
public SystemReport fillSystemReport(SystemReport details) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 5f33d18234c055393255c9c3234c6688af7a455d..9c3373ead9544a9aa73dd70569dc07ab2c0257f2 100644
|
index 142d2c48239d4ebe3896218536656d116cd24d7c..a4da0c59736cf2dd8d960cac7b00fbb5038711ab 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -267,7 +267,7 @@ import javax.annotation.Nullable; // Paper
|
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
|
||||||
import javax.annotation.Nonnull; // Paper
|
import javax.annotation.Nonnull; // Paper
|
||||||
|
|
||||||
public final class CraftServer implements Server {
|
public final class CraftServer implements Server {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Set BlockData without light updates
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
||||||
index 50ed7cfe1ecef6d075ba484804827cec83ba2bf2..6fefbd2ba0fb7aab592cb3ed00828cce942a4792 100644
|
index 14a5492428eac823a295ef3746d0aca6fbdab4ec..46051d555432aeedba3a4b38f4f72b8a924c93a3 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
--- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
+++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
||||||
@@ -256,7 +256,7 @@ public class WorldGenRegion implements WorldGenLevel {
|
@@ -256,7 +256,7 @@ public class WorldGenRegion implements WorldGenLevel {
|
||||||
@@ -27,10 +27,10 @@ index 50ed7cfe1ecef6d075ba484804827cec83ba2bf2..6fefbd2ba0fb7aab592cb3ed00828cce
|
|||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index 2354a0e5d15e9be633d9fe3a1a9feefe7b9b7782..763165618a47d9841bb8fc70651a4e80a2bbd67f 100644
|
index 8848eeda7a89d445e370626182f9bb4710e5edd4..fe62e872f0c989f612dcbfc58894bd1787345d25 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -903,12 +903,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -906,12 +906,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -46,16 +46,7 @@ index 2354a0e5d15e9be633d9fe3a1a9feefe7b9b7782..763165618a47d9841bb8fc70651a4e80
|
|||||||
// CraftBukkit start - tree generation
|
// CraftBukkit start - tree generation
|
||||||
if (this.captureTreeGeneration) {
|
if (this.captureTreeGeneration) {
|
||||||
// Paper start
|
// Paper start
|
||||||
@@ -943,7 +943,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1102,7 +1102,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
}
|
|
||||||
// CraftBukkit end
|
|
||||||
|
|
||||||
- BlockState iblockdata1 = chunk.setBlockState(pos, state, (flags & 64) != 0, (flags & 1024) == 0); // CraftBukkit custom NO_PLACE flag
|
|
||||||
+ BlockState iblockdata1 = chunk.setBlockState(pos, state, (flags & 64) != 0, (flags & 1024) == 0, checkLight); // CraftBukkit custom NO_PLACE flag // Slice
|
|
||||||
this.chunkPacketBlockController.onBlockChange(this, pos, state, iblockdata1, flags, maxUpdateDepth); // Paper - Anti-Xray
|
|
||||||
|
|
||||||
if (iblockdata1 == null) {
|
|
||||||
@@ -1099,7 +1099,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
|
||||||
Block.dropResources(iblockdata, this, pos, tileentity, breakingEntity, ItemStack.EMPTY);
|
Block.dropResources(iblockdata, this, pos, tileentity, breakingEntity, ItemStack.EMPTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,10 +77,10 @@ index 134e5ec79bf2dddd4e31930f8a7cb2c02fa29518..fd72d278a2719911a46b6bc9e7da2dc2
|
|||||||
|
|
||||||
boolean removeBlock(BlockPos pos, boolean move);
|
boolean removeBlock(BlockPos pos, boolean move);
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
|
||||||
index d4cbff18adb62073a1dceb189043789620af6877..413eb8d315f5da04c69e082654e74054055705d6 100644
|
index 4d50dd92a7f3187ee1d8edb926e7c273c8156549..4dc96e83f14a1b31d720f9915f7541d4d86e5c30 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/Block.java
|
--- a/src/main/java/net/minecraft/world/level/block/Block.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
|
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
|
||||||
@@ -194,7 +194,7 @@ public class Block extends BlockBehaviour implements ItemLike {
|
@@ -201,7 +201,7 @@ public class Block extends BlockBehaviour implements ItemLike {
|
||||||
world.destroyBlock(pos, (flags & 32) == 0, (Entity) null, maxUpdateDepth);
|
world.destroyBlock(pos, (flags & 32) == 0, (Entity) null, maxUpdateDepth);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -98,98 +89,11 @@ index d4cbff18adb62073a1dceb189043789620af6877..413eb8d315f5da04c69e082654e74054
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java
|
|
||||||
index f7e5e016a7028a9196e689e950805b0d5b31fe38..10f8b1bfaca8cf607d895412417ad5f5e8d06df1 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java
|
|
||||||
@@ -175,7 +175,6 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom
|
|
||||||
public abstract BlockState getBlockState(final int x, final int y, final int z); // Paper
|
|
||||||
@Nullable
|
|
||||||
public abstract BlockState setBlockState(BlockPos pos, BlockState state, boolean moved);
|
|
||||||
-
|
|
||||||
public abstract void setBlockEntity(BlockEntity blockEntity);
|
|
||||||
|
|
||||||
public abstract void addEntity(Entity entity);
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java
|
|
||||||
index 4a3ac7dedf5cb1e76f16ec4f18e82afc717d0ced..7eb5d6bc790717aef2b22453f5c16644fa128b7c 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java
|
|
||||||
@@ -116,7 +116,13 @@ public class ImposterProtoChunk extends ProtoChunk {
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public BlockState setBlockState(BlockPos pos, BlockState state, boolean moved) {
|
|
||||||
- return this.allowWrites ? this.wrapped.setBlockState(pos, state, moved) : null;
|
|
||||||
+ return setBlockState(pos, state, moved, true);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Nullable
|
|
||||||
+ @Override
|
|
||||||
+ public BlockState setBlockState(BlockPos pos, BlockState state, boolean moved, boolean checkLight) {
|
|
||||||
+ return this.allowWrites ? this.wrapped.setBlockState(pos, state, moved, checkLight) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
|
||||||
index fa170cc1ce7011d201295b89718292d696c7fc24..55ac6607b3c0f31a478122e84ed97d85da80dcac 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
|
||||||
@@ -407,11 +407,15 @@ public class LevelChunk extends ChunkAccess {
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public BlockState setBlockState(BlockPos pos, BlockState state, boolean moved) {
|
|
||||||
- return this.setBlockState(pos, state, moved, true);
|
|
||||||
+ return this.setBlockState(pos, state, moved, true, true);
|
|
||||||
+ }
|
|
||||||
+ @Nullable
|
|
||||||
+ public BlockState setBlockState(BlockPos pos, BlockState state, boolean moved, boolean doPlace) {
|
|
||||||
+ return this.setBlockState(pos, state, moved, doPlace, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
- public BlockState setBlockState(BlockPos blockposition, BlockState iblockdata, boolean flag, boolean doPlace) {
|
|
||||||
+ public BlockState setBlockState(BlockPos blockposition, BlockState iblockdata, boolean flag, boolean doPlace, boolean checkLight) {
|
|
||||||
// CraftBukkit end
|
|
||||||
int i = blockposition.getY();
|
|
||||||
LevelChunkSection chunksection = this.getSection(this.getSectionIndex(i));
|
|
||||||
@@ -440,7 +444,7 @@ public class LevelChunk extends ChunkAccess {
|
|
||||||
this.level.getChunkSource().getLightEngine().updateSectionStatus(blockposition, flag2);
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (LightEngine.hasDifferentLightProperties(this, blockposition, iblockdata1, iblockdata)) {
|
|
||||||
+ if (checkLight && LightEngine.hasDifferentLightProperties(this, blockposition, iblockdata1, iblockdata)) { // Slice
|
|
||||||
ProfilerFiller gameprofilerfiller = this.level.getProfiler();
|
|
||||||
|
|
||||||
gameprofilerfiller.push("updateSkyLightSources");
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
|
|
||||||
index 7aa585875dad5296526bb5d67fc5ea0f8875e452..82432ef8b9d50ba96363b8db48150a4a52142a1d 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
|
|
||||||
@@ -113,6 +113,11 @@ public class ProtoChunk extends ChunkAccess {
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public BlockState setBlockState(BlockPos pos, BlockState state, boolean moved) {
|
|
||||||
+ return setBlockState(pos, state, moved, true);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Nullable
|
|
||||||
+ public BlockState setBlockState(BlockPos pos, BlockState state, boolean moved, boolean checkLight) { // Slice
|
|
||||||
int i = pos.getX();
|
|
||||||
int j = pos.getY();
|
|
||||||
int k = pos.getZ();
|
|
||||||
@@ -133,7 +138,7 @@ public class ProtoChunk extends ChunkAccess {
|
|
||||||
this.lightEngine.updateSectionStatus(pos, bl2);
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (LightEngine.hasDifferentLightProperties(this, pos, blockState, state)) {
|
|
||||||
+ if (checkLight && LightEngine.hasDifferentLightProperties(this, pos, blockState, state)) { // Slice
|
|
||||||
// Paper - starlight - remove skyLightSources
|
|
||||||
this.lightEngine.checkBlock(pos);
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
||||||
index 1a17875426468b287c8ea3f559ea516d0218f7a0..84a1150438dc8cdd8a6d3ad92e6bf2c4ad5f7cf0 100644
|
index 45fd28f26aa2e53785919abbfe42bb237131e453..150b649c457ab4a17e9d72a21f7d06b8f74435a2 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
||||||
@@ -287,7 +287,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
|
@@ -142,7 +142,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
|
||||||
BlockPos pos = new BlockPos(x, y, z);
|
BlockPos pos = new BlockPos(x, y, z);
|
||||||
net.minecraft.world.level.block.state.BlockState old = this.getHandle().getBlockState(pos);
|
net.minecraft.world.level.block.state.BlockState old = this.getHandle().getBlockState(pos);
|
||||||
|
|
||||||
@@ -199,10 +103,10 @@ index 1a17875426468b287c8ea3f559ea516d0218f7a0..84a1150438dc8cdd8a6d3ad92e6bf2c4
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
index bec8e6b62dba2bd0e4e85a7d1fb51287384f1290..db565a24591748f66e01b9972796415ba2bf0f70 100644
|
index e5506a7d074a9f89d41f4d5d7549a458779bef20..5b0a5c6ba424eeeb071f362f4ffc856b50dd7b2f 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
@@ -182,15 +182,20 @@ public class CraftBlock implements Block {
|
@@ -183,15 +183,20 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setBlockData(BlockData data, boolean applyPhysics) {
|
public void setBlockData(BlockData data, boolean applyPhysics) {
|
||||||
@@ -227,7 +131,7 @@ index bec8e6b62dba2bd0e4e85a7d1fb51287384f1290..db565a24591748f66e01b9972796415b
|
|||||||
// SPIGOT-611: need to do this to prevent glitchiness. Easier to handle this here (like /setblock) than to fix weirdness in tile entity cleanup
|
// SPIGOT-611: need to do this to prevent glitchiness. Easier to handle this here (like /setblock) than to fix weirdness in tile entity cleanup
|
||||||
if (old.hasBlockEntity() && blockData.getBlock() != old.getBlock()) { // SPIGOT-3725 remove old tile entity if block changes
|
if (old.hasBlockEntity() && blockData.getBlock() != old.getBlock()) { // SPIGOT-3725 remove old tile entity if block changes
|
||||||
// SPIGOT-4612: faster - just clear tile
|
// SPIGOT-4612: faster - just clear tile
|
||||||
@@ -204,7 +209,7 @@ public class CraftBlock implements Block {
|
@@ -205,7 +210,7 @@ public class CraftBlock implements Block {
|
||||||
if (applyPhysics) {
|
if (applyPhysics) {
|
||||||
return world.setBlock(position, blockData, 3);
|
return world.setBlock(position, blockData, 3);
|
||||||
} else {
|
} else {
|
||||||
@@ -249,8 +153,23 @@ index 390e1b7fd2721b99cb3ce268c6bc1bf0a38e08a3..f3c42e65c6c731e1f0f3d36f16c35b7d
|
|||||||
if (access instanceof net.minecraft.world.level.Level) {
|
if (access instanceof net.minecraft.world.level.Level) {
|
||||||
this.world.getHandle().sendBlockUpdated(
|
this.world.getHandle().sendBlockUpdated(
|
||||||
this.position,
|
this.position,
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java
|
||||||
|
index a650411e3fa7e2a045ac55502c77028be348acf1..715fd6cfb8f5c4c3dbb39e0de9b43faad2add9ba 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java
|
||||||
|
@@ -801,8 +801,8 @@ public abstract class DelegatedGeneratorAccess implements WorldGenLevel {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
- public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) {
|
||||||
|
- return this.handle.setBlock(pos, state, flags, maxUpdateDepth);
|
||||||
|
+ public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth, boolean checkLight) {
|
||||||
|
+ return this.handle.setBlock(pos, state, flags, maxUpdateDepth, checkLight);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
||||||
index 23ee60e8843a6a05e7ae6512248a57ec2a08321b..c5e1afb7d5fa630ed85a739d5aada79297257d72 100644
|
index a5e34c25e00e7f770bcb6e15ed0bbfe8f369a68a..572e52c494ead11d0fa84cf324f2c86215cc3adb 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
--- a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
||||||
@@ -245,7 +245,7 @@ public class DummyGeneratorAccess implements WorldGenLevel {
|
@@ -245,7 +245,7 @@ public class DummyGeneratorAccess implements WorldGenLevel {
|
||||||
@@ -262,3 +181,50 @@ index 23ee60e8843a6a05e7ae6512248a57ec2a08321b..c5e1afb7d5fa630ed85a739d5aada792
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/TransformerGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/TransformerGeneratorAccess.java
|
||||||
|
index b4b297945fb601701aac845d09e88fb74b09c3fa..1a7d90c36c203d0ff6fc67f6ce59a746010952d4 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/util/TransformerGeneratorAccess.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/TransformerGeneratorAccess.java
|
||||||
|
@@ -55,14 +55,14 @@ public class TransformerGeneratorAccess extends DelegatedGeneratorAccess {
|
||||||
|
super.addFreshEntityWithPassengers(arg0, arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
- public boolean setCraftBlock(BlockPos position, CraftBlockState craftBlockState, int i, int j) {
|
||||||
|
+ public boolean setCraftBlock(BlockPos position, CraftBlockState craftBlockState, int i, int j, boolean checkLight) {
|
||||||
|
if (this.structureTransformer != null) {
|
||||||
|
craftBlockState = this.structureTransformer.transformCraftState(craftBlockState);
|
||||||
|
}
|
||||||
|
// This code is based on the method 'net.minecraft.world.level.levelgen.structure.StructurePiece#placeBlock'
|
||||||
|
// It ensures that any kind of block is updated correctly upon placing it
|
||||||
|
BlockState iblockdata = craftBlockState.getHandle();
|
||||||
|
- boolean result = super.setBlock(position, iblockdata, i, j);
|
||||||
|
+ boolean result = super.setBlock(position, iblockdata, i, j, checkLight);
|
||||||
|
FluidState fluid = this.getFluidState(position);
|
||||||
|
if (!fluid.isEmpty()) {
|
||||||
|
this.scheduleTick(position, fluid.getType(), 0);
|
||||||
|
@@ -78,19 +78,19 @@ public class TransformerGeneratorAccess extends DelegatedGeneratorAccess {
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean setCraftBlock(BlockPos position, CraftBlockState craftBlockState, int i) {
|
||||||
|
- return this.setCraftBlock(position, craftBlockState, i, 512);
|
||||||
|
+ return this.setCraftBlock(position, craftBlockState, i, 512, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
- public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) {
|
||||||
|
+ public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth, boolean checkLight) {
|
||||||
|
if (this.structureTransformer == null || !this.structureTransformer.canTransformBlocks()) {
|
||||||
|
- return super.setBlock(pos, state, flags, maxUpdateDepth);
|
||||||
|
+ return super.setBlock(pos, state, flags, maxUpdateDepth, checkLight);
|
||||||
|
}
|
||||||
|
- return this.setCraftBlock(pos, (CraftBlockState) CraftBlockStates.getBlockState(pos, state, null), flags, maxUpdateDepth);
|
||||||
|
+ return this.setCraftBlock(pos, (CraftBlockState) CraftBlockStates.getBlockState(pos, state, null), flags, maxUpdateDepth, checkLight);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
- public boolean setBlock(BlockPos pos, BlockState state, int flags) {
|
||||||
|
- return this.setBlock(pos, state, flags, 512);
|
||||||
|
+ public boolean setBlock(BlockPos pos, BlockState state, int flags, boolean checkLight) {
|
||||||
|
+ return this.setBlock(pos, state, flags, 512, checkLight);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,30 +5,30 @@ Subject: [PATCH] Add BlockDestroyedByNeighborEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
index 106a312aba249d1e83e4b535fc6e741e04ccfd14..d8aa37f24a58b1772ba9ec0ddd2ade15ac796f44 100644
|
index 58f972832c39a27a8ccd606f9144e1c54adbf6f3..4f00c2e8d6ff3a03a334542f699c5e35bfd03ce8 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
@@ -419,6 +419,7 @@ public class ServerPlayerGameMode {
|
@@ -419,6 +419,7 @@ public class ServerPlayerGameMode {
|
||||||
org.bukkit.block.BlockState state = bblock.getState();
|
|
||||||
this.level.captureDrops = new ArrayList<>();
|
this.level.captureDrops = new ArrayList<>();
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
BlockState iblockdata1 = block.playerWillDestroy(this.level, pos, iblockdata, this.player);
|
||||||
+ level.pendingPlayerBlockEvents.put(pos, new Level.PendingBlockEvent(pos, this.player)); // Paper
|
+ level.pendingPlayerBlockEvents.put(pos, new Level.PendingBlockEvent(pos, this.player)); // Paper
|
||||||
block.playerWillDestroy(this.level, pos, iblockdata, this.player);
|
|
||||||
boolean flag = this.level.removeBlock(pos, false);
|
boolean flag = this.level.removeBlock(pos, false);
|
||||||
|
|
||||||
@@ -447,6 +448,7 @@ public class ServerPlayerGameMode {
|
if (flag) {
|
||||||
|
@@ -446,6 +447,7 @@ public class ServerPlayerGameMode {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
java.util.List<net.minecraft.world.entity.item.ItemEntity> itemsToDrop = this.level.captureDrops; // Paper - store current list
|
java.util.List<net.minecraft.world.entity.item.ItemEntity> itemsToDrop = this.level.captureDrops; // Paper - store current list
|
||||||
this.level.captureDrops = null; // Paper - Remove this earlier so that we can actually drop stuff
|
this.level.captureDrops = null; // Paper - Remove this earlier so that we can actually drop stuff
|
||||||
+ this.level.pendingPlayerBlockEvents.remove(pos); // Paper
|
+ level.pendingPlayerBlockEvents.remove(pos); // Paper
|
||||||
if (event.isDropItems()) {
|
if (event.isDropItems()) {
|
||||||
org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDropItemEvent(bblock, state, this.player, itemsToDrop); // Paper - use stored ref
|
org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDropItemEvent(bblock, state, this.player, itemsToDrop); // Paper - use stored ref
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||||
index 4697df75fdee2023c41260bed211e3e3d90d2b9b..e30aaa502f5e98b5658a0dd78853e865cbf91f96 100644
|
index de277d61b718fe07a87d75a2547bb1c7f8553aa1..625a852db818d95365ad7ae56e6b1de541bbdada 100644
|
||||||
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||||
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||||
@@ -357,6 +357,7 @@ public final class ItemStack {
|
@@ -378,6 +378,7 @@ public final class ItemStack {
|
||||||
CompoundTag oldData = this.getTagClone();
|
CompoundTag oldData = this.getTagClone();
|
||||||
int oldCount = this.getCount();
|
int oldCount = this.getCount();
|
||||||
ServerLevel world = (ServerLevel) context.getLevel();
|
ServerLevel world = (ServerLevel) context.getLevel();
|
||||||
@@ -37,10 +37,10 @@ index 4697df75fdee2023c41260bed211e3e3d90d2b9b..e30aaa502f5e98b5658a0dd78853e865
|
|||||||
if (!(item instanceof BucketItem/* || item instanceof SolidBucketItem*/)) { // if not bucket // Paper - capture block states for snow buckets
|
if (!(item instanceof BucketItem/* || item instanceof SolidBucketItem*/)) { // if not bucket // Paper - capture block states for snow buckets
|
||||||
world.captureBlockStates = true;
|
world.captureBlockStates = true;
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index 763165618a47d9841bb8fc70651a4e80a2bbd67f..7c332c004f469fb47598121c3b828a484634b526 100644
|
index fe62e872f0c989f612dcbfc58894bd1787345d25..465bbaeff36f4d03db40fcaf9b6ab98550316afb 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -184,6 +184,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -187,6 +187,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
public final Map<Explosion.CacheKey, Float> explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
|
public final Map<Explosion.CacheKey, Float> explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
|
||||||
public java.util.ArrayDeque<net.minecraft.world.level.block.RedstoneTorchBlock.Toggle> redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here
|
public java.util.ArrayDeque<net.minecraft.world.level.block.RedstoneTorchBlock.Toggle> redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ index 763165618a47d9841bb8fc70651a4e80a2bbd67f..7c332c004f469fb47598121c3b828a48
|
|||||||
// Paper start - fix and optimise world upgrading
|
// Paper start - fix and optimise world upgrading
|
||||||
// copied from below
|
// copied from below
|
||||||
public static ResourceKey<DimensionType> getDimensionKey(DimensionType manager) {
|
public static ResourceKey<DimensionType> getDimensionKey(DimensionType manager) {
|
||||||
@@ -1053,6 +1074,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1056,6 +1077,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
if (!this.preventPoiUpdated) {
|
if (!this.preventPoiUpdated) {
|
||||||
this.onBlockStateChange(blockposition, iblockdata1, iblockdata2);
|
this.onBlockStateChange(blockposition, iblockdata1, iblockdata2);
|
||||||
}
|
}
|
||||||
@@ -76,7 +76,7 @@ index 763165618a47d9841bb8fc70651a4e80a2bbd67f..7c332c004f469fb47598121c3b828a48
|
|||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1074,6 +1096,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1077,6 +1099,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
if (iblockdata.isAir()) {
|
if (iblockdata.isAir()) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -95,10 +95,10 @@ index 763165618a47d9841bb8fc70651a4e80a2bbd67f..7c332c004f469fb47598121c3b828a48
|
|||||||
// Paper start - while the above setAir method is named same and looks very similar
|
// Paper start - while the above setAir method is named same and looks very similar
|
||||||
// they are NOT used with same intent and the above should not fire this event. The above method is more of a BlockSetToAirEvent,
|
// they are NOT used with same intent and the above should not fire this event. The above method is more of a BlockSetToAirEvent,
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java
|
||||||
index 030b38d5d5d2578d6ef482a239ef58787efa3b08..329053cf5c342747985f9079e87edc6f883bfa1e 100644
|
index 81d2140351775ad55546af52eb635ccdc8509d89..0ed9f6ae968c06e63e1431ed1ce153dd1e90e908 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java
|
||||||
@@ -105,6 +105,15 @@ public class DoublePlantBlock extends BushBlock {
|
@@ -112,6 +112,15 @@ public class DoublePlantBlock extends BushBlock {
|
||||||
BlockPos blockposition1 = pos.below();
|
BlockPos blockposition1 = pos.below();
|
||||||
BlockState iblockdata1 = world.getBlockState(blockposition1);
|
BlockState iblockdata1 = world.getBlockState(blockposition1);
|
||||||
|
|
||||||
@@ -115,10 +115,10 @@ index 030b38d5d5d2578d6ef482a239ef58787efa3b08..329053cf5c342747985f9079e87edc6f
|
|||||||
BlockState iblockdata2 = iblockdata1.getFluidState().is((Fluid) Fluids.WATER) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState();
|
BlockState iblockdata2 = iblockdata1.getFluidState().is((Fluid) Fluids.WATER) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState();
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
index e6a4a5898ffdcb2aa2bc01371a6d7dbc06d610ce..204f0cd86a318efb3545a24c0e25a2f9cb7b9f58 100644
|
index 3ab8b99837b1d1faea722c598b0228b2780be8b1..45bd7b9e684f71d9186a33277e5772dc7e04e9da 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
@@ -1175,11 +1175,22 @@ public abstract class BlockBehaviour implements FeatureElement {
|
@@ -1242,11 +1242,22 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
|
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
|
||||||
Direction[] aenumdirection = BlockBehaviour.UPDATE_SHAPE_ORDER;
|
Direction[] aenumdirection = BlockBehaviour.UPDATE_SHAPE_ORDER;
|
||||||
int k = aenumdirection.length;
|
int k = aenumdirection.length;
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add provided Material to getDrops
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
index cb2826852ea38850eb0c553ab3b626253fd8e7a2..a65f1362bcdb064f3213830e9c9c7f9966ce4623 100644
|
index 5b0a5c6ba424eeeb071f362f4ffc856b50dd7b2f..6b764644493accf8b17773120b39cc0c0b7f39d0 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
@@ -590,7 +590,18 @@ public class CraftBlock implements Block {
|
@@ -591,7 +591,18 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<ItemStack> getDrops(ItemStack item, Entity entity) {
|
public Collection<ItemStack> getDrops(ItemStack item, Entity entity) {
|
||||||
@@ -28,7 +28,7 @@ index cb2826852ea38850eb0c553ab3b626253fd8e7a2..a65f1362bcdb064f3213830e9c9c7f99
|
|||||||
net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(item);
|
net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(item);
|
||||||
|
|
||||||
// Modelled off EntityHuman#hasBlock
|
// Modelled off EntityHuman#hasBlock
|
||||||
@@ -601,6 +612,7 @@ public class CraftBlock implements Block {
|
@@ -602,6 +613,7 @@ public class CraftBlock implements Block {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Player to SpongeAbsorbEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
||||||
index d810f6bf9a8a354e5b8994e51ec3672428277dde..b5eb4718a96ab9abf700a156a23ec3e19757c9aa 100644
|
index c4667bea0708d12e228ec2a4c84fcee7e48ca08c..ad2a9c6d91ebeda5bd9cffdf5471e19353348f65 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
||||||
@@ -107,7 +107,8 @@ public class SpongeBlock extends Block {
|
@@ -114,7 +114,8 @@ public class SpongeBlock extends Block {
|
||||||
if (!blocks.isEmpty()) {
|
if (!blocks.isEmpty()) {
|
||||||
final org.bukkit.block.Block bblock = world.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ());
|
final org.bukkit.block.Block bblock = world.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ());
|
||||||
|
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add World Instance flag
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index 584a768f2ce1c98a1de7749060c47f21721f9055..aad0d7662d530eaa9256de635401bbcde3263286 100644
|
index 6041f1f5151f26d389f946d70f16e1de76db496b..a530dd1b15093803ffb87848f4c28dcf5da6476c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -222,6 +222,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
@@ -224,6 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
public final UUID uuid;
|
public final UUID uuid;
|
||||||
public boolean hasPhysicsEvent = true; // Paper
|
public boolean hasPhysicsEvent = true; // Paper
|
||||||
public boolean hasEntityMoveEvent = false; // Paper
|
public boolean hasEntityMoveEvent = false; // Paper
|
||||||
@@ -17,10 +17,10 @@ index 584a768f2ce1c98a1de7749060c47f21721f9055..aad0d7662d530eaa9256de635401bbcd
|
|||||||
public static Throwable getAddToWorldStackTrace(Entity entity) {
|
public static Throwable getAddToWorldStackTrace(Entity entity) {
|
||||||
final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date());
|
final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date());
|
||||||
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 746f88db6b78b3c8ec372bfaacb26ec98f3b1163..b2b729c520f6b5dadc4d7bb72135c6da40d94b38 100644
|
index 38d842bc0fb7d9c39a3673983a643248e9563fe2..7727a4322155c9b208f097bec751368c01671a07 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
|
||||||
@@ -1288,6 +1288,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -1301,6 +1301,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
this.world.noSave = !value;
|
this.world.noSave = !value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerData Events
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
index 1d32eb837517f2b949613498b1a68c8b1edf0b9a..a31ea11234da240e56bbfd14725dd76295c8f338 100644
|
index 4f00c2e8d6ff3a03a334542f699c5e35bfd03ce8..f31fc572413c2e1350adca3691316ac6b0d66fef 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
@@ -602,6 +602,8 @@ public class ServerPlayerGameMode {
|
@@ -603,6 +603,8 @@ public class ServerPlayerGameMode {
|
||||||
enuminteractionresult1 = stack.useOn(itemactioncontext);
|
enuminteractionresult1 = stack.useOn(itemactioncontext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,18 +45,18 @@ index 9bb8d4d7be6a937980aa653db82be084d066a563..9838435fbc31cfbba487d1e62ec5d2e7
|
|||||||
|
|
||||||
private static <T> ResourceLocation getKey(Stat<T> stat) {
|
private static <T> ResourceLocation getKey(Stat<T> stat) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
||||||
index 36af81f0957d17e170d229059c66f4eb4539dfeb..e8d324a32838b69255ce48b1c03e47cd9e201da6 100644
|
index b3a90d6ef0e17c236e0b3c46e2d0012671afdaa7..bb22635a8dc7d4e2030f50da62983119520a0b91 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
--- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
+++ b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
||||||
@@ -33,6 +33,7 @@ public class PlayerDataStorage {
|
@@ -36,6 +36,7 @@ public class PlayerDataStorage {
|
||||||
|
|
||||||
public void save(Player player) {
|
public void save(Player player) {
|
||||||
if (org.spigotmc.SpigotConfig.disablePlayerDataSaving) return; // Spigot
|
if (org.spigotmc.SpigotConfig.disablePlayerDataSaving) return; // Spigot
|
||||||
+ if (!new com.destroystokyo.paper.event.player.PlayerSaveDataEvent((org.bukkit.entity.Player) player.getBukkitEntity()).callEvent()) return; // Slice
|
+ if (!new com.destroystokyo.paper.event.player.PlayerSaveDataEvent((org.bukkit.entity.Player) player.getBukkitEntity()).callEvent()) return; // Slice
|
||||||
try {
|
try {
|
||||||
CompoundTag nbttagcompound = player.saveWithoutId(new CompoundTag());
|
CompoundTag nbttagcompound = player.saveWithoutId(new CompoundTag());
|
||||||
File file = File.createTempFile(player.getStringUUID() + "-", ".dat", this.playerDir);
|
Path path = this.playerDir.toPath();
|
||||||
@@ -52,32 +53,40 @@ public class PlayerDataStorage {
|
@@ -56,33 +57,41 @@ public class PlayerDataStorage {
|
||||||
public CompoundTag load(Player player) {
|
public CompoundTag load(Player player) {
|
||||||
CompoundTag nbttagcompound = null;
|
CompoundTag nbttagcompound = null;
|
||||||
|
|
||||||
@@ -95,14 +95,14 @@ index 36af81f0957d17e170d229059c66f4eb4539dfeb..e8d324a32838b69255ce48b1c03e47cd
|
|||||||
+ // Spigot End
|
+ // Spigot End
|
||||||
|
|
||||||
- if (file.exists() && file.isFile()) {
|
- if (file.exists() && file.isFile()) {
|
||||||
- nbttagcompound = NbtIo.readCompressed(file);
|
- nbttagcompound = NbtIo.readCompressed(file.toPath(), NbtAccounter.unlimitedHeap());
|
||||||
- }
|
- }
|
||||||
- // Spigot Start
|
- // Spigot Start
|
||||||
- if ( usingWrongFile )
|
- if ( usingWrongFile )
|
||||||
- {
|
- {
|
||||||
- file.renameTo( new File( file.getPath() + ".offline-read" ) );
|
- file.renameTo( new File( file.getPath() + ".offline-read" ) );
|
||||||
+ if (file.exists() && file.isFile()) {
|
+ if (file.exists() && file.isFile()) {
|
||||||
+ nbttagcompound = NbtIo.readCompressed(file);
|
+ nbttagcompound = NbtIo.readCompressed(file.toPath(), NbtAccounter.unlimitedHeap());
|
||||||
+ }
|
+ }
|
||||||
+ // Spigot Start
|
+ // Spigot Start
|
||||||
+ if (usingWrongFile) {
|
+ if (usingWrongFile) {
|
||||||
@@ -115,7 +115,9 @@ index 36af81f0957d17e170d229059c66f4eb4539dfeb..e8d324a32838b69255ce48b1c03e47cd
|
|||||||
- // Spigot End
|
- // Spigot End
|
||||||
- } catch (Exception exception) {
|
- } catch (Exception exception) {
|
||||||
- PlayerDataStorage.LOGGER.warn("Failed to load player data for {}", player.getName().getString());
|
- PlayerDataStorage.LOGGER.warn("Failed to load player data for {}", player.getName().getString());
|
||||||
+ // Slice end
|
- }
|
||||||
}
|
+ } // Slice end
|
||||||
|
+
|
||||||
|
|
||||||
if (nbttagcompound != null) {
|
if (nbttagcompound != null) {
|
||||||
|
// CraftBukkit start
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerGetRespawnLocationEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
index 33abcf12b4426572b74ca4c813e4392c823494bc..3caf0774537a02d8ceeb9a5cf113bee290f1aef6 100644
|
index e98a455b6bca9d094d0da323bddd7b3f2c07bb23..6977fb1024db3e709e5c83215bf886e7c04d5326 100644
|
||||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -869,49 +869,57 @@ public abstract class PlayerList {
|
@@ -867,49 +867,57 @@ public abstract class PlayerList {
|
||||||
|
|
||||||
// CraftBukkit start - fire PlayerRespawnEvent
|
// CraftBukkit start - fire PlayerRespawnEvent
|
||||||
if (location == null) {
|
if (location == null) {
|
||||||
@@ -106,7 +106,7 @@ index 9464054912e19fc78dd965b71fce20a18564b351..1624a0f8ea211a4c43fd01612674ca50
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
|
||||||
index 9c3520524cfb903da6a5401760394ec1b49a1825..a6809c3104d4a8fce89eb5056b445ae0517bf9a0 100644
|
index fd86c1d43cccd036f60cb270b56fd33f95707720..9d81ae52f55db1c330ebe2daa2d4008ee9b845c3 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
|
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
|
||||||
@@ -341,6 +341,37 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
|
@@ -341,6 +341,37 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
|
||||||
@@ -5,11 +5,11 @@ Subject: [PATCH] Smooth Teleports
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
index f71a4a8307fb092d33545e12d253e0b80c884168..7f09801b4afd426d75c16dee88c31e1a16108fc1 100644
|
index 0eb3384df396508c3d26d1e155cd0e6d64251346..1c3e41c9c849c6ba9fa4a8cd6950f99c28ceff92 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -274,6 +274,7 @@ public class ServerPlayer extends Player {
|
@@ -281,6 +281,7 @@ public class ServerPlayer extends Player {
|
||||||
public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper
|
public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper
|
||||||
public @Nullable String clientBrandName = null; // Paper - Brand name
|
public @Nullable String clientBrandName = null; // Paper - Brand name
|
||||||
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event
|
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event
|
||||||
+ public boolean smoothWorldTeleport; // Slice
|
+ public boolean smoothWorldTeleport; // Slice
|
||||||
@@ -17,10 +17,10 @@ index f71a4a8307fb092d33545e12d253e0b80c884168..7f09801b4afd426d75c16dee88c31e1a
|
|||||||
// Paper start - replace player chunk loader
|
// Paper start - replace player chunk loader
|
||||||
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
|
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
|
||||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
index 3caf0774537a02d8ceeb9a5cf113bee290f1aef6..98290d00c4f472afa5d6db4d6bfd99c30086ceb0 100644
|
index 6977fb1024db3e709e5c83215bf886e7c04d5326..2d6a0e30e47e4df22fd9aba1aca0f1f0d03740d2 100644
|
||||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -955,10 +955,10 @@ public abstract class PlayerList {
|
@@ -953,10 +953,10 @@ public abstract class PlayerList {
|
||||||
ServerLevel worldserver2 = entityplayer1.serverLevel();
|
ServerLevel worldserver2 = entityplayer1.serverLevel();
|
||||||
LevelData worlddata = worldserver2.getLevelData();
|
LevelData worlddata = worldserver2.getLevelData();
|
||||||
|
|
||||||
@@ -34,10 +34,10 @@ index 3caf0774537a02d8ceeb9a5cf113bee290f1aef6..98290d00c4f472afa5d6db4d6bfd99c3
|
|||||||
entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
|
entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
|
||||||
entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel));
|
entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel));
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index 00bae5df87bcc1c75d4e2f430241579d3be82c11..eaaf8b52b72ad688f8df772b574a84c9ee8f8be8 100644
|
index 2ec8b8f65661001716d1cb34dcc21cda7286e5d7..16734cf6cb5203a9d40be56672a698b761f8ce8a 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -1246,6 +1246,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -1267,6 +1267,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
// Paper end
|
// Paper end
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Ignore durability changes for equipment updates
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index a76eb3d051db0229ed088b71c92ff3f131449007..d5fe77692292055f71766546d2f283440cccd7d6 100644
|
index bc908b75cb99536df658281ae7f8b4eeedbbedc9..edfd68dd73deb703efc6e7164a2af0cb8744a0bd 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -3161,7 +3161,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -3166,7 +3166,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean equipmentHasChanged(ItemStack stack, ItemStack stack2) {
|
public boolean equipmentHasChanged(ItemStack stack, ItemStack stack2) {
|
||||||
@@ -18,15 +18,15 @@ index b9b7d2e668d9f7f36ac3cf1e1716460c4ad5ed3a..9fdd765b65777a1a82b54326bc7ad152
|
|||||||
builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, CavePlacements.CLASSIC_VINES);
|
builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, CavePlacements.CLASSIC_VINES);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java b/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java
|
diff --git a/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java b/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java
|
||||||
index 3d899e4dbb96f64279485bbd5b708df88ddbfe8f..89f33b92dc8cfa22d1e1edbda1a31179743979e8 100644
|
index c1f4a722b57bdc1ee516951c9341b146eb0fb34e..9d81f1e3e64edfcd5e8a2885dda3187386941cb8 100644
|
||||||
--- a/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java
|
--- a/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java
|
||||||
+++ b/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java
|
+++ b/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java
|
||||||
@@ -110,7 +110,7 @@ public class CaveFeatures {
|
@@ -110,7 +110,7 @@ public class CaveFeatures {
|
||||||
RandomizedIntStateProvider randomizedIntStateProvider = new RandomizedIntStateProvider(new WeightedStateProvider(SimpleWeightedRandomList.<BlockState>builder().add(Blocks.CAVE_VINES.defaultBlockState(), 4).add(Blocks.CAVE_VINES.defaultBlockState().setValue(CaveVines.BERRIES, Boolean.valueOf(true)), 1)), CaveVinesBlock.AGE, UniformInt.of(23, 25));
|
RandomizedIntStateProvider randomizedIntStateProvider = new RandomizedIntStateProvider(new WeightedStateProvider(SimpleWeightedRandomList.<BlockState>builder().add(Blocks.CAVE_VINES.defaultBlockState(), 4).add(Blocks.CAVE_VINES.defaultBlockState().setValue(CaveVines.BERRIES, Boolean.valueOf(true)), 1)), CaveVinesBlock.AGE, UniformInt.of(23, 25));
|
||||||
FeatureUtils.register(featureRegisterable, CAVE_VINE, Feature.BLOCK_COLUMN, new BlockColumnConfiguration(List.of(BlockColumnConfiguration.layer(new WeightedListInt(SimpleWeightedRandomList.<IntProvider>builder().add(UniformInt.of(0, 19), 2).add(UniformInt.of(0, 2), 3).add(UniformInt.of(0, 6), 10).build()), weightedStateProvider), BlockColumnConfiguration.layer(ConstantInt.of(1), randomizedIntStateProvider)), Direction.DOWN, BlockPredicate.ONLY_IN_AIR_PREDICATE, true));
|
FeatureUtils.register(featureRegisterable, CAVE_VINE, Feature.BLOCK_COLUMN, new BlockColumnConfiguration(List.of(BlockColumnConfiguration.layer(new WeightedListInt(SimpleWeightedRandomList.<IntProvider>builder().add(UniformInt.of(0, 19), 2).add(UniformInt.of(0, 2), 3).add(UniformInt.of(0, 6), 10).build()), weightedStateProvider), BlockColumnConfiguration.layer(ConstantInt.of(1), randomizedIntStateProvider)), Direction.DOWN, BlockPredicate.ONLY_IN_AIR_PREDICATE, true));
|
||||||
FeatureUtils.register(featureRegisterable, CAVE_VINE_IN_MOSS, Feature.BLOCK_COLUMN, new BlockColumnConfiguration(List.of(BlockColumnConfiguration.layer(new WeightedListInt(SimpleWeightedRandomList.<IntProvider>builder().add(UniformInt.of(0, 3), 5).add(UniformInt.of(1, 7), 1).build()), weightedStateProvider), BlockColumnConfiguration.layer(ConstantInt.of(1), randomizedIntStateProvider)), Direction.DOWN, BlockPredicate.ONLY_IN_AIR_PREDICATE, true));
|
FeatureUtils.register(featureRegisterable, CAVE_VINE_IN_MOSS, Feature.BLOCK_COLUMN, new BlockColumnConfiguration(List.of(BlockColumnConfiguration.layer(new WeightedListInt(SimpleWeightedRandomList.<IntProvider>builder().add(UniformInt.of(0, 3), 5).add(UniformInt.of(1, 7), 1).build()), weightedStateProvider), BlockColumnConfiguration.layer(ConstantInt.of(1), randomizedIntStateProvider)), Direction.DOWN, BlockPredicate.ONLY_IN_AIR_PREDICATE, true));
|
||||||
- FeatureUtils.register(featureRegisterable, MOSS_VEGETATION, Feature.SIMPLE_BLOCK, new SimpleBlockConfiguration(new WeightedStateProvider(SimpleWeightedRandomList.<BlockState>builder().add(Blocks.FLOWERING_AZALEA.defaultBlockState(), 4).add(Blocks.AZALEA.defaultBlockState(), 7).add(Blocks.MOSS_CARPET.defaultBlockState(), 25).add(Blocks.GRASS.defaultBlockState(), 50).add(Blocks.TALL_GRASS.defaultBlockState(), 10))));
|
- FeatureUtils.register(featureRegisterable, MOSS_VEGETATION, Feature.SIMPLE_BLOCK, new SimpleBlockConfiguration(new WeightedStateProvider(SimpleWeightedRandomList.<BlockState>builder().add(Blocks.FLOWERING_AZALEA.defaultBlockState(), 4).add(Blocks.AZALEA.defaultBlockState(), 7).add(Blocks.MOSS_CARPET.defaultBlockState(), 25).add(Blocks.SHORT_GRASS.defaultBlockState(), 50).add(Blocks.TALL_GRASS.defaultBlockState(), 10))));
|
||||||
+ FeatureUtils.register(featureRegisterable, MOSS_VEGETATION, Feature.SIMPLE_BLOCK, new SimpleBlockConfiguration(new WeightedStateProvider(SimpleWeightedRandomList.<BlockState>builder().add(Blocks.MOSS_CARPET.defaultBlockState(), 25).add(Blocks.GRASS.defaultBlockState(), 50).add(Blocks.TALL_GRASS.defaultBlockState(), 10))));
|
+ FeatureUtils.register(featureRegisterable, MOSS_VEGETATION, Feature.SIMPLE_BLOCK, new SimpleBlockConfiguration(new WeightedStateProvider(SimpleWeightedRandomList.<BlockState>builder().add(Blocks.MOSS_CARPET.defaultBlockState(), 25).add(Blocks.SHORT_GRASS.defaultBlockState(), 50).add(Blocks.TALL_GRASS.defaultBlockState(), 10))));
|
||||||
FeatureUtils.register(featureRegisterable, MOSS_PATCH, Feature.VEGETATION_PATCH, new VegetationPatchConfiguration(BlockTags.MOSS_REPLACEABLE, BlockStateProvider.simple(Blocks.MOSS_BLOCK), PlacementUtils.inlinePlaced(holderGetter.getOrThrow(MOSS_VEGETATION)), CaveSurface.FLOOR, ConstantInt.of(1), 0.0F, 5, 0.8F, UniformInt.of(4, 7), 0.3F));
|
FeatureUtils.register(featureRegisterable, MOSS_PATCH, Feature.VEGETATION_PATCH, new VegetationPatchConfiguration(BlockTags.MOSS_REPLACEABLE, BlockStateProvider.simple(Blocks.MOSS_BLOCK), PlacementUtils.inlinePlaced(holderGetter.getOrThrow(MOSS_VEGETATION)), CaveSurface.FLOOR, ConstantInt.of(1), 0.0F, 5, 0.8F, UniformInt.of(4, 7), 0.3F));
|
||||||
FeatureUtils.register(featureRegisterable, MOSS_PATCH_BONEMEAL, Feature.VEGETATION_PATCH, new VegetationPatchConfiguration(BlockTags.MOSS_REPLACEABLE, BlockStateProvider.simple(Blocks.MOSS_BLOCK), PlacementUtils.inlinePlaced(holderGetter.getOrThrow(MOSS_VEGETATION)), CaveSurface.FLOOR, ConstantInt.of(1), 0.0F, 5, 0.6F, UniformInt.of(1, 2), 0.75F));
|
FeatureUtils.register(featureRegisterable, MOSS_PATCH_BONEMEAL, Feature.VEGETATION_PATCH, new VegetationPatchConfiguration(BlockTags.MOSS_REPLACEABLE, BlockStateProvider.simple(Blocks.MOSS_BLOCK), PlacementUtils.inlinePlaced(holderGetter.getOrThrow(MOSS_VEGETATION)), CaveSurface.FLOOR, ConstantInt.of(1), 0.0F, 5, 0.6F, UniformInt.of(1, 2), 0.75F));
|
||||||
FeatureUtils.register(featureRegisterable, DRIPLEAF, Feature.SIMPLE_RANDOM_SELECTOR, new SimpleRandomFeatureConfiguration(HolderSet.direct(makeSmallDripleaf(), makeDripleaf(Direction.EAST), makeDripleaf(Direction.WEST), makeDripleaf(Direction.SOUTH), makeDripleaf(Direction.NORTH))));
|
FeatureUtils.register(featureRegisterable, DRIPLEAF, Feature.SIMPLE_RANDOM_SELECTOR, new SimpleRandomFeatureConfiguration(HolderSet.direct(makeSmallDripleaf(), makeDripleaf(Direction.EAST), makeDripleaf(Direction.WEST), makeDripleaf(Direction.SOUTH), makeDripleaf(Direction.NORTH))));
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] AntiXray Bypass
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
||||||
index 42fdce97d99618a53f2e9c51804ff2205b574f69..7e8d58e3481be2d7ebbe5fe388d61932479e7721 100644
|
index e7fe98ea30ae6d0baea3ec1f9f98a89502a49a12..7e2651aa63cc9ddbe28fb9ecbc5188358d52e607 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
--- a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
+++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
||||||
@@ -165,6 +165,7 @@ public final class ChunkPacketBlockControllerAntiXray extends ChunkPacketBlockCo
|
@@ -169,6 +169,7 @@ public final class ChunkPacketBlockControllerAntiXray extends ChunkPacketBlockCo
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean shouldModify(ServerPlayer player, LevelChunk chunk) {
|
public boolean shouldModify(ServerPlayer player, LevelChunk chunk) {
|
||||||
@@ -17,18 +17,18 @@ index 42fdce97d99618a53f2e9c51804ff2205b574f69..7e8d58e3481be2d7ebbe5fe388d61932
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index eaaf8b52b72ad688f8df772b574a84c9ee8f8be8..4e4b77587aaa19d69fad9d15e97330b55ea97a8e 100644
|
index 16734cf6cb5203a9d40be56672a698b761f8ce8a..7af85d92f87a645b35ffcb1ebf934b7fcfe0ec7b 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -198,6 +198,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -193,6 +193,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
|
public org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; // Paper - more resource pack API
|
||||||
private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit
|
private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit
|
||||||
private long lastSaveTime;
|
private long lastSaveTime; // Paper - getLastPlayed replacement API
|
||||||
// Paper end
|
|
||||||
+ private boolean antiXrayBypass; // Slice
|
+ private boolean antiXrayBypass; // Slice
|
||||||
|
|
||||||
public CraftPlayer(CraftServer server, ServerPlayer entity) {
|
public CraftPlayer(CraftServer server, ServerPlayer entity) {
|
||||||
super(server, entity);
|
super(server, entity);
|
||||||
@@ -2835,6 +2836,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -2924,6 +2925,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
@@ -18,10 +18,10 @@ index 1b090f1e79b996e52097afc49c1cec85936653e6..5185bcbf5363fa2c7e2b0226706cc66d
|
|||||||
private static final byte CHUNK_TICKET_STAGE_NONE = 0;
|
private static final byte CHUNK_TICKET_STAGE_NONE = 0;
|
||||||
private static final byte CHUNK_TICKET_STAGE_LOADING = 1;
|
private static final byte CHUNK_TICKET_STAGE_LOADING = 1;
|
||||||
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 b2b729c520f6b5dadc4d7bb72135c6da40d94b38..11f516e89a6d219033464b774e32dc59632fd5b2 100644
|
index 7727a4322155c9b208f097bec751368c01671a07..88507e50e1fd0e9e8bfb124d0162db15e0d046a5 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
|
||||||
@@ -530,6 +530,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -538,6 +538,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow opening covered chests
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/ChestBlock.java b/src/main/java/net/minecraft/world/level/block/ChestBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/ChestBlock.java b/src/main/java/net/minecraft/world/level/block/ChestBlock.java
|
||||||
index 5e22d175b1048a58802cdf64ac70a8b56329e915..0f15e574b5c0cc8648bc1c0a12f1c72aa8653724 100644
|
index 9804ee2020e5cef23d3f5174d153fc149e611503..8baeb4cb4a6e24e8099a0a98779dc50073d5d0b4 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/ChestBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/ChestBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/ChestBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/ChestBlock.java
|
||||||
@@ -355,9 +355,10 @@ public class ChestBlock extends AbstractChestBlock<ChestBlockEntity> implements
|
@@ -358,9 +358,10 @@ public class ChestBlock extends AbstractChestBlock<ChestBlockEntity> implements
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isBlockedChestByBlock(BlockGetter world, BlockPos pos) {
|
private static boolean isBlockedChestByBlock(BlockGetter world, BlockPos pos) {
|
||||||
@@ -23,10 +23,10 @@ index 5e22d175b1048a58802cdf64ac70a8b56329e915..0f15e574b5c0cc8648bc1c0a12f1c72a
|
|||||||
|
|
||||||
private static boolean isCatSittingOnChest(LevelAccessor world, BlockPos pos) {
|
private static boolean isCatSittingOnChest(LevelAccessor world, BlockPos pos) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java b/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java b/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java
|
||||||
index 7385e91f32f070e86a4e0fd3d214f55d832c7979..4911b099f865b9202286f51087e5c00ffeaa95a5 100644
|
index ddca14f1224327a738415fb8b37398d8df0aa9c8..cfd9bfd30d4b1787dacc95215e823603537131fd 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java
|
||||||
@@ -76,10 +76,10 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
@@ -83,10 +83,10 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||||
PlayerEnderChestContainer playerEnderChestContainer = player.getEnderChestInventory();
|
PlayerEnderChestContainer playerEnderChestContainer = player.getEnderChestInventory();
|
||||||
BlockEntity blockEntity = world.getBlockEntity(pos);
|
BlockEntity blockEntity = world.getBlockEntity(pos);
|
||||||
if (playerEnderChestContainer != null && blockEntity instanceof EnderChestBlockEntity) {
|
if (playerEnderChestContainer != null && blockEntity instanceof EnderChestBlockEntity) {
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't send fire packets if player has FR
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 1e05fca2a2ba6e2c0b641b6e27585520889cd8a6..067bfc5414ad69916624aa635e475b6cac8517df 100644
|
index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..91fc0da2cc01c24f9d69ef008a8f6a79c6eaaa5e 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -868,7 +868,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -872,7 +872,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
|
||||||
this.checkBelowWorld();
|
this.checkBelowWorld();
|
||||||
if (!this.level().isClientSide) {
|
if (!this.level().isClientSide) {
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow access to LightEngine
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
index caa73632aee15583c6b6ed12a668c8f49b794708..f4b82c5506308aacba10a421afc284913a04099b 100644
|
index d9cd497bc1b654030ff1a597f038b6a881df9f6b..4407f04904af9b17987ce595cc8b6e9e129ccec7 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
@@ -436,7 +436,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -435,7 +435,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
// Paper end - rewrite player chunk loader
|
// Paper end - rewrite player chunk loader
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Force Crit to PlayerPreAttackEntityEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
index d58b4c0dbe651b5068212e5f14dce3164ee520f5..32d6615ea73c1c149049d16dfd1b395621ad634b 100644
|
index 3e597833b57377b855505b8a0f2744801c791f90..04a68a4f0c642984bd2b95bfb0d7d2bd887d18f0 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
@@ -1283,10 +1283,11 @@ public abstract class Player extends LivingEntity {
|
@@ -1278,10 +1278,11 @@ public abstract class Player extends LivingEntity {
|
||||||
flag1 = true;
|
flag1 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,31 +23,3 @@ index d58b4c0dbe651b5068212e5f14dce3164ee520f5..32d6615ea73c1c149049d16dfd1b3956
|
|||||||
if (flag2) {
|
if (flag2) {
|
||||||
f *= 1.5F;
|
f *= 1.5F;
|
||||||
}
|
}
|
||||||
@@ -2413,27 +2414,6 @@ public abstract class Player extends LivingEntity {
|
|
||||||
this.lastDeathLocation = lastDeathPos;
|
|
||||||
}
|
|
||||||
|
|
||||||
- @Override
|
|
||||||
- public float getHurtDir() {
|
|
||||||
- return this.hurtDir;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- @Override
|
|
||||||
- public void animateHurt(float yaw) {
|
|
||||||
- super.animateHurt(yaw);
|
|
||||||
- this.hurtDir = yaw;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- @Override
|
|
||||||
- public boolean canSprint() {
|
|
||||||
- return true;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- @Override
|
|
||||||
- protected float getFlyingSpeed() {
|
|
||||||
- return this.abilities.flying && !this.isPassenger() ? (this.isSprinting() ? this.abilities.getFlyingSpeed() * 2.0F : this.abilities.getFlyingSpeed()) : (this.isSprinting() ? 0.025999999F : 0.02F);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
public static enum BedSleepingProblem {
|
|
||||||
|
|
||||||
NOT_POSSIBLE_HERE, NOT_POSSIBLE_NOW(Component.translatable("block.minecraft.bed.no_sleep")), TOO_FAR_AWAY(Component.translatable("block.minecraft.bed.too_far_away")), OBSTRUCTED(Component.translatable("block.minecraft.bed.obstructed")), OTHER_PROBLEM, NOT_SAFE(Component.translatable("block.minecraft.bed.not_safe"));
|
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Preventing KB Bonus to PlayerPreAttackEntityEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
index 32d6615ea73c1c149049d16dfd1b395621ad634b..0325086157b846da7da0ca291fd33c55fc91f229 100644
|
index 04a68a4f0c642984bd2b95bfb0d7d2bd887d18f0..c12b9b70d093217c9c796663341edcfa7fd29932 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
@@ -1275,7 +1275,11 @@ public abstract class Player extends LivingEntity {
|
@@ -1270,7 +1270,11 @@ public abstract class Player extends LivingEntity {
|
||||||
boolean flag = f2 > 0.9F;
|
boolean flag = f2 > 0.9F;
|
||||||
boolean flag1 = false;
|
boolean flag1 = false;
|
||||||
byte b0 = 0;
|
byte b0 = 0;
|
||||||
@@ -5,22 +5,23 @@ Subject: [PATCH] noEntityCollisions for Entity
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
index bfb1de19f53d5d7c7b65e25a606fabfa416706b3..63262cc017b15b076f27143309b3e38c48289261 100644
|
index ee0331a6bc40cdde08d926fd8eb1dc642630c2e5..d1094f6a61976a81f400ab5b2b604f9608209b28 100644
|
||||||
--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
+++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
+++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
@@ -1777,6 +1777,7 @@ public final class CollisionUtil {
|
@@ -1753,7 +1753,7 @@ public final class CollisionUtil {
|
||||||
|
|
||||||
public static boolean getEntityHardCollisions(final CollisionGetter getter, final Entity entity, AABB aabb,
|
public static boolean getEntityHardCollisions(final CollisionGetter getter, final Entity entity, AABB aabb,
|
||||||
final List<AABB> into, final int collisionFlags, final Predicate<Entity> predicate) {
|
final List<AABB> into, final int collisionFlags, final Predicate<Entity> predicate) {
|
||||||
+ if (entity != null && entity.noEntityCollisions) return false; // Slice
|
|
||||||
final boolean checkOnly = (collisionFlags & COLLISION_FLAG_CHECK_ONLY) != 0;
|
final boolean checkOnly = (collisionFlags & COLLISION_FLAG_CHECK_ONLY) != 0;
|
||||||
if (!(getter instanceof EntityGetter entityGetter)) {
|
- if (!(getter instanceof EntityGetter entityGetter)) {
|
||||||
|
+ if ((entity != null && entity.noEntityCollisions) || !(getter instanceof EntityGetter entityGetter)) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 067bfc5414ad69916624aa635e475b6cac8517df..c2e0a83819a0ea553f1206d364a111c7c127bc18 100644
|
index 91fc0da2cc01c24f9d69ef008a8f6a79c6eaaa5e..25c28dd37e729627739c91e929c208f6aa2539c0 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -453,6 +453,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -457,6 +457,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
* Overriding this field will cause memory leaks.
|
* Overriding this field will cause memory leaks.
|
||||||
*/
|
*/
|
||||||
private final boolean hardCollides;
|
private final boolean hardCollides;
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Do not freeze MappedRegistry
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/core/MappedRegistry.java b/src/main/java/net/minecraft/core/MappedRegistry.java
|
diff --git a/src/main/java/net/minecraft/core/MappedRegistry.java b/src/main/java/net/minecraft/core/MappedRegistry.java
|
||||||
index 26b92e27de1f079ab8440538c65377ed80e8b6ef..2a52ba73849b3f1f86ab4a5c41fcaf65ad452e41 100644
|
index 742af4feb3986ca7d8f5ed136b556a41cbe0722f..d8fd0627b781e4b66ad0882304ec417fbb5c9b20 100644
|
||||||
--- a/src/main/java/net/minecraft/core/MappedRegistry.java
|
--- a/src/main/java/net/minecraft/core/MappedRegistry.java
|
||||||
+++ b/src/main/java/net/minecraft/core/MappedRegistry.java
|
+++ b/src/main/java/net/minecraft/core/MappedRegistry.java
|
||||||
@@ -337,7 +337,7 @@ public class MappedRegistry<T> implements WritableRegistry<T> {
|
@@ -334,7 +334,7 @@ public class MappedRegistry<T> implements WritableRegistry<T> {
|
||||||
if (this.frozen) {
|
if (this.frozen) {
|
||||||
return this;
|
return this;
|
||||||
} else {
|
} else {
|
||||||
@@ -17,7 +17,7 @@ index 26b92e27de1f079ab8440538c65377ed80e8b6ef..2a52ba73849b3f1f86ab4a5c41fcaf65
|
|||||||
this.byValue.forEach((value, entry) -> {
|
this.byValue.forEach((value, entry) -> {
|
||||||
entry.bindValue(value);
|
entry.bindValue(value);
|
||||||
});
|
});
|
||||||
@@ -364,14 +364,16 @@ public class MappedRegistry<T> implements WritableRegistry<T> {
|
@@ -361,14 +361,16 @@ public class MappedRegistry<T> implements WritableRegistry<T> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Holder.Reference<T> createIntrusiveHolder(T value) {
|
public Holder.Reference<T> createIntrusiveHolder(T value) {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add jackson
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 2e1cea360bb6ff85eb8da54237bc407653eb91f6..475cbb6120655419fc7dc51292e6beedfe778656 100644
|
index f9df4ced9b313333102d5f76dff20841a789e53f..1d78ff5def3357c4b4fed3e6b66f092c237c1a0b 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -19,6 +19,13 @@ dependencies {
|
@@ -19,6 +19,13 @@ dependencies {
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Maybe can't tostring?
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java
|
diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java
|
||||||
index 84fc2adf591f02a14862f7c1cd645c2efde55c3d..f088d316aac7626204cff330f90468d89ac3581b 100644
|
index e464ada187fd1f15efef29a0e5033aeb0c688059..b2e800c653ba423e40de734218a8e4a020069076 100644
|
||||||
--- a/src/main/java/net/minecraft/nbt/CompoundTag.java
|
--- a/src/main/java/net/minecraft/nbt/CompoundTag.java
|
||||||
+++ b/src/main/java/net/minecraft/nbt/CompoundTag.java
|
+++ b/src/main/java/net/minecraft/nbt/CompoundTag.java
|
||||||
@@ -503,6 +503,9 @@ public class CompoundTag implements Tag {
|
@@ -507,6 +507,9 @@ public class CompoundTag implements Tag {
|
||||||
@Override
|
@Override
|
||||||
public CompoundTag copy() {
|
public CompoundTag copy() {
|
||||||
// Paper start - reduce memory footprint of NBTTagCompound
|
// Paper start - reduce memory footprint of NBTTagCompound
|
||||||
@@ -19,10 +19,10 @@ index 84fc2adf591f02a14862f7c1cd645c2efde55c3d..f088d316aac7626204cff330f90468d8
|
|||||||
java.util.Iterator<java.util.Map.Entry<String, Tag>> iterator = (this.tags instanceof it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap) ? ((it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap)this.tags).object2ObjectEntrySet().fastIterator() : this.tags.entrySet().iterator();
|
java.util.Iterator<java.util.Map.Entry<String, Tag>> iterator = (this.tags instanceof it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap) ? ((it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap)this.tags).object2ObjectEntrySet().fastIterator() : this.tags.entrySet().iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||||
index e30aaa502f5e98b5658a0dd78853e865cbf91f96..c9cd6d3a3678ec38fbfb9ca3975d2ddbe2ce2881 100644
|
index 625a852db818d95365ad7ae56e6b1de541bbdada..f721dd923711d65338820642dfca89ab8022e9a5 100644
|
||||||
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||||
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||||
@@ -742,7 +742,11 @@ public final class ItemStack {
|
@@ -765,7 +765,11 @@ public final class ItemStack {
|
||||||
|
|
||||||
itemstack.setPopTime(this.getPopTime());
|
itemstack.setPopTime(this.getPopTime());
|
||||||
if (this.tag != null) {
|
if (this.tag != null) {
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow inventory clicks in Spectator
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index 8bd243a8d5a4be54f907af2b02e96ea833cee62f..e93738332eaef720abb303b382f902c95aa87d72 100644
|
index 30ccbab1586a656e0ae41d7406525fb02d9e025b..31f6914f1b254aa568801e94a0d523f2aa2ad65c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -2873,7 +2873,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
@@ -2876,7 +2876,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||||
if (this.player.isImmobile()) return; // CraftBukkit
|
if (this.player.isImmobile()) return; // CraftBukkit
|
||||||
this.player.resetLastActionTime();
|
this.player.resetLastActionTime();
|
||||||
if (this.player.containerMenu.containerId == packet.getContainerId() && this.player.containerMenu.stillValid(this.player)) { // CraftBukkit
|
if (this.player.containerMenu.containerId == packet.getContainerId() && this.player.containerMenu.stillValid(this.player)) { // CraftBukkit
|
||||||
@@ -144,10 +144,10 @@ index 35674f92a67f93382103c2766df4b678ba5c862f..97dbcb6f527bd5c567e77200d7f6cbc1
|
|||||||
|
|
||||||
if (this.entity instanceof LivingEntity) {
|
if (this.entity instanceof LivingEntity) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index c2e0a83819a0ea553f1206d364a111c7c127bc18..6f60cadb034de8bbe52351a100916879ca98d977 100644
|
index 25c28dd37e729627739c91e929c208f6aa2539c0..34f3ddb22febc0aea7d3059b2cbbd84554fd03b4 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -3334,7 +3334,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -3384,7 +3384,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID);
|
this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -157,10 +157,10 @@ index c2e0a83819a0ea553f1206d364a111c7c127bc18..6f60cadb034de8bbe52351a100916879
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index d5fe77692292055f71766546d2f283440cccd7d6..1625dea60a5880b04b34d36732370e65ab86e528 100644
|
index edfd68dd73deb703efc6e7164a2af0cb8744a0bd..3c453de303422f96abf3aa67fa23523dd71327cb 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -3161,7 +3161,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -3166,7 +3166,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean equipmentHasChanged(ItemStack stack, ItemStack stack2) {
|
public boolean equipmentHasChanged(ItemStack stack, ItemStack stack2) {
|
||||||
@@ -170,10 +170,10 @@ index d5fe77692292055f71766546d2f283440cccd7d6..1625dea60a5880b04b34d36732370e65
|
|||||||
|
|
||||||
private void handleHandSwap(Map<EquipmentSlot, ItemStack> equipmentChanges) {
|
private void handleHandSwap(Map<EquipmentSlot, ItemStack> equipmentChanges) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
index a969ced38fb6cdc4e27f5a4430a4ec98279d9525..69968dff14c08a37a723ecd39c75f6981353df09 100644
|
index c12b9b70d093217c9c796663341edcfa7fd29932..88873231244f3d6e36a3e0aae957cb3af2048b8d 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
@@ -649,7 +649,7 @@ public abstract class Player extends LivingEntity {
|
@@ -644,7 +644,7 @@ public abstract class Player extends LivingEntity {
|
||||||
public void increaseScore(int score) {
|
public void increaseScore(int score) {
|
||||||
int j = this.getScore();
|
int j = this.getScore();
|
||||||
|
|
||||||
@@ -183,10 +183,10 @@ index a969ced38fb6cdc4e27f5a4430a4ec98279d9525..69968dff14c08a37a723ecd39c75f698
|
|||||||
|
|
||||||
public void startAutoSpinAttack(int riptideTicks) {
|
public void startAutoSpinAttack(int riptideTicks) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index 4e4b77587aaa19d69fad9d15e97330b55ea97a8e..3634519803bb755fa0fde91500223c365a1b8ca1 100644
|
index 7af85d92f87a645b35ffcb1ebf934b7fcfe0ec7b..c46cb9bbc1b7e8f6febb2ea93082d7d90ed78867 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -2599,7 +2599,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -2727,7 +2727,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
this.sendHealthUpdate();
|
this.sendHealthUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Long distance tracking
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
index f4b82c5506308aacba10a421afc284913a04099b..3ad804d7f5b018757a218547e25b9bf53ecfa78d 100644
|
index 4407f04904af9b17987ce595cc8b6e9e129ccec7..2d97c4445bd172a901c8dcf144b03081e0679468 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
@@ -1422,6 +1422,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -1421,6 +1421,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
Vec3 vec3d = player.position().subtract(this.entity.position());
|
Vec3 vec3d = player.position().subtract(this.entity.position());
|
||||||
int i = ChunkMap.this.getPlayerViewDistance(player);
|
int i = ChunkMap.this.getPlayerViewDistance(player);
|
||||||
double d0 = (double) Math.min(this.getEffectiveRange(), i * 16);
|
double d0 = (double) Math.min(this.getEffectiveRange(), i * 16);
|
||||||
@@ -17,10 +17,10 @@ index f4b82c5506308aacba10a421afc284913a04099b..3ad804d7f5b018757a218547e25b9bf5
|
|||||||
double d2 = d0 * d0;
|
double d2 = d0 * d0;
|
||||||
boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z);
|
boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z);
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 7f09801b4afd426d75c16dee88c31e1a16108fc1..702ca0b220e5f81702c3cc8e7b4797be22de9235 100644
|
index 1c3e41c9c849c6ba9fa4a8cd6950f99c28ceff92..7a9805d6c4335092bbabb68b3678a8e78b7d406f 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -275,6 +275,7 @@ public class ServerPlayer extends Player {
|
@@ -282,6 +282,7 @@ public class ServerPlayer extends Player {
|
||||||
public @Nullable String clientBrandName = null; // Paper - Brand name
|
public @Nullable String clientBrandName = null; // Paper - Brand name
|
||||||
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event
|
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event
|
||||||
public boolean smoothWorldTeleport; // Slice
|
public boolean smoothWorldTeleport; // Slice
|
||||||
@@ -28,7 +28,7 @@ index 7f09801b4afd426d75c16dee88c31e1a16108fc1..702ca0b220e5f81702c3cc8e7b4797be
|
|||||||
|
|
||||||
// Paper start - replace player chunk loader
|
// Paper start - replace player chunk loader
|
||||||
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
|
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
|
||||||
@@ -2657,4 +2658,18 @@ public class ServerPlayer extends Player {
|
@@ -2757,4 +2758,18 @@ public class ServerPlayer extends Player {
|
||||||
return (CraftPlayer) super.getBukkitEntity();
|
return (CraftPlayer) super.getBukkitEntity();
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -48,7 +48,7 @@ index 7f09801b4afd426d75c16dee88c31e1a16108fc1..702ca0b220e5f81702c3cc8e7b4797be
|
|||||||
+ // Slice end
|
+ // Slice end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||||
index f9b8e2bc039f1a37e47f84909c8785f3ef530284..bfa02a3698a347c55f0fff351ac24e831403cb56 100644
|
index 1cf6d4f854d89c515e48e1fb365eb95ff9340765..6dab8b76bef3c97936fc337e813bcb60c7f2026d 100644
|
||||||
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||||
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||||
@@ -271,6 +271,7 @@ public class SpigotWorldConfig
|
@@ -271,6 +271,7 @@ public class SpigotWorldConfig
|
||||||
61
patches/server/0038-Non-saveable-entities.patch
Normal file
61
patches/server/0038-Non-saveable-entities.patch
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cryptite <cryptite@gmail.com>
|
||||||
|
Date: Sat, 21 Oct 2023 11:27:52 -0500
|
||||||
|
Subject: [PATCH] Non-saveable entities
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
||||||
|
index 7e8dc9e8f381abfdcce2746edc93122d623622d1..303e5ed4d5cf2a64b998656bfd189f19f8c8fcde 100644
|
||||||
|
--- a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
||||||
|
+++ b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
||||||
|
@@ -118,7 +118,7 @@ public final class ChunkEntitySlices {
|
||||||
|
// removed by us below
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
- if (entity.shouldBeSaved()) {
|
||||||
|
+ if (entity.shouldBeSaved() || !entity.saveable) { // Slice
|
||||||
|
entity.setRemoved(Entity.RemovalReason.UNLOADED_TO_CHUNK);
|
||||||
|
if (entity.isVehicle()) {
|
||||||
|
// we cannot assume that these entities are contained within this chunk, because entities can
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
index 34f3ddb22febc0aea7d3059b2cbbd84554fd03b4..a6db17c51d6b8e58936e52e7f6cbe07dcebd5418 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
@@ -422,6 +422,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
private UUID originWorld;
|
||||||
|
public boolean freezeLocked = false; // Paper - Freeze Tick Lock API
|
||||||
|
public boolean fixedPose = false; // Paper
|
||||||
|
+ public boolean saveable = true; // Slice
|
||||||
|
|
||||||
|
public void setOrigin(@javax.annotation.Nonnull Location location) {
|
||||||
|
this.origin = location.toVector();
|
||||||
|
@@ -4819,7 +4820,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldBeSaved() {
|
||||||
|
- return this.removalReason != null && !this.removalReason.shouldSave() ? false : (this.isPassenger() ? false : !this.isVehicle() || !this.hasAnyPlayerPassengers()); // Paper - rewrite chunk system - it should check if the entity has ANY player passengers
|
||||||
|
+ return this.saveable && this.removalReason != null && !this.removalReason.shouldSave() ? false : (this.isPassenger() ? false : !this.isVehicle() || !this.hasAnyPlayerPassengers()); // Paper - rewrite chunk system - it should check if the entity has ANY player passengers // Slice - add saveable check
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
|
index 1c3e1153d08b59d29b3613fc3b50a4780aa7a3ac..19c56ef79cacfb6d65dea5741d9ce71998c1eacc 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
|
@@ -1227,4 +1227,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||||
|
return this.getHandle().getScoreboardName();
|
||||||
|
}
|
||||||
|
// Paper end - entity scoreboard name
|
||||||
|
+
|
||||||
|
+ // Slice start
|
||||||
|
+ @Override
|
||||||
|
+ public boolean isSaveable() {
|
||||||
|
+ return this.entity.saveable;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void setSaveable(boolean saveable) {
|
||||||
|
+ this.entity.saveable = saveable;
|
||||||
|
+ }
|
||||||
|
+ // Slice end
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cryptite <cryptite@gmail.com>
|
||||||
|
Date: Wed, 25 Oct 2023 17:05:29 -0500
|
||||||
|
Subject: [PATCH] Disable sending Entity Movement Packets
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
index 97dbcb6f527bd5c567e77200d7f6cbc1abb15792..fa4e0bcf752693c34aff8b53aea3eeaa65834fc1 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
@@ -151,7 +151,7 @@ public class ServerEntity {
|
||||||
|
boolean flag = Math.abs(i - this.yRotp) >= 1 || Math.abs(j - this.xRotp) >= 1;
|
||||||
|
|
||||||
|
if (flag) {
|
||||||
|
- this.broadcast.accept(new ClientboundMoveEntityPacket.Rot(this.entity.getId(), (byte) i, (byte) j, this.entity.onGround()));
|
||||||
|
+ if (entity.sendMovementPackets) this.broadcast.accept(new ClientboundMoveEntityPacket.Rot(this.entity.getId(), (byte) i, (byte) j, this.entity.onGround())); // Slice
|
||||||
|
this.yRotp = i;
|
||||||
|
this.xRotp = j;
|
||||||
|
}
|
||||||
|
@@ -180,14 +180,14 @@ public class ServerEntity {
|
||||||
|
if (!flag6 && this.teleportDelay <= 400 && !this.wasRiding && this.wasOnGround == this.entity.onGround()&& !(io.papermc.paper.configuration.GlobalConfiguration.get().collisions.sendFullPosForHardCollidingEntities && this.entity.hardCollides())) { // Paper - send full pos for hard colliding entities to prevent collision problems due to desync
|
||||||
|
if ((!flag2 || !flag3) && !(this.entity instanceof AbstractArrow)) {
|
||||||
|
if (flag2) {
|
||||||
|
- packet1 = new ClientboundMoveEntityPacket.Pos(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), this.entity.onGround());
|
||||||
|
+ if (entity.sendMovementPackets) packet1 = new ClientboundMoveEntityPacket.Pos(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), this.entity.onGround()); // Slice
|
||||||
|
flag4 = true;
|
||||||
|
} else if (flag3) {
|
||||||
|
- packet1 = new ClientboundMoveEntityPacket.Rot(this.entity.getId(), (byte) i, (byte) j, this.entity.onGround());
|
||||||
|
+ if (entity.sendMovementPackets) packet1 = new ClientboundMoveEntityPacket.Rot(this.entity.getId(), (byte) i, (byte) j, this.entity.onGround()); // Slice
|
||||||
|
flag5 = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
- packet1 = new ClientboundMoveEntityPacket.PosRot(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), (byte) i, (byte) j, this.entity.onGround());
|
||||||
|
+ if (entity.sendMovementPackets) packet1 = new ClientboundMoveEntityPacket.PosRot(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), (byte) i, (byte) j, this.entity.onGround()); // Slice
|
||||||
|
flag4 = true;
|
||||||
|
flag5 = true;
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
index a6db17c51d6b8e58936e52e7f6cbe07dcebd5418..1c75f943055b27d435ba36275fa7cd704e7a7b1a 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
public boolean freezeLocked = false; // Paper - Freeze Tick Lock API
|
||||||
|
public boolean fixedPose = false; // Paper
|
||||||
|
public boolean saveable = true; // Slice
|
||||||
|
+ public boolean sendMovementPackets = true; // Slice
|
||||||
|
|
||||||
|
public void setOrigin(@javax.annotation.Nonnull Location location) {
|
||||||
|
this.origin = location.toVector();
|
||||||
32
patches/server/0041-Player-spawnsOwnMobs.patch
Normal file
32
patches/server/0041-Player-spawnsOwnMobs.patch
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cryptite <cryptite@gmail.com>
|
||||||
|
Date: Thu, 7 Dec 2023 08:48:41 -0600
|
||||||
|
Subject: [PATCH] Player spawnsOwnMobs
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..9c5be1f0fd4d6cb62e7bc7faa8fa4c4e5879ab4e 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
@@ -557,7 +557,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||||
|
// Paper start - optimise chunk tick iteration
|
||||||
|
ChunkMap playerChunkMap = this.chunkMap;
|
||||||
|
for (ServerPlayer player : this.level.players) {
|
||||||
|
- if (!player.affectsSpawning || player.isSpectator()) {
|
||||||
|
+ if (!player.affectsSpawning || player.isSpectator() || player.spawnsOwnMobs) {
|
||||||
|
playerChunkMap.playerMobSpawnMap.remove(player);
|
||||||
|
player.playerNaturallySpawnedEvent = null;
|
||||||
|
player.lastEntitySpawnRadiusSquared = -1.0;
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
|
index 88873231244f3d6e36a3e0aae957cb3af2048b8d..a0b6df7d86345f8a7269ca9cfcec6717b213adfd 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
|
@@ -184,6 +184,8 @@ public abstract class Player extends LivingEntity {
|
||||||
|
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET;
|
||||||
|
// Paper end
|
||||||
|
|
||||||
|
+ public boolean spawnsOwnMobs = false; // Slice
|
||||||
|
+
|
||||||
|
// CraftBukkit start
|
||||||
|
public boolean fauxSleeping;
|
||||||
|
public int oldLevel = -1;
|
||||||
42
patches/server/0042-Set-location-on-a-Custom-Inventory.patch
Normal file
42
patches/server/0042-Set-location-on-a-Custom-Inventory.patch
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cryptite <cryptite@gmail.com>
|
||||||
|
Date: Fri, 8 Dec 2023 08:02:07 -0600
|
||||||
|
Subject: [PATCH] Set location on a Custom Inventory
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
|
||||||
|
index da1c1fe0faf6819b15a81d6ad53370948e5f984f..84eff85e98484c9701e203bb1fa61435ee88bab4 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
|
||||||
|
@@ -69,6 +69,14 @@ public class CraftInventoryCustom extends CraftInventory {
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
|
||||||
|
+ // Slice start
|
||||||
|
+ public void setLocation(Location location) {
|
||||||
|
+ if (this.inventory instanceof MinecraftInventory minecraftInventory) {
|
||||||
|
+ minecraftInventory.location = location;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ // Slice end
|
||||||
|
+
|
||||||
|
static class MinecraftInventory implements Container {
|
||||||
|
private final NonNullList<ItemStack> items;
|
||||||
|
private int maxStack = MAX_STACK;
|
||||||
|
@@ -77,6 +85,7 @@ public class CraftInventoryCustom extends CraftInventory {
|
||||||
|
private final net.kyori.adventure.text.Component adventure$title; // Paper
|
||||||
|
private InventoryType type;
|
||||||
|
private final InventoryHolder owner;
|
||||||
|
+ private Location location; // Slice
|
||||||
|
|
||||||
|
// Paper start
|
||||||
|
public MinecraftInventory(InventoryHolder owner, InventoryType type, net.kyori.adventure.text.Component title) {
|
||||||
|
@@ -239,7 +248,7 @@ public class CraftInventoryCustom extends CraftInventory {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getLocation() {
|
||||||
|
- return null;
|
||||||
|
+ return location;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Paper start
|
||||||
20
patches/server/0043-Affinity-Test.patch
Normal file
20
patches/server/0043-Affinity-Test.patch
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cryptite <cryptite@gmail.com>
|
||||||
|
Date: Mon, 11 Dec 2023 11:09:16 -0600
|
||||||
|
Subject: [PATCH] Affinity Test
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
|
index 1d78ff5def3357c4b4fed3e6b66f092c237c1a0b..aff13fbe60cc6970227f86a1d451d88f71f1b346 100644
|
||||||
|
--- a/build.gradle.kts
|
||||||
|
+++ b/build.gradle.kts
|
||||||
|
@@ -26,6 +26,9 @@ dependencies {
|
||||||
|
implementation("com.fasterxml.jackson.core:jackson-annotations:2.13.0")
|
||||||
|
// Slice end
|
||||||
|
|
||||||
|
+ // https://mvnrepository.com/artifact/net.openhft/Java-Thread-Affinity
|
||||||
|
+ implementation("net.openhft:affinity:3.23.3")
|
||||||
|
+
|
||||||
|
// Paper start
|
||||||
|
implementation("org.jline:jline-terminal-jansi:3.21.0")
|
||||||
|
implementation("net.minecrell:terminalconsoleappender:1.3.0")
|
||||||
Reference in New Issue
Block a user