Implement Screen and Container registration helpers

This commit is contained in:
2022-09-25 01:52:45 +02:00
parent f5e34d0ffa
commit 0b22730703
5 changed files with 85 additions and 1 deletions

View File

@@ -7,9 +7,17 @@ import net.minecraft.network.Connection;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.MenuProvider;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.MenuType;
import net.minecraft.world.level.Level;
import org.apache.commons.lang3.function.TriFunction;
import javax.annotation.Nullable;
import java.util.function.Consumer;
import java.util.function.Function;
/**
@@ -30,6 +38,10 @@ public interface LibCommonHelper {
public MinecraftServer getMCServer();
public void openMenu(ServerPlayer player, MenuProvider menu, @Nullable Consumer<FriendlyByteBuf> initialData);
public <T extends AbstractContainerMenu> MenuType<T> createMenuType(TriFunction<Integer, Inventory, FriendlyByteBuf, T> constructor);
/* FABRIC ONLY */
public void registerClientReceiver(ResourceLocation channelName, Function<FriendlyByteBuf, CraterPacket<?>> factory);
public void registerServerReceiver(ResourceLocation channelName, Function<FriendlyByteBuf, CraterPacket<?>> factory);