Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package server.webadmin;
- import java.io.*;
- import java.net.*;
- import java.util.*;
- import server.Config;
- import server.Connection;
- import server.Server;
- import server.model.players.Client;
- public class WebAdmin implements Runnable {
- Socket client;
- BufferedReader reader;
- PrintWriter writer;
- Socket sock;
- public class ReadRequest implements Runnable {
- BufferedReader reader;
- WebAdmin webadmin;
- PrintWriter writer;
- public ReadRequest(Socket client) {
- try {
- webadmin = new WebAdmin();
- writer = new PrintWriter(client.getOutputStream(), true);
- InputStreamReader isReader = new InputStreamReader(client.getInputStream());
- reader = new BufferedReader(isReader);
- } catch(Exception ex) {
- System.out.println("[WebAdmin][Error]: Exception reading buffered of client socket (Function: ReadRequest(Socket))");
- }
- }
- public void run() {
- String msg;
- try {
- while((msg = reader.readLine()) != null) {
- handleLine(msg);
- }
- reader.close();
- } catch(Exception ex) {
- System.out.println("[WebAdmin][Error]: Exception reading lines of client socket (Function: run())");
- ex.printStackTrace();
- }
- }
- public void handleLine(String msg) {
- String[] seperate = msg.split("\\|");
- String username = seperate[0];
- String password = seperate[1];
- int command = Integer.parseInt(seperate[2]);
- String[] parameters = null;
- parameters = seperate[3].split("\\:\\:");
- if(command == -1) {
- if(checkUser(username, password) == true) {
- reply("true");
- } else {
- reply("false");
- }
- } else {
- if(checkUser(username, password) == true) {
- handleCommand(command, parameters);
- } else {
- reply("Your username is wrong, doesnt exist, or doesnt have sufficient permission.");
- }
- }
- }
- private void handleCommand(int command, String[] parameters) {
- // TODO Auto-generated method stub
- boolean success = false;
- System.out.println("[WebAdmin][Command Executed]: A client executed command id '"+ command +"'.");
- switch(command) {
- case 1: //Send Message
- if(parameters.length == 2) {
- for (int j = 0; j < Server.playerHandler.players.length; j++) {
- if (Server.playerHandler.players[j] != null) {
- Client c2 = (Client)Server.playerHandler.players[j];
- c2.sendMessage("[WebAdmin]["+ parameters[0] +"]: "+parameters[1]);
- reply("You have successfully send a global message");
- success = true;
- }
- }
- }
- if(success == false)
- reply("An error has occured while sending a global message");
- break;
- case 2: //Give item to player
- if(parameters.length == 3) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- ses.getItems().addItem(Integer.parseInt(parameters[1]), Integer.parseInt(parameters[2]));
- reply("You have successfully given the user the item.");
- ses.sendMessage("[WebAdmin]: You have recieved an item.");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while giving the item to the user");
- break;
- case 3: //Kick user
- if(parameters.length == 1) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- ses.disconnected = true;
- reply("You have successfully kicked the player.");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while kicking the user");
- break;
- case 4: //Check status
- if(parameters.length == 3) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- reply("online");
- success = true;
- }
- }
- if(success == false)
- reply("offline");
- break;
- case 5: //PM user
- if(parameters.length == 3) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- ses.sendMessage("[WebAdmin-PM]["+ parameters[1] +"]: "+ parameters[2]);
- reply("Message successfully sent to user");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while private messaging the user");
- break;
- case 6://get players
- String users = "";
- for(int i = 0; i < Config.MAX_PLAYERS; i++) {
- if(Server.playerHandler.players[i] != null) {
- Client ses = (Client)Server.playerHandler.players[i];
- users = users + ses.playerName +"::";
- }
- }
- reply(users);
- break;
- case 7://get users
- String staff = "";
- for(int i = 0; i < Config.MAX_PLAYERS; i++) {
- if(Server.playerHandler.players[i] != null) {
- Client ses = (Client)Server.playerHandler.players[i];
- staff = staff + ses.playerName +","+ ses.playerRights +"::";
- }
- }
- reply(staff);
- break;
- case 8: //IP Ban user
- if(parameters.length == 1) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- Connection.addIpToBanList(ses.connectedFrom);
- Connection.addIpToFile(ses.connectedFrom);
- ses.disconnected = true;
- reply("User successfully ip banned");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while ip banning the user");
- break;
- case 9: //Ban user
- if(parameters.length == 1) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- Connection.addNameToBanList(ses.playerName);
- Connection.addNameToFile(ses.playerName);
- ses.disconnected = true;
- reply("User successfully banned");
- success = true;
- } else {
- Connection.addNameToBanList(parameters[0]);
- Connection.addNameToFile(parameters[0]);
- reply("User successfully added to ban list");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while banning the user");
- break;
- case 10: //Un-ban user
- if(parameters.length == 1) {
- Connection.removeNameFromBanList(parameters[0]);
- reply("User successfully un-banned");
- success = true;
- }
- if(success == false)
- reply("An error has occured while un-banning the user");
- break;
- case 11: //Mute user
- if(parameters.length == 1) {
- Connection.addNameToMuteList(parameters[0]);
- reply("You have successfully muted the player");
- success = true;
- }
- if(success == false)
- reply("An error has occured while muting the user");
- break;
- case 12: //Un-mute user
- if(parameters.length == 1) {
- Connection.removeNameFromMuteList(parameters[0]);
- reply("You have successfully un-muted the user");
- success = true;
- }
- if(success == false)
- reply("An error has occured while un-muting the user");
- break;
- case 13: //IP mute user
- if(parameters.length == 1) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- Connection.addIpToMuteFile(ses.connectedFrom);
- reply("You have successfully ip muted the user");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while ip muting the user");
- break;
- case 14: //Un-ip mute
- if(parameters.length == 1) {
- Connection.unIPMuteUser(parameters[0]);
- reply("You have successfully un-ip muted the user");
- success = true;
- }
- if(success == false)
- reply("An error has occured while un-ip muting the user");
- break;
- case 15: //un-ip ban
- if(parameters.length == 1) {
- Connection.removeIpFromBanList(parameters[0]);
- reply("You have successfully un-ip banned the user");
- success = true;
- }
- if(success == false)
- reply("An error has occured while un-ip banning the user");
- break;
- case 16: //Give mod
- if(parameters.length == 1) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- ses.playerRights = 1;
- reply("You have successfully promoted the user to mod");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while promoting the user");
- break;
- case 17: //Give Admin
- if(parameters.length == 1) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- ses.playerRights = 2;
- reply("You have successfully promoted the user to admin");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while promoting the user");
- break;
- case 18: //Give co-owner
- if(parameters.length == 1) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- ses.playerRights = 3;
- reply("You have successfully promoted the user to co-owner");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while promoting the user");
- break;
- case 19: //Give player rights
- if(parameters.length == 1) {
- int session;
- if((session = getSession(parameters[0])) != -1) {
- Client ses = (Client)Server.playerHandler.players[session];
- ses.playerRights = 0;
- reply("You have successfully demoting the user to player");
- success = true;
- }
- }
- if(success == false)
- reply("An error has occured while demoting the user");
- break;
- default:
- reply("No command was given");
- break;
- }
- }
- public int getSession(String user) {
- for(int i = 0; i < Config.MAX_PLAYERS; i++) {
- if(Server.playerHandler.players[i] != null) {
- if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(user)) {
- return i;
- }
- }
- }
- return -1;
- }
- public void reply(String reply) {
- // TODO Auto-generated method stub
- try {
- writer.println(reply);
- } catch(Exception ex) {
- System.out.println("[WebAdmin][Error]: Exception replying to client (Function: reply())");
- }
- }
- private boolean checkUser(String username, String password) {
- // TODO Auto-generated method stub
- String[] line = null;
- ArrayList<String> lines = new ArrayList();
- try {
- File file = new File("./Data/characters/"+username+".txt");
- BufferedReader characterfile = new BufferedReader(new FileReader(file));
- String strLine;
- //Read File Line By Line
- while ((strLine = characterfile.readLine()) != null) {
- // Print the content on the console
- lines.add(strLine);
- //line[i] = strLine;
- }
- } catch(Exception e) {
- System.out.println("Error reading user file content");
- }
- try {
- String[] userInfo = lines.get(1).split("\\ = ");
- String[] passInfo = lines.get(2).split("\\ = ");
- String[] rightsInfo = lines.get(8).split("\\ = ");
- String user = userInfo[1];
- String pass = passInfo[1];
- int rights = Integer.parseInt(rightsInfo[1]);
- if(username.equalsIgnoreCase(user) && password.equalsIgnoreCase(pass)) {
- if(rights == 3) {
- return true;
- }
- }
- } catch(Exception ex) {
- System.out.println("[WebAdmin][Error]: User trying to connect doesnt exist in the files.");
- }
- return false;
- }
- }
- public void run() {
- try {
- ServerSocket serverSocket = new ServerSocket(33300);
- while(true) {
- client = serverSocket.accept();
- Thread readRequest = new Thread(new ReadRequest(client));
- readRequest.start();
- System.out.println("[WebAdmin][New Client]: A new client has connected to WebAdmin");
- }
- } catch(Exception ex) {
- System.out.println("[WebAdmin][Error]: Exception initializing WebAdmin server (Function: init())");
- ex.printStackTrace();
- }
- }
- }
Add Comment
Please, Sign In to add comment