Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@4fdda9e Keep newlines in outdated client/server message (#10042)
PaperMC/Paper@f483b38 fix NPE on EntityTeleportEvent getTo (#10016)
PaperMC/Paper@dc62150 Catch async usage of playsound (#10021)
PaperMC/Paper@0d6a0c3 Fix command block async message (again) (#10082)
PaperMC/Paper@d1f507f Don't fire 2 game events for certain cauldron interactions (#8904)
PaperMC/Paper@a401585 Fix campfire recipes not always outputting full result (#8754)
PaperMC/Paper@88d28d6 Fix long loading screen when refreshing skins (#10026)
PaperMC/Paper@c081104 Add experience points api (#9688)
PaperMC/Paper@8221b08 Fix global sound event gamerule not being respected (#8727)
PaperMC/Paper@3c0d6aa Updated Upstream (Bukkit/CraftBukkit/Spigot) (#10085)
PaperMC/Paper@2c3ccb8 Add drops to shear events (#5678)
PaperMC/Paper@b2ffb1b Add PlayerShieldDisableEvent (#9177)
PaperMC/Paper@2951732 Add HiddenPotionEffect API (#9910)
PaperMC/Paper@e4ab50d Properly disallow async Player#chat (#8123)
PaperMC/Paper@5e978d3 Fix Folia scheduler tasks not canceling when plugin disable (#10091)
This commit is contained in:
granny
2023-12-29 04:40:59 -08:00
parent 6f17a3da52
commit 04ee5e7c28
47 changed files with 377 additions and 371 deletions

View File

@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
version = 1.20.4-R0.1-SNAPSHOT version = 1.20.4-R0.1-SNAPSHOT
mcVersion = 1.20.4 mcVersion = 1.20.4
paperCommit = c215ce185861af0fd123a91a79ad8907d9a7951a paperCommit = 5e978d3a3d2c8068ea152ea5a38938f1f8c15d94
org.gradle.caching = true org.gradle.caching = true
org.gradle.parallel = true org.gradle.parallel = true

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index c09f423fe2a029c933bd2697c8ff104fc4230cf0..0246fdcb873c50cf15581899b951ecb23b51d226 100644 index ae61a39b25267b84fe0b8766e4b12d9b24b44ded..515f1d5d6a5674e5667d61651f27ca6bb6823ad5 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3535,4 +3535,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3574,4 +3574,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override @Override
Spigot spigot(); Spigot spigot();
// Spigot end // Spigot end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow inventory resizing
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
index 64e59fe706b0bb37fc2439fa88fd40c3167c9fb5..333ba8a730d01b6baa980f34aa03f3db90c8f255 100644 index daa1306a7324d946d66ad5a674bbc84371d8d4d6..f3b2d7b6fda051211add2b3215f120fb6911aeed 100644
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java --- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java +++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
@@ -159,7 +159,7 @@ public enum InventoryType { @@ -165,7 +165,7 @@ public enum InventoryType {
SMITHING_NEW(4, "Upgrade Gear"), SMITHING_NEW(4, "Upgrade Gear"),
; ;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 0246fdcb873c50cf15581899b951ecb23b51d226..8749e76035350908bbf2d8debd28ea5a2eb2d7ac 100644 index 515f1d5d6a5674e5667d61651f27ca6bb6823ad5..65dfe7600a7aa7e7cc30915f04f39fde2afba688 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3543,5 +3543,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3582,5 +3582,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @return True if Player uses Purpur Client * @return True if Player uses Purpur Client
*/ */
public boolean usesPurpurClient(); public boolean usesPurpurClient();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity safeFallDistance
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index e68c71047b2bc1b456c380db25b3ff376852b4a9..ddcfa6a4f678801bb09716c0c7bcc06e37add26d 100644 index 47b0154928b3d36e2602da202df07defbcf82108..d34ef2581a7f51eb484994253e3307b7952751cc 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java --- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -1270,4 +1270,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @@ -1276,4 +1276,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
*/ */
void setBodyYaw(float bodyYaw); void setBodyYaw(float bodyYaw);
// Paper end // Paper end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity#broadcastItemBreak
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index ddcfa6a4f678801bb09716c0c7bcc06e37add26d..880b2b045e34eb52a2efcaea4ac4bdfade4c353a 100644 index d34ef2581a7f51eb484994253e3307b7952751cc..11493047fd7bbceed1b566bf0aae8790e4291601 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java --- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -1285,5 +1285,12 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @@ -1291,5 +1291,12 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
* @param safeFallDistance Safe fall distance * @param safeFallDistance Safe fall distance
*/ */
void setSafeFallDistance(float safeFallDistance); void setSafeFallDistance(float safeFallDistance);

View File

@@ -23,10 +23,10 @@ index 566c74756c66db859a4f738a7716a61d012c6df1..c20f29e1ddfd1d73df19f6d6f730fa23
// Purpur end // Purpur end
} }
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index 880b2b045e34eb52a2efcaea4ac4bdfade4c353a..6b025794c34e1b4b47b4b5ae1375705bdedad078 100644 index 11493047fd7bbceed1b566bf0aae8790e4291601..7498179f6df47008c4da6ad6d67b2ce16f49e7a6 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java --- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -1292,5 +1292,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @@ -1298,5 +1298,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
* @param slot Equipment slot to play break animation for * @param slot Equipment slot to play break animation for
*/ */
void broadcastItemBreak(@NotNull org.bukkit.inventory.EquipmentSlot slot); void broadcastItemBreak(@NotNull org.bukkit.inventory.EquipmentSlot slot);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Potion NamespacedKey
diff --git a/src/main/java/org/bukkit/potion/PotionEffect.java b/src/main/java/org/bukkit/potion/PotionEffect.java diff --git a/src/main/java/org/bukkit/potion/PotionEffect.java b/src/main/java/org/bukkit/potion/PotionEffect.java
index 037af5fd6d71a526c0e6620f2db0cd6df9625261..939ed1931492854c5854cab06730cf235eba7e89 100644 index c8ab330ef171795d08fa201cf8320703c7f1c66b..93e2ea220dc03c122f82af65d5e9fda5b582290c 100644
--- a/src/main/java/org/bukkit/potion/PotionEffect.java --- a/src/main/java/org/bukkit/potion/PotionEffect.java
+++ b/src/main/java/org/bukkit/potion/PotionEffect.java +++ b/src/main/java/org/bukkit/potion/PotionEffect.java
@@ -32,12 +32,14 @@ public class PotionEffect implements ConfigurationSerializable { @@ -33,6 +33,7 @@ public class PotionEffect implements ConfigurationSerializable {
private static final String AMBIENT = "ambient"; private static final String AMBIENT = "ambient";
private static final String PARTICLES = "has-particles"; private static final String PARTICLES = "has-particles";
private static final String ICON = "has-icon"; private static final String ICON = "has-icon";
@@ -16,34 +16,46 @@ index 037af5fd6d71a526c0e6620f2db0cd6df9625261..939ed1931492854c5854cab06730cf23
private final int amplifier; private final int amplifier;
private final int duration; private final int duration;
private final PotionEffectType type; private final PotionEffectType type;
private final boolean ambient; @@ -40,6 +41,7 @@ public class PotionEffect implements ConfigurationSerializable {
private final boolean particles; private final boolean particles;
private final boolean icon; private final boolean icon;
private final PotionEffect hiddenEffect; // Paper
+ @Nullable private final NamespacedKey key; // Purpur + @Nullable private final NamespacedKey key; // Purpur
/** /**
* Creates a potion effect. * Creates a potion effect.
@@ -50,6 +52,36 @@ public class PotionEffect implements ConfigurationSerializable { @@ -50,11 +52,12 @@ public class PotionEffect implements ConfigurationSerializable {
* @param ambient the ambient status, see {@link PotionEffect#isAmbient()}
* @param particles the particle status, see {@link PotionEffect#hasParticles()}
* @param icon the icon status, see {@link PotionEffect#hasIcon()}
+ * @param key the namespacedKey, see {@link PotionEffect#getKey()}
* @param hiddenEffect the hidden PotionEffect
* @hidden Internal-- hidden effects are only shown internally
*/
@org.jetbrains.annotations.ApiStatus.Internal // Paper
- public PotionEffect(@NotNull PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, boolean icon, @Nullable PotionEffect hiddenEffect) { // Paper
+ public PotionEffect(@NotNull PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, boolean icon, @Nullable PotionEffect hiddenEffect, @Nullable NamespacedKey key) { // Paper // Purpur
Preconditions.checkArgument(type != null, "effect type cannot be null");
this.type = type;
this.duration = duration;
@@ -62,6 +65,7 @@ public class PotionEffect implements ConfigurationSerializable {
this.ambient = ambient;
this.particles = particles;
this.icon = icon;
+ this.key = key; // Purpur
// Paper start
this.hiddenEffect = hiddenEffect;
}
@@ -77,10 +81,27 @@ public class PotionEffect implements ConfigurationSerializable {
* @param icon the icon status, see {@link PotionEffect#hasIcon()} * @param icon the icon status, see {@link PotionEffect#hasIcon()}
*/ */
public PotionEffect(@NotNull PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, boolean icon) { public PotionEffect(@NotNull PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, boolean icon) {
+ // Purpur start - this(type, duration, amplifier, ambient, particles, icon, null);
+ this(type, duration, amplifier, ambient, particles, icon, null); + this(type, duration, amplifier, ambient, particles, icon, null, null); // Purpur
+ } // Paper end
+ }
+ /**
+ * Create a potion effect. + // Purpur start
+ * @param duration measured in ticks, see {@link
+ * PotionEffect#getDuration()}
+ * @param amplifier the amplifier, see {@link PotionEffect#getAmplifier()}
+ * @param ambient the ambient status, see {@link PotionEffect#isAmbient()}
+ * @param particles the particle status, see {@link PotionEffect#hasParticles()}
+ * @param key the namespacedKey, see {@link PotionEffect#getKey()}
+ */
+ public PotionEffect(@NotNull PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, @Nullable NamespacedKey key) {
+ this(type, duration, amplifier, ambient, particles, particles, key);
+ }
+
+ /** + /**
+ * Creates a potion effect. + * Creates a potion effect.
+ * @param type effect type + * @param type effect type
@@ -56,24 +68,19 @@ index 037af5fd6d71a526c0e6620f2db0cd6df9625261..939ed1931492854c5854cab06730cf23
+ * @param key the namespacedKey, see {@link PotionEffect#getKey()} + * @param key the namespacedKey, see {@link PotionEffect#getKey()}
+ */ + */
+ public PotionEffect(@NotNull PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, boolean icon, @Nullable NamespacedKey key) { + public PotionEffect(@NotNull PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, boolean icon, @Nullable NamespacedKey key) {
+ // Purpur end + this(type, duration, amplifier, ambient, particles, icon, null, key);
Preconditions.checkArgument(type != null, "effect type cannot be null"); + }
this.type = type; + // Purpur end
this.duration = duration; +
@@ -57,6 +89,7 @@ public class PotionEffect implements ConfigurationSerializable {
this.ambient = ambient;
this.particles = particles;
this.icon = icon;
+ this.key = key; // Purpur - add key
}
/** /**
@@ -104,36 +137,43 @@ public class PotionEffect implements ConfigurationSerializable { * Creates a potion effect with no defined color.
*
@@ -126,33 +147,33 @@ public class PotionEffect implements ConfigurationSerializable {
* @param map the map to deserialize from * @param map the map to deserialize from
*/ */
public PotionEffect(@NotNull Map<String, Object> map) { public PotionEffect(@NotNull Map<String, Object> map) {
- this(getEffectType(map), getInt(map, DURATION), getInt(map, AMPLIFIER), getBool(map, AMBIENT, false), getBool(map, PARTICLES, true), getBool(map, ICON, getBool(map, PARTICLES, true))); - this(getEffectType(map), getInt(map, DURATION), getInt(map, AMPLIFIER), getBool(map, AMBIENT, false), getBool(map, PARTICLES, true), getBool(map, ICON, getBool(map, PARTICLES, true)), (PotionEffect) map.get(HIDDEN_EFFECT)); // Paper
+ this(getEffectType(map), getInt(map, DURATION), getInt(map, AMPLIFIER), getBool(map, AMBIENT, false), getBool(map, PARTICLES, true), getBool(map, ICON, getBool(map, PARTICLES, true)), getKey(map)); // Purpur - getKey + this(getEffectType(map), getInt(map, DURATION), getInt(map, AMPLIFIER), getBool(map, AMBIENT, false), getBool(map, PARTICLES, true), getBool(map, ICON, getBool(map, PARTICLES, true)), (PotionEffect) map.get(HIDDEN_EFFECT), getKey(map)); // Paper // Purpur - getKey
} }
// Paper start // Paper start
@@ -107,6 +114,10 @@ index 037af5fd6d71a526c0e6620f2db0cd6df9625261..939ed1931492854c5854cab06730cf23
- return new PotionEffect(this.type, duration, amplifier, ambient, particles, icon); - return new PotionEffect(this.type, duration, amplifier, ambient, particles, icon);
+ return new PotionEffect(this.type, duration, amplifier, ambient, particles, icon, key); // Purpur - add key + return new PotionEffect(this.type, duration, amplifier, ambient, particles, icon, key); // Purpur - add key
} }
/**
@@ -169,6 +190,13 @@ public class PotionEffect implements ConfigurationSerializable {
}
// Paper end // Paper end
+ // Purpur start + // Purpur start
@@ -119,7 +130,7 @@ index 037af5fd6d71a526c0e6620f2db0cd6df9625261..939ed1931492854c5854cab06730cf23
@NotNull @NotNull
private static PotionEffectType getEffectType(@NotNull Map<?, ?> map) { private static PotionEffectType getEffectType(@NotNull Map<?, ?> map) {
PotionEffectType effect; PotionEffectType effect;
@@ -166,17 +206,33 @@ public class PotionEffect implements ConfigurationSerializable { @@ -201,6 +229,17 @@ public class PotionEffect implements ConfigurationSerializable {
return def; return def;
} }
@@ -137,35 +148,28 @@ index 037af5fd6d71a526c0e6620f2db0cd6df9625261..939ed1931492854c5854cab06730cf23
@Override @Override
@NotNull @NotNull
public Map<String, Object> serialize() { public Map<String, Object> serialize() {
- return ImmutableMap.<String, Object>builder() @@ -215,6 +254,11 @@ public class PotionEffect implements ConfigurationSerializable {
+ // Purpur start - add key, don't serialize if null. if (this.hiddenEffect != null) {
+ ImmutableMap.Builder<String, Object> builder = ImmutableMap.<String, Object>builder() builder.put(HIDDEN_EFFECT, this.hiddenEffect);
.put(TYPE, type.getKey().toString()) }
.put(DURATION, duration) + // Purpur start
.put(AMPLIFIER, amplifier) + if (key != null) {
.put(AMBIENT, ambient)
.put(PARTICLES, particles)
- .put(ICON, icon)
- .build();
+ .put(ICON, icon);
+ if(key != null) {
+ builder.put(KEY, key.toString()); + builder.put(KEY, key.toString());
+ } + }
+ return builder.build();
+ // Purpur end + // Purpur end
return builder.build();
// Paper end
} }
@@ -243,7 +287,7 @@ public class PotionEffect implements ConfigurationSerializable {
/**
@@ -200,7 +256,7 @@ public class PotionEffect implements ConfigurationSerializable {
return false; return false;
} }
PotionEffect that = (PotionEffect) obj; PotionEffect that = (PotionEffect) obj;
- return this.type.equals(that.type) && this.ambient == that.ambient && this.amplifier == that.amplifier && this.duration == that.duration && this.particles == that.particles && this.icon == that.icon; - return this.type.equals(that.type) && this.ambient == that.ambient && this.amplifier == that.amplifier && this.duration == that.duration && this.particles == that.particles && this.icon == that.icon && java.util.Objects.equals(this.hiddenEffect, that.hiddenEffect); // Paper
+ return this.type.equals(that.type) && this.ambient == that.ambient && this.amplifier == that.amplifier && this.duration == that.duration && this.particles == that.particles && this.icon == that.icon && this.key == that.key; // Purpur - add key + return this.type.equals(that.type) && this.ambient == that.ambient && this.amplifier == that.amplifier && this.duration == that.duration && this.particles == that.particles && this.icon == that.icon && java.util.Objects.equals(this.hiddenEffect, that.hiddenEffect) && this.key == that.key; // Paper // Purpur - add key
} }
/** /**
@@ -296,6 +352,24 @@ public class PotionEffect implements ConfigurationSerializable { @@ -339,6 +383,24 @@ public class PotionEffect implements ConfigurationSerializable {
return icon; return icon;
} }
@@ -190,11 +194,11 @@ index 037af5fd6d71a526c0e6620f2db0cd6df9625261..939ed1931492854c5854cab06730cf23
@Override @Override
public int hashCode() { public int hashCode() {
int hash = 1; int hash = 1;
@@ -310,6 +384,6 @@ public class PotionEffect implements ConfigurationSerializable { @@ -354,6 +416,6 @@ public class PotionEffect implements ConfigurationSerializable {
@Override @Override
public String toString() { public String toString() {
- return type.getName() + (ambient ? ":(" : ":") + duration + "t-x" + amplifier + (ambient ? ")" : ""); - return "PotionEffect{" + "amplifier=" + amplifier + ", duration=" + duration + ", type=" + type + ", ambient=" + ambient + ", particles=" + particles + ", icon=" + icon + ", hiddenEffect=" + hiddenEffect + '}'; // Paper
+ return type.getName() + (ambient ? ":(" : ":") + duration + "t-x" + amplifier + (ambient ? ")" : "") + (hasKey() ? "(" + key + ")" : ""); // Purpur - add key if not null + return "PotionEffect{" + "amplifier=" + amplifier + ", duration=" + duration + ", type=" + type + ", ambient=" + ambient + ", particles=" + particles + ", icon=" + icon + ", hiddenEffect=" + hiddenEffect + ", key=" + key + '}'; // Paper // Purpur - add key
} }
} }

View File

@@ -260,10 +260,10 @@ index 1173081896ca95ab001175ddf6e269ab5e791896..e4f0d5ee85371374453b837947c7f84c
/** /**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 8749e76035350908bbf2d8debd28ea5a2eb2d7ac..ac9f3b74a2c0d2fadb52cc3f3e11d635f9088cf8 100644 index 65dfe7600a7aa7e7cc30915f04f39fde2afba688..73415adcdd161b3b3b79be14967f805df2733030 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3563,5 +3563,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3602,5 +3602,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @deprecated Use {@link #resetIdleDuration()} instead * @deprecated Use {@link #resetIdleDuration()} instead
*/ */
void resetIdleTimer(); void resetIdleTimer();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index ac9f3b74a2c0d2fadb52cc3f3e11d635f9088cf8..ee76f84c8e341e4939ed0082a6ed889b701533cb 100644 index 73415adcdd161b3b3b79be14967f805df2733030..3aa79be25d63f704170baaf799482ccdde6a2830 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3633,5 +3633,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3672,5 +3672,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Clears all debug block highlights * Clears all debug block highlights
*/ */
void clearBlockHighlights(); void clearBlockHighlights();

View File

@@ -1718,7 +1718,7 @@ index 35674f92a67f93382103c2766df4b678ba5c862f..d46e61640b241d32df05240dedd2c23f
this.wasOnGround = this.entity.onGround(); this.wasOnGround = this.entity.onGround();
this.teleportDelay = 0; this.teleportDelay = 0;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index b78a9628a88f2a495ef6de74446a02a14d41a1f6..66cbea2fd146bdabf1241dae72bd76dc256afe45 100644 index 6041f1f5151f26d389f946d70f16e1de76db496b..4a802588f58bdea30b58521cbc4f0d76743f732e 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -895,6 +895,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -895,6 +895,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1774,10 +1774,10 @@ index b78a9628a88f2a495ef6de74446a02a14d41a1f6..66cbea2fd146bdabf1241dae72bd76dc
if (this.isRainingAt(blockposition)) { if (this.isRainingAt(blockposition)) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 30ccbab1586a656e0ae41d7406525fb02d9e025b..20cd751a602593740e87eb79d5059b5fc7856cb5 100644 index 64255f7db85886421d5029766e8a6d1eadb94cff..ce4c0a721c148ffb3c91d6a59189925aa7a1d766 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1124,6 +1124,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1122,6 +1122,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override @Override
public void handleEditBook(ServerboundEditBookPacket packet) { public void handleEditBook(ServerboundEditBookPacket packet) {
@@ -2057,7 +2057,7 @@ index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..a63399eedb896c06e96c7fba5cac7102
private String descriptionId; private String descriptionId;
@Nullable @Nullable
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 96885946be3b8e129984353f3dfe4330e73ad84a..88f736e67107d34514eec231070f42d2ee008e5c 100644 index bc908b75cb99536df658281ae7f8b4eeedbbedc9..0a9a77564d624d66e76637eef509e2f321333dc6 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -2119,7 +2119,7 @@ index 96885946be3b8e129984353f3dfe4330e73ad84a..88f736e67107d34514eec231070f42d2
if (this.isSpectator()) { if (this.isSpectator()) {
return false; return false;
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 5af48151159135b869ec4753bbcf79dd257c1570..1d65d8b3e21373b0f0d2c633742da52d6b208942 100644 index e0cf7771488ab0065708d68b4e8550b865af0ed4..6df13ebec8fbb11eb6e2b7469f9e4ebb44256894 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -221,14 +221,16 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -221,14 +221,16 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -2374,7 +2374,7 @@ index 111a244087e24f25ba8524a46a228da10cd9498a..ff12ba2b79cb2e7e0bfd0e3b58ff6cb9
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("goatActivityUpdate"); this.level().getProfiler().push("goatActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index c9a4feb4a52c0eb621b120e5b8c18d0a74dae0cd..256598e058db1fd34d36390e45ab9903768343cb 100644 index c59e44c45d9c8c719b34e85fb3b753ac3788842d..2732ecac901d99ba44132faeddda194bf06e0193 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -150,6 +150,13 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -150,6 +150,13 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -2680,7 +2680,7 @@ index 27b0a79f7a7c47047216aae42944bac2a2151181..a097cfc528f709c80575f35483b68783
autorecipestackmanager.initialize(this); // Paper - better exact choice recipes autorecipestackmanager.initialize(this); // Paper - better exact choice recipes
int i = 0; int i = 0;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index f8e519684d02dff0e26734eb89eca54ae1d9b1ee..3fb317e5df780abb7fa8c3d78717306cad2bc650 100644 index 8848eeda7a89d445e370626182f9bb4710e5edd4..2e14e03d01c97b9da97e8e15c663262d22b1b3fc 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -213,6 +213,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -213,6 +213,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -3253,7 +3253,7 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7
@Nullable @Nullable
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index e011cfcdda2e0a609d4158b0454bdf046b04c9d9..6550d4ea03b5b56159b19e297f03b0b141c59c62 100644 index 142d2c48239d4ebe3896218536656d116cd24d7c..36c68a6e2bc49b5192fb4d27f174b520e59430c6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper @@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper

View File

@@ -43,10 +43,10 @@ index d28d0ef6105ddeb562ddf31ae9088739856941fc..49aaa5147b9b904fa912c1811dc66d47
try { try {
String channels = payload.toString(com.google.common.base.Charsets.UTF_8); String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index c54df6e4aed9b7b46a41af4108a8e90d96c1fe1f..3bf86f27beada77d0abf6b91a8fc51e19cc3d787 100644 index 2ec8b8f65661001716d1cb34dcc21cda7286e5d7..83457c97f8c182ca63311f4a0186e1f95adfbdbb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3326,4 +3326,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3367,4 +3367,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot; return this.spigot;
} }
// Spigot end // Spigot end

View File

@@ -36,10 +36,10 @@ index 393edc13408ed8b3aad36121891eddf75ea321ff..ae9dfb2719ff2372e3a73adc2163330d
public void displayClientMessage(Component message, boolean overlay) { public void displayClientMessage(Component message, boolean overlay) {
this.sendSystemMessage(message, overlay); this.sendSystemMessage(message, overlay);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index a35638a92479b90afa89cf201fc45b49c9e767f3..9a7b5c2bae8e3c1788068462d2f60665a8064a77 100644 index e98a455b6bca9d094d0da323bddd7b3f2c07bb23..05131b298048de6418cfa103d883039b55740dfa 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1058,6 +1058,20 @@ public abstract class PlayerList { @@ -1064,6 +1064,20 @@ public abstract class PlayerList {
} }
// CraftBukkit end // CraftBukkit end

View File

@@ -34,7 +34,7 @@ index 6e8d7a22e9301704fd8d3e08e806b186f2578038..2dd32f61efa12689b08a54f30deac397
this.profiler.push(() -> { this.profiler.push(() -> {
return worldserver + " " + worldserver.dimension().location(); return worldserver + " " + worldserver.dimension().location();
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 5493e7e8ec1de5bb52ee7bd145e436fdb03e59b6..53131fc1fc02df8f60f0a44dd8c3a5a53e24fddb 100644 index 53e00bb94fd6af9197422218aa92acde897f1aa9..9ded11bdbaf98948a1451e15a237f8423c8cc36d 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -225,6 +225,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -225,6 +225,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -66,10 +66,10 @@ index ae9dfb2719ff2372e3a73adc2163330db886dfbe..f709667d2efab5f7dac22bb6e4b0bf32
public void doTick() { 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 diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 20cd751a602593740e87eb79d5059b5fc7856cb5..44b8b9dfc9182a6ce0d01b003749946e90e3aedb 100644 index ce4c0a721c148ffb3c91d6a59189925aa7a1d766..741b108b2c6ed243c8f4e9124a31a3005e0ce594 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2715,6 +2715,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2722,6 +2722,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -190,7 +190,7 @@ index 1bb8b6e91c44cd13411d96d749fa64835c75a267..75c278b67ad2b78766efd8f89c4c2ca7
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 88f736e67107d34514eec231070f42d2ee008e5c..bab5a6c1bcff734620ccb015f071d73b70bbc901 100644 index 0a9a77564d624d66e76637eef509e2f321333dc6..5e64293b7392e5a4b19a4c7303b0365d48f90115 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -268,7 +268,7 @@ index 88f736e67107d34514eec231070f42d2ee008e5c..bab5a6c1bcff734620ccb015f071d73b
// Paper end // Paper end
if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 1d65d8b3e21373b0f0d2c633742da52d6b208942..05eecaf3147051c44f9c4abce178c3126385c825 100644 index 6df13ebec8fbb11eb6e2b7469f9e4ebb44256894..62eba7fc2fd013bf17496896c2b7a88c95c070f1 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -148,8 +148,8 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -148,8 +148,8 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -291,7 +291,7 @@ index 1d65d8b3e21373b0f0d2c633742da52d6b208942..05eecaf3147051c44f9c4abce178c312
} }
public boolean isWithinRestriction() { public boolean isWithinRestriction() {
@@ -1775,4 +1775,56 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -1779,4 +1779,56 @@ public abstract class Mob extends LivingEntity implements Targeting {
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
} }
@@ -1251,7 +1251,7 @@ index f383928fc5b331ddf128bdcb6a23010d8fe088d3..6815d7350a82c6d32f60aa6116466ebd
float f1 = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F; float f1 = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F;
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index e42b0b19019ef74733fd19b08f882cccff920142..fdd99d6a9db230f9f68b0a78f41a16e7658c4c16 100644 index a7e8b544d7b05efe95182a03cabaf1993da9d839..0e871753024ae39538ed056d27fff98e6bdf8ae0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -63,6 +63,23 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo @@ -63,6 +63,23 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
@@ -1278,16 +1278,16 @@ index e42b0b19019ef74733fd19b08f882cccff920142..fdd99d6a9db230f9f68b0a78f41a16e7
@Override @Override
public float getWalkTargetValue(BlockPos pos, LevelReader world) { public float getWalkTargetValue(BlockPos pos, LevelReader world) {
return world.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : world.getPathfindingCostFromLightLevels(pos); return world.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : world.getPathfindingCostFromLightLevels(pos);
@@ -123,7 +140,7 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo @@ -127,7 +144,7 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
} else if (itemstack.is(Items.SHEARS) && this.readyForShearing()) { org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops);
// CraftBukkit start if (event != null) {
if (!CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand)) { if (event.isCancelled()) {
- return InteractionResult.PASS; - return InteractionResult.PASS;
+ return tryRide(player, hand); // Purpur + return tryRide(player, hand); // Purpur
}
drops = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getDrops());
} }
// CraftBukkit end @@ -151,7 +168,7 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
this.shear(SoundSource.PLAYERS);
@@ -144,7 +161,7 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
Optional<List<SuspiciousEffectHolder.EffectEntry>> optional = this.getEffectsFromItemStack(itemstack); Optional<List<SuspiciousEffectHolder.EffectEntry>> optional = this.getEffectsFromItemStack(itemstack);
if (optional.isEmpty()) { if (optional.isEmpty()) {
@@ -1817,7 +1817,7 @@ index 0af79daa357f53a8871e293b57e16c099e5d3f64..87c442fb198cad8671ad1419e589a5a6
public int getMaxSchoolSize() { public int getMaxSchoolSize() {
return 5; return 5;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index 55afa58f3df53ce548c7484d8fff62c903f9dc07..80b91cdaffc0af25b9a8b13281519cf093928e85 100644 index 1d80678f7e8f658e43616f0baf723f096a99122a..ffcb68cd299370d5a17ed92ba3814c8afe613cf9 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -119,10 +119,28 @@ public class Sheep extends Animal implements Shearable { @@ -119,10 +119,28 @@ public class Sheep extends Animal implements Shearable {
@@ -1850,7 +1850,7 @@ index 55afa58f3df53ce548c7484d8fff62c903f9dc07..80b91cdaffc0af25b9a8b13281519cf0
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D)); this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
this.goalSelector.addGoal(3, new TemptGoal(this, 1.1D, Ingredient.of(Items.WHEAT), false)); this.goalSelector.addGoal(3, new TemptGoal(this, 1.1D, Ingredient.of(Items.WHEAT), false));
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..04927f5f06d6dc14ad01319dd22583632c2c511b 100644 index b5d6857eaf2bed14adcb5f5e80d91b44eb8b0dcc..bc57978d89db43e97a38ea56c3541e8f6318c2d2 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -54,12 +54,31 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -54,12 +54,31 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -1893,16 +1893,16 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..04927f5f06d6dc14ad01319dd2258363
BlockState iblockdata = Blocks.SNOW.defaultBlockState(); BlockState iblockdata = Blocks.SNOW.defaultBlockState();
for (int i = 0; i < 4; ++i) { for (int i = 0; i < 4; ++i) {
@@ -154,7 +174,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -158,7 +178,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
if (itemstack.is(Items.SHEARS) && this.readyForShearing()) { org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops);
// CraftBukkit start if (event != null) {
if (!CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand)) { if (event.isCancelled()) {
- return InteractionResult.PASS; - return InteractionResult.PASS;
+ return tryRide(player, hand); // Purpur + return tryRide(player, hand); // Purpur
}
drops = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getDrops());
} }
// CraftBukkit end @@ -174,7 +194,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
this.shear(SoundSource.PLAYERS);
@@ -167,7 +187,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
return InteractionResult.sidedSuccess(this.level().isClientSide); return InteractionResult.sidedSuccess(this.level().isClientSide);
} else { } else {
@@ -2781,7 +2781,7 @@ index a6f3fba3b02b0b4d2a4e9e5205301c6f52d0188a..4eebfc27ded55e4d764d04f35d3e9c9e
protected void defineSynchedData() { protected void defineSynchedData() {
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index f56bb431be7d5f1a1b8edec41af1f3a28289316d..152111ff4c29e6cf13afeba8c9707f407c2b3531 100644 index e5b4aaa9e08dbafa46c92e3fce8b2ee9b0167530..b5b8a4fa5b9a016a38053326cc4ba9d665f467ee 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -107,6 +107,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -107,6 +107,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -2935,7 +2935,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..152111ff4c29e6cf13afeba8c9707f40
this.dragonFight.updateDragon(this); this.dragonFight.updateDragon(this);
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 256598e058db1fd34d36390e45ab9903768343cb..e03a01940eb5a5d7a3924a5ad1214258ce0f4b46 100644 index 2732ecac901d99ba44132faeddda194bf06e0193..926850c0b0c36c3e5601ddaeb86176b07af1cb07 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -84,16 +84,30 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -84,16 +84,30 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -3101,7 +3101,7 @@ index 256598e058db1fd34d36390e45ab9903768343cb..e03a01940eb5a5d7a3924a5ad1214258
int i; int i;
if (this.getInvulnerableTicks() > 0) { if (this.getInvulnerableTicks() > 0) {
@@ -583,11 +707,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -584,11 +708,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
} }
public int getAlternativeTarget(int headIndex) { public int getAlternativeTarget(int headIndex) {
@@ -4140,7 +4140,7 @@ index 0c11d9bef8f0129c541e30ad057612e881703b24..cfa324c6a75ac83cff4ba87034677d4e
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.0D); this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.0D);
} else { } else {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
index 06ab07fb5d8d0e2f97325890218a11fef551a0ba..7112789a74f90297277fc6175c912cac60c2ca01 100644 index b73dac8f68041f8a2e0752d70cc9d08b5cfd1cde..e78d869069bc018f29c5fbc6a7811806c4b2fb2f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java --- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -97,12 +97,31 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye @@ -97,12 +97,31 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
@@ -5114,7 +5114,7 @@ index 833563e237462ccfc1b730b8f5fb35340d0db854..2bed7b373813660139d2322dcd6b83f3
this.setTradingPlayer(player); this.setTradingPlayer(player);
this.openTradingScreen(player, this.getDisplayName(), 1); this.openTradingScreen(player, this.getDisplayName(), 1);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 7f3466340891b4409d1399ebeb2ca865d77841cd..6e37874dc437285b26bd8e4ad3d3af8c39c38aa5 100644 index ccc1caafb0ada52c7b99b7358253826f5390843e..47057f51e034b6695d0b294eaf461dfe6aeedb19 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -194,6 +194,19 @@ public abstract class Player extends LivingEntity { @@ -194,6 +194,19 @@ public abstract class Player extends LivingEntity {
@@ -5172,7 +5172,7 @@ index 78dd3365dc4d1265fc2102f740d75a384f5df5c5..4a2331c22a022881d66bcfd4134b0ffe
public boolean isPickable() { public boolean isPickable() {
return false; return false;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 17113544383fb4e6373d8f6151c536fecb00e0be..1c89cbf1a582604ed4be0849bd65dae5eb17f28a 100644 index 1c3e1153d08b59d29b3613fc3b50a4780aa7a3ac..7c8b90444aa635cddf480d49a92a180a1bfa9c34 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1227,4 +1227,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -1227,4 +1227,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -5204,7 +5204,7 @@ index 17113544383fb4e6373d8f6151c536fecb00e0be..1c89cbf1a582604ed4be0849bd65dae5
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index f67ec3f5f4b7e2f678609f2387cc8afa2adce161..51ed919b56ded23309be1093280a92331c090780 100644 index a36ffbbab5bbfec5a4a224dc5ee8812b98dd4d7c..2d934ed6b21ad2df88e1389dd1aa445aa6ccd1ff 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -591,6 +591,15 @@ public class CraftEventFactory { @@ -591,6 +591,15 @@ public class CraftEventFactory {

View File

@@ -34,7 +34,7 @@ index 75c278b67ad2b78766efd8f89c4c2ca7eb7cdcb2..dc99e7f0e6f173c1313c0d5e9ea5dd6b
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index bab5a6c1bcff734620ccb015f071d73b70bbc901..0ec25e8bc94b8abb144b47d60e6cfa54c360156f 100644 index 5e64293b7392e5a4b19a4c7303b0365d48f90115..928e24b7138017bd2d7284f585943f74a42e794f 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -206,7 +206,7 @@ index 6815d7350a82c6d32f60aa6116466ebd06a920f9..95ff109511c97d603aeaf9e73c49397a
@Override @Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index fdd99d6a9db230f9f68b0a78f41a16e7658c4c16..a2f77d030856056409f2d888e80818eeb6a46ee6 100644 index 0e871753024ae39538ed056d27fff98e6bdf8ae0..557592aa5799dca43c778ef7a0d3b98619b90b90 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -80,6 +80,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo @@ -80,6 +80,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
@@ -363,7 +363,7 @@ index 87c442fb198cad8671ad1419e589a5a67c4fdca8..742805994f29a18af444912b10af631d
public int getMaxSchoolSize() { public int getMaxSchoolSize() {
return 5; return 5;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index 80b91cdaffc0af25b9a8b13281519cf093928e85..c24299cb482beaef3e2e860475c66e068fa03eb1 100644 index ffcb68cd299370d5a17ed92ba3814c8afe613cf9..1d69558cccc6add5f02f1ff070c985bd5ec406c0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -136,6 +136,11 @@ public class Sheep extends Animal implements Shearable { @@ -136,6 +136,11 @@ public class Sheep extends Animal implements Shearable {
@@ -379,7 +379,7 @@ index 80b91cdaffc0af25b9a8b13281519cf093928e85..c24299cb482beaef3e2e860475c66e06
protected void registerGoals() { protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this); this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index 04927f5f06d6dc14ad01319dd22583632c2c511b..3ffd9dd16c80399842ba138ed60abd66cd312dcb 100644 index bc57978d89db43e97a38ea56c3541e8f6318c2d2..0c128449fbe51aa7e437568ba4bc857c1175df2b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -71,6 +71,11 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -71,6 +71,11 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -759,7 +759,7 @@ index 13096fa2032679006f4264e03fdf86a71454f3ca..a5fd822713b56ebb2bec51364be71557
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData() {
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 152111ff4c29e6cf13afeba8c9707f407c2b3531..e9cdda0dd902cade5cc32acf4dcdc6c3174e0191 100644 index b5b8a4fa5b9a016a38053326cc4ba9d665f467ee..1f6e6a2f676f21470ee4f04bf4df68f09a053d64 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -186,6 +186,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -186,6 +186,11 @@ public class EnderDragon extends Mob implements Enemy {
@@ -775,7 +775,7 @@ index 152111ff4c29e6cf13afeba8c9707f407c2b3531..e9cdda0dd902cade5cc32acf4dcdc6c3
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index e03a01940eb5a5d7a3924a5ad1214258ce0f4b46..8ae399d7e0ff706b0486f198b16dadfe8b5ca32a 100644 index 926850c0b0c36c3e5601ddaeb86176b07af1cb07..29957114850eb897b54997dcad0753e0c895ce6e 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -112,6 +112,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -112,6 +112,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -790,7 +790,7 @@ index e03a01940eb5a5d7a3924a5ad1214258ce0f4b46..8ae399d7e0ff706b0486f198b16dadfe
@Override @Override
protected PathNavigation createNavigation(Level world) { protected PathNavigation createNavigation(Level world) {
FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world); FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world);
@@ -427,7 +432,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -428,7 +433,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
this.setInvulnerableTicks(i); this.setInvulnerableTicks(i);
if (this.tickCount % 10 == 0) { if (this.tickCount % 10 == 0) {
@@ -1123,7 +1123,7 @@ index cfa324c6a75ac83cff4ba87034677d4e9415189e..28795558000d76fd255faabc79cc4560
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
index 7112789a74f90297277fc6175c912cac60c2ca01..5bdeac3ed1bbc70d0620a548f03792e5df212629 100644 index e78d869069bc018f29c5fbc6a7811806c4b2fb2f..9efda5d6cf9a235b5039ed622e917124aae7be82 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java --- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -114,6 +114,11 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye @@ -114,6 +114,11 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 9a7b5c2bae8e3c1788068462d2f60665a8064a77..accce07f973962899696336c541403b6e5afb18a 100644 index 05131b298048de6418cfa103d883039b55740dfa..04ac541f71bac6c8d26a92b61fd25574a49bbc1c 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1183,6 +1183,27 @@ public abstract class PlayerList { @@ -1189,6 +1189,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player); this.server.getCommands().sendCommands(player);
} // Paper } // Paper
@@ -37,7 +37,7 @@ index 9a7b5c2bae8e3c1788068462d2f60665a8064a77..accce07f973962899696336c541403b6
public boolean isWhiteListed(GameProfile profile) { public boolean isWhiteListed(GameProfile profile) {
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 6e37874dc437285b26bd8e4ad3d3af8c39c38aa5..4495a3e7ea8f307cade39e42ac2aebf85a832537 100644 index 47057f51e034b6695d0b294eaf461dfe6aeedb19..0ef84c64cef519e40d2d611b290f098b14fe31c9 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity { @@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity {
@@ -230,7 +230,7 @@ index 977b77547f7ba62cef3640cf8d4f1c8e7cded53a..beae43e9b6fe447e7515d878ac175f46
case DISPENSER: case DISPENSER:
case DROPPER: case DROPPER:
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
index 3b0d3e9a067fccb10122c273aaf658ba240aa716..9b7fd460d3393e07970c66fec7f35a918675cd58 100644 index af1ae3dacb628da23f7d2988c6e76d3fb2d64103..4ee2d501f882279b48edb4b8bf0824587c276bf6 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -84,7 +84,7 @@ public class CraftInventory implements Inventory { @@ -84,7 +84,7 @@ public class CraftInventory implements Inventory {

View File

@@ -78,11 +78,11 @@ index f709667d2efab5f7dac22bb6e4b0bf32917f71e4..387e2423d820e4df1d226ce6159a361d
return this.stats; 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 diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 44b8b9dfc9182a6ce0d01b003749946e90e3aedb..57fb7dc5bb61f4433c6569c8d46656762dcc0cc1 100644 index 741b108b2c6ed243c8f4e9124a31a3005e0ce594..66a41a3ecb284ed99a36ea0acb423dc0cde11893 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -325,6 +325,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private boolean hasMoved; // Spigot private boolean justTeleported = false;
// CraftBukkit end // CraftBukkit end
+ // Purpur start + // Purpur start
@@ -102,7 +102,7 @@ index 44b8b9dfc9182a6ce0d01b003749946e90e3aedb..57fb7dc5bb61f4433c6569c8d4665676
@Override @Override
public void tick() { public void tick() {
if (this.ackBlockChangesUpTo > -1) { if (this.ackBlockChangesUpTo > -1) {
@@ -393,6 +407,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -392,6 +406,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} }
if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits. if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits.
@@ -115,16 +115,16 @@ index 44b8b9dfc9182a6ce0d01b003749946e90e3aedb..57fb7dc5bb61f4433c6569c8d4665676
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
} }
@@ -641,6 +661,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -642,6 +662,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
+ if (!to.getWorld().getUID().equals(from.getWorld().getUID()) || to.getBlockX() != from.getBlockX() || to.getBlockY() != from.getBlockY() || to.getBlockZ() != from.getBlockZ() || to.getYaw() != from.getYaw() || to.getPitch() != from.getPitch()) this.player.resetLastActionTime(); // Purpur + if (!to.getWorld().getUID().equals(from.getWorld().getUID()) || to.getBlockX() != from.getBlockX() || to.getBlockY() != from.getBlockY() || to.getBlockZ() != from.getBlockZ() || to.getYaw() != from.getYaw() || to.getPitch() != from.getPitch()) this.player.resetLastActionTime(); // Purpur
+ +
// Skip the first time we do this Location oldTo = to.clone();
if (true) { // Spigot - don't skip any move events PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
Location oldTo = to.clone(); this.cserver.getPluginManager().callEvent(event);
@@ -1495,7 +1517,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1494,7 +1516,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (!event.isAllowed()) { if (!event.isAllowed()) {
flag2 = true; // Paper - diff on change, this should be moved wrongly flag2 = true; // Paper - diff on change, this should be moved wrongly
if (event.getLogWarning()) if (event.getLogWarning())
@@ -133,15 +133,15 @@ index 44b8b9dfc9182a6ce0d01b003749946e90e3aedb..57fb7dc5bb61f4433c6569c8d4665676
} }
// Paper end // Paper end
} }
@@ -1557,6 +1579,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1564,6 +1586,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
+ if (!to.getWorld().getUID().equals(from.getWorld().getUID()) || to.getBlockX() != from.getBlockX() || to.getBlockY() != from.getBlockY() || to.getBlockZ() != from.getBlockZ() || to.getYaw() != from.getYaw() || to.getPitch() != from.getPitch()) this.player.resetLastActionTime(); // Purpur + if (!to.getWorld().getUID().equals(from.getWorld().getUID()) || to.getBlockX() != from.getBlockX() || to.getBlockY() != from.getBlockY() || to.getBlockZ() != from.getBlockZ() || to.getYaw() != from.getYaw() || to.getPitch() != from.getPitch()) this.player.resetLastActionTime(); // Purpur
+ +
// Skip the first time we do this Location oldTo = to.clone();
if (from.getX() != Double.MAX_VALUE) { PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
Location oldTo = to.clone(); this.cserver.getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/server/players/SleepStatus.java b/src/main/java/net/minecraft/server/players/SleepStatus.java diff --git a/src/main/java/net/minecraft/server/players/SleepStatus.java b/src/main/java/net/minecraft/server/players/SleepStatus.java
index 823efad652d8ff9e96b99375b102fef6f017716e..caa8a69bde0c212c36dd990a67836ac2f95548c0 100644 index 823efad652d8ff9e96b99375b102fef6f017716e..caa8a69bde0c212c36dd990a67836ac2f95548c0 100644
--- a/src/main/java/net/minecraft/server/players/SleepStatus.java --- a/src/main/java/net/minecraft/server/players/SleepStatus.java
@@ -192,7 +192,7 @@ index ac5e5676b194a2a99e5cf53eb89c1152cac963b8..872454743f6dedc27519a13566559195
if (baseEntity == null) { if (baseEntity == null) {
if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level().getDifficulty() == Difficulty.PEACEFUL)) { if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level().getDifficulty() == Difficulty.PEACEFUL)) {
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 4495a3e7ea8f307cade39e42ac2aebf85a832537..0e69d0f1599d3b0e704b654dc296465b56cde2fb 100644 index 0ef84c64cef519e40d2d611b290f098b14fe31c9..27d5b180d0b9acd883726c07b5507e09509c6ba1 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -189,6 +189,13 @@ public abstract class Player extends LivingEntity { @@ -189,6 +189,13 @@ public abstract class Player extends LivingEntity {
@@ -223,7 +223,7 @@ index aaa07fcd4b32fe0de88142ab30378327a01f1729..bc8555d21d418f9da37cc089904f7cb0
if (range < 0.0D || d < range * range) { if (range < 0.0D || d < range * range) {
return true; return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 3bf86f27beada77d0abf6b91a8fc51e19cc3d787..5f8b485ed8e0444c8c7e2a438cb65113d35bec68 100644 index 83457c97f8c182ca63311f4a0186e1f95adfbdbb..45b4cf1af463a0600edd53b4390a6e3938f5eaf8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -524,10 +524,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -524,10 +524,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -243,7 +243,7 @@ index 3bf86f27beada77d0abf6b91a8fc51e19cc3d787..5f8b485ed8e0444c8c7e2a438cb65113
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) { for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) { if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -3332,5 +3337,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3373,5 +3378,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean usesPurpurClient() { public boolean usesPurpurClient() {
return getHandle().purpurClient; return getHandle().purpurClient;
} }

View File

@@ -17,10 +17,10 @@ index 1643186bcb2caf5d29fd551afd35830726dbb80a..d53e0b67d847dfec2f4b118b5ca3f0ed
public final boolean spawnNpcs = this.get("spawn-npcs", true); public final boolean spawnNpcs = this.get("spawn-npcs", true);
public final boolean pvp = this.get("pvp", 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 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index eb6b2727d43ca991ef99a88413de95c1546b7696..95ecdbc0d06d4ca7afb1be62d25a09cda33a236b 100644 index c6b3233e5b20143bd0566115c13fb34f46913858..f807973f6a074709fa5cba96e50e6505d61f4c23 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3249,4 +3249,11 @@ public final class CraftServer implements Server { @@ -3253,4 +3253,11 @@ public final class CraftServer implements Server {
} }
// Paper end // Paper end

View File

@@ -25,10 +25,10 @@ index c19d456168d36c1c2ea7823f47b25644798a97c7..9c176d77420ffe0acdb57b333602c5e2
} else curTime = Util.getNanos(); // Paper } else curTime = Util.getNanos(); // Paper
// Spigot end // Spigot end
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 95ecdbc0d06d4ca7afb1be62d25a09cda33a236b..69670bf1c4713b70fb731ba43b8d5aea7922393b 100644 index f807973f6a074709fa5cba96e50e6505d61f4c23..e8dda762e3d1c95bbda35e855b16ae4022769eae 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3255,5 +3255,10 @@ public final class CraftServer implements Server { @@ -3259,5 +3259,10 @@ public final class CraftServer implements Server {
public String getServerName() { public String getServerName() {
return this.getProperties().serverName; return this.getProperties().serverName;
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix cow rotation when shearing mooshroom
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index a2f77d030856056409f2d888e80818eeb6a46ee6..f27ca76b153dc33d20dc46a57f1dda4e91e82883 100644 index 557592aa5799dca43c778ef7a0d3b98619b90b90..c58b3ff4e7e5dba4543a77c2c4d9bad3911fba98 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -198,7 +198,13 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo @@ -221,7 +221,13 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
// this.discard(); // CraftBukkit - moved down // this.discard(); // CraftBukkit - moved down
entitycow.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); entitycow.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
entitycow.setHealth(this.getHealth()); entitycow.setHealth(this.getHealth());

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Snowman drop and put back pumpkin
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index 3ffd9dd16c80399842ba138ed60abd66cd312dcb..bd9dd01e9140c2ad0ab9859b9a455f73ab04a253 100644 index 0c128449fbe51aa7e437568ba4bc857c1175df2b..9c8efa5dcd4ec78a4e071d6b06871d09b93a531d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -191,6 +191,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -198,6 +198,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
} }
return InteractionResult.sidedSuccess(this.level().isClientSide); return InteractionResult.sidedSuccess(this.level().isClientSide);
@@ -23,14 +23,18 @@ index 3ffd9dd16c80399842ba138ed60abd66cd312dcb..bd9dd01e9140c2ad0ab9859b9a455f73
} else { } else {
return tryRide(player, hand); // Purpur return tryRide(player, hand); // Purpur
} }
@@ -202,6 +210,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -211,6 +219,11 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
if (!this.level().isClientSide()) {
this.setPumpkin(false); @Override
this.forceDrops = true; // CraftBukkit public java.util.List<ItemStack> generateDefaultDrops() {
+ if (level().purpurConfig.snowGolemDropsPumpkin) // Purpur + // Purpur start
this.spawnAtLocation(new ItemStack(Items.CARVED_PUMPKIN), 1.7F); + if (!level().purpurConfig.snowGolemDropsPumpkin) {
this.forceDrops = false; // CraftBukkit + return Shearable.super.generateDefaultDrops(0);
} + }
+ // Purpur end
return java.util.Collections.singletonList(new ItemStack(Items.CARVED_PUMPKIN));
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 05b7788d168cadb594613d81cbff0726a63d81d2..a48dbad212789f90525e669ea81b1042c53cd06a 100644 index 05b7788d168cadb594613d81cbff0726a63d81d2..a48dbad212789f90525e669ea81b1042c53cd06a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index accce07f973962899696336c541403b6e5afb18a..e46fcb5c8bf1047e3f330fd525166aee5f0b646b 100644 index 04ac541f71bac6c8d26a92b61fd25574a49bbc1c..0ced4627e0374d7e9fcbff256505b190021efd3f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1175,6 +1175,7 @@ public abstract class PlayerList { @@ -1181,6 +1181,7 @@ public abstract class PlayerList {
} else { } else {
b0 = (byte) (24 + permissionLevel); b0 = (byte) (24 + permissionLevel);
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add player death exp control options
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 0e69d0f1599d3b0e704b654dc296465b56cde2fb..fad32d590828fe2f9acec80c76a452c1fd7f4005 100644 index 27d5b180d0b9acd883726c07b5507e09509c6ba1..783f3fa87c2142a6e220dd4e199040b671954b15 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1919,9 +1919,19 @@ public abstract class Player extends LivingEntity { @@ -1935,9 +1935,19 @@ public abstract class Player extends LivingEntity {
@Override @Override
public int getExperienceReward() { public int getExperienceReward() {
if (!this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && !this.isSpectator()) { if (!this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && !this.isSpectator()) {

View File

@@ -27,10 +27,10 @@ index aa0f09a18ea781e027ea70928b30d3e93061120f..5cb8f1e13f4889792395d6b498c0ade2
return true; return true;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index b13b0be860df85af973c36f0ef10bfe09aa0aaf9..93f6dc91b1ea9191941933aac42b8e4ddb1f028d 100644 index ea437adbb8a96c27fb2dd5de8c4ccda3489eddd0..faff675121dd1d0064376e0281bb357f78119097 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1897,4 +1897,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1909,4 +1909,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
} }
// Paper end - notify observers even if grow failed // Paper end - notify observers even if grow failed

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 diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 57fb7dc5bb61f4433c6569c8d46656762dcc0cc1..166943d26c1123d07080cb1d0e0f081cfff06246 100644 index 66a41a3ecb284ed99a36ea0acb423dc0cde11893..486336073afb4dcc486fbc2c69c887e2443a7058 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1234,13 +1234,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1232,13 +1232,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
itemstack1.setTag(nbttagcompound.copy()); itemstack1.setTag(nbttagcompound.copy());
} }
@@ -28,7 +28,7 @@ index 57fb7dc5bb61f4433c6569c8d46656762dcc0cc1..166943d26c1123d07080cb1d0e0f081c
this.updateBookPages(pages, (s) -> { this.updateBookPages(pages, (s) -> {
return Component.Serializer.toJson(Component.literal(s)); return Component.Serializer.toJson(Component.literal(s));
@@ -1252,10 +1255,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1250,10 +1253,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void updateBookPages(List<FilteredText> list, UnaryOperator<String> unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit private void updateBookPages(List<FilteredText> list, UnaryOperator<String> unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit
ListTag nbttaglist = new ListTag(); ListTag nbttaglist = new ListTag();
@@ -44,7 +44,7 @@ index 57fb7dc5bb61f4433c6569c8d46656762dcc0cc1..166943d26c1123d07080cb1d0e0f081c
Objects.requireNonNull(nbttaglist); Objects.requireNonNull(nbttaglist);
stream.forEach(nbttaglist::add); stream.forEach(nbttaglist::add);
@@ -1265,11 +1271,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1263,11 +1269,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
for (int j = list.size(); i < j; ++i) { for (int j = list.size(); i < j; ++i) {
FilteredText filteredtext = (FilteredText) list.get(i); FilteredText filteredtext = (FilteredText) list.get(i);
@@ -58,7 +58,7 @@ index 57fb7dc5bb61f4433c6569c8d46656762dcc0cc1..166943d26c1123d07080cb1d0e0f081c
} }
} }
@@ -1282,6 +1288,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1280,6 +1286,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(this.player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(this.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 diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 166943d26c1123d07080cb1d0e0f081cfff06246..18c614881388610fb78bd5101c54ffbb3c753e55 100644 index 486336073afb4dcc486fbc2c69c887e2443a7058..6c7ad991ad5ec65570707fb6489714d59df6540c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2742,6 +2742,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2749,6 +2749,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
AABB axisalignedbb = entity.getBoundingBox(); AABB axisalignedbb = entity.getBoundingBox();
if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) { if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) {
@@ -17,7 +17,7 @@ index 166943d26c1123d07080cb1d0e0f081cfff06246..18c614881388610fb78bd5101c54ffbb
private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit
ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand); ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand);
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index a05a7cf2c28b62011a3477c5155a05a93ecab548..906f3ed7883cd220734a92a5f032ec89674f5b97 100644 index d2a40f97fe018c34aba8900460f4daa05b023c9c..f8bb0b40017b4c8b0f499620f088fa0a13c90904 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -136,6 +136,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -136,6 +136,7 @@ public abstract class Mob extends LivingEntity implements Targeting {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Customizable wither health and healing
Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often. Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often.
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 8ae399d7e0ff706b0486f198b16dadfe8b5ca32a..84bd2cf1797f68eadbd0a21f2cfb6ce85710d928 100644 index 29957114850eb897b54997dcad0753e0c895ce6e..93cf322ea4943fea127dc89eed900a2ca21b096c 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -525,8 +525,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -526,8 +526,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
} }
} }

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 diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 18c614881388610fb78bd5101c54ffbb3c753e55..935d8b9f81d243716f340b0a16f6f99bc0bf88a8 100644 index 6c7ad991ad5ec65570707fb6489714d59df6540c..6bc15456b036e2429f7433e74fae5ba86481608b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1154,10 +1154,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1152,10 +1152,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax; int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax;
double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier)); double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier));
long byteAllowed = maxBookPageSize; long byteAllowed = maxBookPageSize;
@@ -24,7 +24,7 @@ index 18c614881388610fb78bd5101c54ffbb3c753e55..935d8b9f81d243716f340b0a16f6f99b
server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause
return; return;
} }
@@ -1181,6 +1186,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1179,6 +1184,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (byteTotal > byteAllowed) { 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()); 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,7 +5,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 1ff77c524464a256913b063bf621b850255885ba..b0071e7f3b540569364a53bc6c5c022d2ea8a7cf 100644 index b3930bf7f9d93203907d6b39e29dfea06087b8d1..43bbc2f776048f006ad5f7a80e83ae2e46baa939 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1807,7 +1807,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1807,7 +1807,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -18,7 +18,7 @@ index 1ff77c524464a256913b063bf621b850255885ba..b0071e7f3b540569364a53bc6c5c022d
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState(); BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index f04fd84be60d5fc866aa6bf0b711c7e34c5c6369..7de69da2c723f1ad4a2e62e792a49cbc47202977 100644 index 1f57de58a38946763e5160e59e4157957aadafb1..1cec1afb15755e15f5d59d562cdf8d3281973062 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -705,7 +705,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -705,7 +705,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -118,7 +118,7 @@ index c25776ef9805f3f4e31ca5b027e6577526e48819..86502ef70f2213191d1348ef98969c5c
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index d3da7487f911ff791dca5f7b546dccda751fe44c..84e0a41620fd52af0cd22dc92fd13ee4efd206fb 100644 index f59fac2fd4e6fe710f6afa622bc86f912986f14a..55c85dbafb2278c8e247492537faec4fd77c9ec6 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -127,7 +127,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -127,7 +127,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -131,7 +131,7 @@ index d3da7487f911ff791dca5f7b546dccda751fe44c..84e0a41620fd52af0cd22dc92fd13ee4
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index cfe7086b0259eefcd221a54529c111f7eb1adc38..5381ee91770a0f1012b5478d6615540263e46533 100644 index 21599595ccd33ab57bceaabb3c27d257cb0ba598..f5dfcf2aefebf9faabd962d6f331de88ae26eb26 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -604,7 +604,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -604,7 +604,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -144,10 +144,10 @@ index cfe7086b0259eefcd221a54529c111f7eb1adc38..5381ee91770a0f1012b5478d66155402
// flag1 = this.level().removeBlock(blockposition, false) || flag1; // flag1 = this.level().removeBlock(blockposition, false) || flag1;
flag1 = true; flag1 = true;
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 84bd2cf1797f68eadbd0a21f2cfb6ce85710d928..bd4658651ba8bccdc5b8a7d59e70e527942615dd 100644 index 93cf322ea4943fea127dc89eed900a2ca21b096c..5e61463f5d25b42165813df43c30246dff8a4a7e 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -492,7 +492,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -493,7 +493,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
if (this.destroyBlocksTick > 0) { if (this.destroyBlocksTick > 0) {
--this.destroyBlocksTick; --this.destroyBlocksTick;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 5643f35f02fff5a2d4072d246f8646772695b797..dc7804371b65c43367ec87e79433106e8a11a6ff 100644 index df8baf2059cdfed3f0c43496fba843b8b6819281..aa10cd2e0ee7b0d421c223de390e671d401f87fc 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -1188,6 +1188,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -1189,6 +1189,7 @@ public class EnderDragon extends Mob implements Enemy {
@Override @Override
protected boolean canRide(Entity entity) { protected boolean canRide(Entity entity) {
@@ -17,10 +17,10 @@ index 5643f35f02fff5a2d4072d246f8646772695b797..dc7804371b65c43367ec87e79433106e
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index aea64f97be2430e92cb45d43e1b50c0e32eebdf9..81084ec809a2c4602d92f3736fab4eeaf80e6fa4 100644 index 73930b4eea2bd632c390b79118ecafad84cfa44a..ac7e54e2bfc1ca41fd8082c453c1f99fa89e77c2 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -738,6 +738,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -739,6 +739,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@Override @Override
protected boolean canRide(Entity entity) { protected boolean canRide(Entity entity) {

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 diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 935d8b9f81d243716f340b0a16f6f99bc0bf88a8..78dcf97e46b6888d25cc685bc4216f02b4b079da 100644 index 6bc15456b036e2429f7433e74fae5ba86481608b..bf50d67e39ae66e789748c28aefb87c29f819747 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1641,6 +1641,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1645,6 +1645,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.resetFallDistance(); this.player.resetFallDistance();
} }
@@ -22,7 +22,7 @@ index 935d8b9f81d243716f340b0a16f6f99bc0bf88a8..78dcf97e46b6888d25cc685bc4216f02
this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5);
this.lastGoodX = this.player.getX(); this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY(); this.lastGoodY = this.player.getY();
@@ -1692,6 +1699,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1696,6 +1703,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return false; return false;
} }
// Paper end - optimise out extra getCubes // Paper end - optimise out extra getCubes

View File

@@ -32,7 +32,7 @@ index 7ecc956aa2907090c9b0c9dcaf674330bb18f3d3..9552fbbb3bebe5adc2361f4abb676bfa
return this.hardCollides; return this.hardCollides;
} }
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 879ddc26235e9361afe55fffb5ca64cb63dfe552..09c24ff6dd0c8bdabc25e69101f229b982822ca5 100644 index bd58b25fb38db9ecfc4cc0ce844e7e0afd05bd2b..e4e06d9bb23d1b68f5c268511bac1c1d905a297e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -92,10 +92,10 @@ index 879ddc26235e9361afe55fffb5ca64cb63dfe552..09c24ff6dd0c8bdabc25e69101f229b9
public boolean isSensitiveToWater() { public boolean isSensitiveToWater() {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 7de69da2c723f1ad4a2e62e792a49cbc47202977..31f1a485fc3e8d40f7181a5f8af4f56d9c25e2fc 100644 index 1cec1afb15755e15f5d59d562cdf8d3281973062..4328b688b8ef5d44d4ca5501e090c943e8d598b3 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1754,17 +1754,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -1758,17 +1758,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
} }
public boolean isSunBurnTick() { public boolean isSunBurnTick() {
@@ -353,7 +353,7 @@ index 52a576a16bfeb7dc6ec97280f9a5e0f408d71e46..9b1ae2fa1681f1212b6a09d5b10b1663
// Paper end // Paper end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 98d2ef7870c921093a9dbaf0f4de77d86ef81d44..bfd8f6d85272f3ecbb0f7fc5fc92d2055205c0e0 100644 index 001b9d5aef4c2d9fb272dd187d0d0bd001de5693..ea5ac1f53309fdd30aad40fd4a092f297d76fd61 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -83,6 +83,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -83,6 +83,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Burp delay, burp after eating food fills hunger bar
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 1380a9962d1a9706b5137af8843f0e3fa082b533..5631240aed1c032faeb291358e40180f8aa40e49 100644 index f05a2c6d71af599da07cd08bb16f14ebd46dc7ee..5a05e16bfff41dbae6f887a457259a22101c4ee8 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -184,6 +184,7 @@ public abstract class Player extends LivingEntity { @@ -184,6 +184,7 @@ public abstract class Player extends LivingEntity {
@@ -30,7 +30,7 @@ index 1380a9962d1a9706b5137af8843f0e3fa082b533..5631240aed1c032faeb291358e40180f
this.noPhysics = this.isSpectator(); this.noPhysics = this.isSpectator();
if (this.isSpectator()) { if (this.isSpectator()) {
this.setOnGround(false); this.setOnGround(false);
@@ -2297,7 +2304,7 @@ public abstract class Player extends LivingEntity { @@ -2313,7 +2320,7 @@ public abstract class Player extends LivingEntity {
public ItemStack eat(Level world, ItemStack stack) { public ItemStack eat(Level world, ItemStack stack) {
this.getFoodData().eat(stack.getItem(), stack); this.getFoodData().eat(stack.getItem(), stack);
this.awardStat(Stats.ITEM_USED.get(stack.getItem())); this.awardStat(Stats.ITEM_USED.get(stack.getItem()));

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Player ridable in water option
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 952bf54a96f3ee84059f13c5821af2cfafa05c60..fd67cefb971b394042c0fdd845c20cf55d8efc2f 100644 index f262fc2069895b302073c09a58412b9e980e6660..dca769857dbf045bf2184f7761e9a09933858b51 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -2025,6 +2025,11 @@ public abstract class Player extends LivingEntity { @@ -2041,6 +2041,11 @@ public abstract class Player extends LivingEntity {
return this.inventory.armor; return this.inventory.armor;
} }

View File

@@ -223,10 +223,10 @@ index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..91fbc0cfc84045e32a4ee16fba8164de
+ // Purpur end - OfflinePlayer API + // 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 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index df8f06c898155955fed05c0b41b8ce14b13ec920..55d07278e635f9934418ac5c4e679e99b0b5dbd1 100644 index cf57e41f23bb6bbdaee201966d70fce49df95ceb..e7886daefcb5f4890b86b5f6962b40b1bbcb5183 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2599,6 +2599,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -2640,6 +2640,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f; return this.getHandle().getAbilities().walkingSpeed * 2f;
} }

View File

@@ -36,10 +36,10 @@ index 5de06447de2ab2c45debf314aecd39722d4a7af6..3a50342ff3e8b9685b5595bf78c05bfe
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 78dcf97e46b6888d25cc685bc4216f02b4b079da..92e10daff379ed5a3b9cff6d3ab12bd96ab62da1 100644 index bf50d67e39ae66e789748c28aefb87c29f819747..13dadd9824a75cd26053aeb93cc95f5bba0622a5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2051,6 +2051,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2055,6 +2055,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean cancelled; boolean cancelled;
if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) {

View File

@@ -5,31 +5,23 @@ Subject: [PATCH] Potion NamespacedKey
diff --git a/src/main/java/net/minecraft/world/effect/MobEffectInstance.java b/src/main/java/net/minecraft/world/effect/MobEffectInstance.java diff --git a/src/main/java/net/minecraft/world/effect/MobEffectInstance.java b/src/main/java/net/minecraft/world/effect/MobEffectInstance.java
index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6c5b7ed91 100644 index bf304db1f9506d3e83d16cd632b9155c39346634..d94497083f3da89dbef6479ef8f70591e630e3e7 100644
--- a/src/main/java/net/minecraft/world/effect/MobEffectInstance.java --- a/src/main/java/net/minecraft/world/effect/MobEffectInstance.java
+++ b/src/main/java/net/minecraft/world/effect/MobEffectInstance.java +++ b/src/main/java/net/minecraft/world/effect/MobEffectInstance.java
@@ -16,6 +16,7 @@ import net.minecraft.util.ExtraCodecs; @@ -36,6 +36,7 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
import net.minecraft.util.Mth;
import net.minecraft.world.entity.LivingEntity;
import org.slf4j.Logger;
+import org.bukkit.NamespacedKey;
public class MobEffectInstance implements Comparable<MobEffectInstance> {
private static final Logger LOGGER = LogUtils.getLogger();
@@ -35,6 +36,7 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
private boolean visible;
private boolean showIcon; private boolean showIcon;
@Nullable @Nullable
+ private NamespacedKey key; // Purpur - add key public MobEffectInstance hiddenEffect;
private MobEffectInstance hiddenEffect; + private org.bukkit.NamespacedKey key; // Purpur - add key
private final Optional<MobEffectInstance.FactorData> factorData; private final Optional<MobEffectInstance.FactorData> factorData;
@@ -54,17 +56,36 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> { public MobEffectInstance(MobEffect type) {
@@ -54,17 +55,36 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
this(type, duration, amplifier, ambient, visible, visible); this(type, duration, amplifier, ambient, visible, visible);
} }
+ // Purpur start + // Purpur start
+ public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean visible, @Nullable NamespacedKey key) { + public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean visible, @Nullable org.bukkit.NamespacedKey key) {
+ this(type, duration, amplifier, ambient, visible, visible, key); + this(type, duration, amplifier, ambient, visible, visible, key);
+ } + }
+ // Purpur end + // Purpur end
@@ -37,20 +29,20 @@ index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6
public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon) { public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon) {
- this(type, duration, amplifier, ambient, showParticles, showIcon, (MobEffectInstance)null, type.createFactorData()); - this(type, duration, amplifier, ambient, showParticles, showIcon, (MobEffectInstance)null, type.createFactorData());
+ // Purpur start + // Purpur start
+ this(type, duration, amplifier, ambient, showParticles, showIcon, (MobEffectInstance)null, type.createFactorData(), (NamespacedKey)null); + this(type, duration, amplifier, ambient, showParticles, showIcon, (MobEffectInstance)null, type.createFactorData(), (org.bukkit.NamespacedKey)null);
+ } + }
+ +
+ public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon, @Nullable NamespacedKey key) { + public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon, @Nullable org.bukkit.NamespacedKey key) {
+ this(type, duration, amplifier, ambient, showParticles, showIcon, (MobEffectInstance)null, type.createFactorData(), key); + this(type, duration, amplifier, ambient, showParticles, showIcon, (MobEffectInstance)null, type.createFactorData(), key);
+ // Purpur end + // Purpur end
} }
public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon, @Nullable MobEffectInstance hiddenEffect, Optional<MobEffectInstance.FactorData> factorCalculationData) { public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon, @Nullable MobEffectInstance hiddenEffect, Optional<MobEffectInstance.FactorData> factorCalculationData) {
+ // Purpur start + // Purpur start
+ this(type, duration, amplifier, ambient, showParticles, showIcon, hiddenEffect, factorCalculationData, (NamespacedKey) null); + this(type, duration, amplifier, ambient, showParticles, showIcon, hiddenEffect, factorCalculationData, (org.bukkit.NamespacedKey) null);
+ } + }
+ +
+ public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon, @Nullable MobEffectInstance hiddenEffect, Optional<MobEffectInstance.FactorData> factorCalculationData, @Nullable NamespacedKey key) { + public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon, @Nullable MobEffectInstance hiddenEffect, Optional<MobEffectInstance.FactorData> factorCalculationData, @Nullable org.bukkit.NamespacedKey key) {
+ // Purpur end + // Purpur end
this.effect = type; this.effect = type;
this.duration = duration; this.duration = duration;
@@ -62,7 +54,7 @@ index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6
this.hiddenEffect = hiddenEffect; this.hiddenEffect = hiddenEffect;
this.factorData = factorCalculationData; this.factorData = factorCalculationData;
} }
@@ -85,6 +106,7 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> { @@ -85,6 +105,7 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
this.ambient = that.ambient; this.ambient = that.ambient;
this.visible = that.visible; this.visible = that.visible;
this.showIcon = that.showIcon; this.showIcon = that.showIcon;
@@ -70,7 +62,7 @@ index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6
} }
public boolean update(MobEffectInstance that) { public boolean update(MobEffectInstance that) {
@@ -129,6 +151,13 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> { @@ -129,6 +150,13 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
bl = true; bl = true;
} }
@@ -84,7 +76,7 @@ index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6
return bl; return bl;
} }
@@ -172,6 +201,17 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> { @@ -172,6 +200,17 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
return this.showIcon; return this.showIcon;
} }
@@ -94,7 +86,7 @@ index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6
+ } + }
+ +
+ @Nullable + @Nullable
+ public NamespacedKey getKey() { + public org.bukkit.NamespacedKey getKey() {
+ return this.key; + return this.key;
+ } + }
+ // Purpur end + // Purpur end
@@ -102,7 +94,7 @@ index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6
public boolean tick(LivingEntity entity, Runnable overwriteCallback) { public boolean tick(LivingEntity entity, Runnable overwriteCallback) {
if (this.hasRemainingDuration()) { if (this.hasRemainingDuration()) {
int i = this.isInfiniteDuration() ? entity.tickCount : this.duration; int i = this.isInfiniteDuration() ? entity.tickCount : this.duration;
@@ -232,6 +272,12 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> { @@ -232,6 +271,12 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
string = string + ", Show Icon: false"; string = string + ", Show Icon: false";
} }
@@ -115,7 +107,7 @@ index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6
return string; return string;
} }
@@ -247,7 +293,7 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> { @@ -247,7 +292,7 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
return false; return false;
} else { } else {
MobEffectInstance mobEffectInstance = (MobEffectInstance)object; MobEffectInstance mobEffectInstance = (MobEffectInstance)object;
@@ -124,7 +116,7 @@ index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6
} }
} }
@@ -272,6 +318,11 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> { @@ -272,6 +317,11 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
nbt.putBoolean("ambient", this.isAmbient()); nbt.putBoolean("ambient", this.isAmbient());
nbt.putBoolean("show_particles", this.isVisible()); nbt.putBoolean("show_particles", this.isVisible());
nbt.putBoolean("show_icon", this.showIcon()); nbt.putBoolean("show_icon", this.showIcon());
@@ -136,21 +128,21 @@ index 68e1b8271475996020af50b3b2cf04cd25aa6c85..4f2fcbcf90d6f5ee89e35c993a65cae6
if (this.hiddenEffect != null) { if (this.hiddenEffect != null) {
CompoundTag compoundTag = new CompoundTag(); CompoundTag compoundTag = new CompoundTag();
this.hiddenEffect.save(compoundTag); this.hiddenEffect.save(compoundTag);
@@ -306,6 +357,13 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> { @@ -306,6 +356,13 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
bl3 = nbt.getBoolean("show_icon"); bl3 = nbt.getBoolean("show_icon");
} }
+ // Purpur start + // Purpur start
+ NamespacedKey key = null; + org.bukkit.NamespacedKey key = null;
+ if (nbt.contains("key")) { + if (nbt.contains("key")) {
+ key = NamespacedKey.fromString(nbt.getString("key")); + key = org.bukkit.NamespacedKey.fromString(nbt.getString("key"));
+ } + }
+ // Purpur end + // Purpur end
+ +
MobEffectInstance mobEffectInstance = null; MobEffectInstance mobEffectInstance = null;
if (nbt.contains("hidden_effect", 10)) { if (nbt.contains("hidden_effect", 10)) {
mobEffectInstance = loadSpecifiedEffect(type, nbt.getCompound("hidden_effect")); mobEffectInstance = loadSpecifiedEffect(type, nbt.getCompound("hidden_effect"));
@@ -318,7 +376,7 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> { @@ -318,7 +375,7 @@ public class MobEffectInstance implements Comparable<MobEffectInstance> {
optional = Optional.empty(); optional = Optional.empty();
} }
@@ -208,24 +200,24 @@ index bac3a5c378054481e1a5abaec1f83afde5d64ac1..f1050bf2b9efc54a894426b08989d445
} }
this.customEffects.set(index, effect); this.customEffects.set(index, effect);
diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java
index 844fb8c662a409670f631228f687d85c5436d3dd..2bfa5908f1848702ceb42da7576a609d0928eddd 100644 index e938255fcc5db0c289d3e132175a541187e4a748..f7a747ea73a80c97d863e0fd3772a0c333aef3c8 100644
--- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java --- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java
+++ b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java +++ b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java
@@ -73,7 +73,7 @@ public class CraftPotionUtil { @@ -74,7 +74,7 @@ public class CraftPotionUtil {
public static MobEffectInstance fromBukkit(PotionEffect effect) { public static MobEffectInstance fromBukkit(PotionEffect effect) {
MobEffect type = CraftPotionEffectType.bukkitToMinecraft(effect.getType()); MobEffect type = CraftPotionEffectType.bukkitToMinecraft(effect.getType());
// Paper - Note: do not copy over the hidden effect, as this method is only used for applying to entities which we do not want to convert over.
- return new MobEffectInstance(type, effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon()); // Paper - return new MobEffectInstance(type, effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon()); // Paper
+ return new MobEffectInstance(type, effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon(), effect.getKey()); // Paper // Purpur - add key + return new MobEffectInstance(type, effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon(), effect.getKey()); // Paper // Purpur - add key
} }
public static PotionEffect toBukkit(MobEffectInstance effect) { public static PotionEffect toBukkit(MobEffectInstance effect) {
@@ -82,7 +82,7 @@ public class CraftPotionUtil { @@ -83,7 +83,7 @@ public class CraftPotionUtil {
int duration = effect.getDuration(); int duration = effect.getDuration();
boolean ambient = effect.isAmbient(); boolean ambient = effect.isAmbient();
boolean particles = effect.isVisible(); boolean particles = effect.isVisible();
- return new PotionEffect(type, duration, amp, ambient, particles, effect.showIcon()); // Paper - return new PotionEffect(type, duration, amp, ambient, particles, effect.showIcon(), effect.hiddenEffect == null ? null : toBukkit(effect.hiddenEffect)); // Paper
+ return new PotionEffect(type, duration, amp, ambient, particles, effect.showIcon(), effect.getKey()); // Paper // Purpur - add key + return new PotionEffect(type, duration, amp, ambient, particles, effect.showIcon(), effect.hiddenEffect == null ? null : toBukkit(effect.hiddenEffect), effect.getKey()); // Paper // Purpur - add key
} }
public static boolean equals(MobEffect mobEffect, PotionEffectType type) { public static boolean equals(MobEffect mobEffect, PotionEffectType type) {

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] Shearing jeb produces random color wool
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index f2d0c67709e38209a8a02e98f4392b9e0a53c211..fb477c3c594bb81e92ae0c606635c309840d0dc5 100644 index ae2662a5cdc4e531e09876ff8664eaf66a63a960..4d28cb60f8fa816205699a66a7667358e13c6a01 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -317,7 +317,7 @@ public class Sheep extends Animal implements Shearable { @@ -327,7 +327,7 @@ public class Sheep extends Animal implements Shearable {
int count = 1 + this.random.nextInt(3);
for (int j = 0; j < i; ++j) { java.util.List<ItemStack> dropEntities = new java.util.ArrayList<>(count);
this.forceDrops = true; // CraftBukkit for (int j = 0; j < count; ++j) {
- ItemEntity entityitem = this.spawnAtLocation((ItemLike) Sheep.ITEM_BY_DYE.get(this.getColor()), 1); - dropEntities.add(new ItemStack(Sheep.ITEM_BY_DYE.get(this.getColor())));
+ ItemEntity entityitem = this.spawnAtLocation((ItemLike) Sheep.ITEM_BY_DYE.get(this.level().purpurConfig.sheepShearJebRandomColor && hasCustomName() && getCustomName().getString().equals("jeb_") ? DyeColor.random(this.level().random) : this.getColor()), 1); // Purpur + dropEntities.add(new ItemStack(Sheep.ITEM_BY_DYE.get(this.level().purpurConfig.sheepShearJebRandomColor && hasCustomName() && getCustomName().getString().equals("jeb_") ? DyeColor.random(this.level().random) : this.getColor())));
this.forceDrops = false; // CraftBukkit }
return dropEntities;
if (entityitem != null) { }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 476545737acdb0da8e5f5def12164c7f83cbaa80..375d1deef92f935d8f32166e3a17a84370ad1dcd 100644 index 476545737acdb0da8e5f5def12164c7f83cbaa80..375d1deef92f935d8f32166e3a17a84370ad1dcd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable valid characters for usernames
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index fd67cefb971b394042c0fdd845c20cf55d8efc2f..fab644c79287a444fd58c43547beba3e06e9e7ff 100644 index dca769857dbf045bf2184f7761e9a09933858b51..db3afaf25b1991a257bd2d5036527f4cb00c5040 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -2404,6 +2404,7 @@ public abstract class Player extends LivingEntity { @@ -2420,6 +2420,7 @@ public abstract class Player extends LivingEntity {
} }
public static boolean isValidUsername(String name) { public static boolean isValidUsername(String name) {

View File

@@ -5,122 +5,128 @@ Subject: [PATCH] Shears can have looting enchantment
diff --git a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java diff --git a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
index e17090003988ad2c890d48666c2234b14d511345..433f1f11b8b92c7d48352416f79ab5a394c33287 100644 index ec43e8294d7e7112478a2fc1475f0852690a4882..2f1bd058543af6a7a0b3d94ab0fc9627b4e0da49 100644
--- a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java --- a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
+++ b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
@@ -107,7 +107,7 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior { @@ -104,7 +104,7 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior {
if (ishearable.readyForShearing()) {
// CraftBukkit start
// Paper start
- org.bukkit.event.block.BlockShearEntityEvent event = CraftEventFactory.callBlockShearEntityEvent(entityliving, bukkitBlock, craftItem, ishearable.generateDefaultDrops());
+ org.bukkit.event.block.BlockShearEntityEvent event = CraftEventFactory.callBlockShearEntityEvent(entityliving, bukkitBlock, craftItem, ishearable.generateDefaultDrops(net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.MOB_LOOTING, CraftItemStack.asNMSCopy(craftItem))));
if (event.isCancelled()) {
// Paper end
continue; continue;
}
// CraftBukkit end
- ishearable.shear(SoundSource.BLOCKS);
+ ishearable.shear(SoundSource.BLOCKS, net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.MOB_LOOTING, CraftItemStack.asNMSCopy(craftItem))); // Purpur
worldserver.gameEvent((Entity) null, GameEvent.SHEAR, blockposition);
return true;
}
diff --git a/src/main/java/net/minecraft/world/entity/Shearable.java b/src/main/java/net/minecraft/world/entity/Shearable.java diff --git a/src/main/java/net/minecraft/world/entity/Shearable.java b/src/main/java/net/minecraft/world/entity/Shearable.java
index 5e8cc5cfac8888628c6d513148f41be09ca65a2c..a089fc61ec09be6b7490375489178dc6ba5a644b 100644 index 4921d1b2ff9112374477c5c9b4a68cc75a51dbf8..40716d46a2d9c1b3b13e92995e6441d83bdd2396 100644
--- a/src/main/java/net/minecraft/world/entity/Shearable.java --- a/src/main/java/net/minecraft/world/entity/Shearable.java
+++ b/src/main/java/net/minecraft/world/entity/Shearable.java +++ b/src/main/java/net/minecraft/world/entity/Shearable.java
@@ -3,7 +3,13 @@ package net.minecraft.world.entity; @@ -8,7 +8,7 @@ public interface Shearable {
import net.minecraft.sounds.SoundSource;
public interface Shearable {
- void shear(SoundSource shearedSoundCategory);
+ // Purpur start
+ default void shear(SoundSource shearedSoundCategory) {
+ shear(shearedSoundCategory, 0);
+ }
+
+ void shear(SoundSource shearedSoundCategory, int looting);
+ // Purpur end
boolean readyForShearing(); boolean readyForShearing();
} // Paper start - ensure all implementing entities override this
- default java.util.List<net.minecraft.world.item.ItemStack> generateDefaultDrops() {
+ default java.util.List<net.minecraft.world.item.ItemStack> generateDefaultDrops(int looting) {
return java.util.Collections.emptyList();
}
// Paper end
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index c49d25eae4b9d2cdd15022b32947a94364ea2791..6ce116dc3173d17b19c4c03fe9cf494dd022f0d5 100644 index 5d75e715a2edac73350cd74e2a5184e7fccbad53..9ac87800d1d15ae3431caaf4e86d4fe10e105972 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -163,7 +163,7 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo @@ -160,7 +160,7 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
return tryRide(player, hand); // Purpur } else if (itemstack.is(Items.SHEARS) && this.readyForShearing()) {
} // CraftBukkit start
// CraftBukkit end // Paper start - custom shear drops
- this.shear(SoundSource.PLAYERS); - List<ItemStack> drops = this.generateDefaultDrops();
+ this.shear(SoundSource.PLAYERS, net.minecraft.world.item.enchantment.EnchantmentHelper.getMobLooting(player)); // Purpur + List<ItemStack> drops = this.generateDefaultDrops(net.minecraft.world.item.enchantment.EnchantmentHelper.getMobLooting(player));
this.gameEvent(GameEvent.SHEAR, player); org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops);
if (!this.level().isClientSide) { if (event != null) {
itemstack.hurtAndBreak(1, player, (entityhuman1) -> { if (event.isCancelled()) {
@@ -203,7 +203,7 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo @@ -212,13 +212,13 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
@Override
public void shear(SoundSource shearedSoundCategory) {
// Paper start - custom shear drops
- this.shear(shearedSoundCategory, this.generateDefaultDrops());
+ this.shear(shearedSoundCategory, this.generateDefaultDrops(0)); // Purpur
} }
@Override @Override
- public void shear(SoundSource shearedSoundCategory) { - public List<ItemStack> generateDefaultDrops() {
+ public void shear(SoundSource shearedSoundCategory, int looting) { // Purpur + public List<ItemStack> generateDefaultDrops(int looting) { // Purpur
this.level().playSound((Player) null, (Entity) this, SoundEvents.MOOSHROOM_SHEAR, shearedSoundCategory, 1.0F, 1.0F); List<ItemStack> dropEntities = new java.util.ArrayList<>(5);
if (!this.level().isClientSide()) { - for (int i = 0; i < 5; ++i) {
Cow entitycow = (Cow) EntityType.COW.create(this.level()); + for (int i = 0; i < 5 + (org.purpurmc.purpur.PurpurConfig.allowShearsLooting ? looting : 0); ++i) {
@@ -239,7 +239,7 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo dropEntities.add(new ItemStack(this.getVariant().getBlockState().getBlock()));
this.discard(); // CraftBukkit - from above }
// CraftBukkit end return dropEntities;
- for (int i = 0; i < 5; ++i) {
+ for (int i = 0; i < 5 + (org.purpurmc.purpur.PurpurConfig.allowShearsLooting ? looting : 0); ++i) {
// CraftBukkit start
ItemEntity entityitem = new ItemEntity(this.level(), this.getX(), this.getY(1.0D), this.getZ(), new ItemStack(this.getVariant().blockState.getBlock()));
EntityDropItemEvent event = new EntityDropItemEvent(this.getBukkitEntity(), (org.bukkit.entity.Item) entityitem.getBukkitEntity());
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index fb477c3c594bb81e92ae0c606635c309840d0dc5..8502fc1331c2e94992ab39e4e7ea0f36e83b06a5 100644 index 4d28cb60f8fa816205699a66a7667358e13c6a01..e2f29a1bf72e4a8785397318f159aae8059ac4ed 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -295,7 +295,7 @@ public class Sheep extends Animal implements Shearable { @@ -292,7 +292,7 @@ public class Sheep extends Animal implements Shearable {
return InteractionResult.PASS; if (!this.level().isClientSide && this.readyForShearing()) {
} // CraftBukkit start
// CraftBukkit end // Paper start - custom shear drops
- this.shear(SoundSource.PLAYERS); - java.util.List<ItemStack> drops = this.generateDefaultDrops();
+ this.shear(SoundSource.PLAYERS, net.minecraft.world.item.enchantment.EnchantmentHelper.getMobLooting(player)); // Purpur + java.util.List<ItemStack> drops = this.generateDefaultDrops(net.minecraft.world.item.enchantment.EnchantmentHelper.getMobLooting(player));
this.gameEvent(GameEvent.SHEAR, player); org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops);
itemstack.hurtAndBreak(1, player, (entityhuman1) -> { if (event != null) {
entityhuman1.broadcastBreakEvent(hand); if (event.isCancelled()) {
@@ -310,10 +310,11 @@ public class Sheep extends Animal implements Shearable { @@ -319,12 +319,13 @@ public class Sheep extends Animal implements Shearable {
@Override
public void shear(SoundSource shearedSoundCategory) {
// Paper start - custom shear drops
- this.shear(shearedSoundCategory, this.generateDefaultDrops());
+ this.shear(shearedSoundCategory, this.generateDefaultDrops(0));
} }
@Override @Override
- public void shear(SoundSource shearedSoundCategory) { - public java.util.List<ItemStack> generateDefaultDrops() {
+ public void shear(SoundSource shearedSoundCategory, int looting) { // Purpur + public java.util.List<ItemStack> generateDefaultDrops(int looting) {
this.level().playSound((Player) null, (Entity) this, SoundEvents.SHEEP_SHEAR, shearedSoundCategory, 1.0F, 1.0F); int count = 1 + this.random.nextInt(3);
this.setSheared(true); + if (org.purpurmc.purpur.PurpurConfig.allowShearsLooting) count += looting; // Purpur
int i = 1 + this.random.nextInt(3); java.util.List<ItemStack> dropEntities = new java.util.ArrayList<>(count);
+ if (org.purpurmc.purpur.PurpurConfig.allowShearsLooting) i += looting; // Purpur for (int j = 0; j < count; ++j) {
dropEntities.add(new ItemStack(Sheep.ITEM_BY_DYE.get(this.level().purpurConfig.sheepShearJebRandomColor && hasCustomName() && getCustomName().getString().equals("jeb_") ? DyeColor.random(this.level().random) : this.getColor())));
for (int j = 0; j < i; ++j) {
this.forceDrops = true; // CraftBukkit
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index fc8526af7e1df15794b4560b58e7f6a47508aa08..8b364fe9f3a3d47ae6daa331b8f16941ca17432a 100644 index 8a0327a870a22def6538bb56df2f2fd384449928..58e101a3963be08c21e6d8c80731d45c0883be8d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -199,7 +199,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -196,7 +196,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
return tryRide(player, hand); // Purpur if (itemstack.is(Items.SHEARS) && this.readyForShearing()) {
} // CraftBukkit start
// CraftBukkit end // Paper start - custom shear drops
- this.shear(SoundSource.PLAYERS); - java.util.List<ItemStack> drops = this.generateDefaultDrops();
+ this.shear(SoundSource.PLAYERS, net.minecraft.world.item.enchantment.EnchantmentHelper.getMobLooting(player)); // Purpur + java.util.List<ItemStack> drops = this.generateDefaultDrops(net.minecraft.world.item.enchantment.EnchantmentHelper.getMobLooting(player));
this.gameEvent(GameEvent.SHEAR, player); org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops);
if (!this.level().isClientSide) { if (event != null) {
itemstack.hurtAndBreak(1, player, (entityhuman1) -> { if (event.isCancelled()) {
@@ -222,12 +222,13 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -231,15 +231,22 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@Override
public void shear(SoundSource shearedSoundCategory) {
// Paper start - custom shear drops
- this.shear(shearedSoundCategory, this.generateDefaultDrops());
+ this.shear(shearedSoundCategory, this.generateDefaultDrops(0));
} }
@Override @Override
- public void shear(SoundSource shearedSoundCategory) { - public java.util.List<ItemStack> generateDefaultDrops() {
+ public void shear(SoundSource shearedSoundCategory, int looting) { // Purpur + public java.util.List<ItemStack> generateDefaultDrops(int looting) { // Purpur
this.level().playSound((Player) null, (Entity) this, SoundEvents.SNOW_GOLEM_SHEAR, shearedSoundCategory, 1.0F, 1.0F); // Purpur start
if (!this.level().isClientSide()) { if (!level().purpurConfig.snowGolemDropsPumpkin) {
this.setPumpkin(false); return Shearable.super.generateDefaultDrops(0);
this.forceDrops = true; // CraftBukkit
if (level().purpurConfig.snowGolemDropsPumpkin) // Purpur
+ for (int i = 0; i < 1 + (org.purpurmc.purpur.PurpurConfig.allowShearsLooting ? looting : 0); i++) // Purpur
this.spawnAtLocation(new ItemStack(Items.CARVED_PUMPKIN), 1.7F);
this.forceDrops = false; // CraftBukkit
} }
+ if (org.purpurmc.purpur.PurpurConfig.allowShearsLooting) {
+ java.util.ArrayList<ItemStack> list = new java.util.ArrayList<>();
+ for (int i = 0; i < 1 + looting; i++) {
+ list.add(new ItemStack(Items.CARVED_PUMPKIN));
+ }
+ return java.util.Collections.unmodifiableList(list);
+ }
// Purpur end
return java.util.Collections.singletonList(new ItemStack(Items.CARVED_PUMPKIN));
}
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java
index 859435f747ceef860cb4e9e825a7353ea3b90798..fc2c35f57436371cb0111aedfd289ac95d506d07 100644 index 859435f747ceef860cb4e9e825a7353ea3b90798..fc2c35f57436371cb0111aedfd289ac95d506d07 100644
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java --- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 92e10daff379ed5a3b9cff6d3ab12bd96ab62da1..c3c5e08f76ea0c23261ae1235ca9a3948b7a1885 100644 index 13dadd9824a75cd26053aeb93cc95f5bba0622a5..22298bc61205b2da0a13a97144704d0dd1d33260 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1716,7 +1716,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1720,7 +1720,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
do { do {
if (!iterator.hasNext()) { if (!iterator.hasNext()) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 03eab4e7c2648c722c25387ec9353e8dafc09618..96017efa7ab5b43bdd851ce1e78566306254d4a0 100644 index 38d842bc0fb7d9c39a3673983a643248e9563fe2..8af705619e8a784c6128d7ff4838eeae56e59821 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2408,6 +2408,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -2415,6 +2415,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight()); return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
} }

View File

@@ -447,7 +447,7 @@ index 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380
gameprofilerfiller.pop(); gameprofilerfiller.pop();
gameprofilerfiller.pop(); gameprofilerfiller.pop();
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 9121c5371b083d07d6b488e1a49d24a91ecccba0..1d8d1c4499c901f2675ef9a0e6f9dcb851217680 100644 index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab5382437dc0 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -867,7 +867,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -867,7 +867,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -630,10 +630,10 @@ index 9121c5371b083d07d6b488e1a49d24a91ecccba0..1d8d1c4499c901f2675ef9a0e6f9dcb8
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index c3c5e08f76ea0c23261ae1235ca9a3948b7a1885..95d5995d967f8a0a06aaaf81d6af7ae9ac83c731 100644 index 22298bc61205b2da0a13a97144704d0dd1d33260..56f110d08fa24b26792f55b2ea062249b0f9643d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2453,7 +2453,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2460,7 +2460,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleCommand(String s) { // Paper - private -> public public void handleCommand(String s) { // Paper - private -> public
org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher
@@ -642,7 +642,7 @@ index c3c5e08f76ea0c23261ae1235ca9a3948b7a1885..95d5995d967f8a0a06aaaf81d6af7ae9
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
@@ -2463,7 +2463,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2470,7 +2470,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
@@ -651,7 +651,7 @@ index c3c5e08f76ea0c23261ae1235ca9a3948b7a1885..95d5995d967f8a0a06aaaf81d6af7ae9
return; return;
} }
@@ -2476,7 +2476,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2483,7 +2483,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return; return;
} finally { } finally {
@@ -661,10 +661,10 @@ index c3c5e08f76ea0c23261ae1235ca9a3948b7a1885..95d5995d967f8a0a06aaaf81d6af7ae9
} }
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 0d75ccbf6c5cacd9ce2355d4dca2b1290a8da39f..2e3a43b92fb86e55a75a557663bc465e604c4156 100644 index 26d32b49103d5d463267c3ae3b08ebc625b38ab3..a52f0b7d76dc71d176d960fc4f67f0683127112e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1268,7 +1268,7 @@ public abstract class PlayerList { @@ -1274,7 +1274,7 @@ public abstract class PlayerList {
public void saveAll(int interval) { public void saveAll(int interval) {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
@@ -673,7 +673,7 @@ index 0d75ccbf6c5cacd9ce2355d4dca2b1290a8da39f..2e3a43b92fb86e55a75a557663bc465e
int numSaved = 0; int numSaved = 0;
long now = MinecraftServer.currentTick; long now = MinecraftServer.currentTick;
for (int i = 0; i < this.players.size(); ++i) { for (int i = 0; i < this.players.size(); ++i) {
@@ -1279,7 +1279,7 @@ public abstract class PlayerList { @@ -1285,7 +1285,7 @@ public abstract class PlayerList {
} }
// Paper end // Paper end
} }
@@ -732,7 +732,7 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..7094701d213c73ba47ace806962244c1
} }
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index d4da05d29545a4a40f4b6489aa22813d580874c4..5777e5e31b1a7a7911c183db990f16fe7fc9b9ef 100644 index f47a00bbe6d9cfa15fc3a55a8953934ac12ca85f..54ceb622d9588ccd8df3cba849571aa3fdbb364a 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1313,15 +1313,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1313,15 +1313,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add more logger output for invalid movement kicks
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 95d5995d967f8a0a06aaaf81d6af7ae9ac83c731..f0b53dc99d21962cbed9a2a1d43be9622735aa57 100644 index 56f110d08fa24b26792f55b2ea062249b0f9643d..ba3548498044bbfd8e73967ac3dcec9b8d0a3b88 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -739,6 +739,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -737,6 +737,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (packet.getId() == this.awaitingTeleport) { if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) { if (this.awaitingPositionFromClient == null) {
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
@@ -16,7 +16,7 @@ index 95d5995d967f8a0a06aaaf81d6af7ae9ac83c731..f0b53dc99d21962cbed9a2a1d43be962
return; return;
} }
@@ -1353,8 +1354,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1351,8 +1352,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override @Override
public void handleMovePlayer(ServerboundMovePlayerPacket packet) { public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Debug Marker API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index cca5519dd1b19e86372222d052c5ca2b992bfff8..e4f0b1a5b2165610c533f9a661341e5c46ffb63e 100644 index 866d49ef3de9e9629b00b3dc0515ab089ab47908..067164b3698bcb89ae2f8d09cb7009108a999670 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1584,6 +1584,42 @@ public final class CraftServer implements Server { @@ -1584,6 +1584,42 @@ public final class CraftServer implements Server {
@@ -52,10 +52,10 @@ index cca5519dd1b19e86372222d052c5ca2b992bfff8..e4f0b1a5b2165610c533f9a661341e5c
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 96017efa7ab5b43bdd851ce1e78566306254d4a0..7321a8dfc59ccb1ae0b7e2d1ce23cb1a5cfbe029 100644 index 8af705619e8a784c6128d7ff4838eeae56e59821..f6c6cd92e1eff044abefa6ca74477d361f4434ec 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2412,6 +2412,42 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -2419,6 +2419,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public float getLocalDifficultyAt(Location location) { public float getLocalDifficultyAt(Location location) {
return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty(); return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty();
} }
@@ -99,10 +99,10 @@ index 96017efa7ab5b43bdd851ce1e78566306254d4a0..7321a8dfc59ccb1ae0b7e2d1ce23cb1a
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 55d07278e635f9934418ac5c4e679e99b0b5dbd1..0081992c78ad800c7caeb402e90d6e93d3a2d28e 100644 index e7886daefcb5f4890b86b5f6962b40b1bbcb5183..dc2b7450775a2ffadedb07b166410cb42ddacc16 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3378,5 +3378,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3419,5 +3419,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() { public void resetIdleTimer() {
getHandle().resetLastActionTime(); getHandle().resetLastActionTime();
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0081992c78ad800c7caeb402e90d6e93d3a2d28e..df4f39d38f1ff4a5e499e227d93d98f531a01419 100644 index dc2b7450775a2ffadedb07b166410cb42ddacc16..ff4317fd21a62bd85e0b3ecc7ff0c1f5e74e4df5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3416,5 +3416,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3457,5 +3457,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return; if (this.getHandle().connection == null) return;
this.getHandle().connection.send(new net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket(new net.minecraft.network.protocol.common.custom.GameTestClearMarkersDebugPayload())); this.getHandle().connection.send(new net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket(new net.minecraft.network.protocol.common.custom.GameTestClearMarkersDebugPayload()));
} }

View File

@@ -48,10 +48,10 @@ index b563b1d4129cf3fb15f5ab4e08acfd380d0ddf12..f69976dcba060027c67c2e1b49fa28d3
while (iterator.hasNext()) { while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next(); ServerLevel worldserver = (ServerLevel) iterator.next();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index f0b53dc99d21962cbed9a2a1d43be9622735aa57..eaf2cb361f5d700bea07986edd387d7fad1d27e2 100644 index ba3548498044bbfd8e73967ac3dcec9b8d0a3b88..819906c465debe02192084968bf3d17d69cdd8c8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3373,6 +3373,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -3380,6 +3380,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} }
} }
} }