你可以使用 Bukkit 的 API 来实现这个功能。首先,你需要创建一个监听器来监听玩家的飞行状态变化。然后,根据飞行状态的变化来显示或隐藏 ActionBar 消息。

下面是一个示例代码:

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerToggleFlightEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

public class FlyActionBarPlugin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onPlayerToggleFlight(PlayerToggleFlightEvent event) {
        Player player = event.getPlayer();
        boolean isFlying = event.isFlying();

        if (isFlying) {
            sendActionBar(player, ChatColor.GREEN + '你正在飞行!');
        } else {
            sendActionBar(player, '');
        }
    }

    private void sendActionBar(Player player, String message) {
        new BukkitRunnable() {
            @Override
            public void run() {
                player.sendActionBar(message);
            }
        }.runTaskLater(this, 1); // 延迟1个tick发送ActionBar消息
    }
}

在这个示例中,我们创建了一个名为FlyActionBarPlugin的插件,并实现了Listener接口来监听玩家的飞行状态变化。当玩家切换飞行状态时,会触发onPlayerToggleFlight方法。在这个方法中,我们根据飞行状态来发送或清空 ActionBar 消息。

注意,我们使用了BukkitRunnable来延迟发送 ActionBar 消息,因为在PlayerToggleFlightEvent事件中直接发送 ActionBar 消息可能会导致消息无法正确显示。

你需要将这段代码保存为一个 Java 类文件,并将其编译为插件 jar 文件,然后将其放入 Bukkit 服务器的插件文件夹中。启动服务器后,当玩家开启或关闭飞行时,ActionBar 消息将会相应地显示或消失。

Bukkit 1.20.1 玩家飞行状态 ActionBar 文字提示插件

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

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