diff --git a/platform/fabric/src/main/java/mcp/mobius/waila/fabric/FabricServerCommand.java b/platform/fabric/src/main/java/mcp/mobius/waila/fabric/FabricServerCommand.java index 935d9a2f7..42b6a0afa 100644 --- a/platform/fabric/src/main/java/mcp/mobius/waila/fabric/FabricServerCommand.java +++ b/platform/fabric/src/main/java/mcp/mobius/waila/fabric/FabricServerCommand.java @@ -6,11 +6,12 @@ import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.Registry; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import org.jetbrains.annotations.Nullable; +@SuppressWarnings("UnstableApiUsage") public class FabricServerCommand extends ServerCommand { @Override @@ -23,9 +24,9 @@ public class FabricServerCommand extends ServerCommand { var offHandStack = player.getOffhandItem(); var item = !offHandStack.isEmpty() ? offHandStack.getItem() - : BuiltInRegistries.ITEM.getRandom(world.random).orElseThrow().value(); + : Registry.ITEM.getRandom(world.random).orElseThrow().value(); - if (storage.insert(ItemVariant.of(item), item.getDefaultMaxStackSize(), tx) == 0L) break; + if (storage.insert(ItemVariant.of(item), item.getMaxStackSize(), tx) == 0L) break; } tx.commit(); return null; diff --git a/platform/forge/src/main/java/mcp/mobius/waila/forge/ForgeServerCommand.java b/platform/forge/src/main/java/mcp/mobius/waila/forge/ForgeServerCommand.java index 6014eb739..ddca7c536 100644 --- a/platform/forge/src/main/java/mcp/mobius/waila/forge/ForgeServerCommand.java +++ b/platform/forge/src/main/java/mcp/mobius/waila/forge/ForgeServerCommand.java @@ -2,11 +2,11 @@ import mcp.mobius.waila.command.ServerCommand; import net.minecraft.core.BlockPos; -import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.Registry; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.items.CapabilityItemHandler; import org.jetbrains.annotations.Nullable; public class ForgeServerCommand extends ServerCommand { @@ -15,7 +15,7 @@ public class ForgeServerCommand extends ServerCommand { protected @Nullable String fillContainer(ServerLevel world, BlockPos pos, ServerPlayer player) { var be = world.getBlockEntity(pos); if (be == null) return "No BlockEntity at " + pos.toShortString(); - var handler = be.getCapability(ForgeCapabilities.ITEM_HANDLER, null).resolve().orElse(null); + var handler = be.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null).resolve().orElse(null); if (handler == null) return "No storage at " + pos.toShortString(); var offHandStack = player.getOffhandItem(); @@ -23,9 +23,9 @@ public class ForgeServerCommand extends ServerCommand { for (var i = 0; i < size; i++) { var item = !offHandStack.isEmpty() ? offHandStack.getItem() - : BuiltInRegistries.ITEM.getRandom(world.random).orElseThrow().value(); + : Registry.ITEM.getRandom(world.random).orElseThrow().value(); - handler.insertItem(i, new ItemStack(item, item.getDefaultMaxStackSize()), false); + handler.insertItem(i, new ItemStack(item, item.getMaxStackSize()), false); } return null; diff --git a/platform/forge/src/main/java/mcp/mobius/waila/forge/ForgeWailaClient.java b/platform/forge/src/main/java/mcp/mobius/waila/forge/ForgeWailaClient.java index b1877cbbc..c69aaf12f 100644 --- a/platform/forge/src/main/java/mcp/mobius/waila/forge/ForgeWailaClient.java +++ b/platform/forge/src/main/java/mcp/mobius/waila/forge/ForgeWailaClient.java @@ -9,6 +9,7 @@ import mcp.mobius.waila.gui.screen.HomeScreen; import mcp.mobius.waila.network.Packets; import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.ConfigScreenHandler; import net.minecraftforge.client.event.ClientPlayerNetworkEvent; import net.minecraftforge.client.event.RegisterClientCommandsEvent; import net.minecraftforge.client.event.RegisterClientReloadListenersEvent; @@ -17,6 +18,7 @@ import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.entity.player.ItemTooltipEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; diff --git a/platform/quilt/build.gradle.kts b/platform/quilt/build.gradle.kts index 516239735..5b96a1f6c 100644 --- a/platform/quilt/build.gradle.kts +++ b/platform/quilt/build.gradle.kts @@ -15,6 +15,7 @@ dependencies { modCompileRuntime("org.quiltmc.quilted-fabric-api:fabric-key-binding-api-v1:${rootProp["qfapi"]}") modCompileRuntime("org.quiltmc.quilted-fabric-api:fabric-rendering-v1:${rootProp["qfapi"]}") modCompileRuntime("org.quiltmc.quilted-fabric-api:fabric-mining-level-api-v1:${rootProp["qfapi"]}") + modCompileRuntime("org.quiltmc.quilted-fabric-api:fabric-transfer-api-v1:${rootProp["qfapi"]}") modCompileRuntime("com.terraformersmc:modmenu:${rootProp["modMenu"]}") diff --git a/platform/quilt/src/main/java/mcp/mobius/waila/quilt/QuiltServerCommand.java b/platform/quilt/src/main/java/mcp/mobius/waila/quilt/QuiltServerCommand.java new file mode 100644 index 000000000..7d1791bf0 --- /dev/null +++ b/platform/quilt/src/main/java/mcp/mobius/waila/quilt/QuiltServerCommand.java @@ -0,0 +1,36 @@ +package mcp.mobius.waila.quilt; + +import mcp.mobius.waila.command.ServerCommand; +import net.fabricmc.fabric.api.transfer.v1.item.ItemStorage; +import net.fabricmc.fabric.api.transfer.v1.item.ItemVariant; +import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Registry; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import org.jetbrains.annotations.Nullable; + +@SuppressWarnings("UnstableApiUsage") +public class QuiltServerCommand extends ServerCommand { + + @Override + protected @Nullable String fillContainer(ServerLevel world, BlockPos pos, ServerPlayer player) { + var storage = ItemStorage.SIDED.find(world, pos, Direction.UP); + if (storage == null) return "No storage at " + pos.toShortString(); + + try (var tx = Transaction.openOuter()) { + while (true) { + var offHandStack = player.getOffhandItem(); + var item = !offHandStack.isEmpty() + ? offHandStack.getItem() + : Registry.ITEM.getRandom(world.random).orElseThrow().value(); + + if (storage.insert(ItemVariant.of(item), item.getMaxStackSize(), tx) == 0L) break; + } + tx.commit(); + return null; + } + } + +} diff --git a/platform/quilt/src/main/java/mcp/mobius/waila/quilt/QuiltWaila.java b/platform/quilt/src/main/java/mcp/mobius/waila/quilt/QuiltWaila.java index cc5fcff25..fa91a703b 100644 --- a/platform/quilt/src/main/java/mcp/mobius/waila/quilt/QuiltWaila.java +++ b/platform/quilt/src/main/java/mcp/mobius/waila/quilt/QuiltWaila.java @@ -1,7 +1,6 @@ package mcp.mobius.waila.quilt; import mcp.mobius.waila.Waila; -import mcp.mobius.waila.command.ServerCommand; import mcp.mobius.waila.config.PluginConfig; import mcp.mobius.waila.debug.DumpGenerator; import mcp.mobius.waila.network.Packets; @@ -19,7 +18,7 @@ public void onInitialize(ModContainer mod) { Packets.initServer(); CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> - new ServerCommand().register(dispatcher)); + new QuiltServerCommand().register(dispatcher)); ServerLifecycleEvents.STARTING.register(server -> PluginConfig.reload()); ServerLifecycleEvents.STOPPED.register(server -> onServerStopped());