From 293d480e51a5bdd76bd15c6c1b049ae2f5731db7 Mon Sep 17 00:00:00 2001 From: jack lin Date: Sat, 12 Jul 2014 23:55:55 +1200 Subject: [PATCH 1/2] Added cmd list for help command. Fixed imports --- .../ProjectKorra/BendingPlayer.java | 2 - .../projectkorra/ProjectKorra/Commands.java | 41 +++++++++++-------- .../projectkorra/ProjectKorra/Element.java | 8 ++++ .../projectkorra/ProjectKorra/PKListener.java | 9 ++-- .../earthbending/EarthPassive.java | 2 - .../ProjectKorra/earthbending/Extraction.java | 2 - .../ProjectKorra/waterbending/SpikeField.java | 1 - .../waterbending/WaterManipulation.java | 2 - .../waterbending/WaterPassive.java | 3 -- 9 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/com/projectkorra/ProjectKorra/BendingPlayer.java b/src/com/projectkorra/ProjectKorra/BendingPlayer.java index c7437d91..ec9c7666 100644 --- a/src/com/projectkorra/ProjectKorra/BendingPlayer.java +++ b/src/com/projectkorra/ProjectKorra/BendingPlayer.java @@ -1,7 +1,5 @@ package com.projectkorra.ProjectKorra; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/src/com/projectkorra/ProjectKorra/Commands.java b/src/com/projectkorra/ProjectKorra/Commands.java index 25ed7066..94b3cc09 100644 --- a/src/com/projectkorra/ProjectKorra/Commands.java +++ b/src/com/projectkorra/ProjectKorra/Commands.java @@ -1,8 +1,6 @@ package com.projectkorra.ProjectKorra; import java.io.File; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -19,7 +17,6 @@ import org.bukkit.command.PluginCommand; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; import com.projectkorra.ProjectKorra.Ability.AbilityModuleManager; @@ -49,6 +46,7 @@ public class Commands { String[] reloadaliases = {"reload", "r"}; String[] addaliases = {"add", "a"}; String[] whoaliases = {"who", "w"}; + String[] importaliases = {"import", "i"}; private static int importTask; private void init() { @@ -221,7 +219,7 @@ public class Commands { return true; } } - if (args[0].equalsIgnoreCase("import")) { + if (Arrays.asList(importaliases).contains(args[0].toLowerCase())) { if (!s.hasPermission("bending.command.import")) { s.sendMessage(ChatColor.RED + "You don't have permission to do that."); return true; @@ -239,20 +237,10 @@ public class Commands { ArrayList element = new ArrayList(); List oe = bendingPlayers.getIntegerList(string + ".BendingTypes"); - if (oe.contains(0)) { - element.add(Element.Air); - } - if (oe.contains(1)) { - element.add(Element.Water); - } - if (oe.contains(2)) { - element.add(Element.Earth); - } - if (oe.contains(3)) { - element.add(Element.Fire); - } - if (oe.contains(4)) { - element.add(Element.Chi); + for (int i : oe) { + if (Element.getType(i) != null) { + element.add(Element.getType(i)); + } } BendingPlayer bPlayer = new BendingPlayer(uuid, playername, element, new HashMap(), false); @@ -788,12 +776,29 @@ public class Commands { if (Arrays.asList(helpaliases).contains(args[0].toLowerCase())) { if (args.length != 2) { s.sendMessage(ChatColor.GOLD + "Proper Usage: /bending help Command/Ability"); + s.sendMessage(ChatColor.YELLOW + "/bending add [Element]"); + s.sendMessage(ChatColor.YELLOW + "/bending bind [Ability] "); + s.sendMessage(ChatColor.YELLOW + "/bending clear "); + s.sendMessage(ChatColor.YELLOW + "/bending choose [Element]"); + s.sendMessage(ChatColor.YELLOW + "/bending display "); + s.sendMessage(ChatColor.YELLOW + "/bending import"); + s.sendMessage(ChatColor.YELLOW + "/bending permaremove "); + s.sendMessage(ChatColor.YELLOW + "/bending remove [Player]"); + s.sendMessage(ChatColor.YELLOW + "/bending toggle"); + s.sendMessage(ChatColor.YELLOW + "/bending version"); return true; } if (!s.hasPermission("bending.command.help")) { s.sendMessage(ChatColor.RED + "You don't have permission to do that."); return true; } + if (Arrays.asList(importaliases).contains(args[1].toLowerCase())) { + s.sendMessage(ChatColor.GOLD + "Proper Usage: " + ChatColor.DARK_AQUA + "/bending import"); + s.sendMessage(ChatColor.YELLOW + "This command will import your old bendingPlayers.yml from the Bending plugin." + + " It will generate a convert.yml file to convert the data to be used with this plugin." + + " You can delete the file once the complete message is displayed" + + " This command should only be used ONCE."); + } if (Arrays.asList(displayaliases).contains(args[1].toLowerCase())) { s.sendMessage(ChatColor.GOLD + "Proper Usage: " + ChatColor.DARK_AQUA + "/bending display "); s.sendMessage(ChatColor.YELLOW + "This command will show you all of the elements you have bound if you do not specify an element." diff --git a/src/com/projectkorra/ProjectKorra/Element.java b/src/com/projectkorra/ProjectKorra/Element.java index 5c7c6142..027ba20c 100644 --- a/src/com/projectkorra/ProjectKorra/Element.java +++ b/src/com/projectkorra/ProjectKorra/Element.java @@ -1,5 +1,7 @@ package com.projectkorra.ProjectKorra; +import java.util.Arrays; + public enum Element { Air, Water, Earth, Fire, Chi; @@ -12,4 +14,10 @@ public enum Element { } return null; } + + public static Element getType(int index) { + if (index == -1) + return null; + return (Element)Arrays.asList(values()).get(index); + } } diff --git a/src/com/projectkorra/ProjectKorra/PKListener.java b/src/com/projectkorra/ProjectKorra/PKListener.java index 01f38aeb..353e3a1e 100644 --- a/src/com/projectkorra/ProjectKorra/PKListener.java +++ b/src/com/projectkorra/ProjectKorra/PKListener.java @@ -3,7 +3,6 @@ package com.projectkorra.ProjectKorra; import java.util.ArrayList; import java.util.List; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; @@ -907,7 +906,7 @@ public class PKListener implements Listener { player.setAllowFlight(true); AirBurst.fallBurst(player); player.setFallDistance(0); - event.setDamage(0); + event.setDamage(0D); event.setCancelled(true); } @@ -916,7 +915,7 @@ public class PKListener implements Listener { new Flight(player); player.setAllowFlight(true); player.setFallDistance(0); - event.setDamage(0); + event.setDamage(0D); event.setCancelled(true); } } @@ -929,7 +928,7 @@ public class PKListener implements Listener { new Flight(player); player.setAllowFlight(true); player.setFallDistance(0); - event.setDamage(0); + event.setDamage(0D); event.setCancelled(true); } } @@ -960,7 +959,7 @@ public class PKListener implements Listener { if (Methods.isBender(player.getName(), Element.Earth) && event.getCause() == DamageCause.SUFFOCATION && TempBlock.isTempBlock(player.getEyeLocation().getBlock())) { - event.setDamage(0); + event.setDamage(0D); event.setCancelled(true); } } diff --git a/src/com/projectkorra/ProjectKorra/earthbending/EarthPassive.java b/src/com/projectkorra/ProjectKorra/earthbending/EarthPassive.java index 365a6162..f6d59fb1 100644 --- a/src/com/projectkorra/ProjectKorra/earthbending/EarthPassive.java +++ b/src/com/projectkorra/ProjectKorra/earthbending/EarthPassive.java @@ -3,13 +3,11 @@ package com.projectkorra.ProjectKorra.earthbending; import java.util.concurrent.ConcurrentHashMap; import org.bukkit.Bukkit; -import org.bukkit.Effect; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; -import org.bukkit.material.Door; import com.projectkorra.ProjectKorra.Element; import com.projectkorra.ProjectKorra.Methods; diff --git a/src/com/projectkorra/ProjectKorra/earthbending/Extraction.java b/src/com/projectkorra/ProjectKorra/earthbending/Extraction.java index 18e19147..4f817de3 100644 --- a/src/com/projectkorra/ProjectKorra/earthbending/Extraction.java +++ b/src/com/projectkorra/ProjectKorra/earthbending/Extraction.java @@ -1,11 +1,9 @@ package com.projectkorra.ProjectKorra.earthbending; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; import java.util.Random; -import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; diff --git a/src/com/projectkorra/ProjectKorra/waterbending/SpikeField.java b/src/com/projectkorra/ProjectKorra/waterbending/SpikeField.java index 37e8e000..80498c2b 100644 --- a/src/com/projectkorra/ProjectKorra/waterbending/SpikeField.java +++ b/src/com/projectkorra/ProjectKorra/waterbending/SpikeField.java @@ -6,7 +6,6 @@ import java.util.List; import java.util.Map; import java.util.Random; -import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; diff --git a/src/com/projectkorra/ProjectKorra/waterbending/WaterManipulation.java b/src/com/projectkorra/ProjectKorra/waterbending/WaterManipulation.java index d967a9d0..29e0b1c6 100644 --- a/src/com/projectkorra/ProjectKorra/waterbending/WaterManipulation.java +++ b/src/com/projectkorra/ProjectKorra/waterbending/WaterManipulation.java @@ -6,11 +6,9 @@ import java.util.HashSet; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.bukkit.Bukkit; import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; diff --git a/src/com/projectkorra/ProjectKorra/waterbending/WaterPassive.java b/src/com/projectkorra/ProjectKorra/waterbending/WaterPassive.java index 769af69e..fff41051 100644 --- a/src/com/projectkorra/ProjectKorra/waterbending/WaterPassive.java +++ b/src/com/projectkorra/ProjectKorra/waterbending/WaterPassive.java @@ -1,8 +1,5 @@ package com.projectkorra.ProjectKorra.waterbending; -import java.util.ArrayList; -import java.util.List; - import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Block; From 6bad38cc189484178cddc843d078f0b65863f3e6 Mon Sep 17 00:00:00 2001 From: jack lin Date: Sun, 13 Jul 2014 02:17:26 +1200 Subject: [PATCH 2/2] Updated importer to add slot abilities --- .../ProjectKorra/Ability/StockAbilities.java | 16 ++++++- .../projectkorra/ProjectKorra/Commands.java | 31 ++++++++++-- .../projectkorra/ProjectKorra/Methods.java | 47 +++++++++---------- 3 files changed, 62 insertions(+), 32 deletions(-) diff --git a/src/com/projectkorra/ProjectKorra/Ability/StockAbilities.java b/src/com/projectkorra/ProjectKorra/Ability/StockAbilities.java index dc5b985c..c51dbda7 100644 --- a/src/com/projectkorra/ProjectKorra/Ability/StockAbilities.java +++ b/src/com/projectkorra/ProjectKorra/Ability/StockAbilities.java @@ -1,10 +1,13 @@ package com.projectkorra.ProjectKorra.Ability; +import java.util.Arrays; + public enum StockAbilities { + // Old Bending AirBlast, AirBubble, AirShield, AirSuction, AirSwipe, Tornado, AirScooter, AirSpout, AirBurst, - Catapult, RaiseEarth, EarthGrab, EarthTunnel, EarthBlast, Collapse, Tremorsense, EarthArmor, Shockwave, Extraction, + Catapult, RaiseEarth, EarthGrab, EarthTunnel, EarthBlast, Collapse, Tremorsense, EarthArmor, Shockwave, HeatControl, Blaze, FireJet, Illumination, WallOfFire, FireBlast, Lightning, FireBurst, FireShield, @@ -12,7 +15,10 @@ public enum StockAbilities { HighJump, RapidPunch, Paralyze, - AvatarState; + AvatarState, + + // Project Korra + Extraction; private enum AirbendingAbilities { AirBlast, AirBubble, AirShield, AirSuction, AirSwipe, Tornado, AirScooter, AirSpout, AirBurst; @@ -69,4 +75,10 @@ public enum StockAbilities { return false; } + + public static StockAbilities getAbility(int index) { + if (index == -1) + return null; + return (StockAbilities)Arrays.asList(values()).get(index); + } } diff --git a/src/com/projectkorra/ProjectKorra/Commands.java b/src/com/projectkorra/ProjectKorra/Commands.java index 94b3cc09..164289ad 100644 --- a/src/com/projectkorra/ProjectKorra/Commands.java +++ b/src/com/projectkorra/ProjectKorra/Commands.java @@ -17,8 +17,10 @@ import org.bukkit.command.PluginCommand; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitTask; import com.projectkorra.ProjectKorra.Ability.AbilityModuleManager; +import com.projectkorra.ProjectKorra.Ability.StockAbilities; public class Commands { @@ -48,7 +50,7 @@ public class Commands { String[] whoaliases = {"who", "w"}; String[] importaliases = {"import", "i"}; - private static int importTask; + private static BukkitTask importTask; private void init() { PluginCommand projectkorra = plugin.getCommand("projectkorra"); CommandExecutor exe; @@ -236,21 +238,35 @@ public class Commands { UUID uuid = Bukkit.getOfflinePlayer(playername).getUniqueId(); ArrayList element = new ArrayList(); List oe = bendingPlayers.getIntegerList(string + ".BendingTypes"); + HashMap abilities = new HashMap(); + List oa = bendingPlayers.getIntegerList(string + ".SlotAbilities"); + boolean permaremoved = bendingPlayers.getBoolean(string + ".Permaremoved"); + int slot = 1; + for (int i : oa) { + if (StockAbilities.getAbility(i) != null) { + abilities.put(slot, StockAbilities.getAbility(i).toString()); + slot++; + } else { + abilities.put(slot, null); + slot++; + } + } + for (int i : oe) { if (Element.getType(i) != null) { element.add(Element.getType(i)); } } - BendingPlayer bPlayer = new BendingPlayer(uuid, playername, element, new HashMap(), false); + BendingPlayer bPlayer = new BendingPlayer(uuid, playername, element, abilities, permaremoved); bPlayers.add(bPlayer); } final int total = bPlayers.size(); final CommandSender sender = s; s.sendMessage(ChatColor.GREEN + "Import of data started. Do NOT stop / reload your server."); - importTask = Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() { + importTask = Bukkit.getServer().getScheduler().runTaskTimerAsynchronously(plugin, new Runnable() { public void run() { int i = 0; if (i >= 10) { @@ -261,7 +277,7 @@ public class Commands { while (i < 10) { if (bPlayers.isEmpty()) { sender.sendMessage(ChatColor.GREEN + "Import complete, it may be best to reload your server."); - Bukkit.getServer().getScheduler().cancelTask(importTask); + Bukkit.getServer().getScheduler().cancelTask(importTask.getTaskId()); for (Player player: Bukkit.getOnlinePlayers()) { Methods.createBendingPlayer(player.getUniqueId(), player.getName()); } @@ -275,7 +291,12 @@ public class Commands { if (bPlayer.hasElement(Element.Fire)) elements.append("f"); if (bPlayer.hasElement(Element.Chi)) elements.append("c"); - DBConnection.sql.modifyQuery("INSERT INTO pk_players (uuid, player, element, permaremoved) VALUES ('" + bPlayer.uuid.toString() + "', '" + bPlayer.player + "', '" + elements + "', 'false')"); + HashMap abilities = bPlayer.abilities; + + DBConnection.sql.modifyQuery("INSERT INTO pk_players (uuid, player, element, permaremoved) VALUES ('" + bPlayer.uuid.toString() + "', '" + bPlayer.player + "', '" + elements + "', '" + bPlayer.isPermaRemoved() +"')"); + for (int slot = 1; slot < 10; slot++) { + DBConnection.sql.modifyQuery("UPDATE pk_players SET slot" + slot + " = '" + abilities.get(slot) + "' WHERE player = '" + bPlayer.getPlayerName() + "'"); + } // ResultSet rs2 = DBConnection.sql.readQuery("SELECT * FROM pk_players WHERE uuid = '" + bPlayer.uuid.toString() + "'"); // try { diff --git a/src/com/projectkorra/ProjectKorra/Methods.java b/src/com/projectkorra/ProjectKorra/Methods.java index 07e91ea1..35671d39 100644 --- a/src/com/projectkorra/ProjectKorra/Methods.java +++ b/src/com/projectkorra/ProjectKorra/Methods.java @@ -232,36 +232,33 @@ public class Methods { - public static void deserializeFile() { - File readFile = new File(".", "bendingPlayers.yml"); + public static void deserializeFile() { + File readFile = new File(".", "bendingPlayers.yml"); File writeFile = new File(".", "converted.yml"); if (readFile.exists()) { -// plugin.log.info("File exists"); - try - { - DataInputStream input = new DataInputStream(new FileInputStream(readFile)); - BufferedReader reader = new BufferedReader(new InputStreamReader(input)); + // plugin.log.info("File exists"); + try { + DataInputStream input = new DataInputStream(new FileInputStream(readFile)); + BufferedReader reader = new BufferedReader(new InputStreamReader(input)); - DataOutputStream output = new DataOutputStream(new FileOutputStream(writeFile)); - BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output)); - String line; - while ((line = reader.readLine()) != null) - { - if (!line.trim().contains("==: BendingPlayer")) - { - writer.write(line + "\n"); - } - } + DataOutputStream output = new DataOutputStream(new FileOutputStream(writeFile)); + BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output)); + String line; + while ((line = reader.readLine()) != null) { + if (!line.trim().contains("==: BendingPlayer")) { + writer.write(line + "\n"); + } + } - reader.close(); - input.close(); - writer.close(); - output.close(); - } catch (IOException e) { - e.printStackTrace(); - } + reader.close(); + input.close(); + writer.close(); + output.close(); + } catch (IOException e) { + e.printStackTrace(); + } } - } + }