47 lines
1.9 KiB
Java
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()));
|
|
}
|
|
|
|
} |