我正试图每秒更新一次标志,但我不知道该怎么做。 我已经用调度程序完成了代码,但我不知道应该把它放在哪里。
如果有人可以帮助我甚至给我一个示例代码,那将是非常好的......
这是我的代码:
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);
}
}
答案 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()方法中,你可以把你的时钟放在你的招牌清单上的每个标志上。