From 819929f1b174e5ceaab9bc57ace789e2f324b3ba Mon Sep 17 00:00:00 2001 From: 502647092 Date: Tue, 5 Jul 2016 20:59:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BD=BF=E7=94=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=BD=BD=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- .../MiaoBoard/config/MiaoBoardConfig.java | 6 ++++++ .../MiaoBoard/listener/PlayerListener.java | 14 +++++++++++++- .../pw/yumc/MiaoBoard/model/BoardModel.java | 19 ++++++++++--------- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/main/java/pw/yumc/MiaoBoard/config/MiaoBoardConfig.java b/src/main/java/pw/yumc/MiaoBoard/config/MiaoBoardConfig.java index 741dfcb..0b7b724 100644 --- a/src/main/java/pw/yumc/MiaoBoard/config/MiaoBoardConfig.java +++ b/src/main/java/pw/yumc/MiaoBoard/config/MiaoBoardConfig.java @@ -1,5 +1,8 @@ package pw.yumc.MiaoBoard.config; +import java.util.List; + +import cn.citycraft.PluginHelper.config.ConfigNode; import cn.citycraft.PluginHelper.config.FileConfig; import cn.citycraft.PluginHelper.kit.PKit; import pw.yumc.MiaoBoard.model.BoardModel; @@ -8,6 +11,9 @@ import pw.yumc.MiaoBoard.scoreboard.ScoreBoardManager; public class MiaoBoardConfig { public static FileConfig config; + @ConfigNode + public static List DisableWorld; + public MiaoBoardConfig() { config = new FileConfig(PKit.i()); } diff --git a/src/main/java/pw/yumc/MiaoBoard/listener/PlayerListener.java b/src/main/java/pw/yumc/MiaoBoard/listener/PlayerListener.java index 3f29e53..8b73fa5 100644 --- a/src/main/java/pw/yumc/MiaoBoard/listener/PlayerListener.java +++ b/src/main/java/pw/yumc/MiaoBoard/listener/PlayerListener.java @@ -2,10 +2,12 @@ package pw.yumc.MiaoBoard.listener; import org.bukkit.Bukkit; import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import cn.citycraft.PluginHelper.kit.PKit; +import pw.yumc.MiaoBoard.config.MiaoBoardConfig; import pw.yumc.MiaoBoard.scoreboard.ScoreBoardManager; /** @@ -18,8 +20,18 @@ public class PlayerListener implements Listener { Bukkit.getPluginManager().registerEvents(this, PKit.i()); } + public void onPlayerChangeWorld(final PlayerChangedWorldEvent e) { + if (MiaoBoardConfig.DisableWorld.contains(e.getPlayer().getWorld().getName())) { + ScoreBoardManager.remove(e.getPlayer()); + } else { + ScoreBoardManager.add(e.getPlayer()); + } + } + public void onPlayerJoin(final PlayerJoinEvent e) { - ScoreBoardManager.add(e.getPlayer()); + if (!MiaoBoardConfig.DisableWorld.contains(e.getPlayer().getWorld().getName())) { + ScoreBoardManager.add(e.getPlayer()); + } } public void onPlayerQuit(final PlayerQuitEvent e) { diff --git a/src/main/java/pw/yumc/MiaoBoard/model/BoardModel.java b/src/main/java/pw/yumc/MiaoBoard/model/BoardModel.java index 5e556d7..6cd7982 100644 --- a/src/main/java/pw/yumc/MiaoBoard/model/BoardModel.java +++ b/src/main/java/pw/yumc/MiaoBoard/model/BoardModel.java @@ -5,18 +5,19 @@ import java.util.List; import org.bukkit.configuration.ConfigurationSection; -public class BoardModel { +import cn.citycraft.PluginHelper.config.InjectConfigurationSection; + +public class BoardModel extends InjectConfigurationSection { public String title; public String permission; - public List lines = new LinkedList<>();; + public List lines = new LinkedList<>(); + /** + * 自动载入配置 + * + * @param config + */ public BoardModel(final ConfigurationSection config) { - this(config.getString("title"), config.getString("permission"), config.getStringList("lines")); - } - - public BoardModel(final String title, final String permission, final List lines) { - this.title = title; - this.permission = permission; - this.lines = lines; + super(config); } }