public static boolean interpret(Client sender, String[] args) {
        if (args != null) {
            String prefix = args[0];

            if (sender.getClientLevel().equals(Client.ClientLevel.UNSIGNED))
                if (!args[0].equalsIgnoreCase(ClientCodes.SET_USERNAME)) {
                    sender.sendMessage("Your client must set a username before sending any other requests!");
                    return false;
                }

            switch (prefix.toUpperCase()) {

                case ClientCodes.SET_USERNAME:
                    if (args.length >= 2) {
                        if (ClientList.getInstance().containsKey(args[1])) {
                            sender.sendMessage("A client already exists with the username "+args[1]);
                            return false;
                        } else {
                            ClientList.getInstance().put(args[1], sender);
                            sender.setClientLevel(Client.ClientLevel.SIGNED);
                            return true;
                        }
                    } else {
                        sender.disconnect("Your client did not send the correct amount of arguments!");
                        return false;
                    }

                case ClientCodes.PING:
                    sender.sendMessage("PONG");
                    JamChatServer.getLogger().info(sender.getUsername()+" sent a ping to the server.");
                    return true;

                case ClientCodes.DISCONNECT:
                    sender.disconnect();
                    return true;

                default:
                    sender.sendMessage("Unknown command!");
                    return false;
            }
        } else {
            throw new NullPointerException();
        }
    }