Add support for new authme API

This commit is contained in:
games647
2017-06-12 17:26:46 +02:00
parent fbdd8ffc35
commit 131de8404c

View File

@ -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<Player> {
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<Player> {
@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;
}
}