From ce5e9a32f70d0aac6ca5946c2ddaff2aa09a5d8f Mon Sep 17 00:00:00 2001 From: kitUIN Date: Mon, 5 Aug 2024 03:08:29 +0800 Subject: [PATCH] :bug: add integration --- .../integration/ActionLibIntegration.java | 15 ++++ .../integration/ChatImageClientAdapter.java | 68 +++++++++++++++++++ .../integration/ChatImageLogger.java | 37 ++++++++++ .../integration/ModmenuIntegration.java | 14 ++++ 4 files changed, 134 insertions(+) create mode 100644 fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ActionLibIntegration.java create mode 100644 fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ChatImageClientAdapter.java create mode 100644 fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ChatImageLogger.java create mode 100644 fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ModmenuIntegration.java diff --git a/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ActionLibIntegration.java b/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ActionLibIntegration.java new file mode 100644 index 00000000..4601aa56 --- /dev/null +++ b/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ActionLibIntegration.java @@ -0,0 +1,15 @@ +package io.github.kituin.chatimage.integration; + +import io.github.kituin.actionlib.IActionRegisterApi; +import net.minecraft.text.HoverEvent; + +import java.util.List; + +import static io.github.kituin.chatimage.tool.ChatImageStyle.SHOW_IMAGE; + +public class ActionLibIntegration implements IActionRegisterApi { + @Override + public List registerHoverEventAction() { + return List.of(SHOW_IMAGE); + } +} \ No newline at end of file diff --git a/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ChatImageClientAdapter.java b/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ChatImageClientAdapter.java new file mode 100644 index 00000000..ab1f19da --- /dev/null +++ b/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ChatImageClientAdapter.java @@ -0,0 +1,68 @@ +package io.github.kituin.chatimage.integration; + +import io.github.kituin.ChatImageCode.ChatImageFrame; +import io.github.kituin.ChatImageCode.IClientAdapter; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.texture.NativeImage; +import net.minecraft.client.texture.NativeImageBackedTexture; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.List; + +import static io.github.kituin.ChatImageCode.NetworkHelper.createFilePacket; +import static io.github.kituin.chatimage.client.ChatImageClient.CONFIG; +import static io.github.kituin.chatimage.client.ChatImageClient.MOD_ID; +import static io.github.kituin.chatimage.network.ChatImagePacket.*; +import static io.github.kituin.chatimage.tool.SimpleUtil.createTranslatableText; + +public class ChatImageClientAdapter implements IClientAdapter { + @Override + public int getTimeOut() { + return CONFIG.timeout; + } + + @Override + public ChatImageFrame.TextureReader loadTexture(InputStream image) throws IOException { + NativeImage nativeImage = NativeImage.read(image); + return new ChatImageFrame.TextureReader<>( + MinecraftClient.getInstance().getTextureManager().registerDynamicTexture(MOD_ID + "/chatimage", + new NativeImageBackedTexture(nativeImage)), + nativeImage.getWidth(), + nativeImage.getHeight() + ); + } + + @Override + public void sendToServer(String url, File file, boolean isToServer) { + if (isToServer) { + List stringList = createFilePacket(url, file); + sendPacketAsync(FILE_CHANNEL, stringList); + } else { + loadFromServer(url); + } + } + + @Override + public void checkCachePath() { + File folder = new File(CONFIG.cachePath); + if (!folder.exists()) { + folder.mkdirs(); + } + } + + @Override + public int getMaxFileSize() { + return CONFIG.MaxFileSize; + } + + @Override + public Text getProcessMessage(int i) { + return createTranslatableText("process.chatimage.message", i); + } + + +} \ No newline at end of file diff --git a/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ChatImageLogger.java b/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ChatImageLogger.java new file mode 100644 index 00000000..9bb9f929 --- /dev/null +++ b/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ChatImageLogger.java @@ -0,0 +1,37 @@ +package io.github.kituin.chatimage.integration; + +import io.github.kituin.ChatImageCode.IChatImageCodeLogger; +import io.github.kituin.chatimage.ChatImage; + +public class ChatImageLogger implements IChatImageCodeLogger { + + @Override + public void info(String s) { + ChatImage.LOGGER.info(s); + } + + @Override + public void info(String s, Object... objects) { + ChatImage.LOGGER.info(s, objects); + } + + @Override + public void debug(String s) { + ChatImage.LOGGER.debug(s); + } + + @Override + public void debug(String s, Object... objects) { + ChatImage.LOGGER.debug(s, objects); + } + + @Override + public void error(String s) { + ChatImage.LOGGER.error(s); + } + + @Override + public void error(String s, Object... objects) { + ChatImage.LOGGER.error(s, objects); + } +} \ No newline at end of file diff --git a/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ModmenuIntegration.java b/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ModmenuIntegration.java new file mode 100644 index 00000000..d84bb9cd --- /dev/null +++ b/fabric/origin/src/main/java/io/github/kituin/chatimage/integration/ModmenuIntegration.java @@ -0,0 +1,14 @@ +package io.github.kituin.chatimage.integration; + + +import com.terraformersmc.modmenu.api.ConfigScreenFactory; +import com.terraformersmc.modmenu.api.ModMenuApi; +import io.github.kituin.chatimage.gui.ConfigScreen; + +public class ModmenuIntegration implements ModMenuApi { + + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return ConfigScreen::new; + } +} \ No newline at end of file