Java I';我在将API实现到bukkit插件中时遇到了一个问题

Java I';我在将API实现到bukkit插件中时遇到了一个问题,java,api,minecraft,bukkit,integrate,Java,Api,Minecraft,Bukkit,Integrate,我正在尝试设置这个API,以便在玩家购买物品时更新他们的记分板和其他东西 我正在使用的插件名为SignShop,可以在这里找到: 这不是我的问题,问题是没有一个事件是从它的外观发射 这是我的班级,我在那里尝试一些调试 package me.galaxywarrior6.minecraftgta.events; import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.wargamer2010.signshop

我正在尝试设置这个API,以便在玩家购买物品时更新他们的记分板和其他东西

我正在使用的插件名为SignShop,可以在这里找到:

这不是我的问题,问题是没有一个事件是从它的外观发射

这是我的班级,我在那里尝试一些调试

package me.galaxywarrior6.minecraftgta.events;

import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
import org.wargamer2010.signshop.events.SSMoneyTransactionEvent;
import org.wargamer2010.signshop.events.SSPostTransactionEvent;
import org.wargamer2010.signshop.events.SSPreTransactionEvent;
import org.wargamer2010.signshop.events.SSTouchShopEvent;

public class SignBuyEvent implements Listener{

    public void onSignBuy(SSMoneyTransactionEvent event){
        Bukkit.getServer().broadcastMessage("one!");
    }
    public void onSignBuy(SSPreTransactionEvent event){
        Bukkit.getServer().broadcastMessage("two!");
    }
    public void onSignBuy(SSPostTransactionEvent event){
        Bukkit.getServer().broadcastMessage("three!");
    }
    public void onSignBuy(SSTouchShopEvent event){
        Bukkit.getServer().broadcastMessage("four!");
    }
}

有人能帮我实现这个API吗?除了设置事件之外,我什么都没做,因为这就是它真正告诉你要做的。

这是因为你需要
@EventHandler
就在你的所有事件之上:

@EventHandler //this must be before ALL events
public void onSignBuy(SSMoneyTransactionEvent event){
    Bukkit.getServer().broadcastMessage("one!");
}
此外,您可能没有注册事件。在主文件(扩展JavaPlugin的
文件)中,确保在
onEnable()中有此文件:

因此,您的
SignBuyEvent
类应该如下所示:

public class SignBuyEvent implements Listener{
  @EventHandler
  public void onSignBuy(SSMoneyTransactionEvent event){
    Bukkit.getServer().broadcastMessage("one!");
  }

  @EventHandler
  public void onSignBuy(SSPreTransactionEvent event){
    Bukkit.getServer().broadcastMessage("two!");
  }

  @EventHandler
  public void onSignBuy(SSPostTransactionEvent event){
    Bukkit.getServer().broadcastMessage("three!");
  }

  @EventHandler
  public void onSignBuy(SSTouchShopEvent event){
    Bukkit.getServer().broadcastMessage("four!");
  }
}
@Override
public void onEnable(){
  this.getServer().getPluginManager().registerEvents(new SignBuyEvent(), this);

  //other things that you have in your onEnable here
}
Main
类中的
onEnable()
方法应该如下所示:

public class SignBuyEvent implements Listener{
  @EventHandler
  public void onSignBuy(SSMoneyTransactionEvent event){
    Bukkit.getServer().broadcastMessage("one!");
  }

  @EventHandler
  public void onSignBuy(SSPreTransactionEvent event){
    Bukkit.getServer().broadcastMessage("two!");
  }

  @EventHandler
  public void onSignBuy(SSPostTransactionEvent event){
    Bukkit.getServer().broadcastMessage("three!");
  }

  @EventHandler
  public void onSignBuy(SSTouchShopEvent event){
    Bukkit.getServer().broadcastMessage("four!");
  }
}
@Override
public void onEnable(){
  this.getServer().getPluginManager().registerEvents(new SignBuyEvent(), this);

  //other things that you have in your onEnable here
}

我想指定它在控制台中不显示任何内容。就好像他们根本没有被使用。你在哪里注册你的听众?你知道吗,我觉得自己真的很愚蠢,哈哈。当我做这一切的时候就像是凌晨5点。谢谢你解决了我的这个小疏忽。这确实解决了我的问题。