From 321aeae8f5f10d53f1376311a6f127a1cb30a7b4 Mon Sep 17 00:00:00 2001 From: Ryuta Iwakura Date: Sun, 15 Oct 2023 13:57:31 +0900 Subject: [PATCH] Updated to Minecraft 1.20.2 --- build.gradle | 2 +- .../java/net/unknown/launchwrapper/Main.java | 24 +++++++------- .../event/BlockDispenseBeforeEvent.java | 6 ++-- .../launchwrapper/hopper/TransportType.java | 31 +++++++++++++++++++ .../mixins/MixinCraftServer.java | 2 +- .../MixinDefaultDispenseItemBehavior.java | 5 +-- .../mixins/MixinEnderChestBlock.java | 2 +- .../mixins/MixinFeatureFlags.java | 14 ++++++--- .../mixins/MixinObserverBlock.java | 2 +- .../mixins/MixinSignBlockEntity.java | 1 + .../mixins/MixinSimpleContainer.java | 2 +- 11 files changed, 64 insertions(+), 27 deletions(-) diff --git a/build.gradle b/build.gradle index 032236a..eaa3620 100644 --- a/build.gradle +++ b/build.gradle @@ -44,7 +44,7 @@ repositories { } dependencies { - paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:1.20.1-R0.1-SNAPSHOT") + paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:1.20.2-R0.1-SNAPSHOT") implementation "net.sf.jopt-simple:jopt-simple:5.0.4" implementation 'org.ow2.asm:asm:9.3' implementation 'org.ow2.asm:asm-commons:9.3' diff --git a/src/main/java/net/unknown/launchwrapper/Main.java b/src/main/java/net/unknown/launchwrapper/Main.java index 9f4f381..8650a22 100644 --- a/src/main/java/net/unknown/launchwrapper/Main.java +++ b/src/main/java/net/unknown/launchwrapper/Main.java @@ -41,23 +41,23 @@ import java.util.concurrent.TimeUnit; public class Main { - public static boolean FORCE_ALLOW_BUNDLE_FEATURES = System.getProperty("UnknownNetworkMagic") != null && System.getProperty("UnknownNetworkMagic").equals("bundle"); + public static boolean FORCE_ALLOW_BUNDLE_FEATURES = System.getProperty("UnknownNetworkMagic") != null && System.getProperty("UnknownNetworkMagic").contains("bundle"); + public static boolean FORCE_ALLOW_TRADE_REBALANCE_FEATURES = System.getProperty("UnknownNetworkMagic") != null && System.getProperty("UnknownNetworkMagic").contains("trade-rebalance"); private static final String FILE_SEPARATOR = System.getProperty("file.separator"); public static void main(String[] args) throws IOException, InterruptedException { - if (FORCE_ALLOW_BUNDLE_FEATURES) { - System.out.println(""" - - - Unknown Network Bootstrap - Hey! You're activated "bundle" feature, but this is contains bugs or crashes. Be careful! - Server will start after 3 seconds... - - - """); + if (FORCE_ALLOW_BUNDLE_FEATURES || FORCE_ALLOW_TRADE_REBALANCE_FEATURES) { + String activatedFeatureFlags = String.join(",", (FORCE_ALLOW_BUNDLE_FEATURES ? "bundle" : ""), (FORCE_ALLOW_TRADE_REBALANCE_FEATURES ? "trade_rebalance" : "")); + System.out.println("\n" + + "\n" + + " Unknown Network Bootstrap\n" + + "Hey! You're activated \"" + activatedFeatureFlags + "\" feature, but this is contains bugs or crashes. Be careful!\n" + + "Server will start after 3 seconds...\n" + + "\n" + + "\n"); Thread.sleep(TimeUnit.SECONDS.toMillis(3)); } - Agent.addJar(new File("./versions/1.20.1/paper-1.20.1.jar")); + Agent.addJar(new File("./versions/1.20.2/paper-1.20.2.jar")); Map toLoadLibraries = new HashMap<>(); diff --git a/src/main/java/net/unknown/launchwrapper/event/BlockDispenseBeforeEvent.java b/src/main/java/net/unknown/launchwrapper/event/BlockDispenseBeforeEvent.java index 21c5cf4..1d416e1 100644 --- a/src/main/java/net/unknown/launchwrapper/event/BlockDispenseBeforeEvent.java +++ b/src/main/java/net/unknown/launchwrapper/event/BlockDispenseBeforeEvent.java @@ -31,10 +31,10 @@ package net.unknown.launchwrapper.event; -import net.minecraft.core.BlockSource; +import net.minecraft.core.dispenser.BlockSource; import net.minecraft.world.item.ItemStack; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_20_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_20_R2.block.CraftBlock; import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; @@ -56,7 +56,7 @@ public BlockSource getBlockSource() { } public Block getBukkitBlock() { - return CraftBlock.at(this.src.getLevel(), this.src.getPos()); + return CraftBlock.at(this.src.level(), this.src.pos()); } public ItemStack getItem() { diff --git a/src/main/java/net/unknown/launchwrapper/hopper/TransportType.java b/src/main/java/net/unknown/launchwrapper/hopper/TransportType.java index 008d0cc..43ff02e 100644 --- a/src/main/java/net/unknown/launchwrapper/hopper/TransportType.java +++ b/src/main/java/net/unknown/launchwrapper/hopper/TransportType.java @@ -1,3 +1,34 @@ +/* + * Copyright (c) 2023 Unknown Network Developers and contributors. + * + * All rights reserved. + * + * NOTICE: This license is subject to change without prior notice. + * + * Redistribution and use in source and binary forms, *without modification*, + * are permitted provided that the following conditions are met: + * + * I. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * II. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * III. Neither the name of Unknown Network nor the names of its contributors may be used to + * endorse or promote products derived from this software without specific prior written permission. + * + * IV. This source code and binaries is provided by the copyright holders and contributors "AS-IS" and + * any express or implied warranties, including, but not limited to, the implied warranties of + * merchantability and fitness for a particular purpose are disclaimed. + * In not event shall the copyright owner or contributors be liable for + * any direct, indirect, incidental, special, exemplary, or consequential damages + * (including but not limited to procurement of substitute goods or services; + * loss of use data or profits; or business interruption) however caused and on any theory of liability, + * whether in contract, strict liability, or tort (including negligence or otherwise) + * arising in any way out of the use of this source code, event if advised of the possibility of such damage. + */ + package net.unknown.launchwrapper.hopper; public enum TransportType { diff --git a/src/main/java/net/unknown/launchwrapper/mixins/MixinCraftServer.java b/src/main/java/net/unknown/launchwrapper/mixins/MixinCraftServer.java index 527dc2c..e8de995 100644 --- a/src/main/java/net/unknown/launchwrapper/mixins/MixinCraftServer.java +++ b/src/main/java/net/unknown/launchwrapper/mixins/MixinCraftServer.java @@ -31,7 +31,7 @@ package net.unknown.launchwrapper.mixins; -import org.bukkit.craftbukkit.v1_20_R1.CraftServer; +import org.bukkit.craftbukkit.v1_20_R2.CraftServer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; diff --git a/src/main/java/net/unknown/launchwrapper/mixins/MixinDefaultDispenseItemBehavior.java b/src/main/java/net/unknown/launchwrapper/mixins/MixinDefaultDispenseItemBehavior.java index 955bbc0..a44cd7d 100644 --- a/src/main/java/net/unknown/launchwrapper/mixins/MixinDefaultDispenseItemBehavior.java +++ b/src/main/java/net/unknown/launchwrapper/mixins/MixinDefaultDispenseItemBehavior.java @@ -31,8 +31,8 @@ package net.unknown.launchwrapper.mixins; -import net.minecraft.core.BlockSource; import net.minecraft.core.Direction; +import net.minecraft.core.dispenser.BlockSource; import net.minecraft.core.dispenser.DefaultDispenseItemBehavior; import net.minecraft.core.dispenser.DispenseItemBehavior; import net.minecraft.world.item.ItemStack; @@ -61,11 +61,12 @@ public abstract class MixinDefaultDispenseItemBehavior implements DispenseItemBe * Add BlockDispenseBeforeEvent * * @author ryuuta0217 + * @reason Add BlockDispenseBeforeEvent */ @Overwrite @Override public final ItemStack dispense(BlockSource pointer, ItemStack stack) { - this.enumdirection = pointer.getBlockState().getValue(DispenserBlock.FACING); // Paper - cache facing direction + this.enumdirection = pointer.state().getValue(DispenserBlock.FACING); // Paper - cache facing direction // Unknown Network Start - Add BlockDispenseBeforeEvent BlockDispenseBeforeEvent event = new BlockDispenseBeforeEvent(pointer, stack); Bukkit.getPluginManager().callEvent(event); diff --git a/src/main/java/net/unknown/launchwrapper/mixins/MixinEnderChestBlock.java b/src/main/java/net/unknown/launchwrapper/mixins/MixinEnderChestBlock.java index f47a380..423dbce 100644 --- a/src/main/java/net/unknown/launchwrapper/mixins/MixinEnderChestBlock.java +++ b/src/main/java/net/unknown/launchwrapper/mixins/MixinEnderChestBlock.java @@ -60,10 +60,10 @@ public class MixinEnderChestBlock { @Shadow @Final private static Component CONTAINER_TITLE; /** - * Overwrite reason: Inject de yaruno kuso mendo-kusai * * @author ryuuta0217 * @see net.unknown.launchwrapper.mixins.MixinSimpleContainer + * @reason Inject de yaruno kuso mendo-kusai */ @Overwrite public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { diff --git a/src/main/java/net/unknown/launchwrapper/mixins/MixinFeatureFlags.java b/src/main/java/net/unknown/launchwrapper/mixins/MixinFeatureFlags.java index 1676642..7f34e9e 100644 --- a/src/main/java/net/unknown/launchwrapper/mixins/MixinFeatureFlags.java +++ b/src/main/java/net/unknown/launchwrapper/mixins/MixinFeatureFlags.java @@ -38,14 +38,18 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.*; +import java.util.ArrayList; +import java.util.List; + @Mixin(FeatureFlags.class) public class MixinFeatureFlags { @Redirect(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/flag/FeatureFlagSet;of(Lnet/minecraft/world/flag/FeatureFlag;)Lnet/minecraft/world/flag/FeatureFlagSet;")) private static FeatureFlagSet onClInit(FeatureFlag feature) { - if (Main.FORCE_ALLOW_BUNDLE_FEATURES) { - return FeatureFlagSet.of(feature, FeatureFlags.BUNDLE); - } else { - return FeatureFlagSet.of(feature); - } + List additionalFlags = new ArrayList<>() {{ + if (Main.FORCE_ALLOW_BUNDLE_FEATURES) add(FeatureFlags.BUNDLE); + if (Main.FORCE_ALLOW_TRADE_REBALANCE_FEATURES) add(FeatureFlags.TRADE_REBALANCE); + }}; + + return !additionalFlags.isEmpty() ? FeatureFlagSet.of(feature, additionalFlags.toArray(FeatureFlag[]::new)) : FeatureFlagSet.of(feature); } } diff --git a/src/main/java/net/unknown/launchwrapper/mixins/MixinObserverBlock.java b/src/main/java/net/unknown/launchwrapper/mixins/MixinObserverBlock.java index 8a27e40..b253376 100644 --- a/src/main/java/net/unknown/launchwrapper/mixins/MixinObserverBlock.java +++ b/src/main/java/net/unknown/launchwrapper/mixins/MixinObserverBlock.java @@ -44,7 +44,7 @@ import net.unknown.launchwrapper.event.ObserverBlockRemoveEvent; import net.unknown.launchwrapper.event.ObserverBlockTickEvent; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_20_R1.event.CraftEventFactory; +import org.bukkit.craftbukkit.v1_20_R2.event.CraftEventFactory; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; diff --git a/src/main/java/net/unknown/launchwrapper/mixins/MixinSignBlockEntity.java b/src/main/java/net/unknown/launchwrapper/mixins/MixinSignBlockEntity.java index 96a0848..e2e0c2e 100644 --- a/src/main/java/net/unknown/launchwrapper/mixins/MixinSignBlockEntity.java +++ b/src/main/java/net/unknown/launchwrapper/mixins/MixinSignBlockEntity.java @@ -43,6 +43,7 @@ @Mixin(SignBlockEntity.class) public class MixinSignBlockEntity { + // TODO: Add "UUID owner;" field, and add to saveAdditional() @Shadow @Nullable public UUID playerWhoMayEdit; @Overwrite diff --git a/src/main/java/net/unknown/launchwrapper/mixins/MixinSimpleContainer.java b/src/main/java/net/unknown/launchwrapper/mixins/MixinSimpleContainer.java index 6ee8f7c..cb3fe7f 100644 --- a/src/main/java/net/unknown/launchwrapper/mixins/MixinSimpleContainer.java +++ b/src/main/java/net/unknown/launchwrapper/mixins/MixinSimpleContainer.java @@ -35,7 +35,7 @@ import net.minecraft.world.SimpleContainer; import net.minecraft.world.inventory.PlayerEnderChestContainer; import net.minecraft.world.item.ItemStack; -import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer; import org.bukkit.inventory.InventoryHolder; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin;