1
0
mirror of https://e.coding.net/circlecloud/PvPTitles.git synced 2025-11-24 21:36:20 +00:00

数据部分添加完成...

Signed-off-by: 502647092 <jtb1@163.com>
This commit is contained in:
502647092
2015-12-29 22:50:13 +08:00
parent e43e20debb
commit 215d8164b5
3 changed files with 41 additions and 30 deletions

View File

@@ -14,10 +14,12 @@ import org.bukkit.configuration.file.YamlConfiguration;
public class DatabaseHandler { public class DatabaseHandler {
private final PvPTitles pvpTitles; private final PvPTitles pvpTitles;
private int Fame; private int Fame;
private int Points;
private final Map<Integer, String> rankList; private final Map<Integer, String> rankList;
private final Map<Integer, Integer> reqFame; private final Map<Integer, Integer> reqFame;
public ChatColor PrefixColor; public ChatColor PrefixColor;
private String tag; private String tag;
private String ptag;
public DatabaseHandler(final PvPTitles pvpTitles) { public DatabaseHandler(final PvPTitles pvpTitles) {
this.rankList = new HashMap<Integer, String>(); this.rankList = new HashMap<Integer, String>();
@@ -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() { public String getTag() {
return this.tag; 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()) final File file = new File((new StringBuilder())
.append(this.pvpTitles.getDataFolder()) .append(this.pvpTitles.getDataFolder())
.append(File.separator) .append(File.separator)
@@ -84,13 +98,9 @@ public class DatabaseHandler {
.append(playername) .append(playername)
.append(".yml") .append(".yml")
.toString()); .toString());
final FileConfiguration config = YamlConfiguration.loadConfiguration(file); final FileConfiguration config = YamlConfiguration.loadConfiguration(file);
this.Fame = config.getInt("Fame"); this.Fame = config.getInt("Fame");
} this.Points = config.getInt("Points");
public int PlayerFame() {
return this.Fame;
} }
public Map<Integer, String> RankList() { public Map<Integer, String> 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()) final File file = new File((new StringBuilder())
.append(this.pvpTitles.getDataFolder()) .append(this.pvpTitles.getDataFolder())
.append(File.separator) .append(File.separator)
@@ -154,7 +164,7 @@ public class DatabaseHandler {
} }
} }
final FileConfiguration config = YamlConfiguration.loadConfiguration(file); final FileConfiguration config = YamlConfiguration.loadConfiguration(file);
config.set("Fame", fame); config.set(path, fame);
try { try {
config.save(file); config.save(file);
} catch (final Exception e) { } 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) { private void GetPrefixColor(final String color) {
this.PrefixColor = ChatColor.valueOf(color.toUpperCase()); this.PrefixColor = ChatColor.valueOf(color.toUpperCase());
} }

View File

@@ -29,7 +29,6 @@ public class HandlePlayerPrefix implements Listener {
@EventHandler @EventHandler
public void onKill(final PlayerDeathEvent death) { public void onKill(final PlayerDeathEvent death) {
int kills = 0; int kills = 0;
if (death.getEntity().getKiller() != null) { if (death.getEntity().getKiller() != null) {
final String killed = death.getEntity().getName(); final String killed = death.getEntity().getName();
final Player player = death.getEntity().getKiller(); final Player player = death.getEntity().getKiller();
@@ -40,14 +39,11 @@ public class HandlePlayerPrefix implements Listener {
if (this.map.containsKey(killed)) { if (this.map.containsKey(killed)) {
this.map.put(killed, 0); this.map.put(killed, 0);
} }
this.databaseHandler.LoadPlayerData(player.getName());
this.databaseHandler.LoadPlayerFame(player.getName()); final int fame = this.databaseHandler.getFame();
final int fame = this.databaseHandler.PlayerFame();
if (!player.getName().equalsIgnoreCase(killed)) { if (!player.getName().equalsIgnoreCase(killed)) {
this.calculateFame(killed, player, fame, kills); this.calculateFame(killed, player, fame, kills);
} }
kills++; kills++;
this.map.put(player.getName(), kills); this.map.put(player.getName(), kills);
} }
@@ -56,12 +52,9 @@ public class HandlePlayerPrefix implements Listener {
@EventHandler @EventHandler
public void onPlayerChat(final AsyncPlayerChatEvent event) { public void onPlayerChat(final AsyncPlayerChatEvent event) {
String rank = null; String rank = null;
this.databaseHandler.LoadPlayerData(event.getPlayer().getName());
this.databaseHandler.LoadPlayerFame(event.getPlayer().getName());
this.databaseHandler.LoadConfig(); this.databaseHandler.LoadConfig();
rank = this.ranks.GetRank(this.databaseHandler.getFame());
rank = this.ranks.GetRank(this.databaseHandler.PlayerFame());
if (rank != null && rank != "") { if (rank != null && rank != "") {
final String a = String.format(ChatColor.WHITE + "[" + this.databaseHandler.PrefixColor + rank + ChatColor.WHITE + "] "); final String a = String.format(ChatColor.WHITE + "[" + this.databaseHandler.PrefixColor + rank + ChatColor.WHITE + "] ");
final String format = event.getFormat(); final String format = event.getFormat();
@@ -83,29 +76,25 @@ public class HandlePlayerPrefix implements Listener {
@EventHandler @EventHandler
public void onPlayerQuit(final PlayerQuitEvent event) { public void onPlayerQuit(final PlayerQuitEvent event) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
this.map.put(player.getName(), 0); this.map.put(player.getName(), 0);
} }
private void calculateFame(final String killed, final Player player, int fame, final int kills) { 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(); final String tag = this.databaseHandler.getTag();
if (kills == 0) { if (kills == 0) {
fame++; fame++;
player.sendMessage(ChatColor.GREEN + "You killed " + killed + " and received 1 " + tag + "."); player.sendMessage(ChatColor.GREEN + "你击杀了 " + killed + " 获得一点 " + tag + ".");
}
if (kills >= 1) {
fame = fame + 1;
player.sendMessage(ChatColor.GREEN + "You killed " + killed + " and received 1 " + tag + ".");
} }
this.databaseHandler.LoadPlayerData(player.getName());
this.databaseHandler.SavePlayerPoint(player.getName(), databaseHandler.getPoints() + 1);
this.databaseHandler.SavePlayerFame(player.getName(), fame); this.databaseHandler.SavePlayerFame(player.getName(), fame);
this.databaseHandler.LoadPlayerFame(player.getName());
final String currentRank = this.ranks.GetRank(a); final String currentRank = this.ranks.GetRank(a);
final String newRank = this.ranks.GetRank(fame); final String newRank = this.ranks.GetRank(fame);
if (!currentRank.equalsIgnoreCase(newRank)) { if (!currentRank.equalsIgnoreCase(newRank)) {
player.sendMessage(ChatColor.GREEN + "Congrats! You are now a " + newRank); player.sendMessage(ChatColor.GREEN + "恭喜! 您已晋升为 " + newRank);
} }
} }
} }

View File

@@ -31,9 +31,9 @@ public class RankCommand implements CommandExecutor {
} }
private void HandleRankCmd(final Player player) { private void HandleRankCmd(final Player player) {
this.databaseHandler.LoadPlayerFame(player.getName()); this.databaseHandler.LoadPlayerData(player.getName());
this.databaseHandler.LoadConfig(); this.databaseHandler.LoadConfig();
final int fame = this.databaseHandler.PlayerFame(); final int fame = this.databaseHandler.getFame();
final String rank = this.ranks.GetRank(fame); final String rank = this.ranks.GetRank(fame);
final int rankup = this.ranks.FameToRankUp(); final int rankup = this.ranks.FameToRankUp();
final String tag = this.databaseHandler.getTag(); final String tag = this.databaseHandler.getTag();