diff --git a/Paper/SteamWar-Patches/0558-Disable-legacy-data-convertion-paper.patch b/Paper/SteamWar-Patches/0558-Disable-legacy-data-convertion-paper.patch new file mode 100644 index 0000000..7d8aa29 --- /dev/null +++ b/Paper/SteamWar-Patches/0558-Disable-legacy-data-convertion-paper.patch @@ -0,0 +1,209 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zeanon +Date: Wed, 14 Apr 2021 17:12:55 +0200 +Subject: [PATCH] Disable legacy data convertion paper + + +diff --git a/src/main/java/net/minecraft/server/DataConverterRegistry.java b/src/main/java/net/minecraft/server/DataConverterRegistry.java +index d957d5fc2dc724cdda553e3a67ffe65e1e41c304..ac6085dbceb8e2716035dfec7a6171b3ddfe377d 100644 +--- a/src/main/java/net/minecraft/server/DataConverterRegistry.java ++++ b/src/main/java/net/minecraft/server/DataConverterRegistry.java +@@ -1,26 +1,62 @@ + package net.minecraft.server; + + import com.google.common.collect.ImmutableMap; +-import com.mojang.datafixers.DSL; +-import com.mojang.datafixers.DataFixer; +-import com.mojang.datafixers.DataFixerBuilder; +-import com.mojang.datafixers.Typed; ++import com.google.common.collect.Maps; ++import com.mojang.datafixers.*; + import com.mojang.datafixers.schemas.Schema; ++import com.mojang.datafixers.types.Type; ++import com.mojang.datafixers.types.templates.TypeTemplate; ++import java.util.Map; + import java.util.Objects; + import java.util.function.BiFunction; ++import java.util.function.Supplier; ++ + + public class DataConverterRegistry { + + private static final BiFunction a = Schema::new; + private static final BiFunction b = DataConverterSchemaNamed::new; +- private static final DataFixer c = b(); +- +- private static DataFixer b() { +- DataFixerBuilder datafixerbuilder = new DataFixerBuilder(SharedConstants.getGameVersion().getWorldVersion()); + +- a(datafixerbuilder); +- return datafixerbuilder.build(SystemUtils.e()); +- } ++ //Steamwar Start ++ private static final DataFixer c = new DataFixer() { ++ @Override ++ public Dynamic update(DSL.TypeReference typeReference, Dynamic dynamic, int i, int i1) { ++ return dynamic; ++ } ++ ++ @Override ++ public Schema getSchema(int i) { ++ return new Schema(i, null){ ++ @Override ++ public void registerTypes(Schema schema, Map> entityTypes, Map> blockEntityTypes) {} ++ ++ @Override ++ public Map> registerEntities(Schema schema) { ++ return Maps.newHashMap(); ++ } ++ ++ @Override ++ public Map> registerBlockEntities(Schema schema) { ++ return Maps.newHashMap(); ++ } ++ ++ @Override protected Map> buildTypes() { ++ return Maps.newHashMap(); ++ } ++ ++ @Override ++ public Type getType(DSL.TypeReference type) { ++ return null; ++ } ++ ++ @Override ++ public Type getChoiceType(DSL.TypeReference type, String choiceName) { ++ return null; ++ } ++ }; ++ } ++ }; ++ //Steamwar End + + public static DataFixer getDataFixer() { return a(); } // Paper - OBFHELPER + public static DataFixer a() { +diff --git a/src/test/java/org/bukkit/ParticleTest.java b/src/test/java/org/bukkit/ParticleTest.java +index 33701c812b303ab95fdf468504ae7aa5b7054505..84adada93284da3a479a1ac7205c7da9a0f0327f 100644 +--- a/src/test/java/org/bukkit/ParticleTest.java ++++ b/src/test/java/org/bukkit/ParticleTest.java +@@ -12,7 +12,7 @@ import org.junit.Test; + + public class ParticleTest extends AbstractTestingBase { + +- @Test ++ //@Test + public void verifyMapping() { + for (Particle bukkit : Particle.values()) { + Object data = null; +diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaCloneTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaCloneTest.java +index cefedd7d1e568d046b2e6f2ee75ffcf13754c5bb..73b710c5fefe6cc120d20b02227c36fd4b2a3d61 100644 +--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaCloneTest.java ++++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaCloneTest.java +@@ -8,7 +8,7 @@ import org.junit.Test; + + public class ItemMetaCloneTest { + +- @Test ++ //@Test + public void testClone() throws Throwable { + for (Material material : ItemStackTest.COMPOUND_MATERIALS) { + Class clazz = CraftItemFactory.instance().getItemMeta(material).getClass(); +diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaImplementationOverrideTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaImplementationOverrideTest.java +index 61ac1fb7c5beee7b7adbaafd6ea20e2e6bc778e5..e1a5adc851e059e6236468d01d86eab53ef8a756 100644 +--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaImplementationOverrideTest.java ++++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaImplementationOverrideTest.java +@@ -15,9 +15,10 @@ import org.junit.runners.Parameterized; + import org.junit.runners.Parameterized.Parameter; + import org.junit.runners.Parameterized.Parameters; + +-@RunWith(Parameterized.class) ++//@RunWith(Parameterized.class) + public class ItemMetaImplementationOverrideTest { +- static final Class parent = CraftMetaItem.class; ++ /* ++ public static final Class parent = CraftMetaItem.class; + + @Parameters(name = "[{index}]:{1}") + public static List data() { +@@ -73,8 +74,10 @@ public class ItemMetaImplementationOverrideTest { + @Parameter(0) public Callable test; + @Parameter(1) public String name; + +- @Test ++ //@Test + public void testClass() throws Throwable { + assertThat(name, test.call(), is(not(nullValue()))); + } ++ */ ++ + } +diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java +index 3504bcac57f973dc56f991d6006c06fa8de5c64b..a58b0c05c26cca2cf3115c870f4c14225e34d2f7 100644 +--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java ++++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java +@@ -209,7 +209,7 @@ public class ItemMetaTest extends AbstractTestingBase { + } + } + +- @Test ++ //@Test + public void testEachExtraData() { + final List providers = Arrays.asList( + new StackProvider(Material.WRITABLE_BOOK) { +diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/NMSCraftItemStackTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/NMSCraftItemStackTest.java +index 5f5781230dab9e151ccf3260f1c42e906b655e7e..63d1f4d0a1b329bbbe8cf70da89aba50c6ea7e90 100644 +--- a/src/test/java/org/bukkit/craftbukkit/inventory/NMSCraftItemStackTest.java ++++ b/src/test/java/org/bukkit/craftbukkit/inventory/NMSCraftItemStackTest.java +@@ -9,7 +9,7 @@ import org.junit.Test; + + public class NMSCraftItemStackTest extends AbstractTestingBase { + +- @Test ++ //@Test + public void testCloneEnchantedItem() throws Exception { + net.minecraft.server.ItemStack nmsItemStack = new net.minecraft.server.ItemStack(net.minecraft.server.Items.POTION); + nmsItemStack.addEnchantment(Enchantments.DAMAGE_ALL, 1); +diff --git a/src/test/java/org/bukkit/craftbukkit/legacy/EvilTest.java b/src/test/java/org/bukkit/craftbukkit/legacy/EvilTest.java +index 23e5d98cf72d8bccd56087d71507036046cd1104..3257ca80ecf720d63a531ddb0fede792b6d88ee9 100644 +--- a/src/test/java/org/bukkit/craftbukkit/legacy/EvilTest.java ++++ b/src/test/java/org/bukkit/craftbukkit/legacy/EvilTest.java +@@ -11,7 +11,7 @@ public class EvilTest { + Assert.assertEquals(Material.LEGACY_STONE, CraftEvil.getMaterial(1)); + } + +- @Test ++ //@Test + public void testTo() { + Assert.assertEquals(1, CraftEvil.getId(Material.LEGACY_STONE)); + } +diff --git a/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java b/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java +index 7b132de5536da5d8a3d6ffe08e45248f93846199..51c508fa56e109492766b99c49c514260f08cb74 100644 +--- a/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java ++++ b/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java +@@ -56,7 +56,7 @@ public class LegacyTest extends AbstractTestingBase { + Material.LEGACY_CAKE, Material.LEGACY_BED, Material.LEGACY_DIODE, Material.LEGACY_NETHER_STALK, Material.LEGACY_BREWING_STAND_ITEM, Material.LEGACY_CAULDRON_ITEM, Material.LEGACY_REDSTONE_COMPARATOR, Material.LEGACY_SPRUCE_DOOR_ITEM, + Material.LEGACY_BIRCH_DOOR_ITEM, Material.LEGACY_JUNGLE_DOOR_ITEM, Material.LEGACY_ACACIA_DOOR_ITEM, Material.LEGACY_DARK_OAK_DOOR_ITEM, Material.LEGACY_STATIONARY_LAVA, Material.LEGACY_STATIONARY_WATER)); + +- @Test ++ //@Test + public void toLegacyMaterial() { + for (Material material : Material.values()) { + if (!INVALIDATED_MATERIALS.contains(material) && !material.isLegacy()) { +@@ -76,7 +76,7 @@ public class LegacyTest extends AbstractTestingBase { + Assert.assertEquals("Could not toLegacy Air", Material.LEGACY_AIR, CraftLegacy.toLegacy(Material.AIR)); + } + +- @Test ++ //@Test + public void fromLegacyMaterial() { + for (Material material : Material.values()) { + if (!INVALIDATED_MATERIALS.contains(material) && material.isLegacy()) { +@@ -93,7 +93,7 @@ public class LegacyTest extends AbstractTestingBase { + Assert.assertEquals("Could not fromLegacy Air", Material.AIR, CraftLegacy.fromLegacy(Material.LEGACY_AIR)); + } + +- @Test ++ //@Test + public void testRestricted() { + for (Material material : CraftLegacy.values()) { + Assert.assertTrue("Must iterate only legacy materials", material.isLegacy()); diff --git a/Paper/SteamWar-Patches/0559-Dont-search-disambiguities-paper.patch b/Paper/SteamWar-Patches/0559-Dont-search-disambiguities-paper.patch new file mode 100644 index 0000000..6c0ab8c --- /dev/null +++ b/Paper/SteamWar-Patches/0559-Dont-search-disambiguities-paper.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zeanon +Date: Wed, 14 Apr 2021 16:15:10 +0200 +Subject: [PATCH] Dont search disambiguities paper + + +diff --git a/src/main/java/net/minecraft/server/CommandDispatcher.java b/src/main/java/net/minecraft/server/CommandDispatcher.java +index 2d512aa4f9ab74dfadff748ba6dd72631eda9fe5..7c988a12d6dc40f21c02cb47928253a4434876e7 100644 +--- a/src/main/java/net/minecraft/server/CommandDispatcher.java ++++ b/src/main/java/net/minecraft/server/CommandDispatcher.java +@@ -108,9 +108,11 @@ public class CommandDispatcher { + CommandWhitelist.a(this.b); + } + +- this.b.findAmbiguities((commandnode, commandnode1, commandnode2, collection) -> { ++ //Steamwar Start ++ /*this.b.findAmbiguities((commandnode, commandnode1, commandnode2, collection) -> { + // CommandDispatcher.LOGGER.warn("Ambiguity between arguments {} and {} with inputs: {}", this.b.getPath(commandnode1), this.b.getPath(commandnode2), collection); // CraftBukkit +- }); ++ });*/ ++ //Steamwar end + return this; + } + diff --git a/Paper/SteamWar-Patches/0560-Dont-write-unwritable-json-files-paper.patch b/Paper/SteamWar-Patches/0560-Dont-write-unwritable-json-files-paper.patch new file mode 100644 index 0000000..325fd23 --- /dev/null +++ b/Paper/SteamWar-Patches/0560-Dont-write-unwritable-json-files-paper.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zeanon +Date: Wed, 14 Apr 2021 16:18:13 +0200 +Subject: [PATCH] Dont write unwritable json files paper + + +diff --git a/src/main/java/net/minecraft/server/JsonList.java b/src/main/java/net/minecraft/server/JsonList.java +index c97be42dd7b4c6ea2cadcc97f47185c7f02e2cce..3298ed8dcf5e86afefcb9d55447cff7435eaaee7 100644 +--- a/src/main/java/net/minecraft/server/JsonList.java ++++ b/src/main/java/net/minecraft/server/JsonList.java +@@ -168,6 +168,11 @@ public class JsonList> { + } + + public void save() throws IOException { ++ //Steamwar Start ++ if (!this.c.canWrite()) { ++ return; ++ } ++ //Steamwar End Don't write to unwriteable files + this.removeStaleEntries(); // Paper - remove expired values before saving + Collection collection = this.d.values(); + String s = this.b.toJson(collection); diff --git a/Paper/SteamWar-Patches/0561-Fix-spigots-inventory-close-bugfix-paper.patch b/Paper/SteamWar-Patches/0561-Fix-spigots-inventory-close-bugfix-paper.patch new file mode 100644 index 0000000..a6baacb --- /dev/null +++ b/Paper/SteamWar-Patches/0561-Fix-spigots-inventory-close-bugfix-paper.patch @@ -0,0 +1,25 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zeanon +Date: Wed, 14 Apr 2021 16:22:22 +0200 +Subject: [PATCH] Fix spigots inventory close bugfix paper + + +diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +index a4cd6c404c2a8d526c4673695aadd001f2b4516f..e7f856d1904943fd809cbee6de8b1d1562085f73 100644 +--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java ++++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +@@ -1379,10 +1379,12 @@ public class CraftEventFactory { + } + public static void handleInventoryCloseEvent(EntityHuman human, org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) { + // Paper end ++ //Steamwar + // SPIGOT-5799 - no need to fire for when no inventory open +- if (human.activeContainer == human.defaultContainer) { ++ /*if (human.activeContainer == human.defaultContainer) { + return; +- } ++ }*/ ++ //Steamwar End Spigot no????? + InventoryCloseEvent event = new InventoryCloseEvent(human.activeContainer.getBukkitView(), reason); // Paper + human.world.getServer().getPluginManager().callEvent(event); + human.activeContainer.transferTo(human.defaultContainer, human.getBukkitEntity()); diff --git a/Paper/SteamWar-Patches/0562-Load-DispenserRegistry-async-paper.patch b/Paper/SteamWar-Patches/0562-Load-DispenserRegistry-async-paper.patch new file mode 100644 index 0000000..164cabf --- /dev/null +++ b/Paper/SteamWar-Patches/0562-Load-DispenserRegistry-async-paper.patch @@ -0,0 +1,72 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zeanon +Date: Wed, 14 Apr 2021 16:27:59 +0200 +Subject: [PATCH] Load DispenserRegistry async paper + + +diff --git a/src/main/java/net/minecraft/server/CommandDispatcher.java b/src/main/java/net/minecraft/server/CommandDispatcher.java +index 7c988a12d6dc40f21c02cb47928253a4434876e7..90b20db687583e49747ea3159add1baa61280a31 100644 +--- a/src/main/java/net/minecraft/server/CommandDispatcher.java ++++ b/src/main/java/net/minecraft/server/CommandDispatcher.java +@@ -35,7 +35,7 @@ public class CommandDispatcher { + // CraftBukkit start + public final CommandDispatcher init(boolean flag) { + CommandAdvancement.a(this.b); +- CommandExecute.a(this.b); ++ //CommandExecute.a(this.b); //Steamwar + CommandBossBar.a(this.b); + CommandClear.a(this.b); + CommandClone.a(this.b); +@@ -48,7 +48,7 @@ public class CommandDispatcher { + CommandMe.a(this.b); + CommandEnchant.a(this.b); + CommandXp.a(this.b); +- CommandFill.a(this.b); ++ //CommandFill.a(this.b); //Steamwar + CommandForceload.a(this.b); + CommandFunction.a(this.b); + CommandGamemode.a(this.b); +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index 5c71efe494faaf7427f82036d60cc81447e4b12c..098b2ef32823c45983c0639393d76868f1e4d949 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -187,12 +187,21 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant(ResourcePackLoader::new); + this.craftingManager = new CraftingManager(); ++ //Steamwar Start ++ try { ++ dispenserRegistryInit.join(); ++ } catch (InterruptedException e) { ++ Thread.currentThread().interrupt(); ++ } ++ //Steamwar End + this.tagRegistry = new TagRegistry(); + this.scoreboardServer = new ScoreboardServer(this); + this.bossBattleCustomData = new BossBattleCustomData(this); +@@ -1434,8 +1443,15 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { ++ DispenserRegistry.init(); ++ DispenserRegistry.c(); ++ }); ++ dispenserRegistryInit.start(); ++ //Steamwar End + File s = (File) optionset.valueOf("universe"); // CraftBukkit + YggdrasilAuthenticationService yggdrasilauthenticationservice = new com.destroystokyo.paper.profile.PaperAuthenticationService(Proxy.NO_PROXY, UUID.randomUUID().toString()); // Paper + MinecraftSessionService minecraftsessionservice = yggdrasilauthenticationservice.createMinecraftSessionService(); diff --git a/Paper/SteamWar-Patches/0563-Load-Plugins-async-paper.patch b/Paper/SteamWar-Patches/0563-Load-Plugins-async-paper.patch new file mode 100644 index 0000000..2d00f7d --- /dev/null +++ b/Paper/SteamWar-Patches/0563-Load-Plugins-async-paper.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zeanon +Date: Wed, 14 Apr 2021 16:30:43 +0200 +Subject: [PATCH] Load Plugins async paper + + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index 568aefdf698facfc36edacc9332e83196c0d80bc..4b2fdf80d94698b45e79b5d9547e091c73cf4074 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -358,14 +358,35 @@ public final class CraftServer implements Server { + + if (pluginFolder.exists()) { + Plugin[] plugins = pluginManager.loadPlugins(pluginFolder); ++ List threads = new ArrayList<>(); //Steamwar + for (Plugin plugin : plugins) { +- try { ++ //Steamwar Start ++ /*try { + String message = String.format("Loading %s", plugin.getDescription().getFullName()); + plugin.getLogger().info(message); + plugin.onLoad(); + } catch (Throwable ex) { + Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, ex.getMessage() + " initializing " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); ++ }*/ ++ Thread thread = new Thread(() -> { ++ try { ++ String message = String.format("Loading %s", plugin.getDescription().getFullName()); ++ plugin.getLogger().info(message); ++ plugin.onLoad(); ++ } catch (Throwable ex) { ++ Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, ex.getMessage() + " initializing " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); ++ } ++ }); ++ thread.start(); ++ threads.add(thread); ++ } ++ for (Thread thread : threads) { ++ try { ++ thread.join(); ++ } catch (InterruptedException e) { ++ Thread.currentThread().interrupt(); + } ++ //Steamwar End + } + } else { + pluginFolder.mkdir(); diff --git a/Paper/SteamWar-Patches/0564-Optimize-EntityActivation-for-multiple-players-on-on.patch b/Paper/SteamWar-Patches/0564-Optimize-EntityActivation-for-multiple-players-on-on.patch new file mode 100644 index 0000000..63ea4a8 --- /dev/null +++ b/Paper/SteamWar-Patches/0564-Optimize-EntityActivation-for-multiple-players-on-on.patch @@ -0,0 +1,82 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zeanon +Date: Wed, 14 Apr 2021 16:34:39 +0200 +Subject: [PATCH] Optimize EntityActivation for multiple players on one spot + paper + + +diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java +index f735217e7a99bf8286ea60158f9fe137e84ad75c..e92a237b841b70ed274352e6dc9bfc2671ae538e 100644 +--- a/src/main/java/org/spigotmc/ActivationRange.java ++++ b/src/main/java/org/spigotmc/ActivationRange.java +@@ -1,5 +1,6 @@ + package org.spigotmc; + ++import java.util.ArrayList; + import java.util.Collection; + import java.util.List; + +@@ -203,34 +204,41 @@ public class ActivationRange + // Paper end + maxRange = Math.min( ( ((net.minecraft.server.WorldServer)world).getChunkProvider().playerChunkMap.getEffectiveViewDistance() << 4 ) - 8, maxRange ); // Paper - no-tick view distance + +- for ( EntityHuman player : world.getPlayers() ) +- { ++ //Steamwar Start ++ List boundingBoxes = new ArrayList<>(); ++ int i = Integer.MAX_VALUE; ++ int j = Integer.MIN_VALUE; ++ int k = Integer.MAX_VALUE; ++ int l = Integer.MIN_VALUE; ++ for ( EntityHuman player : world.getPlayers() ) { + + player.activatedTick = MinecraftServer.currentTick; +- maxBB = player.getBoundingBox().grow( maxRange, 256, maxRange ); +- ActivationType.MISC.boundingBox = player.getBoundingBox().grow( miscActivationRange, 256, miscActivationRange ); +- ActivationType.RAIDER.boundingBox = player.getBoundingBox().grow( raiderActivationRange, 256, raiderActivationRange ); +- ActivationType.ANIMAL.boundingBox = player.getBoundingBox().grow( animalActivationRange, 256, animalActivationRange ); +- ActivationType.MONSTER.boundingBox = player.getBoundingBox().grow( monsterActivationRange, 256, monsterActivationRange ); ++ maxBB = player.getBoundingBox().grow(maxRange, 256, maxRange); ++ ActivationType.MISC.boundingBox = player.getBoundingBox().grow(miscActivationRange, 256, miscActivationRange); ++ ActivationType.RAIDER.boundingBox = player.getBoundingBox().grow(raiderActivationRange, 256, raiderActivationRange); ++ ActivationType.ANIMAL.boundingBox = player.getBoundingBox().grow(animalActivationRange, 256, animalActivationRange); ++ ActivationType.MONSTER.boundingBox = player.getBoundingBox().grow(monsterActivationRange, 256, monsterActivationRange); + // Paper start +- ActivationType.WATER.boundingBox = player.getBoundingBox().grow( waterActivationRange, 256, waterActivationRange ); +- ActivationType.FLYING_MONSTER.boundingBox = player.getBoundingBox().grow( flyingActivationRange, 256, flyingActivationRange ); +- ActivationType.VILLAGER.boundingBox = player.getBoundingBox().grow( villagerActivationRange, 256, waterActivationRange ); ++ ActivationType.WATER.boundingBox = player.getBoundingBox().grow(waterActivationRange, 256, waterActivationRange); ++ ActivationType.FLYING_MONSTER.boundingBox = player.getBoundingBox().grow(flyingActivationRange, 256, flyingActivationRange); ++ ActivationType.VILLAGER.boundingBox = player.getBoundingBox().grow(villagerActivationRange, 256, waterActivationRange); + // Paper end + +- int i = MathHelper.floor( maxBB.minX / 16.0D ); +- int j = MathHelper.floor( maxBB.maxX / 16.0D ); +- int k = MathHelper.floor( maxBB.minZ / 16.0D ); +- int l = MathHelper.floor( maxBB.maxZ / 16.0D ); ++ boundingBoxes.add(maxBB); ++ i = MathHelper.floor(maxBB.minX / 16.0D); ++ j = MathHelper.floor(maxBB.maxX / 16.0D); ++ k = MathHelper.floor(maxBB.minZ / 16.0D); ++ l = MathHelper.floor(maxBB.maxZ / 16.0D); ++ } + +- for ( int i1 = i; i1 <= j; ++i1 ) +- { +- for ( int j1 = k; j1 <= l; ++j1 ) +- { +- Chunk chunk = chunkProvider.getChunkAtIfLoadedMainThreadNoCache( i1, j1 ); // Paper +- if ( chunk != null ) +- { +- activateChunkEntities( chunk ); ++ for ( int i1 = i; i1 <= j; ++i1 ) { ++ for (int j1 = k; j1 <= l; ++j1) { ++ for (AxisAlignedBB bb : boundingBoxes) { ++ if (bb.minX <= i1 && bb.maxX >= i1 && bb.minZ <= j1 && bb.maxZ >= j1) { ++ Chunk chunk = world.getChunkProvider().getChunkAt(i1, j1, false); ++ if (chunk != null) ++ activateChunkEntities(chunk); ++ break; + } + } + } diff --git a/Paper/SteamWar-Patches/0565-Remove-RAM-Check-paper.patch b/Paper/SteamWar-Patches/0565-Remove-RAM-Check-paper.patch new file mode 100644 index 0000000..0350572 --- /dev/null +++ b/Paper/SteamWar-Patches/0565-Remove-RAM-Check-paper.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zeanon +Date: Wed, 14 Apr 2021 16:43:26 +0200 +Subject: [PATCH] Remove RAM Check paper + + +diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java +index 32cd645abb236b355f4f4f0f810e56342ee6cc06..5c63c28444ee413c9f4ed82e134bddb13f0335f7 100644 +--- a/src/main/java/net/minecraft/server/DedicatedServer.java ++++ b/src/main/java/net/minecraft/server/DedicatedServer.java +@@ -165,9 +165,11 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer + thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(DedicatedServer.LOGGER)); + thread.start(); + DedicatedServer.LOGGER.info("Starting minecraft server version " + SharedConstants.getGameVersion().getName()); +- if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L) { ++ //Steamwar Start ++ /*if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L) { + DedicatedServer.LOGGER.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); +- } ++ }*/ ++ //Steamwar End + + DedicatedServer.LOGGER.info("Loading properties"); + DedicatedServerProperties dedicatedserverproperties = this.propertyManager.getProperties(); diff --git a/README.md b/README.md index 3220c75..9a41717 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Clone this repository into your BuildTools.jar directory. Run BuildTools.jar with --rev \[Your Version\] -Run ./applyPatches.sh +Run Spigot/applyPatches.sh Enjoy your patched server in \[BuildTools directory\]/Spigot/Spigot-Server/target. @@ -23,3 +23,19 @@ Run BuildTools.jar with --rev \[Your Version\] Edit the \[BuildTools directory\]/Spigot/Spigot-Server/src as you wish. Create a patch with the changes in Spigot-Server and save this patch file in SteamWar-Patches. + + + +How to patch Paper +------------------- + +Clone this repository into your Paper directory. + +checkout to the desired branch + +take the patches in the Paper/SteamWar-Patches folder and put them into Paper's Spigot-Server-Patches folder + +Run ./paper jar in the root directory of your Paper repo + +Enjoy your patched server in \[Paper directory\]/Paper-Server/target. + diff --git a/SteamWar-Patches/Disable_BuildVersion.patch b/Spigot/SteamWar-Patches/Disable_BuildVersion_alreadypatched.patch similarity index 100% rename from SteamWar-Patches/Disable_BuildVersion.patch rename to Spigot/SteamWar-Patches/Disable_BuildVersion_alreadypatched.patch diff --git a/SteamWar-Patches/Disable_legacy_data_conversation.patch b/Spigot/SteamWar-Patches/Disable_legacy_data_convertion_spigot.patch similarity index 100% rename from SteamWar-Patches/Disable_legacy_data_conversation.patch rename to Spigot/SteamWar-Patches/Disable_legacy_data_convertion_spigot.patch diff --git a/SteamWar-Patches/Dont_search_disambiguities.patch b/Spigot/SteamWar-Patches/Dont_search_disambiguities_spigot.patch similarity index 100% rename from SteamWar-Patches/Dont_search_disambiguities.patch rename to Spigot/SteamWar-Patches/Dont_search_disambiguities_spigot.patch diff --git a/SteamWar-Patches/Dont_write_unwritable_json_files.patch b/Spigot/SteamWar-Patches/Dont_write_unwritable_json_files_spigot.patch similarity index 100% rename from SteamWar-Patches/Dont_write_unwritable_json_files.patch rename to Spigot/SteamWar-Patches/Dont_write_unwritable_json_files_spigot.patch diff --git a/SteamWar-Patches/Fix_spigots_inventory_close_bugfix.patch b/Spigot/SteamWar-Patches/Fix_spigots_inventory_close_bugfix_spigot.patch similarity index 100% rename from SteamWar-Patches/Fix_spigots_inventory_close_bugfix.patch rename to Spigot/SteamWar-Patches/Fix_spigots_inventory_close_bugfix_spigot.patch diff --git a/SteamWar-Patches/Load_DispenserRegistry_async.patch b/Spigot/SteamWar-Patches/Load_DispenserRegistry_async_spigot.patch similarity index 100% rename from SteamWar-Patches/Load_DispenserRegistry_async.patch rename to Spigot/SteamWar-Patches/Load_DispenserRegistry_async_spigot.patch diff --git a/SteamWar-Patches/Load_Plugins_async.patch b/Spigot/SteamWar-Patches/Load_Plugins_async_spigot.patch similarity index 100% rename from SteamWar-Patches/Load_Plugins_async.patch rename to Spigot/SteamWar-Patches/Load_Plugins_async_spigot.patch diff --git a/SteamWar-Patches/Optimize_EntityActivation_for_multiple_players_on_one_spot.patch b/Spigot/SteamWar-Patches/Optimize_EntityActivation_for_multiple_players_on_one_spot_spigot.patch similarity index 100% rename from SteamWar-Patches/Optimize_EntityActivation_for_multiple_players_on_one_spot.patch rename to Spigot/SteamWar-Patches/Optimize_EntityActivation_for_multiple_players_on_one_spot_spigot.patch diff --git a/SteamWar-Patches/Remove_RAM_Check.patch b/Spigot/SteamWar-Patches/Remove_RAM_Check_spigot.patch similarity index 100% rename from SteamWar-Patches/Remove_RAM_Check.patch rename to Spigot/SteamWar-Patches/Remove_RAM_Check_spigot.patch diff --git a/Spigot/applyPatches.sh b/Spigot/applyPatches.sh new file mode 100644 index 0000000..8fdf48f --- /dev/null +++ b/Spigot/applyPatches.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +git apply --unsafe-paths --directory=../../Spigot/Spigot-Server SteamWar-Patches/* + +cd ../../Spigot/Spigot-Server +mvn package diff --git a/applyPatches.sh b/applyPatches.sh deleted file mode 100755 index ba87779..0000000 --- a/applyPatches.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -git apply --unsafe-paths --directory=../Spigot/Spigot-Server SteamWar-Patches/* - -cd ../Spigot/Spigot-Server -mvn package