你可以使用 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 FlightListener extends JavaPlugin implements Listener {
    
    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
    }
    
    @EventHandler
    public void onPlayerToggleFlight(PlayerToggleFlightEvent event) {
        Player player = event.getPlayer();
        
        if (player.getAllowFlight()) {
            if (player.isFlying()) {
                // 玩家关闭飞行
                player.setFlying(false);
                player.sendMessage(ChatColor.RED + '你关闭了飞行模式。');
            } else {
                // 玩家开启飞行
                player.setFlying(true);
                player.sendMessage(ChatColor.GREEN + '你开启了飞行模式。');
                
                // 发送 actionbar 消息
                sendActionBarMessage(player, ChatColor.YELLOW + '你正在飞行中!');
            }
        }
    }
    
    // 发送 actionbar 消息
    private void sendActionBarMessage(Player player, String message) {
        new BukkitRunnable() {
            @Override
            public void run() {
                player.sendActionBar(message);
            }
        }.runTaskLater(this, 1);
    }
}

你需要将以上代码保存为一个 Java 类文件,例如 FlightListener.java,并将其放置在你的插件项目的正确位置。然后,你可以将其打包为一个插件,并将其放置在 Bukkit 服务器的插件文件夹中。

这样,当玩家开启飞行时,会发送一个 actionbar 消息给玩家,显示'你正在飞行中!'。当玩家关闭飞行时,会发送一个聊天消息给玩家,显示'你关闭了飞行模式。'。

Bukkit 1.20.1 玩家飞行状态变化 Actionbar 消息提示

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

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