diff --git a/README.md b/README.md index e312e603..2760b5dc 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 (2.0+)](https://github.com/Mohist-Community/SodionAuth) ### BungeeCord/Waterfall diff --git a/bukkit/pom.xml b/bukkit/pom.xml index 473f87f6..c8dfe616 100644 --- a/bukkit/pom.xml +++ b/bukkit/pom.xml @@ -233,5 +233,19 @@ system ${project.basedir}/lib/UltraAuth v2.1.2.jar + + + com.github.Mohist-Community.SodionAuth + SodionAuth-Bukkit + b74392aa34 + + + com.github.Mohist-Community.SodionAuth + SodionAuth-Libs + + + true + provided + 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..2c7d2d67 --- /dev/null +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/SodionAuthHook.java @@ -0,0 +1,53 @@ +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) { + try{ + return SodionAuthApi.register(new BukkitPlayer(player), password); + } catch (UnsupportedOperationException e){ + plugin.getLog().warn("Currently SodionAuth is not accepting forceRegister, " + + "It may be caused by unsupported AuthBackend"); + return false; + } + } + + @Override + public boolean isRegistered(String playerName) { + return SodionAuthApi.isRegistered(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", "");