要实现获取Bukkit 1.20服务器全部BC子服的功能,可以使用以下代码:

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

import java.util.ArrayList;
import java.util.List;

public class BCSubServerPlugin extends JavaPlugin {

    private List<String> bcSubServers;

    @Override
    public void onEnable() {
        bcSubServers = new ArrayList<>();

        // 使用BukkitRunnable每隔5秒检查一次BC子服
        new BukkitRunnable() {
            @Override
            public void run() {
                bcSubServers.clear();
                for (String serverName : Bukkit.getOnlinePlayers().stream()
                        .map(player -> player.getDisplayName().split("_")[1])
                        .distinct()
                        .toArray(String[]::new)) {
                    bcSubServers.add(serverName);
                }
            }
        }.runTaskTimer(this, 0, 100); // 每隔5秒运行一次
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (command.getName().equalsIgnoreCase("subservers")) {
            sender.sendMessage("BC子服列表:");
            for (String serverName : bcSubServers) {
                sender.sendMessage(serverName);
            }
            return true;
        }
        return false;
    }
}

这个插件会每隔5秒检查一次服务器上的BC子服,并将它们存储在一个列表中。当玩家输入/subservers命令时,会将列表中的BC子服发送给命令发送者。你可以将以上代码保存为一个Java文件,然后使用适当的构建工具进行编译和打包。

用Java写一个Bukkit120的获取服务器全部BC子服的功能

原文地址: http://www.cveoy.top/t/topic/ib36 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录