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

+28
View File
@@ -0,0 +1,28 @@
plugins { id 'fabric-loom' version '1.8.13' }
def mc = providers.gradleProperty('mcVersion').getOrElse('1.21.1')
if (!(mc in ['1.20.1', '1.21.1'])) throw new GradleException('Use the modern build for 26.x')
def targetJava = mc == '1.20.1' ? 17 : 21
loom { mixin { defaultRefmapName = 'scopenet.refmap.json' } }
if (providers.gradleProperty('verifyMixins').isPresent()) {
loom { runs { server { vmArg '-Dscopenet.verifyMixins=true' } } }
}
java.sourceCompatibility = JavaVersion.toVersion(targetJava)
java.targetCompatibility = JavaVersion.toVersion(targetJava)
dependencies {
minecraft "com.mojang:minecraft:${mc}"
mappings loom.officialMojangMappings()
modImplementation 'net.fabricmc:fabric-loader:0.16.10'
implementation project(':common')
}
sourceSets.main.java.srcDirs += ['../minecraft/src/main/java', "../minecraft/src/${mc}/java"]
sourceSets.main.resources.srcDirs += ['../minecraft/src/main/resources']
apply from: '../minecraft/build-info.gradle'
processResources {
inputs.properties(version: project.version, mc: mc, java: targetJava)
filesMatching('fabric.mod.json') { expand(version: project.version, mc: mc, java: targetJava) }
}
jar {
archiveBaseName = "scopenet-fabric-${mc}"
from project(':common').sourceSets.main.output
}
base.archivesName = "scopenet-fabric-${mc}"
+22
View File
@@ -0,0 +1,22 @@
plugins { id 'net.fabricmc.fabric-loom' version '1.17.17' }
def mc = providers.gradleProperty('mcVersion').get()
if (providers.gradleProperty('verifyMixins').isPresent()) {
loom { runs { server { vmArg '-Dscopenet.verifyMixins=true' } } }
}
java.sourceCompatibility = JavaVersion.VERSION_25
java.targetCompatibility = JavaVersion.VERSION_25
dependencies {
minecraft "com.mojang:minecraft:${mc}"
implementation 'net.fabricmc:fabric-loader:0.19.5'
implementation project(':common')
}
sourceSets.main.java.srcDirs += ['../minecraft/src/main/java', '../minecraft/src/26/java']
sourceSets.main.resources.srcDirs += ['../minecraft/src/main/resources']
apply from: '../minecraft/build-info.gradle'
processResources {
inputs.properties(version: project.version, mc: mc)
filesMatching('fabric.mod.json') { expand(version: project.version, mc: mc, java: 25) }
filesMatching('scopenet.mixins.json') { filter { line -> line.contains('"refmap"') ? null : line } }
}
base.archivesName = "scopenet-fabric-${mc}"
jar { from project(':common').sourceSets.main.output }
@@ -0,0 +1,11 @@
package net.scopenet.fabric;
import net.fabricmc.api.DedicatedServerModInitializer;
/** Server-only; lifecycle and admission hooks are shared mixins. */
public final class ScopenetFabric implements DedicatedServerModInitializer {
@Override public void onInitializeServer() {
if (Boolean.getBoolean("scopenet.verifyMixins"))
org.spongepowered.asm.mixin.MixinEnvironment.getCurrentEnvironment().audit();
}
}
@@ -0,0 +1,10 @@
{
"schemaVersion": 1,
"id": "scopenet",
"version": "${version}",
"name": "SCOPENET",
"environment": "server",
"entrypoints": { "server": ["net.scopenet.fabric.ScopenetFabric"] },
"mixins": ["scopenet.mixins.json"],
"depends": { "fabricloader": ">=0.16.10", "minecraft": "${mc}", "java": ">=${java}" }
}