Finish implementing initial chest-gui interface API

This commit is contained in:
zontreck 2024-01-02 00:28:17 -07:00
parent b034b2b388
commit 848b6f495b
9 changed files with 108 additions and 110 deletions

View file

@ -2,7 +2,6 @@ package dev.zontreck.libzontreck.networking;
import dev.zontreck.libzontreck.LibZontreck;
import dev.zontreck.libzontreck.events.RegisterPacketsEvent;
import dev.zontreck.libzontreck.networking.packets.C2SChestGUIButtonClicked;
import dev.zontreck.libzontreck.networking.packets.ChestGUIOpenC2S;
import dev.zontreck.libzontreck.networking.packets.IPacket;
import net.minecraft.resources.ResourceLocation;
@ -52,12 +51,6 @@ public class ModMessages {
.consumerMainThread(ChestGUIOpenC2S::handle)
.add();
net.messageBuilder(C2SChestGUIButtonClicked.class, PACKET_ID.getAndIncrement(), NetworkDirection.PLAY_TO_SERVER)
.decoder(C2SChestGUIButtonClicked::new)
.encoder(C2SChestGUIButtonClicked::toBytes)
.consumerMainThread(C2SChestGUIButtonClicked::handle)
.add();
}

View file

@ -1,55 +0,0 @@
package dev.zontreck.libzontreck.networking.packets;
import dev.zontreck.libzontreck.events.GUIButtonClickedEvent;
import dev.zontreck.libzontreck.vectors.Vector2;
import net.minecraft.client.Minecraft;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.network.NetworkEvent;
import java.util.UUID;
import java.util.function.Supplier;
public class C2SChestGUIButtonClicked
{
private ItemStack stack;
private ResourceLocation id;
private UUID player;
public C2SChestGUIButtonClicked(ItemStack stack, ResourceLocation id)
{
this.stack = stack;
this.id = id;
player = Minecraft.getInstance().player.getUUID();
}
public C2SChestGUIButtonClicked(FriendlyByteBuf buf)
{
stack = buf.readItem();
id = buf.readResourceLocation();
}
public void toBytes(FriendlyByteBuf buf)
{
buf.writeItem(stack);
buf.writeResourceLocation(id);
}
public boolean handle(Supplier<NetworkEvent.Context> ctx)
{
NetworkEvent.Context context = ctx.get();
context.enqueueWork(()->{
// We're on the server now.
MinecraftForge.EVENT_BUS.post(new GUIButtonClickedEvent(stack, id, player));
});
return true;
}
}