diff --git a/README.md b/README.md index cc1125b2..7ec83167 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ Possible values: `Premium`, `Cracked`, `Unknown` * [CrazyLogin](https://dev.bukkit.org/bukkit-plugins/crazylogin/) * [LoginSecurity](https://dev.bukkit.org/bukkit-plugins/loginsecurity/) * [UltraAuth](https://dev.bukkit.org/bukkit-plugins/ultraauth-aa/) +* [SodionAuth](https://github.com/Mohist-Community/SodionAuth) ### BungeeCord/Waterfall diff --git a/bukkit/lib/SodionAuth-Bukkit-2.0-API-only.jar b/bukkit/lib/SodionAuth-Bukkit-2.0-API-only.jar new file mode 100644 index 00000000..50641972 Binary files /dev/null and b/bukkit/lib/SodionAuth-Bukkit-2.0-API-only.jar differ diff --git a/bukkit/pom.xml b/bukkit/pom.xml index 1d1e1edf..12980349 100644 --- a/bukkit/pom.xml +++ b/bukkit/pom.xml @@ -233,5 +233,14 @@ system ${project.basedir}/lib/UltraAuth v2.1.2.jar + + + red.mohist.sodionauth + SodionAuth-Bukkit + 2.0-SNAPSHOT + true + system + ${project.basedir}/lib/SodionAuth-Bukkit-2.0-API-only.jar + diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/SodionAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/SodionAuthHook.java new file mode 100644 index 00000000..85b84417 --- /dev/null +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/SodionAuthHook.java @@ -0,0 +1,49 @@ +package com.github.games647.fastlogin.bukkit.hook; + +import com.github.games647.fastlogin.bukkit.FastLoginBukkit; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; +import org.bukkit.entity.Player; +import red.mohist.sodionauth.bukkit.implementation.BukkitPlayer; +import red.mohist.sodionauth.core.SodionAuthApi; +import red.mohist.sodionauth.core.exception.AuthenticatedException; + +/** + * GitHub: https://github.com/Mohist-Community/SodionAuth + *

+ * Project page: + *

+ * Bukkit: Unknown + *

+ * Spigot: Unknown + */ +public class SodionAuthHook implements AuthPlugin { + + private final FastLoginBukkit plugin; + + public SodionAuthHook(FastLoginBukkit plugin) { + this.plugin = plugin; + } + + @Override + public boolean forceLogin(Player player) { + try { + SodionAuthApi.login(new BukkitPlayer(player)); + } catch (AuthenticatedException e) { + plugin.getLog().warn(ALREADY_AUTHENTICATED, player); + return false; + } + return true; + } + + @Override + public boolean forceRegister(Player player, String password) { + plugin.getLog().warn("AutoRegister is not implemented by SodionAuth yet."); + plugin.getLog().warn("Disable it to prevent further issue!"); + return false; + } + + @Override + public boolean isRegistered(String playerName) { + return SodionAuthApi.isRegister(playerName); + } +} diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/DelayedAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/DelayedAuthHook.java index 53be506b..3a4e8756 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/DelayedAuthHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/DelayedAuthHook.java @@ -7,6 +7,7 @@ import com.github.games647.fastlogin.bukkit.hook.LogItHook; import com.github.games647.fastlogin.bukkit.hook.LoginSecurityHook; import com.github.games647.fastlogin.bukkit.hook.UltraAuthHook; import com.github.games647.fastlogin.bukkit.hook.xAuthHook; +import com.github.games647.fastlogin.bukkit.hook.SodionAuthHook; import com.github.games647.fastlogin.core.hooks.AuthPlugin; import java.lang.reflect.Constructor; @@ -70,8 +71,8 @@ public class DelayedAuthHook implements Runnable { try { @SuppressWarnings("unchecked") List>> hooks = Arrays.asList(AuthMeHook.class, - CrazyLoginHook.class, LogItHook.class, LoginSecurityHook.class, UltraAuthHook.class, - xAuthHook.class); + CrazyLoginHook.class, LogItHook.class, LoginSecurityHook.class, + SodionAuthHook.class, UltraAuthHook.class, xAuthHook.class); for (Class> clazz : hooks) { String pluginName = clazz.getSimpleName().replace("Hook", "");