JoinChannel.java 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 JoinChannel extends Command {
  10. @Override
  11. public void execute(String[] args, Client caller) {
  12. if (caller.equals(Server.OPClient)) {
  13. caller.send("Client-only command.");
  14. return;
  15. }
  16. Optional<Channel> maybeChannel = Server.getChannelByName(args[0]);
  17. Channel selectedChannel = maybeChannel.isPresent()? maybeChannel.get() : null;
  18. try {
  19. selectedChannel.add(caller);
  20. caller.primaryChannel = selectedChannel;
  21. caller.send(new Message("You are now speaking in channel " + args[0] + ".", MessageType.COMMAND, false));
  22. } catch (NullPointerException ex) {
  23. caller.send(new Message("No such channel!", MessageType.ERROR, false));
  24. }
  25. }
  26. @Override
  27. public String getName() {
  28. return "join";
  29. }
  30. @Override
  31. public String getPermission() {
  32. return "noob.channel";
  33. }
  34. @Override
  35. public String getDescription() {
  36. return "Sets specified channel as primary (/join <channel>)";
  37. }
  38. @Override
  39. public int getMinArgNumber() {
  40. return 1;
  41. }
  42. }