diff --git a/src/main/java/org/samo_lego/simpleauth/commands/AuthCommand.java b/src/main/java/org/samo_lego/simpleauth/commands/AuthCommand.java index 25233ca..325251c 100644 --- a/src/main/java/org/samo_lego/simpleauth/commands/AuthCommand.java +++ b/src/main/java/org/samo_lego/simpleauth/commands/AuthCommand.java @@ -117,7 +117,7 @@ public class AuthCommand { if(sender != null) sender.sendMessage(configurationReloaded); else - LOGGER.info(configurationReloaded); + LOGGER.info(SimpleAuth.config.lang.configurationReloaded); return 1; } } diff --git a/src/main/java/org/samo_lego/simpleauth/commands/LoginCommand.java b/src/main/java/org/samo_lego/simpleauth/commands/LoginCommand.java index f6a7792..0d58fca 100644 --- a/src/main/java/org/samo_lego/simpleauth/commands/LoginCommand.java +++ b/src/main/java/org/samo_lego/simpleauth/commands/LoginCommand.java @@ -6,7 +6,6 @@ import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.LiteralText; import net.minecraft.text.Text; -import net.minecraft.text.Text; import org.samo_lego.simpleauth.SimpleAuth; import org.samo_lego.simpleauth.utils.AuthHelper; @@ -47,12 +46,11 @@ public class LoginCommand { // Player no longer needs to be invisible and invulnerable player.setInvulnerable(false); player.setInvisible(false); - //player.setAir(AuthEventHandler.playerAir); - //player.getDataTracker().startTracking(); player.sendMessage(successfullyAuthenticated); return 1; } - player.sendMessage(wrongPassword); + player.networkHandler.disconnect(wrongPassword); + //player.sendMessage(wrongPassword); return 0; } } diff --git a/src/main/java/org/samo_lego/simpleauth/event/AuthEventHandler.java b/src/main/java/org/samo_lego/simpleauth/event/AuthEventHandler.java index ba35888..ab67b1a 100644 --- a/src/main/java/org/samo_lego/simpleauth/event/AuthEventHandler.java +++ b/src/main/java/org/samo_lego/simpleauth/event/AuthEventHandler.java @@ -9,12 +9,17 @@ import net.minecraft.util.ActionResult; import net.minecraft.util.TypedActionResult; import org.samo_lego.simpleauth.SimpleAuth; +import java.util.Timer; +import java.util.TimerTask; + /** * This class will take care of actions players try to do, - * and cancels them if they aren't authenticated + * and cancel them if they aren't authenticated */ public class AuthEventHandler { private static TranslatableText notAuthenticated = new TranslatableText(SimpleAuth.config.lang.notAuthenticated); + private static TranslatableText timeExpired = new TranslatableText(SimpleAuth.config.lang.timeExpired); + private static int delay = SimpleAuth.config.main.delay; // Player joining the server public static void onPlayerJoin(ServerPlayerEntity player) { @@ -24,6 +29,14 @@ public class AuthEventHandler { // Setting the player to be invisible to mobs and also invulnerable player.setInvulnerable(SimpleAuth.config.main.playerInvulnerable); player.setInvisible(SimpleAuth.config.main.playerInvisible); + Timer timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + if(!SimpleAuth.isAuthenticated(player)) // Kicking player if not authenticated + player.networkHandler.disconnect(timeExpired); + } + }, delay * 1000); } } // Player leaving the server diff --git a/src/main/java/org/samo_lego/simpleauth/utils/AuthConfig.java b/src/main/java/org/samo_lego/simpleauth/utils/AuthConfig.java index 4ca0501..99b9d00 100644 --- a/src/main/java/org/samo_lego/simpleauth/utils/AuthConfig.java +++ b/src/main/java/org/samo_lego/simpleauth/utils/AuthConfig.java @@ -37,8 +37,12 @@ public class AuthConfig { public boolean allowItemUse = false; public boolean allowEntityPunch = false; public boolean allowEntityInteract = false; + // If player should be invulnerable before authentication public boolean playerInvulnerable = true; + // If player should be invisible to mobs before authentication public boolean playerInvisible = true; + // Time after which player will be kicked if not authenticated [s] + public int delay = 60; } public static class LangConfig { public String enterPassword = "§6You need to enter your password!"; @@ -49,6 +53,7 @@ public class AuthConfig { public String notAuthenticated = "§cYou are not authenticated!\n§6Try with /login or /register."; public String alreadyAuthenticated = "§4You are already authenticated."; public String successfullyAuthenticated = "§aYou are now authenticated."; + public String timeExpired = "§cTime for authentication has expired."; public String alreadyRegistered = "§6This account name is already registered!"; public String registerSuccess = "§aYou are now authenticated."; public String userdataDeleted = "§aUserdata deleted.";