From 131de8404c62a5ef390ecd7bce35ab63ad816148 Mon Sep 17 00:00:00 2001 From: games647 Date: Mon, 12 Jun 2017 17:26:46 +0200 Subject: [PATCH] Add support for new authme API --- .../fastlogin/bukkit/hooks/AuthMeHook.java | 42 ++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/AuthMeHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/AuthMeHook.java index bebd7ce4..23548ad6 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/AuthMeHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/AuthMeHook.java @@ -3,6 +3,7 @@ package com.github.games647.fastlogin.bukkit.hooks; import com.github.games647.fastlogin.core.hooks.AuthPlugin; import fr.xephi.authme.api.NewAPI; +import fr.xephi.authme.api.v3.AuthMeApi; import org.bukkit.entity.Player; @@ -17,13 +18,35 @@ import org.bukkit.entity.Player; */ public class AuthMeHook implements AuthPlugin { + private final boolean v3APIAvailable; + + public AuthMeHook() { + boolean apiAvailable = true; + try { + Class.forName("fr.xephi.authme.api.v3.AuthMeApi"); + } catch (ClassNotFoundException classNotFoundEx) { + apiAvailable = false; + } + + this.v3APIAvailable = apiAvailable; + } + @Override public boolean forceLogin(Player player) { - //skips registration and login - if (NewAPI.getInstance().isAuthenticated(player)) { - return false; + if (v3APIAvailable) { + //skips registration and login + if (AuthMeApi.getInstance().isAuthenticated(player)) { + return false; + } else { + AuthMeApi.getInstance().forceLogin(player); + } } else { - NewAPI.getInstance().forceLogin(player); + //skips registration and login + if (NewAPI.getInstance().isAuthenticated(player)) { + return false; + } else { + NewAPI.getInstance().forceLogin(player); + } } return true; @@ -31,13 +54,22 @@ public class AuthMeHook implements AuthPlugin { @Override public boolean isRegistered(String playerName) throws Exception { + if (v3APIAvailable) { + return AuthMeApi.getInstance().isRegistered(playerName); + } + return NewAPI.getInstance().isRegistered(playerName); } @Override public boolean forceRegister(Player player, String password) { //this automatically registers the player too - NewAPI.getInstance().forceRegister(player, password); + if (v3APIAvailable) { + AuthMeApi.getInstance().forceRegister(player, password); + } else { + NewAPI.getInstance().forceRegister(player, password); + } + return true; } }