예제 #1
0
  public void save(boolean flag) {
    this.removeExpired();

    try {
      PrintWriter printwriter = new PrintWriter(new FileWriter(this.b, false));

      if (flag) {
        printwriter.println(
            "# Updated "
                + (new SimpleDateFormat()).format(new Date())
                + " by Minecraft "
                + "1.6.4");
        printwriter.println("# victim name | ban date | banned by | banned until | reason");
        printwriter.println();
      }

      Iterator iterator = this.a.values().iterator();

      while (iterator.hasNext()) {
        BanEntry banentry = (BanEntry) iterator.next();

        printwriter.println(banentry.g());
      }

      printwriter.close();
    } catch (IOException ioexception) {
      MinecraftServer.getServer().getLogger().severe("Could not save ban list", ioexception);
    }
  }
  public void handleClientCommand(Packet205ClientCommand par1Packet205ClientCommand) {
    if (par1Packet205ClientCommand.forceRespawn == 1) {
      if (playerEntity.playerHasConqueredTheEnd) {
        playerEntity = mcServer.getConfigurationManager().respawnPlayer(playerEntity, 0, true);
      } else if (playerEntity.getServerForPlayer().getWorldInfo().isHardcoreModeEnabled()) {
        if (mcServer.isSinglePlayer() && playerEntity.username.equals(mcServer.getServerOwner())) {
          playerEntity.serverForThisPlayer.kickPlayerFromServer(
              "You have died. Game over, man, it's game over!");
          mcServer.deleteWorldAndStopServer();
        } else {
          BanEntry banentry = new BanEntry(playerEntity.username);
          banentry.setBanReason("Death in Hardcore");
          mcServer.getConfigurationManager().getBannedPlayers().put(banentry);
          playerEntity.serverForThisPlayer.kickPlayerFromServer(
              "You have died. Game over, man, it's game over!");
        }
      } else {
        if (playerEntity.getHealth() > 0) {
          return;
        }

        playerEntity = mcServer.getConfigurationManager().respawnPlayer(playerEntity, 0, false);
      }
    }
  }
예제 #3
0
  public void load() {
    if (this.b.isFile()) {
      BufferedReader bufferedreader;

      try {
        bufferedreader = new BufferedReader(new FileReader(this.b));
      } catch (FileNotFoundException filenotfoundexception) {
        throw new Error();
      }

      String s;

      try {
        while ((s = bufferedreader.readLine()) != null) {
          if (!s.startsWith("#")) {
            BanEntry banentry = BanEntry.c(s);

            if (banentry != null) {
              this.a.put(banentry.getName(), banentry);
            }
          }
        }
      } catch (IOException ioexception) {
        MinecraftServer.getServer().getLogger().severe("Could not load ban list", ioexception);
      }
    }
  }
예제 #4
0
  public void func_72458_a(Packet205ClientCommand par1Packet205ClientCommand) {
    if (par1Packet205ClientCommand.field_73447_a == 1) {
      if (this.playerEntity.gameOver) {
        this.playerEntity =
            this.mcServer
                .getConfigurationManager()
                .recreatePlayerEntity(this.playerEntity, 0, true);
      } else if (this.playerEntity.func_71121_q().getWorldInfo().isHardcoreModeEnabled()) {
        if (this.mcServer.isSinglePlayer()
            && this.playerEntity.username.equals(this.mcServer.getServerOwner())) {
          this.playerEntity.playerNetServerHandler.kickPlayer(
              "You have died. Game over, man, it\'s game over!");
          this.mcServer.func_71272_O();
        } else {
          BanEntry var2 = new BanEntry(this.playerEntity.username);
          var2.func_73689_b("Death in Hardcore");
          this.mcServer.getConfigurationManager().getBannedPlayers().func_73706_a(var2);
          this.playerEntity.playerNetServerHandler.kickPlayer(
              "You have died. Game over, man, it\'s game over!");
        }
      } else {
        if (this.playerEntity.getHealth() > 0) {
          return;
        }

        this.playerEntity =
            this.mcServer
                .getConfigurationManager()
                .recreatePlayerEntity(this.playerEntity, 0, false);
      }
    }
  }
  /** Loads the ban list from the file (adds every entry, does not clear the current list). */
  public void loadBanList() {
    if (this.fileName.isFile()) {
      BufferedReader bufferedreader;

      try {
        bufferedreader = new BufferedReader(new FileReader(this.fileName));
      } catch (FileNotFoundException filenotfoundexception) {
        throw new Error();
      }

      String s;

      try {
        while ((s = bufferedreader.readLine()) != null) {
          if (!s.startsWith("#")) {
            BanEntry banentry = BanEntry.parse(s);

            if (banentry != null) {
              this.theBanList.putLower(banentry.getBannedUsername(), banentry);
            }
          }
        }
      } catch (IOException ioexception) {
        MinecraftServer.getServer()
            .getLogAgent()
            .logSevereException("Could not load ban list", ioexception);
      }
    }
  }
  /** par1: include header */
  public void saveToFile(boolean par1) {
    this.removeExpiredBans();

    try {
      PrintWriter printwriter = new PrintWriter(new FileWriter(this.fileName, false));

      if (par1) {
        printwriter.println(
            "# Updated "
                + (new SimpleDateFormat()).format(new Date())
                + " by Minecraft "
                + "1.6.4");
        printwriter.println("# victim name | ban date | banned by | banned until | reason");
        printwriter.println();
      }

      Iterator iterator = this.theBanList.values().iterator();

      while (iterator.hasNext()) {
        BanEntry banentry = (BanEntry) iterator.next();
        printwriter.println(banentry.buildBanString());
      }

      printwriter.close();
    } catch (IOException ioexception) {
      MinecraftServer.getServer()
          .getLogAgent()
          .logSevereException("Could not save ban list", ioexception);
    }
  }
예제 #7
0
 @Override
 public Set<OfflinePlayer> getBannedPlayers() {
   Set<OfflinePlayer> bannedPlayers = new HashSet<>();
   for (BanEntry entry : nameBans.getBanEntries()) {
     bannedPlayers.add(getOfflinePlayer(entry.getTarget()));
   }
   return bannedPlayers;
 }
예제 #8
0
 @Override
 public Set<String> getIPBans() {
   Set<String> result = new HashSet<>();
   for (BanEntry entry : ipBans.getBanEntries()) {
     result.add(entry.getTarget());
   }
   return result;
 }
예제 #9
0
  public void removeExpired() {
    Iterator iterator = this.a.values().iterator();

    while (iterator.hasNext()) {
      BanEntry banentry = (BanEntry) iterator.next();

      if (banentry.hasExpired()) {
        iterator.remove();
      }
    }
  }
  /**
   * checks ban-lists, then white-lists, then space for the server. Returns null on success, or an
   * error message
   */
  public String allowUserToConnect(SocketAddress par1SocketAddress, String par2Str) {
    if (this.bannedPlayers.isBanned(par2Str)) {
      BanEntry var6 = (BanEntry) this.bannedPlayers.getBannedList().get(par2Str);
      String var7 = "You are banned from this server!\nReason: " + var6.getBanReason();

      if (var6.getBanEndDate() != null) {
        var7 = var7 + "\nYour ban will be removed on " + dateFormat.format(var6.getBanEndDate());
      }

      return var7;
    } else if (!this.isAllowedToLogin(par2Str)) {
      return "You are not white-listed on this server!";
    } else {
      String var3 = par1SocketAddress.toString();
      var3 = var3.substring(var3.indexOf("/") + 1);
      var3 = var3.substring(0, var3.indexOf(":"));

      if (this.bannedIPs.isBanned(var3)) {
        BanEntry var4 = (BanEntry) this.bannedIPs.getBannedList().get(var3);
        String var5 = "Your IP address is banned from this server!\nReason: " + var4.getBanReason();

        if (var4.getBanEndDate() != null) {
          var5 = var5 + "\nYour ban will be removed on " + dateFormat.format(var4.getBanEndDate());
        }

        return var5;
      } else {
        return this.playerEntityList.size() >= this.maxPlayers ? "The server is full!" : null;
      }
    }
  }
 public String func_72399_a(SocketAddress p_72399_1_, String p_72399_2_) {
   if (field_72401_g.func_73704_a(p_72399_2_)) {
     BanEntry banentry = (BanEntry) field_72401_g.func_73712_c().get(p_72399_2_);
     String s1 =
         (new StringBuilder())
             .append("You are banned from this server!\nReason: ")
             .append(banentry.func_73686_f())
             .toString();
     if (banentry.func_73680_d() != null) {
       s1 =
           (new StringBuilder())
               .append(s1)
               .append("\nYour ban will be removed on ")
               .append(field_72403_e.format(banentry.func_73680_d()))
               .toString();
     }
     return s1;
   }
   if (!func_72370_d(p_72399_2_)) {
     return "You are not white-listed on this server!";
   }
   String s = p_72399_1_.toString();
   s = s.substring(s.indexOf("/") + 1);
   s = s.substring(0, s.indexOf(":"));
   if (field_72413_h.func_73704_a(s)) {
     BanEntry banentry1 = (BanEntry) field_72413_h.func_73712_c().get(s);
     String s2 =
         (new StringBuilder())
             .append("Your IP address is banned from this server!\nReason: ")
             .append(banentry1.func_73686_f())
             .toString();
     if (banentry1.func_73680_d() != null) {
       s2 =
           (new StringBuilder())
               .append(s2)
               .append("\nYour ban will be removed on ")
               .append(field_72403_e.format(banentry1.func_73680_d()))
               .toString();
     }
     return s2;
   }
   if (field_72404_b.size() >= field_72405_c) {
     return "The server is full!";
   } else {
     return null;
   }
 }
예제 #12
0
 public void add(BanEntry banentry) {
   this.a.put(banentry.getName(), banentry);
   this.save();
 }
 public void put(BanEntry par1BanEntry) {
   this.theBanList.putLower(par1BanEntry.getBannedUsername(), par1BanEntry);
   this.saveToFileWithHeader();
 }