List.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package command;
  2. import java.util.Optional;
  3. import common.Command;
  4. import common.Message;
  5. import common.Message.MessageType;
  6. import server.Channel;
  7. import server.Client;
  8. import server.Server;
  9. public class List extends Command {
  10. @Override
  11. public void execute(String[] args, Client caller) {
  12. String arr, channelName = null;
  13. if (args.length >= 1) {
  14. Optional<Channel> maybeChannel = Server.getChannelByName(args[0]);
  15. Channel selectedChannel = maybeChannel.isPresent()? maybeChannel.get() : null;
  16. try {
  17. arr = selectedChannel.listClients();
  18. channelName = selectedChannel.name;
  19. } catch (NullPointerException ex) {
  20. caller.send(new Message("No channel named " + channelName + ".", MessageType.ERROR, false));
  21. return;
  22. }
  23. } else
  24. arr = Server.listClients();
  25. if (channelName == null)
  26. caller.send(new Message("Users online are:" + "\n" + arr, MessageType.COMMAND, false));
  27. else
  28. caller.send(new Message("Users in channel " + channelName + " are:" + "\n" + arr, MessageType.COMMAND, false));
  29. }
  30. @Override
  31. public String getName() {
  32. return "list";
  33. }
  34. @Override
  35. public int getMinArgNumber() {
  36. return 0;
  37. }
  38. @Override
  39. public String getDescription() {
  40. return "Lists all users online. (/list [channel])";
  41. }
  42. @Override
  43. public String getPermission() {
  44. return "noob.list";
  45. }
  46. }