Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.dazzhub.Utils.Scoreboard;
- import com.dazzhub.Arena.Arena;
- import com.dazzhub.Main;
- import com.dazzhub.MySQL.Utils.GamePlayer;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.configuration.Configuration;
- import org.bukkit.entity.Player;
- import java.security.SecureRandom;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.HashMap;
- public class ScoreBoardAPI {
- private Main plugin;
- private HashMap<Player, Integer> scoretask;
- public ScoreBoardAPI(Main plugin) {
- this.plugin = plugin;
- this.scoretask = new HashMap<>();
- }
- public void setScoreBoard(Player p, ScoreboardType scoreboardType) {
- removeScoreBoard(p);
- p.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
- ScoreBoardBuilder scoreboard = new ScoreBoardBuilder(randomString(8), false,false,false);
- int id = Bukkit.getScheduler().runTaskTimerAsynchronously(plugin, () -> {
- Configuration config = plugin.getConfigUtils().getConfig(plugin, "Scoreboards");
- scoreboard.setName(chars(p, config.getString(scoreboardType.toString() + ".title")));
- int line = config.getStringList(scoreboardType.toString() + ".lines").size();
- for (final String s : config.getStringList(scoreboardType.toString() + ".lines")) {
- scoreboard.lines(line, chars(p, s));
- line--;
- }
- }, 0, 20).getTaskId();
- p.setScoreboard(scoreboard.getScoreboard());
- this.scoretask.put(p, id);
- }
- public void setGameScoreboard(Player p, ScoreboardType scoreboardType, boolean health, boolean spect, boolean gamePlayers, Arena arena) {
- removeScoreBoard(p);
- p.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
- ScoreBoardBuilder scoreboard = new ScoreBoardBuilder(randomString(8), health, spect, gamePlayers);
- int id = Bukkit.getScheduler().runTaskTimerAsynchronously(plugin, () -> {
- Configuration config = plugin.getConfigUtils().getConfig(plugin, "Scoreboards");
- scoreboard.setName(charsArena(p, arena, config.getString(scoreboardType.toString() + ".title")));
- int line = config.getStringList(scoreboardType.toString() + ".lines").size();
- for (final String s : config.getStringList(scoreboardType.toString() + ".lines")) {
- scoreboard.lines(line, charsArena(p, arena, s));
- line--;
- }
- if (health) scoreboard.updatelife(arena);
- if (spect) scoreboard.updatespect(arena);
- if (gamePlayers) scoreboard.updategames(arena);
- }, 0, 20).getTaskId();
- p.setScoreboard(scoreboard.getScoreboard());
- this.scoretask.put(p, id);
- }
- public void removeScoreBoard(Player p) {
- p.setScoreboard(Bukkit.getServer().getScoreboardManager().getNewScoreboard());
- if (this.scoretask.containsKey(p)) Bukkit.getScheduler().cancelTask(this.scoretask.get(p));
- }
- private String charsArena(Player p, Arena arena, String c) {
- String transformed = (ChatColor.translateAlternateColorCodes('&', c)
- .replaceAll("%date%", getDate())
- .replaceAll("%online%", String.valueOf(arena.getPlayers().size()))
- .replaceAll("%maxPlayers%", String.valueOf(arena.getMaxPlayers()))
- .replaceAll("%map%", arena.getName())
- .replaceAll("%start%", arena.getStartingGame2())
- .replaceAll("%event%", arena.typeEvent())
- .replaceAll("%kills%", String.valueOf(arena.getKillers().get(p.getName())))
- );
- if (plugin.getPlayerManager().containsPlayer(p)) {
- GamePlayer gamePlayer = plugin.getPlayerManager().getPlayer(p);
- transformed = (transformed
- .replaceAll("%kit%", String.valueOf(gamePlayer.getKit()))
- .replaceAll("%coins%", String.valueOf(gamePlayer.getCoins()))
- );
- }
- return transformed;
- }
- private String chars(Player p, String c) {
- GamePlayer gamePlayer = plugin.getPlayerManager().getPlayer(p);
- return (ChatColor.translateAlternateColorCodes('&', c)
- .replaceAll("%date%", getDate())
- .replaceAll("%wins%", String.valueOf(gamePlayer.getWins()))
- .replaceAll("%kills%", String.valueOf(gamePlayer.getKills()))
- .replaceAll("%deaths%", String.valueOf(gamePlayer.getDeaths()))
- .replaceAll("%hits%", String.valueOf(gamePlayer.getShots()))
- .replaceAll("%kit%", gamePlayer.getKit().replace("none", plugin.getLang().getString("Messages.MySQL.Kit")))
- .replaceAll("%player%", String.valueOf(gamePlayer.getPlayer()))
- .replaceAll("%coins%", String.valueOf(gamePlayer.getCoins()))
- );
- }
- private String getDate() {
- return new SimpleDateFormat("MM/dd/yy").format(new Date());
- }
- private String randomString(int length) {
- String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- SecureRandom rnd = new SecureRandom();
- StringBuilder sb = new StringBuilder(length);
- for (int i = 0; i < length; i++)
- sb.append(AB.charAt(rnd.nextInt(AB.length())));
- return sb.toString();
- }
- private String c(String c) {
- return ChatColor.translateAlternateColorCodes('&', c);
- }
- public enum ScoreboardType {
- LOBBY, STARTING, INGAME
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement