mirror of
https://github.com/lukasabbe/bookshelf-inspector.git
synced 2026-04-30 10:40:53 +00:00
+5
-5
@@ -2,16 +2,16 @@
|
|||||||
org.gradle.jvmargs=-Xmx1G
|
org.gradle.jvmargs=-Xmx1G
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check these on https://modmuss50.me/fabric.html
|
# check these on https://modmuss50.me/fabric.html
|
||||||
minecraft_version=1.21.2
|
minecraft_version=24w44a
|
||||||
yarn_mappings=1.21.2+build.1
|
yarn_mappings=24w44a+build.1
|
||||||
loader_version=0.16.7
|
loader_version=0.16.9
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=1.5+1.21.2
|
mod_version=1.6+1.21.4-SNAPSHOT.1
|
||||||
maven_group=me.lukasabbe
|
maven_group=me.lukasabbe
|
||||||
archives_base_name=Bookshelfinspector
|
archives_base_name=Bookshelfinspector
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
fabric_version=0.106.1+1.21.2
|
fabric_version=0.107.0+1.21.4
|
||||||
cloth_config=16.0.141
|
cloth_config=16.0.141
|
||||||
modmenu=12.0.0-beta.1
|
modmenu=12.0.0-beta.1
|
||||||
YAML_snake=2.2
|
YAML_snake=2.2
|
||||||
@@ -1,17 +1,15 @@
|
|||||||
package me.lukasabbe.bookshelfinspector;
|
package me.lukasabbe.bookshelfinspector;
|
||||||
|
|
||||||
import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryPayload;
|
import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload;
|
||||||
import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryRequestPayload;
|
import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload;
|
||||||
import me.lukasabbe.bookshelfinspector.network.LecternInventoryRequestPayload;
|
import me.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload;
|
||||||
import me.lukasabbe.bookshelfinspector.network.ModCheckPayload;
|
import me.lukasabbe.bookshelfinspector.network.packets.ModCheckPayload;
|
||||||
import me.lukasabbe.bookshelfinspector.util.BookshelfTools;
|
import me.lukasabbe.bookshelfinspector.network.server.BookShelfInventoryRequestPayloadHandler;
|
||||||
import me.lukasabbe.bookshelfinspector.util.LecternTools;
|
import me.lukasabbe.bookshelfinspector.network.server.LecternInventoryRequestPayloadHandler;
|
||||||
import net.fabricmc.api.ModInitializer;
|
import net.fabricmc.api.ModInitializer;
|
||||||
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
|
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
|
||||||
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
|
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.Items;
|
|
||||||
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;
|
||||||
@@ -29,28 +27,9 @@ public class Bookshelfinspector implements ModInitializer {
|
|||||||
PayloadTypeRegistry.playS2C().register(BookShelfInventoryPayload.ID,BookShelfInventoryPayload.CODEC);
|
PayloadTypeRegistry.playS2C().register(BookShelfInventoryPayload.ID,BookShelfInventoryPayload.CODEC);
|
||||||
PayloadTypeRegistry.playS2C().register(ModCheckPayload.ID, ModCheckPayload.CODEC);
|
PayloadTypeRegistry.playS2C().register(ModCheckPayload.ID, ModCheckPayload.CODEC);
|
||||||
|
|
||||||
ServerPlayNetworking.registerGlobalReceiver(BookShelfInventoryRequestPayload.ID,((payload, context) -> context.server().execute(() -> {
|
ServerPlayNetworking.registerGlobalReceiver(BookShelfInventoryRequestPayload.ID, new BookShelfInventoryRequestPayloadHandler());
|
||||||
if(Bookshelfinspector.serverInstance == null) return;
|
|
||||||
|
|
||||||
ItemStack stack = BookshelfTools.getItemById(payload.pos(),payload.slotNum(),context.player());
|
ServerPlayNetworking.registerGlobalReceiver(LecternInventoryRequestPayload.ID, new LecternInventoryRequestPayloadHandler());
|
||||||
if(stack == null){
|
|
||||||
ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(Items.AIR.getDefaultStack(), payload.pos(), payload.slotNum()));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, payload.pos(), payload.slotNum()));
|
|
||||||
})));
|
|
||||||
|
|
||||||
ServerPlayNetworking.registerGlobalReceiver(LecternInventoryRequestPayload.ID, ((payload, context) -> context.server().execute(() ->{
|
|
||||||
if(Bookshelfinspector.serverInstance == null) return;
|
|
||||||
|
|
||||||
ItemStack stack = LecternTools.getItemStack(payload.pos(), context.player());
|
|
||||||
|
|
||||||
if(stack == null){
|
|
||||||
ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(Items.AIR.getDefaultStack(), payload.pos(), 0));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, payload.pos(), 0));
|
|
||||||
})));
|
|
||||||
|
|
||||||
ServerPlayConnectionEvents.JOIN.register(((handler, sender, server) -> {
|
ServerPlayConnectionEvents.JOIN.register(((handler, sender, server) -> {
|
||||||
serverInstance = server;
|
serverInstance = server;
|
||||||
|
|||||||
@@ -3,14 +3,15 @@ package me.lukasabbe.bookshelfinspector;
|
|||||||
import me.lukasabbe.bookshelfinspector.config.Config;
|
import me.lukasabbe.bookshelfinspector.config.Config;
|
||||||
import me.lukasabbe.bookshelfinspector.data.BookData;
|
import me.lukasabbe.bookshelfinspector.data.BookData;
|
||||||
import me.lukasabbe.bookshelfinspector.data.BookShelfData;
|
import me.lukasabbe.bookshelfinspector.data.BookShelfData;
|
||||||
import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryPayload;
|
import me.lukasabbe.bookshelfinspector.network.client.BookShelfInventoryHandler;
|
||||||
import me.lukasabbe.bookshelfinspector.network.ModCheckPayload;
|
import me.lukasabbe.bookshelfinspector.network.client.ModPayloadHandler;
|
||||||
|
import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload;
|
||||||
|
import me.lukasabbe.bookshelfinspector.network.packets.ModCheckPayload;
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
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;
|
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
public class BookshelfinspectorClient implements ClientModInitializer {
|
public class BookshelfinspectorClient implements ClientModInitializer {
|
||||||
@@ -23,26 +24,9 @@ public class BookshelfinspectorClient implements ClientModInitializer {
|
|||||||
@Override
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
config.loadConfig();
|
config.loadConfig();
|
||||||
ClientPlayNetworking.registerGlobalReceiver(BookShelfInventoryPayload.ID,
|
ClientPlayNetworking.registerGlobalReceiver(BookShelfInventoryPayload.ID, new BookShelfInventoryHandler());
|
||||||
((payload, context) ->
|
ClientPlayNetworking.registerGlobalReceiver(ModCheckPayload.ID,new ModPayloadHandler());
|
||||||
context.client().execute(() ->{
|
|
||||||
bookShelfData.requestSent = false;
|
|
||||||
if(payload.itemStack().isOf(Items.AIR)){
|
|
||||||
bookShelfData.isCurrentBookDataToggled = false;
|
|
||||||
currentBookData = BookData.empty();
|
|
||||||
currentBookData.slotId = -2;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
bookShelfData.isCurrentBookDataToggled = true;
|
|
||||||
currentBookData = new BookData(payload.itemStack(),payload.pos(),payload.slotNum());
|
|
||||||
}
|
|
||||||
})));
|
|
||||||
|
|
||||||
ClientPlayNetworking.registerGlobalReceiver(ModCheckPayload.ID,
|
|
||||||
(payload, context) -> context.client().execute(() ->{
|
|
||||||
Bookshelfinspector.LOGGER.info("[bookshelfinspector] Connected to server");
|
|
||||||
modAvailable = true;
|
|
||||||
}));
|
|
||||||
ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> {
|
ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> {
|
||||||
modAvailable = false;
|
modAvailable = false;
|
||||||
bookShelfData = new BookShelfData();
|
bookShelfData = new BookShelfData();
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import java.util.Map;
|
|||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
public class Config {
|
public class Config {
|
||||||
public boolean lecternToggle = true;
|
public boolean lecternToggle = true;
|
||||||
|
public int scale = 10;
|
||||||
|
|
||||||
public void loadConfig(){
|
public void loadConfig(){
|
||||||
Path configPath = FabricLoader.getInstance().getConfigDir().resolve("bookshelfinspector-config.yml");
|
Path configPath = FabricLoader.getInstance().getConfigDir().resolve("bookshelfinspector-config.yml");
|
||||||
@@ -26,6 +27,9 @@ public class Config {
|
|||||||
if(configMap.containsKey("lectern-toggle")){
|
if(configMap.containsKey("lectern-toggle")){
|
||||||
lecternToggle = (boolean) configMap.get("lectern-toggle");
|
lecternToggle = (boolean) configMap.get("lectern-toggle");
|
||||||
}
|
}
|
||||||
|
if(configMap.containsKey("scale")){
|
||||||
|
scale = (int) configMap.get("scale");
|
||||||
|
}
|
||||||
|
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
@@ -50,6 +54,7 @@ public class Config {
|
|||||||
try{
|
try{
|
||||||
Map<String, Object> configMap = yaml.load(new FileReader(configPath.toFile()));
|
Map<String, Object> configMap = yaml.load(new FileReader(configPath.toFile()));
|
||||||
configMap.put("lectern-toggle",lecternToggle);
|
configMap.put("lectern-toggle",lecternToggle);
|
||||||
|
configMap.put("scale",scale);
|
||||||
FileWriter writer = new FileWriter(configPath.toString());
|
FileWriter writer = new FileWriter(configPath.toString());
|
||||||
yaml.dump(configMap,writer);
|
yaml.dump(configMap,writer);
|
||||||
writer.close();
|
writer.close();
|
||||||
|
|||||||
@@ -26,7 +26,12 @@ public class ModMenu implements ModMenuApi {
|
|||||||
.startBooleanToggle(Text.translatable("bookshelfinspector.config.lectern.toggle"), BookshelfinspectorClient.config.lecternToggle)
|
.startBooleanToggle(Text.translatable("bookshelfinspector.config.lectern.toggle"), BookshelfinspectorClient.config.lecternToggle)
|
||||||
.setTooltip(Text.translatable("bookshelfinspector.config.lectern.toggle.tooltip"))
|
.setTooltip(Text.translatable("bookshelfinspector.config.lectern.toggle.tooltip"))
|
||||||
.setDefaultValue(true)
|
.setDefaultValue(true)
|
||||||
.setSaveConsumer(val -> BookshelfinspectorClient.config.lecternToggle = val).build());
|
.setSaveConsumer(val -> BookshelfinspectorClient.config.lecternToggle = val).build())
|
||||||
|
.addEntry(entryBuilder
|
||||||
|
.startIntSlider(Text.translatable("bookshelfinspector.config.scale"),BookshelfinspectorClient.config.scale,0,20)
|
||||||
|
.setTooltip(Text.translatable("bookshelfinspector.config.scale.tooltip"))
|
||||||
|
.setDefaultValue(10).setSaveConsumer(val -> BookshelfinspectorClient.config.scale = val)
|
||||||
|
.build());
|
||||||
builder.setSavingRunnable(BookshelfinspectorClient.config::saveConfig);
|
builder.setSavingRunnable(BookshelfinspectorClient.config::saveConfig);
|
||||||
return builder.build();
|
return builder.build();
|
||||||
};
|
};
|
||||||
|
|||||||
+28
@@ -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;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package me.lukasabbe.bookshelfinspector.network;
|
package me.lukasabbe.bookshelfinspector.network.packets;
|
||||||
|
|
||||||
|
import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.network.RegistryByteBuf;
|
import net.minecraft.network.RegistryByteBuf;
|
||||||
import net.minecraft.network.codec.PacketCodec;
|
import net.minecraft.network.codec.PacketCodec;
|
||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package me.lukasabbe.bookshelfinspector.network;
|
package me.lukasabbe.bookshelfinspector.network.packets;
|
||||||
|
|
||||||
|
import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants;
|
||||||
import net.minecraft.network.RegistryByteBuf;
|
import net.minecraft.network.RegistryByteBuf;
|
||||||
import net.minecraft.network.codec.PacketCodec;
|
import net.minecraft.network.codec.PacketCodec;
|
||||||
import net.minecraft.network.codec.PacketCodecs;
|
import net.minecraft.network.codec.PacketCodecs;
|
||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package me.lukasabbe.bookshelfinspector.network;
|
package me.lukasabbe.bookshelfinspector.network.packets;
|
||||||
|
|
||||||
|
import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants;
|
||||||
import net.minecraft.network.RegistryByteBuf;
|
import net.minecraft.network.RegistryByteBuf;
|
||||||
import net.minecraft.network.codec.PacketCodec;
|
import net.minecraft.network.codec.PacketCodec;
|
||||||
import net.minecraft.network.packet.CustomPayload;
|
import net.minecraft.network.packet.CustomPayload;
|
||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package me.lukasabbe.bookshelfinspector.network;
|
package me.lukasabbe.bookshelfinspector.network.packets;
|
||||||
|
|
||||||
|
import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants;
|
||||||
import net.minecraft.network.RegistryByteBuf;
|
import net.minecraft.network.RegistryByteBuf;
|
||||||
import net.minecraft.network.codec.PacketCodec;
|
import net.minecraft.network.codec.PacketCodec;
|
||||||
import net.minecraft.network.codec.PacketCodecs;
|
import net.minecraft.network.codec.PacketCodecs;
|
||||||
+25
@@ -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()));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
+26
@@ -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));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,7 +5,9 @@ import me.lukasabbe.bookshelfinspector.data.BookData;
|
|||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
import net.minecraft.client.font.TextRenderer;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
|
import net.minecraft.client.util.math.MatrixStack;
|
||||||
import net.minecraft.component.DataComponentTypes;
|
import net.minecraft.component.DataComponentTypes;
|
||||||
import net.minecraft.component.type.ItemEnchantmentsComponent;
|
import net.minecraft.component.type.ItemEnchantmentsComponent;
|
||||||
import net.minecraft.enchantment.Enchantment;
|
import net.minecraft.enchantment.Enchantment;
|
||||||
@@ -31,27 +33,37 @@ public class HudRenderer {
|
|||||||
if(itemStack.getRarity().getFormatting().getColorValue() != null){
|
if(itemStack.getRarity().getFormatting().getColorValue() != null){
|
||||||
color = itemStack.getRarity().getFormatting().getColorValue();
|
color = itemStack.getRarity().getFormatting().getColorValue();
|
||||||
}
|
}
|
||||||
context.drawCenteredTextWithShadow(client.textRenderer, itemStack.getName(), x,y+10, color);
|
float scaleFactor = ((float) BookshelfinspectorClient.config.scale /10);
|
||||||
|
drawScaledText(context, itemStack.getName(), x,y+((int)(10*scaleFactor)), color, client.textRenderer);
|
||||||
|
|
||||||
ItemEnchantmentsComponent storedComponents = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS);
|
ItemEnchantmentsComponent storedComponents = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS);
|
||||||
if(storedComponents != null){
|
if(storedComponents != null){
|
||||||
int i = 20;
|
int i = ((int)(20*scaleFactor));
|
||||||
for(RegistryEntry<Enchantment> enchantment : storedComponents.getEnchantments()){
|
for(RegistryEntry<Enchantment> enchantment : storedComponents.getEnchantments()){
|
||||||
String lvl = "";
|
String lvl = "";
|
||||||
if(storedComponents.getLevel(enchantment) != 1)
|
if(storedComponents.getLevel(enchantment) != 1)
|
||||||
lvl = String.valueOf(storedComponents.getLevel(enchantment));
|
lvl = String.valueOf(storedComponents.getLevel(enchantment));
|
||||||
|
|
||||||
context.drawCenteredTextWithShadow(client.textRenderer, enchantment.value().description().copy().append(" " + lvl), x,y+i, 0xFFFFFFFF);
|
drawScaledText(context,enchantment.value().description().copy().append(" " + lvl), x,y+i, 0xFFFFFFFF,client.textRenderer);
|
||||||
i+=10;
|
i+=(int)(10*scaleFactor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var writtenBookContentComponent = itemStack.getComponents().get(DataComponentTypes.WRITTEN_BOOK_CONTENT);
|
var writtenBookContentComponent = itemStack.getComponents().get(DataComponentTypes.WRITTEN_BOOK_CONTENT);
|
||||||
|
|
||||||
if(writtenBookContentComponent != null){
|
if(writtenBookContentComponent != null){
|
||||||
context.drawCenteredTextWithShadow(client.textRenderer, Text.translatable("book.byAuthor",writtenBookContentComponent.author()), x,y+20, 0xFFFFFFFF);
|
drawScaledText(context, Text.translatable("book.byAuthor",writtenBookContentComponent.author()), x,y+(int)(20*scaleFactor), 0xFFFFFFFF,client.textRenderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private static void drawScaledText(DrawContext context, Text text, int centerX, int y, int color, TextRenderer textRenderer){
|
||||||
|
MatrixStack stack = context.getMatrices();
|
||||||
|
stack.push();
|
||||||
|
stack.translate(centerX,y,0);
|
||||||
|
stack.scale((float) BookshelfinspectorClient.config.scale /10, (float) BookshelfinspectorClient.config.scale /10, (float) BookshelfinspectorClient.config.scale /10);
|
||||||
|
stack.translate(-centerX,-y,0);
|
||||||
|
context.drawCenteredTextWithShadow(textRenderer,text,centerX,y,color);
|
||||||
|
stack.pop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package me.lukasabbe.bookshelfinspector.util;
|
|||||||
import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient;
|
import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient;
|
||||||
import me.lukasabbe.bookshelfinspector.data.BookData;
|
import me.lukasabbe.bookshelfinspector.data.BookData;
|
||||||
import me.lukasabbe.bookshelfinspector.mixin.BookshelfInvoker;
|
import me.lukasabbe.bookshelfinspector.mixin.BookshelfInvoker;
|
||||||
import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryRequestPayload;
|
import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload;
|
||||||
import me.lukasabbe.bookshelfinspector.network.LecternInventoryRequestPayload;
|
import me.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload;
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
||||||
|
|||||||
@@ -2,5 +2,7 @@
|
|||||||
"bookshelfinspector.config.title": "Bookshelf Inspector Config",
|
"bookshelfinspector.config.title": "Bookshelf Inspector Config",
|
||||||
"bookshelfinspector.config.category": "Settings",
|
"bookshelfinspector.config.category": "Settings",
|
||||||
"bookshelfinspector.config.lectern.toggle": "Turn OFF or ON lectern support",
|
"bookshelfinspector.config.lectern.toggle": "Turn OFF or ON lectern support",
|
||||||
"bookshelfinspector.config.lectern.toggle.tooltip": "This will turn OFF/ON the visibility of lectern inspection"
|
"bookshelfinspector.config.lectern.toggle.tooltip": "This will turn OFF/ON the visibility of lectern inspection",
|
||||||
|
"bookshelfinspector.config.scale": "Change the scale of the text",
|
||||||
|
"bookshelfinspector.config.scale.tooltip": "Change the scale of the text by dragging the slider"
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,7 @@
|
|||||||
"bookshelfinspector.config.title": "Bookshelf Inspector Config",
|
"bookshelfinspector.config.title": "Bookshelf Inspector Config",
|
||||||
"bookshelfinspector.config.category": "Inställningar",
|
"bookshelfinspector.config.category": "Inställningar",
|
||||||
"bookshelfinspector.config.lectern.toggle": "Stäng AV eller PÅ läspulpet stöd",
|
"bookshelfinspector.config.lectern.toggle": "Stäng AV eller PÅ läspulpet stöd",
|
||||||
"bookshelfinspector.config.lectern.toggle.tooltip": "Denna inställning kommer stänga av eller på synligeten av läspulpet inspection"
|
"bookshelfinspector.config.lectern.toggle.tooltip": "Denna inställning kommer stänga av eller på synligeten av läspulpet inspektion",
|
||||||
|
"bookshelfinspector.config.scale": "Ändra storleken på texten",
|
||||||
|
"bookshelfinspector.config.scale.tooltip": "Du kan göra det igenom att dra på den nedan"
|
||||||
}
|
}
|
||||||
@@ -25,9 +25,10 @@
|
|||||||
],
|
],
|
||||||
"depends": {
|
"depends": {
|
||||||
"fabricloader": ">=${loader_version}",
|
"fabricloader": ">=${loader_version}",
|
||||||
"minecraft": ">=1.21.2",
|
"minecraft": ">=1.21.4-alpha.24.44.a",
|
||||||
"fabric-api-base": "*",
|
"fabric-api-base": "*",
|
||||||
"fabric-networking-api-v1": "*",
|
"fabric-networking-api-v1": "*",
|
||||||
"fabric-lifecycle-events-v1": "*"
|
"fabric-lifecycle-events-v1": "*",
|
||||||
|
"fabric-resource-loader-v0": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user