Enchanted books now show there lvl when looked at

This commit is contained in:
lukasabbe
2024-10-16 13:58:27 +02:00
parent 2d6ce356de
commit 3b00cbe865
5 changed files with 20 additions and 9 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ minecraft_version=1.21
yarn_mappings=1.21+build.9 yarn_mappings=1.21+build.9
loader_version=0.16.5 loader_version=0.16.5
# Mod Properties # Mod Properties
mod_version=1.3+1.21 mod_version=1.4+1.21
maven_group=me.lukasabbe maven_group=me.lukasabbe
archives_base_name=Bookshelfinspector archives_base_name=Bookshelfinspector
@@ -1,5 +1,6 @@
package me.lukasabbe.bookshelfinspector; package me.lukasabbe.bookshelfinspector;
import io.netty.buffer.Unpooled;
import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryPayload; import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryPayload;
import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryRequestPayload; import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryRequestPayload;
import me.lukasabbe.bookshelfinspector.network.ModCheckPayload; import me.lukasabbe.bookshelfinspector.network.ModCheckPayload;
@@ -10,6 +11,9 @@ import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import net.minecraft.network.RegistryByteBuf;
import net.minecraft.network.codec.PacketCodec;
import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -36,6 +40,7 @@ public class Bookshelfinspector implements ModInitializer {
return; return;
} }
ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, payload.pos(), payload.slotNum())); ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, payload.pos(), payload.slotNum()));
new RegistryByteBuf(Unpooled.buffer(), DynamicRegistryManager.EMPTY);
}))); })));
ServerPlayConnectionEvents.JOIN.register(((handler, sender, server) -> { ServerPlayConnectionEvents.JOIN.register(((handler, sender, server) -> {
@@ -10,7 +10,6 @@ import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import net.minecraft.text.Text;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class BookshelfinspectorClient implements ClientModInitializer { public class BookshelfinspectorClient implements ClientModInitializer {
@@ -41,6 +40,9 @@ public class BookshelfinspectorClient implements ClientModInitializer {
Bookshelfinspector.LOGGER.info("[bookshelfinspector] Connected to server"); Bookshelfinspector.LOGGER.info("[bookshelfinspector] Connected to server");
modAvailable = true; modAvailable = true;
})); }));
ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> modAvailable = false); ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> {
modAvailable = false;
bookShelfData = new BookShelfData();
});
} }
} }
@@ -5,8 +5,7 @@ import net.minecraft.network.codec.PacketCodec;
import net.minecraft.network.codec.PacketCodecs; import net.minecraft.network.codec.PacketCodecs;
import net.minecraft.network.packet.CustomPayload; import net.minecraft.network.packet.CustomPayload;
public record ModCheckPayload(boolean modActivated) implements 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 CustomPayload.Id<ModCheckPayload> ID = new CustomPayload.Id<>(BookShelfInspectorNetworkConstants.MOD_CHECK_PACKET_ID);
public static final PacketCodec<RegistryByteBuf, ModCheckPayload> CODEC = PacketCodec.tuple( public static final PacketCodec<RegistryByteBuf, ModCheckPayload> CODEC = PacketCodec.tuple(
@@ -7,6 +7,7 @@ import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.DrawContext;
import net.minecraft.component.DataComponentTypes; import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.ItemEnchantmentsComponent;
import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.Enchantment;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
@@ -32,11 +33,15 @@ public class HudRenderer {
} }
context.drawCenteredTextWithShadow(client.textRenderer, itemStack.getName(), x,y+10, color); context.drawCenteredTextWithShadow(client.textRenderer, itemStack.getName(), x,y+10, color);
var storedComponets = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS); ItemEnchantmentsComponent storedComponents = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS);
if(storedComponets != null){ if(storedComponents != null){
int i = 20; int i = 20;
for(RegistryEntry<Enchantment> enchantment : storedComponets.getEnchantments()){ for(RegistryEntry<Enchantment> enchantment : storedComponents.getEnchantments()){
context.drawCenteredTextWithShadow(client.textRenderer, enchantment.value().description(), x,y+i, 0xFFFFFFFF); String lvl = "";
if(storedComponents.getLevel(enchantment) != 1)
lvl = String.valueOf(storedComponents.getLevel(enchantment));
context.drawCenteredTextWithShadow(client.textRenderer, enchantment.value().description().copy().append(" " + lvl), x,y+i, 0xFFFFFFFF);
i+=10; i+=10;
} }
} }