我知道有可能获得有关远程Minecraft服务器的一些信息,例如:


当前玩家/最大玩家
MOTD



但是是否有可能在任何服务器上获取白名单的状态?

  Socket socket = new Socket();
  socket.connect(new InetSocketAddress(ip, port), 1 * 1000);

  DataOutputStream out = new DataOutputStream(socket.getOutputStream());
  DataInputStream in = new DataInputStream(socket.getInputStream());

  out.write(0xFE);

  StringBuilder str = new StringBuilder();

  int b;
  while ((b = in .read()) != -1) {
   if (b != 0 && b > 16 && b != 255 && b != 23 && b != 24) {
    str.append((char) b);
   }
  }

  String[] data = str.toString().split("§");
  String motd = data[0];
  int onlinePlayers = Integer.valueOf(data[1]);
  int maxPlayers = Integer.valueOf(data[2]);


我知道可以通过加入服务器并检查用户是否被踢“您在此服务器上未列入白名单”来实现。但这将花费太长时间。

那么,实际上是否可以通过不加入服务器来检查服务器是否启用了白名单?

最佳答案

您无需对服务器进行硬编码即可获得列入白名单的播放器。只需使用包含白名单方法的Bukkit API。

要从文件中获取白名单播放器,请执行以下操作:

Bukkit.getServer().getWhitelistedPlayers();


要检查是否启用了白名单:

Bukkit.getServer().hasWhitelist();

关于java - 检查我的世界服务器是否启用了白名单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57385650/

10-08 22:51