Just putting this out here, have fun

This commit is contained in:
Martin Prokoph
2024-11-22 15:48:34 +01:00
parent fac524bab7
commit 8655bcd06c
22 changed files with 884 additions and 0 deletions

26
common/build.gradle Normal file
View File

@@ -0,0 +1,26 @@
architectury {
common(rootProject.enabled_platforms.split(","))
}
dependencies {
// We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies
// Do NOT use other classes from fabric loader
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
// Using the Fabric version of midnightlib here to create a common config and get useful utilities
// Just make sure NOT to use classes from the .fabric classpath
modCompileOnlyApi "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-fabric"
}
publishing {
publications {
mavenCommon(MavenPublication) {
artifactId = rootProject.archives_base_name
from components.java
}
}
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
repositories {
// Add repositories to publish to here.
}
}

View File

@@ -0,0 +1,11 @@
package eu.midnightdust.selectiveauth;
import eu.midnightdust.selectiveauth.config.SelectiveAuthConfig;
public class SelectiveAuth {
public static final String MOD_ID = "selectiveauth";
public static void init() {
SelectiveAuthConfig.init(MOD_ID, SelectiveAuthConfig.class);
}
}

View File

@@ -0,0 +1,10 @@
package eu.midnightdust.selectiveauth.config;
import com.google.common.collect.Lists;
import eu.midnightdust.lib.config.MidnightConfig;
import java.util.List;
public class SelectiveAuthConfig extends MidnightConfig {
@Entry public static List<String> authlessPlayers = Lists.newArrayList();
}

View File

@@ -0,0 +1,22 @@
package eu.midnightdust.selectiveauth.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import eu.midnightdust.selectiveauth.config.SelectiveAuthConfig;
import net.minecraft.server.network.ServerLoginNetworkHandler;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
@Mixin(ServerLoginNetworkHandler.class)
public class MixinServerLoginNetworkHandler {
@Shadow @Nullable String profileName;
@ModifyExpressionValue(
method = "onHello",
at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;isOnlineMode()Z")
)
private boolean selectiveauth$skipAuthForSelectedPlayers(boolean isOnlineMode) {
return isOnlineMode && !SelectiveAuthConfig.authlessPlayers.contains(this.profileName);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,12 @@
{
"required": true,
"minVersion": "0.8",
"package": "eu.midnightdust.selectiveauth.mixin",
"compatibilityLevel": "JAVA_17",
"mixins": [
"MixinServerLoginNetworkHandler"
],
"injectors": {
"defaultRequire": 1
}
}