Bukkit 1.20 获取所有 BC 子服务器插件代码
要实现获取 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 文件,然后使用适当的构建工具进行编译和打包。
原文地址: https://www.cveoy.top/t/topic/fPH6 著作权归作者所有。请勿转载和采集!