mirror of
				https://e.coding.net/circlecloud/MiaoBoard.git
				synced 2025-11-03 17:56:30 +00:00 
			
		
		
		
	@@ -6,6 +6,11 @@ import pw.yumc.MiaoBoard.model.BoardModel;
 | 
			
		||||
 | 
			
		||||
public class Checker {
 | 
			
		||||
    public static boolean $(final Player player, final BoardModel model) {
 | 
			
		||||
        return player.hasPermission(model.permission);
 | 
			
		||||
        return player.hasPermission(model.permission) && dataCheck(model);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean dataCheck(final BoardModel model) {
 | 
			
		||||
        final long now = System.currentTimeMillis();
 | 
			
		||||
        return model.time_start != null && model.time_start.getTime() <= now && model.time_end != null && now <= model.time_end.getTime();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,9 @@
 | 
			
		||||
package pw.yumc.MiaoBoard.misc;
 | 
			
		||||
 | 
			
		||||
import java.text.ParseException;
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.regex.Matcher;
 | 
			
		||||
import java.util.regex.Pattern;
 | 
			
		||||
 | 
			
		||||
@@ -26,6 +29,8 @@ public class Replace {
 | 
			
		||||
 | 
			
		||||
    static class SimpleRelpace {
 | 
			
		||||
        private static final Pattern PLACEHOLDER_PATTERN = Pattern.compile("[%]([^%]+)[%]");
 | 
			
		||||
        private static final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
			
		||||
        private static final String EMPTY = "";
 | 
			
		||||
 | 
			
		||||
        public static String $(final Player player, String text) {
 | 
			
		||||
            final Matcher m = PLACEHOLDER_PATTERN.matcher(text);
 | 
			
		||||
@@ -44,6 +49,9 @@ public class Replace {
 | 
			
		||||
                    case "plugin":
 | 
			
		||||
                        value = plugin(player, ka[1]);
 | 
			
		||||
                        break;
 | 
			
		||||
                    case "time":
 | 
			
		||||
                        value = time(player, ka[1]);
 | 
			
		||||
                        break;
 | 
			
		||||
                    }
 | 
			
		||||
                    text = text.replace("%" + format + "%", Matcher.quoteReplacement(value));
 | 
			
		||||
                }
 | 
			
		||||
@@ -59,6 +67,10 @@ public class Replace {
 | 
			
		||||
                return String.valueOf(player.getLocation().getBlockY());
 | 
			
		||||
            case "z":
 | 
			
		||||
                return String.valueOf(player.getLocation().getBlockZ());
 | 
			
		||||
            case "yaw":
 | 
			
		||||
                return String.valueOf(Math.round(player.getLocation().getYaw() * 100) / 100);
 | 
			
		||||
            case "pitch":
 | 
			
		||||
                return String.valueOf(Math.round(player.getLocation().getPitch() * 100) / 100);
 | 
			
		||||
            case "world":
 | 
			
		||||
                return player.getWorld().getName();
 | 
			
		||||
            case "name":
 | 
			
		||||
@@ -70,7 +82,7 @@ public class Replace {
 | 
			
		||||
            case "max_health":
 | 
			
		||||
                return String.valueOf(player.getMaxHealth());
 | 
			
		||||
            default:
 | 
			
		||||
                return "";
 | 
			
		||||
                return EMPTY;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -83,7 +95,7 @@ public class Replace {
 | 
			
		||||
            case "author":
 | 
			
		||||
                return Arrays.toString(P.getDescription().getAuthors().toArray());
 | 
			
		||||
            default:
 | 
			
		||||
                return "";
 | 
			
		||||
                return EMPTY;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -101,8 +113,39 @@ public class Replace {
 | 
			
		||||
            case "ram_max":
 | 
			
		||||
                return String.valueOf(runtime.maxMemory() / 1048576L);
 | 
			
		||||
            default:
 | 
			
		||||
                return "";
 | 
			
		||||
                return EMPTY;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static String time(final Player player, final String key) {
 | 
			
		||||
            final Date date = new Date();
 | 
			
		||||
            if (key.startsWith("left") && key.contains("_")) {
 | 
			
		||||
                final String time = key.split("_")[1].replace("`", " ");
 | 
			
		||||
                String value = "解析错误";
 | 
			
		||||
                try {
 | 
			
		||||
                    final long left = df.parse(time).getTime() - System.currentTimeMillis();
 | 
			
		||||
                    value = String.valueOf(left / 1000);
 | 
			
		||||
                } catch (final ParseException e) {
 | 
			
		||||
                }
 | 
			
		||||
                return value;
 | 
			
		||||
            }
 | 
			
		||||
            switch (key) {
 | 
			
		||||
            case "now":
 | 
			
		||||
                return df.format(date);
 | 
			
		||||
            case "year":
 | 
			
		||||
                return String.valueOf(date.getYear() + 1900);
 | 
			
		||||
            case "month":
 | 
			
		||||
                return String.valueOf(date.getMonth() + 1);
 | 
			
		||||
            case "day":
 | 
			
		||||
                return String.valueOf(date.getDate());
 | 
			
		||||
            case "hour":
 | 
			
		||||
                return String.valueOf(date.getHours() + 1);
 | 
			
		||||
            case "minute":
 | 
			
		||||
                return String.valueOf(date.getMinutes());
 | 
			
		||||
            case "second":
 | 
			
		||||
                return String.valueOf(date.getSeconds());
 | 
			
		||||
            }
 | 
			
		||||
            return EMPTY;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
package pw.yumc.MiaoBoard.model;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.configuration.ConfigurationSection;
 | 
			
		||||
@@ -13,7 +14,10 @@ import cn.citycraft.PluginHelper.config.InjectConfigurationSection;
 | 
			
		||||
 * @author 喵♂呜
 | 
			
		||||
 */
 | 
			
		||||
public class BoardModel extends InjectConfigurationSection {
 | 
			
		||||
    public int index;
 | 
			
		||||
    public transient String name;
 | 
			
		||||
    public Integer index;
 | 
			
		||||
    public Date time_start;
 | 
			
		||||
    public Date time_end;
 | 
			
		||||
    public String title;
 | 
			
		||||
    public String permission;
 | 
			
		||||
    public List<String> lines;
 | 
			
		||||
@@ -26,4 +30,16 @@ public class BoardModel extends InjectConfigurationSection {
 | 
			
		||||
    public BoardModel(final ConfigurationSection config) {
 | 
			
		||||
        super(config);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 设置模型名称
 | 
			
		||||
     *
 | 
			
		||||
     * @param name
 | 
			
		||||
     *            名称
 | 
			
		||||
     * @return {@link BoardModel}
 | 
			
		||||
     */
 | 
			
		||||
    public BoardModel setName(final String name) {
 | 
			
		||||
        this.name = name;
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package pw.yumc.MiaoBoard.scoreboard;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.Comparator;
 | 
			
		||||
import java.util.LinkedList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
@@ -28,7 +28,7 @@ public class ScoreBoardManager {
 | 
			
		||||
    public static Status cot = new Status();
 | 
			
		||||
    public static SidebarBoard sbd = new SidebarBoard(P.instance, new BoardUpdateFunction(new TitleUpdater(), new BodyUpdater()));
 | 
			
		||||
    public static FileConfig config = MiaoBoardConfig.i().getConfig();;
 | 
			
		||||
    public static List<BoardModel> bms = new ArrayList<>();
 | 
			
		||||
    public static List<BoardModel> bms = new LinkedList<>();
 | 
			
		||||
 | 
			
		||||
    public static List<BoardModel> getModels() {
 | 
			
		||||
        return bms;
 | 
			
		||||
@@ -41,7 +41,7 @@ public class ScoreBoardManager {
 | 
			
		||||
    public static void load() {
 | 
			
		||||
        bms.clear();
 | 
			
		||||
        for (final String bmn : config.getConfigurationSection("Boards").getKeys(false)) {
 | 
			
		||||
            bms.add(new BoardModel(config.getConfigurationSection("Boards." + bmn)));
 | 
			
		||||
            bms.add(new BoardModel(config.getConfigurationSection("Boards." + bmn)).setName(bmn));
 | 
			
		||||
        }
 | 
			
		||||
        Collections.sort(bms, new BoardComparator());
 | 
			
		||||
    }
 | 
			
		||||
@@ -54,7 +54,7 @@ public class ScoreBoardManager {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void start() {
 | 
			
		||||
        sbd.update(cot, MiaoBoardConfig.UpdateTime);
 | 
			
		||||
        sbd.update(cot.set(true), MiaoBoardConfig.UpdateTime);
 | 
			
		||||
        for (final Player player : C.Player.getOnlinePlayers()) {
 | 
			
		||||
            sbd.addTarget(player);
 | 
			
		||||
        }
 | 
			
		||||
@@ -63,7 +63,7 @@ public class ScoreBoardManager {
 | 
			
		||||
    private static class BoardComparator implements Comparator<BoardModel> {
 | 
			
		||||
        @Override
 | 
			
		||||
        public int compare(final BoardModel o1, final BoardModel o2) {
 | 
			
		||||
            return o2.index > o1.index ? 1 : 0;
 | 
			
		||||
            return o1.index.compareTo(o2.index);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,13 +10,19 @@ DisableWorld:
 | 
			
		||||
Boards:
 | 
			
		||||
  #默认记分板
 | 
			
		||||
  default:
 | 
			
		||||
    #记分板顺序(将按照从小到大依次检测 比如 1-5 优先检测 1 符合则显示 不符合 检测 2 ...)
 | 
			
		||||
    #记分板顺序(将按照从小到大依次检测 比如 1-50 优先检测 1 符合则显示 不符合 检测 2 ...)
 | 
			
		||||
    index: 50
 | 
			
		||||
    #显示时间(格式为yyyy-MM-dd HH:mm:ss)
 | 
			
		||||
    time: 
 | 
			
		||||
      start: '2016-01-01 00:00:00'
 | 
			
		||||
      end: '2020-01-01 00:00:00'
 | 
			
		||||
    #记分板标题
 | 
			
		||||
    title: '记分板简介'
 | 
			
		||||
    title: '喵式记分板简介'
 | 
			
		||||
    #记分板权限
 | 
			
		||||
    permission: mb.default
 | 
			
		||||
    #记分板内容(不得超过38个字符 包括颜色字符 超过部分自动截取)
 | 
			
		||||
    #记分板内容
 | 
			
		||||
    #注意 不得超过38个字符 包括颜色字符 超过部分自动截取
 | 
			
		||||
    #注意 不得超过15行 超出部分 自动忽略
 | 
			
		||||
    lines:
 | 
			
		||||
    - '&6插件名称: &a%plugin_name%'
 | 
			
		||||
    - '&7------------------------------'
 | 
			
		||||
@@ -28,5 +34,8 @@ Boards:
 | 
			
		||||
    - '&7------------------------------'
 | 
			
		||||
    - '&6您所在的位置: &b%player_world% &a%player_x%,%player_y%,%player_z%'
 | 
			
		||||
    - '&7------------------------------'
 | 
			
		||||
    - '&6您所在的角度: &bYaw &a%player_yaw% &bPitch &a%player_pitch%'
 | 
			
		||||
    - '&7------------------------------'
 | 
			
		||||
    - '&6服务器使用内存: &a%server_ram_used%/%server_ram_total%'
 | 
			
		||||
    - '&7------------------------------'
 | 
			
		||||
    - '&7------------------------------'
 | 
			
		||||
    - '&6离2017年还剩: &a%time_left_2017-01-01`00:00:00%秒'
 | 
			
		||||
		Reference in New Issue
	
	Block a user