Threw this together in 5 minutes, enjoy. I don't care what you say; it's better than the way Sanity did it.
Code:
package com.paladious.rs2.game.content.commands;
import com.paladious.rs2.game.entity.player.Client;
public class CommandHandler {
/**
* Enum holding character rights data.
* @author Neurons(http://www.rune-server.ee/members/neurons/)
*/
enum Rights {
PLAYER(0),
MODERATOR(1),
ADMINISTRATOR(2),
OWNER(3);
public int rights;
Rights(int rights) {
this.rights = rights;
}
public int getRights(Rights player2) {
return rights;
}
}
public static void right***ecute(Client c, String playerCommand) {
for(Rights r : Rights.values()) {
if(c.playerRights == r.getRights(Rights.PLAYER)) {
PlayerCommands.handleRegularCommands(c, playerCommand);
}
else if(c.playerRights == r.getRights(Rights.MODERATOR)) {
ModeratorCommands.handleModeratorCommands(c, playerCommand);
}
else if(c.playerRights == r.getRights(Rights.ADMINISTRATOR)) {
AdminCommands.handleAdminCommands(c, playerCommand);
}
else if(c.playerRights == r.getRights(Rights.OWNER)) {
OwnerCommands.handleOwnerCommands(c, playerCommand);
}
}
}
}
Code:
package com.paladious.rs2.game.content.commands;
import com.paladious.network.packet.PacketType;
import com.paladious.rs2.game.entity.player.Client;
public class CommandExecuter extends CommandHandler implements PacketType {
public void processPacket(Client c, int packetType, int packetSize) {
String playerCommand = c.getInStream().readString();
PlayerCommands.handleRegularCommands(c, playerCommand);
ModeratorCommands.handleModeratorCommands(c, playerCommand);
AdminCommands.handleAdminCommands(c, playerCommand);
OwnerCommands.handleOwnerCommands(c, playerCommand);
}
}
Code:
package com.paladious.rs2.game.content.commands;
import com.paladious.rs2.game.entity.player.Client;
public class PlayerCommands extends CommandExecuter {
public static void handleRegularCommands(Client c, String playerCommand) {
}
}
Code:
package com.paladious.rs2.game.content.commands;
import com.paladious.rs2.game.entity.player.Client;
public class ModeratorCommands extends CommandExecuter {
public static void handleModeratorCommands(Client c, String playerCommand) {
}
}
Code:
package com.paladious.rs2.game.content.commands;
import com.paladious.rs2.game.entity.player.Client;
public class AdminCommands extends CommandExecuter {
public static void handleAdminCommands(Client c, String playerCommand) {
}
}
Code:
package com.paladious.rs2.game.content.commands;
import com.paladious.rs2.game.entity.player.Client;
public class OwnerCommands extends CommandExecuter {
public static void handleOwnerCommands(Client c, String playerCommand) {
}
}
In PacketHandler class replace:
Code:
packetId[103] = new Commands();
With:
Code:
packetId[103] = new CommandExecuter();