graddle update

This commit is contained in:
lukasabbe
2025-03-25 17:43:17 +01:00
parent eb2636bd5c
commit 670fe1328b
23 changed files with 793 additions and 0 deletions
@@ -0,0 +1,11 @@
package me.lukasabbe.bookshelfinspector.network;
import me.lukasabbe.bookshelfinspector.Bookshelfinspector;
import net.minecraft.util.Identifier;
public class BookShelfInspectorNetworkConstants {
public static final Identifier BOOK_SHELF_INVENTORY_REQUEST_PACKET_ID = Identifier.of(Bookshelfinspector.MOD_ID,"book_shelf_inventory_request");
public static final Identifier BOOK_SHELF_INVENTORY_PACKET_ID = Identifier.of(Bookshelfinspector.MOD_ID,"book_shelf_inventory");
public static final Identifier MOD_CHECK_PACKET_ID = Identifier.of(Bookshelfinspector.MOD_ID,"mod_check");
public static final Identifier LECTERN_INVENTORY_REQUEST_PACKET_ID = Identifier.of(Bookshelfinspector.MOD_ID, "lectern_inventory_request");
}
@@ -0,0 +1,28 @@
package me.lukasabbe.bookshelfinspector.network.client;
import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient;
import me.lukasabbe.bookshelfinspector.data.BookData;
import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.item.Items;
@Environment(EnvType.CLIENT)
public class BookShelfInventoryHandler implements ClientPlayNetworking.PlayPayloadHandler<BookShelfInventoryPayload> {
@Override
public void receive(BookShelfInventoryPayload bookShelfInventoryPayload, ClientPlayNetworking.Context context) {
context.client().execute(() ->{
BookshelfinspectorClient.bookShelfData.requestSent = false;
if(bookShelfInventoryPayload.itemStack().isOf(Items.AIR)){
BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = false;
BookshelfinspectorClient.currentBookData = BookData.empty();
BookshelfinspectorClient.currentBookData.slotId = -2;
}
else{
BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = true;
BookshelfinspectorClient.currentBookData = new BookData(bookShelfInventoryPayload.itemStack(),bookShelfInventoryPayload.pos(),bookShelfInventoryPayload.slotNum());
}
});
}
}
@@ -0,0 +1,19 @@
package me.lukasabbe.bookshelfinspector.network.client;
import me.lukasabbe.bookshelfinspector.Bookshelfinspector;
import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient;
import me.lukasabbe.bookshelfinspector.network.packets.ModCheckPayload;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
@Environment(EnvType.CLIENT)
public class ModPayloadHandler implements ClientPlayNetworking.PlayPayloadHandler<ModCheckPayload> {
@Override
public void receive(ModCheckPayload modCheckPayload, ClientPlayNetworking.Context context) {
context.client().execute(() ->{
Bookshelfinspector.LOGGER.info("[bookshelfinspector] Connected to server");
BookshelfinspectorClient.modAvailable = true;
});
}
}
@@ -0,0 +1,23 @@
package me.lukasabbe.bookshelfinspector.network.packets;
import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants;
import net.minecraft.item.ItemStack;
import net.minecraft.network.RegistryByteBuf;
import net.minecraft.network.codec.PacketCodec;
import net.minecraft.network.codec.PacketCodecs;
import net.minecraft.network.packet.CustomPayload;
import net.minecraft.util.math.BlockPos;
public record BookShelfInventoryPayload(ItemStack itemStack, BlockPos pos, int slotNum) implements CustomPayload{
public static final CustomPayload.Id<BookShelfInventoryPayload> ID = new CustomPayload.Id<>(BookShelfInspectorNetworkConstants.BOOK_SHELF_INVENTORY_PACKET_ID);
public static final PacketCodec<RegistryByteBuf, BookShelfInventoryPayload> CODEC = PacketCodec.tuple(
ItemStack.OPTIONAL_PACKET_CODEC, BookShelfInventoryPayload::itemStack,
BlockPos.PACKET_CODEC, BookShelfInventoryPayload::pos,
PacketCodecs.INTEGER, BookShelfInventoryPayload::slotNum,
BookShelfInventoryPayload::new);
@Override
public CustomPayload.Id<? extends CustomPayload> getId() {
return ID;
}
}
@@ -0,0 +1,23 @@
package me.lukasabbe.bookshelfinspector.network.packets;
import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants;
import net.minecraft.network.RegistryByteBuf;
import net.minecraft.network.codec.PacketCodec;
import net.minecraft.network.codec.PacketCodecs;
import net.minecraft.network.packet.CustomPayload;
import net.minecraft.util.math.BlockPos;
public record BookShelfInventoryRequestPayload(BlockPos pos, int slotNum) implements CustomPayload {
public static final CustomPayload.Id<BookShelfInventoryRequestPayload> ID = new CustomPayload.Id<>(BookShelfInspectorNetworkConstants.BOOK_SHELF_INVENTORY_REQUEST_PACKET_ID);
public static final PacketCodec<RegistryByteBuf, BookShelfInventoryRequestPayload> CODEC = PacketCodec.tuple(
BlockPos.PACKET_CODEC,BookShelfInventoryRequestPayload::pos,
PacketCodecs.INTEGER, BookShelfInventoryRequestPayload::slotNum,
BookShelfInventoryRequestPayload::new);
@Override
public Id<? extends CustomPayload> getId() {
return ID;
}
}
@@ -0,0 +1,20 @@
package me.lukasabbe.bookshelfinspector.network.packets;
import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants;
import net.minecraft.network.RegistryByteBuf;
import net.minecraft.network.codec.PacketCodec;
import net.minecraft.network.packet.CustomPayload;
import net.minecraft.util.math.BlockPos;
public record LecternInventoryRequestPayload(BlockPos pos) implements CustomPayload{
public static final CustomPayload.Id<LecternInventoryRequestPayload> ID = new CustomPayload.Id<>(BookShelfInspectorNetworkConstants.LECTERN_INVENTORY_REQUEST_PACKET_ID);
public static final PacketCodec<RegistryByteBuf, LecternInventoryRequestPayload> CODEC = PacketCodec.tuple(
BlockPos.PACKET_CODEC,LecternInventoryRequestPayload::pos,
LecternInventoryRequestPayload::new);
@Override
public CustomPayload.Id<? extends CustomPayload> getId() {
return ID;
}
}
@@ -0,0 +1,21 @@
package me.lukasabbe.bookshelfinspector.network.packets;
import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants;
import net.minecraft.network.RegistryByteBuf;
import net.minecraft.network.codec.PacketCodec;
import net.minecraft.network.codec.PacketCodecs;
import net.minecraft.network.packet.CustomPayload;
public record ModCheckPayload(boolean modActivated) implements CustomPayload {
public static final CustomPayload.Id<ModCheckPayload> ID = new CustomPayload.Id<>(BookShelfInspectorNetworkConstants.MOD_CHECK_PACKET_ID);
public static final PacketCodec<RegistryByteBuf, ModCheckPayload> CODEC = PacketCodec.tuple(
PacketCodecs.BOOLEAN, ModCheckPayload::modActivated,
ModCheckPayload::new
);
@Override
public Id<? extends CustomPayload> getId() {
return ID;
}
}
@@ -0,0 +1,25 @@
package me.lukasabbe.bookshelfinspector.network.server;
import me.lukasabbe.bookshelfinspector.Bookshelfinspector;
import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload;
import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload;
import me.lukasabbe.bookshelfinspector.util.BookshelfTools;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
public class BookShelfInventoryRequestPayloadHandler implements ServerPlayNetworking.PlayPayloadHandler<BookShelfInventoryRequestPayload> {
@Override
public void receive(BookShelfInventoryRequestPayload bookShelfInventoryRequestPayload, ServerPlayNetworking.Context context) {
context.server().execute(() -> {
if(Bookshelfinspector.serverInstance == null) return;
ItemStack stack = BookshelfTools.getItemById(bookShelfInventoryRequestPayload.pos(),bookShelfInventoryRequestPayload.slotNum(),context.player());
if(stack == null){
ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(Items.AIR.getDefaultStack(), bookShelfInventoryRequestPayload.pos(), bookShelfInventoryRequestPayload.slotNum()));
return;
}
ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, bookShelfInventoryRequestPayload.pos(), bookShelfInventoryRequestPayload.slotNum()));
});
}
}
@@ -0,0 +1,26 @@
package me.lukasabbe.bookshelfinspector.network.server;
import me.lukasabbe.bookshelfinspector.Bookshelfinspector;
import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload;
import me.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload;
import me.lukasabbe.bookshelfinspector.util.LecternTools;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
public class LecternInventoryRequestPayloadHandler implements ServerPlayNetworking.PlayPayloadHandler<LecternInventoryRequestPayload>{
@Override
public void receive(LecternInventoryRequestPayload lecternInventoryRequestPayload, ServerPlayNetworking.Context context) {
context.server().execute(() ->{
if(Bookshelfinspector.serverInstance == null) return;
ItemStack stack = LecternTools.getItemStack(lecternInventoryRequestPayload.pos(), context.player());
if(stack == null){
ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(Items.AIR.getDefaultStack(), lecternInventoryRequestPayload.pos(), 0));
return;
}
ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, lecternInventoryRequestPayload.pos(), 0));
});
}
}