Skip to content

Commit e9d74dc

Browse files
committed
cherry-pick fixes
(cherry picked from commit 1087b56)
1 parent 35a4821 commit e9d74dc

File tree

4 files changed

+39
-1
lines changed

4 files changed

+39
-1
lines changed

platform/quilt/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ dependencies {
1616
modCompileRuntime("org.quiltmc.quilted-fabric-api:fabric-rendering-v1:${rootProp["qfapi"]}")
1717
modCompileRuntime("org.quiltmc.quilted-fabric-api:fabric-lifecycle-events-v1:${rootProp["qfapi"]}")
1818
modCompileRuntime("org.quiltmc.quilted-fabric-api:fabric-mining-level-api-v1:${rootProp["qfapi"]}")
19+
modCompileRuntime("org.quiltmc.quilted-fabric-api:fabric-transfer-api-v1:${rootProp["qfapi"]}")
1920

2021
modCompileRuntime("com.terraformersmc:modmenu:${rootProp["modMenu"]}")
2122

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package mcp.mobius.waila.quilt;
2+
3+
import mcp.mobius.waila.command.ServerCommand;
4+
import net.fabricmc.fabric.api.transfer.v1.item.ItemStorage;
5+
import net.fabricmc.fabric.api.transfer.v1.item.ItemVariant;
6+
import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction;
7+
import net.minecraft.core.BlockPos;
8+
import net.minecraft.core.Direction;
9+
import net.minecraft.core.registries.BuiltInRegistries;
10+
import net.minecraft.server.level.ServerLevel;
11+
import net.minecraft.server.level.ServerPlayer;
12+
import org.jetbrains.annotations.Nullable;
13+
14+
@SuppressWarnings("UnstableApiUsage")
15+
public class QuiltServerCommand extends ServerCommand {
16+
17+
@Override
18+
protected @Nullable String fillContainer(ServerLevel world, BlockPos pos, ServerPlayer player) {
19+
var storage = ItemStorage.SIDED.find(world, pos, Direction.UP);
20+
if (storage == null) return "No storage at " + pos.toShortString();
21+
22+
try (var tx = Transaction.openOuter()) {
23+
while (true) {
24+
var offHandStack = player.getOffhandItem();
25+
var item = !offHandStack.isEmpty()
26+
? offHandStack.getItem()
27+
: BuiltInRegistries.ITEM.getRandom(world.random).orElseThrow().value();
28+
29+
if (storage.insert(ItemVariant.of(item), item.getMaxStackSize(), tx) == 0L) break;
30+
}
31+
tx.commit();
32+
return null;
33+
}
34+
}
35+
36+
}

platform/quilt/src/main/java/mcp/mobius/waila/quilt/QuiltWaila.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void onInitialize(ModContainer mod) {
2020
Packets.initServer();
2121

2222
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) ->
23-
new ServerCommand().register(dispatcher));
23+
new QuiltServerCommand().register(dispatcher));
2424

2525
ServerLifecycleEvents.STARTING.register(server -> PluginConfig.reload());
2626
ServerLifecycleEvents.STOPPED.register(server -> onServerStopped());

src/main/java/mcp/mobius/waila/command/ServerCommand.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import net.minecraft.commands.Commands;
1919
import net.minecraft.commands.arguments.EntityArgument;
2020
import net.minecraft.commands.arguments.coordinates.BlockPosArgument;
21+
import net.minecraft.core.BlockPos;
2122
import net.minecraft.core.component.DataComponents;
2223
import net.minecraft.network.chat.ClickEvent;
2324
import net.minecraft.network.chat.Component;

0 commit comments

Comments
 (0)