diff --git a/src/main/java/pw/yumc/MiaoBoard/MiaoBoard.java b/src/main/java/pw/yumc/MiaoBoard/MiaoBoard.java index bc27450..93c6560 100644 --- a/src/main/java/pw/yumc/MiaoBoard/MiaoBoard.java +++ b/src/main/java/pw/yumc/MiaoBoard/MiaoBoard.java @@ -10,6 +10,7 @@ import pw.yumc.YumCore.commands.CommandArgument; import pw.yumc.YumCore.commands.CommandExecutor; import pw.yumc.YumCore.commands.CommandManager; import pw.yumc.YumCore.commands.annotation.Cmd; +import pw.yumc.YumCore.commands.annotation.Cmd.Executor; import pw.yumc.YumCore.commands.annotation.Help; import pw.yumc.YumCore.commands.annotation.Sort; @@ -26,7 +27,7 @@ public class MiaoBoard extends JavaPlugin implements CommandExecutor { return scoreBoardManager; } - @Cmd(permission = "mb.toggle") + @Cmd(permission = "mb.toggle", executor = Executor.PLAYER) @Help("关闭记分板") @Sort(2) public void off(final CommandArgument e) { @@ -34,7 +35,7 @@ public class MiaoBoard extends JavaPlugin implements CommandExecutor { Log.toSender(e.getSender(), "§c记分板已关闭!"); } - @Cmd(permission = "mb.toggle") + @Cmd(permission = "mb.toggle", executor = Executor.PLAYER) @Help("打开记分板") @Sort(1) public void on(final CommandArgument e) { diff --git a/src/main/java/pw/yumc/MiaoBoard/config/MiaoBoardConfig.java b/src/main/java/pw/yumc/MiaoBoard/config/MiaoBoardConfig.java index a5abf34..4eda9f8 100644 --- a/src/main/java/pw/yumc/MiaoBoard/config/MiaoBoardConfig.java +++ b/src/main/java/pw/yumc/MiaoBoard/config/MiaoBoardConfig.java @@ -13,8 +13,8 @@ import pw.yumc.YumCore.config.InjectConfig; */ public class MiaoBoardConfig extends InjectConfig { public transient static MiaoBoardConfig instance = new MiaoBoardConfig(); - private Integer UpdateTime; - private List DisableWorld; + public Integer UpdateTime; + public List DisableWorld = Collections.emptyList(); public static MiaoBoardConfig i() { return instance; @@ -23,15 +23,4 @@ public class MiaoBoardConfig extends InjectConfig { public static void reInject() { instance.reload(); } - - public List getDisableWorld() { - if (DisableWorld == null) { - DisableWorld = Collections.emptyList(); - } - return DisableWorld; - } - - public Integer getUpdateTime() { - return UpdateTime; - } } diff --git a/src/main/java/pw/yumc/MiaoBoard/listener/PlayerListener.java b/src/main/java/pw/yumc/MiaoBoard/listener/PlayerListener.java index 31796f4..905c3ec 100644 --- a/src/main/java/pw/yumc/MiaoBoard/listener/PlayerListener.java +++ b/src/main/java/pw/yumc/MiaoBoard/listener/PlayerListener.java @@ -9,6 +9,7 @@ import org.bukkit.event.player.PlayerQuitEvent; import pw.yumc.MiaoBoard.MiaoBoard; import pw.yumc.MiaoBoard.config.MiaoBoardConfig; +import pw.yumc.MiaoBoard.scoreboard.ScoreBoardManager; import pw.yumc.YumCore.bukkit.P; import pw.yumc.YumCore.statistic.Statistics; import pw.yumc.YumCore.update.SubscribeTask; @@ -21,6 +22,7 @@ import pw.yumc.YumCore.update.SubscribeTask; */ public class PlayerListener implements Listener { MiaoBoard plugin = P.getPlugin(); + ScoreBoardManager manager = plugin.getScoreBoardManager(); public PlayerListener() { Bukkit.getPluginManager().registerEvents(this, plugin); @@ -30,20 +32,20 @@ public class PlayerListener implements Listener { @EventHandler public void onPlayerChangeWorld(final PlayerChangedWorldEvent e) { - if (MiaoBoardConfig.i().getDisableWorld().contains(e.getPlayer().getWorld().getName())) { - plugin.getScoreBoardManager().getSidebarBoard().removeTarget(e.getPlayer()); + if (MiaoBoardConfig.i().DisableWorld.contains(e.getPlayer().getWorld().getName())) { + manager.removeTarget(e.getPlayer()); } else { - plugin.getScoreBoardManager().getSidebarBoard().addTarget(e.getPlayer()); + manager.addTarget(e.getPlayer()); } } @EventHandler public void onPlayerJoin(final PlayerJoinEvent e) { - plugin.getScoreBoardManager().addTarget(e.getPlayer()); + manager.addTarget(e.getPlayer()); } @EventHandler public void onPlayerQuit(final PlayerQuitEvent e) { - plugin.getScoreBoardManager().getSidebarBoard().removeTarget(e.getPlayer()); + manager.removeTarget(e.getPlayer()); } } diff --git a/src/main/java/pw/yumc/MiaoBoard/scoreboard/ScoreBoardManager.java b/src/main/java/pw/yumc/MiaoBoard/scoreboard/ScoreBoardManager.java index 07c9dc2..00a2264 100644 --- a/src/main/java/pw/yumc/MiaoBoard/scoreboard/ScoreBoardManager.java +++ b/src/main/java/pw/yumc/MiaoBoard/scoreboard/ScoreBoardManager.java @@ -35,7 +35,7 @@ public class ScoreBoardManager { } public void addTarget(final Player player) { - if (!MiaoBoardConfig.i().getDisableWorld().contains(player.getWorld().getName())) { + if (!MiaoBoardConfig.i().DisableWorld.contains(player.getWorld().getName())) { getSidebarBoard().addTarget(player); } } @@ -63,8 +63,12 @@ public class ScoreBoardManager { start(); } + public void removeTarget(final Player player) { + sbd.removeTarget(player); + } + public void start() { - sbd.update(cot.set(true), MiaoBoardConfig.i().getUpdateTime()); + sbd.update(cot.set(true), MiaoBoardConfig.i().UpdateTime); for (final Player player : C.Player.getOnlinePlayers()) { addTarget(player); } diff --git a/src/main/java/pw/yumc/MiaoBoard/scoreboard/core/Board.java b/src/main/java/pw/yumc/MiaoBoard/scoreboard/core/Board.java index cbf7b36..76c1e8b 100644 --- a/src/main/java/pw/yumc/MiaoBoard/scoreboard/core/Board.java +++ b/src/main/java/pw/yumc/MiaoBoard/scoreboard/core/Board.java @@ -45,7 +45,7 @@ public abstract class Board implements Iterable { plugin.getServer().getScheduler().cancelTask(taskId); taskId = 0; for (final Player player : this.targets.keySet()) { - player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard()); + player.setScoreboard(Bukkit.getScoreboardManager().getMainScoreboard()); } this.targets.clear(); this.removeQueue.clear(); @@ -85,7 +85,7 @@ public abstract class Board implements Iterable { public boolean removeTarget(final Player player) { if (this.isTarget(player)) { - player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard()); + player.setScoreboard(Bukkit.getScoreboardManager().getMainScoreboard()); return this.removeQueue.add(player); } return false; @@ -93,7 +93,6 @@ public abstract class Board implements Iterable { public void update(final Condition condition, final int interval) { taskId = plugin.getServer().getScheduler().runTaskTimer(plugin, new Runnable() { - @Override public void run() { if (condition.get()) { diff --git a/src/main/java/pw/yumc/MiaoBoard/scoreboard/core/SidebarBoard.java b/src/main/java/pw/yumc/MiaoBoard/scoreboard/core/SidebarBoard.java index 9637244..76aa6f0 100644 --- a/src/main/java/pw/yumc/MiaoBoard/scoreboard/core/SidebarBoard.java +++ b/src/main/java/pw/yumc/MiaoBoard/scoreboard/core/SidebarBoard.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.TreeMap; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; @@ -49,7 +50,7 @@ public class SidebarBoard extends Board { title = this.getUpdateFunction().getTitleFunction().run(player); } if (title == null) { - this.removeTarget(player); + player.setScoreboard(Bukkit.getScoreboardManager().getMainScoreboard()); return; } final List newContents = this.getUpdateFunction().getBodyFunction().run(player);