mirror of
				https://e.coding.net/circlecloud/MiaoBoard.git
				synced 2025-11-03 17:56:30 +00:00 
			
		
		
		
	@@ -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) {
 | 
			
		||||
 
 | 
			
		||||
@@ -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<String> DisableWorld;
 | 
			
		||||
    public Integer UpdateTime;
 | 
			
		||||
    public List<String> 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<String> getDisableWorld() {
 | 
			
		||||
        if (DisableWorld == null) {
 | 
			
		||||
            DisableWorld = Collections.emptyList();
 | 
			
		||||
        }
 | 
			
		||||
        return DisableWorld;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Integer getUpdateTime() {
 | 
			
		||||
        return UpdateTime;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ public abstract class Board implements Iterable<Player> {
 | 
			
		||||
            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<Player> {
 | 
			
		||||
 | 
			
		||||
    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<Player> {
 | 
			
		||||
 | 
			
		||||
    public void update(final Condition condition, final int interval) {
 | 
			
		||||
        taskId = plugin.getServer().getScheduler().runTaskTimer(plugin, new Runnable() {
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            public void run() {
 | 
			
		||||
                if (condition.get()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -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<String> newContents = this.getUpdateFunction().getBodyFunction().run(player);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user