it builds \o/

This commit is contained in:
granny
2023-12-07 16:50:01 -08:00
parent 18ee893c60
commit 2f003a6658
11 changed files with 47 additions and 66 deletions

View File

@@ -276,19 +276,18 @@ index ec2396f0e5d62b10450eaa7239a8c5479638b3c3..72bb60535d2f35435ae8b96faced60a1
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 774556a62eb240da42e84db4502e2ed43495be17..50e78e5220bd8cb48e585866b2cb25f6688ed9e0 100644
index 774556a62eb240da42e84db4502e2ed43495be17..fb87620c742ff7912f5e8ccd2a7930dd605576d9 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
@@ -11,8 +11,7 @@ public final class Versioning {
@@ -11,7 +11,7 @@ public final class Versioning {
public static String getBukkitVersion() {
String result = "Unknown-Version";
- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/io.papermc.paper/paper-api/pom.properties");
- Properties properties = new Properties();
+ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.purpurmc.purpur/purpur-api/pom.properties"); // Purpur
Properties properties = new Properties();
if (stream != null) {
try {
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5fc8cc40ab627eba0b2110c73d31af213a935733 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java

View File

@@ -79,7 +79,7 @@ index 9a94249834f8b0b8d3f6aeaf0c859ba875079250..0ade0256c3a227ea6a2971b2c5889b99
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 37632d0c41149e6269fead808903765f0e59dbcc..856803084d30cc4cbdb53bd6db15e7db5ea16154 100644
index 37632d0c41149e6269fead808903765f0e59dbcc..eed3fa6b14b1e93f8d6571bba5675796e3418f49 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -377,7 +377,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -124,7 +124,7 @@ index 37632d0c41149e6269fead808903765f0e59dbcc..856803084d30cc4cbdb53bd6db15e7db
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
}
// Paper end
+ urpur start
+ // Purpur start
+ @Nullable
+ private Player rider = null;
+
@@ -2009,7 +2009,7 @@ index b05b560b7570e97bc234b75f26233909fcf575b3..71234b258157579d3a47064e7e299bb7
return "entity.minecraft.tropical_fish.predefined." + variant;
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index d8056421249c8e75e96a55ec07dce84d2bba9c5c..d22509f74bab68a06a8fa1a8547a2689053c6f85 100644
index d8056421249c8e75e96a55ec07dce84d2bba9c5c..be0c77cd7ca3c9b9379c16b47dc5b5e354847ccf 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -86,6 +86,23 @@ public class Turtle extends Animal {
@@ -2079,23 +2079,6 @@ index d8056421249c8e75e96a55ec07dce84d2bba9c5c..d22509f74bab68a06a8fa1a8547a2689
this.turtle.setSpeed(Mth.lerp(0.125F, this.turtle.getSpeed(), f1));
this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0D, (double) this.turtle.getSpeed() * d1 * 0.1D, 0.0D));
@@ -523,6 +543,16 @@ public class Turtle extends Animal {
}
+ // Purpur start
+ public void purpurTick(Player rider) {
+ if (turtle.isInWater()) {
+ waterController.purpurTick(rider);
+ } else {
+ super.purpurTick(rider);
+ }
+ }
+ // Purpur end
+
@Override
protected boolean isValidTarget(LevelReader world, BlockPos pos) {
return !world.isEmptyBlock(pos.above()) ? false : TurtleEggBlock.isSand(world, pos);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index eecb7511582e5e316b71fa4a4734881424be5ca7..2efa2e19485f9d959a55115ab62f985454689379 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -2792,7 +2775,7 @@ index a6f3fba3b02b0b4d2a4e9e5205301c6f52d0188a..4eebfc27ded55e4d764d04f35d3e9c9e
protected void defineSynchedData() {
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818afb47d20 100644
index f56bb431be7d5f1a1b8edec41af1f3a28289316d..152111ff4c29e6cf13afeba8c9707f407c2b3531 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -107,6 +107,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -2803,7 +2786,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
public EnderDragon(EntityType<? extends EnderDragon> entitytypes, Level world) {
super(EntityType.ENDER_DRAGON, world);
@@ -129,6 +130,38 @@ public class EnderDragon extends Mob implements Enemy {
@@ -129,6 +130,37 @@ public class EnderDragon extends Mob implements Enemy {
this.noCulling = true;
this.phaseManager = new EnderDragonPhaseManager(this);
this.explosionSource = new Explosion(world, this, null, null, Double.NaN, Double.NaN, Double.NaN, Float.NaN, true, Explosion.BlockInteraction.DESTROY, ParticleTypes.EXPLOSION, ParticleTypes.EXPLOSION_EMITTER, SoundEvents.GENERIC_EXPLODE); // CraftBukkit
@@ -2838,11 +2821,10 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
+ @Override
+ public boolean dismountsUnderwater() {
+ return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.enderDragonRidableInWater;
+ }
}
public void setDragonFight(EndDragonFight fight) {
@@ -143,6 +176,17 @@ public class EnderDragon extends Mob implements Enemy {
@@ -143,6 +175,17 @@ public class EnderDragon extends Mob implements Enemy {
return this.fightOrigin;
}
@@ -2860,7 +2842,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D);
}
@@ -204,6 +248,37 @@ public class EnderDragon extends Mob implements Enemy {
@@ -204,6 +247,37 @@ public class EnderDragon extends Mob implements Enemy {
@Override
public void aiStep() {
@@ -2898,7 +2880,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
this.processFlappingMovement();
if (this.level().isClientSide) {
this.setHealth(this.getHealth());
@@ -230,6 +305,8 @@ public class EnderDragon extends Mob implements Enemy {
@@ -230,6 +304,8 @@ public class EnderDragon extends Mob implements Enemy {
float f;
if (this.isDeadOrDying()) {
@@ -2907,7 +2889,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
float f1 = (this.random.nextFloat() - 0.5F) * 8.0F;
f = (this.random.nextFloat() - 0.5F) * 4.0F;
@@ -242,9 +319,9 @@ public class EnderDragon extends Mob implements Enemy {
@@ -242,9 +318,9 @@ public class EnderDragon extends Mob implements Enemy {
f = 0.2F / ((float) vec3d.horizontalDistance() * 10.0F + 1.0F);
f *= (float) Math.pow(2.0D, vec3d.y);
@@ -2919,7 +2901,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
this.flapTime += f * 0.5F;
} else {
this.flapTime += f;
@@ -278,7 +355,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -278,7 +354,7 @@ public class EnderDragon extends Mob implements Enemy {
}
this.phaseManager.getCurrentPhase().doClientTick();
@@ -2928,7 +2910,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
DragonPhaseInstance idragoncontroller = this.phaseManager.getCurrentPhase();
idragoncontroller.doServerTick();
@@ -347,7 +424,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -347,7 +423,7 @@ public class EnderDragon extends Mob implements Enemy {
this.tickPart(this.body, (double) (f11 * 0.5F), 0.0D, (double) (-f12 * 0.5F));
this.tickPart(this.wing1, (double) (f12 * 4.5F), 2.0D, (double) (f11 * 4.5F));
this.tickPart(this.wing2, (double) (f12 * -4.5F), 2.0D, (double) (f11 * -4.5F));
@@ -2937,7 +2919,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
this.knockBack(this.level().getEntities((Entity) this, this.wing1.getBoundingBox().inflate(4.0D, 2.0D, 4.0D).move(0.0D, -2.0D, 0.0D), EntitySelector.NO_CREATIVE_OR_SPECTATOR));
this.knockBack(this.level().getEntities((Entity) this, this.wing2.getBoundingBox().inflate(4.0D, 2.0D, 4.0D).move(0.0D, -2.0D, 0.0D), EntitySelector.NO_CREATIVE_OR_SPECTATOR));
this.hurt(this.level().getEntities((Entity) this, this.head.getBoundingBox().inflate(1.0D), EntitySelector.NO_CREATIVE_OR_SPECTATOR));
@@ -391,7 +468,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -391,7 +467,7 @@ public class EnderDragon extends Mob implements Enemy {
}
if (!this.level().isClientSide) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 856803084d30cc4cbdb53bd6db15e7db5ea16154..4e21ff640261d95f7db1134793fb5e2e91015fd6 100644
index eed3fa6b14b1e93f8d6571bba5675796e3418f49..dc685733cbbd83408437085602e7a7c18d109e29 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -157,7 +157,7 @@ import org.bukkit.plugin.PluginManager;
@@ -427,7 +427,7 @@ index 71234b258157579d3a47064e7e299bb7fb90908f..7d02e552a27632939bb9c40a62f4e0df
return "entity.minecraft.tropical_fish.predefined." + variant;
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index d22509f74bab68a06a8fa1a8547a2689053c6f85..a2f31ca5fd5dbbcdd6854fa00d5011b2897fd714 100644
index be0c77cd7ca3c9b9379c16b47dc5b5e354847ccf..ee34cb8ee470c6ea4527ddca456d1b6d6f906f2c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -103,6 +103,11 @@ public class Turtle extends Animal {
@@ -759,10 +759,10 @@ index 13096fa2032679006f4264e03fdf86a71454f3ca..a5fd822713b56ebb2bec51364be71557
@Override
protected void defineSynchedData() {
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index a6feb1cf892050068ea2f30a0c785818afb47d20..315c26930b06a6c9e17f790a1582b8e83c19a782 100644
index 152111ff4c29e6cf13afeba8c9707f407c2b3531..e9cdda0dd902cade5cc32acf4dcdc6c3174e0191 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -187,6 +187,11 @@ public class EnderDragon extends Mob implements Enemy {
@@ -186,6 +186,11 @@ public class EnderDragon extends Mob implements Enemy {
}
// Purpur end

View File

@@ -18,7 +18,7 @@ index f692149d91b525bda6dc79d489d7496ea24037e8..7fbd4bf29bcc0795aa4b0e6d5d4bc374
public static final Item CRAFTING_TABLE = registerBlock(Blocks.CRAFTING_TABLE);
public static final Item FARMLAND = registerBlock(Blocks.FARMLAND);
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 e8b1c44da90f60cde20cda65aba2aa1e30f89d25..72fe95069f449544ff8a17643e4bd654b698822e 100644
index e8b1c44da90f60cde20cda65aba2aa1e30f89d25..c2e03881fff78aff203b5838180894bb70f419b9 100644
--- a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
@@ -42,6 +42,58 @@ public class SpawnerBlock extends BaseEntityBlock {
@@ -29,12 +29,12 @@ index e8b1c44da90f60cde20cda65aba2aa1e30f89d25..72fe95069f449544ff8a17643e4bd654
+ @Override
+ public void playerDestroy(Level level, net.minecraft.world.entity.player.Player player, BlockPos pos, BlockState state, BlockEntity blockEntity, ItemStack stack, boolean includeDrops) {
+ if (level.purpurConfig.silkTouchEnabled && player.getBukkitEntity().hasPermission("purpur.drop.spawners") && isSilkTouch(level, stack)) {
+ Optional<net.minecraft.world.entity.EntityType<?>> type = net.minecraft.world.entity.EntityType.by(((SpawnerBlockEntity) blockEntity).getSpawner().nextSpawnData.getEntityToSpawn());
+ java.util.Optional<net.minecraft.world.entity.EntityType<?>> type = net.minecraft.world.entity.EntityType.by(((SpawnerBlockEntity) blockEntity).getSpawner().nextSpawnData.getEntityToSpawn());
+
+ net.minecraft.world.entity.EntityType<?> entityType = type.orElse(null);
+ final net.kyori.adventure.text.Component mobName = io.papermc.paper.adventure.PaperAdventure.asAdventure(entityType == null ? Component.empty() : entityType.getDescription());
+ CompoundTag display = new CompoundTag();
+ CompoundTag tag = new CompoundTag();
+ net.minecraft.nbt.CompoundTag display = new net.minecraft.nbt.CompoundTag();
+ net.minecraft.nbt.CompoundTag tag = new net.minecraft.nbt.CompoundTag();
+
+ String name = level.purpurConfig.silkTouchSpawnerName;
+ if (name != null && !name.isEmpty() && !name.equals("Monster Spawner")) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Ender dragon always drop full exp
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 315c26930b06a6c9e17f790a1582b8e83c19a782..e28e25b0563bb6022ad1fb49f1c46fe619b65602 100644
index e9cdda0dd902cade5cc32acf4dcdc6c3174e0191..cfe7086b0259eefcd221a54529c111f7eb1adc38 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -749,7 +749,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -748,7 +748,7 @@ public class EnderDragon extends Mob implements Enemy {
boolean flag = this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT);
short short0 = 500;

View File

@@ -131,10 +131,10 @@ index d3da7487f911ff791dca5f7b546dccda751fe44c..84e0a41620fd52af0cd22dc92fd13ee4
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index e28e25b0563bb6022ad1fb49f1c46fe619b65602..2a0e45b9580b73c453aba02f822f10bd3a1f7c9d 100644
index cfe7086b0259eefcd221a54529c111f7eb1adc38..5381ee91770a0f1012b5478d6615540263e46533 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -605,7 +605,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -604,7 +604,7 @@ public class EnderDragon extends Mob implements Enemy {
BlockState iblockdata = this.level().getBlockState(blockposition);
if (!iblockdata.isAir() && !iblockdata.is(BlockTags.DRAGON_TRANSPARENT)) {

View File

@@ -379,7 +379,7 @@ index 7d02e552a27632939bb9c40a62f4e0df7bd60bbc..b16d075581a352714f86f1b87805f24c
return "entity.minecraft.tropical_fish.predefined." + variant;
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index e273bf2847d4c5daaa320f36672083c996428f61..5c082d99b54f33a3f640172f86f96990f654fc38 100644
index f16b2d368ca247cad5764d11efa4fe754eadc6d6..cc1ccef921e70c33e5d6acbd73d5eecc4ea99064 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -113,6 +113,11 @@ public class Turtle extends Animal {
@@ -555,10 +555,10 @@ index aaec706b7eaa6afdf7959e6dd53cc39344bb97df..dcc1d71c2eeea48669651165868899ba
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F);
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 2a0e45b9580b73c453aba02f822f10bd3a1f7c9d..f3ef0116537c660d46c17e1ccb0dcb62bc552b91 100644
index 5381ee91770a0f1012b5478d6615540263e46533..5643f35f02fff5a2d4072d246f8646772695b797 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -192,6 +192,11 @@ public class EnderDragon extends Mob implements Enemy {
@@ -191,6 +191,11 @@ public class EnderDragon extends Mob implements Enemy {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.enderDragonMaxHealth);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index f3ef0116537c660d46c17e1ccb0dcb62bc552b91..d116f6d5c5ca8cc956264ef14f59001a2ff32d49 100644
index 5643f35f02fff5a2d4072d246f8646772695b797..dc7804371b65c43367ec87e79433106e8a11a6ff 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -1189,6 +1189,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -1188,6 +1188,7 @@ public class EnderDragon extends Mob implements Enemy {
@Override
protected boolean canRide(Entity entity) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Extended OfflinePlayer API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..d0e3b531392738679894a989293ae49eb319676c 100644
index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..91fbc0cfc84045e32a4ee16fba8164de7901c7e6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
@@ -567,4 +567,213 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@@ -212,10 +212,10 @@ index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..d0e3b531392738679894a989293ae49e
+ File playerDir = server.console.playerDataStorage.getPlayerDir();
+ try {
+ File tempFile = File.createTempFile(this.getUniqueId()+"-", ".dat", playerDir);
+ net.minecraft.nbt.NbtIo.writeCompressed(compoundTag, tempFile);
+ net.minecraft.nbt.NbtIo.writeCompressed(compoundTag, tempFile.toPath());
+ File playerDataFile = new File(playerDir, this.getUniqueId()+".dat");
+ File playerDataFileOld = new File(playerDir, this.getUniqueId()+".dat_old");
+ net.minecraft.Util.safeReplaceFile(playerDataFile, tempFile, playerDataFileOld);
+ net.minecraft.Util.safeReplaceFile(playerDataFile.toPath(), tempFile.toPath(), playerDataFileOld.toPath());
+ } catch (java.io.IOException e) {
+ e.printStackTrace();
+ }

View File

@@ -157,6 +157,18 @@ index 7f1ffc0ac402fcf0ec086986e959ecc9f78dde03..1351d52374d1c2367932e5ecd5f46379
@Override
public int getMinCost(int level) {
return 15 + (level - 1) * 9;
diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
index f81faaf6d69b09f635d71491303fca1d494001c5..f782e8dd9d3456f345859dffd69e5830d576ccd1 100644
--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
+++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
@@ -81,6 +81,7 @@ public class CraftEnchantment extends Enchantment {
case CROSSBOW -> EnchantmentTarget.CROSSBOW;
case VANISHABLE -> EnchantmentTarget.VANISHABLE;
case BOW_AND_CROSSBOW -> EnchantmentTarget.BOW_AND_CROSSBOW; // Purpur
+ case WEAPON_AND_SHEARS -> EnchantmentTarget.WEAPON_AND_SHEARS; // Purpur
};
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index d56c2776d08306245618dca04cd39891bb61c1bd..730a4a2e46aeb233d8036e8d7e1749dcb397e6c0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java

View File

@@ -4,18 +4,6 @@ Date: Mon, 9 Jan 2023 19:45:55 -0500
Subject: [PATCH] Config to remove explosion radius clamp
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index d116f6d5c5ca8cc956264ef14f59001a2ff32d49..624dad43a1088e1d6423561e2cf418f329fbca38 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -111,6 +111,7 @@ public class EnderDragon extends Mob implements Enemy {
public EnderDragon(EntityType<? extends EnderDragon> entitytypes, Level world) {
super(EntityType.ENDER_DRAGON, world);
+ this.explosionSource = new Explosion(world, this, null, null, Double.NaN, Double.NaN, Double.NaN, Float.NaN, true, Explosion.BlockInteraction.DESTROY); // Purpur - moved instantiation from field
this.fightOrigin = BlockPos.ZERO;
this.growlTime = 100;
this.nodes = new Node[24];
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 370952a7be8df3ea00c0816235d84927df4ed79d..b0b8a0391bfd347fea44271b0408de2792d6489b 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java