You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spigot插件求助:玩家高度超24格击杀功能失效

修复你的Spigot高度检测击杀插件

嘿,我看了你的代码,问题其实很明显,主要是事件监听器没注册,还有几个小细节需要调整。让我一步步给你讲清楚:

问题分析

  1. 事件未注册:你的主类实现了Listener接口,但在onEnable()方法里没有告诉Spigot要监听这个类里的事件。没有注册的话,@EventHandler注解的方法永远不会被触发。
  2. 高度条件不符:你说要在玩家超过24格时击杀,但代码里写的是p.getLocation().getBlockY() > 80,这会导致只有超过80格才会触发,和你的需求不符。
  3. 小细节问题:onDisable()里的消息符号不一致(最后是-而不是_),还有onEnable()里的super.onEnable()调用位置建议放在最前面,更符合规范。

修正后的完整代码

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class MainFFA extends JavaPlugin implements Listener{
    @Override
    public void onEnable() {
        super.onEnable(); // 建议放在方法开头,先执行父类的启用逻辑
        // 关键:注册事件监听器,告诉Spigot这个类里有要监听的事件
        getServer().getPluginManager().registerEvents(this, this);
        
        getServer().getConsoleSender().sendMessage("_____________START_____________");
        getServer().getConsoleSender().sendMessage("_____________START_____________");
        getServer().getConsoleSender().sendMessage("_____________START_____________");
        getServer().getConsoleSender().sendMessage("_____________START_____________");
    }

    @Override
    public void onDisable() {
        super.onDisable();
        getServer().getConsoleSender().sendMessage("_________STOP_________"); // 修正符号不一致问题
    }

    @EventHandler
    public void onPlayerHigh(PlayerMoveEvent event) { // 方法名更贴合功能,可选
        Player p = event.getPlayer();
        // 改成你需要的24格高度条件
        if(p.getLocation().getBlockY() > 24) {
            p.setHealth(0);
        } else {
            p.sendMessage("Wenn du das siehst dann bist du unter 24 blöcken hoch"); // 顺便把提示里的80改成24,更准确
        }
    }
}

关键修改点解释

  • 注册事件监听器:getServer().getPluginManager().registerEvents(this, this); 第一个this是监听器实例(你的主类),第二个this是插件实例,这行代码是让Spigot识别并监听你类里的事件方法。
  • 修正高度条件:把>80改成>24,匹配你最初的需求。
  • 优化方法名:把onPlayerDead改成onPlayerHigh,让方法名更直观反映功能,这是可选的,但能提升代码可读性。
  • 规范提示文本:把提示消息里的80改成24,避免玩家看到混淆的信息。

这样修改后,插件就能正常工作了:当玩家的Y坐标超过24时,会被立即击杀;在24格及以下时,会收到提示消息。

内容的提问来源于stack exchange,提问作者Leopa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:42:20