From f089cdd10bb1bfd4e940492b45d14dc1494ae27b Mon Sep 17 00:00:00 2001 From: Samsuik Date: Tue, 20 Feb 2024 15:55:00 +0000 Subject: [PATCH] Add final to sakura classes and methods --- patches/server/0002-Sakura-Utils.patch | 16 ++++++++-------- .../0004-Sakura-Configuration-Files.patch | 16 ++++++++-------- ...05-Local-Config-and-Value-Storage-API.patch | 12 ++++++------ .../0006-Visibility-API-and-Command.patch | 18 +++++++++--------- patches/server/0010-TPS-Graph-Command.patch | 16 ++++++++-------- .../server/0017-Store-Entity-Data-State.patch | 14 +++++++------- .../server/0018-Merge-Cannon-Entities.patch | 6 +++--- patches/server/0019-Optimised-Explosions.patch | 14 +++++++------- .../server/0029-Explosion-Durable-Blocks.patch | 6 +++--- ...031-Cache-Vanillia-and-Eigen-Redstone.patch | 6 +++--- ...9-Configure-cannon-physics-by-version.patch | 18 +++++++++--------- ...dable-blocks-as-full-while-moving-fas.patch | 4 ++-- 12 files changed, 73 insertions(+), 73 deletions(-) diff --git a/patches/server/0002-Sakura-Utils.patch b/patches/server/0002-Sakura-Utils.patch index dd59c91..7b87af0 100644 --- a/patches/server/0002-Sakura-Utils.patch +++ b/patches/server/0002-Sakura-Utils.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Sakura Utils diff --git a/src/main/java/me/samsuik/sakura/utils/collections/OrderedComparatorList.java b/src/main/java/me/samsuik/sakura/utils/collections/OrderedComparatorList.java new file mode 100644 -index 0000000000000000000000000000000000000000..ff4909a2ba8f451a7c6aa55ee98e33c88dd69e5e +index 0000000000000000000000000000000000000000..239fc8823b32ae5c8f6e3bfd6ecdde0ccd1e5a8b --- /dev/null +++ b/src/main/java/me/samsuik/sakura/utils/collections/OrderedComparatorList.java @@ -0,0 +1,51 @@ @@ -17,7 +17,7 @@ index 0000000000000000000000000000000000000000..ff4909a2ba8f451a7c6aa55ee98e33c8 +import java.util.Arrays; +import java.util.Comparator; + -+public class OrderedComparatorList extends ObjectArrayList { ++public final class OrderedComparatorList extends ObjectArrayList { + + private final Comparator comparator; + private boolean binarySearch = true; @@ -63,7 +63,7 @@ index 0000000000000000000000000000000000000000..ff4909a2ba8f451a7c6aa55ee98e33c8 +} diff --git a/src/main/java/me/samsuik/sakura/utils/collections/TrackedEntityChunkMap.java b/src/main/java/me/samsuik/sakura/utils/collections/TrackedEntityChunkMap.java new file mode 100644 -index 0000000000000000000000000000000000000000..e31998ac50b8bda8687d07b0022c0e039fa2e774 +index 0000000000000000000000000000000000000000..267db86c5d12a804d2f9c868df996a3391910cbd --- /dev/null +++ b/src/main/java/me/samsuik/sakura/utils/collections/TrackedEntityChunkMap.java @@ -0,0 +1,34 @@ @@ -74,7 +74,7 @@ index 0000000000000000000000000000000000000000..e31998ac50b8bda8687d07b0022c0e03 +import it.unimi.dsi.fastutil.objects.ObjectCollection; +import net.minecraft.server.level.ChunkMap; + -+public class TrackedEntityChunkMap extends Int2ObjectOpenHashMap { ++public final class TrackedEntityChunkMap extends Int2ObjectOpenHashMap { + + private final ObjectArrayList entityList = new UnorderedIndexedList<>(); + @@ -103,7 +103,7 @@ index 0000000000000000000000000000000000000000..e31998ac50b8bda8687d07b0022c0e03 +} diff --git a/src/main/java/me/samsuik/sakura/utils/collections/UnorderedIndexedList.java b/src/main/java/me/samsuik/sakura/utils/collections/UnorderedIndexedList.java new file mode 100644 -index 0000000000000000000000000000000000000000..be4f5b4999c85fc6765e37cc9af0a87292327dbf +index 0000000000000000000000000000000000000000..4ca3bf6d6c7aec3a1b31e6ef4f863fa5c34888bd --- /dev/null +++ b/src/main/java/me/samsuik/sakura/utils/collections/UnorderedIndexedList.java @@ -0,0 +1,65 @@ @@ -112,7 +112,7 @@ index 0000000000000000000000000000000000000000..be4f5b4999c85fc6765e37cc9af0a872 +import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; + -+public class UnorderedIndexedList extends ObjectArrayList { ++public final class UnorderedIndexedList extends ObjectArrayList { + + private final Int2IntOpenHashMap elementToIndex = new Int2IntOpenHashMap(); + @@ -174,13 +174,13 @@ index 0000000000000000000000000000000000000000..be4f5b4999c85fc6765e37cc9af0a872 +} diff --git a/src/main/java/me/samsuik/sakura/utils/objects/Expiry.java b/src/main/java/me/samsuik/sakura/utils/objects/Expiry.java new file mode 100644 -index 0000000000000000000000000000000000000000..a05e7d03f17f675e190d63a4206129a74f42cadc +index 0000000000000000000000000000000000000000..93a5655d9dc355d0596c86ea7b592d14ff941476 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/utils/objects/Expiry.java @@ -0,0 +1,21 @@ +package me.samsuik.sakura.utils.objects; + -+public class Expiry { ++public final class Expiry { + + private long expireAt; + private final int inc; diff --git a/patches/server/0004-Sakura-Configuration-Files.patch b/patches/server/0004-Sakura-Configuration-Files.patch index bb1388c..c648cb0 100644 --- a/patches/server/0004-Sakura-Configuration-Files.patch +++ b/patches/server/0004-Sakura-Configuration-Files.patch @@ -137,7 +137,7 @@ index 0000000000000000000000000000000000000000..9b5af05f7a4593eb44f36fff90d94e98 +} diff --git a/src/main/java/me/samsuik/sakura/command/SakuraCommand.java b/src/main/java/me/samsuik/sakura/command/SakuraCommand.java new file mode 100644 -index 0000000000000000000000000000000000000000..f4e75ba8f2c53a82cb40868f0e1ab77ffcc19e3e +index 0000000000000000000000000000000000000000..2b145614bf189ae56622016436bfefd63f5271eb --- /dev/null +++ b/src/main/java/me/samsuik/sakura/command/SakuraCommand.java @@ -0,0 +1,93 @@ @@ -162,7 +162,7 @@ index 0000000000000000000000000000000000000000..f4e75ba8f2c53a82cb40868f0e1ab77f +import java.util.List; + +@DefaultQualifier(NonNull.class) -+public class SakuraCommand extends Command { ++public final class SakuraCommand extends Command { + + private static final Component INFORMATION_MESSAGE = MiniMessage.miniMessage().deserialize(""" + . @@ -236,7 +236,7 @@ index 0000000000000000000000000000000000000000..f4e75ba8f2c53a82cb40868f0e1ab77f +} diff --git a/src/main/java/me/samsuik/sakura/command/SakuraCommands.java b/src/main/java/me/samsuik/sakura/command/SakuraCommands.java new file mode 100644 -index 0000000000000000000000000000000000000000..c2651cac1dcf85fb67fe981b97efee4e56431de2 +index 0000000000000000000000000000000000000000..3b08454cf7411d12bb33225df59800bd73312123 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/command/SakuraCommands.java @@ -0,0 +1,26 @@ @@ -250,7 +250,7 @@ index 0000000000000000000000000000000000000000..c2651cac1dcf85fb67fe981b97efee4e +import java.util.HashMap; +import java.util.Map; + -+public class SakuraCommands { ++public final class SakuraCommands { + + static final Map COMMANDS = new HashMap<>(); + static { @@ -268,7 +268,7 @@ index 0000000000000000000000000000000000000000..c2651cac1dcf85fb67fe981b97efee4e +} diff --git a/src/main/java/me/samsuik/sakura/command/subcommands/ConfigCommand.java b/src/main/java/me/samsuik/sakura/command/subcommands/ConfigCommand.java new file mode 100644 -index 0000000000000000000000000000000000000000..0b5f50c7447d1c1732a745bae54c4fcd4f45da46 +index 0000000000000000000000000000000000000000..75febc3f40910a27a9fc651dac9697da48338cc1 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/command/subcommands/ConfigCommand.java @@ -0,0 +1,45 @@ @@ -291,7 +291,7 @@ index 0000000000000000000000000000000000000000..0b5f50c7447d1c1732a745bae54c4fcd +import static net.kyori.adventure.text.format.NamedTextColor.RED; + +@DefaultQualifier(NonNull.class) -+public class ConfigCommand extends BaseSubCommand { ++public final class ConfigCommand extends BaseSubCommand { + + public ConfigCommand(String name) { + super(name); @@ -921,7 +921,7 @@ index 45804711255f04110e9509df8d60900314aa10b7..174802d3ae69cc9a1f0ae16c078dca79 this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 973ecd50f9cb6b86c353586e84d15dcb118ccb60..1efb7002cd1efe4b22a101cb95251f10751634c1 100644 +index 973ecd50f9cb6b86c353586e84d15dcb118ccb60..765dfd841ba212713cab76885b5ec632ab504979 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -175,6 +175,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -930,7 +930,7 @@ index 973ecd50f9cb6b86c353586e84d15dcb118ccb60..1efb7002cd1efe4b22a101cb95251f10 // Paper end + // Sakura start + private final me.samsuik.sakura.configuration.WorldConfiguration sakuraConfig; -+ public me.samsuik.sakura.configuration.WorldConfiguration sakuraConfig() { ++ public final me.samsuik.sakura.configuration.WorldConfiguration sakuraConfig() { + return this.sakuraConfig; + } + // Sakura end diff --git a/patches/server/0005-Local-Config-and-Value-Storage-API.patch b/patches/server/0005-Local-Config-and-Value-Storage-API.patch index cdb39a2..63b89b2 100644 --- a/patches/server/0005-Local-Config-and-Value-Storage-API.patch +++ b/patches/server/0005-Local-Config-and-Value-Storage-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Local Config and Value Storage API diff --git a/src/main/java/me/samsuik/sakura/local/config/LocalConfigManager.java b/src/main/java/me/samsuik/sakura/local/config/LocalConfigManager.java new file mode 100644 -index 0000000000000000000000000000000000000000..3508755c11cc8f577d27a440f2f4a08d9856f5ae +index 0000000000000000000000000000000000000000..ff54d6b5d3f0299a37f36dde86fd00c5d04115dc --- /dev/null +++ b/src/main/java/me/samsuik/sakura/local/config/LocalConfigManager.java @@ -0,0 +1,143 @@ @@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..3508755c11cc8f577d27a440f2f4a08d +import java.util.List; +import java.util.Map; + -+public class LocalConfigManager implements LocalStorageHandler { ++public final class LocalConfigManager implements LocalStorageHandler { + + private final Map storageMap = new Object2ObjectOpenHashMap<>(); + // tree is a tree. it may not be correct but it works. @@ -155,7 +155,7 @@ index 0000000000000000000000000000000000000000..3508755c11cc8f577d27a440f2f4a08d +} diff --git a/src/main/java/me/samsuik/sakura/local/config/LocalValueConfig.java b/src/main/java/me/samsuik/sakura/local/config/LocalValueConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..fbd877356594f0cf8934452522cef4349801e5d7 +index 0000000000000000000000000000000000000000..f0037f98e93fd1f0dea9c224ba402ebcacf9b21f --- /dev/null +++ b/src/main/java/me/samsuik/sakura/local/config/LocalValueConfig.java @@ -0,0 +1,59 @@ @@ -174,7 +174,7 @@ index 0000000000000000000000000000000000000000..fbd877356594f0cf8934452522cef434 + +import java.util.Map; + -+public class LocalValueConfig { ++public final class LocalValueConfig { + + private final Expiry expiry; + public Map durableMaterials; @@ -231,7 +231,7 @@ index d0789c1e01255017e8a54e8b2e80f4c4dcf3dba4..8cb71110c16789a9fbc0b7f76f76f9d4 this.isIteratingOverLevels = false; // Paper diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1efb7002cd1efe4b22a101cb95251f10751634c1..4f0b68f33c4fca1fa9f983f966b3899e75b837b8 100644 +index 765dfd841ba212713cab76885b5ec632ab504979..6feb45464e2cae5cb84b8e3f5202f7364af17648 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -181,6 +181,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -241,7 +241,7 @@ index 1efb7002cd1efe4b22a101cb95251f10751634c1..4f0b68f33c4fca1fa9f983f966b3899e + // Sakura start + private final me.samsuik.sakura.local.config.LocalConfigManager localConfig = new me.samsuik.sakura.local.config.LocalConfigManager(this); + -+ public me.samsuik.sakura.local.config.LocalConfigManager localConfig() { ++ public final me.samsuik.sakura.local.config.LocalConfigManager localConfig() { + return this.localConfig; + } + // Sakura end diff --git a/patches/server/0006-Visibility-API-and-Command.patch b/patches/server/0006-Visibility-API-and-Command.patch index 6db271e..84b8751 100644 --- a/patches/server/0006-Visibility-API-and-Command.patch +++ b/patches/server/0006-Visibility-API-and-Command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Visibility API and Command diff --git a/src/main/java/me/samsuik/sakura/command/SakuraCommands.java b/src/main/java/me/samsuik/sakura/command/SakuraCommands.java -index c2651cac1dcf85fb67fe981b97efee4e56431de2..d7d0c49cc5d576c594dee16ddba037cd147e11fa 100644 +index 3b08454cf7411d12bb33225df59800bd73312123..22676ec7a7ae9494b198e5e65e6be6d32e0feb85 100644 --- a/src/main/java/me/samsuik/sakura/command/SakuraCommands.java +++ b/src/main/java/me/samsuik/sakura/command/SakuraCommands.java @@ -2,6 +2,9 @@ package me.samsuik.sakura.command; @@ -18,7 +18,7 @@ index c2651cac1dcf85fb67fe981b97efee4e56431de2..d7d0c49cc5d576c594dee16ddba037cd import net.minecraft.server.MinecraftServer; import org.bukkit.command.Command; -@@ -14,6 +17,10 @@ public class SakuraCommands { +@@ -14,6 +17,10 @@ public final class SakuraCommands { static { COMMANDS.put("sakura", new SakuraCommand("sakura")); COMMANDS.put("config", new ConfigCommand("config")); @@ -31,7 +31,7 @@ index c2651cac1dcf85fb67fe981b97efee4e56431de2..d7d0c49cc5d576c594dee16ddba037cd public static void registerCommands(final MinecraftServer server) { diff --git a/src/main/java/me/samsuik/sakura/command/subcommands/FPSCommand.java b/src/main/java/me/samsuik/sakura/command/subcommands/FPSCommand.java new file mode 100644 -index 0000000000000000000000000000000000000000..1dc2a98123d671c945e85b97a898f56e527a81f5 +index 0000000000000000000000000000000000000000..aa5ddf696b09226a0bd3d967d2ac2b11fc2deb32 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/command/subcommands/FPSCommand.java @@ -0,0 +1,26 @@ @@ -45,7 +45,7 @@ index 0000000000000000000000000000000000000000..1dc2a98123d671c945e85b97a898f56e +import org.checkerframework.framework.qual.DefaultQualifier; + +@DefaultQualifier(NonNull.class) -+public class FPSCommand extends BaseSubCommand { ++public final class FPSCommand extends BaseSubCommand { + + private final VisibilityGUI VISIBILITY_GUI = new VisibilityGUI(); + @@ -63,7 +63,7 @@ index 0000000000000000000000000000000000000000..1dc2a98123d671c945e85b97a898f56e +} diff --git a/src/main/java/me/samsuik/sakura/command/subcommands/VisualCommand.java b/src/main/java/me/samsuik/sakura/command/subcommands/VisualCommand.java new file mode 100644 -index 0000000000000000000000000000000000000000..6027e4741e2de7c6d3bd7b094c196a212e34e2f5 +index 0000000000000000000000000000000000000000..148a583279333eeb3e5db16652623082cd5e0e60 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/command/subcommands/VisualCommand.java @@ -0,0 +1,45 @@ @@ -82,7 +82,7 @@ index 0000000000000000000000000000000000000000..6027e4741e2de7c6d3bd7b094c196a21 +import java.util.Arrays; + +@DefaultQualifier(NonNull.class) -+public class VisualCommand extends BaseSubCommand { ++public final class VisualCommand extends BaseSubCommand { + + private final Visibility.Setting type; + @@ -114,7 +114,7 @@ index 0000000000000000000000000000000000000000..6027e4741e2de7c6d3bd7b094c196a21 +} diff --git a/src/main/java/me/samsuik/sakura/player/visibility/VisibilityGUI.java b/src/main/java/me/samsuik/sakura/player/visibility/VisibilityGUI.java new file mode 100644 -index 0000000000000000000000000000000000000000..aaffe63cec82e8d89a9b6cd6e1749ca983dc6a13 +index 0000000000000000000000000000000000000000..8cd203d9643813ec04dfbaa9ef2550b5814ca38f --- /dev/null +++ b/src/main/java/me/samsuik/sakura/player/visibility/VisibilityGUI.java @@ -0,0 +1,120 @@ @@ -138,7 +138,7 @@ index 0000000000000000000000000000000000000000..aaffe63cec82e8d89a9b6cd6e1749ca9 + +import java.util.function.BiFunction; + -+public class VisibilityGUI extends PlayerGUI { ++public final class VisibilityGUI extends PlayerGUI { + + private static final BiFunction CREATE_INVENTORY = (player, holder) -> { + Inventory inventory = Bukkit.createInventory(holder, 45, Component.text("FPS GUI")); @@ -594,7 +594,7 @@ index dfdf7e7fc1070975ec18fd215c724f4fc84d3705..23ba4fc50c0d45f1e5d666ff583b9166 public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4f0b68f33c4fca1fa9f983f966b3899e75b837b8..303c4a47b275e6c53a809c65482ad66734945622 100644 +index 6feb45464e2cae5cb84b8e3f5202f7364af17648..7b60000ff3d6e359229d6bacfa0e6e0141d91838 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -287,6 +287,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0010-TPS-Graph-Command.patch b/patches/server/0010-TPS-Graph-Command.patch index 5754245..63022bd 100644 --- a/patches/server/0010-TPS-Graph-Command.patch +++ b/patches/server/0010-TPS-Graph-Command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] TPS Graph Command diff --git a/src/main/java/me/samsuik/sakura/command/SakuraCommands.java b/src/main/java/me/samsuik/sakura/command/SakuraCommands.java -index d7d0c49cc5d576c594dee16ddba037cd147e11fa..2ed50a4fc9cddc036adc5b4288bd5d83442b1572 100644 +index 22676ec7a7ae9494b198e5e65e6be6d32e0feb85..6edc5195c3b496a12b17b2b9b528505d37ffdb12 100644 --- a/src/main/java/me/samsuik/sakura/command/SakuraCommands.java +++ b/src/main/java/me/samsuik/sakura/command/SakuraCommands.java @@ -4,6 +4,7 @@ import io.papermc.paper.command.PaperPluginsCommand; @@ -16,7 +16,7 @@ index d7d0c49cc5d576c594dee16ddba037cd147e11fa..2ed50a4fc9cddc036adc5b4288bd5d83 import me.samsuik.sakura.player.visibility.Visibility; import net.minecraft.server.MinecraftServer; import org.bukkit.command.Command; -@@ -21,6 +22,7 @@ public class SakuraCommands { +@@ -21,6 +22,7 @@ public final class SakuraCommands { COMMANDS.put("tntvisibility", new VisualCommand(Visibility.Setting.TNT_VISIBILITY, "tnttoggle")); COMMANDS.put("sandvisibility", new VisualCommand(Visibility.Setting.SAND_VISIBILITY, "sandtoggle")); COMMANDS.put("minimal", new VisualCommand(Visibility.Setting.MINIMAL, "minimaltnt", "tntlag")); @@ -26,7 +26,7 @@ index d7d0c49cc5d576c594dee16ddba037cd147e11fa..2ed50a4fc9cddc036adc5b4288bd5d83 public static void registerCommands(final MinecraftServer server) { diff --git a/src/main/java/me/samsuik/sakura/command/subcommands/TPSCommand.java b/src/main/java/me/samsuik/sakura/command/subcommands/TPSCommand.java new file mode 100644 -index 0000000000000000000000000000000000000000..13ad8f19806413ead42ab4d33265bf79b96b5a49 +index 0000000000000000000000000000000000000000..7bd4c5696911730170320060c273f3a7f6a610be --- /dev/null +++ b/src/main/java/me/samsuik/sakura/command/subcommands/TPSCommand.java @@ -0,0 +1,67 @@ @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..13ad8f19806413ead42ab4d33265bf79 +import net.minecraft.util.Mth; +import org.bukkit.command.CommandSender; + -+public class TPSCommand extends BaseSubCommand { ++public final class TPSCommand extends BaseSubCommand { + + public TPSCommand(String name) { + super(name); @@ -99,7 +99,7 @@ index 0000000000000000000000000000000000000000..13ad8f19806413ead42ab4d33265bf79 +} diff --git a/src/main/java/me/samsuik/sakura/utils/tps/TPSGraph.java b/src/main/java/me/samsuik/sakura/utils/tps/TPSGraph.java new file mode 100644 -index 0000000000000000000000000000000000000000..efbf8360657c862dd522d0264aa1c5d8f73bd8b5 +index 0000000000000000000000000000000000000000..fa5d0c046d979901dd302ee3973df27442172add --- /dev/null +++ b/src/main/java/me/samsuik/sakura/utils/tps/TPSGraph.java @@ -0,0 +1,255 @@ @@ -116,7 +116,7 @@ index 0000000000000000000000000000000000000000..efbf8360657c862dd522d0264aa1c5d8 +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; +import net.minecraft.util.Mth; + -+public class TPSGraph { ++public final class TPSGraph { + + private final Parts[][] parts; + private final TickTracking tracked; @@ -360,7 +360,7 @@ index 0000000000000000000000000000000000000000..efbf8360657c862dd522d0264aa1c5d8 +} diff --git a/src/main/java/me/samsuik/sakura/utils/tps/TickTracking.java b/src/main/java/me/samsuik/sakura/utils/tps/TickTracking.java new file mode 100644 -index 0000000000000000000000000000000000000000..8a94b1a2cb1ff57664c97a7b471c99ec391103ae +index 0000000000000000000000000000000000000000..e36644b06bc91f593e831405c5dfe59daef0e244 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/utils/tps/TickTracking.java @@ -0,0 +1,53 @@ @@ -374,7 +374,7 @@ index 0000000000000000000000000000000000000000..8a94b1a2cb1ff57664c97a7b471c99ec +import java.util.List; +import java.util.stream.IntStream; + -+public class TickTracking { ++public final class TickTracking { + + private final List history = new ArrayList<>(); + private final double[] msptSamples = new double[20]; diff --git a/patches/server/0017-Store-Entity-Data-State.patch b/patches/server/0017-Store-Entity-Data-State.patch index efd2f8a..bce8a25 100644 --- a/patches/server/0017-Store-Entity-Data-State.patch +++ b/patches/server/0017-Store-Entity-Data-State.patch @@ -48,7 +48,7 @@ index 0000000000000000000000000000000000000000..c579b375994652f2331a454210986bcc + +} diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7e2a9c3b356e2ac46c1a0badb82c444def901045..1bd5db8e0919d126d18e250bb1cb35cb96d63f5c 100644 +index 7e2a9c3b356e2ac46c1a0badb82c444def901045..6b073e87fb6ebd7edd45dbe297ae6a3f00f1f718 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -547,6 +547,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -58,23 +58,23 @@ index 7e2a9c3b356e2ac46c1a0badb82c444def901045..1bd5db8e0919d126d18e250bb1cb35cb + // Sakura start - entity state (from start of tick) + private @Nullable me.samsuik.sakura.entity.EntityState entityState = null; + -+ public Vec3 stuckSpeedMultiplier() { ++ public final Vec3 stuckSpeedMultiplier() { + return stuckSpeedMultiplier; + } + -+ public void storeEntityState() { ++ public final void storeEntityState() { + entityState = me.samsuik.sakura.entity.EntityState.of(this); + } + -+ public @Nullable me.samsuik.sakura.entity.EntityState entityState() { ++ public final @Nullable me.samsuik.sakura.entity.EntityState entityState() { + return entityState; + } + -+ public boolean compareState(Entity to) { ++ public final boolean compareState(Entity to) { + return to.entityState() != null && to.entityState().isCurrentState(this); + } + -+ public long getPackedOrigin() { ++ public final long getPackedOrigin() { + var v = getOriginVector(); + if (v == null) return Long.MIN_VALUE; + // Note: vector#getBlockN may not be 100% exact @@ -87,7 +87,7 @@ index 7e2a9c3b356e2ac46c1a0badb82c444def901045..1bd5db8e0919d126d18e250bb1cb35cb public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 303c4a47b275e6c53a809c65482ad66734945622..aacb2bb7218eb486f8a76ce586de00225683b4ca 100644 +index 7b60000ff3d6e359229d6bacfa0e6e0141d91838..2adba71265af5e9deb900414c1f52e91b02921c1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -939,6 +939,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0018-Merge-Cannon-Entities.patch b/patches/server/0018-Merge-Cannon-Entities.patch index 1f03d03..4c9fb8c 100644 --- a/patches/server/0018-Merge-Cannon-Entities.patch +++ b/patches/server/0018-Merge-Cannon-Entities.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Merge Cannon Entities diff --git a/src/main/java/me/samsuik/sakura/entity/merge/MergeHistory.java b/src/main/java/me/samsuik/sakura/entity/merge/MergeHistory.java new file mode 100644 -index 0000000000000000000000000000000000000000..90f36b2d3847e058cfa2b748838fc6ea3294c159 +index 0000000000000000000000000000000000000000..3216f20b93b73277c4ad2ebb054eeee4db4fb8b6 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/entity/merge/MergeHistory.java @@ -0,0 +1,127 @@ @@ -23,7 +23,7 @@ index 0000000000000000000000000000000000000000..90f36b2d3847e058cfa2b748838fc6ea + +import java.util.List; + -+public class MergeHistory { ++public final class MergeHistory { + + // packed position -> known merging information + private final Long2ObjectMap mergeDataMap = new Long2ObjectOpenHashMap<>(); @@ -464,7 +464,7 @@ index 6097d495252c9c7ee54f7017ca2b39d42e5046fe..2bdd46350317a9fadf362b1a341993c9 this.explode(); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index aacb2bb7218eb486f8a76ce586de00225683b4ca..d1ca193575f531f0cb12e056bfda75b86c3940bb 100644 +index 2adba71265af5e9deb900414c1f52e91b02921c1..890e862217947b21d976b45d271554abb210b622 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -288,6 +288,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0019-Optimised-Explosions.patch b/patches/server/0019-Optimised-Explosions.patch index d9445a5..f994316 100644 --- a/patches/server/0019-Optimised-Explosions.patch +++ b/patches/server/0019-Optimised-Explosions.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimised Explosions diff --git a/src/main/java/me/samsuik/sakura/explosion/DensityCache.java b/src/main/java/me/samsuik/sakura/explosion/DensityCache.java new file mode 100644 -index 0000000000000000000000000000000000000000..3f6f34cc617efaad420485a7f613cfcad88e3783 +index 0000000000000000000000000000000000000000..5c6d4124189d98421e2d6f351840c5d69bf2faf4 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/explosion/DensityCache.java @@ -0,0 +1,130 @@ @@ -21,7 +21,7 @@ index 0000000000000000000000000000000000000000..3f6f34cc617efaad420485a7f613cfca + +import javax.annotation.Nullable; + -+public class DensityCache { ++public final class DensityCache { + + private final Int2ObjectMap densityMap = new Int2ObjectOpenHashMap<>(); + @@ -142,7 +142,7 @@ index 0000000000000000000000000000000000000000..3f6f34cc617efaad420485a7f613cfca +} diff --git a/src/main/java/me/samsuik/sakura/explosion/SakuraExplosion.java b/src/main/java/me/samsuik/sakura/explosion/SakuraExplosion.java new file mode 100644 -index 0000000000000000000000000000000000000000..93c7be878632296683a794235455013c33bec9e7 +index 0000000000000000000000000000000000000000..21e620a23ad5ba889760fe6234fe2c245f1d73a8 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/explosion/SakuraExplosion.java @@ -0,0 +1,381 @@ @@ -190,7 +190,7 @@ index 0000000000000000000000000000000000000000..93c7be878632296683a794235455013c + * realistic to explode a big block of tnt in survival or factions. They only cause + * harm to a server and extremely wasteful for resources with minimal impact to terrain. + */ -+public class SakuraExplosion extends Explosion { ++public final class SakuraExplosion extends Explosion { + + private final Level level; + @@ -529,7 +529,7 @@ index 0000000000000000000000000000000000000000..93c7be878632296683a794235455013c +} diff --git a/src/main/java/me/samsuik/sakura/utils/ExplosionUtil.java b/src/main/java/me/samsuik/sakura/utils/ExplosionUtil.java new file mode 100644 -index 0000000000000000000000000000000000000000..e0387f16ff49031fdcbc8990613417da88d84e87 +index 0000000000000000000000000000000000000000..84e5fe09f7432cdeec846dc1e26404706f1c298c --- /dev/null +++ b/src/main/java/me/samsuik/sakura/utils/ExplosionUtil.java @@ -0,0 +1,64 @@ @@ -540,7 +540,7 @@ index 0000000000000000000000000000000000000000..e0387f16ff49031fdcbc8990613417da +import java.util.ArrayList; +import java.util.List; + -+public class ExplosionUtil { ++public final class ExplosionUtil { + + private static final java.util.function.Function highestOf = (vector) -> { + double highest = 0; @@ -961,7 +961,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..88fccb17260c203111147a2a458d8185 return blockDensity; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d1ca193575f531f0cb12e056bfda75b86c3940bb..c62793c50e95e2e9588e20a59a1d8fb70ddf7760 100644 +index 890e862217947b21d976b45d271554abb210b622..a246493bc7c0b589521c39ec5c10f5040ca19e33 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -289,6 +289,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0029-Explosion-Durable-Blocks.patch b/patches/server/0029-Explosion-Durable-Blocks.patch index fafd53e..b448d18 100644 --- a/patches/server/0029-Explosion-Durable-Blocks.patch +++ b/patches/server/0029-Explosion-Durable-Blocks.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Explosion Durable Blocks diff --git a/src/main/java/me/samsuik/sakura/explosion/durable/DurableBlockManager.java b/src/main/java/me/samsuik/sakura/explosion/durable/DurableBlockManager.java new file mode 100644 -index 0000000000000000000000000000000000000000..2e11ba36e9e820f17839d696e5d7d876e7437fbf +index 0000000000000000000000000000000000000000..c58e52f7cc012babf4235e405e5fb5015c6e95d9 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/explosion/durable/DurableBlockManager.java @@ -0,0 +1,63 @@ @@ -17,7 +17,7 @@ index 0000000000000000000000000000000000000000..2e11ba36e9e820f17839d696e5d7d876 +import net.minecraft.core.BlockPos; +import net.minecraft.server.MinecraftServer; + -+public class DurableBlockManager { ++public final class DurableBlockManager { + + private final Long2ObjectOpenHashMap blocks = new Long2ObjectOpenHashMap<>(); + @@ -162,7 +162,7 @@ index 88fccb17260c203111147a2a458d81855cf12152..2fdfd6bbe87d3c93efd368307447f057 Entity sourceEntity = this.source == null ? null : this.source; BlockPos sourceBlock = sourceEntity == null ? BlockPos.containing(this.x, this.y, this.z) : null; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 87b7254406166f4b98bd2e2ca1e57b53d789867c..1bcd2400e4a1319e844592c9f313f4e396e4d97e 100644 +index 9ebd7ae21f1fa492636bfa9979311a8105f5e3d6..c34d484661588d31d3ff59c5621c80c8c6b2c4ed 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -290,6 +290,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch b/patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch index 306f8fa..8335e96 100644 --- a/patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch +++ b/patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch @@ -53,7 +53,7 @@ index 22a2547810d0c029f29685faddf7ac21cde2df0b..0fad13769f5727279430ac7f650f3d4d diff --git a/src/main/java/me/samsuik/sakura/redstone/RedstoneTracker.java b/src/main/java/me/samsuik/sakura/redstone/RedstoneTracker.java new file mode 100644 -index 0000000000000000000000000000000000000000..455e51b93c50f8bf3e84d11f373be7b1dc9fc6eb +index 0000000000000000000000000000000000000000..c4150b062ee1a15f1938fea2da926699edb804a9 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/redstone/RedstoneTracker.java @@ -0,0 +1,283 @@ @@ -80,7 +80,7 @@ index 0000000000000000000000000000000000000000..455e51b93c50f8bf3e84d11f373be7b1 +import java.util.List; +import java.util.function.Predicate; + -+public class RedstoneTracker { ++public final class RedstoneTracker { + + private static final int DEPTH_LIMIT = 512; + @@ -353,7 +353,7 @@ index cd095a5a921d1c1dd7cbc2adc2f3111801d23a5c..20ef1c7c94e4159bc1d177b2aaa9c773 this.isIteratingOverLevels = false; // Paper diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1bcd2400e4a1319e844592c9f313f4e396e4d97e..890ef46187e555a49f216620a55dc6ac40f6530f 100644 +index c34d484661588d31d3ff59c5621c80c8c6b2c4ed..8407bad739f4b314a5e31d47629da99880ec061c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -291,6 +291,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0039-Configure-cannon-physics-by-version.patch b/patches/server/0039-Configure-cannon-physics-by-version.patch index 9c816f2..a809d5b 100644 --- a/patches/server/0039-Configure-cannon-physics-by-version.patch +++ b/patches/server/0039-Configure-cannon-physics-by-version.patch @@ -35,10 +35,10 @@ index 04305ed8e75c5e83d08392c0f7f431cb77ac272e..9132adee72a2ae9c1c069a4f385c2b8d if (xSmaller && z != 0.0) { z = performCollisionsZ(axisalignedbb, z, potentialCollisions); diff --git a/src/main/java/me/samsuik/sakura/explosion/SakuraExplosion.java b/src/main/java/me/samsuik/sakura/explosion/SakuraExplosion.java -index 93c7be878632296683a794235455013c33bec9e7..c201c7e558205e3ca27db9b1f1486125996aee4f 100644 +index 21e620a23ad5ba889760fe6234fe2c245f1d73a8..d2d90b89c1c476b61ef0534e981e0932da1613fa 100644 --- a/src/main/java/me/samsuik/sakura/explosion/SakuraExplosion.java +++ b/src/main/java/me/samsuik/sakura/explosion/SakuraExplosion.java -@@ -141,7 +141,7 @@ public class SakuraExplosion extends Explosion { +@@ -141,7 +141,7 @@ public final class SakuraExplosion extends Explosion { // update explosion position x = source.getX(); @@ -47,7 +47,7 @@ index 93c7be878632296683a794235455013c33bec9e7..c201c7e558205e3ca27db9b1f1486125 z = source.getZ(); } -@@ -232,10 +232,17 @@ public class SakuraExplosion extends Explosion { +@@ -232,10 +232,17 @@ public final class SakuraExplosion extends Explosion { if (distanceFromBottom > 1.0) continue; double x = entity.getX() - pos.x; @@ -66,7 +66,7 @@ index 93c7be878632296683a794235455013c33bec9e7..c201c7e558205e3ca27db9b1f1486125 if (distance == 0.0D) continue; x /= distance; -@@ -280,10 +287,17 @@ public class SakuraExplosion extends Explosion { +@@ -280,10 +287,17 @@ public final class SakuraExplosion extends Explosion { if (distanceFromBottom <= 1.0) { double x = entity.getX() - pos.x; @@ -86,7 +86,7 @@ index 93c7be878632296683a794235455013c33bec9e7..c201c7e558205e3ca27db9b1f1486125 x /= distance; y /= distance; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0c9324423b8caefcc8c6fa9b7c27c819ba24f208..e2fdb43a69944819152363f91f6fabee0443dbf6 100644 +index 78815988e33a13c2fa73d7b77d36e032c19f8076..e49860d217b7848e9bbca45a553908df29a27f69 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -363,7 +363,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -105,7 +105,7 @@ index 0c9324423b8caefcc8c6fa9b7c27c819ba24f208..e2fdb43a69944819152363f91f6fabee + // Sakura start - physics version + protected me.samsuik.sakura.physics.PhysicsVersion physics = me.samsuik.sakura.physics.PhysicsVersion.LATEST; + -+ public me.samsuik.sakura.physics.PhysicsVersion physics() { ++ public final me.samsuik.sakura.physics.PhysicsVersion physics() { + return this.physics; + } + // Sakura end @@ -515,7 +515,7 @@ index 5455f99e88672c2163502616f9e820af46657062..e0ea2117efa3bb87e398b970a168840c d8 /= d11; d9 /= d11; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 890ef46187e555a49f216620a55dc6ac40f6530f..0ecbccd8a6e2d50f0ad61b6e86300009f122e737 100644 +index 8407bad739f4b314a5e31d47629da99880ec061c..fd377b727a9f20556cb16d29bb1be445d21fd9a4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -325,6 +325,205 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -953,7 +953,7 @@ index 6091e3c3adbcc92c9ca438c301a99f646e3cb549..df6e859688c5b45a541b11f204639547 } diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -index 26e11fbe0ddeed23d286e83adfa7d2a5e9cf88c8..21ede03d8e630169119d7432227cfba40461760f 100644 +index 26e11fbe0ddeed23d286e83adfa7d2a5e9cf88c8..e4fc8772157bd40b08bc9b1631898ad2bb2a5faa 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java @@ -159,6 +159,13 @@ public class PistonMovingBlockEntity extends BlockEntity { @@ -1016,7 +1016,7 @@ index 26e11fbe0ddeed23d286e83adfa7d2a5e9cf88c8..21ede03d8e630169119d7432227cfba4 + return null; + } + -+ public VoxelShape getCollisionShapeFromProgress(Level level, BlockPos pos) { ++ public final VoxelShape getCollisionShapeFromProgress(Level level, BlockPos pos) { + float progress = this.getProgress(0.0f); + + if (this.extending) { diff --git a/patches/server/0045-Treat-all-collidable-blocks-as-full-while-moving-fas.patch b/patches/server/0045-Treat-all-collidable-blocks-as-full-while-moving-fas.patch index d90ca71..332b207 100644 --- a/patches/server/0045-Treat-all-collidable-blocks-as-full-while-moving-fas.patch +++ b/patches/server/0045-Treat-all-collidable-blocks-as-full-while-moving-fas.patch @@ -39,7 +39,7 @@ index 9132adee72a2ae9c1c069a4f385c2b8d101484ba..aee02670c421dc238085871021a27266 if (predicate != null && !predicate.test(blockData, mutablePos)) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 28e568f3333cf1000a9bd2a39b89a569695e4238..8940b93d3a3bb6b5ee03d64b26d606114d6af64a 100644 +index e49860d217b7848e9bbca45a553908df29a27f69..cc9c4aaf6aaf35b5f4c4da926b8c9baa9f6426db 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -685,6 +685,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -47,7 +47,7 @@ index 28e568f3333cf1000a9bd2a39b89a569695e4238..8940b93d3a3bb6b5ee03d64b26d60611 } // Sakura end + // Sakura start - treat all collidable blocks as full -+ public boolean isTreatingBlocksAsFull() { ++ public final boolean isTreatingBlocksAsFull() { + if (level.sakuraConfig().cannons.treatAllBlocksAsFullWhenMoving && (this.isPrimedTNT || this.isFallingBlock)) { + this.syncDeltaMovement(); + double horizontalMovementSqr = this.movementX*this.movementX + this.movementZ*this.movementZ;