Bukkit - 每秒更新一个标志

时间:2015-01-18 17:04:30

标签: scheduler bukkit

我正试图每秒更新一次标志,但我不知道该怎么做。 我已经用调度程序完成了代码,但我不知道应该把它放在哪里。

如果有人可以帮助我甚至给我一个示例代码,那将是非常好的......

这是我的代码:

public class Main extends JavaPlugin implements Listener{

    DateFormat dFormat = new SimpleDateFormat("HH:mm");
    Date d = new Date();


    public void onEnable() {
            System.out.println("[BookshelfDrop] BookshelfDrop v" + this.getDescription().getVersion() + " enabled");
            getServer().getPluginManager().registerEvents(this, this);


    }

    public void onDisable() {
            System.out.println("[BookshelfDrop] BookshelfDrop disabled");
    }




    @EventHandler
    public void onChange(SignChangeEvent event) {

    if (event.getLine(0).equalsIgnoreCase("[clock]")) {
        Sign s = (Sign) event.getBlock().getState();
        s.setLine(0, "[clock]");
        Bukkit.getServer()
          .getScheduler()
          .scheduleSyncRepeatingTask(
             Bukkit.getPluginManager().getPlugin("BookshelfDrop"),
             new Runnable() {

             public void run() {
                 s.setLine(1, "§a" + dFormat.format(d));
                 s.update();
             }
         }, 0, 20L);
    }
}

1 个答案:

答案 0 :(得分:-1)

您可以创建一个ArrayList来放置所有符号

public ArrayList<Sign> yourSigns = new ArrayList<Sign>();

然后将此添加到您的onSignChange

public void onChange(SignChangeEvent event) {
 if (event.getLine(0).equalsIgnoreCase("[clock]")) {
 Sign s = (Sign) event.getBlock().getState();
 yourSigns.add(s);
}

在你的onEnable()方法中,你可以把你的时钟放在你的招牌清单上的每个标志上。