From d34cbf411bf99a170ba6d786e295ef8e0bda3d81 Mon Sep 17 00:00:00 2001 From: 17TheWord <17theword@gmail.com> Date: Tue, 26 Nov 2024 11:44:03 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=96=B0=E5=A2=9E=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=89=88=E6=9C=AC=20(#24)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * :bug: Fix server command * :sparkles: Support log reading program * :sparkles: Support log reading program * :wrench: Support log reading program * :construction_worker: Ignore origin version * :construction_worker: matrix origin version * :wrench: wrapper file * :wrench: gradlew file * :bug: Fix archiveBaseName for origin version * :construction_worker: Use cache for build * :see_no_evil: Do not ignore ModMultiVersionTool-*.jar * :arrow_up: Upgrade ModMultiVersionTool * Revert ":arrow_up: Upgrade ModMultiVersionTool" This reverts commit dfd2b87c681eb118953f4b3bce60a04cb86e9e3c. * :see_no_evil: Ignore origin version file * 🎨 Rewrite origin version by Kotlin (#20) * :recycle: Rewrite by Kotlin * :arrow_up: Upgrade tool to 0.1.7 * :arrow_up: Upgrade kotlin to 2.0.21 * :arrow_up: Upgrade tool to 1.3.7 * :bug: Fix mapping configuration * :tada: Init fabric-1.21.1 * :sparkles: Support fabric-1.21.1 * :fire: Remove unnecessary import * :arrow_up: Upgrade tool to 0.1.9 * :arrow_up: Upgrade tool to 0.2.0 * :bookmark: Bump version 0.0.6 --- .github/workflows/build.yml | 22 +- .gitignore | 5 + .idea/ModMultiLoaders.xml | 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 +++++++ fabric/origin/gradle.properties | 4 + .../queqiao/mixin/PlayerManagerMixin.java | 7 +- .../mixin/ServerPlayNetworkHandlerMixin.java | 1 - .../src/main/resources/queqiao.mixins.json5 | 10 +- forge/origin/gradle.properties | 1 - .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + minecraft/minecraft-origin/gradlew | 249 ++++++++++++++++++ minecraft/minecraft-origin/gradlew.bat | 92 +++++++ minecraft/origin/build.gradle | 85 ++++++ minecraft/origin/gradle.properties | 21 ++ minecraft/origin/settings.gradle | 4 + .../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 ++++ minecraft/origin/src/main/resources/regex.yml | 16 ++ ....2.3.jar => ModMultiVersionTool-1.3.7.jar} | Bin 1791073 -> 1793589 bytes tool_version.txt | 2 +- version.txt | 2 +- 35 files changed, 1221 insertions(+), 17 deletions(-) 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 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 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/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 create mode 100644 minecraft/origin/src/main/resources/regex.yml rename tool/{ModMultiVersionTool-1.2.3.jar => ModMultiVersionTool-1.3.7.jar} (94%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 120a69b..7540a7f 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 @@ -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: | @@ -82,9 +92,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 +108,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 diff --git a/.gitignore b/.gitignore index 9861b2f..49e04bc 100644 --- a/.gitignore +++ b/.gitignore @@ -20,16 +20,19 @@ QueQiao-jar/ *.rar !gradle-wrapper.jar +!ModMultiVersionTool-*.jar 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 @@ -39,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/ 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 @@ 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 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/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; 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 +} 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 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..7f93135c49b765f8051ef9d0a6055ff8e46073d8 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 0 HcmV?d00001 diff --git a/minecraft/minecraft-origin/gradle/wrapper/gradle-wrapper.properties b/minecraft/minecraft-origin/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3fa8f86 --- /dev/null +++ b/minecraft/minecraft-origin/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/minecraft/minecraft-origin/gradlew b/minecraft/minecraft-origin/gradlew new file mode 100644 index 0000000..1aa94a4 --- /dev/null +++ b/minecraft/minecraft-origin/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + 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/minecraft/minecraft-origin/gradlew.bat b/minecraft/minecraft-origin/gradlew.bat new file mode 100644 index 0000000..93e3f59 --- /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 diff --git a/minecraft/origin/build.gradle b/minecraft/origin/build.gradle new file mode 100644 index 0000000..1981c81 --- /dev/null +++ b/minecraft/origin/build.gradle @@ -0,0 +1,85 @@ +plugins { + id 'com.github.johnrengelman.shadow' version '8.1.1' + id 'org.jetbrains.kotlin.jvm' version "${kotlin_version}" +} + +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 { + 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 { + 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 'org.jetbrains.kotlin:kotlin-test' +} + +test { + useJUnitPlatform() +} + +kotlin { + jvmToolchain(8) +} + +shadowJar { + archiveBaseName.set("${mod_name}-minecraft+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}")) + include(dependency("org.jetbrains.kotlin:kotlin-stdlib:${kotlin_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..9bad0fb --- /dev/null +++ b/minecraft/origin/gradle.properties @@ -0,0 +1,21 @@ +kotlin.code.style=official +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 +kotlin_version=2.0.21 +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 \ No newline at end of file diff --git a/minecraft/origin/settings.gradle b/minecraft/origin/settings.gradle new file mode 100644 index 0000000..766db65 --- /dev/null +++ b/minecraft/origin/settings.gradle @@ -0,0 +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/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/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 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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 diff --git a/tool_version.txt b/tool_version.txt index def9a01..341cf11 100644 --- a/tool_version.txt +++ b/tool_version.txt @@ -1 +1 @@ -0.1.5 \ No newline at end of file +0.2.0 \ No newline at end of file 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