gpt4 book ai didi

java - Bukkit(spigot api)监听器没有响应?

转载 作者:行者123 更新时间:2023-12-02 01:51:49 28 4
gpt4 key购买 nike

我一直在制作一个 bukkit 插件,它显示在插件列表中,但是当我执行我希望代码执行的操作时,什么也不会发生。

public class MyClass extends JavaPlugin implements Listener {

@EventHandler
public void onInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
if (player.isSneaking()) {
player.sendMessage("Fire!");
Arrow arrow = player.launchProjectile(Arrow.class);
arrow.setShooter(player);
arrow.setGravity(false);
arrow.setSilent(true);
arrow.setBounce(false);
Block attach = arrow.getAttachedBlock();
Location attachlocation = attach.getLocation();
attachlocation.getWorld().createExplosion(attachlocation, 3);
arrow.setVelocity((player.getEyeLocation().getDirection().multiply(1000)));
}
}
}

最佳答案

我看不到您正在注册您的监听器。 Bukkit 需要知道哪些对象是监听器(您没有这样做),并且它需要知道要执行哪些方法(使用 @EventHandler 注释)

您可以使用PluginManager的registerEvents(Listener listener, Plugin plugin)注册监听器方法。一个聪明的想法是在 onEnable 方法中执行此操作,以确保您的监听器在插件启动后立即注册。

public class MyClass extends JavaPlugin implements Listener {

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

// rest of your code
}

关于java - Bukkit(spigot api)监听器没有响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52866183/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com