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

+44
View File
@@ -0,0 +1,44 @@
buildscript {
repositories {
maven { url = 'https://maven.minecraftforge.net/' }
mavenCentral()
gradlePluginPortal()
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:6.0.42'
classpath 'org.spongepowered:mixingradle:0.7.38'
}
}
apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'org.spongepowered.mixin'
repositories {
exclusiveContent {
forRepository { maven { url = 'https://libraries.minecraft.net/' } }
filter { includeGroup 'org.lwjgl' }
}
}
def mc = providers.gradleProperty('mcVersion').getOrElse('1.21.1')
def forgeVersions = ['1.20.1': '47.4.10', '1.21.1': '52.1.0']
if (!forgeVersions.containsKey(mc)) throw new GradleException('Unsupported Minecraft version')
java.sourceCompatibility = JavaVersion.toVersion(mc == '1.20.1' ? 17 : 21)
java.targetCompatibility = java.sourceCompatibility
minecraft { mappings channel: 'official', version: mc }
dependencies {
minecraft "net.minecraftforge:forge:${mc}-${forgeVersions[mc]}"
implementation project(':common')
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
}
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'
mixin { add sourceSets.main, 'scopenet.refmap.json'; config 'scopenet.mixins.json' }
processResources {
inputs.properties(version: project.version, mc: mc)
filesMatching('META-INF/mods.toml') { expand(version: project.version, mc: mc, forge: forgeVersions[mc].split('\\.')[0]) }
}
base.archivesName = "scopenet-forge-${mc}"
jar {
from project(':common').sourceSets.main.output
manifest { attributes('MixinConfigs': 'scopenet.mixins.json') }
finalizedBy 'reobfJar'
}
+27
View File
@@ -0,0 +1,27 @@
plugins { id 'net.minecraftforge.gradle' version '7.0.17' }
def mc = providers.gradleProperty('mcVersion').get()
def forgeVersions = ['26.1.2': '64.1.0', '26.2': '65.1.0', '26.3': '66.0.6']
java.sourceCompatibility = JavaVersion.VERSION_25
java.targetCompatibility = JavaVersion.VERSION_25
repositories {
minecraft.mavenizer(it)
maven fg.forgeMaven
maven fg.minecraftLibsMaven
}
dependencies {
implementation minecraft.dependency("net.minecraftforge:forge:${mc}-${forgeVersions[mc]}")
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('META-INF/mods.toml') { expand(version: project.version, mc: mc, forge: forgeVersions[mc].split('\\.')[0]) }
filesMatching('scopenet.mixins.json') { filter { line -> line.contains('"refmap"') ? null : line } }
}
base.archivesName = "scopenet-forge-${mc}"
jar {
from project(':common').sourceSets.main.output
manifest { attributes('MixinConfigs': 'scopenet.mixins.json') }
}
@@ -0,0 +1,11 @@
package net.scopenet.forge;
import net.minecraftforge.fml.common.Mod;
@Mod("scopenet")
public final class ScopenetForge {
public ScopenetForge() {
if (Boolean.getBoolean("scopenet.verifyMixins"))
org.spongepowered.asm.mixin.MixinEnvironment.getCurrentEnvironment().audit();
}
}
@@ -0,0 +1,21 @@
modLoader="javafml"
loaderVersion="[${forge},)"
license="All Rights Reserved"
[[mods]]
modId="scopenet"
version="${version}"
displayName="SCOPENET"
displayTest="IGNORE_ALL_VERSION"
description="Private authentication, access control and activity reporting for SCOPENET servers."
[[dependencies.scopenet]]
modId="forge"
mandatory=true
versionRange="[${forge},)"
ordering="NONE"
side="SERVER"
[[dependencies.scopenet]]
modId="minecraft"
mandatory=true
versionRange="[${mc}]"
ordering="NONE"
side="SERVER"