diff --git a/README.md b/README.md index 7291cfa..6e1b1e1 100644 --- a/README.md +++ b/README.md @@ -1 +1,4 @@ -# Click Opener Mod \ No newline at end of file +# Click Opener Continued +Fork of [Click Opener Mod](https://github.com/RealMegaMinds/ClickOpener) by [Hoid2](https://github.com/hoid2). + +Created with permission from the original author. \ No newline at end of file diff --git a/build.gradle b/build.gradle index be7ce69..228269a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,10 @@ plugins { - id 'fabric-loom' version '1.5-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' } -sourceCompatibility = JavaVersion.VERSION_17 -targetCompatibility = JavaVersion.VERSION_17 +sourceCompatibility = JavaVersion.VERSION_21 +targetCompatibility = JavaVersion.VERSION_21 archivesBaseName = project.archives_base_name version = project.mod_version @@ -38,7 +38,7 @@ processResources { tasks.withType(JavaCompile).configureEach { // Minecraft 1.18 (1.18-pre2) upwards uses Java 17. - it.options.release = 17 + it.options.release = 21 } java { diff --git a/gradle.properties b/gradle.properties index 76d6f79..0ecf025 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,15 +2,15 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties - # check these on https://fabricmc.net/develop - minecraft_version=1.20.1 - yarn_mappings=1.20.1+build.10 - loader_version=0.15.7 +# check these on https://fabricmc.net/develop +minecraft_version=1.21 +yarn_mappings=1.21+build.9 +loader_version=0.15.11 # Mod Properties - mod_version = 4.0.1-alpha+1.20.1 - maven_group = megaminds.clickopener - archives_base_name = clickopener +mod_version = 1.0.0+1.21.3 +maven_group = pw.smto +archives_base_name = clickopener # Dependencies - fabric_version=0.91.1+1.20.1 +fabric_version=0.100.7+1.21 \ No newline at end of file diff --git a/src/main/java/megaminds/clickopener/ClickOpenerMod.java b/src/main/java/pw/smto/clickopener/ClickOpenerMod.java similarity index 90% rename from src/main/java/megaminds/clickopener/ClickOpenerMod.java rename to src/main/java/pw/smto/clickopener/ClickOpenerMod.java index 459130a..5c06c43 100644 --- a/src/main/java/megaminds/clickopener/ClickOpenerMod.java +++ b/src/main/java/pw/smto/clickopener/ClickOpenerMod.java @@ -1,4 +1,4 @@ -package megaminds.clickopener; +package pw.smto.clickopener; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; @@ -10,8 +10,8 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import megaminds.clickopener.api.OpenerRegistry; -import megaminds.clickopener.util.IdentifierAdapter; +import pw.smto.clickopener.api.OpenerRegistry; +import pw.smto.clickopener.util.IdentifierAdapter; //When using item on block, check item is allowed //Add option for ticking screenhandler when itemstack ticks diff --git a/src/main/java/megaminds/clickopener/Commands.java b/src/main/java/pw/smto/clickopener/Commands.java similarity index 98% rename from src/main/java/megaminds/clickopener/Commands.java rename to src/main/java/pw/smto/clickopener/Commands.java index b846a3b..cf8faa6 100644 --- a/src/main/java/megaminds/clickopener/Commands.java +++ b/src/main/java/pw/smto/clickopener/Commands.java @@ -1,4 +1,4 @@ -package megaminds.clickopener; +package pw.smto.clickopener; import com.mojang.brigadier.Command; import com.mojang.brigadier.CommandDispatcher; @@ -6,8 +6,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; -import megaminds.clickopener.api.ClickType; -import megaminds.clickopener.interfaces.ArgumentChecker; +import pw.smto.clickopener.api.ClickType; +import pw.smto.clickopener.interfaces.ArgumentChecker; import static net.minecraft.server.command.CommandManager.literal; diff --git a/src/main/java/megaminds/clickopener/Config.java b/src/main/java/pw/smto/clickopener/Config.java similarity index 97% rename from src/main/java/megaminds/clickopener/Config.java rename to src/main/java/pw/smto/clickopener/Config.java index 0440117..d8c75f7 100644 --- a/src/main/java/megaminds/clickopener/Config.java +++ b/src/main/java/pw/smto/clickopener/Config.java @@ -1,4 +1,4 @@ -package megaminds.clickopener; +package pw.smto.clickopener; import java.io.IOException; import java.nio.file.Files; @@ -10,7 +10,7 @@ import com.google.gson.JsonIOException; import com.google.gson.JsonParseException; -import megaminds.clickopener.api.ClickType; +import pw.smto.clickopener.api.ClickType; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.block.Block; import net.minecraft.item.BlockItem; @@ -188,9 +188,9 @@ public void fill(Config config) { for (var s : whitelist) { var arr = s.split("#",2); if (arr.length == 1) { - config.itemList.add(new Identifier(s)); + config.itemList.add(Identifier.of(s)); } else if (arr.length == 2) { - var id = new Identifier(arr[1]); + var id = Identifier.of(arr[1]); if (!arr[0].equals("item")) { config.blockTagsList.add(TagKey.of(RegistryKeys.BLOCK, id)); } diff --git a/src/main/java/megaminds/clickopener/PlayerConfigs.java b/src/main/java/pw/smto/clickopener/PlayerConfigs.java similarity index 97% rename from src/main/java/megaminds/clickopener/PlayerConfigs.java rename to src/main/java/pw/smto/clickopener/PlayerConfigs.java index e136bf7..489827f 100644 --- a/src/main/java/megaminds/clickopener/PlayerConfigs.java +++ b/src/main/java/pw/smto/clickopener/PlayerConfigs.java @@ -1,4 +1,4 @@ -package megaminds.clickopener; +package pw.smto.clickopener; import java.io.IOException; import java.nio.file.Files; @@ -12,7 +12,7 @@ import com.google.gson.JsonParseException; import com.google.gson.reflect.TypeToken; -import megaminds.clickopener.api.ClickType; +import pw.smto.clickopener.api.ClickType; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.server.network.ServerPlayerEntity; diff --git a/src/main/java/megaminds/clickopener/api/ClickType.java b/src/main/java/pw/smto/clickopener/api/ClickType.java similarity index 96% rename from src/main/java/megaminds/clickopener/api/ClickType.java rename to src/main/java/pw/smto/clickopener/api/ClickType.java index fff1339..fd869ba 100644 --- a/src/main/java/megaminds/clickopener/api/ClickType.java +++ b/src/main/java/pw/smto/clickopener/api/ClickType.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.api; +package pw.smto.clickopener.api; import java.util.Arrays; import java.util.Map; diff --git a/src/main/java/megaminds/clickopener/api/OpenContext.java b/src/main/java/pw/smto/clickopener/api/OpenContext.java similarity index 94% rename from src/main/java/megaminds/clickopener/api/OpenContext.java rename to src/main/java/pw/smto/clickopener/api/OpenContext.java index 4da4fc8..e11f63d 100644 --- a/src/main/java/megaminds/clickopener/api/OpenContext.java +++ b/src/main/java/pw/smto/clickopener/api/OpenContext.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.api; +package pw.smto.clickopener.api; import java.util.function.BiConsumer; import java.util.function.BiFunction; @@ -6,8 +6,8 @@ import java.util.function.Function; import java.util.function.Supplier; -import megaminds.clickopener.impl.ClickContext; -import megaminds.clickopener.interfaces.Openable; +import pw.smto.clickopener.impl.ClickContext; +import pw.smto.clickopener.interfaces.Openable; import net.minecraft.item.ItemStack; public abstract class OpenContext, O extends Opener> extends ClickContext { diff --git a/src/main/java/megaminds/clickopener/api/Opener.java b/src/main/java/pw/smto/clickopener/api/Opener.java similarity index 79% rename from src/main/java/megaminds/clickopener/api/Opener.java rename to src/main/java/pw/smto/clickopener/api/Opener.java index 6752285..9eaa41a 100644 --- a/src/main/java/megaminds/clickopener/api/Opener.java +++ b/src/main/java/pw/smto/clickopener/api/Opener.java @@ -1,9 +1,9 @@ -package megaminds.clickopener.api; +package pw.smto.clickopener.api; -import megaminds.clickopener.impl.ClickContext; -import megaminds.clickopener.interfaces.OpenContextHolder; -import megaminds.clickopener.interfaces.Openable; -import megaminds.clickopener.interfaces.UseAllower; +import pw.smto.clickopener.impl.ClickContext; +import pw.smto.clickopener.interfaces.OpenContextHolder; +import pw.smto.clickopener.interfaces.Openable; +import pw.smto.clickopener.interfaces.UseAllower; import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; diff --git a/src/main/java/megaminds/clickopener/api/OpenerRegisterEvent.java b/src/main/java/pw/smto/clickopener/api/OpenerRegisterEvent.java similarity index 94% rename from src/main/java/megaminds/clickopener/api/OpenerRegisterEvent.java rename to src/main/java/pw/smto/clickopener/api/OpenerRegisterEvent.java index 8f4a4cf..fabd63b 100644 --- a/src/main/java/megaminds/clickopener/api/OpenerRegisterEvent.java +++ b/src/main/java/pw/smto/clickopener/api/OpenerRegisterEvent.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.api; +package pw.smto.clickopener.api; import java.util.function.BiConsumer; diff --git a/src/main/java/megaminds/clickopener/api/OpenerRegistry.java b/src/main/java/pw/smto/clickopener/api/OpenerRegistry.java similarity index 95% rename from src/main/java/megaminds/clickopener/api/OpenerRegistry.java rename to src/main/java/pw/smto/clickopener/api/OpenerRegistry.java index e443483..f9d56df 100644 --- a/src/main/java/megaminds/clickopener/api/OpenerRegistry.java +++ b/src/main/java/pw/smto/clickopener/api/OpenerRegistry.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.api; +package pw.smto.clickopener.api; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/megaminds/clickopener/impl/BlockOpenContext.java b/src/main/java/pw/smto/clickopener/impl/BlockOpenContext.java similarity index 92% rename from src/main/java/megaminds/clickopener/impl/BlockOpenContext.java rename to src/main/java/pw/smto/clickopener/impl/BlockOpenContext.java index 96791e9..dedeaef 100644 --- a/src/main/java/megaminds/clickopener/impl/BlockOpenContext.java +++ b/src/main/java/pw/smto/clickopener/impl/BlockOpenContext.java @@ -1,9 +1,9 @@ -package megaminds.clickopener.impl; +package pw.smto.clickopener.impl; import java.util.Objects; -import megaminds.clickopener.api.OpenContext; -import megaminds.clickopener.util.FakeWorld; +import pw.smto.clickopener.api.OpenContext; +import pw.smto.clickopener.util.FakeWorld; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/megaminds/clickopener/impl/BlockScreenOpener.java b/src/main/java/pw/smto/clickopener/impl/BlockScreenOpener.java similarity index 72% rename from src/main/java/megaminds/clickopener/impl/BlockScreenOpener.java rename to src/main/java/pw/smto/clickopener/impl/BlockScreenOpener.java index 294bebb..60670ff 100644 --- a/src/main/java/megaminds/clickopener/impl/BlockScreenOpener.java +++ b/src/main/java/pw/smto/clickopener/impl/BlockScreenOpener.java @@ -1,17 +1,14 @@ -package megaminds.clickopener.impl; +package pw.smto.clickopener.impl; -import megaminds.clickopener.api.Opener; +import pw.smto.clickopener.api.Opener; import net.minecraft.block.Block; import net.minecraft.block.BlockEntityProvider; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.LockableContainerBlockEntity; +import net.minecraft.component.DataComponentTypes; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtHelper; -import net.minecraft.registry.Registries; -import net.minecraft.registry.RegistryKeys; import net.minecraft.util.ActionResult; public interface BlockScreenOpener extends Opener { @@ -29,7 +26,7 @@ default BlockOpenContext mutateContext(ClickContext clickContext) { @Override default ActionResult open(BlockOpenContext context) { if (context.initialStack().getCount() != 1) return ActionResult.FAIL; - var result = context.getBlockState().onUse(context.world(), context.player(), context.hand(), context.hitResult()); + var result = context.getBlockState().onUse(context.world(), context.player(), context.hitResult()); if (result.isAccepted()) { return result; } @@ -68,26 +65,18 @@ default void onStateChange(BlockState oldState, BlockOpenContext context) { default BlockState getBlockState(BlockOpenContext context) { var block = Block.getBlockFromItem(context.getStack().getItem()); - var nbt = context.getStack().getSubNbt(BlockItem.BLOCK_STATE_TAG_KEY); - if (nbt != null) { - nbt.putString("Name", Registries.BLOCK.getId(block).toString()); - var state = NbtHelper.toBlockState(context.world().createCommandRegistryWrapper(RegistryKeys.BLOCK), context.getStack().getSubNbt(BlockItem.BLOCK_STATE_TAG_KEY)); - if (!state.isAir()) return state; + + if (context.getStack().getComponents().contains(DataComponentTypes.BLOCK_STATE)) { + return context.getStack().get(DataComponentTypes.BLOCK_STATE).applyToState(block.getDefaultState()); } + return block.getDefaultState(); } default BlockEntity getBlockEntity(BlockOpenContext context) { if (!(context.getBlockState().getBlock() instanceof BlockEntityProvider provider)) return null; - var blockEntity = provider.createBlockEntity(context.pos(), context.getBlockState()); - var blockNbt = BlockItem.getBlockEntityNbt(context.getStack()); - if (blockNbt != null) { - blockEntity.readNbt(blockNbt); - } - if (context.getStack().hasCustomName() && blockEntity instanceof LockableContainerBlockEntity lockable) { - lockable.setCustomName(context.getStack().getName()); - } + if (blockEntity != null) blockEntity.readComponents(context.getStack()); return blockEntity; } } diff --git a/src/main/java/megaminds/clickopener/impl/ClickContext.java b/src/main/java/pw/smto/clickopener/impl/ClickContext.java similarity index 96% rename from src/main/java/megaminds/clickopener/impl/ClickContext.java rename to src/main/java/pw/smto/clickopener/impl/ClickContext.java index 4b0ad97..9b71579 100644 --- a/src/main/java/megaminds/clickopener/impl/ClickContext.java +++ b/src/main/java/pw/smto/clickopener/impl/ClickContext.java @@ -1,6 +1,6 @@ -package megaminds.clickopener.impl; +package pw.smto.clickopener.impl; -import megaminds.clickopener.api.ClickType; +import pw.smto.clickopener.api.ClickType; import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsageContext; diff --git a/src/main/java/megaminds/clickopener/impl/ItemOpenContext.java b/src/main/java/pw/smto/clickopener/impl/ItemOpenContext.java similarity index 75% rename from src/main/java/megaminds/clickopener/impl/ItemOpenContext.java rename to src/main/java/pw/smto/clickopener/impl/ItemOpenContext.java index 25c7cf5..b3752e8 100644 --- a/src/main/java/megaminds/clickopener/impl/ItemOpenContext.java +++ b/src/main/java/pw/smto/clickopener/impl/ItemOpenContext.java @@ -1,6 +1,6 @@ -package megaminds.clickopener.impl; +package pw.smto.clickopener.impl; -import megaminds.clickopener.api.OpenContext; +import pw.smto.clickopener.api.OpenContext; public class ItemOpenContext extends OpenContext { public ItemOpenContext(ClickContext context, ItemScreenOpener opener) { diff --git a/src/main/java/megaminds/clickopener/impl/ItemScreenOpener.java b/src/main/java/pw/smto/clickopener/impl/ItemScreenOpener.java similarity index 89% rename from src/main/java/megaminds/clickopener/impl/ItemScreenOpener.java rename to src/main/java/pw/smto/clickopener/impl/ItemScreenOpener.java index a25be2b..0ed8792 100644 --- a/src/main/java/megaminds/clickopener/impl/ItemScreenOpener.java +++ b/src/main/java/pw/smto/clickopener/impl/ItemScreenOpener.java @@ -1,6 +1,6 @@ -package megaminds.clickopener.impl; +package pw.smto.clickopener.impl; -import megaminds.clickopener.api.Opener; +import pw.smto.clickopener.api.Opener; import net.minecraft.util.ActionResult; public interface ItemScreenOpener extends Opener { diff --git a/src/main/java/megaminds/clickopener/interfaces/ArgumentChecker.java b/src/main/java/pw/smto/clickopener/interfaces/ArgumentChecker.java similarity index 86% rename from src/main/java/megaminds/clickopener/interfaces/ArgumentChecker.java rename to src/main/java/pw/smto/clickopener/interfaces/ArgumentChecker.java index 8d25b26..8f9df23 100644 --- a/src/main/java/megaminds/clickopener/interfaces/ArgumentChecker.java +++ b/src/main/java/pw/smto/clickopener/interfaces/ArgumentChecker.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.interfaces; +package pw.smto.clickopener.interfaces; import com.mojang.brigadier.context.CommandContext; diff --git a/src/main/java/megaminds/clickopener/interfaces/ClosePacketSkipper.java b/src/main/java/pw/smto/clickopener/interfaces/ClosePacketSkipper.java similarity index 71% rename from src/main/java/megaminds/clickopener/interfaces/ClosePacketSkipper.java rename to src/main/java/pw/smto/clickopener/interfaces/ClosePacketSkipper.java index 7f059ea..a5c76d1 100644 --- a/src/main/java/megaminds/clickopener/interfaces/ClosePacketSkipper.java +++ b/src/main/java/pw/smto/clickopener/interfaces/ClosePacketSkipper.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.interfaces; +package pw.smto.clickopener.interfaces; public interface ClosePacketSkipper { void clickopener$setSkipClosePacket(boolean skipClosePacket); diff --git a/src/main/java/megaminds/clickopener/interfaces/OpenContextHolder.java b/src/main/java/pw/smto/clickopener/interfaces/OpenContextHolder.java similarity index 62% rename from src/main/java/megaminds/clickopener/interfaces/OpenContextHolder.java rename to src/main/java/pw/smto/clickopener/interfaces/OpenContextHolder.java index 7d5ca24..28e8102 100644 --- a/src/main/java/megaminds/clickopener/interfaces/OpenContextHolder.java +++ b/src/main/java/pw/smto/clickopener/interfaces/OpenContextHolder.java @@ -1,6 +1,6 @@ -package megaminds.clickopener.interfaces; +package pw.smto.clickopener.interfaces; -import megaminds.clickopener.api.OpenContext; +import pw.smto.clickopener.api.OpenContext; public interface OpenContextHolder { void clickopener$setOpenContext(OpenContext openContext); diff --git a/src/main/java/megaminds/clickopener/interfaces/Openable.java b/src/main/java/pw/smto/clickopener/interfaces/Openable.java similarity index 90% rename from src/main/java/megaminds/clickopener/interfaces/Openable.java rename to src/main/java/pw/smto/clickopener/interfaces/Openable.java index 988072b..a90a125 100644 --- a/src/main/java/megaminds/clickopener/interfaces/Openable.java +++ b/src/main/java/pw/smto/clickopener/interfaces/Openable.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.interfaces; +package pw.smto.clickopener.interfaces; import net.minecraft.item.ItemStack; diff --git a/src/main/java/megaminds/clickopener/interfaces/UseAllower.java b/src/main/java/pw/smto/clickopener/interfaces/UseAllower.java similarity index 70% rename from src/main/java/megaminds/clickopener/interfaces/UseAllower.java rename to src/main/java/pw/smto/clickopener/interfaces/UseAllower.java index dba3b12..01c8476 100644 --- a/src/main/java/megaminds/clickopener/interfaces/UseAllower.java +++ b/src/main/java/pw/smto/clickopener/interfaces/UseAllower.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.interfaces; +package pw.smto.clickopener.interfaces; public interface UseAllower { void clickopener$allowUse(); diff --git a/src/main/java/megaminds/clickopener/mixin/CommandContextMixin.java b/src/main/java/pw/smto/clickopener/mixin/CommandContextMixin.java similarity index 85% rename from src/main/java/megaminds/clickopener/mixin/CommandContextMixin.java rename to src/main/java/pw/smto/clickopener/mixin/CommandContextMixin.java index 0e30931..cda4a98 100644 --- a/src/main/java/megaminds/clickopener/mixin/CommandContextMixin.java +++ b/src/main/java/pw/smto/clickopener/mixin/CommandContextMixin.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.mixin; +package pw.smto.clickopener.mixin; import java.util.Map; @@ -8,7 +8,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.context.ParsedArgument; -import megaminds.clickopener.interfaces.ArgumentChecker; +import pw.smto.clickopener.interfaces.ArgumentChecker; @Mixin(value = CommandContext.class, remap = false) public abstract class CommandContextMixin implements ArgumentChecker { diff --git a/src/main/java/megaminds/clickopener/mixin/ForcedScreenHandlerMixin.java b/src/main/java/pw/smto/clickopener/mixin/ForcedScreenHandlerMixin.java similarity index 93% rename from src/main/java/megaminds/clickopener/mixin/ForcedScreenHandlerMixin.java rename to src/main/java/pw/smto/clickopener/mixin/ForcedScreenHandlerMixin.java index 7f23571..81b10b9 100644 --- a/src/main/java/megaminds/clickopener/mixin/ForcedScreenHandlerMixin.java +++ b/src/main/java/pw/smto/clickopener/mixin/ForcedScreenHandlerMixin.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.mixin; +package pw.smto.clickopener.mixin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Pseudo; @@ -7,7 +7,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import megaminds.clickopener.interfaces.UseAllower; +import pw.smto.clickopener.interfaces.UseAllower; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.ScreenHandlerType; diff --git a/src/main/java/megaminds/clickopener/mixin/ItemStackMixin.java b/src/main/java/pw/smto/clickopener/mixin/ItemStackMixin.java similarity index 92% rename from src/main/java/megaminds/clickopener/mixin/ItemStackMixin.java rename to src/main/java/pw/smto/clickopener/mixin/ItemStackMixin.java index 63adcc4..a7402bd 100644 --- a/src/main/java/megaminds/clickopener/mixin/ItemStackMixin.java +++ b/src/main/java/pw/smto/clickopener/mixin/ItemStackMixin.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.mixin; +package pw.smto.clickopener.mixin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -7,7 +7,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import megaminds.clickopener.interfaces.Openable; +import pw.smto.clickopener.interfaces.Openable; import net.minecraft.item.ItemStack; @Mixin(ItemStack.class) diff --git a/src/main/java/megaminds/clickopener/mixin/ScreenHandlerMixin.java b/src/main/java/pw/smto/clickopener/mixin/ScreenHandlerMixin.java similarity index 85% rename from src/main/java/megaminds/clickopener/mixin/ScreenHandlerMixin.java rename to src/main/java/pw/smto/clickopener/mixin/ScreenHandlerMixin.java index aae7dce..ac6fd93 100644 --- a/src/main/java/megaminds/clickopener/mixin/ScreenHandlerMixin.java +++ b/src/main/java/pw/smto/clickopener/mixin/ScreenHandlerMixin.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.mixin; +package pw.smto.clickopener.mixin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -6,9 +6,9 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import megaminds.clickopener.api.OpenContext; -import megaminds.clickopener.api.Opener; -import megaminds.clickopener.interfaces.OpenContextHolder; +import pw.smto.clickopener.api.OpenContext; +import pw.smto.clickopener.api.Opener; +import pw.smto.clickopener.interfaces.OpenContextHolder; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.screen.ScreenHandler; diff --git a/src/main/java/megaminds/clickopener/mixin/ServerPlayNetworkHandlerMixin.java b/src/main/java/pw/smto/clickopener/mixin/ServerPlayNetworkHandlerMixin.java similarity index 89% rename from src/main/java/megaminds/clickopener/mixin/ServerPlayNetworkHandlerMixin.java rename to src/main/java/pw/smto/clickopener/mixin/ServerPlayNetworkHandlerMixin.java index bb31314..a4d8f68 100644 --- a/src/main/java/megaminds/clickopener/mixin/ServerPlayNetworkHandlerMixin.java +++ b/src/main/java/pw/smto/clickopener/mixin/ServerPlayNetworkHandlerMixin.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.mixin; +package pw.smto.clickopener.mixin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -7,10 +7,10 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import megaminds.clickopener.api.ClickType; -import megaminds.clickopener.impl.ClickContext; -import megaminds.clickopener.interfaces.Openable; -import megaminds.clickopener.util.ScreenHelper; +import pw.smto.clickopener.api.ClickType; +import pw.smto.clickopener.impl.ClickContext; +import pw.smto.clickopener.interfaces.Openable; +import pw.smto.clickopener.util.ScreenHelper; import net.minecraft.network.packet.c2s.play.ClickSlotC2SPacket; import net.minecraft.screen.ScreenHandler; import net.minecraft.server.network.ServerPlayNetworkHandler; diff --git a/src/main/java/megaminds/clickopener/mixin/ServerPlayerEntityMixin.java b/src/main/java/pw/smto/clickopener/mixin/ServerPlayerEntityMixin.java similarity index 92% rename from src/main/java/megaminds/clickopener/mixin/ServerPlayerEntityMixin.java rename to src/main/java/pw/smto/clickopener/mixin/ServerPlayerEntityMixin.java index 1061d27..be2da15 100644 --- a/src/main/java/megaminds/clickopener/mixin/ServerPlayerEntityMixin.java +++ b/src/main/java/pw/smto/clickopener/mixin/ServerPlayerEntityMixin.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.mixin; +package pw.smto.clickopener.mixin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -8,7 +8,7 @@ import com.mojang.authlib.GameProfile; -import megaminds.clickopener.interfaces.ClosePacketSkipper; +import pw.smto.clickopener.interfaces.ClosePacketSkipper; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/megaminds/clickopener/mixin/ShulkerBoxBlockMixin.java b/src/main/java/pw/smto/clickopener/mixin/ShulkerBoxBlockMixin.java similarity index 76% rename from src/main/java/megaminds/clickopener/mixin/ShulkerBoxBlockMixin.java rename to src/main/java/pw/smto/clickopener/mixin/ShulkerBoxBlockMixin.java index 073c3e1..3e9e29d 100644 --- a/src/main/java/megaminds/clickopener/mixin/ShulkerBoxBlockMixin.java +++ b/src/main/java/pw/smto/clickopener/mixin/ShulkerBoxBlockMixin.java @@ -1,7 +1,8 @@ -package megaminds.clickopener.mixin; +package pw.smto.clickopener.mixin; import java.util.Optional; +import net.minecraft.world.WorldView; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -16,8 +17,8 @@ @Mixin(ShulkerBoxBlock.class) public abstract class ShulkerBoxBlockMixin { @SuppressWarnings("unused") - @Redirect(method = "getPickStack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/BlockView;getBlockEntity(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntityType;)Ljava/util/Optional;")) - public Optional replaceGetBlockEntity(BlockView world, BlockPos pos, BlockEntityType type) { + @Redirect(method = "getPickStack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/WorldView;getBlockEntity(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntityType;)Ljava/util/Optional;")) + public Optional replaceGetBlockEntity(WorldView world, BlockPos pos, BlockEntityType type) { return Optional.ofNullable(world.getBlockEntity(pos)).filter(ShulkerBoxBlockEntity.class::isInstance); } } diff --git a/src/main/java/megaminds/clickopener/util/FakeWorld.java b/src/main/java/pw/smto/clickopener/util/FakeWorld.java similarity index 96% rename from src/main/java/megaminds/clickopener/util/FakeWorld.java rename to src/main/java/pw/smto/clickopener/util/FakeWorld.java index d3daeea..cae8d44 100644 --- a/src/main/java/megaminds/clickopener/util/FakeWorld.java +++ b/src/main/java/pw/smto/clickopener/util/FakeWorld.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.util; +package pw.smto.clickopener.util; import java.io.IOException; import java.nio.file.Path; @@ -11,6 +11,8 @@ import java.util.function.Supplier; import java.util.stream.Stream; +import net.minecraft.component.type.MapIdComponent; +import net.minecraft.world.dimension.PortalForcer; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.UnknownNullability; @@ -18,8 +20,8 @@ import io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess; import it.unimi.dsi.fastutil.longs.LongSet; -import megaminds.clickopener.impl.BlockOpenContext; -import megaminds.clickopener.impl.BlockScreenOpener; +import pw.smto.clickopener.impl.BlockOpenContext; +import pw.smto.clickopener.impl.BlockScreenOpener; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -87,7 +89,6 @@ import net.minecraft.world.LightType; import net.minecraft.world.LocalDifficulty; import net.minecraft.world.PersistentStateManager; -import net.minecraft.world.PortalForcer; import net.minecraft.world.RaycastContext; import net.minecraft.world.World; import net.minecraft.world.WorldProperties; @@ -581,12 +582,12 @@ public boolean equals(Object obj) { } @Override - public void emitGameEvent(Entity entity, GameEvent event, Vec3d pos) { + public void emitGameEvent(Entity entity, RegistryEntry event, Vec3d pos) { delegate().emitGameEvent(entity, event, pos); } @Override - public void emitGameEvent(Entity entity, GameEvent event, BlockPos pos) { + public void emitGameEvent(Entity entity, RegistryEntry event, BlockPos pos) { delegate().emitGameEvent(entity, event, pos); } @@ -608,7 +609,7 @@ public BlockHitResult raycastBlock(Vec3d start, Vec3d end, BlockPos pos, VoxelSh } @Override - public void emitGameEvent(GameEvent event, BlockPos pos, Emitter emitter) { + public void emitGameEvent(RegistryEntry event, BlockPos pos, Emitter emitter) { delegate().emitGameEvent(event, pos, emitter); } @@ -967,12 +968,11 @@ public Explosion createExplosion(Entity entity, DamageSource damageSource, Explo return delegate().createExplosion(entity, damageSource, behavior, pos, power, createFire, explosionSourceType); } - @Override + //@Override public Explosion createExplosion(Entity entity, DamageSource damageSource, ExplosionBehavior behavior, double x, double y, double z, float power, boolean createFire, ExplosionSourceType explosionSourceType, boolean particles) { - return delegate().createExplosion(entity, damageSource, behavior, x, y, z, power, createFire, explosionSourceType, - particles); + return delegate().createExplosion(entity, damageSource, behavior, x, y, z, power, createFire, explosionSourceType); } @Override @@ -1191,11 +1191,11 @@ public ServerPlayerEntity getRandomAlivePlayer() { return delegate().getRandomAlivePlayer(); } - @Override - public void addFireworkParticle(double x, double y, double z, double velocityX, double velocityY, double velocityZ, - NbtCompound nbt) { - delegate().addFireworkParticle(x, y, z, velocityX, velocityY, velocityZ, nbt); - } + //@Override + //public void addFireworkParticle(double x, double y, double z, double velocityX, double velocityY, double velocityZ, + // NbtCompound nbt) { + // delegate().addFireworkParticle(x, y, z, velocityX, velocityY, velocityZ, nbt); + //} @Override public boolean spawnEntity(Entity entity) { @@ -1217,20 +1217,20 @@ public LocalDifficulty getLocalDifficulty(BlockPos pos) { return delegate().getLocalDifficulty(pos); } - @Override - public void onPlayerTeleport(ServerPlayerEntity player) { - delegate().onPlayerTeleport(player); - } + //@Override + //public void onPlayerTeleport(ServerPlayerEntity player) { + // delegate().onPlayerTeleport(player); + //} @Override public int getAmbientDarkness() { return delegate().getAmbientDarkness(); } - @Override - public void onPlayerChangeDimension(ServerPlayerEntity player) { - delegate().onPlayerChangeDimension(player); - } + //@Override + //public void onPlayerChangeDimension(ServerPlayerEntity player) { + // delegate().onPlayerChangeDimension(player); + //} @Override public void setLightningTicksLeft(int lightningTicksLeft) { @@ -1257,10 +1257,10 @@ public DimensionType getDimension() { return delegate().getDimension(); } - @Override - public RegistryKey getDimensionKey() { - return delegate().getDimensionKey(); - } + //@Override + //public RegistryKey getDimensionKey() { + // return delegate().getDimensionKey(); + //} @Override public void onPlayerRespawned(ServerPlayerEntity player) { @@ -1380,7 +1380,7 @@ public int getLogicalHeight() { } @Override - public void emitGameEvent(GameEvent event, Vec3d emitterPos, Emitter emitter) { + public void emitGameEvent(RegistryEntry event, Vec3d emitterPos, Emitter emitter) { delegate().emitGameEvent(event, emitterPos, emitter); } @@ -1496,18 +1496,18 @@ public PersistentStateManager getPersistentStateManager() { } @Override - public MapState getMapState(String id) { + public MapState getMapState(MapIdComponent id) { return delegate().getMapState(id); } @Override - public void putMapState(String id, MapState state) { + public void putMapState(MapIdComponent id, MapState state) { delegate().putMapState(id, state); } @Override - public int getNextMapId() { - return delegate().getNextMapId(); + public MapIdComponent increaseAndGetMapId() { + return delegate().increaseAndGetMapId(); } @Override diff --git a/src/main/java/megaminds/clickopener/util/IdentifierAdapter.java b/src/main/java/pw/smto/clickopener/util/IdentifierAdapter.java similarity index 88% rename from src/main/java/megaminds/clickopener/util/IdentifierAdapter.java rename to src/main/java/pw/smto/clickopener/util/IdentifierAdapter.java index ec6af9c..e381652 100644 --- a/src/main/java/megaminds/clickopener/util/IdentifierAdapter.java +++ b/src/main/java/pw/smto/clickopener/util/IdentifierAdapter.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.util; +package pw.smto.clickopener.util; import java.io.IOException; import com.google.gson.TypeAdapter; @@ -16,7 +16,7 @@ public Identifier read(JsonReader in) throws IOException { return null; } - return new Identifier(in.nextString()); + return Identifier.of(in.nextString()); } @Override diff --git a/src/main/java/megaminds/clickopener/util/ItemOpenException.java b/src/main/java/pw/smto/clickopener/util/ItemOpenException.java similarity index 90% rename from src/main/java/megaminds/clickopener/util/ItemOpenException.java rename to src/main/java/pw/smto/clickopener/util/ItemOpenException.java index 0c2b32d..7680459 100644 --- a/src/main/java/megaminds/clickopener/util/ItemOpenException.java +++ b/src/main/java/pw/smto/clickopener/util/ItemOpenException.java @@ -1,4 +1,4 @@ -package megaminds.clickopener.util; +package pw.smto.clickopener.util; @SuppressWarnings("serial") public class ItemOpenException extends RuntimeException { diff --git a/src/main/java/megaminds/clickopener/util/ScreenHelper.java b/src/main/java/pw/smto/clickopener/util/ScreenHelper.java similarity index 80% rename from src/main/java/megaminds/clickopener/util/ScreenHelper.java rename to src/main/java/pw/smto/clickopener/util/ScreenHelper.java index e9bf087..d754ae2 100644 --- a/src/main/java/megaminds/clickopener/util/ScreenHelper.java +++ b/src/main/java/pw/smto/clickopener/util/ScreenHelper.java @@ -1,13 +1,13 @@ -package megaminds.clickopener.util; - -import megaminds.clickopener.ClickOpenerMod; -import megaminds.clickopener.api.OpenContext; -import megaminds.clickopener.api.Opener; -import megaminds.clickopener.api.OpenerRegistry; -import megaminds.clickopener.impl.BlockScreenOpener; -import megaminds.clickopener.impl.ClickContext; -import megaminds.clickopener.impl.ItemScreenOpener; -import megaminds.clickopener.interfaces.ClosePacketSkipper; +package pw.smto.clickopener.util; + +import pw.smto.clickopener.ClickOpenerMod; +import pw.smto.clickopener.api.OpenContext; +import pw.smto.clickopener.api.Opener; +import pw.smto.clickopener.api.OpenerRegistry; +import pw.smto.clickopener.impl.BlockScreenOpener; +import pw.smto.clickopener.impl.ClickContext; +import pw.smto.clickopener.impl.ItemScreenOpener; +import pw.smto.clickopener.interfaces.ClosePacketSkipper; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; diff --git a/src/main/resources/clickopener.mixins.json b/src/main/resources/clickopener.mixins.json index 94e00d7..598aa37 100644 --- a/src/main/resources/clickopener.mixins.json +++ b/src/main/resources/clickopener.mixins.json @@ -1,7 +1,7 @@ { "required": true, "minVersion": "0.8", - "package": "megaminds.clickopener.mixin", + "package": "pw.smto.clickopener.mixin", "mixins": [ "CommandContextMixin", "ForcedScreenHandlerMixin", diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index fc55180..8fd809d 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -2,11 +2,11 @@ "schemaVersion": 1, "id": "clickopener", "version": "${version}", - - "name": "Click Opener Mod", - "description": "Fabric Mod that opens inventory screens when their items are clicked", + "name": "Click Opener Continued!", + "description": "Use blocks like shulkers directly in your inventory!\nContinuation of Hoid2's Click Opener Mod.", "authors": [ - "Hoid2" + "Hoid2", + "JongWasTaken" ], "contact": {}, "license": "MIT", @@ -14,7 +14,7 @@ "environment": "*", "entrypoints": { "main": [ - "megaminds.clickopener.ClickOpenerMod" + "pw.smto.clickopener.ClickOpenerMod" ] }, "mixins": [ @@ -22,6 +22,6 @@ ], "depends": { "fabric-api": "*", - "minecraft": "~1.20.1" + "minecraft": "~1.21" } }