diff --git a/gradle.properties b/gradle.properties index 1ec3bc9..bada694 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ minecraft_version=1.21 yarn_mappings=1.21+build.9 loader_version=0.16.5 # Mod Properties -mod_version=1.1+1.21 +mod_version=1.2+1.21 maven_group=me.lukasabbe archives_base_name=Bookshelfinspector diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/BookshelfinspectorClient.java b/src/main/java/me/lukasabbe/bookshelfinspector/BookshelfinspectorClient.java index ce8cb4b..02f8065 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/BookshelfinspectorClient.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/BookshelfinspectorClient.java @@ -7,6 +7,7 @@ import me.lukasabbe.bookshelfinspector.network.ModCheckPayload; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.minecraft.item.Items; @@ -39,5 +40,6 @@ public class BookshelfinspectorClient implements ClientModInitializer { Bookshelfinspector.LOGGER.info("[bookshelfinspector] Connected to server"); modAvailable = true; })); + ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> modAvailable = false); } } diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/mixin/InGameHudMixin.java b/src/main/java/me/lukasabbe/bookshelfinspector/mixin/InGameHudMixin.java index 4e7f50f..39d25a4 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/mixin/InGameHudMixin.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/mixin/InGameHudMixin.java @@ -1,16 +1,10 @@ package me.lukasabbe.bookshelfinspector.mixin; -import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient; -import me.lukasabbe.bookshelfinspector.data.BookData; +import me.lukasabbe.bookshelfinspector.util.HudRenderer; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.render.RenderTickCounter; -import net.minecraft.component.DataComponentTypes; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.item.ItemStack; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.text.Text; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -25,38 +19,6 @@ public class InGameHudMixin { @Inject(method = "render",at=@At("RETURN")) public void render(DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci){ - if(!BookshelfinspectorClient.modAvailable) return; - - if(client.options.hudHidden) return; - - if(BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled){ - final BookData currentBookData = BookshelfinspectorClient.currentBookData; - int screenWidth = client.getWindow().getScaledWidth(); - int screenHeight = client.getWindow().getScaledHeight(); - int x = screenWidth / 2; - int y = screenHeight / 2; - final ItemStack itemStack = currentBookData.itemStack; - int color = 0xFFFFFFFF; - if(itemStack.getRarity().getFormatting().getColorValue() != null){ - color = itemStack.getRarity().getFormatting().getColorValue(); - } - context.drawCenteredTextWithShadow(client.textRenderer, itemStack.getName(), x,y+10, color); - - var storedComponets = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS); - if(storedComponets != null){ - int i = 20; - for(RegistryEntry enchantment : storedComponets.getEnchantments()){ - context.drawCenteredTextWithShadow(client.textRenderer, enchantment.value().description(), x,y+i, 0xFFFFFFFF); - i+=10; - } - } - - var writtenBookContentComponent = itemStack.getComponents().get(DataComponentTypes.WRITTEN_BOOK_CONTENT); - - if(writtenBookContentComponent != null){ - context.drawCenteredTextWithShadow(client.textRenderer, Text.translatableWithFallback("bookshelfinspector.text.book","By ").append(writtenBookContentComponent.author()), x,y+20, 0xFFFFFFFF); - } - - } + HudRenderer.hudRender(context, client); } } diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/util/HudRenderer.java b/src/main/java/me/lukasabbe/bookshelfinspector/util/HudRenderer.java new file mode 100644 index 0000000..bc4b730 --- /dev/null +++ b/src/main/java/me/lukasabbe/bookshelfinspector/util/HudRenderer.java @@ -0,0 +1,49 @@ +package me.lukasabbe.bookshelfinspector.util; + +import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient; +import me.lukasabbe.bookshelfinspector.data.BookData; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.component.DataComponentTypes; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.text.Text; + +public class HudRenderer { + public static void hudRender(DrawContext context, MinecraftClient client){ + if(!BookshelfinspectorClient.modAvailable) return; + + if(client.options.hudHidden) return; + + if(BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled){ + final BookData currentBookData = BookshelfinspectorClient.currentBookData; + int screenWidth = client.getWindow().getScaledWidth(); + int screenHeight = client.getWindow().getScaledHeight(); + int x = screenWidth / 2; + int y = screenHeight / 2; + final ItemStack itemStack = currentBookData.itemStack; + int color = 0xFFFFFFFF; + if(itemStack.getRarity().getFormatting().getColorValue() != null){ + color = itemStack.getRarity().getFormatting().getColorValue(); + } + context.drawCenteredTextWithShadow(client.textRenderer, itemStack.getName(), x,y+10, color); + + var storedComponets = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS); + if(storedComponets != null){ + int i = 20; + for(RegistryEntry enchantment : storedComponets.getEnchantments()){ + context.drawCenteredTextWithShadow(client.textRenderer, enchantment.value().description(), x,y+i, 0xFFFFFFFF); + i+=10; + } + } + + var writtenBookContentComponent = itemStack.getComponents().get(DataComponentTypes.WRITTEN_BOOK_CONTENT); + + if(writtenBookContentComponent != null){ + context.drawCenteredTextWithShadow(client.textRenderer, Text.translatableWithFallback("bookshelfinspector.text.book","by ").append(writtenBookContentComponent.author()), x,y+20, 0xFFFFFFFF); + } + + } + } +} diff --git a/src/main/resources/assets/bookshelfinspector/lang/en_us.json b/src/main/resources/assets/bookshelfinspector/lang/en_us.json index 7e1e6fd..bc636d2 100644 --- a/src/main/resources/assets/bookshelfinspector/lang/en_us.json +++ b/src/main/resources/assets/bookshelfinspector/lang/en_us.json @@ -1,3 +1,3 @@ { - "bookshelfinspector.text.book" : "By " + "bookshelfinspector.text.book" : "by " } \ No newline at end of file diff --git a/src/main/resources/assets/bookshelfinspector/lang/sv_se.json b/src/main/resources/assets/bookshelfinspector/lang/sv_se.json index ad2146f..94f40fb 100644 --- a/src/main/resources/assets/bookshelfinspector/lang/sv_se.json +++ b/src/main/resources/assets/bookshelfinspector/lang/sv_se.json @@ -1,3 +1,3 @@ { - "bookshelfinspector.text.book" : "Av " + "bookshelfinspector.text.book" : "av " } \ No newline at end of file