mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2026-01-06 15:51:31 +00:00
Updated Upstream (Paper/Purpur)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@a9399451 Fixup sendAllDataToRemote calls PaperMC/Paper@cb47e018 Remove more dead code, fix pre-existing desync when cancelling and closing container PaperMC/Paper@40764534 Specify the class loader when loading services (#12829) PaperMC/Paper@1bf6364b Update Mache for horse decompile fix PaperMC/Paper@76fb5060 Add vanilla error message to precondition for DialogBaseImpl (#12831) Purpur Changes: PurpurMC/Purpur@5b26bab8 Updated Upstream (Paper) PurpurMC/Purpur@8734844b sigh... PurpurMC/Purpur@09ea9cb9 fix mobs not burning in daylight (#1689) PurpurMC/Purpur@4d5a8e6e Updated Upstream (Paper) PurpurMC/Purpur@7dbe4153 Add support for "/chase", a disabled Minecraft command. (#1690) PurpurMC/Purpur@11c030a8 Updated Upstream (Paper)
This commit is contained in:
@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Minecraft Changes
|
||||
Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
Commit: 2d8cdd15c79fce29455eaf8bedfc203bd16ca4d7
|
||||
Commit: 11c030a8f81b2f845a9f2749790692c2d152f284
|
||||
|
||||
Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "net/minecraft/CrashReport.java.patch"
|
||||
@@ -118,7 +118,7 @@ index 3acfb2a78845dd8081dc3c01d653034232c76e60..51caf352e77df49fc04bf84f1fab29b6
|
||||
boolean flag = this.source.acceptsSuccess() && !this.silent;
|
||||
boolean flag1 = allowLogging && this.source.shouldInformAdmins() && !this.silent;
|
||||
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
|
||||
index e00624a738e65ab14ec68a8d0e7861522fa32e82..1dc009e85403fe0b6a68daefecfe5cb25ad263cd 100644
|
||||
index e00624a738e65ab14ec68a8d0e7861522fa32e82..287c0936930ff4f3ca6dc2a4cbfc796a120fe4c0 100644
|
||||
--- a/net/minecraft/commands/Commands.java
|
||||
+++ b/net/minecraft/commands/Commands.java
|
||||
@@ -249,7 +249,7 @@ public class Commands {
|
||||
@@ -130,7 +130,20 @@ index e00624a738e65ab14ec68a8d0e7861522fa32e82..1dc009e85403fe0b6a68daefecfe5cb2
|
||||
RaidCommand.register(this.dispatcher, context);
|
||||
DebugPathCommand.register(this.dispatcher);
|
||||
DebugMobSpawningCommand.register(this.dispatcher);
|
||||
@@ -277,6 +277,14 @@ public class Commands {
|
||||
@@ -261,6 +261,12 @@ public class Commands {
|
||||
}
|
||||
}
|
||||
|
||||
+ // Purpur start - register disabled minecraft commands
|
||||
+ if (org.purpurmc.purpur.PurpurConfig.registerMinecraftDisabledCommands) {
|
||||
+ net.minecraft.server.commands.ChaseCommand.register(this.dispatcher);
|
||||
+ }
|
||||
+ // Purpur end - register disabled minecraft commands
|
||||
+
|
||||
if (selection.includeDedicated) {
|
||||
BanIpCommands.register(this.dispatcher);
|
||||
BanListCommands.register(this.dispatcher);
|
||||
@@ -277,6 +283,14 @@ public class Commands {
|
||||
StopCommand.register(this.dispatcher);
|
||||
TransferCommand.register(this.dispatcher);
|
||||
WhitelistCommand.register(this.dispatcher);
|
||||
@@ -303,10 +316,10 @@ index 8bab2c26e10e8495fd39be470bcb02917fe56f40..e72eda830644851656fae3118c513d7b
|
||||
}
|
||||
// Paper end - Buffer joins to world
|
||||
diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java
|
||||
index b16f3f515a76ddbbd74d73464396cf094cb30599..dd6ae338fa48d52962ee0af5b1572077ba6dff91 100644
|
||||
index b16f3f515a76ddbbd74d73464396cf094cb30599..4134679c838307de7ae410cfc727fada0eeebf6b 100644
|
||||
--- a/net/minecraft/server/Main.java
|
||||
+++ b/net/minecraft/server/Main.java
|
||||
@@ -109,6 +109,12 @@ public class Main {
|
||||
@@ -109,6 +109,13 @@ public class Main {
|
||||
JvmProfiler.INSTANCE.start(Environment.SERVER);
|
||||
}
|
||||
|
||||
@@ -314,6 +327,7 @@ index b16f3f515a76ddbbd74d73464396cf094cb30599..dd6ae338fa48d52962ee0af5b1572077
|
||||
+ org.bukkit.configuration.file.YamlConfiguration purpurConfiguration = io.papermc.paper.configuration.PaperConfigurations.loadLegacyConfigFile((File) optionSet.valueOf("purpur-settings"));
|
||||
+ org.purpurmc.purpur.PurpurConfig.clampEnchantLevels = purpurConfiguration.getBoolean("settings.enchantment.clamp-levels", true);
|
||||
+ org.purpurmc.purpur.PurpurConfig.registerMinecraftDebugCommands = purpurConfiguration.getBoolean("settings.register-minecraft-debug-commands"); // Purpur - register minecraft debug commands
|
||||
+ org.purpurmc.purpur.PurpurConfig.registerMinecraftDisabledCommands = purpurConfiguration.getBoolean("settings.register-minecraft-disabled-commands"); // Purpur - register disabled minecraft commands
|
||||
+ // Purpur end - Add toggle for enchant level clamping - load config files early
|
||||
+
|
||||
org.dreeam.leaf.config.LeafConfig.loadConfig(); // Leaf - Leaf config
|
||||
@@ -925,7 +939,7 @@ index 3f70fca36f67fa421314ff92d372a97112a19025..95c128f028c3cce7d0b37821a6e75208
|
||||
}
|
||||
// Paper end - Fix merchant inventory not closing on entity removal
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index feb4f7c70220e9c48a17a815631298bcb8366ded..e181134e654a32aef9174dcc5d1a163858f7f143 100644
|
||||
index 3592f91f1876a044b61d0d7b28a1619ab2cff04a..852802af6885607ddd9de795c66ef499fef11722 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -428,6 +428,9 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1223,7 +1237,7 @@ index feb4f7c70220e9c48a17a815631298bcb8366ded..e181134e654a32aef9174dcc5d1a1638
|
||||
+ // Purpur end - Add rambar command
|
||||
}
|
||||
diff --git a/net/minecraft/server/level/ServerPlayerGameMode.java b/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
index 6734756d7a51e635a50a47577f9e6b6f8111db51..c4a4f08272b34f72dea4feaaeb66d153b2aab8c8 100644
|
||||
index cfbf34964288526e93d0a5b212c1b60296c10430..d638821595138ef972163925136eb57207b31719 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
@@ -348,6 +348,7 @@ public class ServerPlayerGameMode {
|
||||
@@ -1299,7 +1313,7 @@ index de630a692291926c52a0947f9943e59433ab130a..ca9ba2a2535eab66622230778efdf941
|
||||
this.playerBrand = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256);
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index b1d2e52c04cdc7285bc732e91006f76c3552d35f..cb646939cc6465135030b715d203ba2211981b8e 100644
|
||||
index 3f1f68ed20ec6c944f031afc74052e63594e84e6..6fc36c917bee5453e4aadd018389893c0f5dd6f4 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -338,6 +338,20 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1530,10 +1544,10 @@ index b1d2e52c04cdc7285bc732e91006f76c3552d35f..cb646939cc6465135030b715d203ba22
|
||||
|
||||
+ player.processClick(hand); // Purpur - Ridables
|
||||
+
|
||||
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a
|
||||
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859
|
||||
if ((target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && origItem != null && origItem == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().isEmpty() || !ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().is(origItem))) {
|
||||
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
|
||||
@@ -3553,7 +3637,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -3495,7 +3579,7 @@ public class ServerGamePacketListenerImpl
|
||||
@Override
|
||||
public void handleChangeGameMode(ServerboundChangeGameModePacket packet) {
|
||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
|
||||
@@ -1909,7 +1923,7 @@ index 1fc9e1ad541c46124183a401b2a7d99aea69cecf..881271f0bc77a8a8a7d31daad9a8188b
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 28e2ad1238651b8adb47b77763b0c8ae8172fe8a..fb387919e51504beafd2e7947faa41795df18100 100644
|
||||
index 9ee1ce59ee5612a0793ad76c4635af63c315657a..5b6c8d4caac3fca20e5994e24267f04cb59c27dd 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -146,6 +146,7 @@ import org.jetbrains.annotations.Contract;
|
||||
@@ -2037,7 +2051,7 @@ index 28e2ad1238651b8adb47b77763b0c8ae8172fe8a..fb387919e51504beafd2e7947faa4179
|
||||
// Paper start - EntityUnleashEvent
|
||||
if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent(
|
||||
leashable2, player, hand, !player.hasInfiniteMaterials(), true
|
||||
@@ -3300,6 +3342,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3299,6 +3341,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
this.passengers = ImmutableList.copyOf(list);
|
||||
}
|
||||
|
||||
@@ -2051,7 +2065,7 @@ index 28e2ad1238651b8adb47b77763b0c8ae8172fe8a..fb387919e51504beafd2e7947faa4179
|
||||
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
||||
}
|
||||
}
|
||||
@@ -3341,6 +3390,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3340,6 +3389,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return false;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -2066,7 +2080,7 @@ index 28e2ad1238651b8adb47b77763b0c8ae8172fe8a..fb387919e51504beafd2e7947faa4179
|
||||
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
||||
this.passengers = ImmutableList.of();
|
||||
} else {
|
||||
@@ -3410,15 +3467,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3409,15 +3466,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return Vec3.directionFromRotation(this.getRotationVector());
|
||||
}
|
||||
|
||||
@@ -2086,7 +2100,7 @@ index 28e2ad1238651b8adb47b77763b0c8ae8172fe8a..fb387919e51504beafd2e7947faa4179
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3620,7 +3680,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3619,7 +3679,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public int getMaxAirSupply() {
|
||||
@@ -2095,7 +2109,7 @@ index 28e2ad1238651b8adb47b77763b0c8ae8172fe8a..fb387919e51504beafd2e7947faa4179
|
||||
}
|
||||
|
||||
public int getAirSupply() {
|
||||
@@ -4167,7 +4227,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4166,7 +4226,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
// CraftBukkit end
|
||||
|
||||
public boolean canUsePortal(boolean allowPassengers) {
|
||||
@@ -2104,7 +2118,7 @@ index 28e2ad1238651b8adb47b77763b0c8ae8172fe8a..fb387919e51504beafd2e7947faa4179
|
||||
}
|
||||
|
||||
public boolean canTeleport(Level fromLevel, Level toLevel) {
|
||||
@@ -4697,6 +4757,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4696,6 +4756,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return Mth.lerp(partialTick, this.yRotO, this.yRot);
|
||||
}
|
||||
|
||||
@@ -2117,7 +2131,7 @@ index 28e2ad1238651b8adb47b77763b0c8ae8172fe8a..fb387919e51504beafd2e7947faa4179
|
||||
// Paper start - optimise collisions
|
||||
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
|
||||
if (this.touchingUnloadedChunk()) {
|
||||
@@ -5133,7 +5199,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -5132,7 +5198,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public float maxUpStep() {
|
||||
@@ -2126,7 +2140,7 @@ index 28e2ad1238651b8adb47b77763b0c8ae8172fe8a..fb387919e51504beafd2e7947faa4179
|
||||
}
|
||||
|
||||
public void onExplosionHit(@Nullable Entity entity) {
|
||||
@@ -5391,4 +5457,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -5390,4 +5456,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
|
||||
}
|
||||
// Paper end - Expose entity id counter
|
||||
@@ -2310,7 +2324,7 @@ index aab9adb8313c4b18279c7fd7500ef04bda09c6c1..86a694b94045b47f6e98c480645f7573
|
||||
protected ParticleOptions getInkParticle() {
|
||||
return ParticleTypes.GLOW_SQUID_INK;
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index 40b9dd1a1568f0f1eeba6925167a79cde48d66fd..25a7651efa80938124bbda27a1de25e9a6eb3620 100644
|
||||
index 89e073b0a40738a7c1c7aea84eb2409e252e5473..310b2c9197c0c32fd1be05ab10eae5fc1d43fc26 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -236,9 +236,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
@@ -2396,7 +2410,7 @@ index 40b9dd1a1568f0f1eeba6925167a79cde48d66fd..25a7651efa80938124bbda27a1de25e9
|
||||
} // Paper - The sleeping pos will always also set the actual pos, so a desync suggests something is wrong
|
||||
}, this::clearSleepingPos);
|
||||
input.read("Brain", Codec.PASSTHROUGH).ifPresent(dynamic -> this.brain = this.makeBrain((Dynamic<?>)dynamic));
|
||||
+ this.shouldBurnInDay = input.getBooleanOr("Purpur.ShouldBurnInDay", false); // Purpur - API for any mob to burn daylight
|
||||
+ this.shouldBurnInDay = input.getBooleanOr("Purpur.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - API for any mob to burn daylight
|
||||
this.lastHurtByPlayer = EntityReference.read(input, "last_hurt_by_player");
|
||||
this.lastHurtByPlayerMemoryTime = input.getIntOr("last_hurt_by_player_memory_time", 0);
|
||||
this.lastHurtByMob = EntityReference.read(input, "last_hurt_by_mob");
|
||||
@@ -2645,7 +2659,7 @@ index 40b9dd1a1568f0f1eeba6925167a79cde48d66fd..25a7651efa80938124bbda27a1de25e9
|
||||
}
|
||||
|
||||
this.gameEvent(GameEvent.ELYTRA_GLIDE);
|
||||
@@ -4530,6 +4661,12 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
@@ -4524,6 +4655,12 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
|
||||
}
|
||||
|
||||
@@ -6621,7 +6635,7 @@ index 2a72d7f422c340dabef11a6dc680358207bee637..11b020704a673c69bd2d4ab6313ea32e
|
||||
brain.setMemory(MemoryModuleType.RAM_TARGET, entity.position());
|
||||
brain.eraseMemory(MemoryModuleType.RAM_COOLDOWN_TICKS);
|
||||
diff --git a/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
index 31ed5d7cfbda1a1f98ebfc89f5cbc65332cabdae..e78ef459d6eecb7f69882ed95cd9f9967f53989f 100644
|
||||
index e7e4558d0f018a0c975d12d77287cda4df5a500a..6f1006281128d6da0dda43cc61ee672e872186af 100644
|
||||
--- a/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
+++ b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
@@ -127,11 +127,61 @@ public abstract class AbstractHorse extends Animal implements HasCustomInventory
|
||||
@@ -9881,10 +9895,10 @@ index 5ef9566b16a4d0300ee45a993c46e734db156416..04d5910d736dee2a88a2602f4a984954
|
||||
return false;
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
|
||||
index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd2babadf6 100644
|
||||
index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..32f037ae8a3dbb1f3c7e123db67b91ee23bc83b3 100644
|
||||
--- a/net/minecraft/world/entity/monster/Phantom.java
|
||||
+++ b/net/minecraft/world/entity/monster/Phantom.java
|
||||
@@ -49,19 +49,111 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -49,19 +49,110 @@ public class Phantom extends Mob implements Enemy {
|
||||
@Nullable
|
||||
public BlockPos anchorPoint;
|
||||
Phantom.AttackPhase attackPhase = Phantom.AttackPhase.CIRCLE;
|
||||
@@ -9892,7 +9906,8 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
// Paper start
|
||||
@Nullable
|
||||
public java.util.UUID spawningEntity;
|
||||
public boolean shouldBurnInDay = true;
|
||||
- public boolean shouldBurnInDay = true;
|
||||
+ //public boolean shouldBurnInDay = true; // Purpur - API for any mob to burn daylight
|
||||
// Paper end
|
||||
+ private static final net.minecraft.world.item.crafting.Ingredient TORCH = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.item.Items.TORCH, net.minecraft.world.item.Items.SOUL_TORCH); // Purpur - Phantoms burn in light
|
||||
|
||||
@@ -9976,7 +9991,6 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
+ }
|
||||
+ // Purpur end - Toggle for water sensitive mob damage
|
||||
+
|
||||
+ //private boolean shouldBurnInDay = true; // Purpur - moved to LivingEntity; keep methods for ABI compatibility - API for any mob to burn daylight
|
||||
+ // Purpur start - API for any mob to burn daylight
|
||||
+ public boolean shouldBurnInDay() {
|
||||
+ boolean burnFromDaylight = this.shouldBurnInDay && this.level().purpurConfig.phantomBurnInDaylight;
|
||||
@@ -9996,7 +10010,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
@Override
|
||||
public boolean isFlapping() {
|
||||
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
|
||||
@@ -74,9 +166,17 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -74,9 +165,17 @@ public class Phantom extends Mob implements Enemy {
|
||||
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
@@ -10017,7 +10031,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal());
|
||||
}
|
||||
|
||||
@@ -92,7 +192,11 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -92,7 +191,11 @@ public class Phantom extends Mob implements Enemy {
|
||||
|
||||
private void updatePhantomSizeInfo() {
|
||||
this.refreshDimensions();
|
||||
@@ -10030,7 +10044,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
}
|
||||
|
||||
public int getPhantomSize() {
|
||||
@@ -117,6 +221,23 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -117,6 +220,23 @@ public class Phantom extends Mob implements Enemy {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -10054,7 +10068,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
@@ -148,10 +269,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -148,10 +268,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
|
||||
@Override
|
||||
public void aiStep() {
|
||||
@@ -10066,7 +10080,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
super.aiStep();
|
||||
}
|
||||
|
||||
@@ -167,6 +285,15 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -167,6 +284,15 @@ public class Phantom extends Mob implements Enemy {
|
||||
@Override
|
||||
public void travel(Vec3 travelVector) {
|
||||
this.travelFlying(travelVector, 0.2F);
|
||||
@@ -10082,7 +10096,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -174,7 +301,11 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -174,7 +300,11 @@ public class Phantom extends Mob implements Enemy {
|
||||
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
|
||||
) {
|
||||
this.anchorPoint = this.blockPosition().above(5);
|
||||
@@ -10095,7 +10109,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
return super.finalizeSpawn(level, difficulty, spawnReason, spawnGroupData);
|
||||
}
|
||||
|
||||
@@ -185,7 +316,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -185,7 +315,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
this.setPhantomSize(input.getIntOr("size", 0));
|
||||
// Paper start
|
||||
this.spawningEntity = input.read("Paper.SpawningEntity", net.minecraft.core.UUIDUtil.CODEC).orElse(null);
|
||||
@@ -10104,16 +10118,16 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
// Paper end
|
||||
}
|
||||
|
||||
@@ -196,7 +327,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -196,7 +326,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
output.putInt("size", this.getPhantomSize());
|
||||
// Paper start
|
||||
output.storeNullable("Paper.SpawningEntity", net.minecraft.core.UUIDUtil.CODEC, this.spawningEntity);
|
||||
- output.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay);
|
||||
+ output.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - implemented in LivingEntity - API for any mob to burn daylight
|
||||
+ //output.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - implemented in LivingEntity - API for any mob to burn daylight
|
||||
// Paper end
|
||||
}
|
||||
|
||||
@@ -266,6 +397,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -266,6 +396,7 @@ public class Phantom extends Mob implements Enemy {
|
||||
List<Player> nearbyPlayers = serverLevel.getNearbyPlayers(
|
||||
this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0, 64.0, 16.0)
|
||||
);
|
||||
@@ -10121,7 +10135,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
if (!nearbyPlayers.isEmpty()) {
|
||||
nearbyPlayers.sort(Comparator.<Player, Double>comparing(Entity::getY).reversed());
|
||||
|
||||
@@ -415,25 +547,160 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -415,25 +546,160 @@ public class Phantom extends Mob implements Enemy {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10285,7 +10299,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..3b812e0860e37d30d5d12f97410ed5fd
|
||||
if (Phantom.this.horizontalCollision) {
|
||||
Phantom.this.setYRot(Phantom.this.getYRot() + 180.0F);
|
||||
this.speed = 0.1F;
|
||||
@@ -500,6 +767,12 @@ public class Phantom extends Mob implements Enemy {
|
||||
@@ -500,6 +766,12 @@ public class Phantom extends Mob implements Enemy {
|
||||
return false;
|
||||
} else if (!target.isAlive()) {
|
||||
return false;
|
||||
@@ -12709,7 +12723,7 @@ index fce3f0f81d3195045cdc9ad7320f1d92f033c36d..352f55882ea77e8d89942e6c58ef3b4b
|
||||
blockPos = blockPos1;
|
||||
break;
|
||||
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
|
||||
index 1610ef636a0d93c1e07bad9e82ac4d9982c4e854..78dc237d5de38cff9f013d36da9bbb16104dec96 100644
|
||||
index 19e2ba14091b2fac74ce3b94da7a627029fcd914..6c9dfd76596b2e890b0b0dad5d98e8785a68c5a1 100644
|
||||
--- a/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/net/minecraft/world/entity/player/Player.java
|
||||
@@ -220,17 +220,40 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -12802,7 +12816,7 @@ index 1610ef636a0d93c1e07bad9e82ac4d9982c4e854..78dc237d5de38cff9f013d36da9bbb16
|
||||
}
|
||||
|
||||
float f2 = f + f1;
|
||||
@@ -1831,7 +1871,23 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -1830,7 +1870,23 @@ public abstract class Player extends LivingEntity {
|
||||
|
||||
@Override
|
||||
protected int getBaseExperienceReward(ServerLevel level) {
|
||||
@@ -12827,7 +12841,7 @@ index 1610ef636a0d93c1e07bad9e82ac4d9982c4e854..78dc237d5de38cff9f013d36da9bbb16
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1870,6 +1926,13 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -1869,6 +1925,13 @@ public abstract class Player extends LivingEntity {
|
||||
return this.inventory.add(stack);
|
||||
}
|
||||
|
||||
@@ -13315,7 +13329,7 @@ index 793e4528755fa5688efbad75418188e693ad0157..20f702c8266eb54a8835861188eb937f
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/inventory/AbstractContainerMenu.java b/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
index f4548edae77eb86e54ba499acbb20613fd60d7bd..1f601781643945920c7522b9c6100d0a37ad535d 100644
|
||||
index 96da9b8e3556e58365dc6742f44d6dfd608e2953..2305a3ef6bbb21ab77cb261f20c08ac8ce1bf9ed 100644
|
||||
--- a/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
+++ b/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
@@ -65,6 +65,7 @@ public abstract class AbstractContainerMenu {
|
||||
@@ -13911,10 +13925,10 @@ index bd919b9a83f9736f02783b1ba3863fd1b77c7e89..eb8d2d6f9c65185f5fe16a13ab0cdbba
|
||||
return optional;
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/item/BlockItem.java b/net/minecraft/world/item/BlockItem.java
|
||||
index b5b53168755525eccaa0a4361172006522cf4e05..2860d49c072d4b9e473390a84e45171b984b198e 100644
|
||||
index 6db566adf2d0df1d26221eda04aa01738df6d3d2..3dbdb5c30f8af89e768016bb683a4d2c1549aa0e 100644
|
||||
--- a/net/minecraft/world/item/BlockItem.java
|
||||
+++ b/net/minecraft/world/item/BlockItem.java
|
||||
@@ -145,7 +145,16 @@ public class BlockItem extends Item {
|
||||
@@ -144,7 +144,16 @@ public class BlockItem extends Item {
|
||||
}
|
||||
|
||||
protected boolean updateCustomBlockEntityTag(BlockPos pos, Level level, @Nullable Player player, ItemStack stack, BlockState state) {
|
||||
@@ -13932,7 +13946,7 @@ index b5b53168755525eccaa0a4361172006522cf4e05..2860d49c072d4b9e473390a84e45171b
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -212,6 +221,7 @@ public class BlockItem extends Item {
|
||||
@@ -211,6 +220,7 @@ public class BlockItem extends Item {
|
||||
}
|
||||
|
||||
if (!type.onlyOpCanSetNbt() || player != null && (player.canUseGameMasterBlocks() || (player.getAbilities().instabuild && player.getBukkitEntity().hasPermission("minecraft.nbt.place")))) { // Spigot - add permission
|
||||
@@ -13940,7 +13954,7 @@ index b5b53168755525eccaa0a4361172006522cf4e05..2860d49c072d4b9e473390a84e45171b
|
||||
return customData.loadInto(blockEntity, level.registryAccess());
|
||||
}
|
||||
|
||||
@@ -253,6 +263,7 @@ public class BlockItem extends Item {
|
||||
@@ -252,6 +262,7 @@ public class BlockItem extends Item {
|
||||
public void onDestroyed(ItemEntity itemEntity) {
|
||||
ItemContainerContents itemContainerContents = itemEntity.getItem().set(DataComponents.CONTAINER, ItemContainerContents.EMPTY);
|
||||
if (itemContainerContents != null) {
|
||||
@@ -14017,7 +14031,7 @@ index de287715568f358dd83383d68f845df9a7b5a117..8c7be8a71348a3e66c8bf6b6cb39fe00
|
||||
|
||||
return true;
|
||||
diff --git a/net/minecraft/world/item/CrossbowItem.java b/net/minecraft/world/item/CrossbowItem.java
|
||||
index 45fc973971d00c35e5b715bfa6ae5042822ed35f..2ab3da301f7edbb811c2e055f75434a799ef093a 100644
|
||||
index 7c54e658acf32ba260457e32f4cc6620f80a5f3c..d49a5360d4a21e5b15bac94a823831e25d242a3d 100644
|
||||
--- a/net/minecraft/world/item/CrossbowItem.java
|
||||
+++ b/net/minecraft/world/item/CrossbowItem.java
|
||||
@@ -66,7 +66,7 @@ public class CrossbowItem extends ProjectileWeaponItem {
|
||||
@@ -14045,7 +14059,7 @@ index d9c03b5e3768146bc8bcae2f86387b62ae89450b..eceb19b432d1bf5f1931568e78ab1e25
|
||||
+ // Purpur end - Shulker spawn from bullet options
|
||||
}
|
||||
diff --git a/net/minecraft/world/item/EggItem.java b/net/minecraft/world/item/EggItem.java
|
||||
index ccae6089cdc4fffca7d759252006a13c2c14691a..c4097bd6acf671ddf857350154e6e1a04e76d64b 100644
|
||||
index 2dc15a06572401c22fa4b8009fa1cdc3ceef0473..75ce17c1fa8c74981c44f3dab7e82351eef3b2f3 100644
|
||||
--- a/net/minecraft/world/item/EggItem.java
|
||||
+++ b/net/minecraft/world/item/EggItem.java
|
||||
@@ -24,7 +24,7 @@ public class EggItem extends Item implements ProjectileItem {
|
||||
@@ -14071,7 +14085,7 @@ index 49f94f242a0906e74eb58313cf095a0b04c304c4..0db35674726e3039f2c20aed1993d6d3
|
||||
} else {
|
||||
BlockPos blockPos = clickedPos.above(); final BlockPos aboveBlockPos = blockPos; // Paper - OBFHELPER
|
||||
diff --git a/net/minecraft/world/item/EnderpearlItem.java b/net/minecraft/world/item/EnderpearlItem.java
|
||||
index 3becd19d3264fa631497e967656cc7ca39252586..f824f155549857d5205ba67eb5916e0b0b65efb4 100644
|
||||
index 0b4464b23a85c237026b31ab224f599fea42d2ee..411ddda1003ac1b9bb75735154ffe8996ab8b6f3 100644
|
||||
--- a/net/minecraft/world/item/EnderpearlItem.java
|
||||
+++ b/net/minecraft/world/item/EnderpearlItem.java
|
||||
@@ -24,7 +24,7 @@ public class EnderpearlItem extends Item {
|
||||
@@ -14092,7 +14106,7 @@ index 3becd19d3264fa631497e967656cc7ca39252586..f824f155549857d5205ba67eb5916e0b
|
||||
if (player instanceof net.minecraft.server.level.ServerPlayer serverPlayer) {
|
||||
serverPlayer.deregisterEnderPearl(thrownEnderpearl.projectile());
|
||||
diff --git a/net/minecraft/world/item/FireworkRocketItem.java b/net/minecraft/world/item/FireworkRocketItem.java
|
||||
index 83cfe63b0245f79d0873477ab3aae75f690ecb68..f32370217735b5e9556a0df7652682d89f23c595 100644
|
||||
index f86b0579e707ecfa5c2074ea22bbe383b5e11841..43a6d9bd3a2e301e3957e9933663c3aff43722d6 100644
|
||||
--- a/net/minecraft/world/item/FireworkRocketItem.java
|
||||
+++ b/net/minecraft/world/item/FireworkRocketItem.java
|
||||
@@ -72,6 +72,17 @@ public class FireworkRocketItem extends Item implements ProjectileItem {
|
||||
@@ -14162,7 +14176,7 @@ index 3bf3d4030c4da65fa386a8b8083d259a6046d15e..77a8d5d334cd93d23149afa8e58f4114
|
||||
consumer.accept(context);
|
||||
if (player != null) {
|
||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||
index 3acc2ae8533f19a6f9b2b6a1d96271f1047384a4..793c0a380b84d246db748be7e8807f1c0fa92d65 100644
|
||||
index 6ceb6cf302bad28e453fa89ec16083b0e0c5c398..8c713d90e81df61d65fa6770516afc4704bbbb6f 100644
|
||||
--- a/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/net/minecraft/world/item/ItemStack.java
|
||||
@@ -450,6 +450,7 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -14208,7 +14222,7 @@ index 3acc2ae8533f19a6f9b2b6a1d96271f1047384a4..793c0a380b84d246db748be7e8807f1c
|
||||
public int getDamageValue() {
|
||||
return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage());
|
||||
}
|
||||
@@ -678,6 +700,14 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -674,6 +696,14 @@ public final class ItemStack implements DataComponentHolder {
|
||||
org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent(serverPlayer, this); // Paper - Add EntityDamageItemEvent
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -14223,7 +14237,7 @@ index 3acc2ae8533f19a6f9b2b6a1d96271f1047384a4..793c0a380b84d246db748be7e8807f1c
|
||||
this.shrink(1);
|
||||
onBreak.accept(item);
|
||||
}
|
||||
@@ -1210,6 +1240,12 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -1206,6 +1236,12 @@ public final class ItemStack implements DataComponentHolder {
|
||||
return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty();
|
||||
}
|
||||
|
||||
@@ -14271,7 +14285,7 @@ index ba0b254d43651bca1f29b5272af05d068fc37ba8..780793750c99185e8139a1cd0ad52bc7
|
||||
int i = 1 << savedData.scale;
|
||||
int i1 = savedData.centerX;
|
||||
diff --git a/net/minecraft/world/item/MinecartItem.java b/net/minecraft/world/item/MinecartItem.java
|
||||
index 620069daba04d48b57fc933328eda77f6ca9333e..0403b9b01994269d394820e8c8710ba1b9808bf0 100644
|
||||
index e116ba0c2a1335ad009abc75675bd339dc034bd2..19fb2091ed57f10af52116519a5ac31dd4e9aeb0 100644
|
||||
--- a/net/minecraft/world/item/MinecartItem.java
|
||||
+++ b/net/minecraft/world/item/MinecartItem.java
|
||||
@@ -30,8 +30,9 @@ public class MinecartItem extends Item {
|
||||
@@ -14307,10 +14321,10 @@ index a928124ee46a10e9033f771970198e36712917a6..65ff8078474d5039238e9398d8cfc12e
|
||||
// Paper end - Add PlayerNameEntityEvent
|
||||
mob.setPersistenceRequired();
|
||||
diff --git a/net/minecraft/world/item/ProjectileWeaponItem.java b/net/minecraft/world/item/ProjectileWeaponItem.java
|
||||
index 1a9f91f3ee9c4d3902106eebd2639cc85a0dc34c..fb5077450aa9f7b7a03dd20c27a68dfdaab5ef06 100644
|
||||
index f35c8b81a55a9b8dbeb7c918d657cf65189642bd..f12b9e4e8a78c713782af548d1cb15ef363305b4 100644
|
||||
--- a/net/minecraft/world/item/ProjectileWeaponItem.java
|
||||
+++ b/net/minecraft/world/item/ProjectileWeaponItem.java
|
||||
@@ -109,6 +109,8 @@ public abstract class ProjectileWeaponItem extends Item {
|
||||
@@ -106,6 +106,8 @@ public abstract class ProjectileWeaponItem extends Item {
|
||||
abstractArrow.setCritArrow(true);
|
||||
}
|
||||
|
||||
@@ -14339,7 +14353,7 @@ index 887ac9f547ceaf76fd533ae47239a64c29a64b18..a290ad578498da07093ea31080cc3fbc
|
||||
afterAction = () -> { // Paper
|
||||
if (!level.isClientSide()) {
|
||||
diff --git a/net/minecraft/world/item/SnowballItem.java b/net/minecraft/world/item/SnowballItem.java
|
||||
index 8eec16040fb9ae6bcccbd71bbe93521cdce5ccce..38b82537209449407922491506a7ca6224229ca9 100644
|
||||
index bef1a8faa8e9567c9707ffb2b34c278c75581e35..fa3a9501134226f269882a14900b924df7d25046 100644
|
||||
--- a/net/minecraft/world/item/SnowballItem.java
|
||||
+++ b/net/minecraft/world/item/SnowballItem.java
|
||||
@@ -26,7 +26,7 @@ public class SnowballItem extends Item implements ProjectileItem {
|
||||
@@ -14380,7 +14394,7 @@ index 7a961e5ebbdac061f6e73e4ed07fe957ba759066..d48c1dedbd39770ccf3c9c3ff3351b39
|
||||
level.sendBlockUpdated(clickedPos, blockState, blockState, 3);
|
||||
level.gameEvent(context.getPlayer(), GameEvent.BLOCK_CHANGE, clickedPos);
|
||||
diff --git a/net/minecraft/world/item/ThrowablePotionItem.java b/net/minecraft/world/item/ThrowablePotionItem.java
|
||||
index 86198fb3150409b4b3e123982d8d3ba40b774621..6495c82fb88062875024c59a7c29d6d18b7a2f41 100644
|
||||
index 92a2a9c84d8f0a44dffee22834f5ae6c6b4fec43..e2cdb3d43eca6e0e52fb00fbf3801f4b0983c19b 100644
|
||||
--- a/net/minecraft/world/item/ThrowablePotionItem.java
|
||||
+++ b/net/minecraft/world/item/ThrowablePotionItem.java
|
||||
@@ -24,7 +24,7 @@ public abstract class ThrowablePotionItem extends PotionItem implements Projecti
|
||||
@@ -14393,7 +14407,7 @@ index 86198fb3150409b4b3e123982d8d3ba40b774621..6495c82fb88062875024c59a7c29d6d1
|
||||
if (event.callEvent() && thrownPotion.attemptSpawn()) {
|
||||
if (event.shouldConsume()) {
|
||||
diff --git a/net/minecraft/world/item/TridentItem.java b/net/minecraft/world/item/TridentItem.java
|
||||
index df629e3f2defce5e65aaf874d7c5ddff71f39c28..34d15412b8f68ed1bae45b81ecf759c9c4d7e20c 100644
|
||||
index fac4c58ea5d467a8686e42676e2323fbddeb8c7b..7fe10d298a1204d87c0484f97f3767de6779c687 100644
|
||||
--- a/net/minecraft/world/item/TridentItem.java
|
||||
+++ b/net/minecraft/world/item/TridentItem.java
|
||||
@@ -83,7 +83,7 @@ public class TridentItem extends Item implements ProjectileItem {
|
||||
@@ -14405,7 +14419,7 @@ index df629e3f2defce5e65aaf874d7c5ddff71f39c28..34d15412b8f68ed1bae45b81ecf759c9
|
||||
);
|
||||
// Paper start - PlayerLaunchProjectileEvent
|
||||
com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) player.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), (org.bukkit.entity.Projectile) tridentDelayed.projectile().getBukkitEntity());
|
||||
@@ -94,6 +94,7 @@ public class TridentItem extends Item implements ProjectileItem {
|
||||
@@ -93,6 +93,7 @@ public class TridentItem extends Item implements ProjectileItem {
|
||||
return false;
|
||||
}
|
||||
ThrownTrident thrownTrident = tridentDelayed.projectile(); // Paper - PlayerLaunchProjectileEvent
|
||||
@@ -14413,7 +14427,7 @@ index df629e3f2defce5e65aaf874d7c5ddff71f39c28..34d15412b8f68ed1bae45b81ecf759c9
|
||||
if (event.shouldConsume()) {
|
||||
stack.hurtWithoutBreaking(1, player); // Paper - PlayerLaunchProjectileEvent
|
||||
}
|
||||
@@ -126,6 +127,18 @@ public class TridentItem extends Item implements ProjectileItem {
|
||||
@@ -125,6 +126,18 @@ public class TridentItem extends Item implements ProjectileItem {
|
||||
f1 *= tridentSpinAttackStrength / squareRoot;
|
||||
f2 *= tridentSpinAttackStrength / squareRoot;
|
||||
org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerRiptideEvent(player, stack, f, f1, f2); // CraftBukkit
|
||||
@@ -15085,7 +15099,7 @@ index d4fbf130e23a959be8268085067b3bea1541be9a..2e79ce7e02aaa4abcef1507bba71e030
|
||||
+ // Purpur end - bonemealable cactus
|
||||
}
|
||||
diff --git a/net/minecraft/world/level/block/CakeBlock.java b/net/minecraft/world/level/block/CakeBlock.java
|
||||
index 72236993ebc4fbfc8b6316577caaa9c780bd447b..7c3b5170690af3bbdc856af96c3e01b0e55d6412 100644
|
||||
index cdd138a1d25a23fe3ca783383b45226154242ef0..fb820f05c5b9cbb1d4a99e26421ae639a1955365 100644
|
||||
--- a/net/minecraft/world/level/block/CakeBlock.java
|
||||
+++ b/net/minecraft/world/level/block/CakeBlock.java
|
||||
@@ -109,6 +109,7 @@ public class CakeBlock extends Block {
|
||||
@@ -16873,10 +16887,10 @@ index 84f3073444ae9e11e5d11224d6af6474ced925e2..e53398996bbb278c6e06024d8ca945b3
|
||||
}
|
||||
diff --git a/org/purpurmc/purpur/PurpurConfig.java b/org/purpurmc/purpur/PurpurConfig.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..ed777b003140486fd5d8d1db7af770301e30bec9
|
||||
index 0000000000000000000000000000000000000000..88f737304d4f4a774956a1cc39b5c01c37a3891d
|
||||
--- /dev/null
|
||||
+++ b/org/purpurmc/purpur/PurpurConfig.java
|
||||
@@ -0,0 +1,592 @@
|
||||
@@ -0,0 +1,597 @@
|
||||
+package org.purpurmc.purpur;
|
||||
+
|
||||
+import com.google.common.base.Throwables;
|
||||
@@ -17452,6 +17466,11 @@ index 0000000000000000000000000000000000000000..ed777b003140486fd5d8d1db7af77030
|
||||
+ registerMinecraftDebugCommands = getBoolean("settings.register-minecraft-debug-commands", registerMinecraftDebugCommands);
|
||||
+ }
|
||||
+
|
||||
+ public static boolean registerMinecraftDisabledCommands = false;
|
||||
+ private static void registerMinecraftDisabledCommands() {
|
||||
+ registerMinecraftDisabledCommands = getBoolean("settings.register-minecraft-disabled-commands", registerMinecraftDebugCommands);
|
||||
+ }
|
||||
+
|
||||
+ public static List<String> startupCommands = new ArrayList<>();
|
||||
+ private static void startupCommands() {
|
||||
+ startupCommands.clear();
|
||||
|
||||
Reference in New Issue
Block a user