2021-06-14 22:30:29 +00:00
|
|
|
From 4975802f5fcea2ef9cfa06df8b9a0939961ff935 Mon Sep 17 00:00:00 2001
|
|
|
|
From: mohammed jasem alaajel <34905970+ham1255@users.noreply.github.com>
|
|
|
|
Date: Tue, 15 Jun 2021 02:28:50 +0400
|
|
|
|
Subject: [PATCH] Removing all Auth related stuff
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/FastLoginBungee.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/FastLoginBungee.java
|
|
|
|
index 25f1ac2..ec6f74a 100644
|
|
|
|
--- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/FastLoginBungee.java
|
|
|
|
+++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/FastLoginBungee.java
|
|
|
|
@@ -29,7 +29,6 @@ import com.github.games647.fastlogin.bungee.listener.ConnectListener;
|
|
|
|
import com.github.games647.fastlogin.bungee.listener.PluginMessageListener;
|
|
|
|
import com.github.games647.fastlogin.core.AsyncScheduler;
|
|
|
|
import com.github.games647.fastlogin.core.CommonUtil;
|
|
|
|
-import com.github.games647.fastlogin.core.hooks.AuthPlugin;
|
|
|
|
import com.github.games647.fastlogin.core.message.ChangePremiumMessage;
|
|
|
|
import com.github.games647.fastlogin.core.message.ChannelMessage;
|
|
|
|
import com.github.games647.fastlogin.core.message.NamespaceKey;
|
|
|
|
@@ -42,8 +41,6 @@ import com.google.common.io.ByteStreams;
|
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
|
|
|
|
|
|
|
import java.nio.file.Path;
|
|
|
|
-import java.util.Arrays;
|
|
|
|
-import java.util.List;
|
|
|
|
import java.util.concurrent.ConcurrentMap;
|
|
|
|
import java.util.concurrent.ThreadFactory;
|
|
|
|
|
|
|
|
diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/ConnectListener.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/ConnectListener.java
|
|
|
|
index db8f269..07df30a 100644
|
|
|
|
--- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/ConnectListener.java
|
|
|
|
+++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/ConnectListener.java
|
|
|
|
@@ -32,7 +32,6 @@ import com.github.games647.fastlogin.bungee.hook.floodgate.FloodgateHook;
|
|
|
|
import com.github.games647.fastlogin.bungee.hook.floodgate.FloodgateV1Hook;
|
|
|
|
import com.github.games647.fastlogin.bungee.hook.floodgate.FloodgateV2Hook;
|
|
|
|
import com.github.games647.fastlogin.bungee.task.AsyncPremiumCheck;
|
|
|
|
-import com.github.games647.fastlogin.bungee.task.ForceLoginTask;
|
|
|
|
import com.github.games647.fastlogin.core.RateLimiter;
|
|
|
|
import com.github.games647.fastlogin.core.StoredProfile;
|
|
|
|
import com.github.games647.fastlogin.core.shared.LoginSession;
|
|
|
|
@@ -249,8 +248,12 @@ public class ConnectListener implements Listener {
|
|
|
|
// delay sending force command, because Paper will process the login event asynchronously
|
|
|
|
// In this case it means that the force command (plugin message) is already received and processed while
|
|
|
|
// player is still in the login phase and reported to be offline.
|
|
|
|
- Runnable loginTask = new ForceLoginTask(plugin.getCore(), player, server, session);
|
|
|
|
- plugin.getScheduler().runAsync(loginTask);
|
|
|
|
+
|
|
|
|
+ // LimeLogin start
|
|
|
|
+ //Disabled...
|
|
|
|
+ //Runnable loginTask = new ForceLoginTask(plugin.getCore(), player, server, session);
|
|
|
|
+ //plugin.getScheduler().runAsync(loginTask);
|
2021-06-16 14:38:57 +00:00
|
|
|
+ // LimeLogin end
|
2021-06-14 22:30:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/task/AsyncPremiumCheck.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/task/AsyncPremiumCheck.java
|
|
|
|
index 410b1e4..0136f09 100644
|
|
|
|
--- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/task/AsyncPremiumCheck.java
|
|
|
|
+++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/task/AsyncPremiumCheck.java
|
|
|
|
@@ -49,8 +49,9 @@ public class AsyncPremiumCheck extends JoinManagement<ProxiedPlayer, CommandSend
|
|
|
|
|
|
|
|
public AsyncPremiumCheck(FastLoginBungee plugin, PreLoginEvent preLoginEvent, PendingConnection connection,
|
|
|
|
String username) {
|
|
|
|
- super(plugin.getCore(), plugin.getCore().getAuthPluginHook());
|
|
|
|
-
|
|
|
|
+ // LimeLogin start
|
|
|
|
+ super(plugin.getCore());
|
2021-06-16 14:38:57 +00:00
|
|
|
+ // LimeLogin end
|
2021-06-16 14:38:57 +00:00
|
|
|
<<<<<<< HEAD
|
2021-06-14 22:30:29 +00:00
|
|
|
|
2021-06-16 14:38:57 +00:00
|
|
|
=======
|
|
|
|
>>>>>>> 654e137 (related to main)
|
2021-06-14 22:30:29 +00:00
|
|
|
this.plugin = plugin;
|
|
|
|
this.preLoginEvent = preLoginEvent;
|
|
|
|
this.connection = connection;
|
|
|
|
diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/task/ForceLoginTask.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/task/ForceLoginTask.java
|
|
|
|
deleted file mode 100644
|
|
|
|
index 0a7f862..0000000
|
|
|
|
--- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/task/ForceLoginTask.java
|
|
|
|
+++ /dev/null
|
|
|
|
@@ -1,121 +0,0 @@
|
|
|
|
-/*
|
|
|
|
- * SPDX-License-Identifier: MIT
|
|
|
|
- *
|
|
|
|
- * The MIT License (MIT)
|
|
|
|
- *
|
|
|
|
- * Copyright (c) 2015-2021 <Your name and contributors>
|
|
|
|
- *
|
|
|
|
- * Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
- * of this software and associated documentation files (the "Software"), to deal
|
|
|
|
- * in the Software without restriction, including without limitation the rights
|
|
|
|
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
- * copies of the Software, and to permit persons to whom the Software is
|
|
|
|
- * furnished to do so, subject to the following conditions:
|
|
|
|
- *
|
|
|
|
- * The above copyright notice and this permission notice shall be included in all
|
|
|
|
- * copies or substantial portions of the Software.
|
|
|
|
- *
|
|
|
|
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
|
- * SOFTWARE.
|
|
|
|
- */
|
|
|
|
-package com.github.games647.fastlogin.bungee.task;
|
|
|
|
-
|
|
|
|
-import com.github.games647.fastlogin.bungee.BungeeLoginSession;
|
|
|
|
-import com.github.games647.fastlogin.bungee.FastLoginBungee;
|
|
|
|
-import com.github.games647.fastlogin.bungee.event.BungeeFastLoginAutoLoginEvent;
|
|
|
|
-import com.github.games647.fastlogin.core.StoredProfile;
|
|
|
|
-import com.github.games647.fastlogin.core.message.ChannelMessage;
|
|
|
|
-import com.github.games647.fastlogin.core.message.LoginActionMessage;
|
|
|
|
-import com.github.games647.fastlogin.core.message.LoginActionMessage.Type;
|
|
|
|
-import com.github.games647.fastlogin.core.shared.FastLoginCore;
|
|
|
|
-import com.github.games647.fastlogin.core.shared.ForceLoginManagement;
|
|
|
|
-import com.github.games647.fastlogin.core.shared.LoginSession;
|
|
|
|
-import com.github.games647.fastlogin.core.shared.event.FastLoginAutoLoginEvent;
|
|
|
|
-
|
|
|
|
-import java.util.UUID;
|
|
|
|
-
|
|
|
|
-import net.md_5.bungee.api.CommandSender;
|
|
|
|
-import net.md_5.bungee.api.ProxyServer;
|
|
|
|
-import net.md_5.bungee.api.connection.ProxiedPlayer;
|
|
|
|
-import net.md_5.bungee.api.connection.Server;
|
|
|
|
-
|
|
|
|
-public class ForceLoginTask
|
|
|
|
- extends ForceLoginManagement<ProxiedPlayer, CommandSender, BungeeLoginSession, FastLoginBungee> {
|
|
|
|
-
|
|
|
|
- private final Server server;
|
|
|
|
-
|
|
|
|
- public ForceLoginTask(FastLoginCore<ProxiedPlayer, CommandSender, FastLoginBungee> core,
|
|
|
|
- ProxiedPlayer player, Server server, BungeeLoginSession session) {
|
|
|
|
- super(core, player, session);
|
|
|
|
-
|
|
|
|
- this.server = server;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public void run() {
|
|
|
|
- if (session == null) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- super.run();
|
|
|
|
-
|
|
|
|
- if (!isOnlineMode()) {
|
|
|
|
- session.setAlreadySaved(true);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public boolean forceLogin(ProxiedPlayer player) {
|
|
|
|
- if (session.isAlreadyLogged()) {
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- session.setAlreadyLogged(true);
|
|
|
|
- return super.forceLogin(player);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public FastLoginAutoLoginEvent callFastLoginAutoLoginEvent(LoginSession session, StoredProfile profile) {
|
|
|
|
- return core.getPlugin().getProxy().getPluginManager()
|
|
|
|
- .callEvent(new BungeeFastLoginAutoLoginEvent(session, profile));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public boolean forceRegister(ProxiedPlayer player) {
|
|
|
|
- return session.isAlreadyLogged() || super.forceRegister(player);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public void onForceActionSuccess(LoginSession session) {
|
|
|
|
- //sub channel name
|
|
|
|
- Type type = Type.LOGIN;
|
|
|
|
- if (session.needsRegistration()) {
|
|
|
|
- type = Type.REGISTER;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- UUID proxyId = UUID.fromString(ProxyServer.getInstance().getConfig().getUuid());
|
|
|
|
- ChannelMessage loginMessage = new LoginActionMessage(type, player.getName(), proxyId);
|
|
|
|
-
|
|
|
|
- core.getPlugin().sendPluginMessage(server, loginMessage);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public String getName(ProxiedPlayer player) {
|
|
|
|
- return player.getName();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public boolean isOnline(ProxiedPlayer player) {
|
|
|
|
- return player.isConnected();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public boolean isOnlineMode() {
|
|
|
|
- return player.getPendingConnection().isOnlineMode();
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
diff --git a/core/src/main/java/com/github/games647/fastlogin/core/hooks/AuthPlugin.java b/core/src/main/java/com/github/games647/fastlogin/core/hooks/AuthPlugin.java
|
|
|
|
deleted file mode 100644
|
|
|
|
index 1a614ba..0000000
|
|
|
|
--- a/core/src/main/java/com/github/games647/fastlogin/core/hooks/AuthPlugin.java
|
|
|
|
+++ /dev/null
|
|
|
|
@@ -1,87 +0,0 @@
|
|
|
|
-/*
|
|
|
|
- * SPDX-License-Identifier: MIT
|
|
|
|
- *
|
|
|
|
- * The MIT License (MIT)
|
|
|
|
- *
|
|
|
|
- * Copyright (c) 2015-2021 <Your name and contributors>
|
|
|
|
- *
|
|
|
|
- * Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
- * of this software and associated documentation files (the "Software"), to deal
|
|
|
|
- * in the Software without restriction, including without limitation the rights
|
|
|
|
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
- * copies of the Software, and to permit persons to whom the Software is
|
|
|
|
- * furnished to do so, subject to the following conditions:
|
|
|
|
- *
|
|
|
|
- * The above copyright notice and this permission notice shall be included in all
|
|
|
|
- * copies or substantial portions of the Software.
|
|
|
|
- *
|
|
|
|
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
|
- * SOFTWARE.
|
|
|
|
- */
|
|
|
|
-package com.github.games647.fastlogin.core.hooks;
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * Represents a supporting authentication plugin in BungeeCord and Bukkit/Spigot/... servers
|
|
|
|
- *
|
|
|
|
- * @param <P> either {@link org.bukkit.entity.Player} for Bukkit or {@link net.md_5.bungee.api.connection.ProxiedPlayer}
|
|
|
|
- * for BungeeCord
|
|
|
|
- */
|
|
|
|
-public interface AuthPlugin<P> {
|
|
|
|
-
|
|
|
|
- String ALREADY_AUTHENTICATED = "Player {} is already authenticated. Cancelling force login.";
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Login the premium (paid account) player after the player joined successfully the server.
|
|
|
|
- *
|
|
|
|
- * <strong>This operation will be performed async while the player successfully
|
|
|
|
- * joined the server.</strong>
|
|
|
|
- *
|
|
|
|
- * @param player the player that needs to be logged in
|
|
|
|
- * @return if the operation was successful
|
|
|
|
- */
|
|
|
|
- boolean forceLogin(P player);
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Forces a register in order to protect the paid account.
|
|
|
|
- *
|
|
|
|
- * <strong>This operation will be performed async while the player successfully
|
|
|
|
- * joined the server.</strong>
|
|
|
|
- *
|
|
|
|
- * After a successful registration the player should be logged
|
|
|
|
- * in too.
|
|
|
|
- *
|
|
|
|
- * The method will be called only for premium accounts.
|
|
|
|
- * So it's recommended to set additionally premium property
|
|
|
|
- * if possible.
|
|
|
|
- *
|
|
|
|
- * Background: If we don't register an account, cracked players
|
|
|
|
- * could steal the unregistered account from the paid
|
|
|
|
- * player account
|
|
|
|
- *
|
|
|
|
- * @param player the premium account
|
|
|
|
- * @param password a strong random generated password
|
|
|
|
- * @return if the operation was successful
|
|
|
|
- */
|
|
|
|
- boolean forceRegister(P player, String password);
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Checks whether an account exists for this player name.
|
|
|
|
- *
|
|
|
|
- * This check should check if a cracked player account exists
|
|
|
|
- * so we can be sure the premium player doesn't steal the account
|
|
|
|
- * of that player.
|
|
|
|
- *
|
|
|
|
- * This operation will be performed async while the player is
|
|
|
|
- * connecting.
|
|
|
|
- *
|
|
|
|
- * @param playerName player name
|
|
|
|
- * @return if the player has an account
|
|
|
|
- * @throws Exception if an error occurred
|
|
|
|
- */
|
|
|
|
- boolean isRegistered(String playerName) throws Exception;
|
|
|
|
-}
|
|
|
|
diff --git a/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java b/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java
|
|
|
|
index ec3f924..90c9add 100644
|
|
|
|
--- a/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java
|
|
|
|
+++ b/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java
|
|
|
|
@@ -30,7 +30,6 @@ import com.github.games647.craftapi.resolver.http.RotatingProxySelector;
|
|
|
|
import com.github.games647.fastlogin.core.AuthStorage;
|
|
|
|
import com.github.games647.fastlogin.core.CommonUtil;
|
|
|
|
import com.github.games647.fastlogin.core.RateLimiter;
|
|
|
|
-import com.github.games647.fastlogin.core.hooks.AuthPlugin;
|
|
|
|
import com.github.games647.fastlogin.core.hooks.DefaultPasswordGenerator;
|
|
|
|
import com.github.games647.fastlogin.core.hooks.PasswordGenerator;
|
|
|
|
import com.google.common.net.HostAndPort;
|
|
|
|
@@ -85,8 +84,9 @@ public class FastLoginCore<P extends C, C, T extends PlatformPlugin<C>> {
|
|
|
|
private AuthStorage storage;
|
|
|
|
private RateLimiter rateLimiter;
|
|
|
|
private PasswordGenerator<P> passwordGenerator = new DefaultPasswordGenerator<>();
|
|
|
|
- private AuthPlugin<P> authPlugin;
|
|
|
|
-
|
|
|
|
+ // LimeLogin start
|
|
|
|
+ //private AuthPlugin<P> authPlugin;
|
2021-06-16 14:38:57 +00:00
|
|
|
+ // LimeLogin end
|
2021-06-16 14:38:57 +00:00
|
|
|
<<<<<<< HEAD
|
2021-06-14 22:30:29 +00:00
|
|
|
|
2021-06-16 14:38:57 +00:00
|
|
|
=======
|
|
|
|
>>>>>>> 654e137 (related to main)
|
2021-06-14 22:30:29 +00:00
|
|
|
public FastLoginCore(T plugin) {
|
|
|
|
this.plugin = plugin;
|
|
|
|
}
|
|
|
|
@@ -251,17 +251,25 @@ public class FastLoginCore<P extends C, C, T extends PlatformPlugin<C>> {
|
|
|
|
return pendingConfirms;
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // LimeLogin start
|
|
|
|
+ /*
|
|
|
|
public AuthPlugin<P> getAuthPluginHook() {
|
|
|
|
return authPlugin;
|
|
|
|
}
|
|
|
|
+ */
|
2021-06-16 14:38:57 +00:00
|
|
|
+ // LimeLogin end
|
2021-06-16 14:38:57 +00:00
|
|
|
<<<<<<< HEAD
|
2021-06-14 22:30:29 +00:00
|
|
|
|
|
|
|
|
2021-06-16 14:38:57 +00:00
|
|
|
=======
|
|
|
|
>>>>>>> 654e137 (related to main)
|
2021-06-14 22:30:29 +00:00
|
|
|
|
|
|
|
public RateLimiter getRateLimiter() {
|
|
|
|
return rateLimiter;
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // LimeLogin start
|
|
|
|
+ /*
|
|
|
|
public void setAuthPluginHook(AuthPlugin<P> authPlugin) {
|
|
|
|
this.authPlugin = authPlugin;
|
|
|
|
}
|
|
|
|
+ */
|
2021-06-16 14:38:57 +00:00
|
|
|
+ // LimeLogin end
|
2021-06-14 22:30:29 +00:00
|
|
|
|
|
|
|
public void saveDefaultFile(String fileName) {
|
|
|
|
Path dataFolder = plugin.getPluginFolder();
|
|
|
|
diff --git a/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java b/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java
|
|
|
|
deleted file mode 100644
|
|
|
|
index b417e64..0000000
|
|
|
|
--- a/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java
|
|
|
|
+++ /dev/null
|
|
|
|
@@ -1,143 +0,0 @@
|
|
|
|
-/*
|
|
|
|
- * SPDX-License-Identifier: MIT
|
|
|
|
- *
|
|
|
|
- * The MIT License (MIT)
|
|
|
|
- *
|
|
|
|
- * Copyright (c) 2015-2021 <Your name and contributors>
|
|
|
|
- *
|
|
|
|
- * Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
- * of this software and associated documentation files (the "Software"), to deal
|
|
|
|
- * in the Software without restriction, including without limitation the rights
|
|
|
|
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
- * copies of the Software, and to permit persons to whom the Software is
|
|
|
|
- * furnished to do so, subject to the following conditions:
|
|
|
|
- *
|
|
|
|
- * The above copyright notice and this permission notice shall be included in all
|
|
|
|
- * copies or substantial portions of the Software.
|
|
|
|
- *
|
|
|
|
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
|
- * SOFTWARE.
|
|
|
|
- */
|
|
|
|
-package com.github.games647.fastlogin.core.shared;
|
|
|
|
-
|
|
|
|
-import com.github.games647.fastlogin.core.AuthStorage;
|
|
|
|
-import com.github.games647.fastlogin.core.StoredProfile;
|
|
|
|
-import com.github.games647.fastlogin.core.hooks.AuthPlugin;
|
|
|
|
-import com.github.games647.fastlogin.core.shared.event.FastLoginAutoLoginEvent;
|
|
|
|
-
|
|
|
|
-public abstract class ForceLoginManagement<P extends C, C, L extends LoginSession, T extends PlatformPlugin<C>>
|
|
|
|
- implements Runnable {
|
|
|
|
-
|
|
|
|
- protected final FastLoginCore<P, C, T> core;
|
|
|
|
- protected final P player;
|
|
|
|
- protected final L session;
|
|
|
|
-
|
|
|
|
- public ForceLoginManagement(FastLoginCore<P, C, T> core, P player, L session) {
|
|
|
|
- this.core = core;
|
|
|
|
- this.player = player;
|
|
|
|
- this.session = session;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public void run() {
|
|
|
|
- if (!isOnline(player)) {
|
|
|
|
- core.getPlugin().getLog().info("Player {} disconnected", player);
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (session == null) {
|
|
|
|
- core.getPlugin().getLog().info("No valid session found for {}", player);
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- AuthStorage storage = core.getStorage();
|
|
|
|
- StoredProfile playerProfile = session.getProfile();
|
|
|
|
- try {
|
|
|
|
- if (isOnlineMode()) {
|
|
|
|
- //premium player
|
|
|
|
- AuthPlugin<P> authPlugin = core.getAuthPluginHook();
|
|
|
|
- if (authPlugin == null) {
|
|
|
|
- //maybe only bungeecord plugin
|
|
|
|
- onForceActionSuccess(session);
|
|
|
|
- } else {
|
|
|
|
- boolean success = true;
|
|
|
|
- String playerName = getName(player);
|
|
|
|
- if (core.getConfig().get("autoLogin", true)) {
|
|
|
|
- if (session.needsRegistration()
|
|
|
|
- || (core.getConfig().get("auto-register-unknown", false)
|
|
|
|
- && !authPlugin.isRegistered(playerName))) {
|
|
|
|
- success = forceRegister(player);
|
|
|
|
- } else if (!callFastLoginAutoLoginEvent(session, playerProfile).isCancelled()) {
|
|
|
|
- success = forceLogin(player);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (success) {
|
|
|
|
- //update only on success to prevent corrupt data
|
|
|
|
- if (playerProfile != null) {
|
|
|
|
- playerProfile.setId(session.getUuid());
|
|
|
|
- playerProfile.setPremium(true);
|
|
|
|
- storage.save(playerProfile);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- onForceActionSuccess(session);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- } else if (playerProfile != null) {
|
|
|
|
- //cracked player
|
|
|
|
- playerProfile.setId(null);
|
|
|
|
- playerProfile.setPremium(false);
|
|
|
|
- // LimeLogin start
|
|
|
|
-
|
|
|
|
- //Govindas comment - don't save cracked player profiles, I found it to be useless
|
|
|
|
- //storage.save(playerProfile);
|
|
|
|
- //end of Govindas comment
|
|
|
|
-
|
2021-06-16 14:38:57 +00:00
|
|
|
- // LimeLogin end
|
2021-06-14 22:30:29 +00:00
|
|
|
- }
|
|
|
|
- } catch (Exception ex) {
|
|
|
|
- core.getPlugin().getLog().warn("ERROR ON FORCE LOGIN of {}", getName(player), ex);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public boolean forceRegister(P player) {
|
|
|
|
- core.getPlugin().getLog().info("Register player {}", getName(player));
|
|
|
|
-
|
|
|
|
- String generatedPassword = core.getPasswordGenerator().getRandomPassword(player);
|
|
|
|
- boolean success = core.getAuthPluginHook().forceRegister(player, generatedPassword);
|
|
|
|
-
|
|
|
|
- String message = core.getMessage("auto-register");
|
|
|
|
- if (success && message != null) {
|
|
|
|
- message = message.replace("%password", generatedPassword);
|
|
|
|
- core.getPlugin().sendMessage(player, message);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return success;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public boolean forceLogin(P player) {
|
|
|
|
- core.getPlugin().getLog().info("Logging player {} in", getName(player));
|
|
|
|
-
|
|
|
|
- boolean success = core.getAuthPluginHook().forceLogin(player);
|
|
|
|
- if (success) {
|
|
|
|
- core.sendLocaleMessage("auto-login", player);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return success;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public abstract FastLoginAutoLoginEvent callFastLoginAutoLoginEvent(LoginSession session, StoredProfile profile);
|
|
|
|
-
|
|
|
|
- public abstract void onForceActionSuccess(LoginSession session);
|
|
|
|
-
|
|
|
|
- public abstract String getName(P player);
|
|
|
|
-
|
|
|
|
- public abstract boolean isOnline(P player);
|
|
|
|
-
|
|
|
|
- public abstract boolean isOnlineMode();
|
|
|
|
-}
|
|
|
|
diff --git a/core/src/main/java/com/github/games647/fastlogin/core/shared/JoinManagement.java b/core/src/main/java/com/github/games647/fastlogin/core/shared/JoinManagement.java
|
|
|
|
index 5490673..dabe324 100644
|
|
|
|
--- a/core/src/main/java/com/github/games647/fastlogin/core/shared/JoinManagement.java
|
|
|
|
+++ b/core/src/main/java/com/github/games647/fastlogin/core/shared/JoinManagement.java
|
|
|
|
@@ -28,7 +28,6 @@ package com.github.games647.fastlogin.core.shared;
|
|
|
|
import com.github.games647.craftapi.model.Profile;
|
|
|
|
import com.github.games647.craftapi.resolver.RateLimitException;
|
|
|
|
import com.github.games647.fastlogin.core.StoredProfile;
|
|
|
|
-import com.github.games647.fastlogin.core.hooks.AuthPlugin;
|
|
|
|
import com.github.games647.fastlogin.core.hooks.FloodgateHook;
|
|
|
|
import com.github.games647.fastlogin.core.shared.event.FastLoginPreLoginEvent;
|
|
|
|
|
|
|
|
@@ -43,14 +42,18 @@ import net.md_5.bungee.config.Configuration;
|
|
|
|
public abstract class JoinManagement<P extends C, C, S extends LoginSource> {
|
|
|
|
|
|
|
|
protected final FastLoginCore<P, C, ?> core;
|
|
|
|
- protected final AuthPlugin<P> authHook;
|
|
|
|
+ // LimeLogin start
|
|
|
|
+ //protected final AuthPlugin<P> authHook;
|
2021-06-16 14:38:57 +00:00
|
|
|
+ // LimeLogin end
|
2021-06-14 22:30:29 +00:00
|
|
|
private final FloodgateHook<P, C, ?> floodgateHook;
|
|
|
|
|
|
|
|
- public JoinManagement(FastLoginCore<P, C, ?> core, AuthPlugin<P> authHook) {
|
|
|
|
+ // LimeLogin start
|
|
|
|
+ public JoinManagement(FastLoginCore<P, C, ?> core) {
|
|
|
|
this.core = core;
|
|
|
|
- this.authHook = authHook;
|
|
|
|
this.floodgateHook = new FloodgateHook<>(core);
|
|
|
|
}
|
2021-06-16 14:38:57 +00:00
|
|
|
<<<<<<< HEAD
|
2021-06-14 22:30:29 +00:00
|
|
|
|
2021-06-16 14:38:57 +00:00
|
|
|
=======
|
|
|
|
>>>>>>> 654e137 (related to main)
|
2021-06-16 14:38:57 +00:00
|
|
|
+ // LimeLogin end
|
2021-06-14 22:30:29 +00:00
|
|
|
+
|
|
|
|
|
|
|
|
public void onLogin(String username, S source) {
|
|
|
|
core.getPlugin().getLog().info("Handling player {}", username);
|
|
|
|
@@ -130,7 +133,7 @@ public abstract class JoinManagement<P extends C, C, S extends LoginSource> {
|
|
|
|
//end of Govindas comment
|
2021-06-16 14:38:57 +00:00
|
|
|
<<<<<<< HEAD
|
2021-06-14 22:30:29 +00:00
|
|
|
|
2021-06-16 14:38:57 +00:00
|
|
|
// LimeLogin end
|
2021-06-14 22:30:29 +00:00
|
|
|
|
2021-06-16 14:38:57 +00:00
|
|
|
=======
|
|
|
|
|
|
|
|
// LimeLogin end
|
|
|
|
>>>>>>> 654e137 (related to main)
|
2021-06-14 22:30:29 +00:00
|
|
|
- if (core.getConfig().get("autoRegister", false) && (authHook == null)) {
|
|
|
|
+ if (core.getConfig().get("autoRegister", false)) {
|
|
|
|
// LimeLogin start
|
|
|
|
requestPremiumLogin(source, profile, username, false); //Comment: always use false to fix an error XD
|
2021-06-16 14:38:57 +00:00
|
|
|
// LimeLogin end
|
2021-06-16 14:38:57 +00:00
|
|
|
<<<<<<< HEAD
|
2021-06-14 22:30:29 +00:00
|
|
|
|
2021-06-16 14:38:57 +00:00
|
|
|
=======
|
|
|
|
>>>>>>> 654e137 (related to main)
|
2021-06-14 22:30:29 +00:00
|
|
|
--
|
|
|
|
2.32.0.windows.1
|
|
|
|
|