/* This file is a part of the SteamWar software. Copyright (C) 2020 SteamWar.de-Serverteam This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package de.steamwar.misslewars; import de.steamwar.scoreboard.SWScoreboard; import de.steamwar.scoreboard.ScoreboardCallback; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Scoreboard; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.Objects; /** * Modified Version of the Fight-System Scoreboard */ class FightScoreboard implements Listener { public FightScoreboard() { Bukkit.getPluginManager().registerEvents(this, MissileWars.getPlugin()); } private static final Scoreboard scoreboard = Objects.requireNonNull(Bukkit.getScoreboardManager()).getMainScoreboard(); private static long startTime = 0; public static long getStartTime() { return startTime; } @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { SWScoreboard.impl.createScoreboard(event.getPlayer(), new ScoreboardCallback() { @Override public String getTitle() { return "§eMissileWars"; } @Override public HashMap getData() { HashMap data = new HashMap<>(); data.put("§eSpielzeit", 5); if (startTime == 0) { data.put("§7??:??:??", 4); } else { long current_time = System.currentTimeMillis() - startTime; data.put(String.format("§7%02d:%02d", current_time / 60000, (current_time / 1000) % 60), 4); } data.put("", 3); data.put("§eSpieler", 2); MissileWars.getBlueTeam().teamScoreboard(data); MissileWars.getRedTeam().teamScoreboard(data); return data; } }); } @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { SWScoreboard.impl.removeScoreboard(event.getPlayer()); } static Scoreboard getScoreboard() { return scoreboard; } static void startTime() { startTime = System.currentTimeMillis(); } }