From 13a623ea1fc03a8e6989a81c47398bfbf2f6a9ea Mon Sep 17 00:00:00 2001 From: GJ Date: Fri, 3 Jan 2014 11:07:13 -0500 Subject: [PATCH] Misc was getting crowded again. --- .../gmail/nossr50/commands/KrakenCommand.java | 3 +- .../gmail/nossr50/commands/ToggleCommand.java | 3 +- .../commands/database/McremoveCommand.java | 3 +- .../experience/ExperienceCommand.java | 3 +- .../experience/SkillresetCommand.java | 3 +- .../party/PartyChangeOwnerCommand.java | 4 +- .../commands/party/PartyInviteCommand.java | 3 +- .../commands/party/PartyJoinCommand.java | 3 +- .../commands/party/teleport/PtpCommand.java | 2 +- .../commands/player/InspectCommand.java | 3 +- .../commands/player/McrankCommand.java | 2 +- .../runnables/skills/AbilityDisableTask.java | 18 ++- .../java/com/gmail/nossr50/util/Misc.java | 104 ------------------ .../nossr50/util/commands/CommandUtils.java | 57 ++++++++++ .../nossr50/util/skills/CombatUtils.java | 33 +++++- 15 files changed, 118 insertions(+), 126 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/commands/KrakenCommand.java b/src/main/java/com/gmail/nossr50/commands/KrakenCommand.java index 537643cf5..2db6b0649 100644 --- a/src/main/java/com/gmail/nossr50/commands/KrakenCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/KrakenCommand.java @@ -10,7 +10,6 @@ import org.bukkit.command.TabExecutor; import org.bukkit.util.StringUtil; import com.gmail.nossr50.datatypes.player.McMMOPlayer; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -40,7 +39,7 @@ public class KrakenCommand implements TabExecutor { return true; } - String playerName = Misc.getMatchedPlayerName(args[0]); + String playerName = CommandUtils.getMatchedPlayerName(args[0]); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName); if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) { diff --git a/src/main/java/com/gmail/nossr50/commands/ToggleCommand.java b/src/main/java/com/gmail/nossr50/commands/ToggleCommand.java index dbd80842d..43b33e4d5 100644 --- a/src/main/java/com/gmail/nossr50/commands/ToggleCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/ToggleCommand.java @@ -10,7 +10,6 @@ import org.bukkit.command.TabExecutor; import org.bukkit.util.StringUtil; import com.gmail.nossr50.datatypes.player.McMMOPlayer; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -39,7 +38,7 @@ public abstract class ToggleCommand implements TabExecutor { return true; } - String playerName = Misc.getMatchedPlayerName(args[0]); + String playerName = CommandUtils.getMatchedPlayerName(args[0]); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName); if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) { diff --git a/src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java b/src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java index be634897a..8eb46ac9b 100644 --- a/src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java @@ -11,7 +11,6 @@ import org.bukkit.util.StringUtil; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -22,7 +21,7 @@ public class McremoveCommand implements TabExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { switch (args.length) { case 1: - String playerName = Misc.getMatchedPlayerName(args[0]); + String playerName = CommandUtils.getMatchedPlayerName(args[0]); if (UserManager.getPlayer(playerName, true) == null && CommandUtils.unloadedProfile(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false))) { return true; diff --git a/src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java index 0529dd1db..8f983818d 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java @@ -15,7 +15,6 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.PlayerProfile; import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -68,7 +67,7 @@ public abstract class ExperienceCommand implements TabExecutor { int value = Integer.parseInt(args[2]); - String playerName = Misc.getMatchedPlayerName(args[0]); + String playerName = CommandUtils.getMatchedPlayerName(args[0]); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName, true); // If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process. diff --git a/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java index ebed6a26a..81f5b6ede 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java @@ -16,7 +16,6 @@ import com.gmail.nossr50.datatypes.player.PlayerProfile; import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.EventUtils; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -65,7 +64,7 @@ public class SkillresetCommand implements TabExecutor { skill = SkillType.getSkill(args[1]); } - String playerName = Misc.getMatchedPlayerName(args[0]); + String playerName = CommandUtils.getMatchedPlayerName(args[0]); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName, true); // If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process. diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java index 1ebcc5607..ae31d87f2 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java @@ -8,7 +8,7 @@ import org.bukkit.entity.Player; import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.party.PartyManager; -import com.gmail.nossr50.util.Misc; +import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; public class PartyChangeOwnerCommand implements CommandExecutor { @@ -17,7 +17,7 @@ public class PartyChangeOwnerCommand implements CommandExecutor { switch (args.length) { case 2: Party playerParty = UserManager.getPlayer((Player) sender).getParty(); - String targetName = Misc.getMatchedPlayerName(args[1]); + String targetName = CommandUtils.getMatchedPlayerName(args[1]); if (!playerParty.getMembers().contains(targetName)) { sender.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName)); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java index 3e8a0b20d..902d1ac72 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java @@ -9,7 +9,6 @@ import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.party.PartyManager; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -18,7 +17,7 @@ public class PartyInviteCommand implements CommandExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { switch (args.length) { case 2: - String targetName = Misc.getMatchedPlayerName(args[1]); + String targetName = CommandUtils.getMatchedPlayerName(args[1]); McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName, true); if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) { diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java index 4caa6e11f..d537a92d9 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java @@ -9,7 +9,6 @@ import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.party.PartyManager; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -19,7 +18,7 @@ public class PartyJoinCommand implements CommandExecutor { switch (args.length) { case 2: case 3: - String targetName = Misc.getMatchedPlayerName(args[1]); + String targetName = CommandUtils.getMatchedPlayerName(args[1]); McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName); if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) { diff --git a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java index 548ef545f..bae781b21 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java @@ -86,7 +86,7 @@ public class PtpCommand implements TabExecutor { } } - sendTeleportRequest(sender, player, Misc.getMatchedPlayerName(args[0])); + sendTeleportRequest(sender, player, CommandUtils.getMatchedPlayerName(args[0])); return true; default: diff --git a/src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java b/src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java index d7a3881d5..cd288d879 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java @@ -16,7 +16,6 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.PlayerProfile; import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -29,7 +28,7 @@ public class InspectCommand implements TabExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { switch (args.length) { case 1: - String playerName = Misc.getMatchedPlayerName(args[0]); + String playerName = CommandUtils.getMatchedPlayerName(args[0]); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName, true); // If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process. diff --git a/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java b/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java index eb4923814..67b340cba 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java @@ -46,7 +46,7 @@ public class McrankCommand implements TabExecutor { return true; } - String playerName = Misc.getMatchedPlayerName(args[0]); + String playerName = CommandUtils.getMatchedPlayerName(args[0]); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName, true); if (mcMMOPlayer != null) { diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/AbilityDisableTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/AbilityDisableTask.java index 5049d69d8..2f90895a5 100644 --- a/src/main/java/com/gmail/nossr50/runnables/skills/AbilityDisableTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/skills/AbilityDisableTask.java @@ -1,5 +1,7 @@ package com.gmail.nossr50.runnables.skills; +import org.bukkit.Chunk; +import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -38,7 +40,7 @@ public class AbilityDisableTask extends BukkitRunnable { case BERSERK: if (HiddenConfig.getInstance().resendChunksAfterBlockAbility()) { - Misc.resendChunkRadiusAt(player, 1); + resendChunkRadiusAt(player, 1); } // Fallthrough @@ -60,4 +62,18 @@ public class AbilityDisableTask extends BukkitRunnable { SkillUtils.sendSkillMessage(player, ability.getAbilityPlayerOff(player)); new AbilityCooldownTask(mcMMOPlayer, ability).runTaskLaterAsynchronously(mcMMO.p, PerksUtils.handleCooldownPerks(player, ability.getCooldown()) * Misc.TICK_CONVERSION_FACTOR); } + + private void resendChunkRadiusAt(Player player, int radius) { + Chunk chunk = player.getLocation().getChunk(); + World world = player.getWorld(); + + int chunkX = chunk.getX(); + int chunkZ = chunk.getZ(); + + for (int x = chunkX - radius; x < chunkX + radius; x++) { + for (int z = chunkZ - radius; z < chunkZ + radius; z++) { + world.refreshChunk(x, z); + } + } + } } diff --git a/src/main/java/com/gmail/nossr50/util/Misc.java b/src/main/java/com/gmail/nossr50/util/Misc.java index 9c7de64a4..d4c473f69 100644 --- a/src/main/java/com/gmail/nossr50/util/Misc.java +++ b/src/main/java/com/gmail/nossr50/util/Misc.java @@ -1,14 +1,10 @@ package com.gmail.nossr50.util; -import java.util.ArrayList; import java.util.Collection; -import java.util.List; import java.util.Random; -import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.OfflinePlayer; import org.bukkit.entity.Entity; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Item; @@ -17,7 +13,6 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.config.Config; import com.gmail.nossr50.events.items.McMMOItemSpawnEvent; import com.gmail.nossr50.util.player.UserManager; @@ -60,37 +55,6 @@ public final class Misc { return (entity == null || entity.hasMetadata("NPC") || entity instanceof NPC || (mcMMO.isCombatTagEnabled() && entity instanceof HumanEntity && ((HumanEntity) entity).getName().contains("PvpLogger")) || entity.getClass().getName().equalsIgnoreCase("cofh.entity.PlayerFake")); } - /** - * Get the upgrade tier of the item in hand. - * - * @param inHand The item to check the tier of - * @return the tier of the item - */ - public static int getTier(ItemStack inHand) { - int tier = 0; - - if (ItemUtils.isWoodTool(inHand)) { - tier = 1; - } - else if (ItemUtils.isStoneTool(inHand)) { - tier = 2; - } - else if (ItemUtils.isIronTool(inHand)) { - tier = 3; - } - else if (ItemUtils.isGoldTool(inHand)) { - tier = 1; - } - else if (ItemUtils.isDiamondTool(inHand)) { - tier = 4; - } - else if (ModUtils.isCustomTool(inHand)) { - tier = ModUtils.getToolFromItemStack(inHand).getTier(); - } - - return tier; - } - /** * Determine if two locations are near each other. * @@ -200,74 +164,6 @@ public final class Misc { } } - public static void resendChunkRadiusAt(Player player, int radius) { - Chunk chunk = player.getLocation().getChunk(); - int chunkX = chunk.getX(); - int chunkZ = chunk.getZ(); - - for (int x = chunkX - radius; x < chunkX + radius; x++) { - for (int z = chunkZ - radius; z < chunkZ + radius; z++) { - player.getWorld().refreshChunk(x, z); - } - } - } - - /** - * Attempts to match any player names with the given name, and returns a list of all possibly matches. - * - * This list is not sorted in any particular order. - * If an exact match is found, the returned list will only contain a single result. - * - * @param partialName Name to match - * @return List of all possible names - */ - public static List matchPlayer(String partialName) { - List matchedPlayers = new ArrayList(); - - for (OfflinePlayer offlinePlayer : mcMMO.p.getServer().getOfflinePlayers()) { - String playerName = offlinePlayer.getName(); - - if (partialName.equalsIgnoreCase(playerName)) { - // Exact match - matchedPlayers.clear(); - matchedPlayers.add(playerName); - break; - } - if (playerName.toLowerCase().contains(partialName.toLowerCase())) { - // Partial match - matchedPlayers.add(playerName); - } - } - - return matchedPlayers; - } - - /** - * Get a matched player name if one was found in the database. - * - * @param partialName Name to match - * - * @return Matched name or {@code partialName} if no match was found - */ - public static String getMatchedPlayerName(String partialName) { - if (Config.getInstance().getMatchOfflinePlayers()) { - List matches = matchPlayer(partialName); - - if (matches.size() == 1) { - partialName = matches.get(0); - } - - } - else { - Player player = mcMMO.p.getServer().getPlayer(partialName); - if (player != null) { - partialName = player.getName(); - } - } - - return partialName; - } - public static Random getRandom() { return random; } diff --git a/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java b/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java index 7ec5583df..a437e64b7 100644 --- a/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java +++ b/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java @@ -7,6 +7,7 @@ import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.PlayerProfile; @@ -219,4 +220,60 @@ public final class CommandUtils { } } + /** + * Get a matched player name if one was found in the database. + * + * @param partialName Name to match + * + * @return Matched name or {@code partialName} if no match was found + */ + public static String getMatchedPlayerName(String partialName) { + if (Config.getInstance().getMatchOfflinePlayers()) { + List matches = matchPlayer(partialName); + + if (matches.size() == 1) { + partialName = matches.get(0); + } + } + else { + Player player = mcMMO.p.getServer().getPlayer(partialName); + + if (player != null) { + partialName = player.getName(); + } + } + + return partialName; + } + + /** + * Attempts to match any player names with the given name, and returns a list of all possibly matches. + * + * This list is not sorted in any particular order. + * If an exact match is found, the returned list will only contain a single result. + * + * @param partialName Name to match + * @return List of all possible names + */ + private static List matchPlayer(String partialName) { + List matchedPlayers = new ArrayList(); + + for (OfflinePlayer offlinePlayer : mcMMO.p.getServer().getOfflinePlayers()) { + String playerName = offlinePlayer.getName(); + + if (partialName.equalsIgnoreCase(playerName)) { + // Exact match + matchedPlayers.clear(); + matchedPlayers.add(playerName); + break; + } + + if (playerName.toLowerCase().contains(partialName.toLowerCase())) { + // Partial match + matchedPlayers.add(playerName); + } + } + + return matchedPlayers; + } } diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java index df4fd422d..728297fcf 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java @@ -355,7 +355,7 @@ public final class CombatUtils { * @param type The type of skill being used */ public static void applyAbilityAoE(Player attacker, LivingEntity target, double damage, SkillType type) { - int numberOfTargets = Misc.getTier(attacker.getItemInHand()); // The higher the weapon tier, the more targets you hit + int numberOfTargets = getTier(attacker.getItemInHand()); // The higher the weapon tier, the more targets you hit double damageAmount = Math.max(damage, 1); for (Entity entity : target.getNearbyEntities(2.5, 2.5, 2.5)) { @@ -581,4 +581,35 @@ public final class CombatUtils { return damage; } + + /** + * Get the upgrade tier of the item in hand. + * + * @param inHand The item to check the tier of + * @return the tier of the item + */ + private static int getTier(ItemStack inHand) { + int tier = 0; + + if (ItemUtils.isWoodTool(inHand)) { + tier = 1; + } + else if (ItemUtils.isStoneTool(inHand)) { + tier = 2; + } + else if (ItemUtils.isIronTool(inHand)) { + tier = 3; + } + else if (ItemUtils.isGoldTool(inHand)) { + tier = 1; + } + else if (ItemUtils.isDiamondTool(inHand)) { + tier = 4; + } + else if (ModUtils.isCustomTool(inHand)) { + tier = ModUtils.getToolFromItemStack(inHand).getTier(); + } + + return tier; + } }