Updated Upstream (Paper & Pufferfish)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@a90092e Updated Upstream (CraftBukkit/Spigot) (#7848)
PaperMC/Paper@79e07f3 Fix addPassenger for Marker (#7762)
PaperMC/Paper@182a609 Fix duplicate world keys via createWorld (#7614)
PaperMC/Paper@b6a6544 Provide ComponentSerializer services (#7527)
PaperMC/Paper@3f7fbe3 Fix cb's janky level name in WorldCreator (#7851)
PaperMC/Paper@af3b377 Update ForgeFlower (#7857)
PaperMC/Paper@9667181 Fix OfflinePlayer#getBedSpawnLocation (#7861)
PaperMC/Paper@c123915 Fix FurnaceInventory for smokers and blast furnaces (#7249)
PaperMC/Paper@f7382f5 Remove unneeded UOE when copying biome sources (#7629)
PaperMC/Paper@6b035fd Update default vanilla command perms (#7386)
PaperMC/Paper@f210f67 Update the rewriteForIde for new cb package version (#7242)
PaperMC/Paper@3f7111d Fix EntityEquipment and related javadocs (#7380)
PaperMC/Paper@78e6431 Add default kick msg component (#6886)
PaperMC/Paper@04e1b07 Check HAProxyMessage type is PROXY (#7864)
PaperMC/Paper@00c6ae8 Implement Translatable on CreativeCategory (#7587)
PaperMC/Paper@7602dd2 Sanitize Sent BlockEntity NBT (#7010)
PaperMC/Paper@2d17a50 Add translation keys to GameMode enum (#7081)
PaperMC/Paper@c5caee3 Prevent entity loading causing async lookups (#7553)
PaperMC/Paper@71fe3c6 Add numeric string completion suggestions as int suggestions (#6360)
PaperMC/Paper@b1ac25f Respect x-ray permission in World#refreshChunk (#7214)

Pufferfish Changes:
pufferfish-gg/Pufferfish@6186c1f Updated Upstream (Paper)
pufferfish-gg/Pufferfish@b235d83 Fix regression with SIMD vector sizes not matching 256-bits
pufferfish-gg/Pufferfish@27cb1ac Updated Upstream (Paper)
This commit is contained in:
Ben Kerllenevich
2022-06-02 10:10:09 -04:00
parent 61fc0a557f
commit 1ba98f8537
54 changed files with 275 additions and 270 deletions

View File

@@ -214,13 +214,17 @@ index 0000000000000000000000000000000000000000..10310fdd53de28efb8a8250f6d3b0c8e
+}
diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java
new file mode 100644
index 0000000000000000000000000000000000000000..66244a98901fff4479c50ce955502e2975f804c6
index 0000000000000000000000000000000000000000..93f5d7ca36e043e6c0f959450d38e6946b348eaf
--- /dev/null
+++ b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java
@@ -0,0 +1,30 @@
@@ -0,0 +1,40 @@
+package gg.pufferfish.pufferfish.simd;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import jdk.incubator.vector.FloatVector;
+import jdk.incubator.vector.IntVector;
+import jdk.incubator.vector.VectorSpecies;
+
+/**
+ * Basically, java is annoying and we have to push this out to its own class.
@@ -229,19 +233,25 @@ index 0000000000000000000000000000000000000000..66244a98901fff4479c50ce955502e29
+public class SIMDChecker {
+
+ @Deprecated
+ public static boolean canEnable() {
+ public static boolean canEnable(Logger logger) {
+ try {
+ if (SIMDDetection.getJavaVersion() != 17 && SIMDDetection.getJavaVersion() != 18) {
+ return false;
+ } else {
+ SIMDDetection.testRun = true;
+ IntVector oneVector = IntVector.broadcast(IntVector.SPECIES_256, 1);
+ IntVector twoVector = IntVector.broadcast(IntVector.SPECIES_256, 2);
+ IntVector result = oneVector.add(twoVector);
+ if (result.toArray()[0] == 3) {
+ // Vectorization works! Let's enable it!
+ return true;
+
+ VectorSpecies<Integer> ISPEC = IntVector.SPECIES_PREFERRED;
+ VectorSpecies<Float> FSPEC = FloatVector.SPECIES_PREFERRED;
+
+ logger.log(Level.INFO, "Max SIMD vector size on this system is " + ISPEC.vectorBitSize() + " bits (int)");
+ logger.log(Level.INFO, "Max SIMD vector size on this system is " + FSPEC.vectorBitSize() + " bits (float)");
+
+ if (ISPEC.elementSize() < 2 || FSPEC.elementSize() < 2) {
+ logger.log(Level.WARNING, "SIMD is not properly supported on this system!");
+ return false;
+ }
+
+ return true;
+ }
+ } catch (NoClassDefFoundError | Exception ignored) {} // Basically, we don't do anything. This lets us detect if it's not functional and disable it.
+ return false;
@@ -250,12 +260,14 @@ index 0000000000000000000000000000000000000000..66244a98901fff4479c50ce955502e29
+}
diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDDetection.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDDetection.java
new file mode 100644
index 0000000000000000000000000000000000000000..d5ee3dfde2fed1f1bec49df22ba37ce725de4c2c
index 0000000000000000000000000000000000000000..a84889d3e9cfc4d7ab5f867820a6484c6070711b
--- /dev/null
+++ b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDDetection.java
@@ -0,0 +1,33 @@
@@ -0,0 +1,35 @@
+package gg.pufferfish.pufferfish.simd;
+
+import java.util.logging.Logger;
+
+@Deprecated
+public class SIMDDetection {
+
@@ -264,9 +276,9 @@ index 0000000000000000000000000000000000000000..d5ee3dfde2fed1f1bec49df22ba37ce7
+ public static boolean testRun = false;
+
+ @Deprecated
+ public static boolean canEnable() {
+ public static boolean canEnable(Logger logger) {
+ try {
+ return SIMDChecker.canEnable();
+ return SIMDChecker.canEnable(logger);
+ } catch (NoClassDefFoundError | Exception ignored) {
+ return false;
+ }
@@ -289,24 +301,28 @@ index 0000000000000000000000000000000000000000..d5ee3dfde2fed1f1bec49df22ba37ce7
+}
diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/VectorMapPalette.java b/src/main/java/gg/pufferfish/pufferfish/simd/VectorMapPalette.java
new file mode 100644
index 0000000000000000000000000000000000000000..2341b564b6383d5eca5fafe80273e046bfea070e
index 0000000000000000000000000000000000000000..ae2464920c9412ac90b819a540ee58be0741465f
--- /dev/null
+++ b/src/main/java/gg/pufferfish/pufferfish/simd/VectorMapPalette.java
@@ -0,0 +1,79 @@
@@ -0,0 +1,83 @@
+package gg.pufferfish.pufferfish.simd;
+
+import java.awt.Color;
+import jdk.incubator.vector.FloatVector;
+import jdk.incubator.vector.IntVector;
+import jdk.incubator.vector.VectorMask;
+import jdk.incubator.vector.VectorSpecies;
+import org.bukkit.map.MapPalette;
+
+@Deprecated
+public class VectorMapPalette {
+
+ private static final VectorSpecies<Integer> I_SPEC = IntVector.SPECIES_PREFERRED;
+ private static final VectorSpecies<Float> F_SPEC = FloatVector.SPECIES_PREFERRED;
+
+ @Deprecated
+ public static void matchColorVectorized(int[] in, byte[] out) {
+ int speciesLength = IntVector.SPECIES_256.length();
+ int speciesLength = I_SPEC.length();
+ int i;
+ for (i = 0; i < in.length - speciesLength; i += speciesLength) {
+ float[] redsArr = new float[speciesLength];
@@ -321,22 +337,22 @@ index 0000000000000000000000000000000000000000..2341b564b6383d5eca5fafe80273e046
+ bluesArr[j] = (in[i + j] >> 0) & 0xFF;
+ }
+
+ IntVector alphas = IntVector.fromArray(IntVector.SPECIES_256, alphasArr, 0);
+ FloatVector reds = FloatVector.fromArray(FloatVector.SPECIES_256, redsArr, 0);
+ FloatVector greens = FloatVector.fromArray(FloatVector.SPECIES_256, greensArr, 0);
+ FloatVector blues = FloatVector.fromArray(FloatVector.SPECIES_256, bluesArr, 0);
+ IntVector resultIndex = IntVector.zero(IntVector.SPECIES_256);
+ VectorMask<Integer> modificationMask = VectorMask.fromLong(IntVector.SPECIES_256, 0b11111111);
+ IntVector alphas = IntVector.fromArray(I_SPEC, alphasArr, 0);
+ FloatVector reds = FloatVector.fromArray(F_SPEC, redsArr, 0);
+ FloatVector greens = FloatVector.fromArray(F_SPEC, greensArr, 0);
+ FloatVector blues = FloatVector.fromArray(F_SPEC, bluesArr, 0);
+ IntVector resultIndex = IntVector.zero(I_SPEC);
+ VectorMask<Integer> modificationMask = VectorMask.fromLong(I_SPEC, 0xffffffff);
+
+ modificationMask = modificationMask.and(alphas.lt(128).not());
+ FloatVector bestDistances = FloatVector.broadcast(FloatVector.SPECIES_256, Float.MAX_VALUE);
+ FloatVector bestDistances = FloatVector.broadcast(F_SPEC, Float.MAX_VALUE);
+
+ for (int c = 4; c < MapPalette.colors.length; c++) {
+ // We're using 32-bit floats here because it's 2x faster and nobody will know the difference.
+ // For correctness, the original algorithm uses 64-bit floats instead. Completely unnecessary.
+ FloatVector compReds = FloatVector.broadcast(FloatVector.SPECIES_256, MapPalette.colors[c].getRed());
+ FloatVector compGreens = FloatVector.broadcast(FloatVector.SPECIES_256, MapPalette.colors[c].getGreen());
+ FloatVector compBlues = FloatVector.broadcast(FloatVector.SPECIES_256, MapPalette.colors[c].getBlue());
+ FloatVector compReds = FloatVector.broadcast(F_SPEC, MapPalette.colors[c].getRed());
+ FloatVector compGreens = FloatVector.broadcast(F_SPEC, MapPalette.colors[c].getGreen());
+ FloatVector compBlues = FloatVector.broadcast(F_SPEC, MapPalette.colors[c].getBlue());
+
+ FloatVector rMean = reds.add(compReds).div(2.0f);
+ FloatVector rDiff = reds.sub(compReds);
@@ -344,8 +360,8 @@ index 0000000000000000000000000000000000000000..2341b564b6383d5eca5fafe80273e046
+ FloatVector bDiff = blues.sub(compBlues);
+
+ FloatVector weightR = rMean.div(256.0f).add(2);
+ FloatVector weightG = FloatVector.broadcast(FloatVector.SPECIES_256, 4.0f);
+ FloatVector weightB = FloatVector.broadcast(FloatVector.SPECIES_256, 255.0f).sub(rMean).div(256.0f).add(2.0f);
+ FloatVector weightG = FloatVector.broadcast(F_SPEC, 4.0f);
+ FloatVector weightB = FloatVector.broadcast(F_SPEC, 255.0f).sub(rMean).div(256.0f).add(2.0f);
+
+ FloatVector distance = weightR.mul(rDiff).mul(rDiff).add(weightG.mul(gDiff).mul(gDiff)).add(weightB.mul(bDiff).mul(bDiff));
+
@@ -356,7 +372,7 @@ index 0000000000000000000000000000000000000000..2341b564b6383d5eca5fafe80273e046
+
+ // Update the result array
+ // We also AND with the modification mask because we don't want to interfere if the alpha value isn't large enough.
+ resultIndex = resultIndex.blend(c, bestDistanceMask.cast(IntVector.SPECIES_256).and(modificationMask)); // Update the results
+ resultIndex = resultIndex.blend(c, bestDistanceMask.cast(I_SPEC).and(modificationMask)); // Update the results
+ }
+
+ for (int j = 0; j < speciesLength; j++) {

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 e65dc831974ca501f69d2cc43858b838e8866676..65424451fb7fd05d37beb70cb7023b0a5f27dc8b 100644
index 6cd0b10d1dc4506cfb1e4db5e1260cb705566cec..81d8afa7b7ac9b65e3ea2a5e69e7ec5dc7b812b7 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2693,4 +2693,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2698,4 +2698,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override
Spigot spigot();
// Spigot end

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 65424451fb7fd05d37beb70cb7023b0a5f27dc8b..24eb17f307c8c6523cd804e8b330c7ae7dfc6404 100644
index 81d8afa7b7ac9b65e3ea2a5e69e7ec5dc7b812b7..a569decc40fff08d0675ffa4ee9e6f54f115ad97 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2701,5 +2701,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2706,5 +2706,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 24eb17f307c8c6523cd804e8b330c7ae7dfc6404..7913e9440a1068374a7129dac7cc2a6bc4fb2527 100644
index a569decc40fff08d0675ffa4ee9e6f54f115ad97..4f1213d5c5efb2c415eb22b927936eb932ed3a4a 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2720,5 +2720,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2725,5 +2725,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Reset the idle timer back to 0
*/
void resetIdleTimer();

View File

@@ -170,7 +170,7 @@ index c8d37184d8e882a4084a1bfef85faa330588600b..46bae5c13ce2b973b114682f6a338981
/**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 7913e9440a1068374a7129dac7cc2a6bc4fb2527..bb2ffe33a285f2e453ffe195cc7217a047ae9c7a 100644
index 4f1213d5c5efb2c415eb22b927936eb932ed3a4a..935220b5fa5015def0c9c2f4b7772a72220d3c34 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -73,7 +73,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -263,7 +263,7 @@ index 7913e9440a1068374a7129dac7cc2a6bc4fb2527..bb2ffe33a285f2e453ffe195cc7217a0
public void kickPlayer(@Nullable String message);
// Paper start
@@ -713,7 +713,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -718,7 +718,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
* @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List)}
*/
@@ -272,7 +272,7 @@ index 7913e9440a1068374a7129dac7cc2a6bc4fb2527..bb2ffe33a285f2e453ffe195cc7217a0
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException;
/**
@@ -734,7 +734,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -739,7 +739,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
* @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List, org.bukkit.DyeColor)}
*/
@@ -281,7 +281,7 @@ index 7913e9440a1068374a7129dac7cc2a6bc4fb2527..bb2ffe33a285f2e453ffe195cc7217a0
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException;
/**
@@ -2233,7 +2233,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2238,7 +2238,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @deprecated in favour of {@link #locale()}
*/
@NotNull
@@ -304,7 +304,7 @@ index 6a6021ad3a0e6aaf51f5144fa126e81bada9cfcf..1c5d268103cb6bd225c31f1ea1a49a52
}
diff --git a/src/main/java/org/bukkit/event/block/SignChangeEvent.java b/src/main/java/org/bukkit/event/block/SignChangeEvent.java
index 1f79f704abf339150df08900b8ea7da4cefef258..004106913655446774f875015cb79863d21263c8 100644
index 1268066e30ddb0cd3792ea4b3de894eb04196669..53c71489cfc10e8d4a334829639500978e7b825a 100644
--- a/src/main/java/org/bukkit/event/block/SignChangeEvent.java
+++ b/src/main/java/org/bukkit/event/block/SignChangeEvent.java
@@ -90,7 +90,7 @@ public class SignChangeEvent extends BlockEvent implements Cancellable {
@@ -314,7 +314,7 @@ index 1f79f704abf339150df08900b8ea7da4cefef258..004106913655446774f875015cb79863
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String[] getLines() {
return adventure$lines.stream().map(org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer()::serialize).toArray(String[]::new); // Paper
return adventure$lines.stream().map(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection()::serialize).toArray(String[]::new); // Paper
}
@@ -106,7 +106,7 @@ public class SignChangeEvent extends BlockEvent implements Cancellable {
* @deprecated in favour of {@link #line(int)}
@@ -323,7 +323,7 @@ index 1f79f704abf339150df08900b8ea7da4cefef258..004106913655446774f875015cb79863
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getLine(int index) throws IndexOutOfBoundsException {
return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.adventure$lines.get(index)); // Paper
return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.adventure$lines.get(index)); // Paper
}
@@ -120,7 +120,7 @@ public class SignChangeEvent extends BlockEvent implements Cancellable {
* or < 0}
@@ -332,10 +332,10 @@ index 1f79f704abf339150df08900b8ea7da4cefef258..004106913655446774f875015cb79863
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setLine(int index, @Nullable String line) throws IndexOutOfBoundsException {
adventure$lines.set(index, line != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(line) : null); // Paper
adventure$lines.set(index, line != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(line) : null); // Paper
}
diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
index 8175e5329f7fb6da4c7faf695162b51492114dc3..839fea07e3b3fe486cd8f7f8fa5d2593ed54594e 100644
index 9d95218b49895ab76b00fe9524d9b25ea9f9b8c2..d198fe1fbeeb6c769431f5a487097f09b3c0a2f6 100644
--- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
+++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
@@ -162,7 +162,7 @@ public class PlayerDeathEvent extends EntityDeathEvent {
@@ -346,7 +346,7 @@ index 8175e5329f7fb6da4c7faf695162b51492114dc3..839fea07e3b3fe486cd8f7f8fa5d2593
+ @Deprecated // Paper // Purpur - conflict on change
public void setDeathMessage(@Nullable String deathMessage) {
this.deathMessage = deathMessage;
this.adventure$deathMessage = deathMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(deathMessage) : net.kyori.adventure.text.Component.empty(); // Paper
this.adventure$deathMessage = deathMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(deathMessage) : net.kyori.adventure.text.Component.empty(); // Paper
@@ -175,7 +175,7 @@ public class PlayerDeathEvent extends EntityDeathEvent {
* @deprecated in favour of {@link #deathMessage()}
*/
@@ -370,7 +370,7 @@ index a31841b93964338c9325631dbfa59b3cad77b4f1..7d4a0375543a22a1e31d0506dcc72b1f
return title;
}
diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
index 356d1154b0732e2daf242d60fa715dba9f2dc9db..032e76676890ccbe2e99117690487d02925f44c9 100644
index 635b8787fc235b61c0d5677def034656e4ec4cef..21c68f84e111fe834dbb452b3f40a0de0790f8df 100644
--- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
+++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
@@ -188,7 +188,7 @@ public class AsyncPlayerPreLoginEvent extends Event {
@@ -380,7 +380,7 @@ index 356d1154b0732e2daf242d60fa715dba9f2dc9db..032e76676890ccbe2e99117690487d02
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getKickMessage() {
return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.message); // Paper
return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.message); // Paper
}
@@ -199,7 +199,7 @@ public class AsyncPlayerPreLoginEvent extends Event {
* @param message New kick message
@@ -389,7 +389,7 @@ index 356d1154b0732e2daf242d60fa715dba9f2dc9db..032e76676890ccbe2e99117690487d02
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setKickMessage(@NotNull final String message) {
this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
this.message = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(message); // Paper
}
@@ -219,7 +219,7 @@ public class AsyncPlayerPreLoginEvent extends Event {
* @param message Kick message to display to the user
@@ -399,9 +399,9 @@ index 356d1154b0732e2daf242d60fa715dba9f2dc9db..032e76676890ccbe2e99117690487d02
+ @Deprecated // Paper // Purpur - conflict on change
public void disallow(@NotNull final Result result, @NotNull final String message) {
this.result = result;
this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
this.message = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(message); // Paper
diff --git a/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java b/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java
index 851a189d42e271679abc78f95049d8badf7a2b64..7057c2e95267ad32190c5666f20a0566f7fe32fa 100644
index 4af1d064fcb57773dfa8f6ad40d6482973f8e1a8..c9fe267660f9ec04f78b30182df28180d02f96a2 100644
--- a/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java
@@ -17,7 +17,7 @@ public class PlayerJoinEvent extends PlayerEvent {
@@ -412,7 +412,7 @@ index 851a189d42e271679abc78f95049d8badf7a2b64..7057c2e95267ad32190c5666f20a0566
+ @Deprecated // Paper end // Purpur - conflict on change
public PlayerJoinEvent(@NotNull final Player playerJoined, @Nullable final String joinMessage) {
super(playerJoined);
this.joinMessage = joinMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(joinMessage) : null; // Paper end
this.joinMessage = joinMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(joinMessage) : null; // Paper end
@@ -50,7 +50,7 @@ public class PlayerJoinEvent extends PlayerEvent {
* @deprecated in favour of {@link #joinMessage()}
*/
@@ -420,7 +420,7 @@ index 851a189d42e271679abc78f95049d8badf7a2b64..7057c2e95267ad32190c5666f20a0566
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getJoinMessage() {
return this.joinMessage == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.joinMessage); // Paper
return this.joinMessage == null ? null : net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.joinMessage); // Paper
}
@@ -61,7 +61,7 @@ public class PlayerJoinEvent extends PlayerEvent {
* @param joinMessage join message. If null, no message will be sent
@@ -429,10 +429,10 @@ index 851a189d42e271679abc78f95049d8badf7a2b64..7057c2e95267ad32190c5666f20a0566
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setJoinMessage(@Nullable String joinMessage) {
this.joinMessage = joinMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(joinMessage) : null; // Paper
this.joinMessage = joinMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(joinMessage) : null; // Paper
}
diff --git a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
index 05ecfd8c133e72d198faeeded8c757c231c871cc..e57020767879b51f212d7a3e563a386adb390c5b 100644
index 45235379b7b54f1ca36dff3bf02c496cef2f3254..3f9df5dd40accc4cf8043348b03fb661a8bc0fe7 100644
--- a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
@@ -85,7 +85,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
@@ -442,7 +442,7 @@ index 05ecfd8c133e72d198faeeded8c757c231c871cc..e57020767879b51f212d7a3e563a386a
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getReason() {
return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.kickReason); // Paper
return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.kickReason); // Paper
}
@@ -97,7 +97,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
* @deprecated in favour of {@link #leaveMessage()}
@@ -451,7 +451,7 @@ index 05ecfd8c133e72d198faeeded8c757c231c871cc..e57020767879b51f212d7a3e563a386a
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getLeaveMessage() {
return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.leaveMessage); // Paper
return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.leaveMessage); // Paper
}
@@ -118,7 +118,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
* @param kickReason kick reason
@@ -460,7 +460,7 @@ index 05ecfd8c133e72d198faeeded8c757c231c871cc..e57020767879b51f212d7a3e563a386a
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setReason(@NotNull String kickReason) {
this.kickReason = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(kickReason); // Paper
this.kickReason = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(kickReason); // Paper
}
@@ -129,7 +129,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
* @param leaveMessage leave message
@@ -469,7 +469,7 @@ index 05ecfd8c133e72d198faeeded8c757c231c871cc..e57020767879b51f212d7a3e563a386a
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setLeaveMessage(@NotNull String leaveMessage) {
this.leaveMessage = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(leaveMessage); // Paper
this.leaveMessage = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(leaveMessage); // Paper
}
diff --git a/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java b/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java
index ebd499c1a2d11ea068e8c374edbc3967e4cece3d..61895d8d9f01f7ad0409a1cbd902e8a21472d6d4 100644
@@ -485,7 +485,7 @@ index ebd499c1a2d11ea068e8c374edbc3967e4cece3d..61895d8d9f01f7ad0409a1cbd902e8a2
return locale;
}
diff --git a/src/main/java/org/bukkit/event/player/PlayerLoginEvent.java b/src/main/java/org/bukkit/event/player/PlayerLoginEvent.java
index 75cc54739ef841cd90568d74927d6002d4cfa7e0..712900c9afc3b79806d2b564c0734facf969a6fe 100644
index 95c53d934f928d25f7b20cfbf2e5faa3df31ddc4..69f07fdb96ea34bb46181dd86b8b5c94dd040808 100644
--- a/src/main/java/org/bukkit/event/player/PlayerLoginEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerLoginEvent.java
@@ -139,7 +139,7 @@ public class PlayerLoginEvent extends PlayerEvent {
@@ -495,7 +495,7 @@ index 75cc54739ef841cd90568d74927d6002d4cfa7e0..712900c9afc3b79806d2b564c0734fac
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getKickMessage() {
return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.message); // Paper
return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.message); // Paper
}
@@ -150,7 +150,7 @@ public class PlayerLoginEvent extends PlayerEvent {
* @param message New kick message
@@ -504,7 +504,7 @@ index 75cc54739ef841cd90568d74927d6002d4cfa7e0..712900c9afc3b79806d2b564c0734fac
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setKickMessage(@NotNull final String message) {
this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
this.message = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(message); // Paper
}
@@ -181,7 +181,7 @@ public class PlayerLoginEvent extends PlayerEvent {
* @param message Kick message to display to the user
@@ -514,9 +514,9 @@ index 75cc54739ef841cd90568d74927d6002d4cfa7e0..712900c9afc3b79806d2b564c0734fac
+ @Deprecated // Paper start // Purpur - conflict on change
public void disallow(@NotNull final Result result, @NotNull final String message) {
this.result = result;
this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message);
this.message = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(message);
diff --git a/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java
index 123979ed64939d615b061f91c19c630e1e1db8c7..5b85579964dc6a6150f0c0be650a4bf731414838 100644
index 6800132c6288b4588fd02b08d26f016c38f27129..f3b9ec7e0900c27f2b3fba6d95e9d870919b861a 100644
--- a/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java
@@ -95,7 +95,7 @@ public class PlayerPreLoginEvent extends Event {
@@ -527,7 +527,7 @@ index 123979ed64939d615b061f91c19c630e1e1db8c7..5b85579964dc6a6150f0c0be650a4bf7
+ @Deprecated // Paper // Purpur - conflict on change
@NotNull
public String getKickMessage() {
return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.message); // Paper
return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.message); // Paper
@@ -107,7 +107,7 @@ public class PlayerPreLoginEvent extends Event {
* @param message New kick message
* @deprecated in favour of {@link #kickMessage(net.kyori.adventure.text.Component)}
@@ -535,7 +535,7 @@ index 123979ed64939d615b061f91c19c630e1e1db8c7..5b85579964dc6a6150f0c0be650a4bf7
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setKickMessage(@NotNull final String message) {
this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
this.message = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(message); // Paper
}
@@ -127,7 +127,7 @@ public class PlayerPreLoginEvent extends Event {
* @param message Kick message to display to the user
@@ -545,9 +545,9 @@ index 123979ed64939d615b061f91c19c630e1e1db8c7..5b85579964dc6a6150f0c0be650a4bf7
+ @Deprecated // Paper // Purpur - conflict on change
public void disallow(@NotNull final Result result, @NotNull final String message) {
this.result = result;
this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
this.message = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(message); // Paper
diff --git a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java
index b6016aa1e91863efc252eecab69ade6f54c89f27..c405d4fd32b329add1526f6502b2e87e4e6429ad 100644
index 6e9205024ca9d3000a371bd0eb723dcd6c662bce..567630247c93404f312f8b4470185314d4d82d1a 100644
--- a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java
@@ -61,7 +61,7 @@ public class PlayerQuitEvent extends PlayerEvent {
@@ -557,7 +557,7 @@ index b6016aa1e91863efc252eecab69ade6f54c89f27..c405d4fd32b329add1526f6502b2e87e
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getQuitMessage() {
return this.quitMessage == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.quitMessage); // Paper
return this.quitMessage == null ? null : net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.quitMessage); // Paper
}
@@ -72,7 +72,7 @@ public class PlayerQuitEvent extends PlayerEvent {
* @param quitMessage quit message
@@ -566,10 +566,10 @@ index b6016aa1e91863efc252eecab69ade6f54c89f27..c405d4fd32b329add1526f6502b2e87e
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setQuitMessage(@Nullable String quitMessage) {
this.quitMessage = quitMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(quitMessage) : null; // Paper
this.quitMessage = quitMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(quitMessage) : null; // Paper
}
diff --git a/src/main/java/org/bukkit/event/server/BroadcastMessageEvent.java b/src/main/java/org/bukkit/event/server/BroadcastMessageEvent.java
index 4f8c85222c7bd33217c7db0ff5f47bf397f8f3e5..c18d6d979bd22814ebdc52b995d2cc7ed46dd87f 100644
index 943d324435350d3f16fad3e21cb472a01a3ff60b..9f66a44977ab3248ce41733e424b5b71006db8b9 100644
--- a/src/main/java/org/bukkit/event/server/BroadcastMessageEvent.java
+++ b/src/main/java/org/bukkit/event/server/BroadcastMessageEvent.java
@@ -73,7 +73,7 @@ public class BroadcastMessageEvent extends ServerEvent implements Cancellable {
@@ -579,7 +579,7 @@ index 4f8c85222c7bd33217c7db0ff5f47bf397f8f3e5..c18d6d979bd22814ebdc52b995d2cc7e
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getMessage() {
return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.message); // Paper
return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.message); // Paper
}
@@ -84,7 +84,7 @@ public class BroadcastMessageEvent extends ServerEvent implements Cancellable {
* @param message New message to broadcast
@@ -588,10 +588,10 @@ index 4f8c85222c7bd33217c7db0ff5f47bf397f8f3e5..c18d6d979bd22814ebdc52b995d2cc7e
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setMessage(@NotNull String message) {
this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
this.message = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(message); // Paper
}
diff --git a/src/main/java/org/bukkit/event/server/ServerListPingEvent.java b/src/main/java/org/bukkit/event/server/ServerListPingEvent.java
index fd4db14bef92b893ddaf5424e14ee71da22dcf84..dd7d8d8f2f848bdc1c224805afe0b03fb80fe5cd 100644
index 172697ac5dc0ea3551a61b5589416ac68f372cd1..fffe2ab5a9f282b60d5d7ae316c063d8945a65c0 100644
--- a/src/main/java/org/bukkit/event/server/ServerListPingEvent.java
+++ b/src/main/java/org/bukkit/event/server/ServerListPingEvent.java
@@ -113,7 +113,7 @@ public class ServerListPingEvent extends ServerEvent implements Iterable<Player>
@@ -601,7 +601,7 @@ index fd4db14bef92b893ddaf5424e14ee71da22dcf84..dd7d8d8f2f848bdc1c224805afe0b03f
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getMotd() {
return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.motd); // Paper
return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.motd); // Paper
}
@@ -124,7 +124,7 @@ public class ServerListPingEvent extends ServerEvent implements Iterable<Player>
* @param motd the message of the day
@@ -610,10 +610,10 @@ index fd4db14bef92b893ddaf5424e14ee71da22dcf84..dd7d8d8f2f848bdc1c224805afe0b03f
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setMotd(@NotNull String motd) {
this.motd = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(motd); // Paper
this.motd = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(motd); // Paper
}
diff --git a/src/main/java/org/bukkit/inventory/InventoryView.java b/src/main/java/org/bukkit/inventory/InventoryView.java
index b06995aa57aa9cba0bb59f1d26d81015619a08e6..5e33fe46ab9bb034acc6a38a3c00c33c8f029ca6 100644
index 2448e70d75ae7a678c6befac4506c103edb78875..b645af3ec4e90789014c2399fb00124665a86cfa 100644
--- a/src/main/java/org/bukkit/inventory/InventoryView.java
+++ b/src/main/java/org/bukkit/inventory/InventoryView.java
@@ -464,7 +464,7 @@ public abstract class InventoryView {
@@ -724,7 +724,7 @@ index 67c9347c09c8fe8932ad95762aa5f6c527550cdc..3b23fe19ed92291182a1dab083214048
/**
diff --git a/src/main/java/org/bukkit/map/MapCursor.java b/src/main/java/org/bukkit/map/MapCursor.java
index ed0bc2024a0bb85837e25f75ae89d1fe257b2e60..f6e831f844e1fe99a2617bd64c2290d1f2e96d81 100644
index ca763b231749f108b6773040a5c6109378b21b31..6db6fc85bd4c8bb94f6afd6f42a8ba447c25ea4b 100644
--- a/src/main/java/org/bukkit/map/MapCursor.java
+++ b/src/main/java/org/bukkit/map/MapCursor.java
@@ -259,7 +259,7 @@ public final class MapCursor {
@@ -734,7 +734,7 @@ index ed0bc2024a0bb85837e25f75ae89d1fe257b2e60..f6e831f844e1fe99a2617bd64c2290d1
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public String getCaption() {
return this.caption == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.caption); // Paper
return this.caption == null ? null : net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.caption); // Paper
}
@@ -270,7 +270,7 @@ public final class MapCursor {
* @param caption new caption
@@ -743,7 +743,7 @@ index ed0bc2024a0bb85837e25f75ae89d1fe257b2e60..f6e831f844e1fe99a2617bd64c2290d1
- @Deprecated // Paper
+ @Deprecated // Paper // Purpur - conflict on change
public void setCaption(@Nullable String caption) {
this.caption = caption == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(caption); // Paper
this.caption = caption == null ? null : net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(caption); // Paper
}
diff --git a/src/main/java/org/bukkit/scoreboard/Objective.java b/src/main/java/org/bukkit/scoreboard/Objective.java
index b93b1b0428d11589605c8edf5c053369e1031076..140ac3ebdb0aab58093429faf67a31f7e527e625 100644

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Flying Fall Damage API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index bb2ffe33a285f2e453ffe195cc7217a047ae9c7a..094b3622db6d5744eb6831f070eaff603be30d8d 100644
index 935220b5fa5015def0c9c2f4b7772a72220d3c34..9e06d2cff73d3eed08b7e7855cd30fdad77891c3 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2741,5 +2741,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2746,5 +2746,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param invulnerableTicks Invulnerable ticks remaining
*/
void setSpawnInvulnerableTicks(int invulnerableTicks);

View File

@@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/build.gradle.kts b/build.gradle.kts
index dd8f449dddbe0838835ae8f8d5033aa422db403d..9521971e9e597834e785b36d1657064dc1621b9b 100644
index 0282e3b75470e1a68ea1fc228082483514ba432e..b04e9ab317fbce9c090b61076eb07c40f069dc59 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,8 +9,12 @@ plugins {
@@ -38,7 +38,7 @@ index dd8f449dddbe0838835ae8f8d5033aa422db403d..9521971e9e597834e785b36d1657064d
// Paper start
implementation("org.jline:jline-terminal-jansi:3.21.0")
implementation("net.minecrell:terminalconsoleappender:1.3.0")
@@ -42,11 +46,26 @@ dependencies {
@@ -42,12 +46,28 @@ dependencies {
}
// Paper end
@@ -55,6 +55,8 @@ index dd8f449dddbe0838835ae8f8d5033aa422db403d..9521971e9e597834e785b36d1657064d
testImplementation("org.hamcrest:hamcrest-library:1.3")
}
val craftbukkitPackageVersion = "1_18_R2" // Paper
+
+// Pufferfish Start
+tasks.withType<JavaCompile> {
+ val compilerArgs = options.compilerArgs
@@ -65,7 +67,7 @@ index dd8f449dddbe0838835ae8f8d5033aa422db403d..9521971e9e597834e785b36d1657064d
tasks.jar {
archiveClassifier.set("dev")
@@ -59,7 +78,7 @@ tasks.jar {
@@ -60,7 +80,7 @@ tasks.jar {
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
@@ -111,7 +113,7 @@ index 218f5bafeed8551b55b91c7fccaf6935c8b631ca..f2fe6ea3719ff8b2913b7a3a939d7a5b
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>();
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 1ac6cf51f2682d5eb14fe19646e79f6617d492dd..5ffc636329029ae070e7a79ab9c822c17c0c5fa6 100644
index fafbebbb5e8c1a381b673f97f1fa210687b52823..560e83f1e70cc2712e9c08ffd5e2cab8a6de687b 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -241,6 +241,15 @@ public class PaperConfig {
@@ -629,7 +631,7 @@ index 0000000000000000000000000000000000000000..020368da69b9a492155f6de6297f7473
+}
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..a820bfe38cb5765ee74c4fd7084d949477f83692
index 0000000000000000000000000000000000000000..56a5a31b41d00ba73259a7eda5c57d08570d3e6e
--- /dev/null
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
@@ -0,0 +1,293 @@
@@ -725,7 +727,7 @@ index 0000000000000000000000000000000000000000..a820bfe38cb5765ee74c4fd7084d9494
+
+ // Attempt to detect vectorization
+ try {
+ SIMDDetection.isEnabled = SIMDDetection.canEnable();
+ SIMDDetection.isEnabled = SIMDDetection.canEnable(PufferfishLogger.LOGGER);
+ SIMDDetection.versionLimited = SIMDDetection.getJavaVersion() != 17 && SIMDDetection.getJavaVersion() != 18;
+ } catch (NoClassDefFoundError | Exception ignored) {}
+
@@ -2427,10 +2429,10 @@ index 98209532ad3e692d7e459640123f78bbd9a65889..93c1f9e3e9d62cc993fedb93fe43cbee
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 1a1f3664554ae1f2b0110f615e79fa0568407d17..f115aabaf67976a503a76f5213dd52b7b7dfab4e 100644
index 901fa17d0f0a3f66923f68f13f183bc4c17f7748..676f2cd4b152984aa76903fcf4377c745775bfc8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1116,6 +1116,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1117,6 +1117,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@Override
public void handleEditBook(ServerboundEditBookPacket packet) {
@@ -2551,7 +2553,7 @@ index 7437f01ca8f416e2c9150250e324af4725a4efb6..7ac51dbfce18a2bc52faa7a915abeccc
int LARGE_MAX_STACK_SIZE = 64;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 86a2eddf344503cbe75a5243a114f6fe1578185f..3f032a510e741d52c4c7fc701df65c77c30362ed 100644
index dfd1f37757af1bd808cc2e2d8bf97123adf638bb..971e743cc99400681439de89252a29ee9de46188 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -230,7 +230,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2623,7 +2625,7 @@ index 86a2eddf344503cbe75a5243a114f6fe1578185f..3f032a510e741d52c4c7fc701df65c77
return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
}
@@ -3886,16 +3913,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3887,16 +3914,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
@@ -2649,7 +2651,7 @@ index 86a2eddf344503cbe75a5243a114f6fe1578185f..3f032a510e741d52c4c7fc701df65c77
double d1 = 0.0D;
boolean flag = this.isPushedByFluid();
boolean flag1 = false;
@@ -3903,14 +3932,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3904,14 +3933,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
int k1 = 0;
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
@@ -2717,7 +2719,7 @@ index 86a2eddf344503cbe75a5243a114f6fe1578185f..3f032a510e741d52c4c7fc701df65c77
if (d2 >= axisalignedbb.minY) {
flag1 = true;
@@ -3932,9 +4008,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3933,9 +4009,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// CraftBukkit end
}
}
@@ -2888,10 +2890,10 @@ index c770ee21b7b699522941f6a1584d532001c04082..9bce290eb0c2cfef4896a3f2076c80bf
public boolean hasAttribute(Attribute attribute) {
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
index afbb2acd27416c801af3d718850b82a170734cd3..aa6ea8a81421ff0046bd926dedcda50f9ee02d60 100644
index 63c997ba5e7194218e844480419c6b59a4d26e9a..6492ed0cca1158d06d8a50ca9d1fca5288d8310b 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
@@ -68,6 +68,7 @@ public class AcquirePoi extends Behavior<PathfinderMob> {
@@ -67,6 +67,7 @@ public class AcquirePoi extends Behavior<PathfinderMob> {
@Override
protected void start(ServerLevel world, PathfinderMob entity, long time) {
this.nextScheduledStart = time + 20L + (long)world.getRandom().nextInt(20);
@@ -2917,10 +2919,10 @@ index 42d466f7f162943886078eba3db18f2dfc2d7bee..6c0dda1ce018ec6bb2ebb97147045fff
}
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
index c77fad612ba99663af2ec4418e3c2d68752dc2c8..8229001df0a901d9016fb16e4ddc81b5a0f51452 100644
index a910189177da0c1134c954b3d81b9e9bc4bc1420..0cc0d719e95e108263683b7a40f4ce3a8ca9465b 100644
--- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
@@ -51,9 +51,12 @@ public class GoalSelector {
@@ -50,9 +50,12 @@ public class GoalSelector {
}
// Paper start
@@ -3033,7 +3035,7 @@ index 78f1082b0a3bad923c1e142d15bc7dad2ae5ff15..042e852cd440e62003b5e72d92728e2d
this.level.getProfiler().pop();
this.level.getProfiler().push("goatActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index 9ca37cbf829ff4240ae79fc283bcf9e7f2c728d2..820ddcbc1547e2b9da3475a13d039e0cd8bc2c2a 100644
index 336d753bbd836e2a08207c5e3d41acbe2b72543f..dae989bf664b9ab29d13825d5fce32e19852259e 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -243,10 +243,16 @@ public class ItemEntity extends Entity {
@@ -3890,10 +3892,10 @@ index b11ad90c0956ac1b8ee069fa3f4553a2b4ce88e9..d69fe40d3af983144999963ec25b3250
});
diff --git a/src/main/java/net/minecraft/world/level/entity/EntityTickList.java b/src/main/java/net/minecraft/world/level/entity/EntityTickList.java
index 4814e719e0b898464692075170889fdb2729a26a..ffcd18fa852af3f24bdf5398f481b839d2dcfe6c 100644
index 4cdfc433df67afcd455422e9baf56f167dd712ae..57fcf3910f45ce371ac2e237b277b1034caaac4e 100644
--- a/src/main/java/net/minecraft/world/level/entity/EntityTickList.java
+++ b/src/main/java/net/minecraft/world/level/entity/EntityTickList.java
@@ -9,7 +9,7 @@ import javax.annotation.Nullable;
@@ -8,7 +8,7 @@ import javax.annotation.Nullable;
import net.minecraft.world.entity.Entity;
public class EntityTickList {
@@ -4121,7 +4123,7 @@ index b1992ed5136cc7dcf04219868b94b3c37ae36b4b..5b5339cba819368f4d6b7eaf404fa59b
@Nullable
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 15278bb897e6169bc5d02bf47b455634baec7be1..f4a82b1f2dc26f938d3dcb23ec32f135a1bfd163 100644
index ab843069ac0653d03cf3f925f49555016cad84fa..ce1ca033b351785fb67304b8933990d7f2f22d29 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -249,7 +249,7 @@ import javax.annotation.Nullable; // Paper
@@ -4195,7 +4197,7 @@ index 909b2c98e7a9117d2f737245e4661792ffafb744..0d9e2b3728f9ab500bd5e44702718535
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 41e7ca100073052b99c82fa6a82f8168e0135499..7e06f263cf618b82f77101ef86d819d5dc37a24e 100644
index 88abd2d3a9626501b1800ee754b98c6c29c75fb9..f71af7ecad4b6b0328da8cf8c4e5a8e163866e19 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -430,7 +430,7 @@ public final class CraftMagicNumbers implements UnsafeValues {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts
index 9521971e9e597834e785b36d1657064dc1621b9b..655f4d84a9522b7af5f3fd234d8797758d0171b5 100644
index b04e9ab317fbce9c090b61076eb07c40f069dc59..50112767dff03bc3d9b3cc527e20f1b0d8df7155 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,7 +9,7 @@ plugins {
@@ -26,7 +26,7 @@ index 9521971e9e597834e785b36d1657064dc1621b9b..655f4d84a9522b7af5f3fd234d879775
// Pufferfish start
implementation("org.yaml:snakeyaml:1.30")
@@ -78,7 +80,7 @@ tasks.jar {
@@ -80,7 +82,7 @@ tasks.jar {
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
@@ -35,7 +35,7 @@ index 9521971e9e597834e785b36d1657064dc1621b9b..655f4d84a9522b7af5f3fd234d879775
"Implementation-Vendor" to date, // Paper
"Specification-Title" to "Bukkit",
"Specification-Version" to project.version,
@@ -166,7 +168,7 @@ fun TaskContainer.registerRunTask(
@@ -168,7 +170,7 @@ fun TaskContainer.registerRunTask(
name: String,
block: JavaExec.() -> Unit
): TaskProvider<JavaExec> = register<JavaExec>(name) {
@@ -221,7 +221,7 @@ index 303b70f0433ff49a3bee2a0d92c41f01aec38bee..5e9fc979daced5dad9977ab12ea019f4
private static final int DEFAULT_SIZE_THRESHOLD = 1024 * 8;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index f4a82b1f2dc26f938d3dcb23ec32f135a1bfd163..a2af4e9b32f9ebfb97255437a7028df8613d0d95 100644
index ce1ca033b351785fb67304b8933990d7f2f22d29..3dc9927eb159373fa2b66aecf9280e13b7542449 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -249,7 +249,7 @@ import javax.annotation.Nullable; // Paper
@@ -234,7 +234,7 @@ index f4a82b1f2dc26f938d3dcb23ec32f135a1bfd163..a2af4e9b32f9ebfb97255437a7028df8
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java b/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
index dbff1eda25b02b16ec123515338d470489f3b3c4..e8323ebe0fe877e880bacc5397404839a237052b 100644
index db77cdee224d14ec91e8d530dd65da51f3661a9c..4b9039dc6e9a1da3f65ccbb36e6e86b09341a8b3 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
@@ -21,7 +21,12 @@ public class CraftConsoleCommandSender extends ServerCommandSender implements Co
@@ -255,8 +255,8 @@ index dbff1eda25b02b16ec123515338d470489f3b3c4..e8323ebe0fe877e880bacc5397404839
// Paper start
@Override
public void sendMessage(final net.kyori.adventure.identity.Identity identity, final net.kyori.adventure.text.Component message, final net.kyori.adventure.audience.MessageType type) {
- this.sendRawMessage(io.papermc.paper.adventure.PaperAdventure.LEGACY_SECTION_UXRC.serialize(message));
+ this.sendMessage(io.papermc.paper.adventure.PaperAdventure.LEGACY_SECTION_UXRC.serialize(message)); // Purpur
- this.sendRawMessage(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(message));
+ this.sendMessage(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(message)); // Purpur
}
@Override
@@ -287,7 +287,7 @@ index cdefb2025eedea7e204d70d568adaf1c1ec4c03c..d1526ed7197b883e1d1f07baf285bf5e
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 7e06f263cf618b82f77101ef86d819d5dc37a24e..9d974b535c03ff06f7f01cdd17dc700e3a3f150e 100644
index f71af7ecad4b6b0328da8cf8c4e5a8e163866e19..f5a490814268949894581b6caeedb53d7588a621 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -430,7 +430,7 @@ public final class CraftMagicNumbers implements UnsafeValues {

View File

@@ -84,7 +84,7 @@ index db2c73390d846f6428546fe18b961147ac092ba2..a4a07a7cc9a33f01234e461aa3c19e1c
io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // load mappings for stacktrace deobf and etc.
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 8026e8ca528071bf80fecb5e96370d1d2ae799db..f16e21045f3a6b8c0446c72825b463ee4dc1c24a 100644
index b830c2199a22252116619520f407fd84eddb28f3..ba4a6579be392f26f2d89ec910918c4ccf2a2c91 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -164,6 +164,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -105,7 +105,7 @@ index 8026e8ca528071bf80fecb5e96370d1d2ae799db..f16e21045f3a6b8c0446c72825b463ee
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index a2af4e9b32f9ebfb97255437a7028df8613d0d95..283856f60d27dcd041b16f313c6119127f4aeea6 100644
index 3dc9927eb159373fa2b66aecf9280e13b7542449..5635a18abc2e179cc9b011ec36462d152c2b2c6c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -956,6 +956,7 @@ public final class CraftServer implements Server {
@@ -132,7 +132,7 @@ index a2af4e9b32f9ebfb97255437a7028df8613d0d95..283856f60d27dcd041b16f313c611912
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -2706,6 +2709,18 @@ public final class CraftServer implements Server {
@@ -2712,6 +2715,18 @@ public final class CraftServer implements Server {
return com.destroystokyo.paper.PaperConfig.config;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Purpur client support
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 2f5e40437d1865a874c352999edd084226d4e47b..2dcb24145bf07b186b853bd3e4c4be46495575d8 100644
index a6edf5117d4ae03d8294e7bb74dd2d77048895a5..46ddb309ee4296b9d3464e716b4b36ef8927261d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -253,6 +253,7 @@ public class ServerPlayer extends Player {
@@ -17,10 +17,10 @@ index 2f5e40437d1865a874c352999edd084226d4e47b..2dcb24145bf07b186b853bd3e4c4be46
public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index f115aabaf67976a503a76f5213dd52b7b7dfab4e..add383d9a2b460f48c2d822d4907bb5a12743611 100644
index 676f2cd4b152984aa76903fcf4377c745775bfc8..ee4b826cb5c680939b19c6ae2b5ae778a7cc4a55 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3185,6 +3185,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -3186,6 +3186,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
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 f115aabaf67976a503a76f5213dd52b7b7dfab4e..add383d9a2b460f48c2d822d4907bb5a
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
@@ -3209,6 +3210,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -3210,6 +3211,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
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 f115aabaf67976a503a76f5213dd52b7b7dfab4e..add383d9a2b460f48c2d822d4907bb5a
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 f12efe51b14ed3637a8ba45def9c94634a6f5e8f..86aaebbd2f9220b8f98417404650f9c836088f47 100644
index ce78e024244c14530270b8276e5b0fd853f0a110..9ea7691df5d19e4f7d65869af508e38280027467 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2791,4 +2791,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2797,4 +2797,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end

View File

@@ -36,7 +36,7 @@ index 46ddb309ee4296b9d3464e716b4b36ef8927261d..23ef3a12dcd184edeaad3f939d2a9cbf
public void displayClientMessage(Component message, boolean actionBar) {
this.sendMessage(message, actionBar ? ChatType.GAME_INFO : ChatType.CHAT, Util.NIL_UUID);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 95fe4240f3e1174ec36598f24d63f0073c13b376..563999906b3f8a79e9bd090cb13d946577a4781b 100644
index 624946f48f0811c94d05174f28d0b1fc6d5e6a00..9f5ff0455fe4217737169e442f4786cba951f253 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1384,6 +1384,62 @@ public abstract class PlayerList {
@@ -123,10 +123,10 @@ index a828cad27fcd39f8bfbaefa97052a2a3b6650ee7..67e559d63c543ff716d610cb04ff9426
return this.isFireSource;
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3f032a510e741d52c4c7fc701df65c77c30362ed..bc46286007e5a6dd691dd51ec43f99fe5c974db8 100644
index 971e743cc99400681439de89252a29ee9de46188..dc332cf2d035530c600b1213efe7f0f87b7b5808 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3676,6 +3676,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3677,6 +3677,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return SlotAccess.NULL;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Ridables
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
index 8c79f66abd42e9c9875e8877c6dd82b5e3cfa184..2841469748bc308f690aaeb34fe05cb25f36a33d 100644
index 2808acafaa0e3b448e75c40c04ba932ef9723da9..fda35ae6da0b4afbff90a9356ef63dd38c8a0d95 100644
--- a/src/main/java/net/minecraft/core/BlockPos.java
+++ b/src/main/java/net/minecraft/core/BlockPos.java
@@ -41,6 +41,12 @@ public class BlockPos extends Vec3i {
@@ -66,10 +66,10 @@ index 23ef3a12dcd184edeaad3f939d2a9cbffa7fd35e..923a0afad1b2b14941c94332b373a704
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 add383d9a2b460f48c2d822d4907bb5a12743611..5a8eabd6d7d3457f2b6602f2535747d7d2c54d52 100644
index ee4b826cb5c680939b19c6ae2b5ae778a7cc4a55..fe1bcca1af2bcb9e19a01ddd5cd5a8bb3789f7aa 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2475,6 +2475,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -2476,6 +2476,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -79,7 +79,7 @@ index add383d9a2b460f48c2d822d4907bb5a12743611..5a8eabd6d7d3457f2b6602f2535747d7
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)) {
ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((LivingEntity) entity));
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index bc46286007e5a6dd691dd51ec43f99fe5c974db8..b2f4428cb8af9fc2168e326acf046b6d68f2a597 100644
index dc332cf2d035530c600b1213efe7f0f87b7b5808..8c950832f4f0d8ae1d04a194da8f6950be63a87d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -300,7 +300,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -91,7 +91,7 @@ index bc46286007e5a6dd691dd51ec43f99fe5c974db8..b2f4428cb8af9fc2168e326acf046b6d
private float eyeHeight;
public boolean isInPowderSnow;
public boolean wasInPowderSnow;
@@ -2666,6 +2666,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2667,6 +2667,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.passengers = ImmutableList.copyOf(list);
}
@@ -104,7 +104,7 @@ index bc46286007e5a6dd691dd51ec43f99fe5c974db8..b2f4428cb8af9fc2168e326acf046b6d
}
return true; // CraftBukkit
}
@@ -2706,6 +2712,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2707,6 +2713,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return false;
}
// Spigot end
@@ -119,7 +119,7 @@ index bc46286007e5a6dd691dd51ec43f99fe5c974db8..b2f4428cb8af9fc2168e326acf046b6d
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of();
} else {
@@ -4434,4 +4448,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4435,4 +4449,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
}
// Paper end

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 38995873e2b4cf9e7ac83d074c817a0452948250..38c2e2b4e6577dd6db84b86147a6f0c5bd0b8879 100644
index 923a0afad1b2b14941c94332b373a704c32160a8..4f6aa9caaa471ecbeaff895508d3874577dbe5cd 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1974,8 +1974,58 @@ public class ServerPlayer extends Player {
@@ -68,7 +68,7 @@ index 38995873e2b4cf9e7ac83d074c817a0452948250..38c2e2b4e6577dd6db84b86147a6f0c5
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 a2c349175ddcbec725073d746f55fc7f3d83216f..1d61e34b1cc032089dbd715814553e59ebc8ce5c 100644
index fe1bcca1af2bcb9e19a01ddd5cd5a8bb3789f7aa..974a94086c06cceffff3be2e0fa702967ef11d56 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -292,6 +292,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -114,7 +114,7 @@ index a2c349175ddcbec725073d746f55fc7f3d83216f..1d61e34b1cc032089dbd715814553e59
// Skip the first time we do this
if (true) { // Spigot - don't skip any move events
Location oldTo = to.clone();
@@ -1448,7 +1470,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1449,7 +1471,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
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
@@ -123,7 +123,7 @@ index a2c349175ddcbec725073d746f55fc7f3d83216f..1d61e34b1cc032089dbd715814553e59
}
this.player.absMoveTo(d0, d1, d2, f, f1);
@@ -1498,6 +1520,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1499,6 +1521,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -200,10 +200,10 @@ index e13b2b88e427aba1c4e6a924f4c8474d60976eb1..0228eb3bd816c35fcf4607f0a140b1e6
public boolean processClick(InteractionHand hand) {
Entity vehicle = getRootVehicle();
diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java
index 1f4b72a0aca200b2e0860449c718e6e607d2fc47..e1dd8932594780b07db13f68efa117eb34b6563f 100644
index 3f458ddd4dc04ed28510a212be76bb19e7f6a61e..a36469186f72eccf8c4428d920d0583bf57b087e 100644
--- a/src/main/java/net/minecraft/world/level/EntityGetter.java
+++ b/src/main/java/net/minecraft/world/level/EntityGetter.java
@@ -157,7 +157,7 @@ public interface EntityGetter {
@@ -156,7 +156,7 @@ public interface EntityGetter {
default boolean hasNearbyAlivePlayer(double x, double y, double z, double range) {
for(Player player : this.players()) {
@@ -213,7 +213,7 @@ index 1f4b72a0aca200b2e0860449c718e6e607d2fc47..e1dd8932594780b07db13f68efa117eb
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 c0c2ac8bbeb4fc33fc62955de838cf67d9827022..e9c3768ef277fc88db4d5660e241ec7ef8e770c4 100644
index 9ea7691df5d19e4f7d65869af508e38280027467..796eb59a14ace2918e0fd88b43b56b275221d6fc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -445,10 +445,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -233,7 +233,7 @@ index c0c2ac8bbeb4fc33fc62955de838cf67d9827022..e9c3768ef277fc88db4d5660e241ec7e
for (ServerPlayer player : (List<ServerPlayer>) server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -2797,5 +2802,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2803,5 +2808,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean usesPurpurClient() {
return getHandle().purpurClient;
}
@@ -305,7 +305,7 @@ index c38d9583d8ce50670d78b60d92c90d1d5eb4bbfc..01a2d17790b3adbc63fe742b9e5c11dd
public boolean untamedTamablesAreRidable = true;
public boolean useNightVisionWhenRiding = false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 9bccf9ae5f7a38eb5792697700f6d17cd5969cbe..06467a5af27a9afeba383c4f9704f5106827af97 100644
index 8643df8d81714edf60eebd6984bac2c933d1fbd6..4e5583cdd78608108bb1788e6881d4b4fbf014af 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -203,6 +203,7 @@ public class ActivationRange

View File

@@ -17,10 +17,10 @@ index ebfaa8d5de5b905bd2dd7778728b8c9939d01252..8153f1aa510474d2f831799a1c149558
public final boolean spawnNpcs = this.get("spawn-npcs", true);
public final boolean pvp = this.get("pvp", true);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 283856f60d27dcd041b16f313c6119127f4aeea6..a6f170413a486efb2d48af55604b130782f4f157 100644
index 5635a18abc2e179cc9b011ec36462d152c2b2c6c..65953aa80c0263e30d05528204c1ee8839bb9659 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2893,4 +2893,11 @@ public final class CraftServer implements Server {
@@ -2899,4 +2899,11 @@ public final class CraftServer implements Server {
}
// Paper end

View File

@@ -25,10 +25,10 @@ index 8e7f73cfdc4dd86babe6a17fe06c80a011f20d90..f4d9170b11ba4eab8763261bf4fd0288
}
// Spigot end
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index a6f170413a486efb2d48af55604b130782f4f157..b62e5ce31a0a259e2abd96252598f91935ef6c4a 100644
index 65953aa80c0263e30d05528204c1ee8839bb9659..186ec54fea65f3fa9dea3fd3542c772f546c8cb7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2899,5 +2899,10 @@ public final class CraftServer implements Server {
@@ -2905,5 +2905,10 @@ public final class CraftServer implements Server {
public String getServerName() {
return this.getProperties().serverName;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 11ad98d35e33ba2465876c222288d047ab5189f1..3c42c1d0c9542f8ce058cd2bfc931f53ad0a82e8 100644
index 4f6aa9caaa471ecbeaff895508d3874577dbe5cd..46f536d45470da1af7cae8eb6524ad5e86f1b4b3 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -254,6 +254,7 @@ public class ServerPlayer extends Player {
@@ -82,10 +82,10 @@ index 11ad98d35e33ba2465876c222288d047ab5189f1..3c42c1d0c9542f8ce058cd2bfc931f53
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 1d61e34b1cc032089dbd715814553e59ebc8ce5c..763874b78363d75f8c386cff3cf48c93920957d1 100644
index 974a94086c06cceffff3be2e0fa702967ef11d56..d9e4a2c56820ea6de0d31721e1796ea7165cb256 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1983,12 +1983,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1984,12 +1984,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@Override
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
@@ -108,7 +108,7 @@ index 1d61e34b1cc032089dbd715814553e59ebc8ce5c..763874b78363d75f8c386cff3cf48c93
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 631472b43ac25337a05184d096e7bc97f47ce9e6..2606c339f5c24e9f73c6270669fb3d2ac4d41c1c 100644
index f126020b99c2dc32fd2e34e1fd7ae6bc9872e67f..c5be8e891534cc41e3b530f303f18d88cf5340cc 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1004,6 +1004,8 @@ public abstract class PlayerList {
@@ -121,10 +121,10 @@ index 631472b43ac25337a05184d096e7bc97f47ce9e6..2606c339f5c24e9f73c6270669fb3d2a
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 e7d454da116261f24341391e6933aaedd26a4a18..29e12552745000fbfa1cee6668a5bf039f918f6f 100644
index 796eb59a14ace2918e0fd88b43b56b275221d6fc..2cd475ac88b3d28aa918ca7f8599a70a5b5c2ea4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2817,5 +2817,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2823,5 +2823,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() {
getHandle().resetLastActionTime();
}

View File

@@ -5,7 +5,7 @@ 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 3518e5748e6f380eb53abc29a9483f58278c44ec..1de6fceb8b0e04162a320d4ae6bcb150329fc0b4 100644
index d9e4a2c56820ea6de0d31721e1796ea7165cb256..1c380b6954edb6806a1b3bfc66e1b6a19c0fd219 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -227,6 +227,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -38,7 +38,7 @@ index 3518e5748e6f380eb53abc29a9483f58278c44ec..1de6fceb8b0e04162a320d4ae6bcb150
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
@@ -3170,6 +3186,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -3171,6 +3187,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@Override
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {

View File

@@ -4,18 +4,6 @@ Date: Thu, 9 May 2019 14:27:37 -0500
Subject: [PATCH] Silk touch spawners
diff --git a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
index 85c9056f92711b985e251f0f06ed551d03deb562..c540694e24978e9e6119267d4f66df52bde02fd2 100644
--- a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
+++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
@@ -92,6 +92,7 @@ public final class PaperAdventure {
})
.build();
public static final LegacyComponentSerializer LEGACY_SECTION_UXRC = LegacyComponentSerializer.builder().flattener(FLATTENER).hexColors().useUnusualXRepeatedCharacterHexFormat().build();
+ public static final LegacyComponentSerializer LEGACY_AMPERSAND = LegacyComponentSerializer.builder().character(LegacyComponentSerializer.AMPERSAND_CHAR).hexColors().build(); // Purpur
@Deprecated
public static final PlainComponentSerializer PLAIN_COMPONENT = PlainComponentSerializer.builder().flattener(FLATTENER).build();
public static final PlainTextComponentSerializer PLAIN = PlainTextComponentSerializer.builder().flattener(FLATTENER).build();
diff --git a/src/main/java/net/minecraft/world/item/Items.java b/src/main/java/net/minecraft/world/item/Items.java
index 20444c6887cbdd444b23bf018a6d63f22359e5e7..85329295afacad3edb6865846166aa56ebae0ed2 100644
--- a/src/main/java/net/minecraft/world/item/Items.java

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix the dead lagging the server
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 0acb905e37d3413cb9d073e71cc31d8a5c2cd047..4381689462d96179919da0f49a7705bcb8371804 100644
index a32f0d6cc0c411fe7de7f29cf3679e122b3a016e..64d8844ebbe2c81bd41022c66bfc8859c5d22709 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1775,6 +1775,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1776,6 +1776,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.yRotO = this.getYRot();
this.xRotO = this.getXRot();
this.setYHeadRot(yaw); // Paper - Update head rotation
@@ -17,7 +17,7 @@ index 0acb905e37d3413cb9d073e71cc31d8a5c2cd047..4381689462d96179919da0f49a7705bc
public void absMoveTo(double x, double y, double z) {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 292744702aef86b99cea45a161e9696f9ec1a608..d92c4f31ec200db20f11f7613c37799a31dfc896 100644
index 5116710b3d546ad6e9b5e898060675ba46bdcc78..751634a63b5ecee4ba874b84c52bafdeefa1c65b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2942,7 +2942,7 @@ public abstract class LivingEntity extends Entity {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable void damage height and damage
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 4381689462d96179919da0f49a7705bcb8371804..e1f161c3ebcf7eb1eb5903144e88c411c9234fbf 100644
index 64d8844ebbe2c81bd41022c66bfc8859c5d22709..6f174641fc5571b980d2622e4c3af801c6602fe1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -820,7 +820,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -821,7 +821,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public void checkOutOfWorld() {
// Paper start - Configurable nether ceiling damage
@@ -18,7 +18,7 @@ index 4381689462d96179919da0f49a7705bcb8371804..e1f161c3ebcf7eb1eb5903144e88c411
&& this.getY() >= this.level.paperConfig.netherVoidTopDamageHeight)) {
// Paper end
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index d92c4f31ec200db20f11f7613c37799a31dfc896..667827901c5b8479ebbbc89c25eec222e4906e7d 100644
index 751634a63b5ecee4ba874b84c52bafdeefa1c65b..c5988a53727cf82cf9bd4cde0b86e9fe0074cef1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2434,7 +2434,7 @@ public abstract class LivingEntity extends Entity {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 025b68d3ae831127f92005d4c84d1d33a54af6da..efac87c553177da32e672e202a25d654d3937c2b 100644
index 6f174641fc5571b980d2622e4c3af801c6602fe1..0619f78da6da86c06336927c346ea52c6470bdf7 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4489,5 +4489,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4490,5 +4490,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public boolean processClick(InteractionHand hand) {
return false;
}

View File

@@ -18,7 +18,7 @@ index 4848f26a006f4d4df620ded526134b3b39e90d29..37fe86f0f6ea006f658cd6a68757c1c1
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 dc4639f905fb71435daf29c61f64621a3e2cc533..d1183ab1a0d0d6a973bde1640c34cc884f81e167 100644
index 6837c965592d4584cfc958a1008b98791a0fc780..4da450d1289c12356b24a81f267ba136983a2d20 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -523,6 +523,16 @@ public final class ItemStack {
@@ -39,23 +39,23 @@ index dc4639f905fb71435daf29c61f64621a3e2cc533..d1183ab1a0d0d6a973bde1640c34cc88
return this.tag == null ? 0 : this.tag.getInt("Damage");
}
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
index 3a09ce6d0ea51436adcae4719d3f28d1868c283c..b3292c67658659cd3cf5117d70e20921db3a1e21 100644
index 7b39eaf66eb74cab7caf9588947e9d5860a0ffd8..5422b68674b34d015c94194a974726ea67d07e49 100644
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
+++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
@@ -270,6 +270,29 @@ public class EnchantmentHelper {
@@ -269,6 +269,29 @@ public class EnchantmentHelper {
return getItemEnchantmentLevel(Enchantments.CHANNELING, stack) > 0;
}
+ // Purpur start
+ @Nullable
+ public static Entry<EquipmentSlot, ItemStack> getMostDamagedEquipment(Enchantment enchantment, LivingEntity entity) {
+ public static Map.Entry<EquipmentSlot, ItemStack> getMostDamagedEquipment(Enchantment enchantment, LivingEntity entity) {
+ Map<EquipmentSlot, ItemStack> map = enchantment.getSlotItems(entity);
+ if (map.isEmpty()) {
+ return null;
+ }
+ Entry<EquipmentSlot, ItemStack> item = null;
+ Map.Entry<EquipmentSlot, ItemStack> item = null;
+ float maxPercent = 0F;
+ for (Entry<EquipmentSlot, ItemStack> entry : map.entrySet()) {
+ for (Map.Entry<EquipmentSlot, ItemStack> entry : map.entrySet()) {
+ ItemStack itemstack = entry.getValue();
+ if (!itemstack.isEmpty() && itemstack.isDamaged() && getItemEnchantmentLevel(enchantment, itemstack) > 0) {
+ float percent = itemstack.getDamagePercent();
@@ -70,7 +70,7 @@ index 3a09ce6d0ea51436adcae4719d3f28d1868c283c..b3292c67658659cd3cf5117d70e20921
+ // Purpur end
+
@Nullable
public static Entry<EquipmentSlot, ItemStack> getRandomItemWith(Enchantment enchantment, LivingEntity entity) {
public static Map.Entry<EquipmentSlot, ItemStack> getRandomItemWith(Enchantment enchantment, LivingEntity entity) {
return getRandomItemWith(enchantment, entity, (stack) -> {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ecfbe1bbd192649095945ba13039d53d23ac2ca8..60896b00f50501ddcaa71e1e16b59d22f78a983c 100644

View File

@@ -69,10 +69,10 @@ index 4395d8260c4ca727515d9c907cb79da2d36642b2..d011944a64c4e61b7285325a37ab05a5
lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur
tickSection = curTime;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index b62e5ce31a0a259e2abd96252598f91935ef6c4a..137c90bd9df8c8f28d5b61b1ad12bebd7613de34 100644
index 186ec54fea65f3fa9dea3fd3542c772f546c8cb7..3baf2b11c567f5ca235b638e54759494ffc86673 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2663,6 +2663,7 @@ public final class CraftServer implements Server {
@@ -2669,6 +2669,7 @@ public final class CraftServer implements Server {
@Override
public double[] getTPS() {
return new double[] {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement respawn anchor explosion options
diff --git a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java
index 3770313892b6e9b9ab6f9fcc200dfc0b4972e516..c763b9eb6ca981f89f0868408273d78146a42748 100644
index 491ad2098e982f3c947fcae6f258f0b1aa44a562..39b3d9ce9fbaa7854d81b304f22ee1935c62d3f3 100644
--- a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java
@@ -125,7 +125,7 @@ public class RespawnAnchorBlock extends Block {
@@ -124,7 +124,7 @@ public class RespawnAnchorBlock extends Block {
return pos.equals(explodedPos) && bl2 ? Optional.of(Blocks.WATER.getExplosionResistance()) : super.getBlockExplosionResistance(explosion, world, pos, blockState, fluidState);
}
};

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 97de6385d09e561f24fd4b80aa53c61829aa4d59..4a997a60baa9051f037b67ad60c09fb532b76114 100644
index 1c380b6954edb6806a1b3bfc66e1b6a19c0fd219..bab75482e1be354f66ef34144d15e628fb118309 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1240,13 +1240,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1241,13 +1241,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
itemstack1.setTag(nbttagcompound.copy());
}
@@ -28,7 +28,7 @@ index 97de6385d09e561f24fd4b80aa53c61829aa4d59..4a997a60baa9051f037b67ad60c09fb5
this.updateBookPages(pages, (s) -> {
return Component.Serializer.toJson(new TextComponent(s));
@@ -1258,10 +1261,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1259,10 +1262,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
private void updateBookPages(List<TextFilter.FilteredText> list, UnaryOperator<String> unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit
ListTag nbttaglist = new ListTag();
@@ -44,7 +44,7 @@ index 97de6385d09e561f24fd4b80aa53c61829aa4d59..4a997a60baa9051f037b67ad60c09fb5
Objects.requireNonNull(nbttaglist);
stream.forEach(nbttaglist::add);
@@ -1271,10 +1277,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1272,10 +1278,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
for (int j = list.size(); i < j; ++i) {
TextFilter.FilteredText itextfilter_a = (TextFilter.FilteredText) list.get(i);
@@ -57,7 +57,7 @@ index 97de6385d09e561f24fd4b80aa53c61829aa4d59..4a997a60baa9051f037b67ad60c09fb5
if (!s.equals(s1)) {
nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply(s1));
@@ -1290,6 +1296,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1291,6 +1297,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
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 55411e920b937ebc9f1c8d4d541a381fb8389689..29e85a8a8f0b21ad4d67a47053945286d24241ed 100644
index bab75482e1be354f66ef34144d15e628fb118309..0a7d748e0279a1fd7bb97051732ea1843510087b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2530,6 +2530,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -2531,6 +2531,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
double d0 = 36.0D;
if (this.player.distanceToSqr(entity) < 36.0D) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Allow anvil colors
diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
index a88efd9b435349ae00c4152f09d87ebf4f724659..75e1f6b593a23c88f34cc25db580930066bfb7bb 100644
index a88efd9b435349ae00c4152f09d87ebf4f724659..c26b3f3aec680a92c1361f47b1aa3968f31ffaa5 100644
--- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
@@ -3,6 +3,9 @@ package net.minecraft.world.inventory;
@@ -26,9 +26,9 @@ index a88efd9b435349ae00c4152f09d87ebf4f724659..75e1f6b593a23c88f34cc25db5809300
+ if (player != null && player.level.purpurConfig.anvilAllowColors && player.getBukkitEntity().hasPermission("purpur.anvil.color")) {
+ final net.kyori.adventure.text.Component renameTextComponent;
+ if (itemName.startsWith("&r") && player.getBukkitEntity().hasPermission("purpur.anvil.remove_italics")) {
+ renameTextComponent = PaperAdventure.LEGACY_AMPERSAND.deserialize(itemName.substring(2)).decoration(TextDecoration.ITALIC, false);
+ renameTextComponent = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacyAmpersand().deserialize(itemName.substring(2)).decoration(TextDecoration.ITALIC, false);
+ } else {
+ renameTextComponent = PaperAdventure.LEGACY_AMPERSAND.deserialize(itemName);
+ renameTextComponent = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacyAmpersand().deserialize(itemName);
+ }
+ itemstack1.setHoverName(PaperAdventure.asVanilla(renameTextComponent));
+ } else

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index efac87c553177da32e672e202a25d654d3937c2b..803d53230f28481b5236f8f095b9148af20f15de 100644
index 0619f78da6da86c06336927c346ea52c6470bdf7..4c93f8116077ccd6bd869e7285196b27f3d6e827 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3955,6 +3955,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3956,6 +3956,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.yRotO = this.getYRot();
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 803d53230f28481b5236f8f095b9148af20f15de..57e7b9805dffe3e080172dd0e1c71db1114c6448 100644
index 4c93f8116077ccd6bd869e7285196b27f3d6e827..f8f8a292cea4becc6837e47491fb3b89959aba20 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2778,7 +2778,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2779,7 +2779,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public void handleInsidePortal(BlockPos pos) {
if (this.isOnPortalCooldown()) {
this.setPortalCooldown();
@@ -17,7 +17,7 @@ index 803d53230f28481b5236f8f095b9148af20f15de..57e7b9805dffe3e080172dd0e1c71db1
if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable();
}
@@ -3444,7 +3444,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3445,7 +3445,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean canChangeDimensions() {

View File

@@ -24,10 +24,10 @@ index 67e559d63c543ff716d610cb04ff9426cc20ae00..9125deb86b856bcb5e1cd779773522e2
private boolean bypassArmor;
private boolean bypassInvul;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 57e7b9805dffe3e080172dd0e1c71db1114c6448..218c74e65f9a15943993d5c44e170ed2664e0d0a 100644
index f8f8a292cea4becc6837e47491fb3b89959aba20..8477b106e7f30711234ac45a26f813753c5bb9f9 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1071,7 +1071,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1072,7 +1072,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
// CraftBukkit end

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Spread out and optimise player list ticksSpread out and
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 24934362a424365c0c17ad15cb70288cc0f07fe4..441599f0078f99498aa409d500518366be18bade 100644
index b90138f95ad0cdeda2ed6e9a881f01c7b22dd3f2..ed4e4de5f4e303a8fe1c64040c65ab24c2f7e4d6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1018,22 +1018,22 @@ public abstract class PlayerList {
@@ -46,10 +46,10 @@ index 24934362a424365c0c17ad15cb70288cc0f07fe4..441599f0078f99498aa409d500518366
public void broadcastAll(Packet<?> packet) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 4f007dce3f4f7cf19d8e38b46435c762813c6c43..0b73c96483ec6e901c913641835c38a9546dc3b0 100644
index 2cd475ac88b3d28aa918ca7f8599a70a5b5c2ea4..365358ef910594980f0126a4300a40bb2293e03c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1731,7 +1731,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1737,7 +1737,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public boolean canSee(org.bukkit.entity.Entity entity) {

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 06c02aa50d3ece744678ba99c21237b02c0a8aca..8620dbcdc25be8f94535181f0297a2c70ae58bda 100644
index 0a7d748e0279a1fd7bb97051732ea1843510087b..e01afeb407acb8cf865d2d223aefaf15b634c94d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1162,10 +1162,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1163,10 +1163,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
int maxBookPageSize = com.destroystokyo.paper.PaperConfig.maxBookPageSize;
double multiplier = Math.max(0.3D, Math.min(1D, com.destroystokyo.paper.PaperConfig.maxBookTotalSizeMultiplier));
long byteAllowed = maxBookPageSize;
@@ -21,7 +21,7 @@ index 06c02aa50d3ece744678ba99c21237b02c0a8aca..8620dbcdc25be8f94535181f0297a2c7
server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause
return;
}
@@ -1189,6 +1191,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1190,6 +1192,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
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

@@ -5,32 +5,32 @@ Subject: [PATCH] Fix rotating UP/DOWN CW and CCW
diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java
index 6d883db5c04cbcf454952c0f361029ecbfe4f037..8aeec2132138bf4b19a9042340c8784df4afda65 100644
index 6b71d9433846eb4464177f09d7bfdea82200b189..050a2e157b61a9ae86fa86f231d16ee3f2634db0 100644
--- a/src/main/java/net/minecraft/core/Direction.java
+++ b/src/main/java/net/minecraft/core/Direction.java
@@ -247,6 +247,12 @@ public enum Direction implements StringRepresentable {
case EAST:
var10000 = SOUTH;
break;
case EAST:
var10000 = SOUTH;
break;
+ // Purpur start
+ case UP:
+ return UP;
+ case DOWN:
+ return DOWN;
+ // Purpur end
default:
throw new IllegalStateException("Unable to get Y-rotated facing of " + this);
default:
throw new IllegalStateException("Unable to get Y-rotated facing of " + this);
}
@@ -359,6 +365,12 @@ public enum Direction implements StringRepresentable {
case EAST:
var10000 = NORTH;
break;
case EAST:
var10000 = NORTH;
break;
+ // Purpur start
+ case UP:
+ return UP;
+ case DOWN:
+ return DOWN;
+ // Purpur end
default:
throw new IllegalStateException("Unable to get CCW facing of " + this);
default:
throw new IllegalStateException("Unable to get CCW facing of " + this);
}

View File

@@ -93,10 +93,10 @@ index 318456621faf484dbad479b2873ae647e0c0f037..83c8889137e566322ec4337b0e6d8b94
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0b73c96483ec6e901c913641835c38a9546dc3b0..4eef838dd00d69bb27d5ffff8ad5e04a0dfff4f5 100644
index 365358ef910594980f0126a4300a40bb2293e03c..bb0d196dc2e2ff6a2ccfda8b55a04fd6eaad0a97 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1148,6 +1148,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1154,6 +1154,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
if (entity.isVehicle()) {

View File

@@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index a48a12b7952e41c98b253fcfbe2f12174251e924..213dc23771b85da8db6825c4ba5463abe42f690c 100644
index 8477b106e7f30711234ac45a26f813753c5bb9f9..ab287a326302d670f0aeabf016b69aed6a43c21b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1635,7 +1635,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1636,7 +1636,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return this.isInWater() || flag;
}

View File

@@ -17,10 +17,10 @@ index 4b0a0f18708c887ea339f078aea4c988b222ce0c..49adcc516e880c9d1a4926115c0f6fc0
// CraftBukkit end
this.setLevel(worldserver);
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 8231588f26eb8c02bf287a0962d28299fb54ee0f..e4e46b553972ca1fc791a8a174d6b6c7ef2be48c 100644
index ab287a326302d670f0aeabf016b69aed6a43c21b..78889c65692ab9632e31bef986307663bdb7dc8f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2775,12 +2775,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2776,12 +2776,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return Vec3.directionFromRotation(this.getRotationVector());
}

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 1d6c0ef4c4158e82f65dece41cd8d4c2cc9766ff..47f61bcd82cd1ece349a907d6e90331182643fa0 100644
index e01afeb407acb8cf865d2d223aefaf15b634c94d..d1ff93ffb591bb7c5a905c4794d19e0dd179346e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1596,6 +1596,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1597,6 +1597,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
this.player.resetFallDistance();
}
@@ -22,7 +22,7 @@ index 1d6c0ef4c4158e82f65dece41cd8d4c2cc9766ff..47f61bcd82cd1ece349a907d6e903311
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();
@@ -1629,6 +1636,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1630,6 +1637,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
}
// Paper end - optimise out extra getCubes

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index e4e46b553972ca1fc791a8a174d6b6c7ef2be48c..6eb3855e8db875a46017fdb963174e681c497f43 100644
index 78889c65692ab9632e31bef986307663bdb7dc8f..0ba10e9a18b84c29d401482a77cdec6bd31b27c2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3009,7 +3009,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3010,7 +3010,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public int getMaxAirSupply() {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Break individual slabs when sneaking
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index 14465d6368ee5866bc04efe7f9e2023f60f39202..6918bf8f20149042e760a283dceeedfae3c97e3c 100644
index a0e5ec1a3129fdb4facfbef936b68c43d2d2f710..464e304c532c1af48914d3cfad86380e8b4a096d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -430,6 +430,7 @@ public class ServerPlayerGameMode {
@@ -17,11 +17,11 @@ index 14465d6368ee5866bc04efe7f9e2023f60f39202..6918bf8f20149042e760a283dceeedfa
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/level/block/SlabBlock.java b/src/main/java/net/minecraft/world/level/block/SlabBlock.java
index 54df5c2987822a727a31be2b3769d39fabb6159a..70b6a65a7d321fc71c98289f09f21ccaf4d5f6b7 100644
index 18b603d646081926343dea108b55d641df1c2c34..fdbbd2e5d4fd970a4593b55f16bd0f82248e06b8 100644
--- a/src/main/java/net/minecraft/world/level/block/SlabBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/SlabBlock.java
@@ -130,4 +130,25 @@ public class SlabBlock extends Block implements SimpleWaterloggedBlock {
return false;
return false;
}
}
+

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable damage settings for magma blocks
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index df6caa1d3f3024b26b7e4b01ebb2e307138850dc..ab822d03cbd8cc5047277f42f29e4c736fb177b3 100644
index 0ba10e9a18b84c29d401482a77cdec6bd31b27c2..2e4938d2bc37d44d4b70b4c6e6ed7ea709a8a2f3 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1071,7 +1071,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1072,7 +1072,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
// CraftBukkit end

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Gamemode extra permissions
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
index c26435a6b5cdc61ae5d123dacea711a4a9f666d1..21b3532c29f2f1bcf1eb02a28ab107e9f6531393 100644
index 9d884da26e6515a85b0a8f8f611fafc17c19debc..cfceccc35ba1cc161f47b462504027d74a23b000 100644
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
@@ -195,6 +195,21 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy
@@ -54,7 +54,7 @@ index 79f6089b934124c3309c6bee2e48b36b937252e0..d1e6ac2dcff3f058dc147c8ed4d16d27
for(ServerPlayer serverPlayer : targets) {
diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java
index 6cc517b394bafefce50d877761e5b2eee8e14c78..46ca899a7abddea108f6ff1b4ca14ca5cd3112ab 100644
index 045ebc5533de7486d1975efe9d51ab368969178a..bfd82778acd2849a9f75b20b78a9a3f37c32402d 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java
@@ -23,7 +23,15 @@ public final class CommandPermissions {
@@ -72,10 +72,10 @@ index 6cc517b394bafefce50d877761e5b2eee8e14c78..46ca899a7abddea108f6ff1b4ca14ca5
+ }
+ // Purpur end
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "xp", "Allows the user to give themselves or others arbitrary values of experience", PermissionDefault.OP, commands);
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "toggledownfall", "Allows the user to toggle rain on/off for a given world", PermissionDefault.OP, commands);
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands);
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "seed", "Allows the user to view the seed of the world", PermissionDefault.OP, commands);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 09d9080a019d142ab427163439ef5e259d04e6bb..c3b00e02754f901fe2723cb536ced393ecc95e86 100644
index bd996beb468823c3b7957038eff28382d8b2c2ee..dd6468098ca71bfc4e4a41e019a5315dcada1e78 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -228,6 +228,7 @@ public class PurpurConfig {

View File

@@ -22,13 +22,13 @@ index 464e304c532c1af48914d3cfad86380e8b4a096d..302203e64277932ecb224edd3768dace
} else {
ItemStack itemstack = this.player.getMainHandItem();
diff --git a/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java b/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java
index 7f1230d915c98b6f30b13a06c2788bc2f7b7e912..d363d79a62c99371e03640814912f86d23108d18 100644
index ca5fb9d69ced45bbbdc1d5580b1aec4cf9f6e999..a9ad97f15c1a40cc20b08b7db955f81add70bf94 100644
--- a/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java
@@ -123,7 +123,7 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
@@ -122,7 +122,7 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
public void playerWillDestroy(Level world, BlockPos pos, BlockState state, Player player) {
BlockEntity blockEntity = world.getBlockEntity(pos);
if (blockEntity instanceof ShulkerBoxBlockEntity) {
ShulkerBoxBlockEntity shulkerBoxBlockEntity = (ShulkerBoxBlockEntity)blockEntity;
if (blockEntity instanceof ShulkerBoxBlockEntity shulkerBoxBlockEntity) {
- if (!world.isClientSide && player.isCreative() && !shulkerBoxBlockEntity.isEmpty()) {
+ if (world.purpurConfig.shulkerBoxAllowOversizedStacks || (!world.isClientSide && player.isCreative() && !shulkerBoxBlockEntity.isEmpty())) { // Purpur
ItemStack itemStack = getColoredItemStack(this.getColor());

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/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 9aab2a69d5ac9a7d18475999147fbd46aacf985b..8ee77c99b3bdaaaf01d98c621a03a06806fcf430 100644
index 2e4938d2bc37d44d4b70b4c6e6ed7ea709a8a2f3..dfad7db00b5be30e4e83e0c0e5d7c6a91aacf258 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4502,5 +4502,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4503,5 +4503,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public boolean canSaveToDisk() {
return true;
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 8ee77c99b3bdaaaf01d98c621a03a06806fcf430..1100ac4fbab11c45fe59b0688a2964c1cf2c0b9c 100644
index dfad7db00b5be30e4e83e0c0e5d7c6a91aacf258..82c595515741e3bb75a27a5aabc59136bc2a5937 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2826,7 +2826,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2827,7 +2827,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.processPortalCooldown();

View File

@@ -26,10 +26,10 @@ index b83695996d966310a2fe687baeaed66019754998..eda18bda0b8332c5b1d9c260e748cca8
} else {
if (fallDistance >= 2.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 4eef838dd00d69bb27d5ffff8ad5e04a0dfff4f5..ec26e4266377160b89182967c276152d7610e10c 100644
index bb0d196dc2e2ff6a2ccfda8b55a04fd6eaad0a97..d1e4c0253800ca0aaf83f106353cfb4c5b99b3f8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2842,5 +2842,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2848,5 +2848,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) {
getHandle().spawnInvulnerableTime = spawnInvulnerableTime;
}

View File

@@ -5,7 +5,7 @@ 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 19abf99c384f50840a141de1b3f4d823ebd33f74..111553443a7247db92b15819e9bbd717e4ace61b 100644
index 795b3c765bf91fbf1df236060344830de9330b38..7574f8c60b69f5a9281a8c888b8e131e73bb1676 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -773,7 +773,7 @@ public abstract class PlayerList {
@@ -14,6 +14,6 @@ index 19abf99c384f50840a141de1b3f4d823ebd33f74..111553443a7247db92b15819e9bbd717
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? new ChatMessage("multiplayer.disconnect.server_full") : null;
- if (this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile)) {
+ if (this.players.size() >= this.maxPlayers && !(player.hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameprofile))) { // Purpur
event.disallow(PlayerLoginEvent.Result.KICK_FULL, PaperAdventure.LEGACY_SECTION_UXRC.deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure
event.disallow(PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Extended OfflinePlayer API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
index 1f2bc88d4570c6ef00e67a772b745e0b0c98e051..f505e871a9836503377f168c31c1f09f8ed591f0 100644
index 50927403d07954f3b930b39046866899a1b289e6..c544e411934832cabb230047632454fff0460eef 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
@@ -528,4 +528,213 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@@ -538,4 +538,213 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
manager.save();
}
}
@@ -223,10 +223,10 @@ index 1f2bc88d4570c6ef00e67a772b745e0b0c98e051..f505e871a9836503377f168c31c1f09f
+ // 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 ec26e4266377160b89182967c276152d7610e10c..eb5b230aef06e4df57bf92d5a1f771725f6d3a08 100644
index d1e4c0253800ca0aaf83f106353cfb4c5b99b3f8..e339c0109c38fde307573af50cb3746b5c7f5848 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2105,6 +2105,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2111,6 +2111,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f;
}

View File

@@ -51,10 +51,10 @@ index 99c207457ec9d1a1b7d9e7becfcc8aae383e93ae..158945281178c80495f1dc2125ea21a2
private int maxStack = MAX_STACK;
public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 137c90bd9df8c8f28d5b61b1ad12bebd7613de34..4e77c53b488e4e82454df66a852f7271e80526ab 100644
index 3baf2b11c567f5ca235b638e54759494ffc86673..52c40bb83bae0f781432f4348c58a927cf366c9f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1427,6 +1427,19 @@ public final class CraftServer implements Server {
@@ -1433,6 +1433,19 @@ public final class CraftServer implements Server {
return true;
}

View File

@@ -36,10 +36,10 @@ index f9f7afa0bf2989aaef2f0e8456fe3c93a226b6d0..00dee850e9ae93ed4e8209c67da2da6a
+ // 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 80a8bd732d7840a441aae23a558c1aed68b2dce7..a0965856851a4a3337c55d9796952737bb63b26d 100644
index d1ff93ffb591bb7c5a905c4794d19e0dd179346e..44581f275fb2133e96599af6460ff5e841b7aa88 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1979,6 +1979,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1980,6 +1980,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
boolean cancelled;
if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) {

View File

@@ -132,7 +132,7 @@ index 5dede264fc3cb045b6330e35123b5b416c1b1f56..10fa3a544d01ce3cdb72e72952073d86
float f = EntityType.ITEM.getHeight() / 2.0F;
// Paper start - don't convert potentially massive numbers to floats
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
index d62181bd8bccfcfdd7da8f635bdf7ebc36294705..0fa91bd87dfec9cf8311bcbd5125caf6e308e90e 100644
index b96d57b0bcf21508f8e03e96b7553eb486fdf212..d3de829a4ab5f5a127fb026a8cb4ef4ed6b9c394 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -6,6 +6,8 @@ import net.minecraft.CrashReportCategory;
@@ -173,11 +173,10 @@ index d62181bd8bccfcfdd7da8f635bdf7ebc36294705..0fa91bd87dfec9cf8311bcbd5125caf6
public final CompoundTag saveWithFullMetadata() {
CompoundTag nbttagcompound = this.saveWithoutMetadata();
@@ -256,4 +275,25 @@ public abstract class BlockEntity {
return null;
@@ -264,4 +283,24 @@ public abstract class BlockEntity {
}
// CraftBukkit end
+
// Paper end
+ // Purpur start
+ private String persistentDisplayName = null;
+ private ListTag persistentLore = null;

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 d106cd682d03bfddd1f441ed43081b41f722d5c4..67590108d9f9e889ef9483722bdae0efa10de1ce 100644
index 0a345562354dc3f1e1366da96149d204a95f6fbc..b717dad7145eeb7b4d1f6870779c1df9dea3261a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1501,6 +1501,7 @@ public class ServerPlayer extends Player {
@@ -17,10 +17,10 @@ index d106cd682d03bfddd1f441ed43081b41f722d5c4..67590108d9f9e889ef9483722bdae0ef
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 a0965856851a4a3337c55d9796952737bb63b26d..b7a941c0663f233e63f3cce0a048112bd56b0abb 100644
index 44581f275fb2133e96599af6460ff5e841b7aa88..5d930933dd3fdca91374eba8991275faebd86935 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3194,11 +3194,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -3195,11 +3195,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
}
// Paper end
@@ -42,7 +42,7 @@ index a0965856851a4a3337c55d9796952737bb63b26d..b7a941c0663f233e63f3cce0a048112b
SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.player.getBukkitEntity(), lines);
this.cserver.getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
index d5bcc81a809e3c733c6fc11309bcf0913860edf6..96b70ae604695fbe651f8640be5c6d0e1a3109df 100644
index d5bcc81a809e3c733c6fc11309bcf0913860edf6..1846aeffc9ad24405ddce0e727552fa6df6e3997 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
@@ -186,6 +186,23 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C
@@ -56,7 +56,7 @@ index d5bcc81a809e3c733c6fc11309bcf0913860edf6..96b70ae604695fbe651f8640be5c6d0e
+ final Component[] lines = getMessages(filtered);
+ for (int i = 0; i < 4; i++) {
+ final var component = io.papermc.paper.adventure.PaperAdventure.asAdventure(lines[i]);
+ final String line = io.papermc.paper.adventure.PaperAdventure.LEGACY_AMPERSAND.serialize(component);
+ final String line = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacyAmpersand().serialize(component);
+ final var text = net.kyori.adventure.text.Component.text(line);
+ final String json = net.kyori.adventure.text.serializer.gson.GsonComponentSerializer.gson().serialize(text);
+ nbt.putString("Text" + (i + 1), json);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Option to prevent spiders from climbing world border
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index f09f233c2005b600feffee27237ce01c6207b255..d58de23619321fadad3755f6110954ac462bbba1 100644
index 82c595515741e3bb75a27a5aabc59136bc2a5937..2908d2882cd6bd97d777a2831995ea7a445843ee 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -243,6 +243,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -16,7 +16,7 @@ index f09f233c2005b600feffee27237ce01c6207b255..d58de23619321fadad3755f6110954ac
public boolean hurtMarked;
protected Vec3 stuckSpeedMultiplier;
@Nullable
@@ -1334,7 +1335,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1335,7 +1336,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
io.papermc.paper.util.CollisionUtil.getCollisions(world, this, collisionBox, potentialCollisions, false, true,
false, false, null, null);

View File

@@ -18,10 +18,10 @@ index a999e4c82d7fe0ecf127f9132c29886d56c444e5..7471e59ad3362bc3d0bad6555fe29a9b
}
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
index b3292c67658659cd3cf5117d70e20921db3a1e21..12daef6ab5b6d639dead667a6d53451821c13ed2 100644
index 5422b68674b34d015c94194a974726ea67d07e49..77ccd9e38d916d6ae08e230958134e1cc4443f9e 100644
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
+++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
@@ -46,7 +46,7 @@ public class EnchantmentHelper {
@@ -45,7 +45,7 @@ public class EnchantmentHelper {
}
public static int getEnchantmentLevel(CompoundTag nbt) {