Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2026 oivan
Copyright (c) 2026 iwoss

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ mod_version=1.0.2
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
mod_group_id=ru.oivan.serverlogin
mod_group_id=ru.iwoss.serverlogin
# The authors of the mod. This is a simple text string that is used for display purposes in the mod list.
mod_authors=oivan
mod_authors=iwoss
# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list.
mod_description=Server-side authentication for offline-mode Forge servers.\nVanilla clients register and log in through a server-intercepted chat flow.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin;
package ru.iwoss.serverlogin;

import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.fml.event.config.ModConfigEvent;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package ru.oivan.serverlogin;
package ru.iwoss.serverlogin;

import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.config.ModConfigEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import ru.oivan.serverlogin.auth.LoginManager;
import ru.oivan.serverlogin.chat.AdminChatManager;
import ru.oivan.serverlogin.command.LoginCommands;
import ru.oivan.serverlogin.event.LoginEvents;
import ru.iwoss.serverlogin.auth.LoginManager;
import ru.iwoss.serverlogin.chat.AdminChatManager;
import ru.iwoss.serverlogin.command.LoginCommands;
import ru.iwoss.serverlogin.event.LoginEvents;

@Mod(ServerLoginMod.MOD_ID)
public final class ServerLoginMod {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.auth;
package ru.iwoss.serverlogin.auth;

import java.text.Normalizer;
import java.util.Arrays;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.auth;
package ru.iwoss.serverlogin.auth;

import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
Expand All @@ -15,13 +15,13 @@
import net.minecraft.world.level.storage.LevelResource;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.fml.ModList;
import ru.oivan.serverlogin.LoginConfig;
import ru.oivan.serverlogin.compat.SettlerWagonCompat;
import ru.oivan.serverlogin.diag.LoginDiagnostics;
import ru.oivan.serverlogin.gate.AuthGate;
import ru.oivan.serverlogin.gate.LoginRateLimiter;
import ru.oivan.serverlogin.gate.PacketPolicy;
import ru.oivan.serverlogin.integration.LuckPermsBridge;
import ru.iwoss.serverlogin.LoginConfig;
import ru.iwoss.serverlogin.compat.SettlerWagonCompat;
import ru.iwoss.serverlogin.diag.LoginDiagnostics;
import ru.iwoss.serverlogin.gate.AuthGate;
import ru.iwoss.serverlogin.gate.LoginRateLimiter;
import ru.iwoss.serverlogin.gate.PacketPolicy;
import ru.iwoss.serverlogin.integration.LuckPermsBridge;

import java.util.ArrayList;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.auth;
package ru.iwoss.serverlogin.auth;

import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.auth;
package ru.iwoss.serverlogin.auth;

import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.phys.Vec3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.auth;
package ru.iwoss.serverlogin.auth;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package ru.oivan.serverlogin.chat;
package ru.iwoss.serverlogin.chat;

import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerPlayer;
import ru.oivan.serverlogin.LoginConfig;
import ru.iwoss.serverlogin.LoginConfig;

public final class AdminChatManager {
private static final int ADMIN_PERMISSION_LEVEL = 2;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.command;
package ru.iwoss.serverlogin.command;

import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
Expand All @@ -12,8 +12,8 @@
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import ru.oivan.serverlogin.auth.LoginManager;
import ru.oivan.serverlogin.chat.AdminChatManager;
import ru.iwoss.serverlogin.auth.LoginManager;
import ru.iwoss.serverlogin.chat.AdminChatManager;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.compat;
package ru.iwoss.serverlogin.compat;

import com.mojang.logging.LogUtils;
import net.minecraft.ChatFormatting;
Expand All @@ -7,7 +7,7 @@
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.event.entity.player.PlayerEvent;
import org.slf4j.Logger;
import ru.oivan.serverlogin.diag.LoginDiagnostics;
import ru.iwoss.serverlogin.diag.LoginDiagnostics;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package ru.oivan.serverlogin.diag;
package ru.iwoss.serverlogin.diag;

import com.mojang.logging.LogUtils;
import net.minecraft.network.chat.Component;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerPlayer;
import org.slf4j.Logger;
import ru.oivan.serverlogin.LoginConfig;
import ru.iwoss.serverlogin.LoginConfig;

import java.util.Iterator;
import java.util.Locale;
Expand Down Expand Up @@ -110,7 +110,7 @@ public static String describe(ServerPlayer player) {
private static String callerChain() {
try {
return StackWalker.getInstance().walk(frames -> frames
.filter(frame -> !frame.getClassName().startsWith("ru.oivan.serverlogin.diag"))
.filter(frame -> !frame.getClassName().startsWith("ru.iwoss.serverlogin.diag"))
.limit(STACK_FRAMES)
.map(frame -> frame.getClassName() + "." + frame.getMethodName() + ":" + frame.getLineNumber())
.collect(Collectors.joining(" <- ")));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.event;
package ru.iwoss.serverlogin.event;

import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.event.CommandEvent;
Expand All @@ -15,9 +15,9 @@
import net.minecraftforge.event.server.ServerStoppingEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import ru.oivan.serverlogin.auth.LoginManager;
import ru.oivan.serverlogin.chat.AdminChatManager;
import ru.oivan.serverlogin.diag.LoginDiagnostics;
import ru.iwoss.serverlogin.auth.LoginManager;
import ru.iwoss.serverlogin.chat.AdminChatManager;
import ru.iwoss.serverlogin.diag.LoginDiagnostics;

public final class LoginEvents {
private final LoginManager manager;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.gametest;
package ru.iwoss.serverlogin.gametest;

import com.mojang.authlib.GameProfile;
import net.minecraft.gametest.framework.GameTest;
Expand All @@ -13,9 +13,9 @@
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.gametest.GameTestHolder;
import net.minecraftforge.gametest.PrefixGameTestTemplate;
import ru.oivan.serverlogin.ServerLoginMod;
import ru.oivan.serverlogin.auth.LoginManager;
import ru.oivan.serverlogin.gate.AuthGate;
import ru.iwoss.serverlogin.ServerLoginMod;
import ru.iwoss.serverlogin.auth.LoginManager;
import ru.iwoss.serverlogin.gate.AuthGate;

import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.gate;
package ru.iwoss.serverlogin.gate;

import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.network.ServerGamePacketListenerImpl;
Expand All @@ -11,7 +11,7 @@
/**
* Authentication state in a form the packet gate can read.
*
* <p>{@link ru.oivan.serverlogin.auth.LoginManager} owns the real session model, but it lives
* <p>{@link ru.iwoss.serverlogin.auth.LoginManager} owns the real session model, but it lives
* on the server thread and is reachable only through the mod instance. The packet mixin runs on
* the netty IO thread for every inbound packet, so it needs a static, lock-free view. This class
* is that view: LoginManager is the only writer, everything else reads.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ru.oivan.serverlogin.gate;
package ru.iwoss.serverlogin.gate;

import net.minecraft.server.level.ServerPlayer;
import ru.oivan.serverlogin.LoginConfig;
import ru.iwoss.serverlogin.LoginConfig;

import java.net.InetSocketAddress;
import java.net.SocketAddress;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.gate;
package ru.iwoss.serverlogin.gate;

import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ServerboundAcceptTeleportationPacket;
Expand All @@ -10,8 +10,8 @@
import net.minecraft.network.protocol.game.ServerboundPongPacket;
import net.minecraft.network.protocol.game.ServerboundResourcePackPacket;
import net.minecraft.resources.ResourceLocation;
import ru.oivan.serverlogin.LoginConfig;
import ru.oivan.serverlogin.diag.LoginDiagnostics;
import ru.iwoss.serverlogin.LoginConfig;
import ru.iwoss.serverlogin.diag.LoginDiagnostics;

import java.util.Locale;
import java.util.Set;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package ru.oivan.serverlogin.integration;
package ru.iwoss.serverlogin.integration;

import net.minecraft.server.level.ServerPlayer;
import ru.oivan.serverlogin.diag.LoginDiagnostics;
import ru.oivan.serverlogin.gate.AuthGate;
import ru.iwoss.serverlogin.diag.LoginDiagnostics;
import ru.iwoss.serverlogin.gate.AuthGate;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package ru.oivan.serverlogin.mixin;
package ru.iwoss.serverlogin.mixin;

import io.netty.channel.ChannelHandlerContext;
import net.minecraft.network.Connection;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.oivan.serverlogin.diag.LoginDiagnostics;
import ru.iwoss.serverlogin.diag.LoginDiagnostics;

/**
* Vanilla swallows pipeline errors into a bare "Internal Exception" kick. This prints the
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.mixin;
package ru.iwoss.serverlogin.mixin;

import net.minecraft.network.Connection;
import net.minecraft.network.PacketListener;
Expand All @@ -10,8 +10,8 @@
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.oivan.serverlogin.gate.AuthGate;
import ru.oivan.serverlogin.gate.PacketPolicy;
import ru.iwoss.serverlogin.gate.AuthGate;
import ru.iwoss.serverlogin.gate.PacketPolicy;

/**
* Default-deny gate for unauthenticated players.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.mixin;
package ru.iwoss.serverlogin.mixin;

import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
Expand All @@ -8,7 +8,7 @@
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.oivan.serverlogin.diag.LoginDiagnostics;
import ru.iwoss.serverlogin.diag.LoginDiagnostics;

/**
* Logs every disconnect that touches a playing connection, whoever caused it.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.oivan.serverlogin.mixin;
package ru.iwoss.serverlogin.mixin;

import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.event.entity.player.PlayerEvent;
Expand All @@ -7,7 +7,7 @@
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.oivan.serverlogin.compat.SettlerWagonCompat;
import ru.iwoss.serverlogin.compat.SettlerWagonCompat;

@Pseudo
@Mixin(targets = "com.oivan.settlerwagon.player.PlayerSocietyEvents", remap = false)
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/serverlogin.mixins.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"required": true,
"minVersion": "0.8.5",
"package": "ru.oivan.serverlogin.mixin",
"package": "ru.iwoss.serverlogin.mixin",
"compatibilityLevel": "JAVA_17",
"refmap": "serverlogin.refmap.json",
"mixins": [
Expand Down