2020-06-25 13:07:17 +02:00

47 lines
1.9 KiB
Java

package es.mesacarlos.webconsole.websocket.command;
import org.bukkit.Bukkit;
import org.java_websocket.WebSocket;
import es.mesacarlos.webconsole.auth.LoginManager;
import es.mesacarlos.webconsole.auth.PasswordManager;
import es.mesacarlos.webconsole.auth.User;
import es.mesacarlos.webconsole.auth.UserType;
import es.mesacarlos.webconsole.util.Internationalization;
import es.mesacarlos.webconsole.websocket.WSServer;
import es.mesacarlos.webconsole.websocket.response.LoginRequired;
import es.mesacarlos.webconsole.websocket.response.LoggedIn;
public class LogInCommand implements WSCommand {
@Override
public void execute(WSServer wsServer, WebSocket conn, String password) {
// If user is logged in, then return.
if (LoginManager.getInstance().isLoggedIn(conn.getRemoteSocketAddress()))
return;
//Check user type and login is password is valid
switch(PasswordManager.isValidUser(password)) {
case ADMIN:
login(wsServer, conn, PasswordManager.isValidAdminPassword(password), UserType.ADMIN);
break;
case VIEWER:
login(wsServer, conn, PasswordManager.isValidViewerPassword(password), UserType.VIEWER);
break;
default:
wsServer.sendToClient(conn, new LoginRequired(Internationalization.getPhrase("login-failed-message")));
Bukkit.getLogger().info(Internationalization.getPhrase("login-failed-console", conn.getRemoteSocketAddress()));
break;
}
}
private void login(WSServer wsServer, WebSocket conn, String username, UserType as) {
User user = new User(conn.getRemoteSocketAddress(), username, as);
LoginManager.getInstance().logIn(user);
wsServer.sendToClient(conn, new LoggedIn(Internationalization.getPhrase("login-sucessful-message"), "LOGIN ********", user.getUsername(), user.getUserType()));
Bukkit.getLogger().info(Internationalization.getPhrase("login-sucessful-console", user.toString()));
}
}