Break up saveBendingPlayer

Now saves as you edit the stuff that needs to be saved instead of saving
all at once as you logout.
This commit is contained in:
MistPhizzle 2014-08-23 21:49:52 -04:00
parent 4eb66de9f7
commit a0a3b63a1c
4 changed files with 54 additions and 20 deletions

View file

@ -102,6 +102,9 @@ public class Commands {
BendingPlayer bPlayer = Methods.getBendingPlayer(s.getName());
if (args.length == 1) {
bPlayer.abilities.clear();
for (int i = 1; i <= 9; i++) {
Methods.saveAbility(bPlayer, i, null);
}
s.sendMessage("Your bound abilities have been cleared.");
return true;
}
@ -114,6 +117,7 @@ public class Commands {
}
if (bPlayer.abilities.get(slot) != null) {
bPlayer.abilities.remove(slot);
Methods.saveAbility(bPlayer, slot, null);
}
s.sendMessage("You have cleared slot #" + slot);
return true;
@ -650,6 +654,7 @@ public class Commands {
BendingPlayer bPlayer = Methods.getBendingPlayer(player.getName());
Methods.removeUnusableAbilities(player.getName());
bPlayer.elements.clear();
Methods.saveElements(bPlayer);
s.sendMessage(ChatColor.GREEN + "You have removed the bending of " + ChatColor.DARK_AQUA + player.getName());
player.sendMessage(ChatColor.GREEN + "Your bending has been removed by " + ChatColor.DARK_AQUA + s.getName());
return true;
@ -677,7 +682,9 @@ public class Commands {
BendingPlayer bPlayer = Methods.getBendingPlayer(player.getName());
bPlayer.elements.clear();
Methods.removeUnusableAbilities(player.getName());
Methods.saveElements(bPlayer);
bPlayer.permaRemoved = true;
Methods.savePermaRemoved(bPlayer);
player.sendMessage(ChatColor.RED + "Your bending has been permanently removed.");
s.sendMessage(ChatColor.RED + "You have permanently removed the bending of: " + ChatColor.DARK_AQUA + player.getName());
return true;
@ -704,6 +711,7 @@ public class Commands {
BendingPlayer bPlayer = Methods.getBendingPlayer(player.getName());
if (Arrays.asList(airaliases).contains(args[2].toLowerCase())) {
bPlayer.addElement(Element.Air);
Methods.saveElements(bPlayer);
player.sendMessage(Methods.getAirColor() + "You are also an Airbender.");
s.sendMessage(ChatColor.DARK_AQUA + player.getName() + Methods.getAirColor() + " is also an Airbender.");
return true;
@ -711,6 +719,7 @@ public class Commands {
if (Arrays.asList(wateraliases).contains(args[2].toLowerCase())) {
bPlayer.addElement(Element.Water);
Methods.saveElements(bPlayer);
player.sendMessage(Methods.getWaterColor() + "You are also a waterbender.");
s.sendMessage(ChatColor.DARK_AQUA + player.getName() + Methods.getWaterColor() + " is also a Waterbender.");
return true;
@ -718,6 +727,7 @@ public class Commands {
if (Arrays.asList(earthaliases).contains(args[2].toLowerCase())) {
bPlayer.addElement(Element.Earth);
Methods.saveElements(bPlayer);
player.sendMessage(Methods.getEarthColor() + "You are also an Earthbender.");
s.sendMessage(ChatColor.DARK_AQUA + player.getName() + Methods.getEarthColor() + " is also an Earthbender.");
return true;
@ -725,12 +735,14 @@ public class Commands {
if (Arrays.asList(firealiases).contains(args[2].toLowerCase())) {
bPlayer.addElement(Element.Fire);
Methods.saveElements(bPlayer);
player.sendMessage(Methods.getFireColor() + "You are also a Firebender.");
s.sendMessage(ChatColor.DARK_AQUA + player.getName() + Methods.getFireColor() + " is also a Firebender");
return true;
}
if (Arrays.asList(chialiases).contains(args[2].toLowerCase())) {
bPlayer.addElement(Element.Chi);
Methods.saveElements(bPlayer);
player.sendMessage(Methods.getChiColor() + "You are also a ChiBlocker.");
s.sendMessage(ChatColor.DARK_AQUA + player.getName() + Methods.getChiColor() + " is also a ChiBlocker");
return true;
@ -755,29 +767,34 @@ public class Commands {
if (Arrays.asList(airaliases).contains(args[1].toLowerCase())) {
bPlayer.addElement(Element.Air);
Methods.saveElements(bPlayer);
s.sendMessage(Methods.getAirColor() + "You are also an airbender.");
return true;
}
if (Arrays.asList(wateraliases).contains(args[1].toLowerCase())) {
bPlayer.addElement(Element.Water);
Methods.saveElements(bPlayer);
s.sendMessage(Methods.getWaterColor() + "You are also a waterbender.");
return true;
}
if (Arrays.asList(earthaliases).contains(args[1].toLowerCase())) {
bPlayer.addElement(Element.Earth);
Methods.saveElements(bPlayer);
s.sendMessage(Methods.getEarthColor() + "You are also an Earthbender.");
return true;
}
if (Arrays.asList(firealiases).contains(args[1].toLowerCase())) {
bPlayer.addElement(Element.Fire);
Methods.saveElements(bPlayer);
s.sendMessage(Methods.getFireColor() + "You are also a Firebender.");
return true;
}
if (Arrays.asList(chialiases).contains(args[1].toLowerCase())) {
bPlayer.addElement(Element.Chi);
Methods.saveElements(bPlayer);
s.sendMessage(Methods.getChiColor() + "You are also a ChiBlocker.");
return true;
}
@ -820,30 +837,35 @@ public class Commands {
bPlayer.setElement(Element.Air);
s.sendMessage(Methods.getAirColor() + "You are now an Airbender.");
Methods.removeUnusableAbilities(s.getName());
Methods.saveElements(bPlayer);
return true;
}
if (Arrays.asList(wateraliases).contains(args[1].toLowerCase())) {
bPlayer.setElement(Element.Water);
s.sendMessage(Methods.getWaterColor() + "You are now a Waterbender.");
Methods.removeUnusableAbilities(s.getName());
Methods.saveElements(bPlayer);
return true;
}
if (Arrays.asList(earthaliases).contains(args[1].toLowerCase())) {
bPlayer.setElement(Element.Earth);
s.sendMessage(Methods.getEarthColor() + "You are now an Earthbender.");
Methods.removeUnusableAbilities(s.getName());
Methods.saveElements(bPlayer);
return true;
}
if (Arrays.asList(firealiases).contains(args[1].toLowerCase())) {
bPlayer.setElement(Element.Fire);
s.sendMessage(Methods.getFireColor() + "You are now a Firebender.");
Methods.removeUnusableAbilities(s.getName());
Methods.saveElements(bPlayer);
return true;
}
if (Arrays.asList(chialiases).contains(args[1].toLowerCase())) {
bPlayer.setElement(Element.Chi);
s.sendMessage(Methods.getChiColor() + "You are now a ChiBlocker.");
Methods.removeUnusableAbilities(s.getName());
Methods.saveElements(bPlayer);
return true;
}
s.sendMessage(ChatColor.GOLD + "Proper Usage: " + ChatColor.DARK_AQUA + "/bending choose [Element]");
@ -879,6 +901,7 @@ public class Commands {
} else {
bTarget.setElement(e);
Methods.removeUnusableAbilities(target.getName());
Methods.saveElements(bTarget);
target.sendMessage(ChatColor.RED + "Your bending has been changed to " + ChatColor.DARK_AQUA + e.toString() + ChatColor.RED + " by " + ChatColor.DARK_AQUA + s.getName());
return true;
}

View file

@ -187,6 +187,8 @@ public class Methods {
} else {
player.sendMessage(getAvatarColor() + "Successfully bound " + ability + " to slot " + slot);
}
saveAbility(bPlayer, slot, ability);
}
/**
@ -216,6 +218,8 @@ public class Methods {
} else {
player.sendMessage(getAvatarColor() + "Successfully bound " + ability + " to slot " + slot);
}
saveAbility(bPlayer, slot, ability);
}
/**
@ -1577,9 +1581,9 @@ public class Methods {
}
public static void reloadPlugin() {
for (Player player: Bukkit.getOnlinePlayers()) {
Methods.saveBendingPlayer(player.getName());
}
// for (Player player: Bukkit.getOnlinePlayers()) {
// Methods.saveBendingPlayer(player.getName());
// }
DBConnection.sql.close();
plugin.reloadConfig();
Methods.stopBending();
@ -1748,29 +1752,36 @@ public class Methods {
return rotate.multiply(Math.cos(angle)).add(
thirdaxis.multiply(Math.sin(angle)));
}
public static void saveBendingPlayer(String player) {
BendingPlayer bPlayer = BendingPlayer.players.get(player);
public static void saveElements(BendingPlayer bPlayer) {
if (bPlayer == null) return;
String uuid = bPlayer.uuid.toString();
StringBuilder elements = new StringBuilder();
if (bPlayer.hasElement(Element.Air)) elements.append("a");
if (bPlayer.hasElement(Element.Water)) elements.append("w");
if (bPlayer.hasElement(Element.Earth)) elements.append("e");
if (bPlayer.hasElement(Element.Fire)) elements.append("f");
if (bPlayer.hasElement(Element.Chi)) elements.append("c");
HashMap<Integer, String> abilities = bPlayer.abilities;
for (int i = 1; i <= 9; i++) {
DBConnection.sql.modifyQuery("UPDATE pk_players SET slot" + i +" = '" + (abilities.get(i) == null ? null : abilities.get(i)) + "' WHERE uuid = '" + uuid + "'");
}
DBConnection.sql.modifyQuery("UPDATE pk_players SET element = '" + elements + "' WHERE uuid = '" + uuid + "'");
}
public static void saveAbility(BendingPlayer bPlayer, int slot, String ability) {
if (bPlayer == null) return;
String uuid = bPlayer.uuid.toString();
HashMap<Integer, String> abilities = bPlayer.abilities;
DBConnection.sql.modifyQuery("UPDATE pk_players SET slot" + slot + " = '" + (abilities.get(slot) == null ? null : abilities.get(slot)) + "' WHERE uuid = '" + uuid + "'");
}
public static void savePermaRemoved(BendingPlayer bPlayer) {
if (bPlayer == null) return;
String uuid = bPlayer.uuid.toString();
boolean permaRemoved = bPlayer.permaRemoved;
DBConnection.sql.modifyQuery("UPDATE pk_players SET permaremoved = '" + (permaRemoved ? "true" : "false") +"' WHERE uuid = '" + uuid + "'");
DBConnection.sql.modifyQuery("UPDATE pk_players SET permaremoved = '" + (permaRemoved ? "true" : "false") + "' WHERE uuid = '" + uuid + "'");
}
public static void stopBending() {

View file

@ -304,7 +304,7 @@ public class PKListener implements Listener {
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
Methods.saveBendingPlayer(event.getPlayer().getName());
// Methods.saveBendingPlayer(event.getPlayer().getName());
BendingPlayer.players.remove(event.getPlayer().getName());
if (EarthArmor.instances.containsKey(event.getPlayer())) {
EarthArmor.removeEffect(event.getPlayer());

View file

@ -66,9 +66,9 @@ public class ProjectKorra extends JavaPlugin {
@Override
public void onDisable() {
for (Player player: Bukkit.getOnlinePlayers()) {
Methods.saveBendingPlayer(player.getName());
}
// for (Player player: Bukkit.getOnlinePlayers()) {
// Methods.saveBendingPlayer(player.getName());
// }
Methods.stopBending();
DBConnection.sql.close();
}