Complete private authentication, server integrations and activity reporting

Add Fabric/Forge version builds and Paper integration, preserve permanent player identities across renames, harden session authorization, and surface privacy-conscious launcher/server activity in the panel.
This commit is contained in:
SCOPEDD committed 2026-09-28 13:31:17 -04:00
commit a1f19e86c6
74 files changed
+2108 -95

No files matched your search

+74
View File
@@ -0,0 +1,74 @@
name: Server integrations
on:
push:
branches: ['**']
paths: ['integrations/**', '.github/workflows/integrations.yml']
pull_request:
paths: ['integrations/**', '.github/workflows/integrations.yml']
workflow_dispatch:
workflow_call:
inputs:
version:
type: string
default: '0.1.0'
permissions:
contents: read
jobs:
paper:
name: Paper and protocol tests
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: '21'
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: '8.10.2'
- run: gradle -p integrations :common:test :paper:build -PreleaseVersion="${{ inputs.version || '0.1.0' }}"
- uses: actions/upload-artifact@v4
with:
name: server-paper
path: integrations/paper/build/libs/scopenet-paper-*.jar
if-no-files-found: error
- uses: actions/upload-artifact@v4
if: failure()
with:
name: integration-test-reports
path: integrations/common/build/reports/tests/
mods:
name: ${{ matrix.loader }} / ${{ matrix.mc.version }}
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
loader: [fabric, forge]
mc:
- { version: '1.20.1', java: '21', gradle: '8.10.2' }
- { version: '1.21.1', java: '21', gradle: '8.10.2' }
- { version: '26.1.2', java: '25', gradle: '9.6.0' }
- { version: '26.2', java: '25', gradle: '9.6.0' }
- { version: '26.3', java: '25', gradle: '9.6.0' }
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: ${{ matrix.mc.java }}
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: ${{ matrix.mc.gradle }}
- run: gradle -p integrations -Ploader=${{ matrix.loader }} -PmcVersion=${{ matrix.mc.version }} -PreleaseVersion="${{ inputs.version || '0.1.0' }}" :${{ matrix.loader }}:build
- name: Audit Fabric hooks during server bootstrap (no world startup)
if: matrix.loader == 'fabric'
run: gradle -p integrations -Ploader=fabric -PmcVersion=${{ matrix.mc.version }} -PreleaseVersion="${{ inputs.version || '0.1.0' }}" -PverifyMixins=true :fabric:runServer
- uses: actions/upload-artifact@v4
with:
name: server-${{ matrix.loader }}-${{ matrix.mc.version }}
path: integrations/${{ matrix.loader }}/build/libs/scopenet-${{ matrix.loader }}-${{ matrix.mc.version }}-*.jar
if-no-files-found: error
+17 -2
View File
@@ -131,15 +131,26 @@ jobs:
cache-from: type=gha
cache-to: type=gha,mode=max
server-integrations:
needs: version
uses: ./.github/workflows/integrations.yml
with:
version: ${{ needs.version.outputs.version }}
release:
name: GitHub release
needs: [version, launcher, panel-image]
needs: [version, launcher, panel-image, server-integrations]
runs-on: ubuntu-24.04
steps:
- uses: actions/download-artifact@v4
with:
name: windows-installer
path: dist
- uses: actions/download-artifact@v4
with:
pattern: server-*
merge-multiple: true
path: dist
- name: Release notes
run: |
IMAGE="ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/scopenet-mc-panel"
@@ -148,6 +159,8 @@ jobs:
**Launcher (Windows):** download the \`-setup.exe\` below and run it. Installed launchers update themselves automatically.
**Servers:** download \`scopenet-paper\` or the Fabric/Forge JAR for your exact Minecraft version. Keep \`online-mode=true\` and install authlib-injector as documented in \`docs/server-integration.md\`.
**Admin panel (Docker):**
\`\`\`bash
docker pull ${IMAGE}:${{ needs.version.outputs.version }}
@@ -162,4 +175,6 @@ jobs:
body_path: notes.md
generate_release_notes: true
prerelease: ${{ contains(needs.version.outputs.version, '-') }}
files: dist/*-setup.exe
files: |
dist/*-setup.exe
dist/*.jar