Minecraft 1.20 Spigot 插件:基于 BungeeCord API 的跨服务器传送
以下是一个使用 Java 编写的基于 BungeeCord API 的 Spigot 插件,允许玩家通过指令在子服务器之间传送。
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.config.ServerInfo;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class MyWorldPlugin extends JavaPlugin {
@Override
public void onEnable() {
// 插件启用时的操作
}
@Override
public void onDisable() {
// 插件禁用时的操作
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase('transfer')) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + '只有玩家可以使用此命令!');
return true;
}
if (args.length != 1) {
sender.sendMessage(ChatColor.RED + '正确的用法:/transfer <服务器名称>');
return true;
}
Player player = (Player) sender;
ServerInfo targetServer = getProxy().getServerInfo(args[0]);
if (targetServer == null) {
sender.sendMessage(ChatColor.RED + '找不到指定的服务器!');
return true;
}
player.sendMessage(ChatColor.YELLOW + '正在传送到服务器 ' + targetServer.getName() + '...');
player.connect(targetServer);
return true;
}
return false;
}
}
请确保在编译和运行插件之前,已经正确地安装了 BungeeCord 和 Spigot,并将 BungeeCord API 添加到您的构建路径中。
此插件创建了一个名为'transfer'的指令,玩家可以使用/transfer <服务器名称>的格式来传送到其他子服务器。在传送之前,插件会检查目标服务器是否存在,如果不存在则会向玩家发送错误消息。传送过程中,插件会向玩家发送一条传送中的消息,并使用player.connect(targetServer)方法将玩家传送到目标服务器。
请根据您的具体需求进行适当的修改和扩展。
原文地址: https://www.cveoy.top/t/topic/fPKf 著作权归作者所有。请勿转载和采集!