From f8e53ec794bae7c026e063599a75c7bda00d352a Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Wed, 11 Sep 2024 11:26:42 +0800 Subject: [PATCH 01/24] :bug: Fix server command --- .../theword/queqiao/command/subCommand/ServerCommand.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spigot/origin/src/main/java/com/github/theword/queqiao/command/subCommand/ServerCommand.java b/spigot/origin/src/main/java/com/github/theword/queqiao/command/subCommand/ServerCommand.java index 400dce7..143d95d 100644 --- a/spigot/origin/src/main/java/com/github/theword/queqiao/command/subCommand/ServerCommand.java +++ b/spigot/origin/src/main/java/com/github/theword/queqiao/command/subCommand/ServerCommand.java @@ -1,12 +1,13 @@ package com.github.theword.queqiao.command.subCommand; import com.github.theword.queqiao.command.SpigotSubCommand; +import com.github.theword.queqiao.tool.command.subCommand.ServerCommandAbstract; import org.bukkit.command.CommandSender; import java.util.ArrayList; import java.util.List; -public class ServerCommand implements SpigotSubCommand { +public class ServerCommand extends ServerCommandAbstract implements SpigotSubCommand { @Override public boolean onCommand(CommandSender commandSender, String[] args) { commandSender.sendMessage("Server commands are not implemented yet."); @@ -38,4 +39,4 @@ public String getDescription() { public String getUsage() { return "使用:/mcqq client "; } -} +} \ No newline at end of file From 2d8667eaeab209e550d7e8fe6fc0b14a08d37406 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 16:55:03 +0800 Subject: [PATCH 02/24] :sparkles: Support log reading program --- minecraft/origin/build.gradle | 90 ++++++++++++ minecraft/origin/gradle.properties | 19 +++ minecraft/origin/settings.gradle | 1 + .../theword/queqiao/EventProcessor.java | 42 ++++++ .../com/github/theword/queqiao/QueQiao.java | 19 +++ .../github/theword/queqiao/config/Config.java | 97 +++++++++++++ .../theword/queqiao/config/RegexConfig.java | 18 +++ .../event/minecraft/MinecraftPlayer.java | 12 ++ .../minecraft/MinecraftPlayerChatEvent.java | 9 ++ .../minecraft/MinecraftPlayerJoinEvent.java | 9 ++ .../minecraft/MinecraftPlayerQuitEvent.java | 10 ++ .../theword/queqiao/handle/HandleApiImpl.java | 28 ++++ .../HandleCommandReturnMessageImpl.java | 15 ++ .../theword/queqiao/utils/FileWatcher.java | 136 ++++++++++++++++++ .../theword/queqiao/utils/LineProcessor.java | 57 ++++++++ minecraft/origin/src/main/resources/regex.yml | 16 +++ 16 files changed, 578 insertions(+) create mode 100644 minecraft/origin/build.gradle create mode 100644 minecraft/origin/gradle.properties create mode 100644 minecraft/origin/settings.gradle create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/EventProcessor.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/QueQiao.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/config/Config.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/config/RegexConfig.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleApiImpl.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/utils/FileWatcher.java create mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/utils/LineProcessor.java create mode 100644 minecraft/origin/src/main/resources/regex.yml diff --git a/minecraft/origin/build.gradle b/minecraft/origin/build.gradle new file mode 100644 index 0000000..634a2d1 --- /dev/null +++ b/minecraft/origin/build.gradle @@ -0,0 +1,90 @@ +plugins { + id 'java' + id 'com.github.johnrengelman.shadow' version '8.1.1' +} + +def getVersionFromFile() { + def versionFile = file('../../version.txt') + if (versionFile.exists()) { + return versionFile.text.trim() + } else { + throw new Exception("Version file not found: ${versionFile.absolutePath}") as Throwable + } +} + +def mod_version = getVersionFromFile() + +def getToolVersionFromFile() { + def versionFile = file('../../tool_version.txt') + if (versionFile.exists()) { + return versionFile.text.trim() + } else { + throw new Exception("Version file not found: ${versionFile.absolutePath}") as Throwable + } +} + +def tool_version = getToolVersionFromFile() + +group = mod_group_id +version = mod_version + +repositories { + mavenLocal() + mavenCentral() + maven { + name = "papermc-repo" + url = "https://repo.papermc.io/repository/maven-public/" + } + maven { + name = "sonatype" + url = "https://oss.sonatype.org/content/groups/public/" + } + maven { + url = uri(maven_repository_url) + credentials { + username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") + password = project.findProperty("gpr.key") ?: System.getenv("PACKAGE_READ_ONLY_TOKEN") + } + } +} +dependencies { + annotationProcessor "org.projectlombok:lombok:${project.lombok_version}" + compileOnly "org.projectlombok:lombok:${project.lombok_version}" + + implementation "com.github.theword.queqiao:queqiao-tool:${tool_version}" + implementation "commons-io:commons-io:${project.commons_io_version}" + implementation "org.slf4j:slf4j-simple:${slf4j_version}" + implementation "com.google.code.gson:gson:${gson_version}" + + testImplementation platform('org.junit:junit-bom:5.9.1') + testImplementation 'org.junit.jupiter:junit-jupiter' +} + +test { + useJUnitPlatform() +} + +shadowJar { + archiveBaseName.set("${mod_name}-origin") + archiveClassifier.set("") + destinationDirectory.set(file("../../QueQiao-jar/${version}")) + manifest { + attributes( + 'Main-Class': 'com.github.theword.queqiao.QueQiao' // 替换为你的主类路径 + ) + } + dependencies { + include(dependency("com.github.theword.queqiao:queqiao-tool:${tool_version}")) + include(dependency("org.java-websocket:Java-WebSocket:${java_websocket_version}")) + include(dependency("org.yaml:snakeyaml:${snakeyaml_version}")) + include(dependency("org.slf4j:slf4j-api:${slf4j_version}")) + include(dependency("org.slf4j:slf4j-simple:${slf4j_version}")) + include(dependency("com.google.code.gson:gson:${gson_version}")) + include(dependency("commons-io:commons-io:${commons_io_version}")) + } + mergeServiceFiles() +} + +tasks.build { + dependsOn shadowJar +} \ No newline at end of file diff --git a/minecraft/origin/gradle.properties b/minecraft/origin/gradle.properties new file mode 100644 index 0000000..96ab2db --- /dev/null +++ b/minecraft/origin/gradle.properties @@ -0,0 +1,19 @@ +org.gradle.jvmargs=-Xmx3G +org.gradle.daemon=false +# Mod Properties +mod_id=queqiao +mod_name=QueQiao +mod_license=MIT +mod_group_id=com.github.theword.queqiao +mod_authors=17TheWord +mod_description=Connect to nonebot2. +# Lib Properties +gson_version=2.10.1 +slf4j_version=1.7.36 +snakeyaml_version=2.2 +lombok_version=1.18.30 +commons_io_version=2.15.1 +junit_jupiter_version=5.10.0 +java_websocket_version=1.5.3 +jetbrains_annotations_version=24.0.0 +maven_repository_url=https://maven.pkg.github.com/17TheWord/QueQiaoTool diff --git a/minecraft/origin/settings.gradle b/minecraft/origin/settings.gradle new file mode 100644 index 0000000..006ea28 --- /dev/null +++ b/minecraft/origin/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'minecraft-origin' diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/EventProcessor.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/EventProcessor.java new file mode 100644 index 0000000..1e1be74 --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/EventProcessor.java @@ -0,0 +1,42 @@ +package com.github.theword.queqiao; + +import com.github.theword.queqiao.event.minecraft.MinecraftPlayer; +import com.github.theword.queqiao.event.minecraft.MinecraftPlayerChatEvent; +import com.github.theword.queqiao.event.minecraft.MinecraftPlayerJoinEvent; +import com.github.theword.queqiao.event.minecraft.MinecraftPlayerQuitEvent; + +import static com.github.theword.queqiao.tool.utils.Tool.*; +import static com.github.theword.queqiao.tool.utils.Tool.sendWebsocketMessage; + +public class EventProcessor { + /** + * 监听玩家聊天 + */ + public void onPlayerChat(String playerName, String message) { + if (!config.getSubscribeEvent().isPlayerChat()) return; + MinecraftPlayer player = new MinecraftPlayer(playerName); + MinecraftPlayerChatEvent event = new MinecraftPlayerChatEvent("", player, message); + sendWebsocketMessage(event); + } + + + /** + * 监听玩家加入事件 + */ + public void onPlayerJoin(String playerName) { + if (!config.getSubscribeEvent().isPlayerJoin()) return; + MinecraftPlayer player = new MinecraftPlayer(playerName); + MinecraftPlayerJoinEvent event = new MinecraftPlayerJoinEvent(player); + sendWebsocketMessage(event); + } + + /** + * 监听玩家离开事件 + */ + public void onPlayerQuit(String playerName) { + if (!config.getSubscribeEvent().isPlayerQuit()) return; + MinecraftPlayer player = new MinecraftPlayer(playerName); + MinecraftPlayerQuitEvent event = new MinecraftPlayerQuitEvent(player); + sendWebsocketMessage(event); + } +} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/QueQiao.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/QueQiao.java new file mode 100644 index 0000000..1946f73 --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/QueQiao.java @@ -0,0 +1,19 @@ +package com.github.theword.queqiao; + +import com.github.theword.queqiao.config.Config; +import com.github.theword.queqiao.handle.HandleApiImpl; +import com.github.theword.queqiao.handle.HandleCommandReturnMessageImpl; +import com.github.theword.queqiao.utils.FileWatcher; +import com.github.theword.queqiao.utils.LineProcessor; + + +import static com.github.theword.queqiao.tool.utils.Tool.*; + +public class QueQiao { + public static void main(String[] args) { + initTool(true, new HandleApiImpl(), new HandleCommandReturnMessageImpl()); + websocketManager.startWebsocket(null); + Config config = new Config(); + FileWatcher.fileListen(config.getLogPath(), new LineProcessor(config, new EventProcessor())); + } +} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/config/Config.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/config/Config.java new file mode 100644 index 0000000..0e3d967 --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/config/Config.java @@ -0,0 +1,97 @@ +package com.github.theword.queqiao.config; + +import com.github.theword.queqiao.tool.constant.BaseConstant; +import lombok.Data; +import org.apache.commons.io.FileUtils; +import org.yaml.snakeyaml.Yaml; + +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + +import static com.github.theword.queqiao.tool.utils.Tool.logger; + +@Data +public class Config { + private String logPath; + private Set chatRegexSet; + private Set joinRegexSet; + private Set quitRegexSet; + + public Config() { + readConfigFile("./config", "regex.yml"); + } + + + private void readConfigFile(String configFolder, String fileName) { + Path configPath = Paths.get("./" + configFolder, BaseConstant.MODULE_NAME, fileName); + checkFileExists(configPath, fileName); + readConfigValues(configPath, fileName); + } + + private void checkFileExists(Path path, String fileName) { + logger.info("正在寻找置文件 {}...", fileName); + logger.info("配置文件 {} 路径为:{}。", fileName, path.toAbsolutePath()); + if (Files.exists(path)) { + logger.info("配置文件 {} 已存在,将读取配置项。", fileName); + } else { + logger.warn("配置文件 {} 不存在,将生成默认配置文件。", fileName); + try { + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName); + assert inputStream != null; + FileUtils.copyInputStreamToFile(inputStream, path.toFile()); + logger.info("已生成默认配置文件 {}。", fileName); + } catch (IOException var9) { + logger.warn("生成配置文件 {} 失败。", fileName); + } + } + } + + private void readConfigValues(Path path, String fileName) { + logger.info("正在读取配置文件 {}...", fileName); + try { + Yaml yaml = new Yaml(); + Reader reader = Files.newBufferedReader(path); + Map configMap = yaml.load(reader); + loadConfigValues(configMap); + logger.info("读取配置文件 {} 成功。", fileName); + } catch (Exception exception) { + logger.warn("读取配置文件 {} 失败。", fileName); + logger.warn(exception.getMessage()); + logger.warn("将直接使用默认配置项。"); + } + } + + private void loadConfigValues(Map configMap) { + logPath = (String) configMap.get("log_path"); + chatRegexSet = convertToRegexConfigSet(configMap, "chat_regex"); + joinRegexSet = convertToRegexConfigSet(configMap, "join_regex"); + quitRegexSet = convertToRegexConfigSet(configMap, "quit_regex"); + } + + private Set convertToRegexConfigSet(Map configMap, String key) { + Object value = configMap.get(key); + if (!(value instanceof List)) { + logger.warn("配置项 {} 不是列表类型,将使用空集合。", key); + return new HashSet<>(); + } + + Set regexConfigs = new HashSet<>(); + for (Object item : (List) value) { + if (item instanceof Map) { + Map itemMap = (Map) item; + String regex = (String) itemMap.get("regex"); + Integer playerGroup = (Integer) itemMap.get("player_group"); + Integer messageGroup = (Integer) itemMap.getOrDefault("message_group", null); + regexConfigs.add(new RegexConfig(regex, playerGroup, messageGroup)); + } else { + logger.warn("配置项 {} 中包含非Map类型,将跳过该值。", key); + } + } + return regexConfigs; + } +} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/config/RegexConfig.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/config/RegexConfig.java new file mode 100644 index 0000000..e2c4859 --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/config/RegexConfig.java @@ -0,0 +1,18 @@ +package com.github.theword.queqiao.config; + +import lombok.Getter; + +import java.util.regex.Pattern; + +@Getter +public class RegexConfig { + Pattern pattern; + int playerGroup; + Integer messageGroup; + + public RegexConfig(String regex, int playerGroup, Integer messageGroup) { + this.pattern = Pattern.compile(regex); + this.playerGroup = playerGroup; + this.messageGroup = messageGroup; + } +} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.java new file mode 100644 index 0000000..2e72905 --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.java @@ -0,0 +1,12 @@ +package com.github.theword.queqiao.event.minecraft; + +import com.github.theword.queqiao.tool.event.base.BasePlayer; +import lombok.Getter; + + +@Getter +public class MinecraftPlayer extends BasePlayer { + public MinecraftPlayer(String nickname) { + super(nickname, null); + } +} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.java new file mode 100644 index 0000000..83578d8 --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.java @@ -0,0 +1,9 @@ +package com.github.theword.queqiao.event.minecraft; + +import com.github.theword.queqiao.tool.event.base.BasePlayerChatEvent; + +public class MinecraftPlayerChatEvent extends BasePlayerChatEvent { + public MinecraftPlayerChatEvent(String messageId, MinecraftPlayer player, String message) { + super("MinecraftPlayerChatEvent", messageId, player, message); + } +} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.java new file mode 100644 index 0000000..bc384da --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.java @@ -0,0 +1,9 @@ +package com.github.theword.queqiao.event.minecraft; + +import com.github.theword.queqiao.tool.event.base.BasePlayerJoinEvent; + +public class MinecraftPlayerJoinEvent extends BasePlayerJoinEvent { + public MinecraftPlayerJoinEvent(MinecraftPlayer player) { + super("MinecraftPlayerJoinEvent", player); + } +} \ No newline at end of file diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.java new file mode 100644 index 0000000..fab1afb --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.java @@ -0,0 +1,10 @@ +package com.github.theword.queqiao.event.minecraft; + +import com.github.theword.queqiao.tool.event.base.BasePlayerQuitEvent; + +public class MinecraftPlayerQuitEvent extends BasePlayerQuitEvent { + public MinecraftPlayerQuitEvent(MinecraftPlayer player) { + super("MinecraftPlayerQuitEvent", player); + } + +} \ No newline at end of file diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleApiImpl.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleApiImpl.java new file mode 100644 index 0000000..8725af6 --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleApiImpl.java @@ -0,0 +1,28 @@ +package com.github.theword.queqiao.handle; + +import com.github.theword.queqiao.tool.handle.HandleApiService; +import com.github.theword.queqiao.tool.payload.MessageSegment; +import com.github.theword.queqiao.tool.payload.TitlePayload; +import com.github.theword.queqiao.tool.response.PrivateMessageResponse; + +import java.util.List; +import java.util.UUID; + +public class HandleApiImpl implements HandleApiService { + @Override + public void handleBroadcastMessage(List list) { + } + + @Override + public void handleSendTitleMessage(TitlePayload titlePayload) { + } + + @Override + public void handleSendActionBarMessage(List list) { + } + + @Override + public PrivateMessageResponse handleSendPrivateMessage(String s, UUID uuid, List list) { + return PrivateMessageResponse.of(null, "该接口不可用"); + } +} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.java new file mode 100644 index 0000000..50252b8 --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.java @@ -0,0 +1,15 @@ +package com.github.theword.queqiao.handle; + +import com.github.theword.queqiao.tool.handle.HandleCommandReturnMessageService; + +public class HandleCommandReturnMessageImpl implements HandleCommandReturnMessageService { + @Override + public void handleCommandReturnMessage(Object o, String s) { + + } + + @Override + public boolean hasPermission(Object o, String s) { + return false; + } +} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/FileWatcher.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/FileWatcher.java new file mode 100644 index 0000000..17d5081 --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/FileWatcher.java @@ -0,0 +1,136 @@ +package com.github.theword.queqiao.utils; + +import lombok.RequiredArgsConstructor; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.RandomAccessFile; +import java.nio.charset.StandardCharsets; +import java.nio.file.*; +import java.util.List; +import java.util.concurrent.atomic.AtomicLong; + +import static com.github.theword.queqiao.tool.utils.Tool.logger; + + +/** + * 监控文件变化 + * + * @author YL + **/ +@RequiredArgsConstructor +public class FileWatcher { + private final LineProcessor lineProcessor; + + /** + * 文件监听 + * + * @param filePath 文件路径 + */ + public static void fileListen(String filePath, LineProcessor lineProcessor) { + Path path = Paths.get(filePath); + // 监听 + new Thread(() -> { + try { + new FileWatcher(lineProcessor).watcherLog(path); + } catch (Exception e) { + logger.error("监听日志时出现异常", e); + } + }).start(); + + // 刷新日志 + new Thread(() -> { + try { + while (true) { + FileWriter writer = new FileWriter(path.toFile(), true); + writer.flush(); + writer.close(); + } + } catch (IOException e) { + logger.error("写日志时出现异常", e); + } + }).start(); + } + + /** + * 文件监控 + * 同步调用会阻塞 + * + * @param filePath String + * @throws IOException 异常 + * @throws InterruptedException 异常 + */ + public void watcherLog(Path filePath) throws IOException, InterruptedException { + String fileName = filePath.getFileName().toString(); + Path parentPath = filePath.getParent(); + WatchService watchService = FileSystems.getDefault().newWatchService(); + + parentPath.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE); + AtomicLong lastPointer = new AtomicLong(0L); + do { + WatchKey key = watchService.take(); + List> watchEvents = key.pollEvents(); + watchEvents.stream().filter(i -> StandardWatchEventKinds.ENTRY_MODIFY == i.kind() && fileName.equals(((Path) i.context()).getFileName().toString())).forEach(i -> { + if (i.count() > 1) { + return; + } + + File configFile = Paths.get(parentPath + "/" + i.context()).toFile(); + StringBuilder str = new StringBuilder(); + lastPointer.set(getFileContent(configFile, lastPointer.get(), str)); + + String line = str.toString(); + + if (!line.isEmpty() && line.length() < 320) { + lineProcessor.processLine(line); + } + }); + key.reset(); + } while (true); + } + + /** + * beginPointer > configFile 时会从头读取 + * + * @param configFile 配置文件 + * @param beginPointer 起点 + * @param str 内容会拼接进去 + * @return 读到了多少字节, -1 读取失败 + */ + private long getFileContent(File configFile, long beginPointer, StringBuilder str) { + if (beginPointer < 0) { + beginPointer = 0; + } + RandomAccessFile file = null; + boolean top = true; + try { + file = new RandomAccessFile(configFile, "r"); + if (beginPointer > file.length()) { + return 0; + } + file.seek(beginPointer); + String line; + while ((line = file.readLine()) != null) { + if (top) { + top = false; + } else { + str.append("\n"); + } + str.append(new String(line.getBytes(StandardCharsets.ISO_8859_1), "GBK")); + } + return file.getFilePointer(); + } catch (IOException e) { + logger.error("Error reading file content", e); + return -1; + } finally { + if (file != null) { + try { + file.close(); + } catch (IOException e) { + logger.error("Error closing file", e); + } + } + } + } +} \ No newline at end of file diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/LineProcessor.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/LineProcessor.java new file mode 100644 index 0000000..1a98e4c --- /dev/null +++ b/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/LineProcessor.java @@ -0,0 +1,57 @@ +package com.github.theword.queqiao.utils; + +import com.github.theword.queqiao.EventProcessor; +import com.github.theword.queqiao.config.Config; +import com.github.theword.queqiao.config.RegexConfig; +import lombok.RequiredArgsConstructor; + +import java.util.regex.Matcher; + +import static com.github.theword.queqiao.tool.utils.Tool.logger; + +@RequiredArgsConstructor +public class LineProcessor { + private final Config config; + private final EventProcessor eventProcessor; + + public void processLine(String line) { + logger.debug("LogWatcher: " + line); + // 遍历并匹配聊天消息 + for (RegexConfig chatConfig : config.getChatRegexSet()) { + Matcher chatMatcher = chatConfig.getPattern().matcher(line); + if (chatMatcher.find()) { + String playerName = chatMatcher.group(chatConfig.getPlayerGroup()); + String message = chatMatcher.group(chatConfig.getMessageGroup()); + + // 检查聊天内容是否存在 + if (message != null && !message.isEmpty()) { + logger.info("[Chat] " + playerName + ": " + message); + eventProcessor.onPlayerChat(playerName, message); + } + return; + } + } + + // 遍历并匹配玩家加入消息 + for (RegexConfig joinConfig : config.getJoinRegexSet()) { + Matcher joinMatcher = joinConfig.getPattern().matcher(line); + if (joinMatcher.find()) { + logger.info("[Join] " + line); + String playerName = joinMatcher.group(joinConfig.getPlayerGroup()); + eventProcessor.onPlayerJoin(playerName); + return; + } + } + + // 遍历并匹配玩家退出消息 + for (RegexConfig quitConfig : config.getQuitRegexSet()) { + Matcher quitMatcher = quitConfig.getPattern().matcher(line); + if (quitMatcher.find()) { + logger.info("[Quit] " + line); + String playerName = quitMatcher.group(quitConfig.getPlayerGroup()); + eventProcessor.onPlayerQuit(playerName); + return; + } + } + } +} diff --git a/minecraft/origin/src/main/resources/regex.yml b/minecraft/origin/src/main/resources/regex.yml new file mode 100644 index 0000000..b47c94d --- /dev/null +++ b/minecraft/origin/src/main/resources/regex.yml @@ -0,0 +1,16 @@ +log_path: ".\\logs\\latest.log" + +# 以下正则均为原版示例 + +chat_regex: + - regex: "(.*)]:(.*)<(.*)> (.*)" + player_group: 3 + message_group: 4 + +join_regex: + - regex: "Server thread/INFO]: (.*) joined the game" + player_group: 1 + +quit_regex: + - regex: "Server thread/INFO]: (.*) left the game" + player_group: 1 From 964ce67965cd0857bda0593efb9bd49b2cb4cddd Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 16:55:48 +0800 Subject: [PATCH 03/24] :sparkles: Support log reading program --- .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 108581 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + minecraft/minecraft-origin/gradlew | 249 ++++++++++++++++++ minecraft/minecraft-origin/gradlew.bat | 92 +++++++ 4 files changed, 348 insertions(+) create mode 100644 minecraft/minecraft-origin/gradle/wrapper/gradle-wrapper.jar create mode 100644 minecraft/minecraft-origin/gradle/wrapper/gradle-wrapper.properties create mode 100644 minecraft/minecraft-origin/gradlew create mode 100644 minecraft/minecraft-origin/gradlew.bat diff --git a/minecraft/minecraft-origin/gradle/wrapper/gradle-wrapper.jar b/minecraft/minecraft-origin/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..08fcbecbbeb831a7d9aef00954a95745e40e6ef0 GIT binary patch literal 108581 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" \ No newline at end of file diff --git a/minecraft/minecraft-origin/gradlew.bat b/minecraft/minecraft-origin/gradlew.bat new file mode 100644 index 0000000..2578005 --- /dev/null +++ b/minecraft/minecraft-origin/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega \ No newline at end of file From 86fe538d1e9f89b7cdfed2f4ef85c19cd96ae27f Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 16:55:59 +0800 Subject: [PATCH 04/24] :wrench: Support log reading program --- .idea/ModMultiLoaders.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/.idea/ModMultiLoaders.xml b/.idea/ModMultiLoaders.xml index 2a419f1..67fde58 100644 --- a/.idea/ModMultiLoaders.xml +++ b/.idea/ModMultiLoaders.xml @@ -9,6 +9,7 @@ From eea15fb7f6205de9212d79b85fb9e1ea03edf588 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 17:11:30 +0800 Subject: [PATCH 05/24] :construction_worker: Ignore origin version --- .github/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 120a69b..9084da6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,9 +82,9 @@ jobs: with: name: QueQiao-${{ matrix.config.mc-loader }}+${{ matrix.config.mc-version }}-${{ env.MOD_VERSION }}.jar path: QueQiao-jar/${{ env.MOD_VERSION }}/QueQiao-${{ matrix.config.mc-loader }}+${{ matrix.config.mc-version }}-${{ env.MOD_VERSION }}.jar - - uses: Kir-Antipov/mc-publish@v3.3 - if: ${{ github.event_name == 'push' }} + - uses: Kir-Antipov/mc-publish@v3.3 + if: ${{ github.event_name == 'push' && matrix.config.mc-loader != 'minecraft' }} with: modrinth-id: rVJvtYoX modrinth-token: ${{ secrets.MODRINTH_TOKEN }} @@ -98,6 +98,6 @@ jobs: game-versions: ${{ env.game_version }} files: QueQiao-jar/${{ env.MOD_VERSION }}/QueQiao-${{ matrix.config.mc-loader }}+${{ matrix.config.mc-version }}-${{ env.MOD_VERSION }}.jar -# - name: Upload to Release -# if: ${{ github.event_name == 'push' }} -# run: gh release upload v${{ env.MOD_VERSION }} QueQiao-jar/${{ env.MOD_VERSION }}/QueQiao-${{ matrix.config.mc-loader }}+${{ matrix.config.mc-version }}-${{ env.MOD_VERSION }}.jar + - name: Upload to Release + if: ${{ github.event_name == 'push' && matrix.config.mc-loader == 'minecraft' }} + run: gh release upload v${{ env.MOD_VERSION }} QueQiao-jar/${{ env.MOD_VERSION }}/QueQiao-${{ matrix.config.mc-loader }}+${{ matrix.config.mc-version }}-${{ env.MOD_VERSION }}.jar From 2bf2629e40ba30cc4a8fd002dc4751e993c90b58 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 17:13:10 +0800 Subject: [PATCH 06/24] :construction_worker: matrix origin version --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9084da6..f7c8e93 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: - name: Generate Matrix id: set-matrix shell: pwsh - run: .\matrix.ps1 -path "fabric","forge","spigot","velocity" + run: .\matrix.ps1 -path "fabric","forge","spigot","velocity","minecraft" build: runs-on: windows-latest From 2447b32d55a8c4fbc432e8b31ea80286e8d5ea3f Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 17:21:49 +0800 Subject: [PATCH 07/24] :wrench: wrapper file --- .../gradle/wrapper/gradle-wrapper.jar | Bin 108581 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/minecraft/minecraft-origin/gradle/wrapper/gradle-wrapper.jar b/minecraft/minecraft-origin/gradle/wrapper/gradle-wrapper.jar index 08fcbecbbeb831a7d9aef00954a95745e40e6ef0..7f93135c49b765f8051ef9d0a6055ff8e46073d8 100644 GIT binary patch literal 63721 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 108581 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 Date: Fri, 25 Oct 2024 17:22:09 +0800 Subject: [PATCH 08/24] :wrench: gradlew file --- minecraft/minecraft-origin/gradlew | 2 +- minecraft/minecraft-origin/gradlew.bat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft/minecraft-origin/gradlew b/minecraft/minecraft-origin/gradlew index 31042a6..1aa94a4 100644 --- a/minecraft/minecraft-origin/gradlew +++ b/minecraft/minecraft-origin/gradlew @@ -246,4 +246,4 @@ eval "set -- $( tr '\n' ' ' )" '"$@"' -exec "$JAVACMD" "$@" \ No newline at end of file +exec "$JAVACMD" "$@" diff --git a/minecraft/minecraft-origin/gradlew.bat b/minecraft/minecraft-origin/gradlew.bat index 2578005..93e3f59 100644 --- a/minecraft/minecraft-origin/gradlew.bat +++ b/minecraft/minecraft-origin/gradlew.bat @@ -89,4 +89,4 @@ exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal -:omega \ No newline at end of file +:omega From f1d9e06ea11035693cb9876cbdeaec8eebd2bb17 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 17:26:05 +0800 Subject: [PATCH 09/24] :bug: Fix archiveBaseName for origin version --- minecraft/origin/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minecraft/origin/build.gradle b/minecraft/origin/build.gradle index 634a2d1..eb007cd 100644 --- a/minecraft/origin/build.gradle +++ b/minecraft/origin/build.gradle @@ -65,7 +65,7 @@ test { } shadowJar { - archiveBaseName.set("${mod_name}-origin") + archiveBaseName.set("${mod_name}-minecraft+origin") archiveClassifier.set("") destinationDirectory.set(file("../../QueQiao-jar/${version}")) manifest { From f5126ae0098028f54d56212102cddd295c116008 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 17:31:21 +0800 Subject: [PATCH 10/24] :construction_worker: Use cache for build --- .github/workflows/build.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f7c8e93..7540a7f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,6 +38,16 @@ jobs: java-version: '21' distribution: 'temurin' + - name: Cache Gradle dependencies + uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper/dists + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Read version.txt and save to variable shell: pwsh run: | From d5e3d5d7e2b26f374fc01714bb3de4ba75516a0c Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 22:08:53 +0800 Subject: [PATCH 11/24] :see_no_evil: Do not ignore ModMultiVersionTool-*.jar --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 9861b2f..bae8fdf 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ QueQiao-jar/ *.rar !gradle-wrapper.jar +!ModMultiVersionTool-*.jar forge/forge-*/* fabric/fabric-*/* From dfd2b87c681eb118953f4b3bce60a04cb86e9e3c Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 22:09:18 +0800 Subject: [PATCH 12/24] :arrow_up: Upgrade ModMultiVersionTool --- ....2.3.jar => ModMultiVersionTool-1.3.6.jar} | Bin 1791073 -> 1793297 bytes 1 file changed, 0 insertions(+), 0 deletions(-) rename tool/{ModMultiVersionTool-1.2.3.jar => ModMultiVersionTool-1.3.6.jar} (94%) diff --git a/tool/ModMultiVersionTool-1.2.3.jar b/tool/ModMultiVersionTool-1.3.6.jar similarity index 94% rename from tool/ModMultiVersionTool-1.2.3.jar rename to tool/ModMultiVersionTool-1.3.6.jar index 0ce2ae4f89ee280f8525f2fabfe17794122391f7..2d3aa3dfbfff2f11481990720f881e956ab5dfa7 100644 GIT binary patch delta 37100 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

2G01Ni0I%i=w#c?6OELdno@CPV&hB^vx; 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 Lpw0~yX2AakmGd`M delta 34846 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 Date: Fri, 25 Oct 2024 23:37:36 +0800 Subject: [PATCH 13/24] Revert ":arrow_up: Upgrade ModMultiVersionTool" This reverts commit dfd2b87c681eb118953f4b3bce60a04cb86e9e3c. --- ....3.6.jar => ModMultiVersionTool-1.2.3.jar} | Bin 1793297 -> 1791073 bytes 1 file changed, 0 insertions(+), 0 deletions(-) rename tool/{ModMultiVersionTool-1.3.6.jar => ModMultiVersionTool-1.2.3.jar} (94%) diff --git a/tool/ModMultiVersionTool-1.3.6.jar b/tool/ModMultiVersionTool-1.2.3.jar similarity index 94% rename from tool/ModMultiVersionTool-1.3.6.jar rename to tool/ModMultiVersionTool-1.2.3.jar index 2d3aa3dfbfff2f11481990720f881e956ab5dfa7..0ce2ae4f89ee280f8525f2fabfe17794122391f7 100644 GIT binary patch delta 34846 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

2G01Ni0I%i=w#c?6OELdno@CPV&hB^vx; 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 Lpw0~yX2AakmGd`M From 4351056138d6de8563ad252d3e79f2f63ef8364d Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Fri, 25 Oct 2024 23:42:50 +0800 Subject: [PATCH 14/24] :see_no_evil: Ignore origin version file --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index bae8fdf..49e04bc 100644 --- a/.gitignore +++ b/.gitignore @@ -26,11 +26,13 @@ forge/forge-*/* fabric/fabric-*/* spigot/spigot-*/* velocity/velocity-*/* +minecraft/minecraft-*/* !fabric/fabric-*/gradle/ !forge/forge-*/gradle/ !spigot/spigot-*/gradle/ !velocity/velocity-*/gradle/ +!minecraft/minecraft-*/gradle/ !fabric/fabric-*/gradlew !fabric/fabric-*/gradlew.bat @@ -40,6 +42,8 @@ velocity/velocity-*/* !spigot/spigot-*/gradlew.bat !velocity/velocity-*/gradlew !velocity/velocity-*/gradlew.bat +!minecraft/minecraft-*/gradlew +!minecraft/minecraft-*/gradlew.bat !velocity/velocity-*/build/generated/sources/tamplates/ From 1f4240893f15c415603e5045a3e230be8f44c074 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Sun, 27 Oct 2024 19:54:46 +0800 Subject: [PATCH 15/24] =?UTF-8?q?=F0=9F=8E=A8=20=20Rewrite=20origin=20vers?= =?UTF-8?q?ion=20by=20Kotlin=20(#20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * :recycle: Rewrite by Kotlin * :arrow_up: Upgrade tool to 0.1.7 --- minecraft/origin/build.gradle | 23 ++- minecraft/origin/gradle.properties | 4 +- minecraft/origin/settings.gradle | 3 + .../theword/queqiao/EventProcessor.java | 42 ------ .../com/github/theword/queqiao/QueQiao.java | 19 --- .../github/theword/queqiao/config/Config.java | 97 ------------- .../theword/queqiao/config/RegexConfig.java | 18 --- .../event/minecraft/MinecraftPlayer.java | 12 -- .../minecraft/MinecraftPlayerChatEvent.java | 9 -- .../minecraft/MinecraftPlayerJoinEvent.java | 9 -- .../minecraft/MinecraftPlayerQuitEvent.java | 10 -- .../theword/queqiao/handle/HandleApiImpl.java | 28 ---- .../HandleCommandReturnMessageImpl.java | 15 -- .../theword/queqiao/utils/FileWatcher.java | 136 ------------------ .../theword/queqiao/utils/LineProcessor.java | 57 -------- .../github/theword/queqiao/EventProcessor.kt | 40 ++++++ .../com/github/theword/queqiao/QueQiao.kt | 19 +++ .../github/theword/queqiao/config/Config.kt | 47 ++++++ .../theword/queqiao/config/RegexConfig.kt | 11 ++ .../event/minecraft/MinecraftPlayer.kt | 5 + .../minecraft/MinecraftPlayerChatEvent.kt | 7 + .../minecraft/MinecraftPlayerJoinEvent.kt | 7 + .../minecraft/MinecraftPlayerQuitEvent.kt | 7 + .../theword/queqiao/handle/HandleApiImpl.kt | 23 +++ .../handle/HandleCommandReturnMessageImpl.kt | 12 ++ .../theword/queqiao/utils/FileWatcher.kt | 135 +++++++++++++++++ .../theword/queqiao/utils/LineProcessor.kt | 48 +++++++ tool_version.txt | 2 +- 28 files changed, 377 insertions(+), 468 deletions(-) delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/EventProcessor.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/QueQiao.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/config/Config.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/config/RegexConfig.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleApiImpl.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/utils/FileWatcher.java delete mode 100644 minecraft/origin/src/main/java/com/github/theword/queqiao/utils/LineProcessor.java create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/EventProcessor.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/QueQiao.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/config/Config.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/config/RegexConfig.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/handle/HandleApiImpl.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/utils/FileWatcher.kt create mode 100644 minecraft/origin/src/main/kotlin/com/github/theword/queqiao/utils/LineProcessor.kt diff --git a/minecraft/origin/build.gradle b/minecraft/origin/build.gradle index eb007cd..1981c81 100644 --- a/minecraft/origin/build.gradle +++ b/minecraft/origin/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'java' id 'com.github.johnrengelman.shadow' version '8.1.1' + id 'org.jetbrains.kotlin.jvm' version "${kotlin_version}" } def getVersionFromFile() { @@ -31,14 +31,6 @@ version = mod_version repositories { mavenLocal() mavenCentral() - maven { - name = "papermc-repo" - url = "https://repo.papermc.io/repository/maven-public/" - } - maven { - name = "sonatype" - url = "https://oss.sonatype.org/content/groups/public/" - } maven { url = uri(maven_repository_url) credentials { @@ -47,23 +39,25 @@ repositories { } } } -dependencies { - annotationProcessor "org.projectlombok:lombok:${project.lombok_version}" - compileOnly "org.projectlombok:lombok:${project.lombok_version}" +dependencies { implementation "com.github.theword.queqiao:queqiao-tool:${tool_version}" implementation "commons-io:commons-io:${project.commons_io_version}" implementation "org.slf4j:slf4j-simple:${slf4j_version}" implementation "com.google.code.gson:gson:${gson_version}" + implementation "org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}" - testImplementation platform('org.junit:junit-bom:5.9.1') - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation 'org.jetbrains.kotlin:kotlin-test' } test { useJUnitPlatform() } +kotlin { + jvmToolchain(8) +} + shadowJar { archiveBaseName.set("${mod_name}-minecraft+origin") archiveClassifier.set("") @@ -81,6 +75,7 @@ shadowJar { include(dependency("org.slf4j:slf4j-simple:${slf4j_version}")) include(dependency("com.google.code.gson:gson:${gson_version}")) include(dependency("commons-io:commons-io:${commons_io_version}")) + include(dependency("org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}")) } mergeServiceFiles() } diff --git a/minecraft/origin/gradle.properties b/minecraft/origin/gradle.properties index 96ab2db..fb85f44 100644 --- a/minecraft/origin/gradle.properties +++ b/minecraft/origin/gradle.properties @@ -1,3 +1,4 @@ +kotlin.code.style=official org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false # Mod Properties @@ -10,10 +11,11 @@ mod_description=Connect to nonebot2. # Lib Properties gson_version=2.10.1 slf4j_version=1.7.36 +kotlin_version=1.9.23 snakeyaml_version=2.2 lombok_version=1.18.30 commons_io_version=2.15.1 junit_jupiter_version=5.10.0 java_websocket_version=1.5.3 jetbrains_annotations_version=24.0.0 -maven_repository_url=https://maven.pkg.github.com/17TheWord/QueQiaoTool +maven_repository_url=https://maven.pkg.github.com/17TheWord/QueQiaoTool \ No newline at end of file diff --git a/minecraft/origin/settings.gradle b/minecraft/origin/settings.gradle index 006ea28..766db65 100644 --- a/minecraft/origin/settings.gradle +++ b/minecraft/origin/settings.gradle @@ -1 +1,4 @@ +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' +} rootProject.name = 'minecraft-origin' diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/EventProcessor.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/EventProcessor.java deleted file mode 100644 index 1e1be74..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/EventProcessor.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.github.theword.queqiao; - -import com.github.theword.queqiao.event.minecraft.MinecraftPlayer; -import com.github.theword.queqiao.event.minecraft.MinecraftPlayerChatEvent; -import com.github.theword.queqiao.event.minecraft.MinecraftPlayerJoinEvent; -import com.github.theword.queqiao.event.minecraft.MinecraftPlayerQuitEvent; - -import static com.github.theword.queqiao.tool.utils.Tool.*; -import static com.github.theword.queqiao.tool.utils.Tool.sendWebsocketMessage; - -public class EventProcessor { - /** - * 监听玩家聊天 - */ - public void onPlayerChat(String playerName, String message) { - if (!config.getSubscribeEvent().isPlayerChat()) return; - MinecraftPlayer player = new MinecraftPlayer(playerName); - MinecraftPlayerChatEvent event = new MinecraftPlayerChatEvent("", player, message); - sendWebsocketMessage(event); - } - - - /** - * 监听玩家加入事件 - */ - public void onPlayerJoin(String playerName) { - if (!config.getSubscribeEvent().isPlayerJoin()) return; - MinecraftPlayer player = new MinecraftPlayer(playerName); - MinecraftPlayerJoinEvent event = new MinecraftPlayerJoinEvent(player); - sendWebsocketMessage(event); - } - - /** - * 监听玩家离开事件 - */ - public void onPlayerQuit(String playerName) { - if (!config.getSubscribeEvent().isPlayerQuit()) return; - MinecraftPlayer player = new MinecraftPlayer(playerName); - MinecraftPlayerQuitEvent event = new MinecraftPlayerQuitEvent(player); - sendWebsocketMessage(event); - } -} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/QueQiao.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/QueQiao.java deleted file mode 100644 index 1946f73..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/QueQiao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.github.theword.queqiao; - -import com.github.theword.queqiao.config.Config; -import com.github.theword.queqiao.handle.HandleApiImpl; -import com.github.theword.queqiao.handle.HandleCommandReturnMessageImpl; -import com.github.theword.queqiao.utils.FileWatcher; -import com.github.theword.queqiao.utils.LineProcessor; - - -import static com.github.theword.queqiao.tool.utils.Tool.*; - -public class QueQiao { - public static void main(String[] args) { - initTool(true, new HandleApiImpl(), new HandleCommandReturnMessageImpl()); - websocketManager.startWebsocket(null); - Config config = new Config(); - FileWatcher.fileListen(config.getLogPath(), new LineProcessor(config, new EventProcessor())); - } -} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/config/Config.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/config/Config.java deleted file mode 100644 index 0e3d967..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/config/Config.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.github.theword.queqiao.config; - -import com.github.theword.queqiao.tool.constant.BaseConstant; -import lombok.Data; -import org.apache.commons.io.FileUtils; -import org.yaml.snakeyaml.Yaml; - -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.*; - -import static com.github.theword.queqiao.tool.utils.Tool.logger; - -@Data -public class Config { - private String logPath; - private Set chatRegexSet; - private Set joinRegexSet; - private Set quitRegexSet; - - public Config() { - readConfigFile("./config", "regex.yml"); - } - - - private void readConfigFile(String configFolder, String fileName) { - Path configPath = Paths.get("./" + configFolder, BaseConstant.MODULE_NAME, fileName); - checkFileExists(configPath, fileName); - readConfigValues(configPath, fileName); - } - - private void checkFileExists(Path path, String fileName) { - logger.info("正在寻找置文件 {}...", fileName); - logger.info("配置文件 {} 路径为:{}。", fileName, path.toAbsolutePath()); - if (Files.exists(path)) { - logger.info("配置文件 {} 已存在,将读取配置项。", fileName); - } else { - logger.warn("配置文件 {} 不存在,将生成默认配置文件。", fileName); - try { - InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName); - assert inputStream != null; - FileUtils.copyInputStreamToFile(inputStream, path.toFile()); - logger.info("已生成默认配置文件 {}。", fileName); - } catch (IOException var9) { - logger.warn("生成配置文件 {} 失败。", fileName); - } - } - } - - private void readConfigValues(Path path, String fileName) { - logger.info("正在读取配置文件 {}...", fileName); - try { - Yaml yaml = new Yaml(); - Reader reader = Files.newBufferedReader(path); - Map configMap = yaml.load(reader); - loadConfigValues(configMap); - logger.info("读取配置文件 {} 成功。", fileName); - } catch (Exception exception) { - logger.warn("读取配置文件 {} 失败。", fileName); - logger.warn(exception.getMessage()); - logger.warn("将直接使用默认配置项。"); - } - } - - private void loadConfigValues(Map configMap) { - logPath = (String) configMap.get("log_path"); - chatRegexSet = convertToRegexConfigSet(configMap, "chat_regex"); - joinRegexSet = convertToRegexConfigSet(configMap, "join_regex"); - quitRegexSet = convertToRegexConfigSet(configMap, "quit_regex"); - } - - private Set convertToRegexConfigSet(Map configMap, String key) { - Object value = configMap.get(key); - if (!(value instanceof List)) { - logger.warn("配置项 {} 不是列表类型,将使用空集合。", key); - return new HashSet<>(); - } - - Set regexConfigs = new HashSet<>(); - for (Object item : (List) value) { - if (item instanceof Map) { - Map itemMap = (Map) item; - String regex = (String) itemMap.get("regex"); - Integer playerGroup = (Integer) itemMap.get("player_group"); - Integer messageGroup = (Integer) itemMap.getOrDefault("message_group", null); - regexConfigs.add(new RegexConfig(regex, playerGroup, messageGroup)); - } else { - logger.warn("配置项 {} 中包含非Map类型,将跳过该值。", key); - } - } - return regexConfigs; - } -} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/config/RegexConfig.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/config/RegexConfig.java deleted file mode 100644 index e2c4859..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/config/RegexConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.github.theword.queqiao.config; - -import lombok.Getter; - -import java.util.regex.Pattern; - -@Getter -public class RegexConfig { - Pattern pattern; - int playerGroup; - Integer messageGroup; - - public RegexConfig(String regex, int playerGroup, Integer messageGroup) { - this.pattern = Pattern.compile(regex); - this.playerGroup = playerGroup; - this.messageGroup = messageGroup; - } -} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.java deleted file mode 100644 index 2e72905..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.github.theword.queqiao.event.minecraft; - -import com.github.theword.queqiao.tool.event.base.BasePlayer; -import lombok.Getter; - - -@Getter -public class MinecraftPlayer extends BasePlayer { - public MinecraftPlayer(String nickname) { - super(nickname, null); - } -} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.java deleted file mode 100644 index 83578d8..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.github.theword.queqiao.event.minecraft; - -import com.github.theword.queqiao.tool.event.base.BasePlayerChatEvent; - -public class MinecraftPlayerChatEvent extends BasePlayerChatEvent { - public MinecraftPlayerChatEvent(String messageId, MinecraftPlayer player, String message) { - super("MinecraftPlayerChatEvent", messageId, player, message); - } -} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.java deleted file mode 100644 index bc384da..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.github.theword.queqiao.event.minecraft; - -import com.github.theword.queqiao.tool.event.base.BasePlayerJoinEvent; - -public class MinecraftPlayerJoinEvent extends BasePlayerJoinEvent { - public MinecraftPlayerJoinEvent(MinecraftPlayer player) { - super("MinecraftPlayerJoinEvent", player); - } -} \ No newline at end of file diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.java deleted file mode 100644 index fab1afb..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.github.theword.queqiao.event.minecraft; - -import com.github.theword.queqiao.tool.event.base.BasePlayerQuitEvent; - -public class MinecraftPlayerQuitEvent extends BasePlayerQuitEvent { - public MinecraftPlayerQuitEvent(MinecraftPlayer player) { - super("MinecraftPlayerQuitEvent", player); - } - -} \ No newline at end of file diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleApiImpl.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleApiImpl.java deleted file mode 100644 index 8725af6..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleApiImpl.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.github.theword.queqiao.handle; - -import com.github.theword.queqiao.tool.handle.HandleApiService; -import com.github.theword.queqiao.tool.payload.MessageSegment; -import com.github.theword.queqiao.tool.payload.TitlePayload; -import com.github.theword.queqiao.tool.response.PrivateMessageResponse; - -import java.util.List; -import java.util.UUID; - -public class HandleApiImpl implements HandleApiService { - @Override - public void handleBroadcastMessage(List list) { - } - - @Override - public void handleSendTitleMessage(TitlePayload titlePayload) { - } - - @Override - public void handleSendActionBarMessage(List list) { - } - - @Override - public PrivateMessageResponse handleSendPrivateMessage(String s, UUID uuid, List list) { - return PrivateMessageResponse.of(null, "该接口不可用"); - } -} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.java deleted file mode 100644 index 50252b8..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.theword.queqiao.handle; - -import com.github.theword.queqiao.tool.handle.HandleCommandReturnMessageService; - -public class HandleCommandReturnMessageImpl implements HandleCommandReturnMessageService { - @Override - public void handleCommandReturnMessage(Object o, String s) { - - } - - @Override - public boolean hasPermission(Object o, String s) { - return false; - } -} diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/FileWatcher.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/FileWatcher.java deleted file mode 100644 index 17d5081..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/FileWatcher.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.github.theword.queqiao.utils; - -import lombok.RequiredArgsConstructor; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.nio.charset.StandardCharsets; -import java.nio.file.*; -import java.util.List; -import java.util.concurrent.atomic.AtomicLong; - -import static com.github.theword.queqiao.tool.utils.Tool.logger; - - -/** - * 监控文件变化 - * - * @author YL - **/ -@RequiredArgsConstructor -public class FileWatcher { - private final LineProcessor lineProcessor; - - /** - * 文件监听 - * - * @param filePath 文件路径 - */ - public static void fileListen(String filePath, LineProcessor lineProcessor) { - Path path = Paths.get(filePath); - // 监听 - new Thread(() -> { - try { - new FileWatcher(lineProcessor).watcherLog(path); - } catch (Exception e) { - logger.error("监听日志时出现异常", e); - } - }).start(); - - // 刷新日志 - new Thread(() -> { - try { - while (true) { - FileWriter writer = new FileWriter(path.toFile(), true); - writer.flush(); - writer.close(); - } - } catch (IOException e) { - logger.error("写日志时出现异常", e); - } - }).start(); - } - - /** - * 文件监控 - * 同步调用会阻塞 - * - * @param filePath String - * @throws IOException 异常 - * @throws InterruptedException 异常 - */ - public void watcherLog(Path filePath) throws IOException, InterruptedException { - String fileName = filePath.getFileName().toString(); - Path parentPath = filePath.getParent(); - WatchService watchService = FileSystems.getDefault().newWatchService(); - - parentPath.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE); - AtomicLong lastPointer = new AtomicLong(0L); - do { - WatchKey key = watchService.take(); - List> watchEvents = key.pollEvents(); - watchEvents.stream().filter(i -> StandardWatchEventKinds.ENTRY_MODIFY == i.kind() && fileName.equals(((Path) i.context()).getFileName().toString())).forEach(i -> { - if (i.count() > 1) { - return; - } - - File configFile = Paths.get(parentPath + "/" + i.context()).toFile(); - StringBuilder str = new StringBuilder(); - lastPointer.set(getFileContent(configFile, lastPointer.get(), str)); - - String line = str.toString(); - - if (!line.isEmpty() && line.length() < 320) { - lineProcessor.processLine(line); - } - }); - key.reset(); - } while (true); - } - - /** - * beginPointer > configFile 时会从头读取 - * - * @param configFile 配置文件 - * @param beginPointer 起点 - * @param str 内容会拼接进去 - * @return 读到了多少字节, -1 读取失败 - */ - private long getFileContent(File configFile, long beginPointer, StringBuilder str) { - if (beginPointer < 0) { - beginPointer = 0; - } - RandomAccessFile file = null; - boolean top = true; - try { - file = new RandomAccessFile(configFile, "r"); - if (beginPointer > file.length()) { - return 0; - } - file.seek(beginPointer); - String line; - while ((line = file.readLine()) != null) { - if (top) { - top = false; - } else { - str.append("\n"); - } - str.append(new String(line.getBytes(StandardCharsets.ISO_8859_1), "GBK")); - } - return file.getFilePointer(); - } catch (IOException e) { - logger.error("Error reading file content", e); - return -1; - } finally { - if (file != null) { - try { - file.close(); - } catch (IOException e) { - logger.error("Error closing file", e); - } - } - } - } -} \ No newline at end of file diff --git a/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/LineProcessor.java b/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/LineProcessor.java deleted file mode 100644 index 1a98e4c..0000000 --- a/minecraft/origin/src/main/java/com/github/theword/queqiao/utils/LineProcessor.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.github.theword.queqiao.utils; - -import com.github.theword.queqiao.EventProcessor; -import com.github.theword.queqiao.config.Config; -import com.github.theword.queqiao.config.RegexConfig; -import lombok.RequiredArgsConstructor; - -import java.util.regex.Matcher; - -import static com.github.theword.queqiao.tool.utils.Tool.logger; - -@RequiredArgsConstructor -public class LineProcessor { - private final Config config; - private final EventProcessor eventProcessor; - - public void processLine(String line) { - logger.debug("LogWatcher: " + line); - // 遍历并匹配聊天消息 - for (RegexConfig chatConfig : config.getChatRegexSet()) { - Matcher chatMatcher = chatConfig.getPattern().matcher(line); - if (chatMatcher.find()) { - String playerName = chatMatcher.group(chatConfig.getPlayerGroup()); - String message = chatMatcher.group(chatConfig.getMessageGroup()); - - // 检查聊天内容是否存在 - if (message != null && !message.isEmpty()) { - logger.info("[Chat] " + playerName + ": " + message); - eventProcessor.onPlayerChat(playerName, message); - } - return; - } - } - - // 遍历并匹配玩家加入消息 - for (RegexConfig joinConfig : config.getJoinRegexSet()) { - Matcher joinMatcher = joinConfig.getPattern().matcher(line); - if (joinMatcher.find()) { - logger.info("[Join] " + line); - String playerName = joinMatcher.group(joinConfig.getPlayerGroup()); - eventProcessor.onPlayerJoin(playerName); - return; - } - } - - // 遍历并匹配玩家退出消息 - for (RegexConfig quitConfig : config.getQuitRegexSet()) { - Matcher quitMatcher = quitConfig.getPattern().matcher(line); - if (quitMatcher.find()) { - logger.info("[Quit] " + line); - String playerName = quitMatcher.group(quitConfig.getPlayerGroup()); - eventProcessor.onPlayerQuit(playerName); - return; - } - } - } -} diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/EventProcessor.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/EventProcessor.kt new file mode 100644 index 0000000..ee690d2 --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/EventProcessor.kt @@ -0,0 +1,40 @@ +package com.github.theword.queqiao + +import com.github.theword.queqiao.event.minecraft.MinecraftPlayer +import com.github.theword.queqiao.event.minecraft.MinecraftPlayerChatEvent +import com.github.theword.queqiao.event.minecraft.MinecraftPlayerJoinEvent +import com.github.theword.queqiao.event.minecraft.MinecraftPlayerQuitEvent +import com.github.theword.queqiao.tool.utils.Tool + +class EventProcessor { + /** + * 监听玩家聊天 + */ + fun onPlayerChat(playerName: String, message: String) { + if (!Tool.config.subscribeEvent.isPlayerChat) return + val player = MinecraftPlayer(playerName) + val event = MinecraftPlayerChatEvent("", player, message) + Tool.sendWebsocketMessage(event) + } + + + /** + * 监听玩家加入事件 + */ + fun onPlayerJoin(playerName: String) { + if (!Tool.config.subscribeEvent.isPlayerJoin) return + val player = MinecraftPlayer(playerName) + val event = MinecraftPlayerJoinEvent(player) + Tool.sendWebsocketMessage(event) + } + + /** + * 监听玩家离开事件 + */ + fun onPlayerQuit(playerName: String) { + if (!Tool.config.subscribeEvent.isPlayerQuit) return + val player = MinecraftPlayer(playerName) + val event = MinecraftPlayerQuitEvent(player) + Tool.sendWebsocketMessage(event) + } +} diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/QueQiao.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/QueQiao.kt new file mode 100644 index 0000000..5cb0c5a --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/QueQiao.kt @@ -0,0 +1,19 @@ +package com.github.theword.queqiao + +import com.github.theword.queqiao.config.Config +import com.github.theword.queqiao.handle.HandleApiImpl +import com.github.theword.queqiao.handle.HandleCommandReturnMessageImpl +import com.github.theword.queqiao.tool.utils.Tool.initTool +import com.github.theword.queqiao.tool.utils.Tool.websocketManager +import com.github.theword.queqiao.utils.FileWatcher +import com.github.theword.queqiao.utils.LineProcessor + +object QueQiao { + @JvmStatic + fun main(args: Array) { + initTool(true, HandleApiImpl(), HandleCommandReturnMessageImpl()) + websocketManager.startWebsocket(null) + val config = Config() + FileWatcher.fileListen(config.logPath, LineProcessor(config, EventProcessor())) + } +} diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/config/Config.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/config/Config.kt new file mode 100644 index 0000000..824f2f4 --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/config/Config.kt @@ -0,0 +1,47 @@ +package com.github.theword.queqiao.config + +import com.github.theword.queqiao.tool.config.CommonConfig +import com.github.theword.queqiao.tool.utils.Tool.logger + + +class Config : CommonConfig() { + var logPath: String = ".\\logs\\latest.log" + var chatRegexSet: Set = emptySet() + var joinRegexSet: Set = emptySet() + var quitRegexSet: Set = emptySet() + + init { + readConfigFile("", "regex.yml") + } + + override fun loadConfigValues(configMap: Map) { + logPath = configMap["log_path"] as String? ?: "./logs/latest.log" + chatRegexSet = convertToRegexConfigSet(configMap, "chat_regex") + joinRegexSet = convertToRegexConfigSet(configMap, "join_regex") + quitRegexSet = convertToRegexConfigSet(configMap, "quit_regex") + } + + private fun convertToRegexConfigSet(configMap: Map, key: String): Set { + val value = configMap[key] + if (value !is List<*>) { + logger.warn("配置项 {} 不是列表类型,将使用空集合。", key) + return emptySet() + } + return value.mapNotNull { item -> + if (item is Map<*, *>) { + val regex = item["regex"] as? String + val playerGroup = item["player_group"] as? Int + val messageGroup = item["message_group"] as? Int + if (regex != null && playerGroup != null) { + RegexConfig(regex, playerGroup, messageGroup) + } else { + logger.warn("配置项 {} 中包含无效的 Map,将跳过该值。", key) + null + } + } else { + logger.warn("配置项 {} 中包含非Map类型,将跳过该值。", key) + null + } + }.toSet() + } +} diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/config/RegexConfig.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/config/RegexConfig.kt new file mode 100644 index 0000000..265746c --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/config/RegexConfig.kt @@ -0,0 +1,11 @@ +package com.github.theword.queqiao.config + +import java.util.regex.Pattern + +class RegexConfig( + regex: String, + val playerGroup: Int, + val messageGroup: Int? +) { + val pattern: Pattern = Pattern.compile(regex) +} diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.kt new file mode 100644 index 0000000..162631b --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayer.kt @@ -0,0 +1,5 @@ +package com.github.theword.queqiao.event.minecraft + +import com.github.theword.queqiao.tool.event.base.BasePlayer + +data class MinecraftPlayer(private val nickname: String) : BasePlayer(nickname, null) diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.kt new file mode 100644 index 0000000..b9e03cc --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerChatEvent.kt @@ -0,0 +1,7 @@ +package com.github.theword.queqiao.event.minecraft + +import com.github.theword.queqiao.tool.event.base.BasePlayerChatEvent + +data class MinecraftPlayerChatEvent( + private val messageId: String = "", private val player: MinecraftPlayer, private val message: String +) : BasePlayerChatEvent("MinecraftPlayerChatEvent", messageId, player, message) diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.kt new file mode 100644 index 0000000..6d7719b --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerJoinEvent.kt @@ -0,0 +1,7 @@ +package com.github.theword.queqiao.event.minecraft + +import com.github.theword.queqiao.tool.event.base.BasePlayerJoinEvent + +data class MinecraftPlayerJoinEvent( + private val player: MinecraftPlayer +) : BasePlayerJoinEvent("MinecraftPlayerJoinEvent", player) \ No newline at end of file diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.kt new file mode 100644 index 0000000..dbd76e0 --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/event/minecraft/MinecraftPlayerQuitEvent.kt @@ -0,0 +1,7 @@ +package com.github.theword.queqiao.event.minecraft + +import com.github.theword.queqiao.tool.event.base.BasePlayerQuitEvent + +data class MinecraftPlayerQuitEvent( + private val player: MinecraftPlayer +) : BasePlayerQuitEvent("MinecraftPlayerQuitEvent", player) \ No newline at end of file diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/handle/HandleApiImpl.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/handle/HandleApiImpl.kt new file mode 100644 index 0000000..73f40e9 --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/handle/HandleApiImpl.kt @@ -0,0 +1,23 @@ +package com.github.theword.queqiao.handle + +import com.github.theword.queqiao.tool.handle.HandleApiService +import com.github.theword.queqiao.tool.payload.MessageSegment +import com.github.theword.queqiao.tool.payload.TitlePayload +import com.github.theword.queqiao.tool.response.PrivateMessageResponse +import java.util.UUID + + +class HandleApiImpl : HandleApiService { + override fun handleBroadcastMessage(list: List) { + } + + override fun handleSendTitleMessage(titlePayload: TitlePayload) { + } + + override fun handleSendActionBarMessage(list: List) { + } + + override fun handleSendPrivateMessage(s: String, uuid: UUID, list: List): PrivateMessageResponse { + return PrivateMessageResponse.of(null, "该接口不可用") + } +} diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.kt new file mode 100644 index 0000000..9762d46 --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/handle/HandleCommandReturnMessageImpl.kt @@ -0,0 +1,12 @@ +package com.github.theword.queqiao.handle + +import com.github.theword.queqiao.tool.handle.HandleCommandReturnMessageService + +class HandleCommandReturnMessageImpl : HandleCommandReturnMessageService { + override fun handleCommandReturnMessage(o: Any, s: String) { + } + + override fun hasPermission(o: Any, s: String): Boolean { + return false + } +} diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/utils/FileWatcher.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/utils/FileWatcher.kt new file mode 100644 index 0000000..4bc833e --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/utils/FileWatcher.kt @@ -0,0 +1,135 @@ +package com.github.theword.queqiao.utils + +import com.github.theword.queqiao.tool.utils.Tool.logger +import com.github.theword.queqiao.tool.utils.Tool.config +import java.io.File +import java.io.FileWriter +import java.io.IOException +import java.io.RandomAccessFile +import java.nio.charset.StandardCharsets +import java.nio.file.* +import java.util.concurrent.atomic.AtomicLong + + +class FileWatcher(private val lineProcessor: LineProcessor) { + + /** + * 文件监控 + * 同步调用会阻塞 + * + * @param filePath String + * @throws IOException 异常 + * @throws InterruptedException 异常 + */ + @Throws(IOException::class, InterruptedException::class) + fun watcherLog(filePath: Path) { + val fileName = filePath.fileName.toString() + val parentPath = filePath.parent + val watchService = FileSystems.getDefault().newWatchService() + + parentPath.register( + watchService, + StandardWatchEventKinds.ENTRY_CREATE, + StandardWatchEventKinds.ENTRY_MODIFY, + StandardWatchEventKinds.ENTRY_DELETE + ) + val lastPointer = AtomicLong(0L) + do { + val key = watchService.take() + val watchEvents = key.pollEvents() + watchEvents.stream() + .filter { i: WatchEvent<*> -> StandardWatchEventKinds.ENTRY_MODIFY === i.kind() && fileName == (i.context() as Path).fileName.toString() } + .forEach { i: WatchEvent<*> -> + if (i.count() > 1) { + return@forEach + } + val configFile = Paths.get(parentPath.toString() + "/" + i.context()).toFile() + val str = StringBuilder() + lastPointer.set(getFileContent(configFile, lastPointer.get(), str)) + + val line = str.toString() + if (line.isNotEmpty() && line.length < 320 && config.isEnable) { + lineProcessor.processLine(line) + } + } + key.reset() + } while (true) + } + + /** + * beginPointer > configFile 时会从头读取 + * + * @param configFile 配置文件 + * @param beginPointer 起点 + * @param str 内容会拼接进去 + * @return 读到了多少字节, -1 读取失败 + */ + private fun getFileContent(configFile: File, beginPointer: Long, str: StringBuilder): Long { + var currentPointer = beginPointer + if (currentPointer < 0) { + currentPointer = 0 + } + var file: RandomAccessFile? = null + var top = true + try { + file = RandomAccessFile(configFile, "r") + if (currentPointer > file.length()) { + return 0 + } + file.seek(currentPointer) + var line: String + while ((file.readLine().also { line = it }) != null) { + if (top) { + top = false + } else { + str.append("\n") + } + str.append(String(line.toByteArray(StandardCharsets.ISO_8859_1), charset("GBK"))) + } + return file.filePointer + } catch (e: IOException) { + logger.error("Error reading file content", e) + return -1 + } finally { + if (file != null) { + try { + file.close() + } catch (e: IOException) { + logger.error("Error closing file", e) + } + } + } + } + + companion object { + /** + * 文件监听 + * + * @param filePath 文件路径 + */ + fun fileListen(filePath: String, lineProcessor: LineProcessor) { + val path = Paths.get(filePath) + // 监听 + Thread { + try { + FileWatcher(lineProcessor).watcherLog(path) + } catch (e: Exception) { + logger.error("监听日志时出现异常", e) + } + }.start() + + // 刷新日志 + Thread { + try { + while (true) { + val writer = FileWriter(path.toFile(), true) + writer.flush() + writer.close() + } + } catch (e: IOException) { + logger.error("写日志时出现异常", e) + } + }.start() + } + } +} \ No newline at end of file diff --git a/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/utils/LineProcessor.kt b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/utils/LineProcessor.kt new file mode 100644 index 0000000..afad849 --- /dev/null +++ b/minecraft/origin/src/main/kotlin/com/github/theword/queqiao/utils/LineProcessor.kt @@ -0,0 +1,48 @@ +package com.github.theword.queqiao.utils + +import com.github.theword.queqiao.EventProcessor +import com.github.theword.queqiao.config.Config +import com.github.theword.queqiao.tool.utils.Tool.logger +import com.github.theword.queqiao.tool.utils.Tool.config + +class LineProcessor(private val regexConfig: Config, private val eventProcessor: EventProcessor) { + + fun processLine(line: String) { + logger.debug("LogWatcher: $line") + if (config.subscribeEvent.isPlayerChat) + regexConfig.chatRegexSet.forEach { chatConfig -> + val chatMatcher = chatConfig.pattern.matcher(line) + if (chatMatcher.find()) { + val playerName = chatMatcher.group(chatConfig.playerGroup) + val message = chatMatcher.group(chatConfig.messageGroup!!) + if (message != null && message.isNotEmpty()) { + logger.info("[Chat] $playerName: $message") + eventProcessor.onPlayerChat(playerName, message) + } + return + } + } + + if (config.subscribeEvent.isPlayerJoin) + regexConfig.joinRegexSet.forEach { joinConfig -> + val joinMatcher = joinConfig.pattern.matcher(line) + if (joinMatcher.find()) { + logger.info("[Join] $line") + val playerName = joinMatcher.group(joinConfig.playerGroup) + eventProcessor.onPlayerJoin(playerName) + return + } + } + + if (config.subscribeEvent.isPlayerQuit) + regexConfig.quitRegexSet.forEach { quitConfig -> + val quitMatcher = quitConfig.pattern.matcher(line) + if (quitMatcher.find()) { + logger.info("[Quit] $line") + val playerName = quitMatcher.group(quitConfig.playerGroup) + eventProcessor.onPlayerQuit(playerName) + return + } + } + } +} diff --git a/tool_version.txt b/tool_version.txt index def9a01..a1e1395 100644 --- a/tool_version.txt +++ b/tool_version.txt @@ -1 +1 @@ -0.1.5 \ No newline at end of file +0.1.7 \ No newline at end of file From 84a095042242345e817abc49bd8df3dd4d3fd85b Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Mon, 28 Oct 2024 00:09:04 +0800 Subject: [PATCH 16/24] :arrow_up: Upgrade kotlin to 2.0.21 --- minecraft/origin/gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minecraft/origin/gradle.properties b/minecraft/origin/gradle.properties index fb85f44..9bad0fb 100644 --- a/minecraft/origin/gradle.properties +++ b/minecraft/origin/gradle.properties @@ -11,7 +11,7 @@ mod_description=Connect to nonebot2. # Lib Properties gson_version=2.10.1 slf4j_version=1.7.36 -kotlin_version=1.9.23 +kotlin_version=2.0.21 snakeyaml_version=2.2 lombok_version=1.18.30 commons_io_version=2.15.1 From 0ee3e9be7eebf5bd2f89b6183f87a1bb9f82b2e9 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Mon, 28 Oct 2024 12:22:46 +0800 Subject: [PATCH 17/24] :arrow_up: Upgrade tool to 1.3.7 --- ....2.3.jar => ModMultiVersionTool-1.3.7.jar} | Bin 1791073 -> 1793589 bytes 1 file changed, 0 insertions(+), 0 deletions(-) rename tool/{ModMultiVersionTool-1.2.3.jar => ModMultiVersionTool-1.3.7.jar} (94%) diff --git a/tool/ModMultiVersionTool-1.2.3.jar b/tool/ModMultiVersionTool-1.3.7.jar similarity index 94% rename from tool/ModMultiVersionTool-1.2.3.jar rename to tool/ModMultiVersionTool-1.3.7.jar index 0ce2ae4f89ee280f8525f2fabfe17794122391f7..b50301a6626a10d9c4b6b2d920eff81f24aec824 100644 GIT binary patch delta 37436 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 delta 34655 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 From dd932ede98c132f8d1e29b188f5d6ef26e4fc035 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Mon, 28 Oct 2024 12:23:08 +0800 Subject: [PATCH 18/24] :bug: Fix mapping configuration --- forge/origin/gradle.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/forge/origin/gradle.properties b/forge/origin/gradle.properties index e49aced..1e03487 100644 --- a/forge/origin/gradle.properties +++ b/forge/origin/gradle.properties @@ -21,7 +21,6 @@ maven_repository_url=https://maven.pkg.github.com/17TheWord/QueQiaoTool #java_version=17 # END IF # Forge Properties -# ELSE IF forge-1.20.1 mapping_channel=official # IF forge-1.16.5 #minecraft_version=1.16.5 From b67d0ce40d9951623e1bf3c54639f703df28cd02 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Tue, 26 Nov 2024 11:10:19 +0800 Subject: [PATCH 19/24] :tada: Init fabric-1.21.1 --- .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + fabric/fabric-1.21.1/gradlew | 249 ++++++++++++++++++ fabric/fabric-1.21.1/gradlew.bat | 92 +++++++ 4 files changed, 348 insertions(+) create mode 100644 fabric/fabric-1.21.1/gradle/wrapper/gradle-wrapper.jar create mode 100644 fabric/fabric-1.21.1/gradle/wrapper/gradle-wrapper.properties create mode 100644 fabric/fabric-1.21.1/gradlew create mode 100644 fabric/fabric-1.21.1/gradlew.bat diff --git a/fabric/fabric-1.21.1/gradle/wrapper/gradle-wrapper.jar b/fabric/fabric-1.21.1/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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
NnX)EH+Nua)3Y(c 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/fabric/fabric-1.21.1/gradlew.bat b/fabric/fabric-1.21.1/gradlew.bat new file mode 100644 index 0000000..25da30d --- /dev/null +++ b/fabric/fabric-1.21.1/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega From f60a8c05fad29656daf5b591b018cd2c8a99e16b Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Tue, 26 Nov 2024 11:12:30 +0800 Subject: [PATCH 20/24] :sparkles: Support fabric-1.21.1 --- fabric/origin/gradle.properties | 4 ++++ .../theword/queqiao/mixin/PlayerManagerMixin.java | 7 ++++--- fabric/origin/src/main/resources/queqiao.mixins.json5 | 10 ++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/fabric/origin/gradle.properties b/fabric/origin/gradle.properties index cea521e..9b84faa 100644 --- a/fabric/origin/gradle.properties +++ b/fabric/origin/gradle.properties @@ -49,4 +49,8 @@ maven_repository_url=https://maven.pkg.github.com/17TheWord/QueQiaoTool #minecraft_version=1.21 #yarn_mappings=1.21+build.2 #fabric_version=0.100.3+1.21 +# ELSE IF fabric-1.21.1 +#minecraft_version=1.21.1 +#yarn_mappings=1.21.1+build.3 +#fabric_version=0.110.0+1.21.1 # END IF \ No newline at end of file diff --git a/fabric/origin/src/main/java/com/github/theword/queqiao/mixin/PlayerManagerMixin.java b/fabric/origin/src/main/java/com/github/theword/queqiao/mixin/PlayerManagerMixin.java index 2494362..755bc59 100644 --- a/fabric/origin/src/main/java/com/github/theword/queqiao/mixin/PlayerManagerMixin.java +++ b/fabric/origin/src/main/java/com/github/theword/queqiao/mixin/PlayerManagerMixin.java @@ -1,9 +1,10 @@ package com.github.theword.queqiao.mixin; import com.github.theword.queqiao.event.fabric.FabricServerPlayConnectionJoinEvent; +import com.github.theword.queqiao.tool.utils.Tool; import net.minecraft.network.ClientConnection; import net.minecraft.server.PlayerManager; -// IF fabric-1.21 +// IF >= fabric-1.21 //import net.minecraft.server.network.ConnectedClientData; // END IF import net.minecraft.server.network.ServerPlayerEntity; @@ -20,9 +21,9 @@ public class PlayerManagerMixin { @Inject(method = "onPlayerConnect", at = @At("TAIL")) - // IF fabric-1.21 + // IF >=fabric-1.21 // private void onPlayerConnect(ClientConnection connection, ServerPlayerEntity player, ConnectedClientData clientData, CallbackInfo ci) { - // ELSE + // ELSE // private void onPlayerJoin(ClientConnection connection, ServerPlayerEntity player, CallbackInfo ci) { // END IF if (!config.getSubscribeEvent().isPlayerJoin()) return; diff --git a/fabric/origin/src/main/resources/queqiao.mixins.json5 b/fabric/origin/src/main/resources/queqiao.mixins.json5 index 55676be..20ba68d 100644 --- a/fabric/origin/src/main/resources/queqiao.mixins.json5 +++ b/fabric/origin/src/main/resources/queqiao.mixins.json5 @@ -3,10 +3,12 @@ { "required": true, "package": "com.github.theword.queqiao.mixin", - // IF > fabric-1.16.5 -// "compatibilityLevel": "JAVA_17", + // IF >= fabric-1.20.5 + // "compatibilityLevel": "JAVA_21", + // ELSE IF > fabric-1.16.5 + // "compatibilityLevel": "JAVA_17", // ELSE -// "compatibilityLevel": "JAVA_8", + // "compatibilityLevel": "JAVA_8", // END IF "mixins": [ "PlayerManagerMixin", @@ -18,4 +20,4 @@ }, "client": [ ] -} \ No newline at end of file +} From 979e753e5e17f019e0bb6d16dd1d0661ac54b0fb Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Tue, 26 Nov 2024 11:13:27 +0800 Subject: [PATCH 21/24] :fire: Remove unnecessary import --- .../theword/queqiao/mixin/ServerPlayNetworkHandlerMixin.java | 1 - 1 file changed, 1 deletion(-) diff --git a/fabric/origin/src/main/java/com/github/theword/queqiao/mixin/ServerPlayNetworkHandlerMixin.java b/fabric/origin/src/main/java/com/github/theword/queqiao/mixin/ServerPlayNetworkHandlerMixin.java index 316745c..97136fc 100644 --- a/fabric/origin/src/main/java/com/github/theword/queqiao/mixin/ServerPlayNetworkHandlerMixin.java +++ b/fabric/origin/src/main/java/com/github/theword/queqiao/mixin/ServerPlayNetworkHandlerMixin.java @@ -1,6 +1,5 @@ package com.github.theword.queqiao.mixin; -import com.github.theword.queqiao.tool.constant.BaseConstant; import com.github.theword.queqiao.event.fabric.FabricServerCommandMessageEvent; import com.github.theword.queqiao.event.fabric.FabricServerMessageEvent; import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket; From 7968e83ee3cf2f1482109a3798105449f9180d24 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Tue, 26 Nov 2024 11:26:51 +0800 Subject: [PATCH 22/24] :arrow_up: Upgrade tool to 0.1.9 --- tool_version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool_version.txt b/tool_version.txt index a1e1395..82551ad 100644 --- a/tool_version.txt +++ b/tool_version.txt @@ -1 +1 @@ -0.1.7 \ No newline at end of file +0.1.9 \ No newline at end of file From 7b950cda602e83927c36e442877a02479749a401 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Tue, 26 Nov 2024 11:34:19 +0800 Subject: [PATCH 23/24] :arrow_up: Upgrade tool to 0.2.0 --- tool_version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool_version.txt b/tool_version.txt index 82551ad..341cf11 100644 --- a/tool_version.txt +++ b/tool_version.txt @@ -1 +1 @@ -0.1.9 \ No newline at end of file +0.2.0 \ No newline at end of file From e62488d2fe29d904ed28027fab0b627f2132d8a4 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Tue, 26 Nov 2024 11:34:36 +0800 Subject: [PATCH 24/24] :bookmark: Bump version 0.0.6 --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.txt b/version.txt index fa3de58..99d85ec 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.0.5 \ No newline at end of file +0.0.6 \ No newline at end of file