fiveriverflow

Ban

Sep 2nd, 2019
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.75 KB | None | 0 0
  1. commands.add(new Command("ipban", Optional.of("Ban a player and their IP by the given name or IP"), Optional.of("<player_name / player_ip>")) {
  2.             @Override
  3.             public void execute(Player player, CommandEntry entry) {
  4.                 String name_or_ip = Misc.formatString(entry.getArguments());
  5.  
  6.                 if (!name_or_ip.contains(".")) {
  7.                     Player other = PlayerHandler.getPlayerOnorOff(name_or_ip);
  8.                     if (other == null) {
  9.                         player.sendMessage("Player with the username: " + name_or_ip + " does not exist.");
  10.                         return;
  11.                     }
  12.  
  13.                     name_or_ip = other.connectedFrom;
  14.                 }
  15.  
  16.                 Punishments punishments = World.getWorld().getPunishments();
  17.                 if (punishments.contains(PunishmentType.NET_BAN, name_or_ip)) {
  18.                     player.sendMessage("This IP is already banned.");
  19.                     return;
  20.                 }
  21.                 punishments.add(new Punishment(PunishmentType.NET_BAN, Long.MAX_VALUE, name_or_ip));
  22.  
  23.                 String ip = name_or_ip;
  24.                 List<Player> sessions = PlayerHandler.nonNullStream().filter(s -> s.connectedFrom.equals(ip)).collect(Collectors.toList());
  25.  
  26.                 for (Player session : sessions) {
  27.                     punishments.add(new Punishment(PunishmentType.BAN, Long.MAX_VALUE, session.getName()));
  28.                     if (World.getWorld().getMultiplayerSessionListener().inAnySession(session)) {
  29.                         MultiplayerSession mpsession = World.getWorld().getMultiplayerSessionListener().getMultiplayerSession(session);
  30.                         mpsession.finish(MultiplayerSessionFinalizeType.WITHDRAW_ITEMS);
  31.                     }
  32.                     session.disconnected = true;
  33.                     player.sendMessage("You have successfully banned the user " + session.getName());
  34.                 }
  35.                 player.sendMessage("You have successfully banned the IP: " + ip);
  36.             }
  37.  
  38.             @Override
  39.             public List<String> getAliases() {
  40.                 return Arrays.asList("banip", "netban", "bannet");
  41.             }
  42.         });
Advertisement
Add Comment
Please, Sign In to add comment