Skip to content

Commit 5a12e7c

Browse files
committed
Merge branch '1.21.4' into 1.21.11
# Conflicts: # build.gradle.kts
2 parents ec44a00 + 0ac4d9e commit 5a12e7c

File tree

62 files changed

+763
-281
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+763
-281
lines changed

.github/workflows/act-build-launcher.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,73 @@ jobs:
7070
path: ZenithProxy-${{ matrix.artifact-name }}.sha1
7171
if-no-files-found: error
7272

73+
build-alpine:
74+
env:
75+
pyinstaller_version: "6.18.0"
76+
UV_PYTHON: '3.14.2'
77+
runs-on: ${{ matrix.os }}
78+
container:
79+
image: ${{ matrix.image || '' }}
80+
strategy:
81+
fail-fast: true
82+
matrix:
83+
os: [ 'ubuntu-latest']
84+
include:
85+
- os: 'ubuntu-latest'
86+
image: 'node:24-alpine3.23'
87+
artifact-name: 'launcher-alpine-amd64'
88+
sha1-command: 'sha1sum -b dist/launch | cut -d" " -f 1'
89+
steps:
90+
- name: Install Deps
91+
run: apk add zip bash build-base ca-certificates curl gcc git libc-dev libffi-dev libgcc make musl-dev openssl openssl-dev zlib-dev
92+
93+
- name: Check out repository
94+
uses: actions/checkout@v6
95+
with:
96+
persist-credentials: false
97+
98+
- name: Install uv
99+
uses: astral-sh/setup-uv@v7
100+
101+
- name: Install PyInstaller
102+
run: |
103+
uv tool install pyinstaller@${{ env.pyinstaller_version }}
104+
105+
- name: Build launcher
106+
run: >
107+
uv tool run --with-requirements src/launcher/requirements.txt --upgrade
108+
pyinstaller@${{ env.pyinstaller_version }} --specpath ./build
109+
-p ./src/launcher --onefile
110+
--runtime-tmpdir .launcher.tmp
111+
--noconfirm
112+
-i ../src/launcher/icon.ico
113+
./src/launcher/__main__.py
114+
115+
- name: Rename executable
116+
run: |
117+
mv dist/__main__ dist/launch
118+
119+
- name: Create zip
120+
run: |
121+
zip -j dist/ZenithProxy-${{ matrix.artifact-name }}.zip dist/launch
122+
123+
- name: Upload Binary
124+
uses: actions/upload-artifact@v4
125+
with:
126+
name: ${{ matrix.artifact-name }}
127+
path: dist/ZenithProxy-${{ matrix.artifact-name }}.zip
128+
if-no-files-found: error
129+
130+
- name: Get Binary Hash
131+
run: ${{ matrix.sha1-command }} > ZenithProxy-${{ matrix.artifact-name }}.sha1
132+
133+
- name: Upload Launcher Hash Version
134+
uses: actions/upload-artifact@v4
135+
with:
136+
name: ${{ matrix.artifact-name }}.sha1
137+
path: ZenithProxy-${{ matrix.artifact-name }}.sha1
138+
if-no-files-found: error
139+
73140
package-python:
74141
runs-on: ubuntu-latest
75142
steps:
@@ -139,6 +206,7 @@ jobs:
139206
release-artifacts:
140207
needs:
141208
- build-matrix
209+
- build-alpine
142210
- package-python
143211
- package-windows-python
144212
runs-on: ubuntu-latest

.github/workflows/act-local.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
run: zip -j ZenithProxy.zip build/native/nativeCompile/*
6464

6565
- name: Upload Binary
66-
uses: actions/upload-artifact@v3
66+
uses: actions/upload-artifact@v4
6767
with:
6868
name: linux-native
6969
path: ZenithProxy.zip

.github/workflows/release-launcher.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,95 @@ jobs:
100100
path: ZenithProxy-${{ matrix.artifact-name }}.sha1
101101
if-no-files-found: error
102102

103+
build-alpine:
104+
env:
105+
pyinstaller_version: "6.18.0"
106+
UV_PYTHON: '3.14.2'
107+
runs-on: ${{ matrix.os }}
108+
container:
109+
image: ${{ matrix.image || '' }}
110+
strategy:
111+
fail-fast: true
112+
matrix:
113+
os: [ 'ubuntu-latest', 'ubuntu-24.04-arm']
114+
include:
115+
- os: 'ubuntu-latest'
116+
image: 'node:24-alpine3.23'
117+
artifact-name: 'launcher-alpine-amd64'
118+
sha1-command: 'sha1sum -b dist/launch | cut -d" " -f 1'
119+
- os: 'ubuntu-24.04-arm'
120+
image: 'node:24-alpine3.23'
121+
artifact-name: 'launcher-alpine-aarch64'
122+
sha1-command: 'sha1sum -b dist/launch | cut -d" " -f 1'
123+
steps:
124+
# https://github.com/dart-musl/setup-node-alpine-for-javascript-actions
125+
- if: ${{ matrix.os == 'ubuntu-24.04-arm' }}
126+
run: |
127+
if grep -q '^ID=alpine$' /etc/os-release; then
128+
ROOT=$(TMPDIR="$RUNNER_TEMP" mktemp -d)
129+
apk add --root "$ROOT" --repositories-file /etc/apk/repositories --allow-untrusted --no-cache --no-scripts --initdb -- docker-cli
130+
"$ROOT/usr/bin/docker" run --rm --net host --user 0:0 --volume /:/hostfs --entrypoint /usr/sbin/chroot "$("$ROOT/usr/bin/docker" inspect '${{ job.container.id }}' --format "{{ .Image }}")" /hostfs /bin/bash -xc \
131+
'exec sudo -u "$(stat -c "%U" -- "$7")" -- /bin/bash -xc "$@"' -- \
132+
'find "$5" -type f -executable -name node -not -path "*_alpine/*" -print0 | exec xargs -0 -n 1 -- /bin/bash -xc "$@"' -- \
133+
'exec docker run --rm --volume /:/hostfs --entrypoint /bin/sh "docker.io/library/node:$("$4" -e "console.log(process.versions.node)")-alpine" -xc "$@"' -- \
134+
'apk add --no-cache -- patchelf && apk info --quiet --contents -- libgcc libstdc++ | xargs -- tar -cC / -T- | tar -xvC "$(dirname "/hostfs$2")/../lib" --strip-components 2 && cp "$(which node)" "/hostfs$2" && patchelf --set-rpath \$ORIGIN/../lib "/hostfs$2" && ldd "/hostfs$2"' -- \
135+
"$("$ROOT/usr/bin/docker" inspect '${{ job.container.id }}' --format '{{ range.Mounts }}{{ if eq .Destination "/__e" }}{{ .Source }}{{ end }}{{ end }}')"
136+
rm -rf -- "$ROOT"
137+
sed -i -e 's/^ID=alpine$/ID=linux/' /etc/os-release
138+
fi
139+
shell: sh
140+
141+
- name: Install Deps
142+
run: apk add zip bash build-base ca-certificates curl gcc git libc-dev libffi-dev libgcc make musl-dev openssl openssl-dev zlib-dev
143+
144+
- name: Check out repository
145+
uses: actions/checkout@v6
146+
with:
147+
persist-credentials: false
148+
149+
- name: Install uv
150+
uses: astral-sh/setup-uv@v7
151+
152+
- name: Install PyInstaller
153+
run: |
154+
uv tool install pyinstaller@${{ env.pyinstaller_version }}
155+
156+
- name: Build launcher
157+
run: >
158+
uv tool run --with-requirements src/launcher/requirements.txt --upgrade
159+
pyinstaller@${{ env.pyinstaller_version }} --specpath ./build
160+
-p ./src/launcher --onefile
161+
--runtime-tmpdir .launcher.tmp
162+
--noconfirm
163+
-i ../src/launcher/icon.ico
164+
./src/launcher/__main__.py
165+
166+
- name: Rename executable
167+
run: |
168+
mv dist/__main__ dist/launch
169+
170+
- name: Create zip
171+
run: |
172+
zip -j dist/ZenithProxy-${{ matrix.artifact-name }}.zip dist/launch
173+
174+
- name: Upload Binary
175+
uses: actions/upload-artifact@v6
176+
with:
177+
name: ${{ matrix.artifact-name }}
178+
path: dist/ZenithProxy-${{ matrix.artifact-name }}.zip
179+
if-no-files-found: error
180+
181+
- name: Get Binary Hash
182+
run: ${{ matrix.sha1-command }} > ZenithProxy-${{ matrix.artifact-name }}.sha1
183+
184+
- name: Upload Launcher Hash Version
185+
uses: actions/upload-artifact@v6
186+
with:
187+
name: ${{ matrix.artifact-name }}.sha1
188+
path: ZenithProxy-${{ matrix.artifact-name }}.sha1
189+
if-no-files-found: error
190+
191+
103192
package-python:
104193
runs-on: ubuntu-latest
105194
steps:
@@ -173,6 +262,7 @@ jobs:
173262
release-artifacts:
174263
needs:
175264
- build-pyinstaller
265+
- build-alpine
176266
- package-python
177267
- package-windows-python
178268
runs-on: ubuntu-latest

build.gradle.kts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
plugins {
22
`java-library`
3-
id("org.graalvm.buildtools.native") version "0.11.3"
3+
id("org.graalvm.buildtools.native") version "0.11.4"
44
id("com.gradleup.shadow") version "9.3.1"
5-
id("io.freefair.lombok") version "9.1.0"
5+
id("io.freefair.lombok") version "9.2.0"
66
`maven-publish`
77
}
88

@@ -26,7 +26,7 @@ repositories {
2626
mavenLocal()
2727
}
2828

29-
val mcplVersion = "1.21.11.4"
29+
val mcplVersion = "1.21.11.7"
3030
dependencies {
3131
api("com.github.rfresh2:JDA:6.3.27") {
3232
exclude(group = "club.minnced")
@@ -68,31 +68,30 @@ dependencies {
6868
api("com.github.rfresh2.fastutil.maps:reference-object-maps:$fastutilVersion")
6969
api("com.github.rfresh2.fastutil.maps:long-double-maps:$fastutilVersion")
7070
api("com.github.rfresh2.fastutil.queues:int-queues:$fastutilVersion")
71-
api("com.viaversion:vialoader:4.0.6")
72-
api("com.viaversion:viaversion-common:5.7.0")
73-
api("com.viaversion:viabackwards-common:5.7.0")
74-
api("com.viaversion:viarewind-common:4.0.13")
71+
api("com.viaversion:viaversion-common:5.7.1")
72+
api("com.viaversion:viabackwards-common:5.7.1")
73+
api("com.viaversion:viarewind-common:4.0.14")
7574
api("org.jline:jline:3.30.6")
7675
api("ar.com.hjg:pngj:2.1.0")
7776
api("com.zaxxer:HikariCP:7.0.2")
78-
api("org.postgresql:postgresql:42.7.8")
77+
api("org.postgresql:postgresql:42.7.9")
7978
api("org.jdbi:jdbi3-postgres:3.51.0")
8079
api("com.google.guava:guava:33.5.0-jre")
81-
api("ch.qos.logback:logback-classic:1.5.24")
80+
api("ch.qos.logback:logback-classic:1.5.26")
8281
api("org.slf4j:slf4j-api:2.0.17")
8382
api("org.slf4j:jul-to-slf4j:2.0.17")
8483
api("com.mojang:brigadier:1.3.10")
8584
api("net.kyori:adventure-text-logger-slf4j")
8685
api("dev.omega24:upnp4j:1.0")
87-
api(platform("tools.jackson:jackson-bom:3.0.3"))
86+
api(platform("tools.jackson:jackson-bom:3.0.4"))
8887
api("tools.jackson.core:jackson-databind")
8988

9089
testImplementation(platform("org.junit:junit-bom:6.0.2"))
9190
testImplementation("org.junit.jupiter:junit-jupiter")
9291
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
9392
compileOnly("com.google.auto.service:auto-service-annotations:1.1.1")
9493
annotationProcessor("com.google.auto.service:auto-service:1.1.1")
95-
compileOnly("org.graalvm.sdk:nativeimage:25.0.1")
94+
compileOnly("org.graalvm.sdk:nativeimage:25.0.2")
9695
}
9796

9897
lombok {

docs/wiki/Commands.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,8 @@ The `timeout` arguments configures how long until players are kicked due no pack
735735

736736
```serverConnection chatSigning mode <disguised/passthrough/system>```
737737

738+
```serverConnection preferLoginAsController on/off```
739+
738740

739741
### shutdown
740742

@@ -1431,11 +1433,11 @@ Dropping can be configured based on modes:
14311433

14321434

14331435

1434-
* `all`: any item
1436+
* `all`: any item
14351437

1436-
* `whitelist`: only added items
1438+
* `whitelist`: only added items
14371439

1438-
* `blacklist`: any item not added
1440+
* `blacklist`: any item not added
14391441

14401442
**Usage**
14411443

docs/wiki/FAQ.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,19 +163,19 @@ More info in my discord: https://discord.com/channels/1127460556710883391/112746
163163

164164
## Who are these unknown people pinging or trying to connect to my proxy?
165165

166-
if you host something on your home PC, that is not exposed to the public internet by default in most cases
166+
if you host something on your home PC, in most cases, it is _not_ exposed to the public internet by default
167167

168-
Windows comes with a firewall, and your router would need to have port forwarding configured to expose it
168+
Windows has a firewall, and your router needs to have port forwarding configured
169169

170170
but if you host something on the public internet, anyone on the public internet can find it
171171

172-
there's only around 4b possible ip's, and it's very feasible to scan 4b ip's in under an hour
172+
there are only ~4 billion possible ip's. And it's possible to scan 4b ip's in under an hour
173173

174-
people have been doing this for many years for every minecraft server, e.g. 5c, serverseeker, matscan, and many more
174+
people have been doing this for many years across every minecraft server. some groups involved are: 5c, serverseeker, matscan, and many more
175175

176176
to be clear, finding a proxy's public ip does not let them get past the whitelist
177177

178-
if you are hosting on the public internet, and it does make you uncomfortable there's many things you can do:
178+
if you are hosting on the public internet, and it makes you uncomfortable, there are some things you can do:
179179

180180
* disable server list pings: `serverConnection ping off`
181181
* set up a DNS hostname, and then set `serverConnection enforceMatchingConnectingAddress on`

docs/wiki/Setup.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
* [Windows x64](https://github.com/rfresh2/ZenithProxy/releases/download/launcher-v3/ZenithProxy-launcher-windows-python-amd64.zip)
2525
* Linux: [x64](https://github.com/rfresh2/ZenithProxy/releases/download/launcher-v3/ZenithProxy-launcher-linux-amd64.zip) or [aarch64 (ARM)](https://github.com/rfresh2/ZenithProxy/releases/download/launcher-v3/ZenithProxy-launcher-linux-aarch64.zip)
2626
* Mac: [M-series CPU](https://github.com/rfresh2/ZenithProxy/releases/download/launcher-v3/ZenithProxy-launcher-macos-aarch64.zip) or [x64 (Intel)](https://github.com/rfresh2/ZenithProxy/releases/download/launcher-v3/ZenithProxy-launcher-macos-amd64.zip)
27+
* Alpine Linux (musl): [x64](https://github.com/rfresh2/ZenithProxy/releases/download/launcher-v3/ZenithProxy-launcher-alpine-amd64.zip) or [aarch64](https://github.com/rfresh2/ZenithProxy/releases/download/launcher-v3/ZenithProxy-launcher-alpine-aarch64.zip)
2728
* Other: [Python (Universal)](https://github.com/rfresh2/ZenithProxy/releases/download/launcher-v3/ZenithProxy-launcher-python.zip)
29+
* Recommended with: [install uv](https://docs.astral.sh/uv/getting-started/installation/#installing-uv)
2830

2931
Source: https://github.com/rfresh2/ZenithProxy/releases/tag/launcher-v3
3032

src/launcher/__main__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
update_launcher_exec(config, api)
8989
update_zenith_exec(config, api)
9090
launcher_exec(config)
91-
info("Restarting in 3 seconds...")
91+
info("Restarting...")
9292
time.sleep(3)
9393
except KeyboardInterrupt:
9494
sys.exit(0)

0 commit comments

Comments
 (0)