Updated Upstream (Paper & Pufferfish)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@29b17a8 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9088)
PaperMC/Paper@b5ce6e3 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9104)
PaperMC/Paper@9cda284 Updated Upstream (Bukkit/CraftBukkit)
PaperMC/Paper@f8c0112 {ci skip} add missing labels to project status map (#9106)
PaperMC/Paper@6a7fef0 Allow entity effect changes off the main thread for worldgen (#8942)
PaperMC/Paper@f8d2f82 Resolve Plugin Dependency Issues, Improve PluginLoading Compat, Small Loading Issues (#9068)
PaperMC/Paper@b626528 Updated Upstream (Bukkit/CraftBukkit)
PaperMC/Paper@058d7c1 Updated Upstream (Bukkit/CraftBukkit/Spigot)
PaperMC/Paper@ab72b12 Update Adventure to 4.13.1 (#9113)
PaperMC/Paper@8be7a60 Fix getBrightness and getRawBrightness throwing exception in BlockStateListPopulator (#9111)
PaperMC/Paper@e811927 Revert "Resolve Plugin Dependency Issues, Improve PluginLoading Compat, Small Loading Issues (#9068)"

Pufferfish Changes:
pufferfish-gg/Pufferfish@da9fd85 Updated Upstream (Paper)
pufferfish-gg/Pufferfish@751dfb0 Updated Upstream (Paper)
pufferfish-gg/Pufferfish@c09a154 Updated Upstream (Paper)
pufferfish-gg/Pufferfish@b778163 Updated Upstream (Paper)
This commit is contained in:
granny
2023-04-10 04:06:22 -07:00
parent 1407eef7e0
commit f952106e1b
56 changed files with 238 additions and 249 deletions

View File

@@ -1,7 +1,7 @@
group = org.purpurmc.purpur
version = 1.19.4-R0.1-SNAPSHOT
paperCommit = ad6c14c62ea4756c6a5a7f9752131a3b90a5cd96
paperCommit = e811927394ffbccd7f63cde0d9063b3a2fe6bb98
org.gradle.caching = true
org.gradle.parallel = true

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index b5fd857896b3afcfa69cce55cbc2696dd625f805..7ff5d4554be858e6bad5440b8847e3f21523f796 100644
index ee446bfb3e6c4b1d4428c00d6406bf9455c68ad5..5bc1964f691e451b1d0348e186d5c582fe25768d 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3000,4 +3000,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3035,4 +3035,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override
Spigot spigot();
// Spigot end

View File

@@ -22,10 +22,10 @@ index 998f629852e1103767e005405d1f39c2251ecd28..49cba8a3226e4e2f2b11f3171c29e975
* @deprecated removed in 1.16
*/
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 365350d38b2eee00d22bad09ab95c6054f11d536..1087d6fa472878a6648310543746c78eae08a22c 100644
index a2a423d4e4c2702ba5967223cab0432dd7d04732..c6ece3f3a6a12998dab7f3c69a2af78bd22fdd48 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -953,4 +953,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -954,4 +954,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
boolean wouldCollideUsing(@NotNull BoundingBox boundingBox);
// Paper End - Collision API

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow inventory resizing
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
index 94f127fd6ba69ca48d03acbc9886ee499e9be4f3..1f958facfed766c401144b840e4369154c71d3c2 100644
index a8e631315f2da68895a258cf0ba9875bc88fc48c..d5648ec745e3530aecf18c3e1f3185a5f63f3d11 100644
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
@@ -152,7 +152,7 @@ public enum InventoryType {
@@ -155,7 +155,7 @@ public enum InventoryType {
SMITHING_NEW(4, "Upgrade Gear"),
;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 7ff5d4554be858e6bad5440b8847e3f21523f796..04b31e42865469f9760db061607a803787fbadf3 100644
index 5bc1964f691e451b1d0348e186d5c582fe25768d..57f9068a8622a298bfcbfd99668ad12774c7a8b2 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3008,5 +3008,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3043,5 +3043,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @return True if Player uses Purpur Client
*/
public boolean usesPurpurClient();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 04b31e42865469f9760db061607a803787fbadf3..819aa1f1e2c2c32510973e6fc9d8561366230851 100644
index 57f9068a8622a298bfcbfd99668ad12774c7a8b2..c332e7f967e5ce6c2b7b046ab539c2e483d85014 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3027,5 +3027,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3062,5 +3062,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Reset the idle timer back to 0
*/
void resetIdleTimer();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack convenience methods
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 3c5e90f039f0d2991be442168703526405e18e3d..df992c41d736ee4e89773c2621d261d6afcb2148 100644
index adb2416887cc3b544ec36c552bdf7105328c24a5..d334c963e16590c68ecd9d1d27434c7af6f7e21c 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -11066,4 +11066,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -11156,4 +11156,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public String getItemTranslationKey() {
return Bukkit.getUnsafe().getItemTranslationKey(this);
}
@@ -50,7 +50,7 @@ index 3c5e90f039f0d2991be442168703526405e18e3d..df992c41d736ee4e89773c2621d261d6
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index cd487177f6e391e114c394cd736796e20e0e8982..e5f129b7bbf4257e6be056af71c4e26a01ffd658 100644
index d15a74c38576c49df61cfab02c70fc5d8c0dd5f7..64055402076b62d32ba947830d935b79bae12d95 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta;

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 3bc677486e699e168891663a5904875036c29fca..ddaa8eac7d32895e235e435db6d78b06a28cec97 100644
index c6ece3f3a6a12998dab7f3c69a2af78bd22fdd48..ba60930ecd67159018717100b0c73252888b3abc 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -983,5 +983,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -984,5 +984,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
* @return True if ridable in water
*/
boolean isRidableInWater();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 6716a1185e733f3ddf56b295f3153938f57d4229..b19264c7584441422b85c7a68d857f2bd314f140 100644
index 0b8776355f724927ada826735d5e73f3fb6897d5..e040e4012832cd992811e1270f3459921f48476b 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -4007,6 +4007,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@@ -4018,6 +4018,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@Nullable
public DragonBattle getEnderDragonBattle();

View File

@@ -179,10 +179,10 @@ index b2184f33f8b34ae484357742690e205accaa635f..730caafaf9629664ba125f3884559da7
// Purpur end
}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index b19264c7584441422b85c7a68d857f2bd314f140..ad00e30379df52575bf2697ccb32abb176ecd47a 100644
index e040e4012832cd992811e1270f3459921f48476b..cf8b93aa5787e96f54e2ffe2a0f157b0e53e2c5c 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -4015,6 +4015,76 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@@ -4026,6 +4026,76 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
* @return The local difficulty
*/
public float getLocalDifficultyAt(@NotNull Location location);
@@ -260,10 +260,10 @@ index b19264c7584441422b85c7a68d857f2bd314f140..ad00e30379df52575bf2697ccb32abb1
/**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 424774d4b27d963cbd346026cb391b994f9c8c64..a5ba90c55cb22d92cdf3148570658cb653bcb022 100644
index c332e7f967e5ce6c2b7b046ab539c2e483d85014..6bf3ae6af4f38d3fd023628ddbee896cd6f72751 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3048,5 +3048,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3083,5 +3083,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param invulnerableTicks Invulnerable ticks remaining
*/
void setSpawnInvulnerableTicks(int invulnerableTicks);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 12b659d13ce336cca52dd704caa7c20366cfe6d9..08b5f448e92add21f9f9797d9cea3ac60581dff5 100644
index 6bf3ae6af4f38d3fd023628ddbee896cd6f72751..43cef54d355c8a1b6a8cd6be89a6a805e9f88566 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3118,5 +3118,21 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3153,5 +3153,21 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Clears all debug block highlights
*/
void clearBlockHighlights();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fire Immunity API
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 4fb8bf49edbc49f7238932eb661816152cbd05dc..47f644b9cb615e2feeacb810898cf567f1cf04fc 100644
index ba60930ecd67159018717100b0c73252888b3abc..cc78ce7de88a9a404ed20d5bc61b98d3107f29b3 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -990,5 +990,18 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -991,5 +991,18 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
* @return True if in daylight
*/
boolean isInDaylight();

View File

@@ -1678,7 +1678,7 @@ index b7fd8e70413c38923d0719aff803449e392383ac..d5cb594f0b17ec9dc1a19cdb99bba553
this.wasOnGround = this.entity.isOnGround();
this.teleportDelay = 0;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 536bedfe50288ef18468c71d41a6f0f82619f72d..88a6198ea5b0fd33f90737d9515c349791ca81b4 100644
index 3bb63a652aca3c23f5f1bbf9cb70fce6540f2e33..dda5e77f7d9fb2340d50997c0a17bc7f5e2bb961 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -709,6 +709,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1743,10 +1743,10 @@ index 536bedfe50288ef18468c71d41a6f0f82619f72d..88a6198ea5b0fd33f90737d9515c3497
this.getRandomBlockPosition(j, 0, k, 15, blockposition);
int normalY = chunk.getHeight(Heightmap.Types.MOTION_BLOCKING, blockposition.getX() & 15, blockposition.getZ() & 15) + 1;
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 177aac1ab10189bb5a52217e86ba5c8a535b4197..b357953dedc2af39673ad4ef78fed14d5e7235bb 100644
index 9c5754ac3b00d3f0cb80ec83a2beefadee6d0a14..cc7187c597337665d3cf3c3de4b53e3105b9e4c3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1214,6 +1214,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1215,6 +1215,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleEditBook(ServerboundEditBookPacket packet) {
@@ -1754,7 +1754,7 @@ index 177aac1ab10189bb5a52217e86ba5c8a535b4197..b357953dedc2af39673ad4ef78fed14d
// Paper start
if (!this.cserver.isPrimaryThread()) {
List<String> pageList = packet.getPages();
@@ -2355,6 +2356,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2356,6 +2357,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
private boolean updateChatOrder(Instant timestamp) {
@@ -2082,7 +2082,7 @@ index ceacc0d383e2ee674783d3c0a7df0a951595faca..8af0918d3a62de58a4b2af55022c812b
private String descriptionId;
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index dcfb71b5a53df789e366fea2080921d677549a2e..791f672b30f2a4d3b329e2ce0f4fb9c2ca627b01 100644
index 95a27d28f73039693ca64601954af62028413634..f3d96caa83ef4a8083b78e3265282d4723e37d28 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -141,7 +141,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -3158,7 +3158,7 @@ index 79b01e32f89defb6b78f4764600d33d4945af592..6d62cc8fb347ccafd51df05896e61699
}
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 206dc04086a218b510930739a6c573f2653ab0fa..e7e2b0fc88c9320449bcd0e0929269c2508886e4 100644
index d190bad5d287766ed4165ed827d9901a9d878687..13594b96cc8f451723c3598ef302ccee8e01bcac 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -88,6 +88,18 @@ public class LevelChunk extends ChunkAccess {
@@ -3180,14 +3180,15 @@ index 206dc04086a218b510930739a6c573f2653ab0fa..e7e2b0fc88c9320449bcd0e0929269c2
public LevelChunk(Level world, ChunkPos pos) {
this(world, pos, UpgradeData.EMPTY, new LevelChunkTicks<>(), new LevelChunkTicks<>(), 0L, (LevelChunkSection[]) null, (LevelChunk.PostLoadProcessor) null, (BlendingData) null);
}
@@ -118,6 +130,7 @@ public class LevelChunk extends ChunkAccess {
@@ -116,6 +128,8 @@ public class LevelChunk extends ChunkAccess {
this.postLoad = entityLoader;
this.blockTicks = blockTickScheduler;
this.fluidTicks = fluidTickScheduler;
// CraftBukkit start
this.bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this);
+
+ this.lightningTick = this.level.getThreadUnsafeRandom().nextInt(100000) << 1; // Pufferfish - initialize lightning tick
}
public org.bukkit.Chunk bukkitChunk;
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
index 1b80a91fa36c59a31b57ef7ef4a68eacbb0f17f5..b5e118456af6421ae3f85cb8232dc97a8b2d46b7 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
@@ -3430,7 +3431,7 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7
@Nullable
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 4cd95134811fd65465681d159b2f30cf77455830..7672fe8e6d08370327bb7ad5fa5ac3292c49e3c4 100644
index 0ba8446065def1b120fd73241de5bc14d60d3b82..58eaa1142bb0568bef439bba76903309914d3ae1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -256,7 +256,7 @@ import javax.annotation.Nullable; // Paper

View File

@@ -27,7 +27,7 @@ index 6e441a1a28ba72a8b1cc09fe5fca71b3c70627d4..5c691db595ee412b77f729e90172bc4f
"This can improve performance by a few percent, but has minor gameplay implications.");
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 88a6198ea5b0fd33f90737d9515c349791ca81b4..c1cf3e09d12adf90554fc10553a2b461c52dbfd6 100644
index dda5e77f7d9fb2340d50997c0a17bc7f5e2bb961..a6da001a03760a6ae5d842d8aaeb8fc435883b1f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -807,7 +807,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -53,15 +53,15 @@ index 6aec1983a0236d6aa0507a2b3ad1c08b3330f0fc..66cc44d9f14b01f6c8e53b0f990866ac
// Pufferfish start - ensure these get inlined
private final int minBuildHeight, minSection, height, maxBuildHeight, maxSection;
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 e7e2b0fc88c9320449bcd0e0929269c2508886e4..b5e361d2170d2741ef990ec342f32ccde0c05750 100644
index 13594b96cc8f451723c3598ef302ccee8e01bcac..96394bc930a8dab04cd7f5b6e0e9d457b11f58e3 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -130,7 +130,7 @@ public class LevelChunk extends ChunkAccess {
@@ -129,7 +129,7 @@ public class LevelChunk extends ChunkAccess {
this.blockTicks = blockTickScheduler;
this.fluidTicks = fluidTickScheduler;
// CraftBukkit start
this.bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this);
- this.lightningTick = this.level.getThreadUnsafeRandom().nextInt(100000) << 1; // Pufferfish - initialize lightning tick
+ this.lightningTick = java.util.concurrent.ThreadLocalRandom.current().nextInt(100000) << 1; // Pufferfish - initialize lightning tick // Purpur - any random will do
}
public org.bukkit.Chunk bukkitChunk;
// CraftBukkit start

View File

@@ -197,7 +197,7 @@ index a29d92b3f2658b63545b25092bb3a1fea46ca36b..0f6d1c56efbab0f9b84f09f7dc27eb70
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
index 7672fe8e6d08370327bb7ad5fa5ac3292c49e3c4..b31f59ecb41fc3a63b1f4ef1a9e267ad1f100175 100644
index 58eaa1142bb0568bef439bba76903309914d3ae1..094d608815f2a3b6ff25a5ca7872acf0e88c572c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -256,7 +256,7 @@ import javax.annotation.Nullable; // Paper
@@ -237,10 +237,10 @@ index 4e56018b64d11f76c8da43fd8f85c6de72204e36..9607675e6c5bff2183c4420d11fc63ee
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index aec588b41f19b2147a4e7267bafa417fbcf7abc0..699669aa34cb1476cb5b48719db4b01fe708a7b2 100644
index d43859f8aa7beed82dd3a146bb1086982cd0cda7..b548f06bc0569f0f1ee5edaa07806c3017d5399a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -883,7 +883,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -884,7 +884,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return EntityCategory.WATER;
}

View File

@@ -17,10 +17,10 @@ index 1d4d02f26391ac55c7631817f09d05e2769b0d29..b1c0f5743dfe87e359dbd3a451367aa8
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) {
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index b357953dedc2af39673ad4ef78fed14d5e7235bb..ed6631d2b104542465d28683cd4fd3222016e5bb 100644
index cc7187c597337665d3cf3c3de4b53e3105b9e4c3..59071de0e66876ae15defe1bd636846e22453979 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3534,6 +3534,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3535,6 +3535,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister");
private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support
@@ -28,7 +28,7 @@ index b357953dedc2af39673ad4ef78fed14d5e7235bb..ed6631d2b104542465d28683cd4fd322
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
@@ -3558,6 +3559,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3559,6 +3560,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex);
this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause
}
@@ -43,10 +43,10 @@ index b357953dedc2af39673ad4ef78fed14d5e7235bb..ed6631d2b104542465d28683cd4fd322
try {
byte[] data = new byte[packet.data.readableBytes()];
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 8dbba0e1fe1baa3fa7f3d69c8f28e87e39a2d7a5..1ebb96da67c874d3194c314237e1d8c05b5323e4 100644
index ca22b7de2dd05a0bdcdcd3bffb9ec991d196abde..7015d95a53dc55ab4ccd15fa2b98716bbb460dae 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3167,4 +3167,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3189,4 +3189,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end

View File

@@ -36,10 +36,10 @@ index b1c0f5743dfe87e359dbd3a451367aa8a66e57f0..01e52ea23d5481c2df79d2c899b4febf
public void displayClientMessage(Component message, boolean overlay) {
this.sendSystemMessage(message, overlay);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index a1096ea424c0724af93a2dc65512ee71f4a0bf72..81a6b5e6315d61408f926fd702feadc3034dfa96 100644
index 4d837c1530a3031a4c2a5a39d87bd013d60e14a6..9feded7fee7a759f7607c54c2277c6403a0af65f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1026,6 +1026,20 @@ public abstract class PlayerList {
@@ -1027,6 +1027,20 @@ public abstract class PlayerList {
}
// CraftBukkit end
@@ -81,7 +81,7 @@ index 93a1e990b0a6caae4143c2f9d09bfb368fa1d6db..615611fe372d6edaef56db058bbf2cf7
return this.type().msgId();
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 548133e399b5abc4aa83045af87c135a3455b722..9608b00d957bbd0158a22f61949e9029340be9c9 100644
index e25be74ef0a88541884ad62a4b84219400d5a142..2f3d8291a262496065d010e304d96e6dbd729ffa 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3914,6 +3914,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {

View File

@@ -22,7 +22,7 @@ index b37e0ff164a894d2033fb94bbbc2f630a0e66bcd..ac335ec4f70830c7687ac4e0aa2a6cba
super(x, y, z);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 5440cd26b9d6cc3988ced96490539d9a794c3a6b..a6e6dff37efd7b54a3f17c22ba4b45436bc8884d 100644
index 0f6d1c56efbab0f9b84f09f7dc27eb705f4006a9..7f37231b33d6cfbd3d10c6c5d0b3e0b96ba0ceb3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1529,6 +1529,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -34,7 +34,7 @@ index 5440cd26b9d6cc3988ced96490539d9a794c3a6b..a6e6dff37efd7b54a3f17c22ba4b4543
this.profiler.push(() -> {
return worldserver + " " + worldserver.dimension().location();
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index c7c31a901a0bf55cb557de83d1fe1688159c5b69..2f6a7a03bee6a79a45bd281394e721e17156fcf1 100644
index a6da001a03760a6ae5d842d8aaeb8fc435883b1f..3d641a5721b90230c79dca9e43ccc6fa21f24946 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -220,6 +220,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -66,10 +66,10 @@ index 01e52ea23d5481c2df79d2c899b4febf3f4a8948..d59e49a4958ebfb2ce0b9ca127b5a98f
public void doTick() {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ed6631d2b104542465d28683cd4fd3222016e5bb..34072d4d438ca90d921d4af7f4be99f5ee58bc51 100644
index 59071de0e66876ae15defe1bd636846e22453979..b125779217ef3adcc865c50ac9c5f5cfd747db50 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2801,6 +2801,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2802,6 +2802,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -79,7 +79,7 @@ index ed6631d2b104542465d28683cd4fd3222016e5bb..34072d4d438ca90d921d4af7f4be99f5
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 9608b00d957bbd0158a22f61949e9029340be9c9..1abefe370ac307beecd69ee6f5f9d46c9f414fb6 100644
index 2f3d8291a262496065d010e304d96e6dbd729ffa..3113fb54ac88692d1bde8e539d9a7bb10fa2140a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -361,7 +361,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -191,7 +191,7 @@ index c1e9b40a4a0f9cdc650caa88b5ea132e06ee2496..7b1ca8fd2908b8a02ec2cd1966a31e06
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 791f672b30f2a4d3b329e2ce0f4fb9c2ca627b01..223371a33f1c22874d9cc7b8655fef4c61ee5cb4 100644
index f3d96caa83ef4a8083b78e3265282d4723e37d28..9b430f8624ba6326f54ca6e18a49f97cc9221b10 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -216,9 +216,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3668,10 +3668,10 @@ index 41004c28edb748e12c4f868aa07b4672891197c1..6971cb46087aabcda66cd04c494a8228
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
return 10.440001F;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
index 6e0f4f15e49afb989874468b2a459178aef552f5..ba03f3e524b9ba8e8767b9e3133e96782b5d4267 100644
index cf7e9c1db229f9e2cc05ce3046540db1d4fc4ec4..bf269b310e5b9554f36cf1d1188e20d3b195cb60 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
@@ -67,14 +67,35 @@ public class Guardian extends Monster {
@@ -69,15 +69,36 @@ public class Guardian extends Monster {
this.xpReward = 10;
this.setPathfindingMalus(BlockPathTypes.WATER, 0.0F);
this.moveControl = new Guardian.GuardianMoveControl(this);
@@ -3701,21 +3701,22 @@ index 6e0f4f15e49afb989874468b2a459178aef552f5..ba03f3e524b9ba8e8767b9e3133e9678
+
@Override
protected void registerGoals() {
MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0D);
MoveTowardsRestrictionGoal pathfindergoalmovetowardsrestriction = new MoveTowardsRestrictionGoal(this, 1.0D);
this.randomStrollGoal = new RandomStrollGoal(this, 1.0D, 80);
+ this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(4, new Guardian.GuardianAttackGoal(this));
this.goalSelector.addGoal(5, moveTowardsRestrictionGoal);
this.goalSelector.addGoal(4, this.guardianAttackGoal = new Guardian.GuardianAttackGoal(this)); // CraftBukkit - assign field
this.goalSelector.addGoal(5, pathfindergoalmovetowardsrestriction);
this.goalSelector.addGoal(7, this.randomStrollGoal);
@@ -83,6 +104,7 @@ public class Guardian extends Monster {
@@ -86,6 +107,7 @@ public class Guardian extends Monster {
this.goalSelector.addGoal(9, new RandomLookAroundGoal(this));
this.randomStrollGoal.setFlags(EnumSet.of(Goal.Flag.MOVE, Goal.Flag.LOOK));
moveTowardsRestrictionGoal.setFlags(EnumSet.of(Goal.Flag.MOVE, Goal.Flag.LOOK));
pathfindergoalmovetowardsrestriction.setFlags(EnumSet.of(Goal.Flag.MOVE, Goal.Flag.LOOK));
+ this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 10, true, false, new Guardian.GuardianAttackSelector(this)));
}
@@ -341,7 +363,7 @@ public class Guardian extends Monster {
@@ -351,7 +373,7 @@ public class Guardian extends Monster {
@Override
public void travel(Vec3 movementInput) {
if (this.isControlledByLocalInstance() && this.isInWater()) {
@@ -3724,16 +3725,16 @@ index 6e0f4f15e49afb989874468b2a459178aef552f5..ba03f3e524b9ba8e8767b9e3133e9678
this.move(MoverType.SELF, this.getDeltaMovement());
this.setDeltaMovement(this.getDeltaMovement().scale(0.9D));
if (!this.isMoving() && this.getTarget() == null) {
@@ -448,7 +470,7 @@ public class Guardian extends Monster {
}
@@ -363,7 +385,7 @@ public class Guardian extends Monster {
}
- static class GuardianMoveControl extends MoveControl {
+ static class GuardianMoveControl extends org.purpurmc.purpur.controller.WaterMoveControllerWASD { // Purpur
- private static class GuardianMoveControl extends MoveControl {
+ private static class GuardianMoveControl extends org.purpurmc.purpur.controller.WaterMoveControllerWASD { // Purpur
private final Guardian guardian;
public GuardianMoveControl(Guardian guardian) {
@@ -456,8 +478,17 @@ public class Guardian extends Monster {
@@ -372,8 +394,17 @@ public class Guardian extends Monster {
this.guardian = guardian;
}
@@ -3750,17 +3751,17 @@ index 6e0f4f15e49afb989874468b2a459178aef552f5..ba03f3e524b9ba8e8767b9e3133e9678
+ @Override
+ public void vanillaTick() { // Purpur
if (this.operation == MoveControl.Operation.MOVE_TO && !this.guardian.getNavigation().isDone()) {
Vec3 vec3 = new Vec3(this.wantedX - this.guardian.getX(), this.wantedY - this.guardian.getY(), this.wantedZ - this.guardian.getZ());
double d = vec3.length();
@@ -467,7 +498,7 @@ public class Guardian extends Monster {
float h = (float)(Mth.atan2(vec3.z, vec3.x) * (double)(180F / (float)Math.PI)) - 90.0F;
this.guardian.setYRot(this.rotlerp(this.guardian.getYRot(), h, 90.0F));
Vec3 vec3d = new Vec3(this.wantedX - this.guardian.getX(), this.wantedY - this.guardian.getY(), this.wantedZ - this.guardian.getZ());
double d0 = vec3d.length();
@@ -384,7 +415,7 @@ public class Guardian extends Monster {
this.guardian.setYRot(this.rotlerp(this.guardian.getYRot(), f, 90.0F));
this.guardian.yBodyRot = this.guardian.getYRot();
- float i = (float)(this.speedModifier * this.guardian.getAttributeValue(Attributes.MOVEMENT_SPEED));
+ float i = (float)(this.getSpeedModifier() * this.guardian.getAttributeValue(Attributes.MOVEMENT_SPEED)); // Purpur
float j = Mth.lerp(0.125F, this.guardian.getSpeed(), i);
this.guardian.setSpeed(j);
double k = Math.sin((double)(this.guardian.tickCount + this.guardian.getId()) * 0.5D) * 0.05D;
- float f1 = (float) (this.speedModifier * this.guardian.getAttributeValue(Attributes.MOVEMENT_SPEED));
+ float f1 = (float) (this.getSpeedModifier() * this.guardian.getAttributeValue(Attributes.MOVEMENT_SPEED)); // Purpur
float f2 = Mth.lerp(0.125F, this.guardian.getSpeed(), f1);
this.guardian.setSpeed(f2);
diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java
index 4996347c6dde85a2dc9aa37fdf495160093fac64..1e2bc8b2c90599134d513e9062a2fb81c7c046b1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Husk.java
@@ -5152,10 +5153,10 @@ index 57a0dbb23a32123d30c3b3572f4d129be9d97847..fa6938626c64ed17a2f56739d5801494
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index cdb8ec04f4a19ec3dbedbd5b17a7d1f3afaa238e..16261aa799c34d7134f4c1489e2ab0a5db7992f0 100644
index 819c9c020f4d5a1373f68850134960d24b8fc308..a60948f4085232082f205ad4f0f627a28342bd36 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -544,6 +544,15 @@ public class CraftEventFactory {
@@ -561,6 +561,15 @@ public class CraftEventFactory {
// Paper end
craftServer.getPluginManager().callEvent(event);
@@ -5171,7 +5172,7 @@ index cdb8ec04f4a19ec3dbedbd5b17a7d1f3afaa238e..16261aa799c34d7134f4c1489e2ab0a5
return event;
}
@@ -981,6 +990,7 @@ public class CraftEventFactory {
@@ -998,6 +1007,7 @@ public class CraftEventFactory {
damageCause = DamageCause.ENTITY_EXPLOSION;
}
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions, source.isCritical()); // Paper - add critical damage API
@@ -5179,7 +5180,7 @@ index cdb8ec04f4a19ec3dbedbd5b17a7d1f3afaa238e..16261aa799c34d7134f4c1489e2ab0a5
}
event.setCancelled(cancelled);
@@ -1090,6 +1100,7 @@ public class CraftEventFactory {
@@ -1107,6 +1117,7 @@ public class CraftEventFactory {
} else {
entity.lastDamageCancelled = true; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled
}
@@ -5187,7 +5188,7 @@ index cdb8ec04f4a19ec3dbedbd5b17a7d1f3afaa238e..16261aa799c34d7134f4c1489e2ab0a5
return event;
}
@@ -1149,6 +1160,7 @@ public class CraftEventFactory {
@@ -1166,6 +1177,7 @@ public class CraftEventFactory {
EntityDamageEvent event;
if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions, critical); // Paper - add critical damage API

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index f216a136c693a202d1e07f8760ab493e51a4738e..a0f63263a2439df93757309a6d9f6394abf81073 100644
index 3113fb54ac88692d1bde8e539d9a7bb10fa2140a..8c158da219c3ee91942ae93454317cfe87641f0d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager;
@@ -34,7 +34,7 @@ index 7b1ca8fd2908b8a02ec2cd1966a31e06eaa2dd1f..b86329a18dc83073462049da975dd71b
@Override
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 223371a33f1c22874d9cc7b8655fef4c61ee5cb4..d8b8547f5561baa5f39d6b5f251a484033483757 100644
index 9b430f8624ba6326f54ca6e18a49f97cc9221b10..cc2369f208546bf8c346c30d5c3ccd535e09f09f 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -285,6 +285,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -743,7 +743,7 @@ index b6e2e7398413296449e8f132a2a6296da231f4d4..e818bd705b03aa1fedfd981ec44c9b82
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index 473b801645a62c89ed680f993761dcb64f73bc01..30ff9967aa19a9e77bdf7d32e494276b1b72ab72 100644
index ea0f568819994da042ba3182a66cc6ea2c4287bd..f27c71fbcebce21b0cde8375a476a0d19b6c2ae4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -96,6 +96,11 @@ public class Sniffer extends Animal {
@@ -967,10 +967,10 @@ index 6971cb46087aabcda66cd04c494a822886104b04..2019896dee313bcc982686fc665d1cb3
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
index ba03f3e524b9ba8e8767b9e3133e96782b5d4267..4292174f1f6c77374aecf74f1ed81929ed5c9249 100644
index bf269b310e5b9554f36cf1d1188e20d3b195cb60..426da497c322baeb4b9bc9414565f2c334960577 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
@@ -89,6 +89,11 @@ public class Guardian extends Monster {
@@ -91,6 +91,11 @@ public class Guardian extends Monster {
public boolean isControllable() {
return level.purpurConfig.guardianControllable;
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 81a6b5e6315d61408f926fd702feadc3034dfa96..3af2e1eabfa3e49f2aad676fe1516f749f289285 100644
index 9feded7fee7a759f7607c54c2277c6403a0af65f..cb211e2aad3cc300099b724b7fa78cc4f24aee7c 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1151,6 +1151,27 @@ public abstract class PlayerList {
@@ -1152,6 +1152,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player);
} // Paper

View File

@@ -73,10 +73,10 @@ index d59e49a4958ebfb2ce0b9ca127b5a98fc5d88804..71905201cd42094fa3f545f29ada0f7e
return this.stats;
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c9165e5c5a4d 100644
index b125779217ef3adcc865c50ac9c5f5cfd747db50..febae4d31eb82945765fa7606515a570d3f111ce 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -338,6 +338,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -339,6 +339,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private boolean justTeleported = false;
private boolean hasMoved; // Spigot
@@ -97,7 +97,7 @@ index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c916
public CraftPlayer getCraftPlayer() {
return (this.player == null) ? null : (CraftPlayer) this.player.getBukkitEntity();
}
@@ -431,6 +445,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -432,6 +446,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) (this.server.getPlayerIdleTimeout() * 1000 * 60) && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits.
@@ -110,7 +110,7 @@ index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c916
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
}
@@ -742,6 +762,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -743,6 +763,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -119,7 +119,7 @@ index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c916
// Skip the first time we do this
if (true) { // Spigot - don't skip any move events
Location oldTo = to.clone();
@@ -1546,7 +1568,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1547,7 +1569,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (!this.player.isChangingDimension() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot
flag2 = true; // Paper - diff on change, this should be moved wrongly
@@ -128,7 +128,7 @@ index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c916
}
this.player.absMoveTo(d0, d1, d2, f, f1);
@@ -1597,6 +1619,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1598,6 +1620,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -218,10 +218,10 @@ index 3b959f42d958bf0f426853aee56753d6c455fcdb..d17abb283ea818244df0379d6b57fc63
if (range < 0.0D || d < range * range) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 1ebb96da67c874d3194c314237e1d8c05b5323e4..354ee1f6e56413e270ec1a94c156b849e9e8e2a7 100644
index 7015d95a53dc55ab4ccd15fa2b98716bbb460dae..ee6d2faa7ca9d6bc43b08192ecbcebb36e679df1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -528,10 +528,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -530,10 +530,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setPlayerListName(String name) {
@@ -238,7 +238,7 @@ index 1ebb96da67c874d3194c314237e1d8c05b5323e4..354ee1f6e56413e270ec1a94c156b849
for (ServerPlayer player : (List<ServerPlayer>) server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -3173,5 +3178,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3195,5 +3200,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean usesPurpurClient() {
return getHandle().purpurClient;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] LivingEntity safeFallDistance
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index d8b8547f5561baa5f39d6b5f251a484033483757..cf7ac9f5e18921723b0a8cfd0ed8a829d73e1fd4 100644
index cc2369f208546bf8c346c30d5c3ccd535e09f09f..ad1591644a429b33c042e84a0114fe36bbcc6ec4 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -251,6 +251,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -62,10 +62,10 @@ index 2019896dee313bcc982686fc665d1cb3e2d40503..2050230df7949e21f2158d2be5be8854
// Purpur start
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 699669aa34cb1476cb5b48719db4b01fe708a7b2..cbaf3438c9f9e1d42467501127da7fa48e0598d9 100644
index b548f06bc0569f0f1ee5edaa07806c3017d5399a..6dfb577d1b6451d5a6c9231ad57e4aef7976edfc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -1070,4 +1070,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -1071,4 +1071,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
getHandle().knockback(strength, directionX, directionZ);
};
// Paper end

View File

@@ -82,10 +82,10 @@ index 71905201cd42094fa3f545f29ada0f7ebcd7c21d..f5c5ed6cfb963ad2b5612fd7623d5e0f
public Scoreboard getScoreboard() {
return this.getBukkitEntity().getScoreboard().getHandle();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 951dfa2b71695d2cf3dd3c14a9f7c9165e5c5a4d..470f44cd4627ab48573a22714ccd088bd318dbd0 100644
index febae4d31eb82945765fa7606515a570d3f111ce..e7eec6e22f8ba5a5a7042cd82ece1fe0ec58b348 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2090,12 +2090,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2091,12 +2091,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
@@ -108,10 +108,10 @@ index 951dfa2b71695d2cf3dd3c14a9f7c9165e5c5a4d..470f44cd4627ab48573a22714ccd088b
this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit
// Paper end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 6bd992fd206673cc1c9150f25f27715d261f31d0..4e808684dc7fef577718f63d5ca303e838ea6195 100644
index cb211e2aad3cc300099b724b7fa78cc4f24aee7c..4142e454d10e6ea3996e1ae372fcb1405829e52b 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -966,6 +966,8 @@ public abstract class PlayerList {
@@ -967,6 +967,8 @@ public abstract class PlayerList {
}
// Paper end
@@ -121,10 +121,10 @@ index 6bd992fd206673cc1c9150f25f27715d261f31d0..4e808684dc7fef577718f63d5ca303e8
return entityplayer1;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 354ee1f6e56413e270ec1a94c156b849e9e8e2a7..78c9113885052ce04cbc6481d777e9177dab09d6 100644
index ee6d2faa7ca9d6bc43b08192ecbcebb36e679df1..8164cb0e40057c05fafdfe036a64ce4da2b9bbbd 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3193,5 +3193,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3215,5 +3215,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() {
getHandle().resetLastActionTime();
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Alternative Keepalive Handling
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 470f44cd4627ab48573a22714ccd088bd318dbd0..427041d523ccabcf585994638903df571e7adefe 100644
index e7eec6e22f8ba5a5a7042cd82ece1fe0ec58b348..112d830b024bd67297d24c030e7f02450be5eecf 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -261,6 +261,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -262,6 +262,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private long keepAliveTime = Util.getMillis();
private boolean keepAlivePending;
private long keepAliveChallenge;
@@ -16,7 +16,7 @@ index 470f44cd4627ab48573a22714ccd088bd318dbd0..427041d523ccabcf585994638903df57
// CraftBukkit start - multithreaded fields
private final AtomicInteger chatSpamTickCount = new AtomicInteger();
private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits
@@ -413,6 +414,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -414,6 +415,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
long currentTime = Util.getMillis();
long elapsedTime = currentTime - this.keepAliveTime;
@@ -38,7 +38,7 @@ index 470f44cd4627ab48573a22714ccd088bd318dbd0..427041d523ccabcf585994638903df57
if (this.keepAlivePending) {
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
@@ -3519,6 +3535,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3520,6 +3536,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index f50689f9a9e74856725f92817892c1af0edf340d..f3a629d28506fc90e19db79fec1dc0ba67190835 100644
index 4142e454d10e6ea3996e1ae372fcb1405829e52b..2069633c7fc3af7cef94e92ff03da6c9198c4524 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1145,6 +1145,7 @@ public abstract class PlayerList {
@@ -1146,6 +1146,7 @@ public abstract class PlayerList {
} else {
b0 = (byte) (24 + permissionLevel);
}

View File

@@ -18,10 +18,10 @@ index 2d3994de8e40eedc78c27ea842b6265b1c5ea822..7043f15f84d6c847bf376025c8e2150b
if (entry != null) {
ItemStack itemstack = (ItemStack) entry.getValue();
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index 3bfef8ed7dd73f603aef06172f362bb0ed0a5c83..ea5baa4d99028feb94ccc3ce988257e56263b3c6 100644
index a7533d18fe6148d7bfd3106b9cdcb6fa3347cf7c..be0585ce01d851105699e02e6b35e486f0c13a88 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -553,6 +553,16 @@ public final class ItemStack {
@@ -566,6 +566,16 @@ public final class ItemStack {
return this.isDamageableItem() && this.getDamageValue() > 0;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 3949c313203f60c9dc288a510f43e1fbc55cc535..063ba101f751deecfbd7708b767e952fc4a273a3 100644
index f55f39536356224438b52b2201ec7f66680865c8..a8ace2c448ddae71e8e64f232c75d541aa531f3f 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3477,7 +3477,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -54,10 +54,10 @@ index 82b0bda3e35ec2157a477e1a17b2b46baadc97d9..0fc45b1048a1c4e0dc2bd1ae0437eecb
itemStack.shrink(1);
} else ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory();
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index ea5baa4d99028feb94ccc3ce988257e56263b3c6..cdadba82f91c599aef557b808ad4184506a6f632 100644
index be0585ce01d851105699e02e6b35e486f0c13a88..6d3d68faba89cf388d52d9a526a3d14ab9e21a22 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -582,7 +582,7 @@ public final class ItemStack {
@@ -595,7 +595,7 @@ public final class ItemStack {
int j;
if (amount > 0) {
@@ -66,7 +66,7 @@ index ea5baa4d99028feb94ccc3ce988257e56263b3c6..cdadba82f91c599aef557b808ad41845
int k = 0;
for (int l = 0; j > 0 && l < amount; ++l) {
@@ -637,6 +637,12 @@ public final class ItemStack {
@@ -650,6 +650,12 @@ public final class ItemStack {
if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent
breakCallback.accept(entity);
Item item = this.getItem();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 427041d523ccabcf585994638903df571e7adefe..5ce2eebcd883bf18e59444c988a3d2ee4b3321ca 100644
index 112d830b024bd67297d24c030e7f02450be5eecf..9ec106d3e550eba93ca154094a3b51aa42732d88 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1340,13 +1340,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1341,13 +1341,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
itemstack1.setTag(nbttagcompound.copy());
}
@@ -28,7 +28,7 @@ index 427041d523ccabcf585994638903df571e7adefe..5ce2eebcd883bf18e59444c988a3d2ee
this.updateBookPages(pages, (s) -> {
return Component.Serializer.toJson(Component.literal(s));
@@ -1358,10 +1361,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1359,10 +1362,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private void updateBookPages(List<FilteredText> list, UnaryOperator<String> unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit
ListTag nbttaglist = new ListTag();
@@ -44,7 +44,7 @@ index 427041d523ccabcf585994638903df571e7adefe..5ce2eebcd883bf18e59444c988a3d2ee
Objects.requireNonNull(nbttaglist);
stream.forEach(nbttaglist::add);
@@ -1371,11 +1377,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1372,11 +1378,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
for (int j = list.size(); i < j; ++i) {
FilteredText filteredtext = (FilteredText) list.get(i);
@@ -58,7 +58,7 @@ index 427041d523ccabcf585994638903df571e7adefe..5ce2eebcd883bf18e59444c988a3d2ee
}
}
@@ -1388,6 +1394,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1389,6 +1395,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent)
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 5ce2eebcd883bf18e59444c988a3d2ee4b3321ca..f78fe22022d9b2718613ed8822b51449061fcdaa 100644
index 9ec106d3e550eba93ca154094a3b51aa42732d88..2cc00ca01f40e1509d82bfb18ddc8c17ab816e2e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2853,6 +2853,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2854,6 +2854,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
AABB axisalignedbb = entity.getBoundingBox();
if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) {
@@ -95,7 +95,7 @@ index 89981efcb852fed1ca79f8b239aa1f044d713c6d..183261a031a2a0b6b95dbb983236cee3
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f3e0e2096ffbc6d2577bf1ffa34930855cd94102..bf122a8219ed6259f7f1face69fbf246a1fcdc4d 100644
index 482c145bb6d24de52c31bfa44d95f36428cabb7d..a144a767cc7f7ba6c7e7d342ef9c9e3f84a9f20e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -127,6 +127,11 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 48118c5121e2a2f728d2121e5206c9aa71448145..8b113b7ac096e6237577685a4f1961a757a5b7fa 100644
index 48118c5121e2a2f728d2121e5206c9aa71448145..81f9b830df5cec8c5748027b09fe97a5a47bb1c7 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2655,4 +2655,26 @@ public class ServerPlayer extends Player {
@@ -28,15 +28,15 @@ index 48118c5121e2a2f728d2121e5206c9aa71448145..8b113b7ac096e6237577685a4f1961a7
+
+ ServerLevel toLevel = ((CraftWorld) to.getWorld()).getHandle();
+ if (this.level == toLevel) {
+ this.connection.internalTeleport(to.getX(), to.getY(), to.getZ(), to.getYaw(), to.getPitch(), java.util.EnumSet.noneOf(net.minecraft.network.protocol.game.ClientboundPlayerPositionPacket.RelativeArgument.class), true);
+ this.connection.internalTeleport(to.getX(), to.getY(), to.getZ(), to.getYaw(), to.getPitch(), java.util.EnumSet.noneOf(net.minecraft.world.entity.RelativeMovement.class));
+ } else {
+ this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck);
+ this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck, org.bukkit.event.player.PlayerRespawnEvent.RespawnReason.DEATH);
+ }
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 063ba101f751deecfbd7708b767e952fc4a273a3..e41d27f486c5efa1269822c177bc2f1214d27b58 100644
index a8ace2c448ddae71e8e64f232c75d541aa531f3f..587a88a0c4954cba28fbdb31228ec81f2ba59b82 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -410,6 +410,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -48,7 +48,7 @@ index 063ba101f751deecfbd7708b767e952fc4a273a3..e41d27f486c5efa1269822c177bc2f12
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index bf122a8219ed6259f7f1face69fbf246a1fcdc4d..2cbab8dc920fff0d1573072b791f39debd61a710 100644
index a144a767cc7f7ba6c7e7d342ef9c9e3f84a9f20e..8a0d0406440a43683641dcd6e43f75da5db9c734 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -246,6 +246,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity#broadcastItemBreak
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index cbaf3438c9f9e1d42467501127da7fa48e0598d9..11dda012e34ba3767afbb5ab292a4943f15c9684 100644
index 6dfb577d1b6451d5a6c9231ad57e4aef7976edfc..6216b4590f40b6d5f904d57b50076fb8f64fd7a9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -1081,5 +1081,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -1082,5 +1082,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void setSafeFallDistance(float safeFallDistance) {
getHandle().safeFallDistance = safeFallDistance;
}

View File

@@ -17,7 +17,7 @@ index 277fb799d898ca726205519b1516861901be33c5..144e83bac0d8885c48d97d7fbb4b712d
if (environment.includeIntegrated) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 371de53f342e6dba7da54a6d60c1907f06fa9191..40a52c16e4e9da8c846ff69e9d22066ff134caea 100644
index 52487bc86a28a2f2c1c677b07c9fec77685f2af0..de9e19d9979ad6981fcda881d22b18a613c4138d 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1026,6 +1026,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -42,7 +42,7 @@ index ca6a2fee12ac8a89dae57aa2787462f190463cd0..e0b2819d6c73a9ca1fa60ff71d29e201
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index ead34927019224e76063ac1a040dea78022fb36a..adceeb21805e207b0bc0cfa0035eefcb82029311 100644
index dc1cffa39659505f44ee81a38066c274fda09a43..a7f674f456be825bbabb2c86c93afde77db96a33 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -277,6 +277,7 @@ public class ServerPlayer extends Player {
@@ -70,7 +70,7 @@ index ead34927019224e76063ac1a040dea78022fb36a..adceeb21805e207b0bc0cfa0035eefcb
// CraftBukkit start - World fallback code, either respawn location or global spawn
@@ -2685,5 +2688,13 @@ public class ServerPlayer extends Player {
this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck);
this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck, org.bukkit.event.player.PlayerRespawnEvent.RespawnReason.DEATH);
}
}
+
@@ -84,10 +84,10 @@ index ead34927019224e76063ac1a040dea78022fb36a..adceeb21805e207b0bc0cfa0035eefcb
// Purpur end
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index f3a629d28506fc90e19db79fec1dc0ba67190835..531c7005165cfa959cc4b0a98509bdf833eb13a7 100644
index 2069633c7fc3af7cef94e92ff03da6c9198c4524..25be7c9e59666f27161d8f08129019764a70a512 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -466,6 +466,7 @@ public abstract class PlayerList {
@@ -467,6 +467,7 @@ public abstract class PlayerList {
scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam);
}
// Paper end
@@ -95,7 +95,7 @@ index f3a629d28506fc90e19db79fec1dc0ba67190835..531c7005165cfa959cc4b0a98509bdf8
// CraftBukkit - Moved from above, added world
PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ());
}
@@ -575,6 +576,8 @@ public abstract class PlayerList {
@@ -576,6 +577,8 @@ public abstract class PlayerList {
}
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
// Paper end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index f78fe22022d9b2718613ed8822b51449061fcdaa..9871c168cb9ac20127aa5bb61b5d46ffec1af753 100644
index 2cc00ca01f40e1509d82bfb18ddc8c17ab816e2e..52232316039ad0ac81b83802afb05a0541a761b3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1260,10 +1260,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1261,10 +1261,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax;
double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier));
long byteAllowed = maxBookPageSize;
@@ -21,7 +21,7 @@ index f78fe22022d9b2718613ed8822b51449061fcdaa..9871c168cb9ac20127aa5bb61b5d46ff
server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause
return;
}
@@ -1287,6 +1289,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1288,6 +1290,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (byteTotal > byteAllowed) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size());

View File

@@ -89,10 +89,10 @@ index fa6938626c64ed17a2f56739d5801494ea6f3be1..df33bd0c97faa3c7eb4ab6cbe7286f6a
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 6ad913ee78570db794fd2953cc1320905fa557de..37865836db462b365c1fd5cb43f610295b80cf84 100644
index 8164cb0e40057c05fafdfe036a64ce4da2b9bbbd..9960e185a77c5084dae4d92bb83d5fa2d742b48d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1344,6 +1344,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1365,6 +1365,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
@@ -104,7 +104,7 @@ index 6ad913ee78570db794fd2953cc1320905fa557de..37865836db462b365c1fd5cb43f61029
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7b8eaac637ec1db255bb63d8b73d86c267642035..81428fd4d0de768eed12711eb1859989fa28b6e2 100644
index a5eb4756b750196847899b52cd390e8d1cbcbeeb..8ef0190cbfc88cd74ea43cd5669b4dd1350a5df4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -119,6 +119,7 @@ public class PurpurWorldConfig {

View File

@@ -759,10 +759,10 @@ index 14b393c8b70a1aa950df9dcaef648a90469bde65..cdc431608384b04b480a9cfdc603a28a
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
index 4292174f1f6c77374aecf74f1ed81929ed5c9249..52d4a0975b1fec03fdd51b8fad8127a79e216be0 100644
index 426da497c322baeb4b9bc9414565f2c334960577..85a075b8224feed2daaa9978d3a1d23f1334ce6f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
@@ -94,6 +94,11 @@ public class Guardian extends Monster {
@@ -96,6 +96,11 @@ public class Guardian extends Monster {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.guardianMaxHealth);
}
@@ -1197,7 +1197,7 @@ index 559bad9524a00a5357973f30d54b0f1a3ed6dadb..4e321a9f08c8798cee04789a7356893d
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a329762e693829a7d80390163f6d8b960cc825d9..31939ae8142fb6b795c4da362cd6ce24045db8f3 100644
index 52049de384f22443f9ee106552cf8dc6c56e9a38..c615f1a81cdc1c3846f5c8652a9a5d095e9b5db9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -579,11 +579,13 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors!
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 9871c168cb9ac20127aa5bb61b5d46ffec1af753..ef10fa567b1f9d1b23f5679c65798511c2e53b37 100644
index 52232316039ad0ac81b83802afb05a0541a761b3..d97b35d9ca448c8ef0b20a31b873022dd08085f5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1695,6 +1695,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1696,6 +1696,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player.resetFallDistance();
}
@@ -22,7 +22,7 @@ index 9871c168cb9ac20127aa5bb61b5d46ffec1af753..ef10fa567b1f9d1b23f5679c65798511
this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5);
this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY();
@@ -1728,6 +1735,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1729,6 +1736,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// Paper end - optimise out extra getCubes
@@ -61,7 +61,7 @@ index 5b0625955e2a65f689c8a128d73170bc1f0c8025..c8097ec7887ac8e689b6843d9ff7744d
public static String serverModName = "Purpur";
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 09582ba26c93e260a1eb4aad5e71f059a7457cc2..940a5436d9ceec72a103ede707afd1cd2e0a71d0 100644
index 1e0566329eccba7cb50ba183dc13032afc5c40a0..6d20f1788cd7ce776a984ad57a6efaeead8cd490 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -199,6 +199,10 @@ public class PurpurWorldConfig {

View File

@@ -70,10 +70,10 @@ index 2281dba58d32b6314a7abcdb103c03c7056c24e9..37c79c0e13e6d7b6b03ebdf57bebf124
((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get()));
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index cdadba82f91c599aef557b808ad4184506a6f632..94c4a410651564e2103454b26fd0e1f4e430cc74 100644
index 6d3d68faba89cf388d52d9a526a3d14ab9e21a22..71acec715d65737d0b13392b5b42b607937c2d15 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1183,6 +1183,12 @@ public final class ItemStack {
@@ -1196,6 +1196,12 @@ public final class ItemStack {
return this.tag != null && this.tag.contains("Enchantments", 9) ? !this.tag.getList("Enchantments", 10).isEmpty() : false;
}

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 41ee6c53e7b8e55587cbdfe114555d0d09c07bbd..179ec9c6ec26b4bf497005a33e0d47aca051282e 100644
index 65ba54c6144612df47820d2c3a88ddb4bd4b3f0a..5b0377d9731936953b977a113e2bfe27ed1f74fa 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4805,5 +4805,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -31,7 +31,7 @@ index 41ee6c53e7b8e55587cbdfe114555d0d09c07bbd..179ec9c6ec26b4bf497005a33e0d47ac
// Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index d07e2077756d322823ddb11ad1adc1ca610a8ad2..e3055bba8b8bed8044e9a8b2b5c83f02d3f2fbc2 100644
index cc95e5bdc2bfa9d53da329a0ec4dd5373e4b150e..c6e08bdfe1123ce5080c2cd91320702dab6bf84c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -367,10 +367,10 @@ index df33bd0c97faa3c7eb4ab6cbe7286f6a9aaa37d6..0db19dfbec593b9fd6f22970960fbe96
/*
* Order is *EXTREMELY* important -- keep it right! =D
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 11dda012e34ba3767afbb5ab292a4943f15c9684..6e997e109b14b0815c40a4c6bf891918559bfaba 100644
index 6216b4590f40b6d5f904d57b50076fb8f64fd7a9..697cc3adf3c07241136d555cbb618b528906efaf 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -1087,5 +1087,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -1088,5 +1088,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
if (slot == null) return;
getHandle().broadcastBreakEvent(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot));
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow player join full server by permission
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 531c7005165cfa959cc4b0a98509bdf833eb13a7..71d3a4c16e80bf16d8c5841a04c532c1f69c0c0b 100644
index 25be7c9e59666f27161d8f08129019764a70a512..4840b2adebeaf7927a043861d5b2cdf5c9b2cf0a 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -731,7 +731,7 @@ public abstract class PlayerList {
@@ -732,7 +732,7 @@ public abstract class PlayerList {
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure
} else {
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Store placer on Block when placed
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index a4d5f08da2a2082d2e2c56fa3e8e825a6ba5707c..6dcddac2bce3d3689f580906288e2e6f1d679da4 100644
index 71acec715d65737d0b13392b5b42b607937c2d15..d5c667a9ca5562c2df38e191748f081ef9ffbd68 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -415,6 +415,7 @@ public final class ItemStack {
@@ -417,6 +417,7 @@ public final class ItemStack {
world.preventPoiUpdated = true; // CraftBukkit - SPIGOT-5710
for (BlockState blockstate : blocks) {
blockstate.update(true, false);
@@ -16,7 +16,7 @@ index a4d5f08da2a2082d2e2c56fa3e8e825a6ba5707c..6dcddac2bce3d3689f580906288e2e6f
}
world.preventPoiUpdated = false;
@@ -444,6 +445,7 @@ public final class ItemStack {
@@ -446,6 +447,7 @@ public final class ItemStack {
if (!(block.getBlock() instanceof BaseEntityBlock)) { // Containers get placed automatically
block.getBlock().onPlace(block, world, newblockposition, oldBlock, true, itemactioncontext); // Paper - pass itemactioncontext
}

View File

@@ -223,10 +223,10 @@ index 714afc98b5150907b45a00060be4e41582333204..312a6d90c0a09570aef24c205dc2ff27
+ // Purpur end - OfflinePlayer API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 2844755e15620c6c58421240b723cf2ce9ecfe7f..e2ab9dab3584763a1b4c73da33d0208cd9a88270 100644
index 9960e185a77c5084dae4d92bb83d5fa2d742b48d..3485b10b9c4550fb0ce431a46cfa99b64eb7a4f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2384,6 +2384,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2406,6 +2406,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f;
}

View File

@@ -36,10 +36,10 @@ index 6b186a49957e97a60bb245912211d58eb7b84c0d..75f29f6dddf50ccf7ef43ecfa602ccad
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ef10fa567b1f9d1b23f5679c65798511c2e53b37..ce2872a137b06cb2e4bd4b8d8fff06f720260e10 100644
index d97b35d9ca448c8ef0b20a31b873022dd08085f5..b78a64b8086559cfb0da6de1640b59a1e5c50345 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2085,6 +2085,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2086,6 +2086,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
boolean cancelled;
if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) {
@@ -48,7 +48,7 @@ index ef10fa567b1f9d1b23f5679c65798511c2e53b37..ce2872a137b06cb2e4bd4b8d8fff06f7
cancelled = event.useItemInHand() == Event.Result.DENY;
} else {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 168d05a2be759d37c07ba3cb10b87d67f25e3c34..7fefc3388ec02a218e87c16db1834288aee45185 100644
index 983ce2c38f27be08cb9a95305ff465222c8d307a..19108c36e9ceeb28c74f7b87547d5ad6ea267f2e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -415,6 +415,7 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 44562c3ae8d0776b8834587b1d3fb628c97a7138..de504623d3b7aff451edbc9b87249c99efbcbed4 100644
index e79f0c9832927ba9b03c68669c5bb0fb5586d37a..15a5ad23531848dce7c6b0be9eefefb70e150608 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1527,6 +1527,7 @@ public class ServerPlayer extends Player {
@@ -17,10 +17,10 @@ index 44562c3ae8d0776b8834587b1d3fb628c97a7138..de504623d3b7aff451edbc9b87249c99
this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos()));
this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos()));
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ce2872a137b06cb2e4bd4b8d8fff06f720260e10..b8c2cbf0abbb81769c3887794656132a9f597b0b 100644
index b78a64b8086559cfb0da6de1640b59a1e5c50345..3f648eae9049c69a0f58d3adb5a85b03bf94ba8d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3543,11 +3543,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3544,11 +3544,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
for (int i = 0; i < signText.size(); ++i) {
FilteredText filteredtext = (FilteredText) signText.get(i);
@@ -70,7 +70,7 @@ index 4da4edae517a0efec6e03a719ec47b700509dab1..9e760a8e8244b15daaf0abdfc5f8a51d
public CompoundTag getUpdateTag() {
return this.saveWithoutMetadata();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c1329dfa8ba8bdfd1f8a14fa288b85645361f2b1..ad69d1a9be21e0a00c01eecd796ca9019a501fe2 100644
index c304ce978e7468ce6e5005468d6075616f2a7ae3..94670e18d27875a5fca3b76ee0ebb329cfb59bd1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -953,8 +953,10 @@ public class PurpurWorldConfig {

View File

@@ -725,10 +725,10 @@ index cdc431608384b04b480a9cfdc603a28a178e3dd2..4e5b9f772ba587b4e108add3758dffa6
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
index 52d4a0975b1fec03fdd51b8fad8127a79e216be0..73e973e10f767d0efe0e0410d97c6892c4ea35d8 100644
index 85a075b8224feed2daaa9978d3a1d23f1334ce6f..f10304b38e904528907cb36c342acf9d49935edd 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
@@ -99,6 +99,11 @@ public class Guardian extends Monster {
@@ -101,6 +101,11 @@ public class Guardian extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.guardianTakeDamageFromWater;
}
@@ -1157,7 +1157,7 @@ index 6af1d1b3b40d91fd3e0ac269d0e4a60a104be7b8..fef9fd3e50bba3d0fffa3d61b60f3bb8
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 417eade17d21c6fc2f0da5bb192bcb2e1e3a778a..502ead7161022974ee10fc3e3282bd0ba63fc3ad 100644
index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b1932f068263 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1019,12 +1019,14 @@ public class PurpurWorldConfig {

View File

@@ -160,19 +160,19 @@ index 14fab63346d56c72cd7534a04760efd10eef4295..745e792482f61c571e2efbd4200dd1bd
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 6e997e109b14b0815c40a4c6bf891918559bfaba..d7261e00c993eb96014373001b158c3525b43ec3 100644
index 697cc3adf3c07241136d555cbb618b528906efaf..69dbcc299cde87de76ff5c254842e6b89f55d86b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -455,7 +455,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -456,7 +456,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean addPotionEffect(PotionEffect effect, boolean force) {
org.spigotmc.AsyncCatcher.catchOp("effect add"); // Paper
- this.getHandle().addEffect(new MobEffectInstance(MobEffect.byId(effect.getType().getId()), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon()), EntityPotionEffectEvent.Cause.PLUGIN); // Paper - Don't ignore icon
+ this.getHandle().addEffect(new MobEffectInstance(MobEffect.byId(effect.getType().getId()), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon(), effect.getKey()), EntityPotionEffectEvent.Cause.PLUGIN); // Purpur - add key // Paper - Don't ignore icon
return true;
}
@@ -476,7 +476,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -477,7 +477,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public PotionEffect getPotionEffect(PotionEffectType type) {
MobEffectInstance handle = this.getHandle().getEffect(MobEffect.byId(type.getId()));
@@ -181,7 +181,7 @@ index 6e997e109b14b0815c40a4c6bf891918559bfaba..d7261e00c993eb96014373001b158c35
}
@Override
@@ -488,7 +488,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -489,7 +489,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public Collection<PotionEffect> getActivePotionEffects() {
List<PotionEffect> effects = new ArrayList<PotionEffect>();
for (MobEffectInstance handle : this.getHandle().activeEffects.values()) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for enchant level clamping
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index 4881a62cb4735b76c304e9290a7341dca98f22bc..cc75080762e117b799a804cd7e8a3e223611e574 100644
index d5c667a9ca5562c2df38e191748f081ef9ffbd68..c318f0b6d956c19d16b13c1aa99beda704d52027 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1177,7 +1177,7 @@ public final class ItemStack {
@@ -1190,7 +1190,7 @@ public final class ItemStack {
ListTag nbttaglist = this.tag.getList("Enchantments", 10);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index b8c2cbf0abbb81769c3887794656132a9f597b0b..ea3bfb5f639d5d3357111c82a974a8de1e9e178f 100644
index 3f648eae9049c69a0f58d3adb5a85b03bf94ba8d..9d6f74d52acaebe79244c9c12e991139eb43427d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2444,7 +2444,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2445,7 +2445,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
do {
instant1 = (Instant) this.lastChatTimeStamp.get();
if (timestamp.isBefore(instant1)) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 5e9055fdf411029ea2fed91acd6b981f79156418..24b390702d6abc256aee4a282cca64a654b95bd8 100644
index 86ffc869b57410fd4993c0fd0ae000da2e2c070c..ada46470d5b774d44b16a6f22fffeae631576690 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2253,6 +2253,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -2263,6 +2263,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (this.getHandle().dragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().dragonFight());
}

View File

@@ -85,10 +85,10 @@ index 574ebb3a2fcd0e4e426a8a7ee88d722ed3b9c3f5..842b921799111789b37a34b76644c921
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index 4a5e5da67f00870e05893f541cd1716dbee78c83..234d992206f34febc7aff24b78cb3e526254e35f 100644
index c318f0b6d956c19d16b13c1aa99beda704d52027..45d864679816cb39420e079d37220a967e9d71d1 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -109,6 +109,7 @@ import org.bukkit.event.world.StructureGrowEvent;
@@ -111,6 +111,7 @@ import org.bukkit.event.world.StructureGrowEvent;
public final class ItemStack {

View File

@@ -450,7 +450,7 @@ index c6f5d6756fa0e068a462d9c0ded12e0771abba37..2c23321c826d929981df51f2cc60cdcd
// Paper end - use set of chunks requiring updates, rather than iterating every single one loaded
// Paper start - controlled flush for entity tracker packets
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index b58c07f454fa0b6911f344899c414983fda4b115..f9844f801c8ad1cb153a6b45ced2351548d7db07 100644
index 3bf150a5f9ce1d497bf80174b80eca82c5fe06b5..2b82da383452b290ae99197c743e9a6ee5497713 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -687,7 +687,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -629,10 +629,10 @@ index b58c07f454fa0b6911f344899c414983fda4b115..f9844f801c8ad1cb153a6b45ced23515
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ea3bfb5f639d5d3357111c82a974a8de1e9e178f..43a5eb13728bee99cdf87947d98c042689d1af53 100644
index 9d6f74d52acaebe79244c9c12e991139eb43427d..399cdbd7d4b7903edff051fb16e2522e921cd325 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2581,7 +2581,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2582,7 +2582,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
// Paper End
@@ -641,7 +641,7 @@ index ea3bfb5f639d5d3357111c82a974a8de1e9e178f..43a5eb13728bee99cdf87947d98c0426
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
@@ -2591,7 +2591,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2592,7 +2592,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -650,7 +650,7 @@ index ea3bfb5f639d5d3357111c82a974a8de1e9e178f..43a5eb13728bee99cdf87947d98c0426
return;
}
@@ -2604,7 +2604,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2605,7 +2605,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return;
} finally {
@@ -660,10 +660,10 @@ index ea3bfb5f639d5d3357111c82a974a8de1e9e178f..43a5eb13728bee99cdf87947d98c0426
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 71d3a4c16e80bf16d8c5841a04c532c1f69c0c0b..b04e905534baf35e50d9d09921581e04edd19fc5 100644
index 4840b2adebeaf7927a043861d5b2cdf5c9b2cf0a..33d4c1af86382cc3343d5db42283b27f69f52374 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1239,7 +1239,7 @@ public abstract class PlayerList {
@@ -1240,7 +1240,7 @@ public abstract class PlayerList {
public void saveAll(int interval) {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
@@ -672,7 +672,7 @@ index 71d3a4c16e80bf16d8c5841a04c532c1f69c0c0b..b04e905534baf35e50d9d09921581e04
int numSaved = 0;
long now = MinecraftServer.currentTick;
for (int i = 0; i < this.players.size(); ++i) {
@@ -1250,7 +1250,7 @@ public abstract class PlayerList {
@@ -1251,7 +1251,7 @@ public abstract class PlayerList {
}
// Paper end
}
@@ -785,10 +785,10 @@ index 6180679d922ea61d05d452971ec2d506a724d3c3..54467e5ab4a4629f88fe48bd4b7f0db8
}
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 b5e361d2170d2741ef990ec342f32ccde0c05750..3922a639a91b12c419ce566f6cf84f5466c2e0e3 100644
index 96394bc930a8dab04cd7f5b6e0e9d457b11f58e3..4b71677a145918854cfc6aff40f0bc71933864f7 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -930,7 +930,7 @@ public class LevelChunk extends ChunkAccess {
@@ -925,7 +925,7 @@ public class LevelChunk extends ChunkAccess {
this.chunkHolder.getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system
if (this.needsDecoration) {
@@ -797,16 +797,16 @@ index b5e361d2170d2741ef990ec342f32ccde0c05750..3922a639a91b12c419ce566f6cf84f54
this.needsDecoration = false;
java.util.Random random = new java.util.Random();
random.setSeed(this.level.getSeed());
@@ -950,7 +950,7 @@ public class LevelChunk extends ChunkAccess {
@@ -945,7 +945,7 @@ public class LevelChunk extends ChunkAccess {
}
}
server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(this.bukkitChunk));
server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk));
- } // Paper
+ //} // Paper // Purpur
}
}
}
@@ -1322,7 +1322,7 @@ public class LevelChunk extends ChunkAccess {
@@ -1318,7 +1318,7 @@ public class LevelChunk extends ChunkAccess {
ProfilerFiller gameprofilerfiller = LevelChunk.this.level.getProfiler();
gameprofilerfiller.push(this::getType);
@@ -815,7 +815,7 @@ index b5e361d2170d2741ef990ec342f32ccde0c05750..3922a639a91b12c419ce566f6cf84f54
BlockState iblockdata = LevelChunk.this.getBlockState(blockposition);
if (this.blockEntity.getType().isValid(iblockdata)) {
@@ -1344,7 +1344,7 @@ public class LevelChunk extends ChunkAccess {
@@ -1340,7 +1340,7 @@ public class LevelChunk extends ChunkAccess {
// Paper end
// Spigot start
} finally {

View File

@@ -39,7 +39,7 @@ index 314ab6183e31b4bac6a40c1f8007d48e9cab1760..6b05907bfec377e72a8858534d001bda
return b0;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 123c7f9730a999ea5ea11de817fa61cc455e6962..ee0a1f4be8a30f90e4c64deb31c06a78690aa09e 100644
index 68552716b7ed7f93cb84b1951af85344dc2e83b0..2bd58d13d4c48fdddee56e2b417b68fe15072386 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -343,13 +343,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -418,7 +418,7 @@ index eaef5f9119cd2e5eab2476f4126daff912eeaeb2..57fdef8b16e1ed9a4693356144b4685b
public boolean hasWork() {
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 7dde0357d0c63469176a44d84631c52efdd83d41..30d364b385da21544a810a76f436f06879d39b14 100644
index 2c23321c826d929981df51f2cc60cdcdb649a43f..0ae45cf5a084fd412305e8b2f5dabe608b4eb1c1 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -431,16 +431,16 @@ public class ServerChunkCache extends ChunkSource {
@@ -556,7 +556,7 @@ index 7dde0357d0c63469176a44d84631c52efdd83d41..30d364b385da21544a810a76f436f068
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 2d367377ac024b6ab3d9072813d03ad36db5a22d..06b0b78d16804b4bf8f6b5bb29b21b0eda57f0fc 100644
index 2b82da383452b290ae99197c743e9a6ee5497713..10d602b947edaae6b78efe9d0773021bcb1c35bf 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -654,12 +654,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -768,7 +768,7 @@ index 2d367377ac024b6ab3d9072813d03ad36db5a22d..06b0b78d16804b4bf8f6b5bb29b21b0e
while (iterator.hasNext()) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index de504623d3b7aff451edbc9b87249c99efbcbed4..9081d891ddb61df628009232efdb31d66d5f71b6 100644
index 15a5ad23531848dce7c6b0be9eefefb70e150608..ac63f8d93048a0e61f1e27abb4cc5e2b5cc5208e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1197,7 +1197,7 @@ public class ServerPlayer extends Player {
@@ -801,10 +801,10 @@ index de504623d3b7aff451edbc9b87249c99efbcbed4..9081d891ddb61df628009232efdb31d6
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
playerlist.sendLevelInfo(this, worldserver);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 43a5eb13728bee99cdf87947d98c042689d1af53..d37bbff4375724fe85d1ed5cc0fa0696736736ac 100644
index 399cdbd7d4b7903edff051fb16e2522e921cd325..65835b5fc9a65acee158e7fc784e7d3af677f1e3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -408,7 +408,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -409,7 +409,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.aboveGroundVehicleTickCount = 0;
}
@@ -813,7 +813,7 @@ index 43a5eb13728bee99cdf87947d98c042689d1af53..d37bbff4375724fe85d1ed5cc0fa0696
// Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings
// This should effectively place the keepalive handling back to "as it was" before 1.12.2
long currentTime = Util.getMillis();
@@ -444,7 +444,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -445,7 +445,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// Paper end
@@ -1027,7 +1027,7 @@ index 2e6e8eac987c4ef6b2dcd3de592d8a51d2b29792..863343a87fe34d72f04af89d75268b47
};
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 9cdfd0a72b020d3820276dfa400b345bc00dd36b..c44d0e77fc610cd0fe540ee25d6773ff97f25031 100644
index 20221ab20b5589f663b8d26c504578af33adc8f2..55116e7a7b70a6f9db187ac7ef0747fe5100cacd 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -823,7 +823,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1153,7 +1153,7 @@ index 9cdfd0a72b020d3820276dfa400b345bc00dd36b..c44d0e77fc610cd0fe540ee25d6773ff
}
} else {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index fe68a9e0cf53c4a8c3411123521e71a482e3ced9..79925dcc3dec57bae886263a804de28e2bd6ad72 100644
index d96de1ee220465cb268819f9683d52a1251ff36a..ac323afc8491749969e53aa3841bc684d79c48d3 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -393,7 +393,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1824,10 +1824,10 @@ index 54467e5ab4a4629f88fe48bd4b7f0db821e4553f..ba4f51e081f4352530998a9a7fbf0252
// Paper start
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 3922a639a91b12c419ce566f6cf84f5466c2e0e3..b367184f415b6e20c2fc02a1e8853003349a0a1b 100644
index 4b71677a145918854cfc6aff40f0bc71933864f7..e9d92bf484fb0d2fcb66a7c424eced109bfa031d 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -1319,9 +1319,9 @@ public class LevelChunk extends ChunkAccess {
@@ -1315,9 +1315,9 @@ public class LevelChunk extends ChunkAccess {
if (LevelChunk.this.isTicking(blockposition)) {
try {
@@ -1839,7 +1839,7 @@ index 3922a639a91b12c419ce566f6cf84f5466c2e0e3..b367184f415b6e20c2fc02a1e8853003
//this.blockEntity.tickTimer.startTiming(); // Spigot // Purpur
BlockState iblockdata = LevelChunk.this.getBlockState(blockposition);
@@ -1333,7 +1333,7 @@ public class LevelChunk extends ChunkAccess {
@@ -1329,7 +1329,7 @@ public class LevelChunk extends ChunkAccess {
LevelChunk.LOGGER.warn("Block entity {} @ {} state {} invalid for ticking:", new Object[]{LogUtils.defer(this::getType), LogUtils.defer(this::getPos), iblockdata});
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add more logger output for invalid movement kicks
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index d37bbff4375724fe85d1ed5cc0fa0696736736ac..9bfdd8970c3e48790795ab83b45146d133f5c673 100644
index 65835b5fc9a65acee158e7fc784e7d3af677f1e3..3d4401ab0cbd711555ad91fae5ab9d1b2cfd0886 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -856,6 +856,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -857,6 +857,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) {
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
@@ -16,7 +16,7 @@ index d37bbff4375724fe85d1ed5cc0fa0696736736ac..9bfdd8970c3e48790795ab83b45146d1
return;
}
@@ -1436,8 +1437,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1437,8 +1438,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());

View File

@@ -52,10 +52,10 @@ index 09c827d21581318f282a9a17a8f8f95d26d4d1d0..5e7162866530c323f50ea99183757622
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 24b390702d6abc256aee4a282cca64a654b95bd8..c6a3b59c65466f9f2b16cefe0059a6e5dd84044c 100644
index ada46470d5b774d44b16a6f22fffeae631576690..b5415f0c65db728f4a935b87b54fa14b68d31bc4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2257,6 +2257,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -2267,6 +2267,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public float getLocalDifficultyAt(Location location) {
return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty();
}
@@ -99,10 +99,10 @@ index 24b390702d6abc256aee4a282cca64a654b95bd8..c6a3b59c65466f9f2b16cefe0059a6e5
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index e2ab9dab3584763a1b4c73da33d0208cd9a88270..d27d31233a937f4e2e6e7486594f665b107f12c6 100644
index 3485b10b9c4550fb0ce431a46cfa99b64eb7a4f6..96dfcbd7160231a58b051d38b131ee000932da22 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3234,5 +3234,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3256,5 +3256,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) {
getHandle().spawnInvulnerableTime = spawnInvulnerableTime;
}

View File

@@ -30,10 +30,10 @@ index 53b75f5737a910ffc5448cd9a85eae57f9c1488f..ea95873dd034779e56a8b924cd27f937
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index d27d31233a937f4e2e6e7486594f665b107f12c6..264660979ead8b523248f0828591531105b8d143 100644
index 96dfcbd7160231a58b051d38b131ee000932da22..c38cbce95cc0623c3b4981b0f40ad44d2d3c549f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3277,5 +3277,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3299,5 +3299,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return;
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundCustomPayloadPacket(ClientboundCustomPayloadPacket.DEBUG_GAME_TEST_CLEAR, new FriendlyByteBuf(io.netty.buffer.Unpooled.buffer())));
}

View File

@@ -36,7 +36,7 @@ index 9938bb90bef84cf784f9a1ceb02a1a45aa8b48a1..1f4b64a5f812376c499c98cb4be62469
this.writeId(BuiltInRegistries.ITEM, item);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index ee0a1f4be8a30f90e4c64deb31c06a78690aa09e..46b9aed8ab46bd4bfdcf44a392ffc34e26da0f5f 100644
index 2bd58d13d4c48fdddee56e2b417b68fe15072386..beb05039926e1fb7a656dfcd0c503f82db67fc46 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1548,6 +1548,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -48,10 +48,10 @@ index ee0a1f4be8a30f90e4c64deb31c06a78690aa09e..46b9aed8ab46bd4bfdcf44a392ffc34e
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 9bfdd8970c3e48790795ab83b45146d133f5c673..21211e2790cd667ec389353fb90fb700f33421cc 100644
index 3d4401ab0cbd711555ad91fae5ab9d1b2cfd0886..177090697e42fcca84dbfdf04ca5118a2c5e7be2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3446,6 +3446,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3447,6 +3447,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
}

View File

@@ -4,21 +4,8 @@ Date: Sun, 13 Nov 2022 05:05:34 -0600
Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 4200ee9d24ef91af2d400783ad111584097c00da..8a4be66f967dfd6b57ab542ae9b06c840647486d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2692,7 +2692,7 @@ public class ServerPlayer extends Player {
ServerLevel toLevel = ((CraftWorld) to.getWorld()).getHandle();
if (this.level == toLevel) {
- this.connection.internalTeleport(to.getX(), to.getY(), to.getZ(), to.getYaw(), to.getPitch(), java.util.EnumSet.noneOf(net.minecraft.network.protocol.game.ClientboundPlayerPositionPacket.RelativeArgument.class), true);
+ this.connection.internalTeleport(to.getX(), to.getY(), to.getZ(), to.getYaw(), to.getPitch(), java.util.EnumSet.noneOf(net.minecraft.world.entity.RelativeMovement.class));
} else {
this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck);
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 31ae621c405277efa95bb4d45050f6f262097004..3c10c719f6172161a2dcc6592a0a1492e9b3d7c1 100644
index c4cfbf008bc07074664b9310d5ff7b750bb98e96..b2ee73a2ef6042694ca84c27d592e5fb13b4a0fe 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -898,6 +898,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -30,7 +17,7 @@ index 31ae621c405277efa95bb4d45050f6f262097004..3c10c719f6172161a2dcc6592a0a1492
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 14e5b44d9808c2b1c459329fb188d9f481160bc8..705bf62755bd8d73facfbb8df88599c1fb47f3d6 100644
index e3b81cc53213f9b6404abf5e3478e3abfdf0a9c2..4594b47bea1db94d84e7a902b3b7ea1e10d36545 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -421,6 +421,7 @@ public class PurpurWorldConfig {