mirror of
https://e.coding.net/circlecloud/MiaoBoard.git
synced 2025-12-25 02:26:17 +00:00
@@ -5,6 +5,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import pw.yumc.MiaoBoard.listener.PlayerListener;
|
||||
import pw.yumc.MiaoBoard.listener.SelfListener;
|
||||
import pw.yumc.MiaoBoard.misc.Checker;
|
||||
import pw.yumc.MiaoBoard.scoreboard.ScoreBoardManager;
|
||||
import pw.yumc.YumCore.bukkit.Log;
|
||||
@@ -30,7 +31,7 @@ public class MiaoBoard extends JavaPlugin implements Executor {
|
||||
@Cmd(permission = "mb.toggle", executor = Cmd.Executor.PLAYER)
|
||||
@Help("关闭记分板")
|
||||
@Sort(2)
|
||||
public void off(final Player player) {
|
||||
public void off(Player player) {
|
||||
Checker.offList.add(player.getName());
|
||||
Log.sender(player, "§c记分板已关闭!");
|
||||
}
|
||||
@@ -38,7 +39,7 @@ public class MiaoBoard extends JavaPlugin implements Executor {
|
||||
@Cmd(permission = "mb.toggle", executor = Cmd.Executor.PLAYER)
|
||||
@Help("打开记分板")
|
||||
@Sort(1)
|
||||
public void on(final Player player) {
|
||||
public void on(Player player) {
|
||||
Checker.offList.remove(player.getName());
|
||||
Log.sender(player, "§a记分板已打开!");
|
||||
}
|
||||
@@ -53,6 +54,7 @@ public class MiaoBoard extends JavaPlugin implements Executor {
|
||||
scoreBoardManager.start();
|
||||
new CommandSub("mb", this);
|
||||
new PlayerListener();
|
||||
new SelfListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -62,7 +64,7 @@ public class MiaoBoard extends JavaPlugin implements Executor {
|
||||
|
||||
@Cmd(permission = "mb.reload")
|
||||
@Help("重新载入配置文件")
|
||||
public void reload(final CommandSender sender) {
|
||||
public void reload(CommandSender sender) {
|
||||
scoreBoardManager.reload();
|
||||
Log.sender(sender, "§a配置重载完毕!");
|
||||
}
|
||||
|
||||
45
src/main/java/pw/yumc/MiaoBoard/event/BodyUpdateEvent.java
Normal file
45
src/main/java/pw/yumc/MiaoBoard/event/BodyUpdateEvent.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package pw.yumc.MiaoBoard.event;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
/**
|
||||
* 记分板更新事件
|
||||
* Created by 蒋天蓓 on 2017/3/7 0007.
|
||||
*/
|
||||
public class BodyUpdateEvent extends Event {
|
||||
private Player player;
|
||||
private List<String> body = Collections.emptyList();
|
||||
|
||||
public BodyUpdateEvent(Player player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
public void setBody(List<String> body) {
|
||||
this.body = body;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
|
||||
return player;
|
||||
}
|
||||
|
||||
public List<String> getBody() {
|
||||
return body;
|
||||
}
|
||||
|
||||
private static HandlerList handlerList = new HandlerList();
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlerList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlerList;
|
||||
}
|
||||
}
|
||||
41
src/main/java/pw/yumc/MiaoBoard/event/TitleUpdateEvent.java
Normal file
41
src/main/java/pw/yumc/MiaoBoard/event/TitleUpdateEvent.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package pw.yumc.MiaoBoard.event;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
/**
|
||||
* 记分板标题更新
|
||||
* Created by 蒋天蓓 on 2017/3/7 0007.
|
||||
*/
|
||||
public class TitleUpdateEvent extends Event {
|
||||
private Player player;
|
||||
private String title;
|
||||
|
||||
public TitleUpdateEvent(Player player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
private static HandlerList handlerList = new HandlerList();
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlerList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlerList;
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChangeWorld(final PlayerChangedWorldEvent e) {
|
||||
public void onPlayerChangeWorld(PlayerChangedWorldEvent e) {
|
||||
if (MiaoBoardConfig.i().DisableWorld.contains(e.getPlayer().getWorld().getName())) {
|
||||
manager.removeTarget(e.getPlayer());
|
||||
} else {
|
||||
@@ -40,12 +40,12 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerJoin(final PlayerJoinEvent e) {
|
||||
public void onPlayerJoin(PlayerJoinEvent e) {
|
||||
manager.addTarget(e.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerQuit(final PlayerQuitEvent e) {
|
||||
public void onPlayerQuit(PlayerQuitEvent e) {
|
||||
manager.removeTarget(e.getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
46
src/main/java/pw/yumc/MiaoBoard/listener/SelfListener.java
Normal file
46
src/main/java/pw/yumc/MiaoBoard/listener/SelfListener.java
Normal file
@@ -0,0 +1,46 @@
|
||||
package pw.yumc.MiaoBoard.listener;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import pw.yumc.MiaoBoard.MiaoBoard;
|
||||
import pw.yumc.MiaoBoard.event.BodyUpdateEvent;
|
||||
import pw.yumc.MiaoBoard.event.TitleUpdateEvent;
|
||||
import pw.yumc.MiaoBoard.misc.Checker;
|
||||
import pw.yumc.MiaoBoard.misc.Replace;
|
||||
import pw.yumc.MiaoBoard.model.BoardModel;
|
||||
import pw.yumc.YumCore.bukkit.P;
|
||||
|
||||
/**
|
||||
* 自身记分板监听类
|
||||
* Created by 蒋天蓓 on 2017/3/7 0007.
|
||||
*/
|
||||
public class SelfListener implements Listener {
|
||||
private MiaoBoard plugin = P.getPlugin();
|
||||
|
||||
public SelfListener() {
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onBodyUpdate(BodyUpdateEvent event) {
|
||||
for (BoardModel bmodel : plugin.getScoreBoardManager().getModels()) {
|
||||
if (Checker.$(event.getPlayer(), bmodel)) {
|
||||
event.setBody(Replace.$(event.getPlayer(), bmodel.lines));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onTitleUpdate(TitleUpdateEvent event) {
|
||||
for (BoardModel bmodel : plugin.getScoreBoardManager().getModels()) {
|
||||
if (Checker.$(event.getPlayer(), bmodel)) {
|
||||
event.setTitle(Replace.$(event.getPlayer(), bmodel.title));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,21 +31,11 @@ public class BoardModel extends InjectConfigurationSection {
|
||||
/**
|
||||
* 自动载入配置
|
||||
*
|
||||
* @param name
|
||||
* @param config
|
||||
*/
|
||||
public BoardModel(final ConfigurationSection config) {
|
||||
public BoardModel(String name, final ConfigurationSection config) {
|
||||
super(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置模型名称
|
||||
*
|
||||
* @param name
|
||||
* 名称
|
||||
* @return {@link BoardModel}
|
||||
*/
|
||||
public BoardModel setName(final String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package pw.yumc.MiaoBoard.scoreboard;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@@ -50,10 +49,8 @@ public class ScoreBoardManager {
|
||||
|
||||
public void load() {
|
||||
bms.clear();
|
||||
for (final String bmn : config.getConfigurationSection("Boards").getKeys(false)) {
|
||||
bms.add(new BoardModel(config.getConfigurationSection("Boards." + bmn)).setName(bmn));
|
||||
}
|
||||
Collections.sort(bms, new BoardComparator());
|
||||
config.getConfigurationSection("Boards").getKeys(false).forEach(bmn -> bms.add(new BoardModel(bmn, config.getConfigurationSection("Boards." + bmn))));
|
||||
bms.sort(Comparator.comparing(o -> o.index));
|
||||
}
|
||||
|
||||
public void reload() {
|
||||
@@ -69,16 +66,7 @@ public class ScoreBoardManager {
|
||||
|
||||
public void start() {
|
||||
sbd.update(cot.set(true), MiaoBoardConfig.i().UpdateTime);
|
||||
for (final Player player : C.Player.getOnlinePlayers()) {
|
||||
addTarget(player);
|
||||
}
|
||||
}
|
||||
|
||||
private class BoardComparator implements Comparator<BoardModel> {
|
||||
@Override
|
||||
public int compare(final BoardModel o1, final BoardModel o2) {
|
||||
return o1.index.compareTo(o2.index);
|
||||
}
|
||||
C.Player.getOnlinePlayers().forEach(this::addTarget);
|
||||
}
|
||||
|
||||
private class Status implements Condition {
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
package pw.yumc.MiaoBoard.scoreboard.updater;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import pw.yumc.MiaoBoard.MiaoBoard;
|
||||
import pw.yumc.MiaoBoard.misc.Checker;
|
||||
import pw.yumc.MiaoBoard.misc.Replace;
|
||||
import pw.yumc.MiaoBoard.model.BoardModel;
|
||||
import pw.yumc.MiaoBoard.event.BodyUpdateEvent;
|
||||
import pw.yumc.YumCore.bukkit.P;
|
||||
import pw.yumc.YumCore.callback.CallBackReturn;
|
||||
|
||||
@@ -23,10 +21,9 @@ public class BodyUpdater extends CallBackReturn.One<Player, List<String>> {
|
||||
|
||||
@Override
|
||||
public List<String> run(final Player param) {
|
||||
for (BoardModel bmodel : plugin.getScoreBoardManager().getModels()) {
|
||||
if (Checker.$(param, bmodel)) { return Replace.$(param, bmodel.lines); }
|
||||
}
|
||||
return Collections.emptyList();
|
||||
BodyUpdateEvent event = new BodyUpdateEvent(param);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
return event.getBody();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package pw.yumc.MiaoBoard.scoreboard.updater;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import pw.yumc.MiaoBoard.MiaoBoard;
|
||||
import pw.yumc.MiaoBoard.misc.Checker;
|
||||
import pw.yumc.MiaoBoard.misc.Replace;
|
||||
import pw.yumc.MiaoBoard.model.BoardModel;
|
||||
import pw.yumc.MiaoBoard.event.TitleUpdateEvent;
|
||||
import pw.yumc.YumCore.bukkit.P;
|
||||
import pw.yumc.YumCore.callback.CallBackReturn;
|
||||
|
||||
@@ -20,10 +19,9 @@ public class TitleUpdater extends CallBackReturn.One<Player, String> {
|
||||
|
||||
@Override
|
||||
public String run(final Player param) {
|
||||
for (BoardModel bmodel : plugin.getScoreBoardManager().getModels()) {
|
||||
if (Checker.$(param, bmodel)) { return Replace.$(param, bmodel.title); }
|
||||
}
|
||||
return null;
|
||||
TitleUpdateEvent event = new TitleUpdateEvent(param);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
return event.getTitle();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user