package com.gmail.mikeundead; import java.util.HashMap; import java.util.Map; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerQuitEvent; public class HandlePlayerPrefix implements Listener { private final DatabaseHandler databaseHandler; private final Ranks ranks; @SuppressWarnings("unused") private final PvPTitles pvpTitles; Map map = new HashMap(); public HandlePlayerPrefix(final DatabaseHandler databaseHandler, final Ranks ranks, final PvPTitles pvpTitles) { this.databaseHandler = databaseHandler; this.ranks = ranks; this.pvpTitles = pvpTitles; } @EventHandler public void onKill(final PlayerDeathEvent death) { int kills = 0; if (death.getEntity().getKiller() != null) { final String killed = death.getEntity().getName(); final Player player = death.getEntity().getKiller(); if (this.map.containsKey(player.getName())) { kills = this.map.get(player.getName()); } if (this.map.containsKey(killed)) { this.map.put(killed, 0); } this.databaseHandler.LoadPlayerFame(player.getName()); final int fame = this.databaseHandler.PlayerFame(); if (!player.getName().equalsIgnoreCase(killed)) { this.calculateFame(killed, player, fame, kills); } kills++; this.map.put(player.getName(), kills); } } @EventHandler public void onPlayerChat(final AsyncPlayerChatEvent event) { String rank = null; this.databaseHandler.LoadPlayerFame(event.getPlayer().getName()); this.databaseHandler.LoadConfig(); rank = this.ranks.GetRank(this.databaseHandler.PlayerFame()); if (rank != null && rank != "") { final String a = String.format(ChatColor.WHITE + "[" + this.databaseHandler.PrefixColor + rank + ChatColor.WHITE + "] "); final String format = event.getFormat(); event.setFormat(a + format); } } @EventHandler public void onPlayerLogin(final PlayerLoginEvent event) { final Player player = event.getPlayer(); try { this.databaseHandler.FirstRun(player.getName()); } catch (final Exception e) { e.printStackTrace(); } } @EventHandler public void onPlayerQuit(final PlayerQuitEvent event) { final Player player = event.getPlayer(); this.map.put(player.getName(), 0); } private void calculateFame(final String killed, final Player player, int fame, final int kills) { final int a = this.databaseHandler.PlayerFame(); final String tag = this.databaseHandler.getTag(); if (kills == 0) { fame++; player.sendMessage(ChatColor.GREEN + "You killed " + killed + " and received 1 " + tag + "."); } if (kills >= 1) { fame = fame + 1; player.sendMessage(ChatColor.GREEN + "You killed " + killed + " and received 1 " + tag + "."); } this.databaseHandler.SavePlayerFame(player.getName(), fame); this.databaseHandler.LoadPlayerFame(player.getName()); final String currentRank = this.ranks.GetRank(a); final String newRank = this.ranks.GetRank(fame); if (!currentRank.equalsIgnoreCase(newRank)) { player.sendMessage(ChatColor.GREEN + "Congrats! You are now a " + newRank); } } }