diff --git a/src/main/java/de/zh32/teleportsigns/PlayerListener.java b/src/main/java/de/zh32/teleportsigns/PlayerListener.java index 25e02ee..f64de44 100644 --- a/src/main/java/de/zh32/teleportsigns/PlayerListener.java +++ b/src/main/java/de/zh32/teleportsigns/PlayerListener.java @@ -37,12 +37,20 @@ protected PlayerListener(TeleportSigns plugin) { @EventHandler public void onSignChange(SignChangeEvent e) { if (e.getLine(0).equalsIgnoreCase("[tsigns]") && e.getPlayer().hasPermission("teleportsigns.create")) { - ServerInfo info = data.getServer(e.getLine(1)); - String layout = e.getLine(2).equals("") ? "default" : e.getLine(2); - if (data.getLayout(layout) != null) { + final ServerInfo info = data.getServer(e.getLine(1)); + String layoutName = e.getLine(2).equals("") ? "default" : e.getLine(2); + final SignLayout layout = data.getLayout(layoutName); + if (layout != null) { if (info != null) { - TeleportSign ts = new TeleportSign(e.getLine(1), e.getBlock().getLocation(), layout); - data.addSign(ts); + final TeleportSign ts = new TeleportSign(e.getLine(1), e.getBlock().getLocation(), layoutName); + data.addSign(ts); + Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { + + @Override + public void run() { + plugin.getUpdateUtil().updateSign(ts, layout, info); + } + }, 1L); e.getPlayer().sendMessage(ChatColor.GREEN + "Sign created."); } else { diff --git a/src/main/java/de/zh32/teleportsigns/UpdateUtil.java b/src/main/java/de/zh32/teleportsigns/UpdateUtil.java index e98c2f8..be4ed36 100644 --- a/src/main/java/de/zh32/teleportsigns/UpdateUtil.java +++ b/src/main/java/de/zh32/teleportsigns/UpdateUtil.java @@ -56,7 +56,7 @@ public void run() { } } - private void updateSign(TeleportSign sign, SignLayout layout, ServerInfo server) { + void updateSign(TeleportSign sign, SignLayout layout, ServerInfo server) { Location location = sign.getLocation(); if (location.getWorld().getChunkAt(location).isLoaded()) { Block b = location.getBlock();