public class ModNetworking {
public static void register(){
PayloadTypeRegistry.playC2S().register(ClickPayload.ID,ClickPayload.CODEC);
ServerPlayNetworking.registerGlobalReceiver(ClickPayload.ID, (clickPayload, context) -> {
context.server().execute(() -> {
System.out.println(clickPayload.stack());
});
});
}
}
#Error with hadle packet
4 messages · Page 1 of 1 (latest)
public record ClickPayload(ItemStack stack) implements CustomPayload {
public static final Identifier ITEM_CLICK_PACKET_ID = Identifier.of(Auction.MOD_ID, "item_click");
public static final CustomPayload.Id<ClickPayload> ID = new CustomPayload.Id<>(ITEM_CLICK_PACKET_ID);
public static final PacketCodec<RegistryByteBuf, ClickPayload> CODEC = PacketCodec.tuple(ItemStack.PACKET_CODEC, ClickPayload::stack, ClickPayload::new);
@Override
public Id<? extends CustomPayload> getId() {
return ID;
}
}
public class ItemWidget extends ClickableWidget {
private final ItemStack stack;
public ItemWidget(ItemStack stack, int x, int y) {
super(x, y, 16, 16, Text.empty());
this.stack = stack;
}
@Override
protected void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) {
context.drawItem(stack,this.getX(),this.getY());
context.drawItemInSlot(MinecraftClient.getInstance().textRenderer,stack,this.getX(),this.getY());
}
@Override
protected void appendClickableNarrations(NarrationMessageBuilder builder) {
}
@Override
public void onClick(double mouseX, double mouseY) {
super.onClick(mouseX, mouseY);
if(isMouseOver(mouseX,mouseY)){
ItemStorage.removeItem(MinecraftClient.getInstance().world.getRegistryManager(), stack);
ClientNetworking.sendItemClickPacket(stack);
if(!MinecraftClient.getInstance().player.getInventory().insertStack(stack)){
MinecraftClient.getInstance().player.dropStack(stack);
}
MinecraftClient.getInstance().setScreen(new AhScreen(Text.empty()));
}
}
}
for? idk
public class ClientNetworking {
public static void sendItemClickPacket(ItemStack itemStack) {
ClientPlayNetworking.send(new ClickPayload(itemStack));
}
}