以下是一个使用 Java 编写的基于 BungeeCord API 的 Spigot 插件,允许玩家通过指令在子服务器之间进行传送:

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() {
        // 在插件启用时注册命令
        getCommand('world').setExecutor(this);
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            if (args.length == 1) {
                String serverName = args[0];
                // 使用 BungeeCord API 将玩家传送到指定的子服务器
                getServer().getMessenger().registerOutgoingPluginChannel(this, 'BungeeCord');
                player.sendPluginMessage(this, 'BungeeCord', ('ConnectOther;' + player.getName() + ';' + serverName).getBytes());
                return true;
            }
        }
        return false;
    }
}

在插件的onEnable方法中,我们注册了一个名为'world'的命令,并将其执行者设置为插件本身。这意味着当玩家输入'/world'命令时,onCommand方法将被调用。

onCommand方法中,我们首先检查命令发送者是否为玩家。然后,我们检查命令参数的长度是否为 1。如果是,我们将第一个参数解析为目标子服务器的名称。

接下来,我们使用 BungeeCord API 将玩家传送到指定的子服务器。我们首先注册了一个输出插件通道,然后使用sendPluginMessage方法发送一个包含连接命令的插件消息。连接命令的格式为'ConnectOther;玩家名称;目标服务器名称'。

请注意,为了使该插件正常工作,您需要在 BungeeCord 配置文件中启用插件消息。在 BungeeCord 的 config.yml 文件中,找到plugins部分,确保bungeecord: trueplugin-message-channel: BungeeCord被设置为 true。

希望这个插件能满足您的需求!


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

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