it compiles :O \o/

This commit is contained in:
William Blake Galbreath
2021-06-21 19:28:10 -05:00
parent f24181b4e7
commit ed600525fa
70 changed files with 420 additions and 238 deletions

View File

@@ -5,15 +5,15 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index e1f871812e563605e31837159f129d69e05b868f..91262be391b9bf7067bdf257fc385f0b70747182 100644
index e1f871812e563605e31837159f129d69e05b868f..48c98de78eda6d5414c17ddb776a13e0bf0275b8 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -199,6 +199,8 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
// Purpur start
GoalKey<Mob> MOB_HAS_RIDER = GoalKey.of(Mob.class, NamespacedKey.minecraft("has_rider"));
GoalKey<AbstractHorse> HORSE_HAS_RIDER = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("horse_has_rider"));
+ GoalKey<Phantom> FIND_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("find_crystal_goal"));
+ GoalKey<Phantom> ORBIT_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal_goal"));
+ GoalKey<Phantom> FIND_CRYSTAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("find_crystal"));
+ GoalKey<Phantom> ORBIT_CRYSTAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal"));
// Purpur end
/**

View File

@@ -6,13 +6,13 @@ Subject: [PATCH] Add option to disable zombie aggressiveness towards villagers
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index 91262be391b9bf7067bdf257fc385f0b70747182..569ffabc5c092217cd7ff69e8089654624bb9045 100644
index 48c98de78eda6d5414c17ddb776a13e0bf0275b8..a732d78fe75e4d837b2a04d1fdeb1d07fe820a8e 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -201,6 +201,8 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<AbstractHorse> HORSE_HAS_RIDER = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("horse_has_rider"));
GoalKey<Phantom> FIND_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("find_crystal_goal"));
GoalKey<Phantom> ORBIT_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal_goal"));
GoalKey<Phantom> FIND_CRYSTAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("find_crystal"));
GoalKey<Phantom> ORBIT_CRYSTAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal"));
+ GoalKey<Drowned> DROWNED_ATTACK_VILLAGER = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_attack_villager"));
+ GoalKey<Zombie> ZOMBIE_ATTACK_VILLAGER = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack_villager"));
// Purpur end

View File

@@ -5,14 +5,14 @@ Subject: [PATCH] Rabid Wolf API
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index 569ffabc5c092217cd7ff69e8089654624bb9045..e17b9d08c9ed9f7fd7e11b6461b9c5f0d04556a8 100644
index a732d78fe75e4d837b2a04d1fdeb1d07fe820a8e..5e99bdbbb81d7ea366838c2f688417f11e607210 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -203,6 +203,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Phantom> ORBIT_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal_goal"));
GoalKey<Phantom> ORBIT_CRYSTAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal"));
GoalKey<Drowned> DROWNED_ATTACK_VILLAGER = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_attack_villager"));
GoalKey<Zombie> ZOMBIE_ATTACK_VILLAGER = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack_villager"));
+ GoalKey<Wolf> AVOID_RABID_WOLVES = GoalKey.of(Wolf.class, NamespacedKey.minecraft("avoid_rabid_wolves"));
+ GoalKey<Wolf> AVOID_RABID_WOLF = GoalKey.of(Wolf.class, NamespacedKey.minecraft("avoid_rabid_wolf"));
// Purpur end
/**

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] Iron golem poppy calms anger
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index e17b9d08c9ed9f7fd7e11b6461b9c5f0d04556a8..1c691750265a31f05e877d5f62c29f01117930b9 100644
index 5e99bdbbb81d7ea366838c2f688417f11e607210..7921f2766f16fbd49e2afd0bba0ef30f6eefd0ce 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -204,6 +204,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Drowned> DROWNED_ATTACK_VILLAGER = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_attack_villager"));
GoalKey<Zombie> ZOMBIE_ATTACK_VILLAGER = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack_villager"));
GoalKey<Wolf> AVOID_RABID_WOLVES = GoalKey.of(Wolf.class, NamespacedKey.minecraft("avoid_rabid_wolves"));
GoalKey<Wolf> AVOID_RABID_WOLF = GoalKey.of(Wolf.class, NamespacedKey.minecraft("avoid_rabid_wolf"));
+ GoalKey<IronGolem> RECEIVE_FLOWER = GoalKey.of(IronGolem.class, NamespacedKey.minecraft("receive_flower"));
// Purpur end

View File

@@ -4,6 +4,25 @@ Date: Thu, 10 Dec 2020 16:44:54 -0600
Subject: [PATCH] Configurable entity base attributes
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 4ed4ca8e623784f12e2c7850e1c055f30a16e5ec..6a9335366ef8a8b7f4506b67d85f7938e08696b3 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -334,6 +334,14 @@ public class ServerPlayer extends Player {
this.maxHealthCache = this.getMaxHealth();
this.cachedSingleMobDistanceMap = new com.destroystokyo.paper.util.PooledHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper
}
+
+ // Purpur start
+ @Override
+ public void initAttributes() {
+ // none to initialize
+ }
+ // Purpur end
+
// Paper start - Chunk priority
public BlockPos getPointInFront(double inFront) {
double rads = Math.toRadians(net.minecraft.server.MCUtil.normalizeYaw(this.yRot + 90)); // MC rotates yaw 90 for some odd reason
diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java
index 8f8bc29d847801938e251904b8334b4b31bd21c5..87d01bebbb179eec53323e9e23db011a791660ed 100644
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
@@ -746,6 +765,24 @@ index 68c5609845617bf5aeb82ea4e3a88bdccb8273cc..96631591db018545120ba1c9980a03eb
}
} else {
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 5fc66d7096afcfe63eba774e1dc330ac3263e4b0..585d5fa1604d137b0d426abccec51a6f47c73ac1 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -119,6 +119,13 @@ public class ArmorStand extends LivingEntity {
this.setPos(x, y, z);
}
+ // Purpur start
+ @Override
+ public void initAttributes() {
+ // none to initialize
+ }
+ // Purpur end
+
// CraftBukkit start - SPIGOT-3607, SPIGOT-3637
@Override
public float getBukkitYaw() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
index a5294012d432d5d1fce570a1eb1b1716a24522de..83f9a1139a501135a89a758993c7ff209b5b92d5 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 952b6103fd417251e8a030bb574f79e69cfbbe10..01218ca19f0fd2a6cf8194d4507e40c5bc785b7c 100644
index 6a9335366ef8a8b7f4506b67d85f7938e08696b3..392ea7fe0b522cece303168194c714fb30906fe1 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1915,8 +1915,58 @@ public class ServerPlayer extends Player {
@@ -1923,8 +1923,58 @@ public class ServerPlayer extends Player {
public void resetLastActionTime() {
this.lastActionTime = Util.getMillis();
@@ -68,7 +68,7 @@ index 952b6103fd417251e8a030bb574f79e69cfbbe10..01218ca19f0fd2a6cf8194d4507e40c5
return this.stats;
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index b98263dc5dcba1a5a8518c2f0acd2c9d3a8b6087..f29f05ab4bace2a6db23ef6b9d4c9db285a082e0 100644
index 359f8a37e625af463f898f72b8c30ff41f84c672..4473e5123568a35dd59b769a529f5670cf9bdc4a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -391,6 +391,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -146,7 +146,7 @@ index a060cca08631fb42041e3a79a9abc422fe7757af..e7b11d1ba984ea14f0cdf8e84f9eaab4
private EntitySelector() {}
// Paper start
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 c458710a2af40848d617149d97f51e7ae1165637..721767812c765ac70c66f5445950c39167f344de 100644
index deaf12324f740b5523179adfd5b9a437d263cb28..ff5ce25e4207ce6d87a553c340d79c14c5750c25 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -196,6 +196,13 @@ public abstract class Player extends LivingEntity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 65e59e3bfc07e1ba6fadd7d83e0f5eb7a58fcf78..609afae1bfdbeb82fb48bdbb0200427a67f1cd2a 100644
index 392ea7fe0b522cece303168194c714fb30906fe1..2818671f0fb3aa1588655f5f314eebdbd60bfac1 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -333,6 +333,7 @@ public class ServerPlayer extends Player {
@@ -14,9 +14,9 @@ index 65e59e3bfc07e1ba6fadd7d83e0f5eb7a58fcf78..609afae1bfdbeb82fb48bdbb0200427a
this.cachedSingleMobDistanceMap = new com.destroystokyo.paper.util.PooledHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper
+ this.spawnInvulnerableTime = world.purpurConfig.playerSpawnInvulnerableTicks; // Purpur
}
// Paper start - Chunk priority
public BlockPos getPointInFront(double inFront) {
@@ -974,6 +975,12 @@ public class ServerPlayer extends Player {
// Purpur start
@@ -982,6 +983,12 @@ public class ServerPlayer extends Player {
}
@@ -29,7 +29,7 @@ index 65e59e3bfc07e1ba6fadd7d83e0f5eb7a58fcf78..609afae1bfdbeb82fb48bdbb0200427a
@Override
public boolean hurt(DamageSource source, float amount) {
if (this.isInvulnerableTo(source)) {
@@ -981,7 +988,7 @@ public class ServerPlayer extends Player {
@@ -989,7 +996,7 @@ public class ServerPlayer extends Player {
} else {
boolean flag = this.server.isDedicatedServer() && this.isPvpAllowed() && "fall".equals(source.msgId);
@@ -38,7 +38,7 @@ index 65e59e3bfc07e1ba6fadd7d83e0f5eb7a58fcf78..609afae1bfdbeb82fb48bdbb0200427a
return false;
} else {
if (source instanceof EntityDamageSource) {
@@ -1156,6 +1163,7 @@ public class ServerPlayer extends Player {
@@ -1164,6 +1171,7 @@ public class ServerPlayer extends Player {
}
// Paper end
@@ -46,26 +46,27 @@ index 65e59e3bfc07e1ba6fadd7d83e0f5eb7a58fcf78..609afae1bfdbeb82fb48bdbb0200427a
return this;
}
}
@@ -2378,8 +2386,16 @@ public class ServerPlayer extends Player {
@@ -2386,9 +2394,17 @@ public class ServerPlayer extends Player {
@Override
public boolean isImmobile() {
- return super.isImmobile() || (this.connection != null && this.connection.isDisconnected()); // Paper
+ return super.isImmobile() || frozen || (this.connection != null && this.connection.isDisconnected()); // Paper // Purpur
+ }
+
}
+ // Purpur start
+ private boolean frozen = false;
+
+ public void setFrozen(boolean frozen) {
+ this.frozen = frozen;
}
+ }
+ // Purpur end
+
@Override
public Scoreboard getScoreboard() {
return this.getBukkitEntity().getScoreboard().getHandle();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index a3bea3b4b8094daac108644d97d2e8a1cc027607..3dcaaeab3ba3b4f74fd454c548461263767ce1c4 100644
index 4473e5123568a35dd59b769a529f5670cf9bdc4a..4659247703679bd3c860ea5d685ae985daf799ce 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1860,6 +1860,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Anvil API
diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
index 56d3ed1cdafd7904c35be5db568b9975a97418a7..2db80c986e1dbd4aa9be288cc802f650169dc11a 100644
index 56d3ed1cdafd7904c35be5db568b9975a97418a7..c81af461fa01dac0b7b26becc1a5e7ae31bb5f95 100644
--- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
@@ -2,8 +2,12 @@ package net.minecraft.world.inventory;
@@ -83,7 +83,7 @@ index 56d3ed1cdafd7904c35be5db568b9975a97418a7..2db80c986e1dbd4aa9be288cc802f650
+ // Purpur start
+ if (bypassCost && cost.get() >= maximumRepairCost) {
+ itemstack.getOrCreateTagAndSet("Purpur.realCost", IntTag.valueOf(cost.get()));
+ itemstack.addTagElement("Purpur.realCost", IntTag.valueOf(cost.get()));
+ cost.set(maximumRepairCost - 1);
+ }
+ // Purpur end

View File

@@ -30,7 +30,7 @@ index bd52d7d19060b0922c5165a071a5d12123028f79..6322251336a4300649f207efdb4d404d
public static final Item CHEST = registerBlock(Blocks.CHEST, CreativeModeTab.TAB_DECORATIONS);
public static final Item CRAFTING_TABLE = registerBlock(Blocks.CRAFTING_TABLE, CreativeModeTab.TAB_DECORATIONS);
diff --git a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
index b1e04d41de80971a7a1616beb0860226ecc25045..9ce53046b7f67309c2d4636b95e6fb05c103a13f 100644
index b1e04d41de80971a7a1616beb0860226ecc25045..a42375b6789bb0a386103ad826879032f30ed44b 100644
--- a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
@@ -2,8 +2,16 @@ package net.minecraft.world.level.block;
@@ -91,7 +91,7 @@ index b1e04d41de80971a7a1616beb0860226ecc25045..9ce53046b7f67309c2d4636b95e6fb05
+ String name = level.purpurConfig.silkTouchSpawnerName;
+ if (name != null && !name.isEmpty() && !name.equals("Spawner")) {
+ final Component displayName = PaperAdventure.LEGACY_AMPERSAND.deserialize(name).replaceText(config).decoration(ITALIC, false);
+ display.put("Name", StringTag.create(GsonComponentSerializer.gson().serialize(displayName)));
+ display.put("Name", StringTag.valueOf(GsonComponentSerializer.gson().serialize(displayName)));
+ customDisplay = true;
+ }
+
@@ -100,7 +100,7 @@ index b1e04d41de80971a7a1616beb0860226ecc25045..9ce53046b7f67309c2d4636b95e6fb05
+ ListTag list = new ListTag();
+ for (String line : lore) {
+ final Component lineComponent = PaperAdventure.LEGACY_AMPERSAND.deserialize(line).replaceText(config).decoration(ITALIC, false);
+ list.add(StringTag.create(GsonComponentSerializer.gson().serialize(lineComponent)));
+ list.add(StringTag.valueOf(GsonComponentSerializer.gson().serialize(lineComponent)));
+ }
+ display.put("Lore", list);
+ customDisplay = true;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to set armorstand step height
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 5fc66d7096afcfe63eba774e1dc330ac3263e4b0..7a3a364f5e3b025cc0a5694401cb9298c80cb733 100644
index 585d5fa1604d137b0d426abccec51a6f47c73ac1..2d934d5994c84f5b8b61d524527a685cd66de444 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -669,6 +669,7 @@ public class ArmorStand extends LivingEntity {
@@ -676,6 +676,7 @@ public class ArmorStand extends LivingEntity {
@Override
public void tick() {
@@ -17,7 +17,7 @@ index 5fc66d7096afcfe63eba774e1dc330ac3263e4b0..7a3a364f5e3b025cc0a5694401cb9298
if (!this.canTick) {
if (this.noTickPoseDirty) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index df0631f55f74fed00a6dc3e942d37613fc34c067..853cf252723820bc7578c876e9cb79c9adc38918 100644
index b4c09f8a37efd66a2d79373923c774b798fa6e35..eb318f03866927fb4e81bdb814d7c0931a6960cb 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -66,6 +66,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Signs allow color codes
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 609afae1bfdbeb82fb48bdbb0200427a67f1cd2a..ce9a348796a8c262e144c09d753cda2e28998fbf 100644
index 2818671f0fb3aa1588655f5f314eebdbd60bfac1..3ee686948bfc3089ff81e2e669ce425f50493b76 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1459,6 +1459,7 @@ public class ServerPlayer extends Player {
@@ -1467,6 +1467,7 @@ public class ServerPlayer extends Player {
@Override
public void openTextEdit(SignBlockEntity sign) {
@@ -17,7 +17,7 @@ index 609afae1bfdbeb82fb48bdbb0200427a67f1cd2a..ce9a348796a8c262e144c09d753cda2e
this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos()));
this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos()));
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index f3393ada26ab9ad15ab219155100c9fa10821366..7c5af939e8c775b4a97a8247687df670e3702150 100644
index 143fb89c6207c8c44ad8eb3da8129f825b73c624..461e80185d25529c367ede7df571fbff172f0384 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3001,9 +3001,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Minecart settings and WASD controls
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index fc4d66897fe0720d8dfbe7ac289ec9e1fe71d655..9282dab04e45075d34dd944436bc2fb5b286b0a4 100644
index 3ee686948bfc3089ff81e2e669ce425f50493b76..b0d1b03b9adda91aa96f24e3827c32fc8e65f0a8 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -986,6 +986,7 @@ public class ServerPlayer extends Player {
@@ -994,6 +994,7 @@ public class ServerPlayer extends Player {
if (this.isInvulnerableTo(source)) {
return false;
} else {
@@ -148,7 +148,7 @@ index 1179c62695da4dcf02590c97d8da3c6fcdbee9ef..a107304351381d68fdaa35a4d7ff214e
protected final float explosionResistance;
protected final boolean isRandomlyTicking;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 624de1ba34417234244e7ba5d7bd248fdd19c095..86892775f8aeaac1e6ffdcb4dad4c3e5016fc91c 100644
index 267f2efb10fb1603631efbb0b675a1525492f5aa..340546a3478337081978c7394ec92769926b36e6 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -4,6 +4,8 @@ import net.minecraft.core.Registry;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Players should not cram to death
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 9282dab04e45075d34dd944436bc2fb5b286b0a4..5163ec0437e3d94ba0cff030588b1c07c04aca16 100644
index b0d1b03b9adda91aa96f24e3827c32fc8e65f0a8..b189de03050e50c0533d2c454ad89175aef264b8 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1436,7 +1436,7 @@ public class ServerPlayer extends Player {
@@ -1444,7 +1444,7 @@ public class ServerPlayer extends Player {
@Override
public boolean isInvulnerableTo(DamageSource damageSource) {

View File

@@ -31,7 +31,7 @@ index 1b649cb81712bd145cbbb033bcdef6f1345f843b..b2c7711dfb6d50528dc843d8ac6fbe3e
public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) {
this.trackedPlayers = trackedPlayers;
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index 158719d46c96bb733a00e08c8285f41a48406abf..623a8b38b9d0ccbfe807afe328495b19ead4d5a6 100644
index 158719d46c96bb733a00e08c8285f41a48406abf..5201e59c7ce9e92790c185279ba69d7fbbfccf90 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -53,6 +53,12 @@ public class ItemEntity extends Entity {
@@ -47,7 +47,7 @@ index 158719d46c96bb733a00e08c8285f41a48406abf..623a8b38b9d0ccbfe807afe328495b19
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
super(type, world);
@@ -322,6 +328,15 @@ public class ItemEntity extends Entity {
@@ -322,6 +328,16 @@ public class ItemEntity extends Entity {
return false;
} else if (!this.getItem().getItem().canBeHurtBy(source)) {
return false;
@@ -60,10 +60,11 @@ index 158719d46c96bb733a00e08c8285f41a48406abf..623a8b38b9d0ccbfe807afe328495b19
+ ) {
+ respawnOnClient();
+ return false;
+ // Purpur end
} else {
// CraftBukkit start
if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, source, amount)) {
@@ -504,6 +519,12 @@ public class ItemEntity extends Entity {
@@ -504,6 +520,12 @@ public class ItemEntity extends Entity {
com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit
this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty
@@ -76,7 +77,7 @@ index 158719d46c96bb733a00e08c8285f41a48406abf..623a8b38b9d0ccbfe807afe328495b19
}
@Override
@@ -594,4 +615,15 @@ public class ItemEntity extends Entity {
@@ -594,4 +616,15 @@ public class ItemEntity extends Entity {
public SoundSource getSoundSource() {
return SoundSource.AMBIENT;
}
@@ -146,3 +147,54 @@ index a4935e0192ee0d117521f8aee441effae4a25e4a..d23ad60007ae246c66d9dc9d6cf180cc
public double minecartMaxSpeed = 0.4D;
public boolean minecartPlaceAnywhere = false;
public boolean minecartControllable = false;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
index 342345eb04d00efb58392ccf209e3c51c1064173..5f5c37fb447a4c1790714158f4b41f15793002d1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
@@ -116,4 +116,46 @@ public class CraftItem extends CraftEntity implements Item {
public EntityType getType() {
return EntityType.DROPPED_ITEM;
}
+
+ // Purpur start
+ @Override
+ public void setImmuneToCactus(boolean immuneToCactus) {
+ item.immuneToCactus = immuneToCactus;
+ }
+
+ @Override
+ public boolean isImmuneToCactus() {
+ return item.immuneToCactus;
+ }
+
+ @Override
+ public void setImmuneToExplosion(boolean immuneToExplosion) {
+ item.immuneToExplosion = immuneToExplosion;
+ }
+
+ @Override
+ public boolean isImmuneToExplosion() {
+ return item.immuneToExplosion;
+ }
+
+ @Override
+ public void setImmuneToFire(boolean immuneToFire) {
+ item.immuneToFire = immuneToFire;
+ }
+
+ @Override
+ public boolean isImmuneToFire() {
+ return item.immuneToFire;
+ }
+
+ @Override
+ public void setImmuneToLightning(boolean immuneToLightning) {
+ item.immuneToLightning = immuneToLightning;
+ }
+
+ @Override
+ public boolean isImmuneToLightning() {
+ return item.immuneToLightning;
+ }
+ // Purpur end
}

View File

@@ -73,7 +73,7 @@ index b643a2449e329560c936c0a06fb4cc494d0737a7..92e65f3fbc8f5d77bb8cc31e7a7780c2
@Override
protected void addAdditionalSaveData(CompoundTag nbt) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 359f5d01d144121e0ea129aebc45b3e796c16bf7..fcb383cea17217b6ee26fcd8b59e5ce6a7ca0f8e 100644
index 359f5d01d144121e0ea129aebc45b3e796c16bf7..ddd48367c37d3ca3472fc9a8730f71f2e96743c2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -149,7 +149,7 @@ index 359f5d01d144121e0ea129aebc45b3e796c16bf7..fcb383cea17217b6ee26fcd8b59e5ce6
+ }
+
+ @Override
+ public boolean shouldActivate() {
+ public boolean canUse() {
+ double range = maxTargetRange();
+ List<net.minecraft.world.entity.boss.enderdragon.EndCrystal> crystals = level.getEntitiesOfClass(net.minecraft.world.entity.boss.enderdragon.EndCrystal.class, phantom.getBoundingBox().inflate(range));
+ if (crystals.isEmpty()) {
@@ -165,7 +165,7 @@ index 359f5d01d144121e0ea129aebc45b3e796c16bf7..fcb383cea17217b6ee26fcd8b59e5ce6
+ }
+
+ @Override
+ public boolean shouldStayActive() {
+ public boolean canContinueToUse() {
+ if (crystal == null || !crystal.isAlive()) {
+ return false;
+ }
@@ -203,7 +203,7 @@ index 359f5d01d144121e0ea129aebc45b3e796c16bf7..fcb383cea17217b6ee26fcd8b59e5ce6
+ }
+
+ @Override
+ public boolean shouldActivate() {
+ public boolean canUse() {
+ return phantom.isCirclingCrystal();
+ }
+

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 6f854aa8dfc60ebb580a257c8d6dce93c573af15..8c46b88bb8bfdea6410ad870da92bef084a0089e 100644
index b189de03050e50c0533d2c454ad89175aef264b8..294a6724210509e990c6fffa4ac7c3835881db2e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2445,5 +2445,25 @@ public class ServerPlayer extends Player {
@@ -2453,5 +2453,25 @@ public class ServerPlayer extends Player {
}
// CraftBukkit end

View File

@@ -5,29 +5,31 @@ Subject: [PATCH] Configurable dungeon seed
diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/MonsterRoomFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/MonsterRoomFeature.java
index d36b6208077254af5f0ebed8e8ce20fd45cbb79d..b09611f7c5177d3f5b22ffcaa9a65480afa819c3 100644
index d36b6208077254af5f0ebed8e8ce20fd45cbb79d..612bc6e4a759df96bade4c322aad0b3e8753e0ee 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/feature/MonsterRoomFeature.java
+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/MonsterRoomFeature.java
@@ -25,6 +25,7 @@ public class MonsterRoomFeature extends Feature<NoneFeatureConfiguration> {
private static final Logger LOGGER = LogManager.getLogger();
private static final EntityType<?>[] MOBS = new EntityType[]{EntityType.SKELETON, EntityType.ZOMBIE, EntityType.ZOMBIE, EntityType.SPIDER};
private static final BlockState AIR = Blocks.CAVE_AIR.defaultBlockState();
+ private Random random; // Purpur
+ private Random rnd; // Purpur
public MonsterRoomFeature(Codec<NoneFeatureConfiguration> configCodec) {
super(configCodec);
@@ -32,9 +33,13 @@ public class MonsterRoomFeature extends Feature<NoneFeatureConfiguration> {
@@ -32,9 +33,15 @@ public class MonsterRoomFeature extends Feature<NoneFeatureConfiguration> {
@Override
public boolean place(FeaturePlaceContext<NoneFeatureConfiguration> context) {
+ // Purpur start
+ if (random == null) {
+ if (this.rnd == null) {
+ int seed = net.pl3x.purpur.PurpurConfig.dungeonSeed;
+ this.random = seed == -1 ? random : new Random(seed);
+ this.rnd = seed == -1 ? context.random() : new Random(seed);
+ }
+ // Purpur end
Predicate<BlockState> predicate = Feature.isReplaceable(BlockTags.FEATURES_CANNOT_REPLACE.getName());
BlockPos blockPos = context.origin();
- Random random = context.random();
+ Random random = this.rnd; // Purpur
WorldGenLevel worldGenLevel = context.level();
int i = 3;
int j = random.nextInt(2) + 2;

View File

@@ -158,6 +158,24 @@ index 07853aff3d42ce50799406ee1c14389b5f715b51..9a5da1eec68c7c435406809fda9695cb
public void setOwner(@Nullable Entity entity) {
if (entity != null) {
this.ownerUUID = entity.getUUID();
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ShulkerBullet.java b/src/main/java/net/minecraft/world/entity/projectile/ShulkerBullet.java
index 123f9a93b014107c8f609d38a2b8d37261bb5d18..aa91cc06f6411fe83467e43c0df1145cb85aead0 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ShulkerBullet.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ShulkerBullet.java
@@ -63,6 +63,13 @@ public class ShulkerBullet extends Projectile {
projectileSource = (org.bukkit.entity.LivingEntity) owner.getBukkitEntity(); // CraftBukkit
}
+ // Purpur start
+ @Override
+ protected int getPurpurDespawnRate() {
+ return this.level.purpurConfig.shulkerBulletDespawnRate;
+ }
+ // Purpur end
+
// CraftBukkit start
public Entity getTarget() {
return this.finalTarget;
diff --git a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
index b77d04ef22711a4f90e274e81faa261f3f6c25af..a6d75f20d6b7679d53c3c081c6632e9c303e2d74 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Apply display names from item forms of entities to entities
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 7a3a364f5e3b025cc0a5694401cb9298c80cb733..796ab61f4513c02b0d55d34044d2f7084c447796 100644
index 2d934d5994c84f5b8b61d524527a685cd66de444..8a30031c8e96eaff27416adfe32e752efc246752 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -597,7 +597,13 @@ public class ArmorStand extends LivingEntity {
@@ -604,7 +604,13 @@ public class ArmorStand extends LivingEntity {
}
private void brokenByPlayer(DamageSource damageSource) {

View File

@@ -4,6 +4,21 @@ Date: Sun, 22 Nov 2020 06:02:32 -0600
Subject: [PATCH] Add twisting and weeping vines growth rates
diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
index 4c4d059ca5c93ed37bc4473911d265fcec56c396..f63e79ff0df4b4f152f74e55134dc72932e6ae55 100644
--- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
@@ -80,4 +80,10 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl
public void performBonemeal(ServerLevel world, Random random, BlockPos pos, BlockState state) {
world.setBlock(pos, (BlockState) state.setValue(CaveVinesBlock.BERRIES, true), 2);
}
+
+ // Purpur start
+ public double getGrowthModifier(net.minecraft.server.level.ServerLevel world) {
+ return world.purpurConfig.caveVinesGrowthModifier;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
index 3129c8db32fd79ab5917ffc93ee6dd5db58b1aad..9f1d43ad720750f9d50cc3cfbe1fc9b335cffd0d 100644
--- a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
@@ -67,10 +82,22 @@ index 35b2bad76c45b5a94ba7f2e9c7a8cfeb8c3f498b..d2cb1a7e7ea364cb8e2af4c4e756d8e4
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 65de0a66e81ad3fdf0f85d233512dd7bb1a8a416..6168b3c2a8d700653f181f692e7011a611b2f82b 100644
index 65de0a66e81ad3fdf0f85d233512dd7bb1a8a416..d2fdd697e46260d878712ab20cce5fe4aa456bbc 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -457,6 +457,16 @@ public class PurpurWorldConfig {
@@ -394,6 +394,11 @@ public class PurpurWorldConfig {
}
}
+ public double caveVinesGrowthModifier = 0.10D;
+ private void caveVinesSettings() {
+ caveVinesGrowthModifier = getDouble("blocks.cave_vines.growth-modifier", caveVinesGrowthModifier);
+ }
+
public boolean dispenserApplyCursedArmor = true;
public boolean dispenserPlaceAnvils = false;
private void dispenserSettings() {
@@ -457,6 +462,16 @@ public class PurpurWorldConfig {
stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage);
}

View File

@@ -4,6 +4,20 @@ Date: Sun, 22 Nov 2020 20:13:27 -0600
Subject: [PATCH] Kelp weeping and twisting vines configurable max growth age
diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
index f63e79ff0df4b4f152f74e55134dc72932e6ae55..905ef84a959833c38898670126e0ac08da8d4ca2 100644
--- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
@@ -85,5 +85,9 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl
public double getGrowthModifier(net.minecraft.server.level.ServerLevel world) {
return world.purpurConfig.caveVinesGrowthModifier;
}
+
+ public int getMaxGrowthAge(net.minecraft.server.level.ServerLevel world) {
+ return world.purpurConfig.caveVinesMaxGrowthAge;
+ }
// Purpur end
}
diff --git a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
index 9f1d43ad720750f9d50cc3cfbe1fc9b335cffd0d..1c3284f8bf7923361797a73077af0699fa58db29 100644
--- a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
@@ -89,10 +103,21 @@ index d2cb1a7e7ea364cb8e2af4c4e756d8e45bc0ca10..bb99dda3c5167f23b2500a1f37cbc1ca
// Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 6168b3c2a8d700653f181f692e7011a611b2f82b..af5d052ad3f5948ed198091964006dc33de09d78 100644
index d2fdd697e46260d878712ab20cce5fe4aa456bbc..7a160dd754a666b676ff6b61408bffeea2088e15 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -424,6 +424,11 @@ public class PurpurWorldConfig {
@@ -395,8 +395,10 @@ public class PurpurWorldConfig {
}
public double caveVinesGrowthModifier = 0.10D;
+ public int caveVinesMaxGrowthAge = 25;
private void caveVinesSettings() {
caveVinesGrowthModifier = getDouble("blocks.cave_vines.growth-modifier", caveVinesGrowthModifier);
+ caveVinesMaxGrowthAge = getInt("blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge);
}
public boolean dispenserApplyCursedArmor = true;
@@ -429,6 +431,11 @@ public class PurpurWorldConfig {
lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether);
}
@@ -104,7 +129,7 @@ index 6168b3c2a8d700653f181f692e7011a611b2f82b..af5d052ad3f5948ed198091964006dc3
public boolean respawnAnchorExplode = true;
public double respawnAnchorExplosionPower = 5.0D;
public boolean respawnAnchorExplosionFire = true;
@@ -458,13 +463,17 @@ public class PurpurWorldConfig {
@@ -463,13 +470,17 @@ public class PurpurWorldConfig {
}
public double twistingVinesGrowthModifier = 0.10D;

View File

@@ -21,10 +21,10 @@ index 5ebedd6a156b06e98aded57c817f63429a1ae380..c99d295b999a28dd1eb504179250445d
private static class EndermanFreezeWhenLookedAt extends Goal {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index af5d052ad3f5948ed198091964006dc33de09d78..35114bb65efc940dc44e93546152580bbc9be9e3 100644
index 7a160dd754a666b676ff6b61408bffeea2088e15..c73cd7de9213851825adc0a5e76107102dab2354 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -759,6 +759,7 @@ public class PurpurWorldConfig {
@@ -766,6 +766,7 @@ public class PurpurWorldConfig {
public boolean endermanRidableInWater = false;
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
@@ -32,7 +32,7 @@ index af5d052ad3f5948ed198091964006dc33de09d78..35114bb65efc940dc44e93546152580b
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -769,6 +770,7 @@ public class PurpurWorldConfig {
@@ -776,6 +777,7 @@ public class PurpurWorldConfig {
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);

View File

@@ -44,7 +44,7 @@ index fe045f8e35fe2aac51032a67ce52b27a53a8eff0..03bc86c776596ca5964c22adb757115d
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 94302930c2009ca9c4750cb3315b5bcce59518da..aba5325f96a396be479445730558235529afdcec 100644
index c883d71390af33bee224b529807f640f94ba4c52..0957b411ee1cdbda067a76867e89bb202d0975da 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -2,6 +2,7 @@ package net.pl3x.purpur;
@@ -55,7 +55,7 @@ index 94302930c2009ca9c4750cb3315b5bcce59518da..aba5325f96a396be4794457305582355
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.Explosion;
@@ -1746,6 +1747,7 @@ public class PurpurWorldConfig {
@@ -1753,6 +1754,7 @@ public class PurpurWorldConfig {
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
@@ -63,7 +63,7 @@ index 94302930c2009ca9c4750cb3315b5bcce59518da..aba5325f96a396be4794457305582355
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1760,6 +1762,11 @@ public class PurpurWorldConfig {
@@ -1767,6 +1769,11 @@ public class PurpurWorldConfig {
zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance);
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add boat fall damage config
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 8c46b88bb8bfdea6410ad870da92bef084a0089e..820e1b059fedcc5fe4ccbec772594dddce71fecb 100644
index 294a6724210509e990c6fffa4ac7c3835881db2e..1d8172fbae5d002fe20af1e785077785cf8add97 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -986,7 +986,16 @@ public class ServerPlayer extends Player {
@@ -994,7 +994,16 @@ public class ServerPlayer extends Player {
if (this.isInvulnerableTo(source)) {
return false;
} else {
@@ -27,7 +27,7 @@ index 8c46b88bb8bfdea6410ad870da92bef084a0089e..820e1b059fedcc5fe4ccbec772594ddd
if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 5466cb48c7d71e6c369e17a354b877ff73091544..ec332b3ee149204a41eff5ea5f9690f5db0dbb3e 100644
index 380599964f148516afe5f6b80eff597bbf9e515f..11c95793c13b9bf8a38f96972f77ae8c05533611 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -334,6 +334,7 @@ public class PurpurWorldConfig {

View File

@@ -23,10 +23,10 @@ index 0733f9c057fef17fd79a4769f19b78f4c83a7784..1697b573ffd0c5d17d2d538c40f5ce4b
this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F));
this.goalSelector.addGoal(4, new RandomLookAroundGoal(this));
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ec332b3ee149204a41eff5ea5f9690f5db0dbb3e..3b68c30f3af6c4f459967d56267196d88f8191e1 100644
index 11c95793c13b9bf8a38f96972f77ae8c05533611..ae7644c7e75cd49977bed725292764128441c532 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1441,6 +1441,10 @@ public class PurpurWorldConfig {
@@ -1448,6 +1448,10 @@ public class PurpurWorldConfig {
public double snowGolemMaxHealth = 4.0D;
public boolean snowGolemDropsPumpkin = true;
public boolean snowGolemPutPumpkinBack = false;
@@ -37,7 +37,7 @@ index ec332b3ee149204a41eff5ea5f9690f5db0dbb3e..3b68c30f3af6c4f459967d56267196d8
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1453,6 +1457,10 @@ public class PurpurWorldConfig {
@@ -1460,6 +1464,10 @@ public class PurpurWorldConfig {
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);
snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin);
snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);

View File

@@ -53,10 +53,10 @@ index 1e05cc98a332e5b115c4670e5331e679117c6629..84142a42111ff03827297c522b7ce164
if (this.assignProfessionWhenSpawned) {
this.assignProfessionWhenSpawned = false;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3b68c30f3af6c4f459967d56267196d88f8191e1..36cfbb5a729269b7a435c2d6c253665891de6ef9 100644
index ae7644c7e75cd49977bed725292764128441c532..f728775737554fe8fb9be4c5fe0a558742f5d358 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1614,6 +1614,8 @@ public class PurpurWorldConfig {
@@ -1621,6 +1621,8 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemLimit = 0;
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
@@ -65,7 +65,7 @@ index 3b68c30f3af6c4f459967d56267196d88f8191e1..36cfbb5a729269b7a435c2d6c2536658
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1631,6 +1633,13 @@ public class PurpurWorldConfig {
@@ -1638,6 +1640,13 @@ public class PurpurWorldConfig {
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);

View File

@@ -185,10 +185,10 @@ index 901fc6520d58a5fa5f2cf1b4fa78fec6008aa409..9050cd25663c71197c597aac0ab2e612
public static final VillagerProfession FISHERMAN = register("fisherman", PoiType.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN);
public static final VillagerProfession FLETCHER = register("fletcher", PoiType.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 36cfbb5a729269b7a435c2d6c253665891de6ef9..4590e1ee56e93befc0b5844c4d044e724c77e13e 100644
index f728775737554fe8fb9be4c5fe0a558742f5d358..ca743f116e47ce02b67713d6ac818436bd8b68c8 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1616,6 +1616,8 @@ public class PurpurWorldConfig {
@@ -1623,6 +1623,8 @@ public class PurpurWorldConfig {
public int villagerBreedingTicks = 6000;
public boolean villagerLobotomizeEnabled = false;
public int villagerLobotomizeCheck = 60;
@@ -197,7 +197,7 @@ index 36cfbb5a729269b7a435c2d6c253665891de6ef9..4590e1ee56e93befc0b5844c4d044e72
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1640,6 +1642,8 @@ public class PurpurWorldConfig {
@@ -1647,6 +1649,8 @@ public class PurpurWorldConfig {
}
villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck);

View File

@@ -35,10 +35,10 @@ index 43ef93d2c0c59e0d7021ee9aa2b44345192cc0a9..ce780a2ba7dcbd9c1c9dc24c07387861
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 4590e1ee56e93befc0b5844c4d044e724c77e13e..79916dd8f7605b3f8d5853518847622bda61dd2f 100644
index ca743f116e47ce02b67713d6ac818436bd8b68c8..984f10800309b45214ca4d0c79b65115492071a0 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1850,6 +1850,7 @@ public class PurpurWorldConfig {
@@ -1857,6 +1857,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
@@ -46,7 +46,7 @@ index 4590e1ee56e93befc0b5844c4d044e724c77e13e..79916dd8f7605b3f8d5853518847622b
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1863,5 +1864,6 @@ public class PurpurWorldConfig {
@@ -1870,5 +1871,6 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyOnlyBaby = getBoolean("mobs.zombified_piglin.jockey.only-babies", zombifiedPiglinJockeyOnlyBaby);
zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance);
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);

View File

@@ -201,10 +201,10 @@ index ef4abaf68de01b0879f7d0b330d2d57cc6bd10f9..3e7409ebf1f94b9cf55f2d0b0fe17ca8
return super.mobInteract(player, hand);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 79916dd8f7605b3f8d5853518847622bda61dd2f..cc8b9b1ed14efd6d5b2bb4f5da80ae85bf2aad0a 100644
index 984f10800309b45214ca4d0c79b65115492071a0..bd2d56dba2ab806517e2168372d063fc84177d40 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1737,6 +1737,8 @@ public class PurpurWorldConfig {
@@ -1744,6 +1744,8 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
public boolean wolfRidableInWater = false;
public double wolfMaxHealth = 8.0D;
@@ -213,7 +213,7 @@ index 79916dd8f7605b3f8d5853518847622bda61dd2f..cc8b9b1ed14efd6d5b2bb4f5da80ae85
public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
@@ -1747,6 +1749,8 @@ public class PurpurWorldConfig {
@@ -1754,6 +1756,8 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -24,7 +24,7 @@ index 3e7409ebf1f94b9cf55f2d0b0fe17ca8ec44659f..518dd0e6b4889c049e438b393baa795a
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index cc8b9b1ed14efd6d5b2bb4f5da80ae85bf2aad0a..876a4a09700907d7bb79fc1f7686076e489e9303 100644
index bd2d56dba2ab806517e2168372d063fc84177d40..97071f2f1b16134464560ae3f562f48d732a4f78 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -3,6 +3,7 @@ package net.pl3x.purpur;
@@ -35,7 +35,7 @@ index cc8b9b1ed14efd6d5b2bb4f5da80ae85bf2aad0a..876a4a09700907d7bb79fc1f7686076e
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.Explosion;
@@ -1737,6 +1738,7 @@ public class PurpurWorldConfig {
@@ -1744,6 +1745,7 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
public boolean wolfRidableInWater = false;
public double wolfMaxHealth = 8.0D;
@@ -43,7 +43,7 @@ index cc8b9b1ed14efd6d5b2bb4f5da80ae85bf2aad0a..876a4a09700907d7bb79fc1f7686076e
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -1749,6 +1751,11 @@ public class PurpurWorldConfig {
@@ -1756,6 +1758,11 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Phantom flames on swoop
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 782d4499f925950d66072b63f34a828bcc51d2e7..3ea6f2d96245caa85f365c488b8cc019a8318009 100644
index 007437edff2db6044adf9afca4a098509d007edf..a8d8b524cd8e532f78ee6e61a883bd0aa340a718 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -227,6 +227,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -17,10 +17,10 @@ index 782d4499f925950d66072b63f34a828bcc51d2e7..3ea6f2d96245caa85f365c488b8cc019
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 876a4a09700907d7bb79fc1f7686076e489e9303..3e9af1b5796b9cb6e7c9223583d94c1f510f280e 100644
index 97071f2f1b16134464560ae3f562f48d732a4f78..406a56c51e85bfda195d56c67da66c476219b1e4 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1146,6 +1146,7 @@ public class PurpurWorldConfig {
@@ -1153,6 +1153,7 @@ public class PurpurWorldConfig {
public float phantomFlameDamage = 1.0F;
public int phantomFlameFireTime = 8;
public boolean phantomAllowGriefing = false;
@@ -28,7 +28,7 @@ index 876a4a09700907d7bb79fc1f7686076e489e9303..3e9af1b5796b9cb6e7c9223583d94c1f
public double phantomMaxHealth = 20.0D;
public double phantomAttackedByCrystalRadius = 0.0D;
public float phantomAttackedByCrystalDamage = 1.0F;
@@ -1172,6 +1173,7 @@ public class PurpurWorldConfig {
@@ -1179,6 +1180,7 @@ public class PurpurWorldConfig {
phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage);
phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime);
phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing);

View File

@@ -17,11 +17,11 @@ index d980a556785b52fe827310b83638139df0816b11..3c8c02fc92374def12254f7ffad604b2
return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3e9af1b5796b9cb6e7c9223583d94c1f510f280e..e377af1c0c565df4cb3487654980b4cf9cc16d97 100644
index 406a56c51e85bfda195d56c67da66c476219b1e4..2426b506b1edb013a386d99f5981faca850c1824 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -405,6 +405,11 @@ public class PurpurWorldConfig {
}
@@ -412,6 +412,11 @@ public class PurpurWorldConfig {
caveVinesMaxGrowthAge = getInt("blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge);
}
+ public boolean chestOpenWithBlockOnTop = false;

View File

@@ -42,18 +42,18 @@ index 5fa2723c9899c69ac326f95acf49cd47406378f9..a9098119009b60ea8dbdb4c118cfc20b
}
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 75d2dbe9092b8f46d102bf50d616bc37883f8375..3a17a29325e5df7d0fad90819a77cf5b4edb73be 100644
index 75d2dbe9092b8f46d102bf50d616bc37883f8375..77aa2de647c8c50663289f6d9b18a9dc786448c0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -599,6 +599,8 @@ public abstract class PlayerList {
if (entityplayer.didPlayerJoinEvent) this.cserver.getPluginManager().callEvent(playerQuitEvent); // Paper - if we disconnected before join ever fired, don't fire quit
entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
@@ -585,6 +585,8 @@ public abstract class PlayerList {
}
+ net.pl3x.purpur.task.TPSBarTask.removePlayer(cserver.getPlayer(entityplayer)); // Purpur
public net.kyori.adventure.text.Component disconnect(ServerPlayer entityplayer) { // Paper - return Component
+ net.pl3x.purpur.task.TPSBarTask.removePlayer(entityplayer.getBukkitEntity()); // Purpur
+
if (server.isSameThread()) entityplayer.doTick(); // SPIGOT-924 // Paper - don't tick during emergency shutdowns (Watchdog)
// CraftBukkit end
ServerLevel worldserver = entityplayer.getLevel();
entityplayer.awardStat(Stats.LEAVE_GAME);
diff --git a/src/main/java/net/pl3x/purpur/command/TPSBarCommand.java b/src/main/java/net/pl3x/purpur/command/TPSBarCommand.java
new file mode 100644
index 0000000000000000000000000000000000000000..2803a1b95121fbff3066fd2d1abaf8723386781f

View File

@@ -28,10 +28,10 @@ index 294f276fa8d2d754abde11ebc3d39e5e68996b05..b3928617f732b49cfc124e9bdb879110
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e377af1c0c565df4cb3487654980b4cf9cc16d97..5ac846ec65890394d8460aff3f9453cd1baabbd3 100644
index 2426b506b1edb013a386d99f5981faca850c1824..4b059eece9e527b8f556058be7349409283e6768 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1521,6 +1521,7 @@ public class PurpurWorldConfig {
@@ -1528,6 +1528,7 @@ public class PurpurWorldConfig {
public boolean striderRidableInWater = false;
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
@@ -39,7 +39,7 @@ index e377af1c0c565df4cb3487654980b4cf9cc16d97..5ac846ec65890394d8460aff3f9453cd
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1531,6 +1532,7 @@ public class PurpurWorldConfig {
@@ -1538,6 +1539,7 @@ public class PurpurWorldConfig {
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);

View File

@@ -393,7 +393,7 @@ index e98fc3c235f9160f1928a8afb0d7991a6d3430cb..db35f756b7adb6b113659ae13b08ab89
return true;
// Purpur end
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd914969ce0 100644
index 9cfc57521884cf34b581d246b8754fff5b326bdc..e990159137c9ea635ae69434f0a12583f8a73032 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -351,9 +351,12 @@ public class PurpurWorldConfig {
@@ -422,7 +422,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight);
voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight);
voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt);
@@ -430,9 +436,11 @@ public class PurpurWorldConfig {
@@ -437,9 +443,11 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}
@@ -434,7 +434,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha);
}
@@ -458,6 +466,11 @@ public class PurpurWorldConfig {
@@ -465,6 +473,11 @@ public class PurpurWorldConfig {
kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge);
}
@@ -446,7 +446,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
public boolean respawnAnchorExplode = true;
public double respawnAnchorExplosionPower = 5.0D;
public boolean respawnAnchorExplosionFire = true;
@@ -491,6 +504,11 @@ public class PurpurWorldConfig {
@@ -498,6 +511,11 @@ public class PurpurWorldConfig {
stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage);
}
@@ -458,7 +458,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
public double twistingVinesGrowthModifier = 0.10D;
public int twistingVinesMaxGrowthAge = 25;
private void twistingVinesSettings() {
@@ -669,6 +687,7 @@ public class PurpurWorldConfig {
@@ -676,6 +694,7 @@ public class PurpurWorldConfig {
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
@@ -466,7 +466,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -680,6 +699,7 @@ public class PurpurWorldConfig {
@@ -687,6 +706,7 @@ public class PurpurWorldConfig {
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
@@ -474,7 +474,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean dolphinRidable = false;
@@ -767,6 +787,7 @@ public class PurpurWorldConfig {
@@ -774,6 +794,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxY = 256D;
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
@@ -482,7 +482,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -782,6 +803,7 @@ public class PurpurWorldConfig {
@@ -789,6 +810,7 @@ public class PurpurWorldConfig {
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
@@ -490,7 +490,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean endermanRidable = false;
@@ -789,6 +811,7 @@ public class PurpurWorldConfig {
@@ -796,6 +818,7 @@ public class PurpurWorldConfig {
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
@@ -498,7 +498,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -800,6 +823,7 @@ public class PurpurWorldConfig {
@@ -807,6 +830,7 @@ public class PurpurWorldConfig {
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
@@ -506,7 +506,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean endermiteRidable = false;
@@ -819,6 +843,7 @@ public class PurpurWorldConfig {
@@ -826,6 +850,7 @@ public class PurpurWorldConfig {
public boolean evokerRidable = false;
public boolean evokerRidableInWater = false;
public double evokerMaxHealth = 24.0D;
@@ -514,7 +514,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -828,6 +853,7 @@ public class PurpurWorldConfig {
@@ -835,6 +860,7 @@ public class PurpurWorldConfig {
set("mobs.evoker.attributes.max_health", oldValue);
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
@@ -522,7 +522,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean foxRidable = false;
@@ -835,6 +861,7 @@ public class PurpurWorldConfig {
@@ -842,6 +868,7 @@ public class PurpurWorldConfig {
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
@@ -530,7 +530,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -846,6 +873,7 @@ public class PurpurWorldConfig {
@@ -853,6 +880,7 @@ public class PurpurWorldConfig {
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
@@ -538,7 +538,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean ghastRidable = false;
@@ -1239,6 +1267,7 @@ public class PurpurWorldConfig {
@@ -1246,6 +1274,7 @@ public class PurpurWorldConfig {
public boolean piglinRidable = false;
public boolean piglinRidableInWater = false;
public double piglinMaxHealth = 16.0D;
@@ -546,7 +546,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1248,6 +1277,7 @@ public class PurpurWorldConfig {
@@ -1255,6 +1284,7 @@ public class PurpurWorldConfig {
set("mobs.piglin.attributes.max_health", oldValue);
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
@@ -554,7 +554,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean piglinBruteRidable = false;
@@ -1267,6 +1297,7 @@ public class PurpurWorldConfig {
@@ -1274,6 +1304,7 @@ public class PurpurWorldConfig {
public boolean pillagerRidable = false;
public boolean pillagerRidableInWater = false;
public double pillagerMaxHealth = 24.0D;
@@ -562,7 +562,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1276,6 +1307,7 @@ public class PurpurWorldConfig {
@@ -1283,6 +1314,7 @@ public class PurpurWorldConfig {
set("mobs.pillager.attributes.max_health", oldValue);
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
@@ -570,7 +570,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean polarBearRidable = false;
@@ -1317,6 +1349,7 @@ public class PurpurWorldConfig {
@@ -1324,6 +1356,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
@@ -578,7 +578,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1329,11 +1362,13 @@ public class PurpurWorldConfig {
@@ -1336,11 +1369,13 @@ public class PurpurWorldConfig {
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
@@ -592,7 +592,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1343,6 +1378,7 @@ public class PurpurWorldConfig {
@@ -1350,6 +1385,7 @@ public class PurpurWorldConfig {
set("mobs.ravager.attributes.max_health", oldValue);
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
@@ -600,7 +600,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean salmonRidable = false;
@@ -1361,6 +1397,7 @@ public class PurpurWorldConfig {
@@ -1368,6 +1404,7 @@ public class PurpurWorldConfig {
public boolean sheepRidableInWater = false;
public double sheepMaxHealth = 8.0D;
public int sheepBreedingTicks = 6000;
@@ -608,7 +608,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1371,6 +1408,7 @@ public class PurpurWorldConfig {
@@ -1378,6 +1415,7 @@ public class PurpurWorldConfig {
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
@@ -616,7 +616,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean shulkerRidable = false;
@@ -1390,6 +1428,7 @@ public class PurpurWorldConfig {
@@ -1397,6 +1435,7 @@ public class PurpurWorldConfig {
public boolean silverfishRidable = false;
public boolean silverfishRidableInWater = false;
public double silverfishMaxHealth = 8.0D;
@@ -624,7 +624,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1399,6 +1438,7 @@ public class PurpurWorldConfig {
@@ -1406,6 +1445,7 @@ public class PurpurWorldConfig {
set("mobs.silverfish.attributes.max_health", oldValue);
}
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
@@ -632,7 +632,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean skeletonRidable = false;
@@ -1466,6 +1506,7 @@ public class PurpurWorldConfig {
@@ -1473,6 +1513,7 @@ public class PurpurWorldConfig {
public int snowGolemSnowBallMax = 20;
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
@@ -640,7 +640,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1482,6 +1523,7 @@ public class PurpurWorldConfig {
@@ -1489,6 +1530,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax);
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
@@ -648,7 +648,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean squidRidable = false;
@@ -1641,6 +1683,7 @@ public class PurpurWorldConfig {
@@ -1648,6 +1690,7 @@ public class PurpurWorldConfig {
public int villagerLobotomizeCheck = 60;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@@ -656,7 +656,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1667,6 +1710,7 @@ public class PurpurWorldConfig {
@@ -1674,6 +1717,7 @@ public class PurpurWorldConfig {
villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck);
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
@@ -664,7 +664,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean vindicatorRidable = false;
@@ -1723,6 +1767,7 @@ public class PurpurWorldConfig {
@@ -1730,6 +1774,7 @@ public class PurpurWorldConfig {
public double witherMaxHealth = 300.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
@@ -672,7 +672,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1739,6 +1784,7 @@ public class PurpurWorldConfig {
@@ -1746,6 +1791,7 @@ public class PurpurWorldConfig {
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
@@ -680,7 +680,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
}
public boolean witherSkeletonRidable = false;
@@ -1806,6 +1852,7 @@ public class PurpurWorldConfig {
@@ -1813,6 +1859,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public Difficulty zombieBreakDoorMinDifficulty = Difficulty.HARD;
@@ -688,7 +688,7 @@ index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd9
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1825,6 +1872,7 @@ public class PurpurWorldConfig {
@@ -1832,6 +1879,7 @@ public class PurpurWorldConfig {
} catch (IllegalArgumentException ignore) {
zombieBreakDoorMinDifficulty = Difficulty.HARD;
}

View File

@@ -37,10 +37,10 @@ index 5b15275c8d808916a1506a19a8bc29103adedae9..3b170886d42df4c217b565f54b1c6272
if (CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) {
return;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e2da11f256a24e583d6294dda341f238668db408..0bd50fc8e2c3945b51eae86b6c6eaed3e4b9bf8c 100644
index fc8bd53e71bbba7ea02f38df14e182697cfcf699..6de54168c90225465f6ab353fdbb84fb576d8685 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -443,10 +443,16 @@ public class PurpurWorldConfig {
@@ -450,10 +450,16 @@ public class PurpurWorldConfig {
public boolean farmlandBypassMobGriefing = false;
public boolean farmlandGetsMoistFromBelow = false;
public boolean farmlandAlpha = false;

View File

@@ -30,7 +30,7 @@ index e6d8a421b0e5496df9ea3fc01f88c2f3c6c527b4..e879f7bdee9c58533a549f22286ebb8a
this.wasTouchingWater = false;
} else if (this.updateFluidHeightAndDoFluidPushing((Tag) FluidTags.WATER, 0.014D)) {
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 796ab61f4513c02b0d55d34044d2f7084c447796..d119f8ab447bc17deabc494463de496161c9b126 100644
index 8a30031c8e96eaff27416adfe32e752efc246752..12172f9f5cb03d3c999f17a8131c79ac4bb0e176 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -99,10 +99,12 @@ public class ArmorStand extends LivingEntity {
@@ -46,7 +46,7 @@ index 796ab61f4513c02b0d55d34044d2f7084c447796..d119f8ab447bc17deabc494463de4961
this.handItems = NonNullList.withSize(2, ItemStack.EMPTY);
this.armorItems = NonNullList.withSize(4, ItemStack.EMPTY);
this.headPose = ArmorStand.DEFAULT_HEAD_POSE;
@@ -996,4 +998,18 @@ public class ArmorStand extends LivingEntity {
@@ -1003,4 +1005,18 @@ public class ArmorStand extends LivingEntity {
}
// Paper end
// Paper end
@@ -66,7 +66,7 @@ index 796ab61f4513c02b0d55d34044d2f7084c447796..d119f8ab447bc17deabc494463de4961
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 0bd50fc8e2c3945b51eae86b6c6eaed3e4b9bf8c..4d69d20f5c009745cf633d912ab22498c52e9460 100644
index 6de54168c90225465f6ab353fdbb84fb576d8685..b9ea0b66cd90abc757fe0dd046a84529fd49dca4 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -89,10 +89,16 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix stuck in portals
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 820e1b059fedcc5fe4ccbec772594dddce71fecb..baefaa7bd81ef1fdec6f1b2a03c1a8bff42ce84c 100644
index 1d8172fbae5d002fe20af1e785077785cf8add97..1709b5c1409aebee64ed6f84f405b8c0b20c6934 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1136,6 +1136,7 @@ public class ServerPlayer extends Player {
@@ -1144,6 +1144,7 @@ public class ServerPlayer extends Player {
playerlist.sendPlayerPermissionLevel(this);
worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
this.unsetRemoved();
@@ -37,7 +37,7 @@ index e879f7bdee9c58533a549f22286ebb8a22a30442..92a1c059b248e14b16efbca7824d9a1a
this.isInsidePortal = true;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 4d69d20f5c009745cf633d912ab22498c52e9460..3e4c63da65d2a6ee49b115b58ecc0935e92f6b06 100644
index b9ea0b66cd90abc757fe0dd046a84529fd49dca4..906d95f6f43b950a52192b9048e4a2f58d404e9f 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -282,6 +282,7 @@ public class PurpurWorldConfig {

View File

@@ -70,10 +70,10 @@ index b3928617f732b49cfc124e9bdb879110413defd7..1c6d29a30df66e9971cd50e264bb4455
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3e4c63da65d2a6ee49b115b58ecc0935e92f6b06..58338f0d1c1cdd153ce90e79ad4ae2725622752e 100644
index 906d95f6f43b950a52192b9048e4a2f58d404e9f..cfeb22ba7a135a31fdbf5a2f65d4f52740fc9cde 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -604,6 +604,7 @@ public class PurpurWorldConfig {
@@ -611,6 +611,7 @@ public class PurpurWorldConfig {
public boolean blazeRidableInWater = false;
public double blazeMaxY = 256D;
public double blazeMaxHealth = 20.0D;
@@ -81,7 +81,7 @@ index 3e4c63da65d2a6ee49b115b58ecc0935e92f6b06..58338f0d1c1cdd153ce90e79ad4ae272
private void blazeSettings() {
blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable);
blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater);
@@ -614,6 +615,7 @@ public class PurpurWorldConfig {
@@ -621,6 +622,7 @@ public class PurpurWorldConfig {
set("mobs.blaze.attributes.max_health", oldValue);
}
blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth);
@@ -89,7 +89,7 @@ index 3e4c63da65d2a6ee49b115b58ecc0935e92f6b06..58338f0d1c1cdd153ce90e79ad4ae272
}
public boolean catRidable = false;
@@ -830,6 +832,7 @@ public class PurpurWorldConfig {
@@ -837,6 +839,7 @@ public class PurpurWorldConfig {
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
@@ -97,7 +97,7 @@ index 3e4c63da65d2a6ee49b115b58ecc0935e92f6b06..58338f0d1c1cdd153ce90e79ad4ae272
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -842,6 +845,7 @@ public class PurpurWorldConfig {
@@ -849,6 +852,7 @@ public class PurpurWorldConfig {
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing);
@@ -105,7 +105,7 @@ index 3e4c63da65d2a6ee49b115b58ecc0935e92f6b06..58338f0d1c1cdd153ce90e79ad4ae272
}
public boolean endermiteRidable = false;
@@ -1525,6 +1529,7 @@ public class PurpurWorldConfig {
@@ -1532,6 +1536,7 @@ public class PurpurWorldConfig {
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
public boolean snowGolemBypassMobGriefing = false;
@@ -113,7 +113,7 @@ index 3e4c63da65d2a6ee49b115b58ecc0935e92f6b06..58338f0d1c1cdd153ce90e79ad4ae272
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1542,6 +1547,7 @@ public class PurpurWorldConfig {
@@ -1549,6 +1554,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing);
@@ -121,7 +121,7 @@ index 3e4c63da65d2a6ee49b115b58ecc0935e92f6b06..58338f0d1c1cdd153ce90e79ad4ae272
}
public boolean squidRidable = false;
@@ -1595,6 +1601,7 @@ public class PurpurWorldConfig {
@@ -1602,6 +1608,7 @@ public class PurpurWorldConfig {
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
public boolean striderGiveSaddleBack = false;
@@ -129,7 +129,7 @@ index 3e4c63da65d2a6ee49b115b58ecc0935e92f6b06..58338f0d1c1cdd153ce90e79ad4ae272
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1606,6 +1613,7 @@ public class PurpurWorldConfig {
@@ -1613,6 +1620,7 @@ public class PurpurWorldConfig {
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack);

View File

@@ -52,10 +52,10 @@ index 92e65f3fbc8f5d77bb8cc31e7a7780c2589f4227..0c46507ab0b904fb1f79bc5421c88c03
this.onDestroyedBy(source);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 930adab7d6d387c935cb9e8d974d4fdf048871be..90788945ff4e5915422aed6325ce9808af401477 100644
index ab16826ca6515df75d2656700c0e0d9f5834eaae..c3bf38fda276d05be4864ba67778c4ba7dae0b21 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -450,6 +450,35 @@ public class PurpurWorldConfig {
@@ -457,6 +457,35 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}

View File

@@ -29,10 +29,10 @@ index 15d35d325b66e1a417eb7ba699597d627bd4eb54..36745f845f33c877595d572e46bd8e96
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 90788945ff4e5915422aed6325ce9808af401477..814dab20834481fccdae8e8f0962bffa3b8f1d8a 100644
index c3bf38fda276d05be4864ba67778c4ba7dae0b21..1adabe1ead47e51b4d1dc2d19036d2675e844707 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -839,6 +839,7 @@ public class PurpurWorldConfig {
@@ -846,6 +846,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
@@ -40,7 +40,7 @@ index 90788945ff4e5915422aed6325ce9808af401477..814dab20834481fccdae8e8f0962bffa
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -855,6 +856,7 @@ public class PurpurWorldConfig {
@@ -862,6 +863,7 @@ public class PurpurWorldConfig {
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing);
@@ -48,7 +48,7 @@ index 90788945ff4e5915422aed6325ce9808af401477..814dab20834481fccdae8e8f0962bffa
}
public boolean endermanRidable = false;
@@ -1825,6 +1827,7 @@ public class PurpurWorldConfig {
@@ -1832,6 +1834,7 @@ public class PurpurWorldConfig {
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
@@ -56,7 +56,7 @@ index 90788945ff4e5915422aed6325ce9808af401477..814dab20834481fccdae8e8f0962bffa
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1842,6 +1845,7 @@ public class PurpurWorldConfig {
@@ -1849,6 +1852,7 @@ public class PurpurWorldConfig {
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);

View File

@@ -29,10 +29,10 @@ index 0169d874247a96c2e10a65ecb9c0c093f5a6ecfb..b760e2d014b3ae70671878082bb853b7
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 1e5589f8ece209fd77519d8afc6339b13f489834..3dd239cda6a5d54ac5ca62d9b91860728f2c4a25 100644
index 677a347062bbf6b8c1da0697bcc24d427ec43553..6027e589df5d8bcd3c5088affc9b71f3a1613791 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -505,6 +505,11 @@ public class PurpurWorldConfig {
@@ -512,6 +512,11 @@ public class PurpurWorldConfig {
furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index baefaa7bd81ef1fdec6f1b2a03c1a8bff42ce84c..177c61a306b9e07eb7aabbac664616cc23bfef5b 100644
index 1709b5c1409aebee64ed6f84f405b8c0b20c6934..336ddca98c43102ac5d5f05b19a46c8a1fe507e3 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1299,7 +1299,7 @@ public class ServerPlayer extends Player {
@@ -1307,7 +1307,7 @@ public class ServerPlayer extends Player {
return entitymonster.isPreventingPlayerRest((Player) this);
});
@@ -18,7 +18,7 @@ index baefaa7bd81ef1fdec6f1b2a03c1a8bff42ce84c..177c61a306b9e07eb7aabbac664616cc
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 6d849b9f42858f7ac692eefcac7d788700212ba9..ffa2b43ae403c197a4d107300571aa76d01e92b6 100644
index c24c40dd7868829bad1a55ccc71a718b96dc4b6d..8d5b3b98a5c886f6336951e6642f708d40970382 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -296,6 +296,7 @@ public class PurpurWorldConfig {

View File

@@ -19,10 +19,10 @@ index 3907b7cb559dabdd3cc347678d42071215c66a6c..91e23061ed8d40ba36cb8f10fc9ccbe4
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ffa2b43ae403c197a4d107300571aa76d01e92b6..806aa9eb750143452166b4a72123dd146a70d421 100644
index 8d5b3b98a5c886f6336951e6642f708d40970382..6857bc0bb1c0a4ff7164ad6784dabbd36ae745b1 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -887,6 +887,7 @@ public class PurpurWorldConfig {
@@ -894,6 +894,7 @@ public class PurpurWorldConfig {
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
public boolean endermanTakeDamageFromWater = true;
@@ -30,7 +30,7 @@ index ffa2b43ae403c197a4d107300571aa76d01e92b6..806aa9eb750143452166b4a72123dd14
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -900,6 +901,7 @@ public class PurpurWorldConfig {
@@ -907,6 +908,7 @@ public class PurpurWorldConfig {
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing);
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);

View File

@@ -20,10 +20,10 @@ index 91e23061ed8d40ba36cb8f10fc9ccbe482d2b893..a3d9a3182d76141cb7c0f8aaf601e149
} else {
Vec3 vec3d = player.getViewVector(1.0F).normalize();
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 806aa9eb750143452166b4a72123dd146a70d421..ee1a1c2ba22b48a7206b08e837e48d61dec21b52 100644
index 6857bc0bb1c0a4ff7164ad6784dabbd36ae745b1..91991a73f9ad30ad89d4c704bd8e204685bbbcf5 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -888,6 +888,8 @@ public class PurpurWorldConfig {
@@ -895,6 +895,8 @@ public class PurpurWorldConfig {
public boolean endermanBypassMobGriefing = false;
public boolean endermanTakeDamageFromWater = true;
public boolean endermanAggroSpawnedEndermites = false;
@@ -32,7 +32,7 @@ index 806aa9eb750143452166b4a72123dd146a70d421..ee1a1c2ba22b48a7206b08e837e48d61
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -902,6 +904,8 @@ public class PurpurWorldConfig {
@@ -909,6 +911,8 @@ public class PurpurWorldConfig {
endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing);
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
endermanAggroSpawnedEndermites = getBoolean("mobs.enderman.aggressive-towards-spawned-endermites", endermanAggroSpawnedEndermites);

View File

@@ -32,10 +32,10 @@ index 873e1d64b917e961c9d9b5217fe664a91d0ab5bc..c31ffb302dba05d9771db7bd17993a1e
this.caravanHead.caravanTail = this;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3f7ccc8dad37de39520377f34b9d692830159f36..43c2802d91006343776aa2177ac26fda3d5278b8 100644
index 1c08334952fa4afd251c1fa00365892c4ef7454f..28a6585e8a20ebd993cd1c20001760fa3b28685d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1147,6 +1147,7 @@ public class PurpurWorldConfig {
@@ -1154,6 +1154,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
@@ -43,7 +43,7 @@ index 3f7ccc8dad37de39520377f34b9d692830159f36..43c2802d91006343776aa2177ac26fda
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1164,6 +1165,7 @@ public class PurpurWorldConfig {
@@ -1171,6 +1172,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);

View File

@@ -50,10 +50,10 @@ index c550b8c19837ed9bf730a3eb777bc00de4e7ceb2..02494dcc8a342f65b2855612aebeb019
private void spawnLingeringCloud() {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 43c2802d91006343776aa2177ac26fda3d5278b8..ad69531f49bbdb986bb6e0175a2c63029254f0cf 100644
index 28a6585e8a20ebd993cd1c20001760fa3b28685d..d5bf649e4643da234cd76d959d7c2b892535dbd1 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -762,6 +762,7 @@ public class PurpurWorldConfig {
@@ -769,6 +769,7 @@ public class PurpurWorldConfig {
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
@@ -61,7 +61,7 @@ index 43c2802d91006343776aa2177ac26fda3d5278b8..ad69531f49bbdb986bb6e0175a2c6302
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -774,6 +775,7 @@ public class PurpurWorldConfig {
@@ -781,6 +782,7 @@ public class PurpurWorldConfig {
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);

View File

@@ -31,10 +31,10 @@ index 3c51e6d419a244b9270119590aa299527163c331..b466b0430dd94777975a1e7ab9792166
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ad69531f49bbdb986bb6e0175a2c63029254f0cf..004a3a2a84986ee64162b2fbbb15b76965ea727c 100644
index d5bf649e4643da234cd76d959d7c2b892535dbd1..1fb80872de9ba8f4d0851da8c2aed992f55c1e08 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1457,6 +1457,7 @@ public class PurpurWorldConfig {
@@ -1464,6 +1464,7 @@ public class PurpurWorldConfig {
public boolean ravagerRidableInWater = false;
public double ravagerMaxHealth = 100.0D;
public boolean ravagerBypassMobGriefing = false;
@@ -42,7 +42,7 @@ index ad69531f49bbdb986bb6e0175a2c63029254f0cf..004a3a2a84986ee64162b2fbbb15b769
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1467,6 +1468,23 @@ public class PurpurWorldConfig {
@@ -1474,6 +1475,23 @@ public class PurpurWorldConfig {
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);

View File

@@ -62,10 +62,10 @@ index 4c9ae6bdb2f0358798f84928271a2d783dcba7b4..47bf769a031ae39cc72d2191195d1378
int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 004a3a2a84986ee64162b2fbbb15b76965ea727c..c54fd7f6fce56809ed7cd079ad5e106cad9d909a 100644
index 1fb80872de9ba8f4d0851da8c2aed992f55c1e08..098154a67bdfa17086d03d0e10fb1f0e07454e60 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -461,6 +461,11 @@ public class PurpurWorldConfig {
@@ -468,6 +468,11 @@ public class PurpurWorldConfig {
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
}

View File

@@ -31,10 +31,10 @@ index c48935d35a6141c41db22e3ec172d5994fd317a2..fa4644c11cbb252734a6f5dc21c861d2
this.openTradingScreen(player, this.getDisplayName(), 1);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b32e285c77ce7d67583339941487a522dbe566dd..8aa27111a1c0e3c70f69b303f00a9c25e321ef12 100644
index a133696790f9f78f80de5de906e04b36fa09ce32..b6a32174aa55585d28340d0f9883e57e95deec41 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1801,6 +1801,7 @@ public class PurpurWorldConfig {
@@ -1808,6 +1808,7 @@ public class PurpurWorldConfig {
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
@@ -42,7 +42,7 @@ index b32e285c77ce7d67583339941487a522dbe566dd..8aa27111a1c0e3c70f69b303f00a9c25
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1828,6 +1829,7 @@ public class PurpurWorldConfig {
@@ -1835,6 +1836,7 @@ public class PurpurWorldConfig {
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
@@ -50,7 +50,7 @@ index b32e285c77ce7d67583339941487a522dbe566dd..8aa27111a1c0e3c70f69b303f00a9c25
}
public boolean vindicatorRidable = false;
@@ -1851,6 +1853,7 @@ public class PurpurWorldConfig {
@@ -1858,6 +1860,7 @@ public class PurpurWorldConfig {
public double wanderingTraderMaxHealth = 20.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
@@ -58,7 +58,7 @@ index b32e285c77ce7d67583339941487a522dbe566dd..8aa27111a1c0e3c70f69b303f00a9c25
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1862,6 +1865,7 @@ public class PurpurWorldConfig {
@@ -1869,6 +1872,7 @@ public class PurpurWorldConfig {
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);

View File

@@ -47,10 +47,10 @@ index eb7f8907bb362c0461194bbaf62917ce71c669f3..89f5e0d26500f1806dff9f91390546cd
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index f03dcfc34d8ae01e08e6c4ba744ed5a3daec5b14..7ae0bc81ddfc5228b7b844e51e6d025e780392ba 100644
index 4983410ec62d65bffacbb62491ea455db14dc343..fd484089d1f7d6644780a353ab12d18636b3249d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -582,6 +582,11 @@ public class PurpurWorldConfig {
@@ -589,6 +589,11 @@ public class PurpurWorldConfig {
signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit);
}

View File

@@ -22,10 +22,10 @@ index fc34cfa8bfb3b82a8e1b28d261f0e901d837467e..35d47bb0d8c4a2b8374564133f040899
return false;
} else {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 7ae0bc81ddfc5228b7b844e51e6d025e780392ba..1f631f1f9a03ff1c0fcfc48337b04fefeadb8f06 100644
index fd484089d1f7d6644780a353ab12d18636b3249d..6bf7165870ef252ca2d69584d0f187dc751ece30 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -534,8 +534,12 @@ public class PurpurWorldConfig {
@@ -541,8 +541,12 @@ public class PurpurWorldConfig {
}
public boolean snowOnBlueIce = true;

View File

@@ -67,10 +67,10 @@ index c903a1a8d2234bb0fa354d1c44ff3ab2275b04c7..d01e4064a772710c1383927e0848b9b3
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 37a7d6a950282435e78438b7d51c43dc63d890e3..1832d269b91665cb3623c48af69890ecafc1506c 100644
index 9636564028b75d7adbead873ee34cedbef9ec6d3..b6734d074e326fbeb3fc25343af1e88e37664959 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -486,6 +486,16 @@ public class PurpurWorldConfig {
@@ -493,6 +493,16 @@ public class PurpurWorldConfig {
dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils);
}

View File

@@ -43,10 +43,10 @@ index 1ef8eadd4e59f2e5d2bbd84f6f9bcf37b59db5bd..5b10e1110f938745c8f9ed0b55960566
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 1832d269b91665cb3623c48af69890ecafc1506c..35ef5be9d448f3f1447a19d8c26ae9bedecb9820 100644
index b6734d074e326fbeb3fc25343af1e88e37664959..3926ec4b6081b6a8253b1fad87ffd9a859d2da31 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -608,6 +608,13 @@ public class PurpurWorldConfig {
@@ -615,6 +615,13 @@ public class PurpurWorldConfig {
spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone);
}

View File

@@ -18,10 +18,10 @@ index 7fddb6fa8fd30ef88346a59f7867aae792f13772..40893e71fe8447b695350273bef9623b
} else {
int j = pos.getX();
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 876f3f74f27d97109fde626477f16c68b38921b9..c463a062b29957c0a5000bac9dd45076be6a94e6 100644
index fbf67c1383a8757374b8bf5c7b4175291605f857..e3dd6088093658e1c8f79bc722893545d6ef2f72 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -620,6 +620,11 @@ public class PurpurWorldConfig {
@@ -627,6 +627,11 @@ public class PurpurWorldConfig {
slabHalfBreak = getBoolean("blocks.slab.break-individual-slabs-when-sneaking", slabHalfBreak);
}

View File

@@ -30,3 +30,23 @@ index fef1027829c44957e23c0a121033bfb7640d06f0..c42349d0f6b0025525278295b36f4030
while (world.getBlockState(pos).is((Block) this)) {
pos = pos.below();
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e3dd6088093658e1c8f79bc722893545d6ef2f72..16d77d2a6389f55aed5247f00de8c7fe06e6443e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1429,6 +1429,7 @@ public class PurpurWorldConfig {
public boolean piglinRidableInWater = false;
public double piglinMaxHealth = 16.0D;
public boolean piglinBypassMobGriefing = true;
+ public int piglinPortalSpawnModifier = 2000;
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1439,6 +1440,7 @@ public class PurpurWorldConfig {
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
+ piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
}
public boolean piglinBruteRidable = false;

View File

@@ -31,10 +31,10 @@ index 5d844ed98b916298a657d5e9766ab7f383a304e0..0129460ce1ca199a47b6657f824c75fd
entity.hurt(DamageSource.HOT_FLOOR, 1.0F);
org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c463a062b29957c0a5000bac9dd45076be6a94e6..d02c15de3909e8892ca950c2748624dc299155cf 100644
index 16d77d2a6389f55aed5247f00de8c7fe06e6443e..1ccc415dfdbacc5c66867252db45ffaf0050a167 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -587,6 +587,13 @@ public class PurpurWorldConfig {
@@ -594,6 +594,13 @@ public class PurpurWorldConfig {
kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge);
}

View File

@@ -18,10 +18,10 @@ index 430aa10101d9f21561155941ff24441fd0c4103a..de91f0dd7f9a62e5a96b4cc3e4f505ec
if (!event.isCancelled()) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d02c15de3909e8892ca950c2748624dc299155cf..091aa6423d7b35dc4ec813412316f166510be016 100644
index 1ccc415dfdbacc5c66867252db45ffaf0050a167..f8cf4fa3aa76077e804e63ba219c15bfd8af9566 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1956,6 +1956,7 @@ public class PurpurWorldConfig {
@@ -1965,6 +1965,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherCanRideVehicles = false;
@@ -29,7 +29,7 @@ index d02c15de3909e8892ca950c2748624dc299155cf..091aa6423d7b35dc4ec813412316f166
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1974,6 +1975,7 @@ public class PurpurWorldConfig {
@@ -1983,6 +1984,7 @@ public class PurpurWorldConfig {
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles);

View File

@@ -36,10 +36,10 @@ index 744d91546d1a810f60a43c15ed74b4158f341a4a..354538daefa603f6df5a139b6bff87db
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d9c3c63c644bd4c73974a4fb5f8bf6e7d7e286eb..414c5201b37c469ebf69011aa9919d4e7287078a 100644
index 235e81cf4f0cf7c752db1382f48f29a371f43d68..108960f96dead3f899dc02b17ac849065b0ee50d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -609,6 +609,11 @@ public class PurpurWorldConfig {
@@ -616,6 +616,11 @@ public class PurpurWorldConfig {
magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker);
}

View File

@@ -17,10 +17,10 @@ index c46df052a5a39d92688f51377ee1f7b5b5b36faa..d7d2a975386cecb0d50b4f7ed37de8ad
// Paper end
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 177c61a306b9e07eb7aabbac664616cc23bfef5b..4775d9feb52dc899a30d34cdc0ab84149f085d8c 100644
index 336ddca98c43102ac5d5f05b19a46c8a1fe507e3..2c67825ab2fd0e51867562aef6b3c2f747f00bc3 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -874,6 +874,7 @@ public class ServerPlayer extends Player {
@@ -882,6 +882,7 @@ public class ServerPlayer extends Player {
});
Team scoreboardteambase = this.getTeam();

View File

@@ -21,10 +21,10 @@ index 02494dcc8a342f65b2855612aebeb019095abf65..d66c8866f3c6b1412a6c1876c62e3b29
if (!event.isCancelled()) {
this.dead = true;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 7908252c543c75d0f1e4310806fbb2b78d550c63..c3e07c7b7a81f74c3c2d8035ba516b30b55591da 100644
index 437a831a30fec9387e9906cb3c2cacffc5c7bb20..b0114741cf9b57ce0140bad99cb711ad532937b2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -858,6 +858,7 @@ public class PurpurWorldConfig {
@@ -865,6 +865,7 @@ public class PurpurWorldConfig {
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
public boolean creeperExplodeWhenKilled = false;
@@ -32,7 +32,7 @@ index 7908252c543c75d0f1e4310806fbb2b78d550c63..c3e07c7b7a81f74c3c2d8035ba516b30
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -871,6 +872,7 @@ public class PurpurWorldConfig {
@@ -878,6 +879,7 @@ public class PurpurWorldConfig {
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);

View File

@@ -17,10 +17,10 @@ index f4e983da7206923ee0b0f984e65a6c2b3a6a8aeb..cea3725009af1bc746a593c4db63ed63
this.goalSelector.addGoal(2, new MoveTowardsTargetGoal(this, 0.9D, 32.0F));
this.goalSelector.addGoal(2, new MoveBackToVillageGoal(this, 0.6D, false));
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c3e07c7b7a81f74c3c2d8035ba516b30b55591da..fd47ff6042f9943de2ba54a1c283fe84978a2f4d 100644
index b0114741cf9b57ce0140bad99cb711ad532937b2..d9c6ff22fc92caaff09e7990334f281dab9e4296 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1225,6 +1225,7 @@ public class PurpurWorldConfig {
@@ -1232,6 +1232,7 @@ public class PurpurWorldConfig {
public boolean ironGolemRidableInWater = false;
public boolean ironGolemCanSwim = false;
public double ironGolemMaxHealth = 100.0D;
@@ -28,7 +28,7 @@ index c3e07c7b7a81f74c3c2d8035ba516b30b55591da..fd47ff6042f9943de2ba54a1c283fe84
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1235,6 +1236,7 @@ public class PurpurWorldConfig {
@@ -1242,6 +1243,7 @@ public class PurpurWorldConfig {
set("mobs.iron_golem.attributes.max_health", oldValue);
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);

View File

@@ -50,10 +50,10 @@ index 553b0aff0ccc5baf41d5faae1a2fd88249dd5a74..3da2b68fb03a80676d7a5eed271499f6
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index fd47ff6042f9943de2ba54a1c283fe84978a2f4d..4da142bbe5197c1c5e5d7cc8c6282a544368df1a 100644
index d9c6ff22fc92caaff09e7990334f281dab9e4296..dafd6d024a68395ef26ad85ce3d1a60b6e22a584 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1361,6 +1361,7 @@ public class PurpurWorldConfig {
@@ -1368,6 +1368,7 @@ public class PurpurWorldConfig {
public boolean parrotRidableInWater = false;
public double parrotMaxY = 256D;
public double parrotMaxHealth = 6.0D;
@@ -61,7 +61,7 @@ index fd47ff6042f9943de2ba54a1c283fe84978a2f4d..4da142bbe5197c1c5e5d7cc8c6282a54
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1371,6 +1372,7 @@ public class PurpurWorldConfig {
@@ -1378,6 +1379,7 @@ public class PurpurWorldConfig {
set("mobs.parrot.attributes.max_health", oldValue);
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);

View File

@@ -17,10 +17,10 @@ index 78f51f3dd0e7249af69228479da932e9aea982d6..d9d4421f7f316281487828739168cfd6
BlockPos blockposition1 = pos.offset(world.random.nextInt(16) - world.random.nextInt(16), world.random.nextInt(8) - world.random.nextInt(8), world.random.nextInt(16) - world.random.nextInt(16));
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 9198629e35b60e84f3c1382ee2e51e2d843c4465..346eba732b7d4f26bc94e494d1576c32e9c6e2fd 100644
index 73ae79637e3058675384a9807effbec7b080de7c..601b721f6ee044ed7431d5d6f8970408ee8ab4a5 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -534,6 +534,11 @@ public class PurpurWorldConfig {
@@ -541,6 +541,11 @@ public class PurpurWorldConfig {
});
}

View File

@@ -35,10 +35,10 @@ index b9c558060024d380e89116489c7fc12ad88db8ad..0a0a4be15bed899812fcd4af0e311f5f
CompoundTag compoundTag = shulkerBoxBlockEntity.saveToTag(new CompoundTag());
if (!compoundTag.isEmpty()) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 346eba732b7d4f26bc94e494d1576c32e9c6e2fd..314115b429feaac518a8f35417b4f67638229588 100644
index 601b721f6ee044ed7431d5d6f8970408ee8ab4a5..d3feb6882520e3ea3b7f76c358115ba5c78ae055 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -646,6 +646,11 @@ public class PurpurWorldConfig {
@@ -653,6 +653,11 @@ public class PurpurWorldConfig {
}
}

View File

@@ -31,10 +31,10 @@ index ffacc4b8cc3ab8285c4131aec58e48ffa9e1952e..e0e039e2f614f2df48d8d1b6e8bbbe7a
return false;
} else {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 314115b429feaac518a8f35417b4f67638229588..61612c15bf7aed791cef35f10104ecbbb70e80b1 100644
index d3feb6882520e3ea3b7f76c358115ba5c78ae055..79f4afd3c41fdb33a89080acdb617e80fae13810 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -750,6 +750,8 @@ public class PurpurWorldConfig {
@@ -757,6 +757,8 @@ public class PurpurWorldConfig {
public double beeMaxY = 256D;
public double beeMaxHealth = 10.0D;
public int beeBreedingTicks = 6000;
@@ -43,7 +43,7 @@ index 314115b429feaac518a8f35417b4f67638229588..61612c15bf7aed791cef35f10104ecbb
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -761,6 +763,8 @@ public class PurpurWorldConfig {
@@ -768,6 +770,8 @@ public class PurpurWorldConfig {
}
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);

View File

@@ -29,7 +29,7 @@ index b79c2436c6a89a344ed17fd02d798a63a2972389..5f39278e5115a817cbd123ce625a84e4
// Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index c7cbdd7becb53767cbd652719ebe88646df21220..16540e1977aba599de8ac444df2e8be9256e251a 100644
index c7cbdd7becb53767cbd652719ebe88646df21220..05fad2a847868e224212369ebe2eeb0748c4c962 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -265,6 +265,7 @@ public abstract class LivingEntity extends Entity {
@@ -66,7 +66,7 @@ index c7cbdd7becb53767cbd652719ebe88646df21220..16540e1977aba599de8ac444df2e8be9
+ // Purpur start - copied from Zombie
+ if (this.isAlive()) {
+ boolean flag = this.isSunSensitive() && this.isSunBurnTick();
+ boolean flag = this.shouldBurnInDay() && this.isSunBurnTick();
+ if (flag) {
+ ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD);
+ if (!itemstack.isEmpty()) {
@@ -200,7 +200,7 @@ index 6c89eabddda16f9b72e6062c31bb4be6beae442d..2ff43cebc2e6471395e90a8a19828d94
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 3ea6f2d96245caa85f365c488b8cc019a8318009..0539be5997b3046db3720777b3722719b078bf15 100644
index a8d8b524cd8e532f78ee6e61a883bd0aa340a718..99ac69b9d65ba5320043cc24eba1c102d552210f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -61,6 +61,7 @@ public class Phantom extends FlyingMob implements Enemy {

View File

@@ -16,7 +16,7 @@ restoring it back to the entity just before the criterion triggers run and
then finally clearing the equipment again right after the criterion is done.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 16540e1977aba599de8ac444df2e8be9256e251a..eafc897c3b2e06b9bc5c90d4e096996eaab2b4a4 100644
index 05fad2a847868e224212369ebe2eeb0748c4c962..ba7dbe660b71bfc4358e68e5c71e84389643b259 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1658,10 +1658,13 @@ public abstract class LivingEntity extends Entity {
@@ -93,10 +93,10 @@ index c5fa64b2d1559bf47b3dac8a2a10205e93e638dd..1209aafa118d7bf01eebade3b994678a
protected void dropCustomDeathLoot(DamageSource source, int lootingMultiplier, boolean allowDrops) {
super.dropCustomDeathLoot(source, lootingMultiplier, allowDrops);
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index c9a44a4765f43b9c0247ed1005f4c13469bdee95..6d08c8c31a32ea38f06410fbaddf19b95bec7c6f 100644
index e6a83032d23d434b62cb2b67e256978fe3f31921..3afd85ae7a69ec9007cceb4a1f7c5fef340df023 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -205,6 +205,41 @@ public class ArmorStand extends LivingEntity {
@@ -212,6 +212,41 @@ public class ArmorStand extends LivingEntity {
this.noTickEquipmentDirty = true; // Paper - Allow equipment to be updated even when tick disabled
}

View File

@@ -27,10 +27,10 @@ index 8336ea928faa92c6f58f8cdfb9faf1d8e26c9ccf..c765c182081fe83eb0f30dcbf97d8126
}
// Paper end - fix sand duping
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 58fb881e1c07f14c1b5f155d15b424b6b8c0a1fe..d4340160f9431f1d2d00ff1b83b1d77ea460ef70 100644
index 98937d7c56f9413f5c03eb54eedb2066e64e41c8..e292708ce4a60b6a00280528d459e10fbb939c39 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -672,6 +672,11 @@ public class PurpurWorldConfig {
@@ -679,6 +679,11 @@ public class PurpurWorldConfig {
}
}

View File

@@ -45,10 +45,10 @@ index 197482e1ace23c3de002242097a68c6cc297cd3f..428875a6a99a619d337e2a7bbd2cb182
entity.portalWorld = ((ServerLevel)world);
entity.portalBlock = pos.immutable();
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d4340160f9431f1d2d00ff1b83b1d77ea460ef70..cf158b28a36ea29da08439f9a88fb77cd1605d8d 100644
index e292708ce4a60b6a00280528d459e10fbb939c39..27eee8a098398d1d8ffa6d61559e53688dc2d57f 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -614,6 +614,11 @@ public class PurpurWorldConfig {
@@ -621,6 +621,11 @@ public class PurpurWorldConfig {
furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel);
}