diff --git a/patches/server/0010-Use-unused-ghast-sound.patch b/patches/server/0010-Use-unused-ghast-sound.patch new file mode 100644 index 0000000..bd6f3ac --- /dev/null +++ b/patches/server/0010-Use-unused-ghast-sound.patch @@ -0,0 +1,18 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> +Date: Fri, 31 Mar 2023 22:47:12 +0300 +Subject: [PATCH] Use unused ghast sound + + +diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java +index 77dcae6ecd87fade2b529386ba1360836363593a..20f6a52a635dded35e780c8e73604abfe5820068 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java ++++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java +@@ -164,6 +164,7 @@ public class Ghast extends FlyingMob implements Enemy { + + @Override + protected SoundEvent getAmbientSound() { ++ if (!level.dimensionType().ultraWarm() && random.nextInt(8) == 0) return SoundEvents.GHAST_SCREAM; // DivineMC + return SoundEvents.GHAST_AMBIENT; + } + diff --git a/patches/server/0011-Campfires-burn-out-in-rain.patch b/patches/server/0011-Campfires-burn-out-in-rain.patch new file mode 100644 index 0000000..aa37619 --- /dev/null +++ b/patches/server/0011-Campfires-burn-out-in-rain.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> +Date: Fri, 31 Mar 2023 22:47:12 +0300 +Subject: [PATCH] Campfires burn out in rain + +It can be annoying, but it adds more realistic. If you want to remove it - i will do this + +diff --git a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java +index 91feee1e284c929b008bc2df7ab548df898b3ef7..e0227afe23c69386e181fc9ba681f80a0d21832e 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java +@@ -55,6 +55,20 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { + public static void cookTick(Level world, BlockPos pos, BlockState state, CampfireBlockEntity campfire) { + boolean flag = false; + ++ // DivineMC start ++ if (world.random.nextDouble() < 0.2) { ++ if (state.getValue(CampfireBlock.WATERLOGGED) || world.isRainingAt(pos.above())) { ++ world.setBlock(pos, state.setValue(CampfireBlock.LIT, false), 3); ++ world.playSound(null, pos.getX() + 0.5, pos.getY() + 1D, pos.getZ() + 0.5, net.minecraft.sounds.SoundEvents.FIRE_EXTINGUISH, net.minecraft.sounds.SoundSource.BLOCKS, 1F, 1F); ++ flag = true; ++ } ++ if (flag) { ++ setChanged(world, pos, state); ++ return; ++ } ++ } ++ // DivineMC end ++ + for (int i = 0; i < campfire.items.size(); ++i) { + ItemStack itemstack = (ItemStack) campfire.items.get(i); + diff --git a/patches/server/0012-Don-t-save-Fireworks.patch b/patches/server/0012-Don-t-save-Fireworks.patch new file mode 100644 index 0000000..c1240cd --- /dev/null +++ b/patches/server/0012-Don-t-save-Fireworks.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> +Date: Fri, 31 Mar 2023 22:47:12 +0300 +Subject: [PATCH] Don't save Fireworks + + +diff --git a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java +index fca27f98989bf106060ba08196255fe32f850df5..d76c9090a1cd860cc73735a86beb637e2378df47 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java +@@ -357,4 +357,11 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier { + public boolean isAttackable() { + return false; + } ++ ++ // DivineMC start - Don't save Fireworks ++ @Override ++ public boolean shouldBeSaved() { ++ return false; ++ } ++ // DivineMC end + } diff --git a/patches/server/0013-Remove-Spigot-tick-limiter.patch b/patches/server/0013-Remove-Spigot-tick-limiter.patch new file mode 100644 index 0000000..3dc0ed3 --- /dev/null +++ b/patches/server/0013-Remove-Spigot-tick-limiter.patch @@ -0,0 +1,76 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> +Date: Fri, 31 Mar 2023 23:05:12 +0300 +Subject: [PATCH] Remove Spigot tick limiter + +Original code by Titaniumtown, modified by NONPLAYT +You can find the original code on https://gitlab.com/Titaniumtown/JettPack + +diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java +index b8001bca2a33ec1e60566948a651400418a6e9e7..e071630dd5a2895ae945f0083ed7ec47187e10f1 100644 +--- a/src/main/java/net/minecraft/world/level/Level.java ++++ b/src/main/java/net/minecraft/world/level/Level.java +@@ -180,8 +180,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur + public final co.aikar.timings.WorldTimingsHandler timings; // Paper + public static BlockPos lastPhysicsProblem; // Spigot +- private org.spigotmc.TickLimiter entityLimiter; +- private org.spigotmc.TickLimiter tileLimiter; + private int tileTickPosition; + public final Map explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions + public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here +@@ -422,8 +420,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + // CraftBukkit end + timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings + this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper +- this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime); +- this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); + this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray + } + +diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java +index 69fb6ac082bb7b77051c5824923a7c1ae222dd73..30b82d352726072f6ae144e1ab8e9bfb434a4774 100644 +--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java ++++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java +@@ -442,6 +442,7 @@ public class SpigotWorldConfig + this.hangingTickFrequency = this.getInt( "hanging-tick-frequency", 200 ); // DivineMC - optimize default values for configs + } + ++ /* DivineMC - remove tick limiter + public int tileMaxTickTime; + public int entityMaxTickTime; + private void maxTickTimes() +@@ -450,6 +451,7 @@ public class SpigotWorldConfig + this.entityMaxTickTime = this.getInt("max-tick-time.entity", 50); + this.log("Tile Max Tick Time: " + this.tileMaxTickTime + "ms Entity max Tick Time: " + this.entityMaxTickTime + "ms"); + } ++ */ + + public int thunderChance; + private void thunderChance() +diff --git a/src/main/java/org/spigotmc/TickLimiter.java b/src/main/java/org/spigotmc/TickLimiter.java +deleted file mode 100644 +index 4074538ea6090bf99d8ab04b1e98c2832a0e9a98..0000000000000000000000000000000000000000 +--- a/src/main/java/org/spigotmc/TickLimiter.java ++++ /dev/null +@@ -1,20 +0,0 @@ +-package org.spigotmc; +- +-public class TickLimiter { +- +- private final int maxTime; +- private long startTime; +- +- public TickLimiter(int maxtime) { +- this.maxTime = maxtime; +- } +- +- public void initTick() { +- this.startTime = System.currentTimeMillis(); +- } +- +- public boolean shouldContinue() { +- long remaining = System.currentTimeMillis() - this.startTime; +- return remaining < this.maxTime; +- } +-}