StatusSystem的首次提交
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
package com.mmlsystem.StatusSystem;
|
||||
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.scoreboard.*;
|
||||
|
||||
public class Foundation extends JavaPlugin {
|
||||
public static Economy econ;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
getLogger().info("我为Type-C大人举大旗");
|
||||
getLogger().info("符玄矮矮的也很可爱");
|
||||
if (!setupEconomy()) {
|
||||
getLogger().severe("忘记安装经济插件的腐竹是屑");
|
||||
getLogger().severe("请先安装Vault 1.7+或VaultUnlocked插件以继续操作");
|
||||
getServer().getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
}
|
||||
getServer().getPluginManager().registerEvents(new PlayerJoinListener(this), this);
|
||||
getLogger().info("插件启用成功。");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
getLogger().info("插件禁用成功。");
|
||||
}
|
||||
|
||||
private boolean setupEconomy() {
|
||||
if (getServer().getPluginManager().getPlugin("Vault") == null) {
|
||||
return false;
|
||||
}
|
||||
RegisteredServiceProvider<Economy> rsp = Bukkit.getServicesManager().getRegistration(Economy.class);
|
||||
if (rsp == null) {
|
||||
return false;
|
||||
}
|
||||
econ = rsp.getProvider();
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setScoreboardUI(Player player) {
|
||||
ScoreboardManager manager = Bukkit.getScoreboardManager();
|
||||
Scoreboard board = manager.getNewScoreboard();
|
||||
|
||||
Objective objective = board.registerNewObjective("info", "dummy", ChatColor.GOLD + "✦ 统计数据 ✦");
|
||||
objective.setDisplaySlot(DisplaySlot.SIDEBAR);
|
||||
|
||||
objective.getScore(ChatColor.AQUA + "金币").setScore(5);
|
||||
objective.getScore(ChatColor.RED + " " + econ.getBalance(player) ).setScore(4);
|
||||
objective.getScore(ChatColor.AQUA + "当前在线人数").setScore(3);
|
||||
objective.getScore(ChatColor.GREEN + " " + Bukkit.getOnlinePlayers().size()).setScore(2);
|
||||
objective.getScore(ChatColor.GRAY + "mymc.life").setScore(1);
|
||||
|
||||
player.setScoreboard(board);
|
||||
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (!player.isOnline()) {
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
for (String entry : board.getEntries()) {
|
||||
if (entry.startsWith(ChatColor.RED + " ") || entry.startsWith(ChatColor.GREEN + " ")) { // 匹配你旧的在线人数行
|
||||
board.resetScores(entry);
|
||||
}
|
||||
}
|
||||
objective.getScore(ChatColor.RED + " " + econ.getBalance(player) ).setScore(4);
|
||||
objective.getScore(ChatColor.GREEN + " " + Bukkit.getOnlinePlayers().size()).setScore(2);
|
||||
}
|
||||
}.runTaskTimer(this, 0L, 100L);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.mmlsystem.StatusSystem;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
|
||||
public class PlayerJoinListener implements Listener {
|
||||
private final Foundation plugin;
|
||||
|
||||
public PlayerJoinListener(Foundation plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onJoin(PlayerJoinEvent event) {
|
||||
try {
|
||||
plugin.setScoreboardUI(event.getPlayer());
|
||||
} catch (Exception e) {
|
||||
plugin.getLogger().severe(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
name: StatusSystem
|
||||
main: com.mmlsystem.StatusSystem.Foundation
|
||||
version: 1.1
|
||||
api-version: 1.21
|
||||
author: 杏川铭心
|
||||
description: 提供服务器计分板UI功能。
|
||||
Reference in New Issue
Block a user