diff --git a/src/main/java/com/gmail/mikeundead/DatabaseHandler.java b/src/main/java/com/gmail/mikeundead/DatabaseHandler.java index dbd69f1..16f8f15 100644 --- a/src/main/java/com/gmail/mikeundead/DatabaseHandler.java +++ b/src/main/java/com/gmail/mikeundead/DatabaseHandler.java @@ -14,10 +14,12 @@ import org.bukkit.configuration.file.YamlConfiguration; public class DatabaseHandler { private final PvPTitles pvpTitles; private int Fame; + private int Points; private final Map rankList; private final Map reqFame; public ChatColor PrefixColor; private String tag; + private String ptag; public DatabaseHandler(final PvPTitles pvpTitles) { this.rankList = new HashMap(); @@ -50,6 +52,18 @@ public class DatabaseHandler { } } + public int getFame() { + return this.Fame; + } + + public int getPoints() { + return Points; + } + + public String getPtag() { + return ptag; + } + public String getTag() { return this.tag; } @@ -75,7 +89,7 @@ public class DatabaseHandler { } } - public void LoadPlayerFame(final String playername) { + public void LoadPlayerData(final String playername) { final File file = new File((new StringBuilder()) .append(this.pvpTitles.getDataFolder()) .append(File.separator) @@ -84,13 +98,9 @@ public class DatabaseHandler { .append(playername) .append(".yml") .toString()); - final FileConfiguration config = YamlConfiguration.loadConfiguration(file); this.Fame = config.getInt("Fame"); - } - - public int PlayerFame() { - return this.Fame; + this.Points = config.getInt("Points"); } public Map RankList() { @@ -136,7 +146,7 @@ public class DatabaseHandler { } } - public void SavePlayerFame(final String playername, final int fame) { + public void SavePlayerData(final String playername, final String path, final int fame) { final File file = new File((new StringBuilder()) .append(this.pvpTitles.getDataFolder()) .append(File.separator) @@ -154,7 +164,7 @@ public class DatabaseHandler { } } final FileConfiguration config = YamlConfiguration.loadConfiguration(file); - config.set("Fame", fame); + config.set(path, fame); try { config.save(file); } catch (final Exception e) { @@ -162,6 +172,18 @@ public class DatabaseHandler { } } + public void SavePlayerFame(final String playername, final int fame) { + SavePlayerData(playername, "Fame", fame); + } + + public void SavePlayerPoint(final String playername, final int fame) { + SavePlayerData(playername, "Points", fame); + } + + public void setPoints(final int points) { + Points = points; + } + private void GetPrefixColor(final String color) { this.PrefixColor = ChatColor.valueOf(color.toUpperCase()); } diff --git a/src/main/java/com/gmail/mikeundead/HandlePlayerPrefix.java b/src/main/java/com/gmail/mikeundead/HandlePlayerPrefix.java index 463ad0b..0f46583 100644 --- a/src/main/java/com/gmail/mikeundead/HandlePlayerPrefix.java +++ b/src/main/java/com/gmail/mikeundead/HandlePlayerPrefix.java @@ -29,7 +29,6 @@ public class HandlePlayerPrefix implements Listener { @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(); @@ -40,14 +39,11 @@ public class HandlePlayerPrefix implements Listener { if (this.map.containsKey(killed)) { this.map.put(killed, 0); } - - this.databaseHandler.LoadPlayerFame(player.getName()); - final int fame = this.databaseHandler.PlayerFame(); - + this.databaseHandler.LoadPlayerData(player.getName()); + final int fame = this.databaseHandler.getFame(); if (!player.getName().equalsIgnoreCase(killed)) { this.calculateFame(killed, player, fame, kills); } - kills++; this.map.put(player.getName(), kills); } @@ -56,12 +52,9 @@ public class HandlePlayerPrefix implements Listener { @EventHandler public void onPlayerChat(final AsyncPlayerChatEvent event) { String rank = null; - - this.databaseHandler.LoadPlayerFame(event.getPlayer().getName()); + this.databaseHandler.LoadPlayerData(event.getPlayer().getName()); this.databaseHandler.LoadConfig(); - - rank = this.ranks.GetRank(this.databaseHandler.PlayerFame()); - + rank = this.ranks.GetRank(this.databaseHandler.getFame()); if (rank != null && rank != "") { final String a = String.format(ChatColor.WHITE + "[" + this.databaseHandler.PrefixColor + rank + ChatColor.WHITE + "] "); final String format = event.getFormat(); @@ -83,29 +76,25 @@ public class HandlePlayerPrefix implements Listener { @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 int a = this.databaseHandler.getFame(); 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 + "."); + player.sendMessage(ChatColor.GREEN + "你击杀了 " + killed + " 获得一点 " + tag + "."); } + this.databaseHandler.LoadPlayerData(player.getName()); + this.databaseHandler.SavePlayerPoint(player.getName(), databaseHandler.getPoints() + 1); 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); + player.sendMessage(ChatColor.GREEN + "恭喜! 您已晋升为 " + newRank); } } } \ No newline at end of file diff --git a/src/main/java/com/gmail/mikeundead/RankCommand.java b/src/main/java/com/gmail/mikeundead/RankCommand.java index 0c49eb4..3a479ad 100644 --- a/src/main/java/com/gmail/mikeundead/RankCommand.java +++ b/src/main/java/com/gmail/mikeundead/RankCommand.java @@ -31,9 +31,9 @@ public class RankCommand implements CommandExecutor { } private void HandleRankCmd(final Player player) { - this.databaseHandler.LoadPlayerFame(player.getName()); + this.databaseHandler.LoadPlayerData(player.getName()); this.databaseHandler.LoadConfig(); - final int fame = this.databaseHandler.PlayerFame(); + final int fame = this.databaseHandler.getFame(); final String rank = this.ranks.GetRank(fame); final int rankup = this.ranks.FameToRankUp(); final String tag = this.databaseHandler.getTag();