From e958baf7204e6914477f91c5ed6fd0e528da294c Mon Sep 17 00:00:00 2001 From: nossr50 Date: Tue, 16 Mar 2021 15:37:23 -0700 Subject: [PATCH] Rollback command classes to master versions --- .../commands/AbilityToggleCommand.java | 30 -- .../nossr50/commands/CommandManager.java | 7 +- .../gmail/nossr50/commands/MHDCommand.java | 11 +- .../nossr50/commands/McImportCommand.java | 336 ++++++++++++++++++ .../nossr50/commands/McabilityCommand.java | 29 ++ .../gmail/nossr50/commands/McgodCommand.java | 15 +- .../gmail/nossr50/commands/McmmoCommand.java | 3 +- .../nossr50/commands/McnotifyCommand.java | 12 +- .../nossr50/commands/McrefreshCommand.java | 21 +- .../gmail/nossr50/commands/ToggleCommand.java | 35 +- .../commands/admin/PlayerDebugCommand.java | 17 +- .../commands/chat/AdminChatCommand.java | 6 +- .../nossr50/commands/chat/McChatSpy.java | 15 +- .../commands/chat/PartyChatCommand.java | 16 +- .../database/ConvertDatabaseCommand.java | 19 +- ...layerCommand.java => McremoveCommand.java} | 14 +- .../commands/experience/AddlevelsCommand.java | 15 +- .../commands/experience/AddxpCommand.java | 17 +- .../experience/ConvertExperienceCommand.java | 5 +- .../commands/experience/MmoeditCommand.java | 16 +- .../commands/hardcore/HardcoreCommand.java | 24 +- .../hardcore/HardcoreModeCommand.java | 14 +- .../commands/hardcore/VampirismCommand.java | 24 +- .../commands/party/PartyAcceptCommand.java | 15 +- .../party/PartyChangeOwnerCommand.java | 18 +- .../party/PartyChangePasswordCommand.java | 16 +- .../nossr50/commands/party/PartyCommand.java | 51 ++- .../commands/party/PartyCreateCommand.java | 16 +- .../commands/party/PartyDisbandCommand.java | 17 +- .../commands/party/PartyInfoCommand.java | 45 ++- .../commands/party/PartyInviteCommand.java | 23 +- .../commands/party/PartyJoinCommand.java | 88 +++++ .../commands/party/PartyKickCommand.java | 16 +- .../commands/party/PartyQuitCommand.java | 16 +- .../commands/party/PartyRenameCommand.java | 30 +- .../commands/party/PartyXpShareCommand.java | 13 +- .../party/teleport/PtpAcceptAnyCommand.java | 39 +- .../party/teleport/PtpAcceptCommand.java | 11 +- .../commands/party/teleport/PtpCommand.java | 54 +-- .../party/teleport/PtpToggleCommand.java | 7 +- .../commands/player/MccooldownCommand.java | 9 +- .../commands/player/McrankCommand.java | 23 +- .../commands/player/McstatsCommand.java | 13 +- .../nossr50/commands/player/MctopCommand.java | 44 ++- .../nossr50/commands/player/XPBarCommand.java | 41 ++- .../nossr50/commands/server/Mcmmoupgrade.java | 2 +- .../commands/skills/AcrobaticsCommand.java | 28 +- .../commands/skills/AlchemyCommand.java | 39 +- .../nossr50/commands/skills/AprilCommand.java | 2 +- .../commands/skills/ArcheryCommand.java | 32 +- .../nossr50/commands/skills/AxesCommand.java | 37 +- .../commands/skills/ExcavationCommand.java | 27 +- .../commands/skills/FishingCommand.java | 36 +- .../commands/skills/HerbalismCommand.java | 54 ++- .../commands/skills/MiningCommand.java | 31 +- .../commands/skills/MmoInfoCommand.java | 26 +- .../commands/skills/RepairCommand.java | 43 +-- .../commands/skills/SalvageCommand.java | 23 +- .../nossr50/commands/skills/SkillCommand.java | 135 ++++--- .../commands/skills/SkillGuideCommand.java | 16 +- .../commands/skills/SmeltingCommand.java | 27 +- .../commands/skills/SwordsCommand.java | 43 +-- .../commands/skills/TamingCommand.java | 34 +- .../commands/skills/UnarmedCommand.java | 39 +- .../commands/skills/WoodcuttingCommand.java | 32 +- 65 files changed, 1200 insertions(+), 812 deletions(-) delete mode 100644 src/main/java/com/gmail/nossr50/commands/AbilityToggleCommand.java create mode 100644 src/main/java/com/gmail/nossr50/commands/McImportCommand.java create mode 100644 src/main/java/com/gmail/nossr50/commands/McabilityCommand.java rename src/main/java/com/gmail/nossr50/commands/database/{DatabaseRemovePlayerCommand.java => McremoveCommand.java} (76%) create mode 100644 src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java diff --git a/src/main/java/com/gmail/nossr50/commands/AbilityToggleCommand.java b/src/main/java/com/gmail/nossr50/commands/AbilityToggleCommand.java deleted file mode 100644 index a4442f652..000000000 --- a/src/main/java/com/gmail/nossr50/commands/AbilityToggleCommand.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.gmail.nossr50.commands; - -import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; -import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; - -public class AbilityToggleCommand extends ToggleCommand { - @Override - protected boolean hasOtherPermission(@NotNull CommandSender sender) { - return Permissions.mcabilityOthers(sender); - } - - @Override - protected boolean hasSelfPermission(@NotNull CommandSender sender) { - return Permissions.mcability(sender); - } - - @Override - protected void applyCommandAction(@NotNull OnlineMMOPlayer mmoPlayer) { - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Commands.Ability." + (mmoPlayer.getSuperAbilityManager().getAbilityActivationPermission() ? "Off" : "On"))); - mmoPlayer.getSuperAbilityManager().toggleAbilityActivationPermission(); - } - - @Override - protected void sendSuccessMessage(@NotNull CommandSender sender, @NotNull String playerName) { - sender.sendMessage(LocaleLoader.getString("Commands.Ability.Toggle", playerName)); - } -} diff --git a/src/main/java/com/gmail/nossr50/commands/CommandManager.java b/src/main/java/com/gmail/nossr50/commands/CommandManager.java index df6c4a64b..ea72fc2f9 100644 --- a/src/main/java/com/gmail/nossr50/commands/CommandManager.java +++ b/src/main/java/com/gmail/nossr50/commands/CommandManager.java @@ -7,10 +7,11 @@ import com.gmail.nossr50.commands.chat.AdminChatCommand; import com.gmail.nossr50.commands.chat.PartyChatCommand; import com.gmail.nossr50.config.ChatConfig; import com.gmail.nossr50.datatypes.chat.ChatChannel; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.entity.Player; import org.bukkit.permissions.Permissible; import org.jetbrains.annotations.NotNull; @@ -96,13 +97,13 @@ public class CommandManager { } public void validateLoadedData(@NotNull Player player) { - if(mcMMO.getUserManager().queryPlayer(player) == null) { + if(UserManager.getPlayer(player) == null) { throw new ConditionFailedException(LocaleLoader.getString("Profile.PendingLoad")); } } public void validatePlayerParty(@NotNull Player player) { - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + McMMOPlayer mmoPlayer = UserManager.getPlayer(player); if(mmoPlayer.getParty() == null) { throw new ConditionFailedException(LocaleLoader.getString("Commands.Party.None")); diff --git a/src/main/java/com/gmail/nossr50/commands/MHDCommand.java b/src/main/java/com/gmail/nossr50/commands/MHDCommand.java index c2bbc3d80..d3b547acc 100644 --- a/src/main/java/com/gmail/nossr50/commands/MHDCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/MHDCommand.java @@ -3,9 +3,10 @@ package com.gmail.nossr50.commands; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.database.FlatFileDatabaseManager; import com.gmail.nossr50.database.SQLDatabaseManager; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.util.player.UserManager; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -20,8 +21,8 @@ public class MHDCommand implements TabExecutor { if (mcMMO.getDatabaseManager() instanceof SQLDatabaseManager) { SQLDatabaseManager m = (SQLDatabaseManager) mcMMO.getDatabaseManager(); m.resetMobHealthSettings(); - for (OnlineMMOPlayer mmoPlayer : mcMMO.getUserManager().getPlayers()) { - mmoPlayer.setMobHealthBarType(Config.getInstance().getMobHealthbarDefault()); + for (McMMOPlayer player : UserManager.getPlayers()) { + player.getProfile().setMobHealthbarType(Config.getInstance().getMobHealthbarDefault()); } sender.sendMessage("Mob health reset"); return true; @@ -29,8 +30,8 @@ public class MHDCommand implements TabExecutor { if (mcMMO.getDatabaseManager() instanceof FlatFileDatabaseManager) { FlatFileDatabaseManager m = (FlatFileDatabaseManager) mcMMO.getDatabaseManager(); m.resetMobHealthSettings(); - for (OnlineMMOPlayer mmoPlayer : mcMMO.getUserManager().getPlayers()) { - mmoPlayer.setMobHealthBarType(Config.getInstance().getMobHealthbarDefault()); + for (McMMOPlayer player : UserManager.getPlayers()) { + player.getProfile().setMobHealthbarType(Config.getInstance().getMobHealthbarDefault()); } sender.sendMessage("Mob health reset"); return true; diff --git a/src/main/java/com/gmail/nossr50/commands/McImportCommand.java b/src/main/java/com/gmail/nossr50/commands/McImportCommand.java new file mode 100644 index 000000000..ce43f9675 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/commands/McImportCommand.java @@ -0,0 +1,336 @@ +package com.gmail.nossr50.commands; + +import com.gmail.nossr50.datatypes.skills.ModConfigType; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.util.Misc; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Locale; + +public class McImportCommand implements CommandExecutor { + int fileAmount; + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { + if (args.length == 0) { + importModConfig(); + return true; + } + return false; + } + + public boolean importModConfig() { + String importFilePath = mcMMO.getModDirectory() + File.separator + "import"; + File importFile = new File(importFilePath, "import.log"); + mcMMO.p.getLogger().info("Starting import of mod materials..."); + fileAmount = 0; + + HashMap> materialNames = new HashMap<>(); + + BufferedReader in = null; + + try { + // Open the file + in = new BufferedReader(new FileReader(importFile)); + + String line; + String materialName; + String modName; + + // While not at the end of the file + while ((line = in.readLine()) != null) { + String[] split1 = line.split("material "); + + if (split1.length != 2) { + continue; + } + + String[] split2 = split1[1].split(" with"); + + if (split2.length != 2) { + continue; + } + + materialName = split2[0]; + + // Categorise each material under a mod config type + ModConfigType type = ModConfigType.getModConfigType(materialName); + + if (!materialNames.containsKey(type)) { + materialNames.put(type, new ArrayList<>()); + } + + materialNames.get(type).add(materialName); + } + } + catch (FileNotFoundException e) { + mcMMO.p.getLogger().warning("Could not find " + importFile.getAbsolutePath() + " ! (No such file or directory)"); + mcMMO.p.getLogger().warning("Copy and paste latest.log to " + importFile.getParentFile().getAbsolutePath() + " and rename it to import.log"); + return false; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + finally { + tryClose(in); + } + + createOutput(materialNames); + + mcMMO.p.getLogger().info("Import finished! Created " + fileAmount + " files!"); + return true; + } + + private void createOutput(HashMap> materialNames) { + for (ModConfigType modConfigType : materialNames.keySet()) { + HashMap> materialNamesType = new HashMap<>(); + + for (String materialName : materialNames.get(modConfigType)) { + String modName = Misc.getModName(materialName); + + if (!materialNamesType.containsKey(modName)) { + materialNamesType.put(modName, new ArrayList<>()); + } + + materialNamesType.get(modName).add(materialName); + } + + createOutput(modConfigType, materialNamesType); + } + + } + + private void tryClose(Closeable c) { + if (c == null) { + return; + } + try { + c.close(); + } + catch (IOException e) { + e.printStackTrace(); + } + } + + private void createOutput(ModConfigType modConfigType, HashMap> materialNames) { + File outputFilePath = new File(mcMMO.getModDirectory() + File.separator + "output"); + if (!outputFilePath.exists() && !outputFilePath.mkdirs()) { + mcMMO.p.getLogger().severe("Could not create output directory! " + outputFilePath.getAbsolutePath()); + } + + FileWriter out = null; + String type = modConfigType.name().toLowerCase(Locale.ENGLISH); + + for (String modName : materialNames.keySet()) { + File outputFile = new File(outputFilePath, modName + "." + type + ".yml"); + mcMMO.p.getLogger().info("Creating " + outputFile.getName()); + try { + if (outputFile.exists() && !outputFile.delete()) { + mcMMO.p.getLogger().severe("Not able to delete old output file! " + outputFile.getAbsolutePath()); + } + + if (!outputFile.createNewFile()) { + mcMMO.p.getLogger().severe("Could not create output file! " + outputFile.getAbsolutePath()); + continue; + } + + StringBuilder writer = new StringBuilder(); + HashMap> configSections = getConfigSections(modConfigType, modName, materialNames); + + if (configSections == null) { + mcMMO.p.getLogger().severe("Something went wrong!! type is " + type); + return; + } + + // Write the file, go through each skill and write all the materials + for (String configSection : configSections.keySet()) { + if (configSection.equals("UNIDENTIFIED")) { + writer.append("# This isn't a valid config section and all materials in this category need to be").append("\r\n"); + writer.append("# copy and pasted to a valid section of this config file.").append("\r\n"); + } + writer.append(configSection).append(":").append("\r\n"); + + for (String line : configSections.get(configSection)) { + writer.append(line).append("\r\n"); + } + + writer.append("\r\n"); + } + + out = new FileWriter(outputFile); + out.write(writer.toString()); + } catch (Exception e) { + e.printStackTrace(); + return; + } finally { + tryClose(out); + fileAmount++; + } + } + } + + private HashMap> getConfigSections(ModConfigType type, String modName, HashMap> materialNames) { + switch (type) { + case BLOCKS: + return getConfigSectionsBlocks(modName, materialNames); + case TOOLS: + return getConfigSectionsTools(modName, materialNames); + case ARMOR: + return getConfigSectionsArmor(modName, materialNames); + case UNKNOWN: + return getConfigSectionsUnknown(modName, materialNames); + } + + return null; + } + + private HashMap> getConfigSectionsBlocks(String modName, HashMap> materialNames) { + HashMap> configSections = new HashMap<>(); + + // Go through all the materials and categorise them under a skill + for (String materialName : materialNames.get(modName)) { + String skillName = "UNIDENTIFIED"; + if (materialName.contains("ORE")) { + skillName = "Mining"; + } + else if (materialName.contains("LOG") || materialName.contains("LEAVES")) { + skillName = "Woodcutting"; + } + else if (materialName.contains("GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) { + skillName = "Herbalism"; + } + else if (materialName.contains("DIRT") || materialName.contains("SAND")) { + skillName = "Excavation"; + } + + if (!configSections.containsKey(skillName)) { + configSections.put(skillName, new ArrayList<>()); + } + + ArrayList skillContents = configSections.get(skillName); + skillContents.add(" " + materialName + "|0:"); + skillContents.add(" " + " " + "XP_Gain: 99"); + skillContents.add(" " + " " + "Double_Drops_Enabled: true"); + + if (skillName.equals("Mining")) { + skillContents.add(" " + " " + "Smelting_XP_Gain: 9"); + } + else if (skillName.equals("Woodcutting")) { + skillContents.add(" " + " " + "Is_Log: " + materialName.contains("LOG")); + } + } + + return configSections; + } + + private HashMap> getConfigSectionsTools(String modName, HashMap> materialNames) { + HashMap> configSections = new HashMap<>(); + + // Go through all the materials and categorise them under a tool type + for (String materialName : materialNames.get(modName)) { + String toolType = "UNIDENTIFIED"; + if (materialName.contains("PICKAXE")) { + toolType = "Pickaxes"; + } + else if (materialName.contains("AXE")) { + toolType = "Axes"; + } + else if (materialName.contains("BOW")) { + toolType = "Bows"; + } + else if (materialName.contains("HOE")) { + toolType = "Hoes"; + } + else if (materialName.contains("SHOVEL") || materialName.contains("SPADE")) { + toolType = "Shovels"; + } + else if (materialName.contains("SWORD")) { + toolType = "Swords"; + } + + if (!configSections.containsKey(toolType)) { + configSections.put(toolType, new ArrayList<>()); + } + + ArrayList skillContents = configSections.get(toolType); + skillContents.add(" " + materialName + ":"); + skillContents.add(" " + " " + "XP_Modifier: 1.0"); + skillContents.add(" " + " " + "Tier: 1"); + skillContents.add(" " + " " + "Ability_Enabled: true"); + addRepairableLines(materialName, skillContents); + } + + return configSections; + } + + private HashMap> getConfigSectionsArmor(String modName, HashMap> materialNames) { + HashMap> configSections = new HashMap<>(); + + // Go through all the materials and categorise them under an armor type + for (String materialName : materialNames.get(modName)) { + String toolType = "UNIDENTIFIED"; + if (materialName.contains("BOOT") || materialName.contains("SHOE")) { + toolType = "Boots"; + } + else if (materialName.contains("CHESTPLATE") || materialName.contains("CHEST")) { + toolType = "Chestplates"; + } + else if (materialName.contains("HELM") || materialName.contains("HAT")) { + toolType = "Helmets"; + } + else if (materialName.contains("LEGGINGS") || materialName.contains("LEGS") || materialName.contains("PANTS")) { + toolType = "Leggings"; + } + + if (!configSections.containsKey(toolType)) { + configSections.put(toolType, new ArrayList<>()); + } + + ArrayList skillContents = configSections.get(toolType); + skillContents.add(" " + materialName + ":"); + addRepairableLines(materialName, skillContents); + } + + return configSections; + } + + private void addRepairableLines(String materialName, ArrayList skillContents) { + skillContents.add(" " + " " + "Repairable: true"); + skillContents.add(" " + " " + "Repair_Material: REPAIR_MATERIAL_NAME"); + skillContents.add(" " + " " + "Repair_Material_Data_Value: 0"); + skillContents.add(" " + " " + "Repair_Material_Quantity: 9"); + skillContents.add(" " + " " + "Repair_Material_Pretty_Name: Repair Item Name"); + skillContents.add(" " + " " + "Repair_MinimumLevel: 0"); + skillContents.add(" " + " " + "Repair_XpMultiplier: 1.0"); + + Material material = Material.matchMaterial(materialName); + short durability = (material == null) ? (short) 9999 : material.getMaxDurability(); + skillContents.add(" " + " " + "Durability: " + ((durability > 0) ? durability : (short) 9999)); + } + + private HashMap> getConfigSectionsUnknown(String modName, HashMap> materialNames) { + HashMap> configSections = new HashMap<>(); + + // Go through all the materials and print them + for (String materialName : materialNames.get(modName)) { + String configKey = "UNIDENTIFIED"; + + if (!configSections.containsKey(configKey)) { + configSections.put(configKey, new ArrayList<>()); + } + + ArrayList skillContents = configSections.get(configKey); + skillContents.add(" " + materialName); + } + + return configSections; + } +} diff --git a/src/main/java/com/gmail/nossr50/commands/McabilityCommand.java b/src/main/java/com/gmail/nossr50/commands/McabilityCommand.java new file mode 100644 index 000000000..0628b9364 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/commands/McabilityCommand.java @@ -0,0 +1,29 @@ +package com.gmail.nossr50.commands; + +import com.gmail.nossr50.datatypes.player.McMMOPlayer; +import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.util.Permissions; +import org.bukkit.command.CommandSender; + +public class McabilityCommand extends ToggleCommand { + @Override + protected boolean hasOtherPermission(CommandSender sender) { + return Permissions.mcabilityOthers(sender); + } + + @Override + protected boolean hasSelfPermission(CommandSender sender) { + return Permissions.mcability(sender); + } + + @Override + protected void applyCommandAction(McMMOPlayer mcMMOPlayer) { + mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.Ability." + (mcMMOPlayer.getAbilityUse() ? "Off" : "On"))); + mcMMOPlayer.toggleAbilityUse(); + } + + @Override + protected void sendSuccessMessage(CommandSender sender, String playerName) { + sender.sendMessage(LocaleLoader.getString("Commands.Ability.Toggle", playerName)); + } +} diff --git a/src/main/java/com/gmail/nossr50/commands/McgodCommand.java b/src/main/java/com/gmail/nossr50/commands/McgodCommand.java index 0278623f4..1867c4672 100644 --- a/src/main/java/com/gmail/nossr50/commands/McgodCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/McgodCommand.java @@ -1,30 +1,29 @@ package com.gmail.nossr50.commands; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; public class McgodCommand extends ToggleCommand { @Override - protected boolean hasOtherPermission(@NotNull CommandSender sender) { + protected boolean hasOtherPermission(CommandSender sender) { return Permissions.mcgodOthers(sender); } @Override - protected boolean hasSelfPermission(@NotNull CommandSender sender) { + protected boolean hasSelfPermission(CommandSender sender) { return Permissions.mcgod(sender); } @Override - protected void applyCommandAction(@NotNull OnlineMMOPlayer mmoPlayer) { - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Commands.GodMode." + (mmoPlayer.getGodMode() ? "Disabled" : "Enabled"))); - mmoPlayer.toggleGodMode(); + protected void applyCommandAction(McMMOPlayer mcMMOPlayer) { + mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled"))); + mcMMOPlayer.toggleGodMode(); } @Override - protected void sendSuccessMessage(@NotNull CommandSender sender, @NotNull String playerName) { + protected void sendSuccessMessage(CommandSender sender, String playerName) { sender.sendMessage(LocaleLoader.getString("Commands.GodMode.Toggle", playerName)); } } diff --git a/src/main/java/com/gmail/nossr50/commands/McmmoCommand.java b/src/main/java/com/gmail/nossr50/commands/McmmoCommand.java index f1633ab76..13bc18dc3 100644 --- a/src/main/java/com/gmail/nossr50/commands/McmmoCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/McmmoCommand.java @@ -1,6 +1,5 @@ package com.gmail.nossr50.commands; -import com.gmail.nossr50.commands.party.PartySubCommandType; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; @@ -109,7 +108,7 @@ public class McmmoCommand implements CommandExecutor { sender.sendMessage(ChatColor.DARK_AQUA + " /party invite <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Invite")); sender.sendMessage(ChatColor.DARK_AQUA + " /party accept " + LocaleLoader.getString("Commands.Party.Accept")); - if (Permissions.partySubcommand(sender, PartySubCommandType.TELEPORT)) { + if (Permissions.partySubcommand(sender, PartySubcommandType.TELEPORT)) { sender.sendMessage(ChatColor.DARK_AQUA + " /party teleport <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Teleport")); } } diff --git a/src/main/java/com/gmail/nossr50/commands/McnotifyCommand.java b/src/main/java/com/gmail/nossr50/commands/McnotifyCommand.java index 6988cb98a..2ffb16910 100644 --- a/src/main/java/com/gmail/nossr50/commands/McnotifyCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/McnotifyCommand.java @@ -1,10 +1,10 @@ package com.gmail.nossr50.commands; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -21,14 +21,14 @@ public class McnotifyCommand implements TabExecutor { } if (args.length == 0) { - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer((Player) sender); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender); //Not Loaded yet - if (mmoPlayer == null) + if (mcMMOPlayer == null) sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); - sender.sendMessage(LocaleLoader.getString("Commands.Notifications." + (mmoPlayer.hasSkillChatNotifications() ? "Off" : "On"))); - mmoPlayer.toggleSkillChatNotifications(); + sender.sendMessage(LocaleLoader.getString("Commands.Notifications." + (mcMMOPlayer.useChatNotifications() ? "Off" : "On"))); + mcMMOPlayer.toggleChatNotifications(); return true; } return false; diff --git a/src/main/java/com/gmail/nossr50/commands/McrefreshCommand.java b/src/main/java/com/gmail/nossr50/commands/McrefreshCommand.java index 31c1fad85..9cc0ed3c1 100644 --- a/src/main/java/com/gmail/nossr50/commands/McrefreshCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/McrefreshCommand.java @@ -1,34 +1,33 @@ package com.gmail.nossr50.commands; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; public class McrefreshCommand extends ToggleCommand { @Override - protected boolean hasOtherPermission(@NotNull CommandSender sender) { + protected boolean hasOtherPermission(CommandSender sender) { return Permissions.mcrefreshOthers(sender); } @Override - protected boolean hasSelfPermission(@NotNull CommandSender sender) { + protected boolean hasSelfPermission(CommandSender sender) { return Permissions.mcrefresh(sender); } @Override - protected void applyCommandAction(@NotNull OnlineMMOPlayer mmoPlayer) { - mmoPlayer.setRecentlyHurtTimestamp(0); - mmoPlayer.getSuperAbilityManager().resetCooldowns(); - mmoPlayer.getSuperAbilityManager().unprimeAllAbilityTools(); - mmoPlayer.getSuperAbilityManager().disableSuperAbilities(); + protected void applyCommandAction(McMMOPlayer mcMMOPlayer) { + mcMMOPlayer.setRecentlyHurt(0); + mcMMOPlayer.resetCooldowns(); + mcMMOPlayer.resetToolPrepMode(); + mcMMOPlayer.resetAbilityMode(); - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Ability.Generic.Refresh")); + mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Ability.Generic.Refresh")); } @Override - protected void sendSuccessMessage(@NotNull CommandSender sender, @NotNull String playerName) { + protected void sendSuccessMessage(CommandSender sender, String playerName) { sender.sendMessage(LocaleLoader.getString("Commands.mcrefresh.Success", playerName)); } } diff --git a/src/main/java/com/gmail/nossr50/commands/ToggleCommand.java b/src/main/java/com/gmail/nossr50/commands/ToggleCommand.java index f2dfb015d..fea470d0e 100644 --- a/src/main/java/com/gmail/nossr50/commands/ToggleCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/ToggleCommand.java @@ -1,15 +1,12 @@ package com.gmail.nossr50.commands; -import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.util.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; -import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; -import org.bukkit.entity.Player; import org.bukkit.util.StringUtil; import org.jetbrains.annotations.NotNull; @@ -34,14 +31,7 @@ public abstract class ToggleCommand implements TabExecutor { return true; } - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer((Player) sender); - - if(mmoPlayer != null) { - applyCommandAction(mmoPlayer); - } else { - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Commands.NotLoaded")); - } - + applyCommandAction(UserManager.getPlayer(sender.getName())); return true; case 1: @@ -51,18 +41,17 @@ public abstract class ToggleCommand implements TabExecutor { } String playerName = CommandUtils.getMatchedPlayerName(args[0]); - Player otherPlayer = Bukkit.getPlayer(playerName); - OnlineMMOPlayer mmoOther = mcMMO.getUserManager().queryPlayer(otherPlayer); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName); - if (!CommandUtils.checkPlayerExistence(sender, playerName, mmoOther)) { + if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) { return true; } - if(mmoOther.getPlayer().isOnline()) { - return false; + if (CommandUtils.isOffline(sender, mcMMOPlayer.getPlayer())) { + return true; } - applyCommandAction(mmoOther); + applyCommandAction(mcMMOPlayer); sendSuccessMessage(sender, playerName); return true; @@ -80,8 +69,8 @@ public abstract class ToggleCommand implements TabExecutor { return ImmutableList.of(); } - protected abstract boolean hasOtherPermission(@NotNull CommandSender sender); - protected abstract boolean hasSelfPermission(@NotNull CommandSender sender); - protected abstract void applyCommandAction(@NotNull OnlineMMOPlayer mmoPlayer); - protected abstract void sendSuccessMessage(@NotNull CommandSender sender, @NotNull String playerName); + protected abstract boolean hasOtherPermission(CommandSender sender); + protected abstract boolean hasSelfPermission(CommandSender sender); + protected abstract void applyCommandAction(McMMOPlayer mcMMOPlayer); + protected abstract void sendSuccessMessage(CommandSender sender, String playerName); } diff --git a/src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java b/src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java index 1523c6ea4..25a87ceb3 100644 --- a/src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java @@ -1,9 +1,8 @@ package com.gmail.nossr50.commands.admin; -import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.util.player.NotificationManager; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -15,15 +14,9 @@ public class PlayerDebugCommand implements CommandExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { if(sender instanceof Player) { - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer((Player) sender); - - if(mmoPlayer == null) { - sender.sendMessage(LocaleLoader.getString("Commands.NotLoaded")); - return true; - } - - mmoPlayer.toggleDebugMode(); //Toggle debug mode - NotificationManager.sendPlayerInformationChatOnlyPrefixed(Misc.adaptPlayer(mmoPlayer), "Commands.Mmodebug.Toggle", String.valueOf(mmoPlayer.isDebugMode())); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender); + mcMMOPlayer.toggleDebugMode(); //Toggle debug mode + NotificationManager.sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getPlayer(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode())); return true; } else { return false; diff --git a/src/main/java/com/gmail/nossr50/commands/chat/AdminChatCommand.java b/src/main/java/com/gmail/nossr50/commands/chat/AdminChatCommand.java index e987bd648..3c6f93d11 100644 --- a/src/main/java/com/gmail/nossr50/commands/chat/AdminChatCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/chat/AdminChatCommand.java @@ -8,9 +8,9 @@ import co.aikar.commands.annotation.Conditions; import co.aikar.commands.annotation.Default; import com.gmail.nossr50.commands.CommandManager; import com.gmail.nossr50.datatypes.chat.ChatChannel; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.player.UserManager; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.jetbrains.annotations.NotNull; @CommandPermission("mcmmo.chat.adminchat") @@ -28,7 +28,7 @@ public class AdminChatCommand extends BaseCommand { if(args == null || args.length == 0) { //Process with no arguments if(bukkitCommandIssuer.isPlayer()) { - OnlineMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer()); + McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer()); pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.ADMIN); } else { //Not support for console @@ -36,7 +36,7 @@ public class AdminChatCommand extends BaseCommand { } } else { if(bukkitCommandIssuer.isPlayer()) { - OnlineMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer()); + McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer()); if(mmoPlayer == null) return; diff --git a/src/main/java/com/gmail/nossr50/commands/chat/McChatSpy.java b/src/main/java/com/gmail/nossr50/commands/chat/McChatSpy.java index fdd8bac55..87ef2285f 100644 --- a/src/main/java/com/gmail/nossr50/commands/chat/McChatSpy.java +++ b/src/main/java/com/gmail/nossr50/commands/chat/McChatSpy.java @@ -1,31 +1,30 @@ package com.gmail.nossr50.commands.chat; import com.gmail.nossr50.commands.ToggleCommand; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; public class McChatSpy extends ToggleCommand { @Override - protected boolean hasOtherPermission(@NotNull CommandSender sender) { + protected boolean hasOtherPermission(CommandSender sender) { return Permissions.adminChatSpyOthers(sender); } @Override - protected boolean hasSelfPermission(@NotNull CommandSender sender) { + protected boolean hasSelfPermission(CommandSender sender) { return Permissions.adminChatSpy(sender); } @Override - protected void applyCommandAction(@NotNull OnlineMMOPlayer mmoPlayer) { - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Commands.AdminChatSpy." + (mmoPlayer.isPartyChatSpying() ? "Disabled" : "Enabled"))); - mmoPlayer.togglePartyChatSpying(); + protected void applyCommandAction(McMMOPlayer mcMMOPlayer) { + mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled"))); + mcMMOPlayer.togglePartyChatSpying(); } @Override - protected void sendSuccessMessage(@NotNull CommandSender sender, @NotNull String playerName) { + protected void sendSuccessMessage(CommandSender sender, String playerName) { sender.sendMessage(LocaleLoader.getString("Commands.AdminChatSpy.Toggle", playerName)); } } diff --git a/src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java b/src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java index cf79d8c2e..9e420e901 100644 --- a/src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java @@ -8,12 +8,12 @@ import co.aikar.commands.annotation.Conditions; import co.aikar.commands.annotation.Default; import com.gmail.nossr50.commands.CommandManager; import com.gmail.nossr50.datatypes.chat.ChatChannel; +import com.gmail.nossr50.datatypes.party.Party; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.party.PartyManagerImpl; +import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.text.StringUtils; -import com.neetgames.mcmmo.party.Party; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -34,7 +34,7 @@ public class PartyChatCommand extends BaseCommand { if(args == null || args.length == 0) { //Process with no arguments if(bukkitCommandIssuer.isPlayer()) { - OnlineMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer()); + McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer()); pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.PARTY); } else { //Not support for console @@ -47,7 +47,7 @@ public class PartyChatCommand extends BaseCommand { * Player Logic */ if(bukkitCommandIssuer.getIssuer() instanceof Player) { - OnlineMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer()); + McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer()); processCommandArgsPlayer(mmoPlayer, args); /* * Console Logic @@ -59,11 +59,11 @@ public class PartyChatCommand extends BaseCommand { } /** - * Processes the command with arguments for a {@link OnlineMMOPlayer} + * Processes the command with arguments for a {@link McMMOPlayer} * @param mmoPlayer target player * @param args command arguments */ - private void processCommandArgsPlayer(@NotNull OnlineMMOPlayer mmoPlayer, @NotNull String[] args) { + private void processCommandArgsPlayer(@NotNull McMMOPlayer mmoPlayer, @NotNull String[] args) { //Player is not toggling and is chatting directly to party pluginRef.getChatManager().processPlayerMessage(mmoPlayer, args, ChatChannel.PARTY); } @@ -78,7 +78,7 @@ public class PartyChatCommand extends BaseCommand { mcMMO.p.getLogger().severe("You need to specify a party name and then write a message afterwards."); } else { //Grab party - Party targetParty = PartyManagerImpl.getParty(args[0]); + Party targetParty = PartyManager.getParty(args[0]); if(targetParty != null) { pluginRef.getChatManager().processConsoleMessage(StringUtils.buildStringAfterNthElement(args, 1), targetParty); diff --git a/src/main/java/com/gmail/nossr50/commands/database/ConvertDatabaseCommand.java b/src/main/java/com/gmail/nossr50/commands/database/ConvertDatabaseCommand.java index e37f4267f..6bbee5f9f 100644 --- a/src/main/java/com/gmail/nossr50/commands/database/ConvertDatabaseCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/database/ConvertDatabaseCommand.java @@ -8,6 +8,7 @@ import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.runnables.database.DatabaseConversionTask; import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -49,21 +50,15 @@ public class ConvertDatabaseCommand implements CommandExecutor { sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Start", previousType.toString(), newType.toString())); - mcMMO.getUserManager().saveAllSync(); - mcMMO.getUserManager().clearAll(); - - if(oldDatabase == null) { - sender.sendMessage("Could not load the other database, failed to convert users."); - return true; - } + UserManager.saveAll(); + UserManager.clearAll(); for (Player player : mcMMO.p.getServer().getOnlinePlayers()) { - PlayerProfile profile = oldDatabase.queryPlayerDataByUUID(player.getUniqueId(), null); + PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId(), null); - if(profile == null) - continue; - - mcMMO.getUserManager().saveUserImmediately(profile.getPersistentPlayerData(), true); + if (profile.isLoaded()) { + mcMMO.getDatabaseManager().saveUser(profile); + } new PlayerProfileLoadingTask(player).runTaskLaterAsynchronously(mcMMO.p, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading } diff --git a/src/main/java/com/gmail/nossr50/commands/database/DatabaseRemovePlayerCommand.java b/src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java similarity index 76% rename from src/main/java/com/gmail/nossr50/commands/database/DatabaseRemovePlayerCommand.java rename to src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java index 577dd0d76..56b817337 100644 --- a/src/main/java/com/gmail/nossr50/commands/database/DatabaseRemovePlayerCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java @@ -3,12 +3,12 @@ package com.gmail.nossr50.commands.database; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; import com.google.common.collect.ImmutableList; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; -import org.bukkit.entity.Player; import org.bukkit.util.StringUtil; import org.jetbrains.annotations.NotNull; @@ -16,24 +16,20 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -public class DatabaseRemovePlayerCommand implements TabExecutor { +public class McremoveCommand implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { if (args.length == 1) { String playerName = CommandUtils.getMatchedPlayerName(args[0]); - if (mcMMO.getUserManager().queryPlayer(playerName) == null - && CommandUtils.hasNoProfile(sender, mcMMO.getDatabaseManager().queryPlayerDataByUUID(playerName))) { - sender.sendMessage(LocaleLoader.getString("Commands.Offline")); + if (UserManager.getOfflinePlayer(playerName) == null && CommandUtils.unloadedProfile(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName))) { return true; } UUID uuid = null; - Player targetPlayer = Bukkit.getPlayer(playerName); - - if (targetPlayer != null) { - uuid = targetPlayer.getUniqueId(); + if (Bukkit.getPlayer(playerName) != null) { + uuid = Bukkit.getPlayer(playerName).getUniqueId(); } if (mcMMO.getDatabaseManager().removeUser(playerName, uuid)) { diff --git a/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java index a89d195e7..af3b3366c 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java @@ -3,10 +3,10 @@ package com.gmail.nossr50.commands.experience; import com.gmail.nossr50.datatypes.experience.XPGainReason; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.PlayerProfile; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.EventUtils; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.skill.RootSkill; import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -23,9 +23,9 @@ public class AddlevelsCommand extends ExperienceCommand { } @Override - protected void handleCommand(Player player, PlayerProfile profile, RootSkill rootSkill, int value) { - float xpRemoved = profile.getSkillXpLevelRaw(rootSkill); - profile.addLevels(rootSkill, value); + protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) { + float xpRemoved = profile.getSkillXpLevelRaw(skill); + profile.addLevels(skill, value); if (player == null) { profile.scheduleAsyncSave(); @@ -35,10 +35,11 @@ public class AddlevelsCommand extends ExperienceCommand { McMMOPlayer mmoPlayer = UserManager.getPlayer(player); if(mmoPlayer == null) { - EventUtils.tryLevelChangeEvent(player, rootSkill, value, xpRemoved, true, XPGainReason.COMMAND); + EventUtils.tryLevelChangeEvent(player, skill, value, xpRemoved, true, XPGainReason.COMMAND); } else { EventUtils.tryLevelChangeEvent(mmoPlayer, skill, value, xpRemoved, true, XPGainReason.COMMAND); } + } @Override @@ -50,10 +51,10 @@ public class AddlevelsCommand extends ExperienceCommand { } @Override - protected void handlePlayerMessageSkill(Player player, int value, RootSkill rootSkill, boolean isSilent) { + protected void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill, boolean isSilent) { if(isSilent) return; - player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, rootSkill.getName())); + player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, skill.getName())); } } diff --git a/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java index 595beb36b..03ad449bb 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java @@ -1,9 +1,12 @@ package com.gmail.nossr50.commands.experience; +import com.gmail.nossr50.datatypes.experience.XPGainReason; +import com.gmail.nossr50.datatypes.experience.XPGainSource; import com.gmail.nossr50.datatypes.player.PlayerProfile; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.skill.RootSkill; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -19,16 +22,16 @@ public class AddxpCommand extends ExperienceCommand { } @Override - protected void handleCommand(Player player, PlayerProfile profile, RootSkill rootSkill, int value) { + protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) { if (player != null) { //Check if player profile is loaded - if(mcMMO.getUserManager().getPlayer(player) == null) + if(UserManager.getPlayer(player) == null) return; - mcMMO.getUserManager().getPlayer(player).applyXpGain(rootSkill, value, XPGainReason.COMMAND, XPGainSource.COMMAND); + UserManager.getPlayer(player).applyXpGain(skill, value, XPGainReason.COMMAND, XPGainSource.COMMAND); } else { - profile.addXp(rootSkill, value); + profile.addXp(skill, value); profile.scheduleAsyncSave(); } } @@ -42,10 +45,10 @@ public class AddxpCommand extends ExperienceCommand { } @Override - protected void handlePlayerMessageSkill(Player player, int value, RootSkill rootSkill, boolean isSilent) { + protected void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill, boolean isSilent) { if(isSilent) return; - player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardSkill", value, rootSkill.getName())); + player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardSkill", value, skill.getName())); } } diff --git a/src/main/java/com/gmail/nossr50/commands/experience/ConvertExperienceCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/ConvertExperienceCommand.java index 569b51e69..e15063ebf 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/ConvertExperienceCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/ConvertExperienceCommand.java @@ -5,6 +5,7 @@ import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.runnables.database.FormulaConversionTask; import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -32,8 +33,8 @@ public class ConvertExperienceCommand implements CommandExecutor { sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Experience.Start", previousType.toString(), newType.toString())); - mcMMO.getUserManager().saveAllSync(); - mcMMO.getUserManager().clearAll(); + UserManager.saveAll(); + UserManager.clearAll(); new FormulaConversionTask(sender, newType).runTaskLater(mcMMO.p, 1); diff --git a/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java index 183784abe..ac8405525 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java @@ -3,10 +3,10 @@ package com.gmail.nossr50.commands.experience; import com.gmail.nossr50.datatypes.experience.XPGainReason; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.PlayerProfile; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.EventUtils; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.skill.RootSkill; import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -23,11 +23,11 @@ public class MmoeditCommand extends ExperienceCommand { } @Override - protected void handleCommand(Player player, PlayerProfile profile, RootSkill rootSkill, int value) { - int skillLevel = profile.getSkillLevel(rootSkill); - float xpRemoved = profile.getSkillXpLevelRaw(rootSkill); + protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) { + int skillLevel = profile.getSkillLevel(skill); + float xpRemoved = profile.getSkillXpLevelRaw(skill); - profile.modifySkill(rootSkill, value); + profile.modifySkill(skill, value); if (player == null) { profile.scheduleAsyncSave(); @@ -43,7 +43,7 @@ public class MmoeditCommand extends ExperienceCommand { if(mmoPlayer != null) { EventUtils.tryLevelEditEvent(mmoPlayer, skill, value, xpRemoved, value > skillLevel, XPGainReason.COMMAND, skillLevel); } else { - EventUtils.tryLevelEditEvent(player, rootSkill, value, xpRemoved, value > skillLevel, XPGainReason.COMMAND, skillLevel); + EventUtils.tryLevelEditEvent(player, skill, value, xpRemoved, value > skillLevel, XPGainReason.COMMAND, skillLevel); } } @@ -57,10 +57,10 @@ public class MmoeditCommand extends ExperienceCommand { } @Override - protected void handlePlayerMessageSkill(Player player, int value, RootSkill rootSkill, boolean isSilent) { + protected void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill, boolean isSilent) { if(isSilent) return; - player.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.1", rootSkill.getName(), value)); + player.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.1", skill.getName(), value)); } } diff --git a/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreCommand.java b/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreCommand.java index 3af6dc8d8..6375265b2 100644 --- a/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreCommand.java @@ -1,10 +1,10 @@ package com.gmail.nossr50.commands.hardcore; import com.gmail.nossr50.config.Config; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.skill.RootSkill; import org.bukkit.command.CommandSender; public class HardcoreCommand extends HardcoreModeCommand { @@ -19,9 +19,9 @@ public class HardcoreCommand extends HardcoreModeCommand { } @Override - protected boolean checkEnabled(RootSkill rootSkill) { - if (rootSkill == null) { - for (RootSkill rootSkill : PrimarySkillType.values()) { + protected boolean checkEnabled(PrimarySkillType skill) { + if (skill == null) { + for (PrimarySkillType primarySkillType : PrimarySkillType.values()) { if (!primarySkillType.getHardcoreStatLossEnabled()) { return false; } @@ -30,16 +30,16 @@ public class HardcoreCommand extends HardcoreModeCommand { return true; } - return rootSkill.getHardcoreStatLossEnabled(); + return skill.getHardcoreStatLossEnabled(); } @Override - protected void enable(RootSkill rootSkill) { + protected void enable(PrimarySkillType skill) { toggle(true, skill); } @Override - protected void disable(RootSkill rootSkill) { + protected void disable(PrimarySkillType skill) { toggle(false, skill); } @@ -49,16 +49,16 @@ public class HardcoreCommand extends HardcoreModeCommand { sender.sendMessage(LocaleLoader.getString("Hardcore.DeathStatLoss.PercentageChanged", percent.format(newPercentage / 100.0D))); } - private void toggle(boolean enable, RootSkill rootSkill) { - if (rootSkill == null) { - for (RootSkill rootSkill : PrimarySkillType.NON_CHILD_SKILLS) { + private void toggle(boolean enable, PrimarySkillType skill) { + if (skill == null) { + for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) { primarySkillType.setHardcoreStatLossEnabled(enable); } } else { - rootSkill.setHardcoreStatLossEnabled(enable); + skill.setHardcoreStatLossEnabled(enable); } - mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), (rootSkill == null ? "all skills" : rootSkill.getName()))); + mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), (skill == null ? "all skills" : skill.getName()))); } } \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreModeCommand.java b/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreModeCommand.java index 562833b0c..62206566a 100644 --- a/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreModeCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreModeCommand.java @@ -1,10 +1,10 @@ package com.gmail.nossr50.commands.hardcore; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.text.StringUtils; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.skill.RootSkill; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -75,7 +75,7 @@ public abstract class HardcoreModeCommand implements TabExecutor { return true; } - RootSkill rootSkill = mcMMO.p.getSkillRegister().getSkill(args[0]); + PrimarySkillType skill = PrimarySkillType.getSkill(args[0]); if (!CommandUtils.isChildSkill(sender, skill)) { return true; @@ -87,7 +87,7 @@ public abstract class HardcoreModeCommand implements TabExecutor { return true; } - enable(rootSkill); + enable(skill); return true; } @@ -97,7 +97,7 @@ public abstract class HardcoreModeCommand implements TabExecutor { return true; } - enable(rootSkill); + enable(skill); return true; } @@ -122,8 +122,8 @@ public abstract class HardcoreModeCommand implements TabExecutor { protected abstract boolean checkTogglePermissions(CommandSender sender); protected abstract boolean checkModifyPermissions(CommandSender sender); - protected abstract boolean checkEnabled(RootSkill rootSkill); - protected abstract void enable(RootSkill rootSkill); - protected abstract void disable(RootSkill rootSkill); + protected abstract boolean checkEnabled(PrimarySkillType skill); + protected abstract void enable(PrimarySkillType skill); + protected abstract void disable(PrimarySkillType skill); protected abstract void modify(CommandSender sender, double newPercentage); } diff --git a/src/main/java/com/gmail/nossr50/commands/hardcore/VampirismCommand.java b/src/main/java/com/gmail/nossr50/commands/hardcore/VampirismCommand.java index 592b93436..854871e05 100644 --- a/src/main/java/com/gmail/nossr50/commands/hardcore/VampirismCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/hardcore/VampirismCommand.java @@ -1,10 +1,10 @@ package com.gmail.nossr50.commands.hardcore; import com.gmail.nossr50.config.Config; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.skill.RootSkill; import org.bukkit.command.CommandSender; public class VampirismCommand extends HardcoreModeCommand { @@ -19,9 +19,9 @@ public class VampirismCommand extends HardcoreModeCommand { } @Override - protected boolean checkEnabled(RootSkill rootSkill) { - if (rootSkill == null) { - for (RootSkill rootSkill : PrimarySkillType.values()) { + protected boolean checkEnabled(PrimarySkillType skill) { + if (skill == null) { + for (PrimarySkillType primarySkillType : PrimarySkillType.values()) { if (!primarySkillType.getHardcoreVampirismEnabled()) { return false; } @@ -30,16 +30,16 @@ public class VampirismCommand extends HardcoreModeCommand { return true; } - return rootSkill.getHardcoreVampirismEnabled(); + return skill.getHardcoreVampirismEnabled(); } @Override - protected void enable(RootSkill rootSkill) { + protected void enable(PrimarySkillType skill) { toggle(true, skill); } @Override - protected void disable(RootSkill rootSkill) { + protected void disable(PrimarySkillType skill) { toggle(false, skill); } @@ -49,16 +49,16 @@ public class VampirismCommand extends HardcoreModeCommand { sender.sendMessage(LocaleLoader.getString("Hardcore.Vampirism.PercentageChanged", percent.format(newPercentage / 100.0D))); } - private void toggle(boolean enable, RootSkill rootSkill) { - if (rootSkill == null) { - for (RootSkill rootSkill : PrimarySkillType.NON_CHILD_SKILLS) { + private void toggle(boolean enable, PrimarySkillType skill) { + if (skill == null) { + for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) { primarySkillType.setHardcoreVampirismEnabled(enable); } } else { - rootSkill.setHardcoreVampirismEnabled(enable); + skill.setHardcoreVampirismEnabled(enable); } - mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.Vampirism.Name"), (rootSkill == null ? "all skills" : skill))); + mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.Vampirism.Name"), (skill == null ? "all skills" : skill))); } } \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java index 908a9a9d9..09cb1165e 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java @@ -1,8 +1,9 @@ package com.gmail.nossr50.commands.party; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; +import com.gmail.nossr50.party.PartyManager; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -16,25 +17,25 @@ public class PartyAcceptCommand implements CommandExecutor { Player player = (Player) sender; //Check if player profile is loaded - if (mcMMO.getUserManager().queryPlayer(player) == null) { + if (UserManager.getPlayer(player) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); - if (!mmoPlayer.hasPartyInvite()) { + if (!mcMMOPlayer.hasPartyInvite()) { sender.sendMessage(LocaleLoader.getString("mcMMO.NoInvites")); return true; } // Changing parties - if (!mcMMO.getPartyManager().changeOrJoinParty(mmoPlayer, mmoPlayer.getPartyInvite().getName())) { + if (!PartyManager.changeOrJoinParty(mcMMOPlayer, mcMMOPlayer.getPartyInvite().getName())) { return true; } - mcMMO.getPartyManager().joinInvitedParty(mmoPlayer); + PartyManager.joinInvitedParty(mcMMOPlayer); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "accept")); 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 ae02730a1..a918a3ce9 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java @@ -1,9 +1,11 @@ package com.gmail.nossr50.commands.party; +import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.commands.CommandUtils; -import com.neetgames.mcmmo.party.Party; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -15,27 +17,21 @@ public class PartyChangeOwnerCommand implements CommandExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { if (args.length == 2) {//Check if player profile is loaded - if (mcMMO.getUserManager().queryMcMMOPlayer((Player) sender) == null) { + if (UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - Party playerParty = mcMMO.getUserManager().queryMcMMOPlayer((Player) sender).getParty(); + Party playerParty = UserManager.getPlayer((Player) sender).getParty(); String targetName = CommandUtils.getMatchedPlayerName(args[1]); OfflinePlayer target = mcMMO.p.getServer().getOfflinePlayer(targetName); - if(playerParty == null) { - //TODO: Localize - sender.sendMessage("Party is null!"); - return true; - } - - if (!playerParty.getPartyMemberManager().hasMember(target.getUniqueId())) { + if (!playerParty.hasMember(target.getUniqueId())) { sender.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName)); return true; } - mcMMO.getPartyManager().setPartyLeader(target.getUniqueId(), playerParty); + PartyManager.setPartyLeader(target.getUniqueId(), playerParty); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "owner", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyChangePasswordCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyChangePasswordCommand.java index 40c61eae8..b8d835ef3 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyChangePasswordCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyChangePasswordCommand.java @@ -1,8 +1,8 @@ package com.gmail.nossr50.commands.party; +import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; -import com.neetgames.mcmmo.party.Party; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -12,13 +12,13 @@ import org.jetbrains.annotations.NotNull; public class PartyChangePasswordCommand implements CommandExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { - if(mcMMO.getUserManager().queryPlayer((Player) sender) == null) + if(UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - Party party = mcMMO.getUserManager().queryPlayer((Player) sender).getParty(); + Party party = UserManager.getPlayer((Player) sender).getParty(); switch (args.length) { case 1: @@ -42,14 +42,14 @@ public class PartyChangePasswordCommand implements CommandExecutor { } private void unprotectParty(Party party, CommandSender sender) { - party.setPartyLock(true); - party.setPartyPassword(null); + party.setLocked(true); + party.setPassword(null); sender.sendMessage(LocaleLoader.getString("Party.Password.Removed")); } private void protectParty(Party party, CommandSender sender, String password) { - party.setPartyLock(true); - party.setPartyPassword(password); + party.setLocked(true); + party.setPassword(password); sender.sendMessage(LocaleLoader.getString("Party.Password.Set", password)); } } diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java index 21384593d..f3523445c 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java @@ -1,14 +1,14 @@ package com.gmail.nossr50.commands.party; -import com.gmail.nossr50.commands.chat.PartyChatCommand; +import com.gmail.nossr50.commands.party.alliance.PartyAllianceCommand; import com.gmail.nossr50.commands.party.teleport.PtpCommand; +import com.gmail.nossr50.datatypes.party.Party; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.party.Party; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -30,7 +30,7 @@ public class PartyCommand implements TabExecutor { static { ArrayList subcommands = new ArrayList<>(); - for (PartySubCommandType subcommand : PartySubCommandType.values()) { + for (PartySubcommandType subcommand : PartySubcommandType.values()) { subcommands.add(subcommand.toString()); } @@ -38,19 +38,23 @@ public class PartyCommand implements TabExecutor { PARTY_SUBCOMMANDS = ImmutableList.copyOf(subcommands); } + private final CommandExecutor partyJoinCommand = new PartyJoinCommand(); private final CommandExecutor partyAcceptCommand = new PartyAcceptCommand(); private final CommandExecutor partyCreateCommand = new PartyCreateCommand(); private final CommandExecutor partyQuitCommand = new PartyQuitCommand(); private final CommandExecutor partyXpShareCommand = new PartyXpShareCommand(); + private final CommandExecutor partyItemShareCommand = new PartyItemShareCommand(); private final CommandExecutor partyInviteCommand = new PartyInviteCommand(); private final CommandExecutor partyKickCommand = new PartyKickCommand(); private final CommandExecutor partyDisbandCommand = new PartyDisbandCommand(); private final CommandExecutor partyChangeOwnerCommand = new PartyChangeOwnerCommand(); + private final CommandExecutor partyLockCommand = new PartyLockCommand(); + private final CommandExecutor partyChangePasswordCommand = new PartyChangePasswordCommand(); private final CommandExecutor partyRenameCommand = new PartyRenameCommand(); private final CommandExecutor partyInfoCommand = new PartyInfoCommand(); private final CommandExecutor partyHelpCommand = new PartyHelpCommand(); private final CommandExecutor partyTeleportCommand = new PtpCommand(); - private final CommandExecutor partyChatCommand = new PartyChatCommand(); + private final CommandExecutor partyAllianceCommand = new PartyAllianceCommand(); @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { @@ -65,20 +69,20 @@ public class PartyCommand implements TabExecutor { Player player = (Player) sender; - if (!mcMMO.getUserManager().hasPlayerDataKey(player)) { + if (!UserManager.hasPlayerDataKey(player)) { return true; } - if(mcMMO.getUserManager().queryPlayer(player) == null) + if(UserManager.getPlayer(player) == null) { player.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); if (args.length < 1) { - if (!mcMMO.getPartyManager().mmoPlayer.inParty()) { + if (!mcMMOPlayer.inParty()) { sender.sendMessage(LocaleLoader.getString("Commands.Party.None")); return printUsage(player); } @@ -86,19 +90,21 @@ public class PartyCommand implements TabExecutor { return partyInfoCommand.onCommand(sender, command, label, args); } - PartySubCommandType subcommand = PartySubCommandType.getSubcommand(args[0]); + PartySubcommandType subcommand = PartySubcommandType.getSubcommand(args[0]); if (subcommand == null) { return printUsage(player); } // Can't use this for lock/unlock since they're handled by the same command - if (!Permissions.partySubcommand(sender, subcommand)) { + if (subcommand != PartySubcommandType.LOCK && subcommand != PartySubcommandType.UNLOCK && !Permissions.partySubcommand(sender, subcommand)) { sender.sendMessage(command.getPermissionMessage()); return true; } switch (subcommand) { + case JOIN: + return partyJoinCommand.onCommand(sender, command, label, args); case ACCEPT: return partyAcceptCommand.onCommand(sender, command, label, args); case CREATE: @@ -110,7 +116,7 @@ public class PartyCommand implements TabExecutor { } // Party member commands - if (!mmoPlayer.inParty()) { + if (!mcMMOPlayer.inParty()) { sender.sendMessage(LocaleLoader.getString("Commands.Party.None")); return printUsage(player); } @@ -129,7 +135,7 @@ public class PartyCommand implements TabExecutor { } // Party leader commands - if (!mmoPlayer.getParty().getLeader().getUniqueId().equals(player.getUniqueId())) { + if (!mcMMOPlayer.getParty().getLeader().getUniqueId().equals(player.getUniqueId())) { sender.sendMessage(LocaleLoader.getString("Party.NotOwner")); return true; } @@ -137,14 +143,23 @@ public class PartyCommand implements TabExecutor { switch (subcommand) { case XPSHARE: return partyXpShareCommand.onCommand(sender, command, label, args); + case ITEMSHARE: + return partyItemShareCommand.onCommand(sender, command, label, args); case KICK: return partyKickCommand.onCommand(sender, command, label, args); case DISBAND: return partyDisbandCommand.onCommand(sender, command, label, args); case OWNER: return partyChangeOwnerCommand.onCommand(sender, command, label, args); + case LOCK: + case UNLOCK: + return partyLockCommand.onCommand(sender, command, label, args); + case PASSWORD: + return partyChangePasswordCommand.onCommand(sender, command, label, args); case RENAME: return partyRenameCommand.onCommand(sender, command, label, args); + case ALLIANCE: + return partyAllianceCommand.onCommand(sender, command, label, args); default: break; } @@ -158,7 +173,7 @@ public class PartyCommand implements TabExecutor { case 1: return StringUtil.copyPartialMatches(args[0], PARTY_SUBCOMMANDS, new ArrayList<>(PARTY_SUBCOMMANDS.size())); case 2: - PartySubCommandType subcommand = PartySubCommandType.getSubcommand(args[0]); + PartySubcommandType subcommand = PartySubcommandType.getSubcommand(args[0]); if (subcommand == null) { return ImmutableList.of(); @@ -187,13 +202,13 @@ public class PartyCommand implements TabExecutor { Player player = (Player) sender; //Not Loaded - if(mcMMO.getUserManager().queryPlayer(player) == null) + if(UserManager.getPlayer(player) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return ImmutableList.of(); } - Party party = mcMMO.getUserManager().queryPlayer(player).getParty(); + Party party = UserManager.getPlayer(player).getParty(); playerNames = party.getOnlinePlayerNames(player); return StringUtil.copyPartialMatches(args[1], playerNames, new ArrayList<>(playerNames.size())); @@ -204,7 +219,7 @@ public class PartyCommand implements TabExecutor { return ImmutableList.of(); } case 3: - if (PartySubCommandType.getSubcommand(args[0]) == PartySubCommandType.ITEMSHARE && isItemShareCategory(args[1])) { + if (PartySubcommandType.getSubcommand(args[0]) == PartySubcommandType.ITEMSHARE && isItemShareCategory(args[1])) { return StringUtil.copyPartialMatches(args[2], CommandUtils.TRUE_FALSE_OPTIONS, new ArrayList<>(CommandUtils.TRUE_FALSE_OPTIONS.size())); } diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java index eaa602d63..34daed151 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java @@ -1,8 +1,9 @@ package com.gmail.nossr50.commands.party; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; +import com.gmail.nossr50.party.PartyManager; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -16,26 +17,25 @@ public class PartyCreateCommand implements CommandExecutor { case 2: case 3: Player player = (Player) sender; - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); - if(mcMMO.getUserManager().queryPlayer(player) == null) + if(UserManager.getPlayer(player) == null) { player.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } // Check to see if the party exists, and if it does cancel creating a new party - if (mcMMO.getPartyManager().isParty(args[1])) { - player.sendMessage(LocaleLoader.getString("Commands.Party.AlreadyExists", args[1])); + if (PartyManager.checkPartyExistence(player, args[1])) { return true; } // Changing parties - if (!mcMMO.getPartyManager().changeOrJoinParty(mmoPlayer, args[1])) { + if (!PartyManager.changeOrJoinParty(mcMMOPlayer, args[1])) { return true; } - mcMMO.getPartyManager().createParty(mmoPlayer, args[1], getPassword(args)); + PartyManager.createParty(mcMMOPlayer, args[1], getPassword(args)); return true; default: diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java index 65a3b2c9c..f4f8f3d2a 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java @@ -1,9 +1,10 @@ package com.gmail.nossr50.commands.party; +import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; -import com.neetgames.mcmmo.party.Party; +import com.gmail.nossr50.party.PartyManager; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -14,23 +15,23 @@ public class PartyDisbandCommand implements CommandExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { if (args.length == 1) { - if (mcMMO.getUserManager().queryPlayer((Player) sender) == null) { + if (UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - Party playerParty = mcMMO.getUserManager().queryPlayer((Player) sender).getParty(); - String partyName = playerParty.getPartyName(); + Party playerParty = UserManager.getPlayer((Player) sender).getParty(); + String partyName = playerParty.getName(); - for (PartyMember member : playerParty.getPartyMembers()) { - if (!mcMMO.getPartyManager().handlePartyChangeEvent(member, partyName, null, EventReason.KICKED_FROM_PARTY)) { + for (Player member : playerParty.getOnlineMembers()) { + if (!PartyManager.handlePartyChangeEvent(member, partyName, null, EventReason.KICKED_FROM_PARTY)) { return true; } member.sendMessage(LocaleLoader.getString("Party.Disband")); } - mcMMO.getPartyManager().disbandParty(playerParty); + PartyManager.disbandParty(playerParty); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "disband")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java index 48aedc599..ec28ac529 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java @@ -1,11 +1,14 @@ package com.gmail.nossr50.commands.party; import com.gmail.nossr50.config.Config; -import com.gmail.nossr50.party.PartyFeature; +import com.gmail.nossr50.datatypes.party.Party; +import com.gmail.nossr50.datatypes.party.PartyFeature; +import com.gmail.nossr50.datatypes.party.ShareMode; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; -import com.neetgames.mcmmo.party.Party; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; +import com.gmail.nossr50.party.PartyManager; +import com.gmail.nossr50.util.player.UserManager; +import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -21,19 +24,19 @@ public class PartyInfoCommand implements CommandExecutor { switch (args.length) { case 0: case 1: - if(mcMMO.getUserManager().queryPlayer((Player) sender) == null) + if(UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } Player player = (Player) sender; - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); - Party party = mmoPlayer.getParty(); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); + Party party = mcMMOPlayer.getParty(); displayPartyHeader(player, party); displayShareModeInfo(player, party); displayPartyFeatures(player, party); - displayMemberInfo(player, mmoPlayer, party); + displayMemberInfo(player, mcMMOPlayer, party); return true; default: @@ -46,7 +49,7 @@ public class PartyInfoCommand implements CommandExecutor { player.sendMessage(LocaleLoader.getString("Commands.Party.Header")); StringBuilder status = new StringBuilder(); - status.append(LocaleLoader.getString("Commands.Party.Status", party.getPartyName(), LocaleLoader.getString("Party.Status." + (party.isLocked() ? "Locked" : "Unlocked")), party.getLevel())); + status.append(LocaleLoader.getString("Commands.Party.Status", party.getName(), LocaleLoader.getString("Party.Status." + (party.isLocked() ? "Locked" : "Unlocked")), party.getLevel())); if (!party.hasReachedLevelCap()) { status.append(" (").append(party.getXpToLevelPercentage()).append(")"); @@ -87,26 +90,42 @@ public class PartyInfoCommand implements CommandExecutor { private void displayShareModeInfo(Player player, Party party) { boolean xpShareEnabled = isUnlockedFeature(party, PartyFeature.XP_SHARE); + boolean itemShareEnabled = isUnlockedFeature(party, PartyFeature.ITEM_SHARE); + boolean itemSharingActive = (party.getItemShareMode() != ShareMode.NONE); - if (!xpShareEnabled) { + if (!xpShareEnabled && !itemShareEnabled) { return; } String expShareInfo = ""; + String itemShareInfo = ""; + String separator = ""; if (xpShareEnabled) { expShareInfo = LocaleLoader.getString("Commands.Party.ExpShare", party.getXpShareMode().toString()); } - player.sendMessage(LocaleLoader.getString("Commands.Party.ShareMode") + expShareInfo); + if (itemShareEnabled) { + itemShareInfo = LocaleLoader.getString("Commands.Party.ItemShare", party.getItemShareMode().toString()); + } + + if (xpShareEnabled && itemShareEnabled) { + separator = ChatColor.DARK_GRAY + " || "; + } + + player.sendMessage(LocaleLoader.getString("Commands.Party.ShareMode") + expShareInfo + separator + itemShareInfo); + + if (itemSharingActive) { + player.sendMessage(LocaleLoader.getString("Commands.Party.ItemShareCategories", party.getItemShareCategories())); + } } - private void displayMemberInfo(Player player, OnlineMMOPlayer mmoPlayer, Party party) { + private void displayMemberInfo(Player player, McMMOPlayer mcMMOPlayer, Party party) { /* * Only show members of the party that this member can see */ - List nearMembers = mcMMO.getPartyManager().getNearVisibleMembers(mmoPlayer); + List nearMembers = PartyManager.getNearVisibleMembers(mcMMOPlayer); int membersOnline = party.getVisibleMembers(player).size(); player.sendMessage(LocaleLoader.getString("Commands.Party.Members.Header")); 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 f9852c4e2..7d6c6a8ca 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java @@ -1,11 +1,12 @@ package com.gmail.nossr50.commands.party; import com.gmail.nossr50.config.Config; +import com.gmail.nossr50.datatypes.party.Party; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.commands.CommandUtils; -import com.neetgames.mcmmo.party.Party; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -17,7 +18,7 @@ public class PartyInviteCommand implements CommandExecutor { public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { if (args.length == 2) { String targetName = CommandUtils.getMatchedPlayerName(args[1]); - OnlineMMOPlayer mcMMOTarget = mcMMO.getUserManager().queryPlayer(targetName); + McMMOPlayer mcMMOTarget = UserManager.getOfflinePlayer(targetName); if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) { return false; @@ -25,13 +26,13 @@ public class PartyInviteCommand implements CommandExecutor { Player target = mcMMOTarget.getPlayer(); - if (mcMMO.getUserManager().queryPlayer((Player) sender) == null) { + if (UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } Player player = (Player) sender; - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); String playerName = player.getName(); if (player.equals(target)) { @@ -39,19 +40,19 @@ public class PartyInviteCommand implements CommandExecutor { return true; } - if (mcMMO.getPartyManager().inSameParty(player, target)) { + if (PartyManager.inSameParty(player, target)) { sender.sendMessage(LocaleLoader.getString("Party.Player.InSameParty", targetName)); return true; } - if (!mcMMO.getPartyManager().canInvite(mmoPlayer)) { + if (!PartyManager.canInvite(mcMMOPlayer)) { player.sendMessage(LocaleLoader.getString("Party.Locked")); return true; } - Party playerParty = mmoPlayer.getParty(); + Party playerParty = mcMMOPlayer.getParty(); - if (mcMMO.getPartyManager().isPartyFull(target, playerParty)) { + if (PartyManager.isPartyFull(target, playerParty)) { player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull.Invite", target.getName(), playerParty.toString(), Config.getInstance().getPartyMaxSize())); return true; } @@ -59,7 +60,7 @@ public class PartyInviteCommand implements CommandExecutor { mcMMOTarget.setPartyInvite(playerParty); sender.sendMessage(LocaleLoader.getString("Commands.Invite.Success")); - target.sendMessage(LocaleLoader.getString("Commands.Party.Invite.0", playerParty.getPartyName(), playerName)); + target.sendMessage(LocaleLoader.getString("Commands.Party.Invite.0", playerParty.getName(), playerName)); target.sendMessage(LocaleLoader.getString("Commands.Party.Invite.1")); return true; } diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java new file mode 100644 index 000000000..8971fc0ed --- /dev/null +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java @@ -0,0 +1,88 @@ +package com.gmail.nossr50.commands.party; + +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.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +public class PartyJoinCommand implements CommandExecutor { + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { + switch (args.length) { + case 2: + case 3: + String targetName = CommandUtils.getMatchedPlayerName(args[1]); + McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName); + + if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) { + return true; + } + + Player target = mcMMOTarget.getPlayer(); + + if (!mcMMOTarget.inParty()) { + sender.sendMessage(LocaleLoader.getString("Party.PlayerNotInParty", targetName)); + return true; + } + + Player player = (Player) sender; + + if(UserManager.getPlayer((Player) sender) == null) + { + sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); + return true; + } + + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); + Party targetParty = mcMMOTarget.getParty(); + + if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) { + sender.sendMessage(LocaleLoader.getString("Party.Join.Self")); + return true; + } + + String password = getPassword(args); + + // Make sure party passwords match + if (!PartyManager.checkPartyPassword(player, targetParty, password)) { + return true; + } + + String partyName = targetParty.getName(); + + // Changing parties + if (!PartyManager.changeOrJoinParty(mcMMOPlayer, partyName)) { + return true; + } + + if(PartyManager.isPartyFull(player, targetParty)) + { + player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull", targetParty.toString())); + return true; + } + + player.sendMessage(LocaleLoader.getString("Commands.Party.Join", partyName)); + PartyManager.addToParty(mcMMOPlayer, targetParty); + return true; + + default: + sender.sendMessage(LocaleLoader.getString("Commands.Usage.3", "party", "join", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">", "[" + LocaleLoader.getString("Commands.Usage.Password") + "]")); + return true; + } + } + + private String getPassword(String[] args) { + if (args.length == 3) { + return args[2]; + } + + return null; + } +} diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java index 60cc60f89..fd6b3e495 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java @@ -1,10 +1,12 @@ package com.gmail.nossr50.commands.party; +import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.commands.CommandUtils; -import com.neetgames.mcmmo.party.Party; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -16,12 +18,12 @@ public class PartyKickCommand implements CommandExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { if (args.length == 2) { - if (mcMMO.getUserManager().queryPlayer((Player) sender) == null) { + if (UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - Party playerParty = mcMMO.getUserManager().queryPlayer((Player) sender).getParty(); + Party playerParty = UserManager.getPlayer((Player) sender).getParty(); String targetName = CommandUtils.getMatchedPlayerName(args[1]); if (!playerParty.hasMember(targetName)) { @@ -33,17 +35,17 @@ public class PartyKickCommand implements CommandExecutor { if (target.isOnline()) { Player onlineTarget = target.getPlayer(); - String partyName = playerParty.getPartyName(); + String partyName = playerParty.getName(); - if (!mcMMO.getPartyManager().handlePartyChangeEvent(onlineTarget, partyName, null, EventReason.KICKED_FROM_PARTY)) { + if (!PartyManager.handlePartyChangeEvent(onlineTarget, partyName, null, EventReason.KICKED_FROM_PARTY)) { return true; } - mcMMO.getPartyManager().processPartyLeaving(mcMMO.getUserManager().queryPlayer(onlineTarget)); + PartyManager.processPartyLeaving(UserManager.getPlayer(onlineTarget)); onlineTarget.sendMessage(LocaleLoader.getString("Commands.Party.Kick", partyName)); } - mcMMO.getPartyManager().removeFromParty(target, playerParty); + PartyManager.removeFromParty(target, playerParty); return true; } sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "kick", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java index 943a3053f..c450a0757 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java @@ -1,9 +1,11 @@ package com.gmail.nossr50.commands.party; +import com.gmail.nossr50.datatypes.party.Party; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.locale.LocaleLoader; -import com.neetgames.mcmmo.party.Party; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; +import com.gmail.nossr50.party.PartyManager; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -16,19 +18,19 @@ public class PartyQuitCommand implements CommandExecutor { if (args.length == 1) { Player player = (Player) sender; - if (mcMMO.getUserManager().getPlayer((Player) sender) == null) { + if (UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().getPlayer(player); - Party playerParty = mmoPlayer.getParty(); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); + Party playerParty = mcMMOPlayer.getParty(); - if (!mcMMO.getPartyManager().handlePartyChangeEvent(player, playerParty.getPartyName(), null, EventReason.LEFT_PARTY)) { + if (!PartyManager.handlePartyChangeEvent(player, playerParty.getName(), null, EventReason.LEFT_PARTY)) { return true; } - mcMMO.getPartyManager().removeFromParty(mmoPlayer); + PartyManager.removeFromParty(mcMMOPlayer); sender.sendMessage(LocaleLoader.getString("Commands.Party.Leave")); return true; } diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java index a3043aa59..2ab6f0621 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java @@ -1,10 +1,11 @@ package com.gmail.nossr50.commands.party; +import com.gmail.nossr50.datatypes.party.Party; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; -import com.neetgames.mcmmo.party.Party; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; +import com.gmail.nossr50.party.PartyManager; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -15,15 +16,15 @@ public class PartyRenameCommand implements CommandExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { if (args.length == 2) { - if (mcMMO.getUserManager().queryPlayer((Player) sender) == null) { + if (UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer((Player) sender); - Party playerParty = mmoPlayer.getParty(); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender); + Party playerParty = mcMMOPlayer.getParty(); - String oldPartyName = playerParty.getPartyName(); + String oldPartyName = playerParty.getName(); String newPartyName = args[1]; // This is to prevent party leaders from spamming other players with the rename message @@ -32,27 +33,26 @@ public class PartyRenameCommand implements CommandExecutor { return true; } - Player player = Misc.adaptPlayer(mmoPlayer); + Player player = mcMMOPlayer.getPlayer(); // Check to see if the party exists, and if it does cancel renaming the party - if (mcMMO.getPartyManager().isParty(newPartyName)) { - player.sendMessage(LocaleLoader.getString("Commands.Party.AlreadyExists", newPartyName)); + if (PartyManager.checkPartyExistence(player, newPartyName)) { return true; } String leaderName = playerParty.getLeader().getPlayerName(); - for (PartyMember partyMember : playerParty.getPartyMembers()) { - if (!mcMMO.getPartyManager().handlePartyChangeEvent(partyMember, oldPartyName, newPartyName, EventReason.CHANGED_PARTIES)) { + for (Player member : playerParty.getOnlineMembers()) { + if (!PartyManager.handlePartyChangeEvent(member, oldPartyName, newPartyName, EventReason.CHANGED_PARTIES)) { return true; } - if (!partyMember.getName().equalsIgnoreCase(leaderName)) { - partyMember.sendMessage(LocaleLoader.getString("Party.InformedOnNameChange", leaderName, newPartyName)); + if (!member.getName().equalsIgnoreCase(leaderName)) { + member.sendMessage(LocaleLoader.getString("Party.InformedOnNameChange", leaderName, newPartyName)); } } - playerParty.setPartyName(newPartyName); + playerParty.setName(newPartyName); sender.sendMessage(LocaleLoader.getString("Commands.Party.Rename", newPartyName)); return true; diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyXpShareCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyXpShareCommand.java index 1f18caa71..a8354914e 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyXpShareCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyXpShareCommand.java @@ -1,12 +1,13 @@ package com.gmail.nossr50.commands.party; import com.gmail.nossr50.config.Config; -import com.gmail.nossr50.party.PartyFeature; +import com.gmail.nossr50.datatypes.party.Party; +import com.gmail.nossr50.datatypes.party.PartyFeature; +import com.gmail.nossr50.datatypes.party.ShareMode; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.text.StringUtils; -import com.neetgames.mcmmo.party.Party; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -16,13 +17,13 @@ import org.jetbrains.annotations.NotNull; public class PartyXpShareCommand implements CommandExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { - if(mcMMO.getUserManager().queryPlayer((Player) sender) == null) + if(UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - Party party = mcMMO.getUserManager().queryPlayer((Player) sender).getParty(); + Party party = UserManager.getPlayer((Player) sender).getParty(); if (party.getLevel() < Config.getInstance().getPartyFeatureUnlockLevel(PartyFeature.XP_SHARE)) { sender.sendMessage(LocaleLoader.getString("Party.Feature.Disabled.5")); @@ -49,7 +50,7 @@ public class PartyXpShareCommand implements CommandExecutor { String changeModeMessage = LocaleLoader.getString("Commands.Party.SetSharing", LocaleLoader.getString("Party.ShareType.Xp"), LocaleLoader.getString("Party.ShareMode." + StringUtils.getCapitalized(mode.toString()))); - for (Player member : party.getPartyMembers()) { + for (Player member : party.getOnlineMembers()) { member.sendMessage(changeModeMessage); } } diff --git a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptAnyCommand.java b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptAnyCommand.java index 8d59aa38e..9822860f6 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptAnyCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptAnyCommand.java @@ -1,16 +1,12 @@ package com.gmail.nossr50.commands.party.teleport; -import com.gmail.nossr50.party.PartyTeleportRecord; +import com.gmail.nossr50.datatypes.party.PartyTeleportRecord; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.Permissions; -import com.neetgames.mcmmo.party.Party; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; public class PtpAcceptAnyCommand implements CommandExecutor { @@ -21,36 +17,7 @@ public class PtpAcceptAnyCommand implements CommandExecutor { return true; } - if(sender instanceof ConsoleCommandSender) - return false; - - Player playerSender = (Player) sender; - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(playerSender); - - if(mmoPlayer == null) { - playerSender.sendMessage(LocaleLoader.getString("Commands.NotLoaded")); - return false; - } - - Party party = mcMMO.getPartyManager().getParty(playerSender); - if(party == null) { - //TODO: Localize error message - playerSender.sendMessage("You don't have a party!"); - return false; - } - - PartyMember partyMember = party.getPartyMember(playerSender.getUniqueId()); - - if(partyMember == null) { - mcMMO.p.getLogger().severe("PartyMember ref didn't exist for player named "+playerSender.getName() + ", this should never happen!"); - return false; - } - - PartyTeleportRecord ptpRecord = partyMember.getPartyTeleportRecord(); - - if(ptpRecord == null) { - - } + PartyTeleportRecord ptpRecord = UserManager.getPlayer(sender.getName()).getPartyTeleportRecord(); if (ptpRecord.isConfirmRequired()) { sender.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Disabled")); diff --git a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptCommand.java b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptCommand.java index f21edb497..86728e272 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptCommand.java @@ -1,10 +1,11 @@ package com.gmail.nossr50.commands.party.teleport; import com.gmail.nossr50.config.Config; -import com.gmail.nossr50.party.PartyTeleportRecord; +import com.gmail.nossr50.datatypes.party.PartyTeleportRecord; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; +import com.gmail.nossr50.util.skills.SkillUtils; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -20,21 +21,21 @@ public class PtpAcceptCommand implements CommandExecutor { return true; } - if(mcMMO.getUserManager().queryPlayer((Player) sender) == null) + if(UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } Player player = (Player) sender; - PartyTeleportRecord ptpRecord = mcMMO.getUserManager().queryPlayer(player).getPartyTeleportRecord(); + PartyTeleportRecord ptpRecord = UserManager.getPlayer(player).getPartyTeleportRecord(); if (!ptpRecord.hasRequest()) { player.sendMessage(LocaleLoader.getString("Commands.ptp.NoRequests")); return true; } - if (rootSkillUtils.cooldownExpired(ptpRecord.getTimeout(), Config.getInstance().getPTPCommandTimeout())) { + if (SkillUtils.cooldownExpired(ptpRecord.getTimeout(), Config.getInstance().getPTPCommandTimeout())) { ptpRecord.removeRequest(); player.sendMessage(LocaleLoader.getString("Commands.ptp.RequestExpired")); return true; 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 eac3d7692..893164435 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 @@ -2,22 +2,23 @@ package com.gmail.nossr50.commands.party.teleport; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.WorldBlacklist; -import com.gmail.nossr50.party.PartyFeature; -import com.gmail.nossr50.party.PartyTeleportRecord; +import com.gmail.nossr50.datatypes.party.Party; +import com.gmail.nossr50.datatypes.party.PartyFeature; +import com.gmail.nossr50.datatypes.party.PartyTeleportRecord; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.runnables.items.TeleportationWarmup; 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; import com.gmail.nossr50.util.skills.SkillUtils; import com.gmail.nossr50.worldguard.WorldGuardManager; import com.gmail.nossr50.worldguard.WorldGuardUtils; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.party.Party; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -56,24 +57,24 @@ public class PtpCommand implements TabExecutor { if(WorldBlacklist.isWorldBlacklisted(player.getWorld())) return true; - if (!mcMMO.getUserManager().hasPlayerDataKey(player)) { + if (!UserManager.hasPlayerDataKey(player)) { return true; } - if(mcMMO.getUserManager().queryPlayer((Player) sender) == null) + if(UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); - if (!mmoPlayer.inParty()) { + if (!mcMMOPlayer.inParty()) { sender.sendMessage(LocaleLoader.getString("Commands.Party.None")); return true; } - Party party = mmoPlayer.getParty(); + Party party = mcMMOPlayer.getParty(); if (party.getLevel() < Config.getInstance().getPartyFeatureUnlockLevel(PartyFeature.TELEPORT)) { sender.sendMessage(LocaleLoader.getString("Party.Feature.Disabled.2")); @@ -89,7 +90,7 @@ public class PtpCommand implements TabExecutor { return ptpAcceptAnyCommand.onCommand(sender, command, label, args); } - long recentlyHurt = mmoPlayer.getRecentlyHurtTimestamp(); + long recentlyHurt = mcMMOPlayer.getRecentlyHurt(); int hurtCooldown = Config.getInstance().getPTPCommandRecentlyHurtCooldown(); if (hurtCooldown > 0) { @@ -111,7 +112,7 @@ public class PtpCommand implements TabExecutor { } int ptpCooldown = Config.getInstance().getPTPCommandCooldown(); - long ptpLastUse = mmoPlayer.getPartyTeleportRecord().getLastUse(); + long ptpLastUse = mcMMOPlayer.getPartyTeleportRecord().getLastUse(); if (ptpCooldown > 0) { int timeRemaining = SkillUtils.calculateTimeLeft(ptpLastUse * Misc.TIME_CONVERSION_FACTOR, ptpCooldown, player); @@ -134,19 +135,19 @@ public class PtpCommand implements TabExecutor { List matches = StringUtil.copyPartialMatches(args[0], TELEPORT_SUBCOMMANDS, new ArrayList<>(TELEPORT_SUBCOMMANDS.size())); if (matches.size() == 0) { - if (mcMMO.getUserManager().queryPlayer((Player) sender) == null) { + if (UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return ImmutableList.of(); } Player player = (Player) sender; - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); - if (!mmoPlayer.inParty()) { + if (!mcMMOPlayer.inParty()) { return ImmutableList.of(); } - List playerNames = mmoPlayer.getParty().getOnlinePlayerNames(player); + List playerNames = mcMMOPlayer.getParty().getOnlinePlayerNames(player); return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size())); } @@ -160,7 +161,7 @@ public class PtpCommand implements TabExecutor { return; } - OnlineMMOPlayer mcMMOTarget = mcMMO.getUserManager().getPlayer(targetName); + McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName); Player target = mcMMOTarget.getPlayer(); @@ -197,7 +198,7 @@ public class PtpCommand implements TabExecutor { } protected static boolean canTeleport(CommandSender sender, Player player, String targetName) { - OnlineMMOPlayer mcMMOTarget = mcMMO.getUserManager().queryPlayer(targetName); + McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName); if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) { return false; @@ -210,7 +211,7 @@ public class PtpCommand implements TabExecutor { return false; } - if (!mcMMO.getPartyManager().inSameParty(player, target)) { + if (!PartyManager.inSameParty(player, target)) { player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName)); return false; } @@ -229,29 +230,28 @@ public class PtpCommand implements TabExecutor { } protected static void handleTeleportWarmup(Player teleportingPlayer, Player targetPlayer) { - if(mcMMO.getUserManager().queryPlayer(targetPlayer) == null) { + if(UserManager.getPlayer(targetPlayer) == null) + { targetPlayer.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return; } - if(mcMMO.getUserManager().queryPlayer(teleportingPlayer) == null) { + if(UserManager.getPlayer(teleportingPlayer) == null) + { teleportingPlayer.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return; } - McMMOPlayer mmoPlayer = (McMMOPlayer) mcMMO.getUserManager().queryPlayer(teleportingPlayer); - McMMOPlayer mmoTargetPlayer = (McMMOPlayer) mcMMO.getUserManager().queryPlayer(targetPlayer); - - if(mmoPlayer == null || mmoTargetPlayer == null) - return; + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(teleportingPlayer); + McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetPlayer); long warmup = Config.getInstance().getPTPCommandWarmup(); - mmoPlayer.actualizeTeleportCommenceLocation(); + mcMMOPlayer.actualizeTeleportCommenceLocation(teleportingPlayer); if (warmup > 0) { teleportingPlayer.sendMessage(LocaleLoader.getString("Teleport.Commencing", warmup)); - new TeleportationWarmup(mmoPlayer, mmoTargetPlayer).runTaskLater(mcMMO.p, 20 * warmup); + new TeleportationWarmup(mcMMOPlayer, mcMMOTarget).runTaskLater(mcMMO.p, 20 * warmup); } else { EventUtils.handlePartyTeleportEvent(teleportingPlayer, targetPlayer); diff --git a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpToggleCommand.java b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpToggleCommand.java index 810cb9af3..aad4df9b9 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpToggleCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/teleport/PtpToggleCommand.java @@ -1,9 +1,9 @@ package com.gmail.nossr50.commands.party.teleport; -import com.gmail.nossr50.party.PartyTeleportRecord; +import com.gmail.nossr50.datatypes.party.PartyTeleportRecord; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -17,8 +17,7 @@ public class PtpToggleCommand implements CommandExecutor { return true; } - PartyTeleportRecord ptpRecord = mcMMO.getUserManager().queryPlayer(player) -.getPartyTeleportRecord(); + PartyTeleportRecord ptpRecord = UserManager.getPlayer(sender.getName()).getPartyTeleportRecord(); if (ptpRecord.isEnabled()) { sender.sendMessage(LocaleLoader.getString("Commands.ptp.Disabled")); diff --git a/src/main/java/com/gmail/nossr50/commands/player/MccooldownCommand.java b/src/main/java/com/gmail/nossr50/commands/player/MccooldownCommand.java index ba37ee3e7..74011a39c 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/MccooldownCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/MccooldownCommand.java @@ -1,12 +1,13 @@ package com.gmail.nossr50.commands.player; import com.gmail.nossr50.config.Config; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.SuperAbilityType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.scoreboards.ScoreboardManager; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -37,12 +38,12 @@ public class MccooldownCommand implements TabExecutor { } } - if (mcMMO.getUserManager().getPlayer(player) == null) { + if (UserManager.getPlayer(player) == null) { player.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().getPlayer(player); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); player.sendMessage(LocaleLoader.getString("Commands.Cooldowns.Header")); player.sendMessage(LocaleLoader.getString("mcMMO.NoSkillNote")); @@ -52,7 +53,7 @@ public class MccooldownCommand implements TabExecutor { continue; } - int seconds = mmoPlayer.getCooldownSeconds(ability); + int seconds = mcMMOPlayer.calculateTimeRemaining(ability); if (seconds <= 0) { player.sendMessage(LocaleLoader.getString("Commands.Cooldowns.Row.Y", ability.getLocalizedName())); 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 2311bb189..5a781cdfb 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java @@ -1,13 +1,14 @@ package com.gmail.nossr50.commands.player; import com.gmail.nossr50.config.Config; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.runnables.commands.McrankCommandAsyncTask; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -52,10 +53,10 @@ public class McrankCommand implements TabExecutor { } String playerName = CommandUtils.getMatchedPlayerName(args[0]); - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(playerName); + McMMOPlayer mcMMOPlayer = UserManager.getOfflinePlayer(playerName); - if (mmoPlayer != null) { - Player player = Misc.adaptPlayer(mmoPlayer); + if (mcMMOPlayer != null) { + Player player = mcMMOPlayer.getPlayer(); playerName = player.getName(); if (CommandUtils.tooFar(sender, player, Permissions.mcrankFar(sender))) { @@ -82,9 +83,9 @@ public class McrankCommand implements TabExecutor { private void display(CommandSender sender, String playerName) { if (sender instanceof Player) { - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(sender.getName()); - if(mmoPlayer == null) + if(mcMMOPlayer == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return; @@ -92,8 +93,8 @@ public class McrankCommand implements TabExecutor { long cooldownMillis = Math.min(Config.getInstance().getDatabasePlayerCooldown(), 1750); - if (mmoPlayer.getDatabaseCommandATS() + cooldownMillis > System.currentTimeMillis()) { - sender.sendMessage(LocaleLoader.getString("Commands.Database.CooldownMS", getCDSeconds(mmoPlayer, cooldownMillis))); + if (mcMMOPlayer.getDatabaseATS() + cooldownMillis > System.currentTimeMillis()) { + sender.sendMessage(LocaleLoader.getString("Commands.Database.CooldownMS", getCDSeconds(mcMMOPlayer, cooldownMillis))); return; } @@ -104,7 +105,7 @@ public class McrankCommand implements TabExecutor { ((Player) sender).setMetadata(mcMMO.databaseCommandKey, new FixedMetadataValue(mcMMO.p, null)); } - mmoPlayer.actualizeDatabaseCommandATS(); + mcMMOPlayer.actualizeDatabaseATS(); } boolean useBoard = Config.getInstance().getScoreboardsEnabled() && (sender instanceof Player) && (Config.getInstance().getRankUseBoard()); @@ -113,7 +114,7 @@ public class McrankCommand implements TabExecutor { new McrankCommandAsyncTask(playerName, sender, useBoard, useChat).runTaskAsynchronously(mcMMO.p); } - private long getCDSeconds(OnlineMMOPlayer mmoPlayer, long cooldownMillis) { - return ((mmoPlayer.getDatabaseCommandATS() + cooldownMillis) - System.currentTimeMillis()); + private long getCDSeconds(McMMOPlayer mcMMOPlayer, long cooldownMillis) { + return ((mcMMOPlayer.getDatabaseATS() + cooldownMillis) - System.currentTimeMillis()); } } diff --git a/src/main/java/com/gmail/nossr50/commands/player/McstatsCommand.java b/src/main/java/com/gmail/nossr50/commands/player/McstatsCommand.java index 37b596933..87025fac5 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/McstatsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/McstatsCommand.java @@ -2,11 +2,10 @@ package com.gmail.nossr50.commands.player; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.scoreboards.ScoreboardManager; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -27,14 +26,12 @@ public class McstatsCommand implements TabExecutor { } if (args.length == 0) { - Player player = (Player) sender; - - if (mcMMO.getUserManager().queryPlayer(player) == null) { + if (UserManager.getPlayer((Player) sender) == null) { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + Player player = (Player) sender; if (Config.getInstance().getStatsUseBoard() && Config.getInstance().getScoreboardsEnabled()) { ScoreboardManager.enablePlayerStatsScoreboard(player); @@ -54,9 +51,9 @@ public class McstatsCommand implements TabExecutor { int powerLevelCap = Config.getInstance().getPowerLevelCap(); if (powerLevelCap != Integer.MAX_VALUE) { - player.sendMessage(LocaleLoader.getString("Commands.PowerLevel.Capped", mmoPlayer.getPowerLevel(), powerLevelCap)); + player.sendMessage(LocaleLoader.getString("Commands.PowerLevel.Capped", UserManager.getPlayer(player).getPowerLevel(), powerLevelCap)); } else { - player.sendMessage(LocaleLoader.getString("Commands.PowerLevel", mmoPlayer.getPowerLevel())); + player.sendMessage(LocaleLoader.getString("Commands.PowerLevel", UserManager.getPlayer(player).getPowerLevel())); } return true; diff --git a/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java b/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java index ebeba6c61..63ed2726e 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java @@ -2,15 +2,15 @@ package com.gmail.nossr50.commands.player; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.datatypes.player.McMMOPlayer; -import com.gmail.nossr50.datatypes.skills.CoreSkills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.runnables.commands.MctopCommandAsyncTask; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.commands.CommandUtils; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.text.StringUtils; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.skill.RootSkill; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -25,26 +25,26 @@ import java.util.List; public class MctopCommand implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { - RootSkill rootSkill = null; + PrimarySkillType skill = null; switch (args.length) { case 0: - display(1, rootSkill, sender, command); + display(1, skill, sender, command); return true; case 1: if (StringUtils.isInt(args[0])) { - display(Math.abs(Integer.parseInt(args[0])), rootSkill, sender, command); + display(Math.abs(Integer.parseInt(args[0])), skill, sender, command); return true; } - rootSkill = extractSkill(sender, args[0]); + skill = extractSkill(sender, args[0]); - if (rootSkill == null) { + if (skill == null) { return true; } - display(1, rootSkill, sender, command); + display(1, skill, sender, command); return true; case 2: @@ -52,13 +52,13 @@ public class MctopCommand implements TabExecutor { return true; } - rootSkill = extractSkill(sender, args[0]); + skill = extractSkill(sender, args[0]); - if (rootSkill == null) { + if (skill == null) { return true; } - display(Math.abs(Integer.parseInt(args[1])), rootSkill, sender, command); + display(Math.abs(Integer.parseInt(args[1])), skill, sender, command); return true; default: @@ -74,8 +74,8 @@ public class MctopCommand implements TabExecutor { return ImmutableList.of(); } - private void display(int page, @NotNull RootSkill rootSkill, @NotNull CommandSender sender, @NotNull Command command) { - if (rootSkill != null && !Permissions.mctop(sender, PrimarySkillType.getSkill(rootSkill))) { + private void display(int page, PrimarySkillType skill, CommandSender sender, Command command) { + if (skill != null && !Permissions.mctop(sender, skill)) { sender.sendMessage(command.getPermissionMessage()); return; } @@ -85,13 +85,11 @@ public class MctopCommand implements TabExecutor { return; } - Player player = (Player) sender; - - McMMOPlayer mmoPlayer = (McMMOPlayer) mcMMO.getUserManager().queryPlayer(player); + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(sender.getName()); long cooldownMillis = Math.max(Config.getInstance().getDatabasePlayerCooldown(), 1750); - if (mmoPlayer.getDatabaseCommandATS() + cooldownMillis > System.currentTimeMillis()) { - double seconds = ((mmoPlayer.getDatabaseCommandATS() + cooldownMillis) - System.currentTimeMillis()) / 1000.0D; + if (mcMMOPlayer.getDatabaseATS() + cooldownMillis > System.currentTimeMillis()) { + double seconds = ((mcMMOPlayer.getDatabaseATS() + cooldownMillis) - System.currentTimeMillis()) / 1000.0D; if (seconds < 1) { seconds = 1; } @@ -107,17 +105,17 @@ public class MctopCommand implements TabExecutor { ((Player) sender).setMetadata(mcMMO.databaseCommandKey, new FixedMetadataValue(mcMMO.p, null)); } - mmoPlayer.actualizeDatabaseCommandATS(); + mcMMOPlayer.actualizeDatabaseATS(); } - display(page, rootSkill, sender); + display(page, skill, sender); } - private void display(int page, @NotNull RootSkill rootSkill, @NotNull CommandSender sender) { + private void display(int page, PrimarySkillType skill, CommandSender sender) { boolean useBoard = (sender instanceof Player) && (Config.getInstance().getTopUseBoard()); boolean useChat = !useBoard || Config.getInstance().getTopUseChat(); - new MctopCommandAsyncTask(page, rootSkill, sender, useBoard, useChat).runTaskAsynchronously(mcMMO.p); + new MctopCommandAsyncTask(page, skill, sender, useBoard, useChat).runTaskAsynchronously(mcMMO.p); } private PrimarySkillType extractSkill(CommandSender sender, String skillName) { @@ -125,7 +123,7 @@ public class MctopCommand implements TabExecutor { return null; } - RootSkill rootSkill = mcMMO.p.getSkillRegister().getSkill(rootSkillName); + PrimarySkillType skill = PrimarySkillType.getSkill(skillName); if (CommandUtils.isChildSkill(sender, skill)) { return null; diff --git a/src/main/java/com/gmail/nossr50/commands/player/XPBarCommand.java b/src/main/java/com/gmail/nossr50/commands/player/XPBarCommand.java index 05d6537fa..ad24c60da 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/XPBarCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/XPBarCommand.java @@ -1,10 +1,13 @@ package com.gmail.nossr50.commands.player; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +import com.gmail.nossr50.util.experience.ExperienceBarManager; import com.gmail.nossr50.util.player.NotificationManager; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.SkillUtils; import com.gmail.nossr50.util.text.StringUtils; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -21,9 +24,9 @@ public class XPBarCommand implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if(sender instanceof Player) { - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().getPlayer((Player) sender); + McMMOPlayer mmoPlayer = UserManager.getPlayer((Player) sender); if(mmoPlayer == null) { - NotificationManager.sendPlayerInformationChatOnlyPrefixed(Misc.adaptPlayer(mmoPlayer), "Profile.PendingLoad"); + NotificationManager.sendPlayerInformationChatOnlyPrefixed(mmoPlayer.getPlayer(), "Profile.PendingLoad"); return false; } @@ -32,29 +35,29 @@ public class XPBarCommand implements TabExecutor { } else if(args.length < 2) { String option = args[0]; - if(option.equalsIgnoreCase(rootSkillBossBarSetting.RESET.toString())) { - mmoPlayer.getExperienceBarManager().xpBarSettingToggle(rootSkillBossBarSetting.RESET, null); + if(option.equalsIgnoreCase(ExperienceBarManager.XPBarSettingTarget.RESET.toString())) { + mmoPlayer.getExperienceBarManager().xpBarSettingToggle(ExperienceBarManager.XPBarSettingTarget.RESET, null); return true; - } else if(option.equalsIgnoreCase(rootSkillBossBarSetting.DISABLE.toString())) { + } else if(option.equalsIgnoreCase(ExperienceBarManager.XPBarSettingTarget.DISABLE.toString())) { mmoPlayer.getExperienceBarManager().disableAllBars(); return true; } else { return false; } - //Per rootSkillSettings path + //Per skill Settings path } else if (args.length == 2) { String skillName = args[1]; - if(rootSkillUtils.isSkill(rootSkillName)) { + if(SkillUtils.isSkill(skillName)) { - PrimarySkillType targetSkill = mcMMO.p.getSkillRegister().getSkill(rootSkillName); + PrimarySkillType targetSkill = PrimarySkillType.getSkill(skillName); //Target setting String option = args[0].toLowerCase(); - SkillBossBarSetting settingTarget = getSettingTarget(option); - if(settingTarget != null && settingTarget != SkillBossBarSetting.RESET) { + ExperienceBarManager.XPBarSettingTarget settingTarget = getSettingTarget(option); + if(settingTarget != null && settingTarget != ExperienceBarManager.XPBarSettingTarget.RESET) { //Change setting mmoPlayer.getExperienceBarManager().xpBarSettingToggle(settingTarget, targetSkill); return true; @@ -72,16 +75,16 @@ public class XPBarCommand implements TabExecutor { } } - private @Nullable SkillBossBarSetting getSettingTarget(String string) { + private @Nullable ExperienceBarManager.XPBarSettingTarget getSettingTarget(String string) { switch (string.toLowerCase()) { case "hide": - return SkillBossBarSetting.HIDE; + return ExperienceBarManager.XPBarSettingTarget.HIDE; case "show": - return SkillBossBarSetting.SHOW; + return ExperienceBarManager.XPBarSettingTarget.SHOW; case "reset": - return SkillBossBarSetting.RESET; + return ExperienceBarManager.XPBarSettingTarget.RESET; case "disable": - return SkillBossBarSetting.DISABLE; + return ExperienceBarManager.XPBarSettingTarget.DISABLE; } return null; @@ -93,13 +96,13 @@ public class XPBarCommand implements TabExecutor { case 1: List options = new ArrayList<>(); - for(rootSkillBossBarSetting settingTarget : SkillBossBarSetting.values()) { + for(ExperienceBarManager.XPBarSettingTarget settingTarget : ExperienceBarManager.XPBarSettingTarget.values()) { options.add(StringUtils.getCapitalized(settingTarget.toString())); } - return StringUtil.copyPartialMatches(args[0], options, new ArrayList<>(rootSkillBossBarSetting.values().length)); + return StringUtil.copyPartialMatches(args[0], options, new ArrayList<>(ExperienceBarManager.XPBarSettingTarget.values().length)); case 2: - if(!args[0].equalsIgnoreCase(rootSkillBossBarSetting.RESET.toString())) + if(!args[0].equalsIgnoreCase(ExperienceBarManager.XPBarSettingTarget.RESET.toString())) return StringUtil.copyPartialMatches(args[1], PrimarySkillType.SKILL_NAMES, new ArrayList<>(PrimarySkillType.SKILL_NAMES.size())); default: return ImmutableList.of(); diff --git a/src/main/java/com/gmail/nossr50/commands/server/Mcmmoupgrade.java b/src/main/java/com/gmail/nossr50/commands/server/Mcmmoupgrade.java index a245eca05..77b181e2a 100644 --- a/src/main/java/com/gmail/nossr50/commands/server/Mcmmoupgrade.java +++ b/src/main/java/com/gmail/nossr50/commands/server/Mcmmoupgrade.java @@ -6,7 +6,7 @@ import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; /** - * This command facilitates switching the rootSkillsystem scale between classic and modern scale + * This command facilitates switching the skill system scale between classic and modern scale */ public class Mcmmoupgrade implements CommandExecutor { @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java index 6da916e57..9b6e8ea2f 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java @@ -1,18 +1,16 @@ package com.gmail.nossr50.commands.skills; -import com.gmail.nossr50.datatypes.skills.CoreSkills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill; import com.gmail.nossr50.listeners.InteractionManager; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.random.RandomChanceSkill; import com.gmail.nossr50.util.random.RandomChanceUtil; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -29,23 +27,23 @@ public class AcrobaticsCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // ACROBATICS_DODGE if (canDodge) { - String[] dodgeStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.ACROBATICS_DODGE); + String[] dodgeStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ACROBATICS_DODGE); dodgeChance = dodgeStrings[0]; dodgeChanceLucky = dodgeStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canDodge = canUseSubskill(mmoPlayer, SubSkillType.ACROBATICS_DODGE); - canRoll = canUseSubskill(mmoPlayer, SubSkillType.ACROBATICS_ROLL); + protected void permissionsCheck(Player player) { + canDodge = canUseSubskill(player, SubSkillType.ACROBATICS_DODGE); + canRoll = canUseSubskill(player, SubSkillType.ACROBATICS_ROLL); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canDodge) { @@ -62,10 +60,10 @@ public class AcrobaticsCommand extends SkillCommand { double rollChance, graceChance; //Chance to roll at half - RandomChanceSkill roll_rcs = new RandomChanceSkill(Misc.adaptPlayer(mmoPlayer), SubSkillType.ACROBATICS_ROLL); + RandomChanceSkill roll_rcs = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL); //Chance to graceful roll - RandomChanceSkill grace_rcs = new RandomChanceSkill(Misc.adaptPlayer(mmoPlayer), SubSkillType.ACROBATICS_ROLL); + RandomChanceSkill grace_rcs = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL); grace_rcs.setSkillLevel(grace_rcs.getSkillLevel() * 2); //Double Odds //Chance Stat Calculations @@ -73,7 +71,7 @@ public class AcrobaticsCommand extends SkillCommand { graceChance = RandomChanceUtil.getRandomChanceExecutionChance(grace_rcs); //damageThreshold = AdvancedConfig.getInstance().getRollDamageThreshold(); - String[] rollStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.ACROBATICS_ROLL); + String[] rollStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ACROBATICS_ROLL); //Format double rollChanceLucky = rollChance * 1.333D; @@ -91,10 +89,10 @@ public class AcrobaticsCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.ACROBATICS); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.ACROBATICS); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java index aa45967da..a8d5fcc8b 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java @@ -1,18 +1,15 @@ package com.gmail.nossr50.commands.skills; -import com.gmail.nossr50.datatypes.player.McMMOPlayer; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.skills.alchemy.AlchemyManager; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -32,23 +29,18 @@ public class AlchemyCommand extends SkillCommand { super(PrimarySkillType.ALCHEMY); } - protected String[] calculateAbilityDisplayValues(@NotNull Player player) { + protected String[] calculateAbilityDisplayValues(Player player) { //TODO: Needed? - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); - if(mmoPlayer == null) + if(UserManager.getPlayer(player) == null) { player.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return new String[] {"DATA NOT LOADED", "DATA NOT LOADED"}; } - return calculateAbilityDisplayValues(mmoPlayer); - } - - protected String[] calculateAbilityDisplayValues(@NotNull OnlineMMOPlayer mmoPlayer) { - AlchemyManager alchemyManager = ((McMMOPlayer) (mmoPlayer)).getAlchemyManager(); + AlchemyManager alchemyManager = UserManager.getPlayer(player).getAlchemyManager(); String[] displayValues = new String[2]; - boolean isLucky = Permissions.lucky(Misc.adaptPlayer(mmoPlayer), PrimarySkillType.ALCHEMY); + boolean isLucky = Permissions.lucky(player, PrimarySkillType.ALCHEMY); displayValues[0] = decimal.format(alchemyManager.calculateBrewSpeed(false)) + "x"; displayValues[1] = isLucky ? decimal.format(alchemyManager.calculateBrewSpeed(true)) + "x" : null; @@ -56,19 +48,18 @@ public class AlchemyCommand extends SkillCommand { return displayValues; } - @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // ALCHEMY_CATALYSIS if (canCatalysis) { - String[] catalysisStrings = calculateAbilityDisplayValues(mmoPlayer.getPlayer()); + String[] catalysisStrings = calculateAbilityDisplayValues(player); brewSpeed = catalysisStrings[0]; brewSpeedLucky = catalysisStrings[1]; } // ALCHEMY_CONCOCTIONS if (canConcoctions) { - AlchemyManager alchemyManager = mmoPlayer.getAlchemyManager(); + AlchemyManager alchemyManager = UserManager.getPlayer(player).getAlchemyManager(); tier = alchemyManager.getTier(); ingredientCount = alchemyManager.getIngredients().size(); ingredientList = alchemyManager.getIngredientList(); @@ -76,13 +67,13 @@ public class AlchemyCommand extends SkillCommand { } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canCatalysis = canUseSubskill(mmoPlayer, SubSkillType.ALCHEMY_CATALYSIS); - canConcoctions = canUseSubskill(mmoPlayer, SubSkillType.ALCHEMY_CONCOCTIONS); + protected void permissionsCheck(Player player) { + canCatalysis = canUseSubskill(player, SubSkillType.ALCHEMY_CATALYSIS); + canConcoctions = canUseSubskill(player, SubSkillType.ALCHEMY_CONCOCTIONS); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canCatalysis) { @@ -102,10 +93,10 @@ public class AlchemyCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.ALCHEMY); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.ALCHEMY); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AprilCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AprilCommand.java index a7dfbc8ff..819205ca1 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AprilCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AprilCommand.java @@ -32,7 +32,7 @@ public class AprilCommand implements TabExecutor { if (args.length == 0) { Player player = (Player) sender; - FakeSkillType fakeSkillType = FakeSkillType.getByName(rootSkillName); + FakeSkillType fakeSkillType = FakeSkillType.getByName(skillName); float skillValue = Misc.getRandom().nextInt(99); diff --git a/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java index 3b7a683e2..59decaf9f 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java @@ -1,14 +1,14 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.archery.Archery; import com.gmail.nossr50.util.skills.CombatUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -29,36 +29,36 @@ public class ArcheryCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // ARCHERY_ARROW_RETRIEVAL if (canRetrieve) { - String[] retrieveStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.ARCHERY_ARROW_RETRIEVAL); + String[] retrieveStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ARCHERY_ARROW_RETRIEVAL); retrieveChance = retrieveStrings[0]; retrieveChanceLucky = retrieveStrings[1]; } // ARCHERY_DAZE if (canDaze) { - String[] dazeStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.ARCHERY_DAZE); + String[] dazeStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ARCHERY_DAZE); dazeChance = dazeStrings[0]; dazeChanceLucky = dazeStrings[1]; } - // rootSkillSHOT + // SKILL SHOT if (canSkillShot) { - skillShotBonus = percent.format(Archery.getDamageBonusPercent(mmoPlayer)); + skillShotBonus = percent.format(Archery.getDamageBonusPercent(player)); } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canSkillShot = canUseSubskill(mmoPlayer, SubSkillType.ARCHERY_SKILL_SHOT); - canDaze = canUseSubskill(mmoPlayer, SubSkillType.ARCHERY_DAZE); - canRetrieve = canUseSubskill(mmoPlayer, SubSkillType.ARCHERY_ARROW_RETRIEVAL); + protected void permissionsCheck(Player player) { + canSkillShot = canUseSubskill(player, SubSkillType.ARCHERY_SKILL_SHOT); + canDaze = canUseSubskill(player, SubSkillType.ARCHERY_DAZE); + canRetrieve = canUseSubskill(player, SubSkillType.ARCHERY_ARROW_RETRIEVAL); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canRetrieve) { @@ -75,19 +75,19 @@ public class ArcheryCommand extends SkillCommand { messages.add(getStatMessage(SubSkillType.ARCHERY_SKILL_SHOT, skillShotBonus)); } - if(canUseSubskill(mmoPlayer, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK)) { + if(canUseSubskill(player, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK)) { messages.add(getStatMessage(SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK, - String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(mmoPlayer, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK, 1000)))); + String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(player, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK, 1000)))); } return messages; } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.ARCHERY); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.ARCHERY); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java index 67269bee2..d6b5c029a 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java @@ -1,16 +1,17 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.axes.Axes; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.CombatUtils; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -34,43 +35,43 @@ public class AxesCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // ARMOR IMPACT if (canImpact) { - impactDamage = ((McMMOPlayer) (mmoPlayer)).getArcheryManager().getImpactDurabilityDamage(); + impactDamage = UserManager.getPlayer(player).getAxesManager().getImpactDurabilityDamage(); } // AXE MASTERY if (canAxeMastery) { - axeMasteryDamage = Axes.getAxeMasteryBonusDamage(mmoPlayer.getPlayer()); + axeMasteryDamage = Axes.getAxeMasteryBonusDamage(player); } // CRITICAL HIT if (canCritical) { - String[] criticalHitStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.AXES_CRITICAL_STRIKES); + String[] criticalHitStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.AXES_CRITICAL_STRIKES); critChance = criticalHitStrings[0]; critChanceLucky = criticalHitStrings[1]; } // SKULL SPLITTER if (canSkullSplitter) { - String[] skullSplitterStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); + String[] skullSplitterStrings = calculateLengthDisplayValues(player, skillValue); skullSplitterLength = skullSplitterStrings[0]; skullSplitterLengthEndurance = skullSplitterStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canSkullSplitter = Permissions.skullSplitter(mmoPlayer.getPlayer()) && RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.AXES_SKULL_SPLITTER); - canCritical = canUseSubskill(mmoPlayer, SubSkillType.AXES_CRITICAL_STRIKES); - canAxeMastery = canUseSubskill(mmoPlayer, SubSkillType.AXES_AXE_MASTERY); - canImpact = canUseSubskill(mmoPlayer, SubSkillType.AXES_ARMOR_IMPACT); - canGreaterImpact = canUseSubskill(mmoPlayer, SubSkillType.AXES_GREATER_IMPACT); + protected void permissionsCheck(Player player) { + canSkullSplitter = Permissions.skullSplitter(player) && RankUtils.hasUnlockedSubskill(player, SubSkillType.AXES_SKULL_SPLITTER); + canCritical = canUseSubskill(player, SubSkillType.AXES_CRITICAL_STRIKES); + canAxeMastery = canUseSubskill(player, SubSkillType.AXES_AXE_MASTERY); + canImpact = canUseSubskill(player, SubSkillType.AXES_ARMOR_IMPACT); + canGreaterImpact = canUseSubskill(player, SubSkillType.AXES_GREATER_IMPACT); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canImpact) { @@ -95,19 +96,19 @@ public class AxesCommand extends SkillCommand { + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", skullSplitterLengthEndurance) : "")); } - if(canUseSubskill(mmoPlayer, SubSkillType.AXES_AXES_LIMIT_BREAK)) { + if(canUseSubskill(player, SubSkillType.AXES_AXES_LIMIT_BREAK)) { messages.add(getStatMessage(SubSkillType.AXES_AXES_LIMIT_BREAK, - String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(mmoPlayer, SubSkillType.AXES_AXES_LIMIT_BREAK, 1000)))); + String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(player, SubSkillType.AXES_AXES_LIMIT_BREAK, 1000)))); } return messages; } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.AXES); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.AXES); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java index c7893d7f6..de7341e93 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java @@ -1,16 +1,15 @@ package com.gmail.nossr50.commands.skills; -import com.gmail.nossr50.datatypes.player.McMMOPlayer; -import com.gmail.nossr50.datatypes.skills.CoreSkills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.excavation.ExcavationManager; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -27,26 +26,26 @@ public class ExcavationCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // GIGA DRILL BREAKER if (canGigaDrill) { - String[] gigaDrillStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); + String[] gigaDrillStrings = calculateLengthDisplayValues(player, skillValue); gigaDrillBreakerLength = gigaDrillStrings[0]; gigaDrillBreakerLengthEndurance = gigaDrillStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canGigaDrill = Permissions.gigaDrillBreaker(mmoPlayer.getPlayer()) && RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER); - canTreasureHunt = canUseSubskill(mmoPlayer, SubSkillType.EXCAVATION_ARCHAEOLOGY); + protected void permissionsCheck(Player player) { + canGigaDrill = Permissions.gigaDrillBreaker(player) && RankUtils.hasUnlockedSubskill(player, SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER); + canTreasureHunt = canUseSubskill(player, SubSkillType.EXCAVATION_ARCHAEOLOGY); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); - ExcavationManager excavationManager = ((McMMOPlayer) (mmoPlayer)).getExcavationManager(); + ExcavationManager excavationManager = UserManager.getPlayer(player).getExcavationManager(); if (canGigaDrill) { messages.add(getStatMessage(SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER, gigaDrillBreakerLength) @@ -55,7 +54,7 @@ public class ExcavationCommand extends SkillCommand { //messages.add(LocaleLoader.getString("Excavation.Effect.Length", gigaDrillBreakerLength) + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", gigaDrillBreakerLengthEndurance) : "")); } - if(canUseSubskill(mmoPlayer, SubSkillType.EXCAVATION_ARCHAEOLOGY)) { + if(canUseSubskill(player, SubSkillType.EXCAVATION_ARCHAEOLOGY)) { messages.add(getStatMessage(false, false, SubSkillType.EXCAVATION_ARCHAEOLOGY, percent.format(excavationManager.getArchaelogyExperienceOrbChance() / 100.0D))); messages.add(getStatMessage(true, false, SubSkillType.EXCAVATION_ARCHAEOLOGY, @@ -67,10 +66,10 @@ public class ExcavationCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.EXCAVATION); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.EXCAVATION); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java index 25685fb20..f22f8399e 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java @@ -7,13 +7,13 @@ import com.gmail.nossr50.datatypes.treasure.Rarity; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.skills.fishing.FishingManager; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.random.RandomChanceUtil; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.text.StringUtils; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -47,8 +47,8 @@ public class FishingCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { - FishingManager fishingManager = ((McMMOPlayer) (mmoPlayer)).getFishingManager(); + protected void dataCalculations(Player player, float skillValue) { + FishingManager fishingManager = UserManager.getPlayer(player).getFishingManager(); // TREASURE HUNTER if (canTreasureHunt) { @@ -79,35 +79,35 @@ public class FishingCommand extends SkillCommand { // FISHING_SHAKE if (canShake) { - String[] shakeStrings = RandomChanceUtil.calculateAbilityDisplayValuesStatic(mmoPlayer, PrimarySkillType.FISHING, fishingManager.getShakeChance()); + String[] shakeStrings = RandomChanceUtil.calculateAbilityDisplayValuesStatic(player, PrimarySkillType.FISHING, fishingManager.getShakeChance()); shakeChance = shakeStrings[0]; shakeChanceLucky = shakeStrings[1]; } // FISHERMAN'S DIET if (canFishermansDiet) { - fishermansDietRank = RankUtils.getRank(mmoPlayer, SubSkillType.FISHING_FISHERMANS_DIET); + fishermansDietRank = RankUtils.getRank(player, SubSkillType.FISHING_FISHERMANS_DIET); } // MASTER ANGLER if (canMasterAngler) { - maMinWaitTime = StringUtils.ticksToSeconds(fishingManager.getMasterAnglerTickMinWaitReduction(RankUtils.getRank(mmoPlayer, SubSkillType.FISHING_MASTER_ANGLER), false)); - maMaxWaitTime = StringUtils.ticksToSeconds(fishingManager.getMasterAnglerTickMaxWaitReduction(RankUtils.getRank(mmoPlayer, SubSkillType.FISHING_MASTER_ANGLER), false, 0)); + maMinWaitTime = StringUtils.ticksToSeconds(fishingManager.getMasterAnglerTickMinWaitReduction(RankUtils.getRank(player, SubSkillType.FISHING_MASTER_ANGLER), false)); + maMaxWaitTime = StringUtils.ticksToSeconds(fishingManager.getMasterAnglerTickMaxWaitReduction(RankUtils.getRank(player, SubSkillType.FISHING_MASTER_ANGLER), false, 0)); } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canTreasureHunt = canUseSubskill(mmoPlayer, SubSkillType.FISHING_TREASURE_HUNTER); - canMagicHunt = canUseSubskill(mmoPlayer, SubSkillType.FISHING_MAGIC_HUNTER) && canUseSubskill(mmoPlayer, SubSkillType.FISHING_TREASURE_HUNTER); - canShake = canUseSubskill(mmoPlayer, SubSkillType.FISHING_SHAKE); - canFishermansDiet = canUseSubskill(mmoPlayer, SubSkillType.FISHING_FISHERMANS_DIET); - canMasterAngler = mcMMO.getCompatibilityManager().getMasterAnglerCompatibilityLayer() != null && canUseSubskill(mmoPlayer, SubSkillType.FISHING_MASTER_ANGLER); - canIceFish = canUseSubskill(mmoPlayer, SubSkillType.FISHING_ICE_FISHING); + protected void permissionsCheck(Player player) { + canTreasureHunt = canUseSubskill(player, SubSkillType.FISHING_TREASURE_HUNTER); + canMagicHunt = canUseSubskill(player, SubSkillType.FISHING_MAGIC_HUNTER) && canUseSubskill(player, SubSkillType.FISHING_TREASURE_HUNTER); + canShake = canUseSubskill(player, SubSkillType.FISHING_SHAKE); + canFishermansDiet = canUseSubskill(player, SubSkillType.FISHING_FISHERMANS_DIET); + canMasterAngler = mcMMO.getCompatibilityManager().getMasterAnglerCompatibilityLayer() != null && canUseSubskill(player, SubSkillType.FISHING_MASTER_ANGLER); + canIceFish = canUseSubskill(player, SubSkillType.FISHING_ICE_FISHING); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canFishermansDiet) { @@ -152,10 +152,10 @@ public class FishingCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.FISHING); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.FISHING); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java index 1ac299b27..3d4693b77 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java @@ -1,17 +1,15 @@ package com.gmail.nossr50.commands.skills; -import com.gmail.nossr50.datatypes.skills.CoreSkills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; import org.bukkit.Material; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -43,74 +41,64 @@ public class HerbalismCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // DOUBLE DROPS if (canDoubleDrop) { - String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.HERBALISM_DOUBLE_DROPS); + String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.HERBALISM_DOUBLE_DROPS); doubleDropChance = doubleDropStrings[0]; doubleDropChanceLucky = doubleDropStrings[1]; } // FARMERS DIET if (canFarmersDiet) { - farmersDietRank = RankUtils.getRank(mmoPlayer, SubSkillType.HERBALISM_FARMERS_DIET); + farmersDietRank = RankUtils.getRank(player, SubSkillType.HERBALISM_FARMERS_DIET); } // GREEN TERRA if (canGreenTerra) { - String[] greenTerraStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); + String[] greenTerraStrings = calculateLengthDisplayValues(player, skillValue); greenTerraLength = greenTerraStrings[0]; greenTerraLengthEndurance = greenTerraStrings[1]; } // GREEN THUMB if (canGreenThumbBlocks || canGreenThumbPlants) { - greenThumbStage = RankUtils.getRank(mmoPlayer, SubSkillType.HERBALISM_GREEN_THUMB); + greenThumbStage = RankUtils.getRank(player, SubSkillType.HERBALISM_GREEN_THUMB); - String[] greenThumbStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.HERBALISM_GREEN_THUMB); + String[] greenThumbStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.HERBALISM_GREEN_THUMB); greenThumbChance = greenThumbStrings[0]; greenThumbChanceLucky = greenThumbStrings[1]; } // HYLIAN LUCK if (hasHylianLuck) { - String[] hylianLuckStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.HERBALISM_HYLIAN_LUCK); + String[] hylianLuckStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.HERBALISM_HYLIAN_LUCK); hylianLuckChance = hylianLuckStrings[0]; hylianLuckChanceLucky = hylianLuckStrings[1]; } // SHROOM THUMB if (canShroomThumb) { - String[] shroomThumbStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.HERBALISM_SHROOM_THUMB); + String[] shroomThumbStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.HERBALISM_SHROOM_THUMB); shroomThumbChance = shroomThumbStrings[0]; shroomThumbChanceLucky = shroomThumbStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - hasHylianLuck = canUseSubskill(mmoPlayer, SubSkillType.HERBALISM_HYLIAN_LUCK); - canGreenTerra = Permissions.greenTerra(mmoPlayer.getPlayer()); - canGreenThumbPlants = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.HERBALISM_GREEN_THUMB) - && (Permissions.greenThumbPlant(Misc.adaptPlayer(mmoPlayer), Material.WHEAT) - || Permissions.greenThumbPlant(Misc.adaptPlayer(mmoPlayer), Material.CARROT) - || Permissions.greenThumbPlant(Misc.adaptPlayer(mmoPlayer), Material.POTATO) - || Permissions.greenThumbPlant(Misc.adaptPlayer(mmoPlayer), Material.BEETROOT) - || Permissions.greenThumbPlant(Misc.adaptPlayer(mmoPlayer), Material.NETHER_WART) - || Permissions.greenThumbPlant(Misc.adaptPlayer(mmoPlayer), Material.COCOA)); - canGreenThumbBlocks = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.HERBALISM_GREEN_THUMB) - && (Permissions.greenThumbBlock(Misc.adaptPlayer(mmoPlayer), Material.DIRT) - || Permissions.greenThumbBlock(Misc.adaptPlayer(mmoPlayer), Material.COBBLESTONE) - || Permissions.greenThumbBlock(Misc.adaptPlayer(mmoPlayer), Material.COBBLESTONE_WALL) - || Permissions.greenThumbBlock(Misc.adaptPlayer(mmoPlayer), Material.STONE_BRICKS)); - canFarmersDiet = canUseSubskill(mmoPlayer, SubSkillType.HERBALISM_FARMERS_DIET); - canDoubleDrop = canUseSubskill(mmoPlayer, SubSkillType.HERBALISM_DOUBLE_DROPS) && !rootSkill.getDoubleDropsDisabled(); - canShroomThumb = canUseSubskill(mmoPlayer, SubSkillType.HERBALISM_SHROOM_THUMB); + protected void permissionsCheck(Player player) { + hasHylianLuck = canUseSubskill(player, SubSkillType.HERBALISM_HYLIAN_LUCK); + canGreenTerra = Permissions.greenTerra(player); + canGreenThumbPlants = RankUtils.hasUnlockedSubskill(player, SubSkillType.HERBALISM_GREEN_THUMB) && (Permissions.greenThumbPlant(player, Material.WHEAT) || Permissions.greenThumbPlant(player, Material.CARROT) || Permissions.greenThumbPlant(player, Material.POTATO) || Permissions.greenThumbPlant(player, Material.BEETROOT) || Permissions.greenThumbPlant(player, Material.NETHER_WART) || Permissions.greenThumbPlant(player, Material.COCOA)); + canGreenThumbBlocks = RankUtils.hasUnlockedSubskill(player, SubSkillType.HERBALISM_GREEN_THUMB) && (Permissions.greenThumbBlock(player, Material.DIRT) || Permissions.greenThumbBlock(player, Material.COBBLESTONE) || Permissions.greenThumbBlock(player, Material.COBBLESTONE_WALL) || Permissions.greenThumbBlock(player, Material.STONE_BRICKS)); + canFarmersDiet = canUseSubskill(player, SubSkillType.HERBALISM_FARMERS_DIET); + canDoubleDrop = canUseSubskill(player, SubSkillType.HERBALISM_DOUBLE_DROPS) && !skill.getDoubleDropsDisabled(); + canShroomThumb = canUseSubskill(player, SubSkillType.HERBALISM_SHROOM_THUMB); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canDoubleDrop) { @@ -153,10 +141,10 @@ public class HerbalismCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.HERBALISM); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.HERBALISM); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java index 580cc6425..5e7a14a7a 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java @@ -1,15 +1,16 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.mining.MiningManager; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -38,10 +39,10 @@ public class MiningCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // BLAST MINING if (canBlast || canDemoExpert || canBiggerBombs) { - MiningManager miningManager = ((McMMOPlayer) (mmoPlayer)).getMiningManager(); + MiningManager miningManager = UserManager.getPlayer(player).getMiningManager(); blastMiningRank = miningManager.getBlastMiningTier(); bonusTNTDrops = miningManager.getDropMultiplier(); @@ -53,30 +54,30 @@ public class MiningCommand extends SkillCommand { // DOUBLE DROPS if (canDoubleDrop) { - String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.MINING_DOUBLE_DROPS); + String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.MINING_DOUBLE_DROPS); doubleDropChance = doubleDropStrings[0]; doubleDropChanceLucky = doubleDropStrings[1]; } // SUPER BREAKER if (canSuperBreaker) { - String[] superBreakerStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); + String[] superBreakerStrings = calculateLengthDisplayValues(player, skillValue); superBreakerLength = superBreakerStrings[0]; superBreakerLengthEndurance = superBreakerStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canBiggerBombs = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_BIGGER_BOMBS) && Permissions.biggerBombs(mmoPlayer.getPlayer()); - canBlast = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_BLAST_MINING) && Permissions.remoteDetonation(mmoPlayer.getPlayer()); - canDemoExpert = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_DEMOLITIONS_EXPERTISE) && Permissions.demolitionsExpertise(mmoPlayer.getPlayer()); - canDoubleDrop = canUseSubskill(mmoPlayer, SubSkillType.MINING_DOUBLE_DROPS); - canSuperBreaker = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_SUPER_BREAKER) && Permissions.superBreaker(mmoPlayer.getPlayer()); + protected void permissionsCheck(Player player) { + canBiggerBombs = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_BIGGER_BOMBS) && Permissions.biggerBombs(player); + canBlast = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_BLAST_MINING) && Permissions.remoteDetonation(player); + canDemoExpert = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_DEMOLITIONS_EXPERTISE) && Permissions.demolitionsExpertise(player); + canDoubleDrop = canUseSubskill(player, SubSkillType.MINING_DOUBLE_DROPS); + canSuperBreaker = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_SUPER_BREAKER) && Permissions.superBreaker(player); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canBiggerBombs) { @@ -110,10 +111,10 @@ public class MiningCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.MINING); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.MINING); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java index db7c78432..e562e9429 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java @@ -1,16 +1,13 @@ package com.gmail.nossr50.commands.skills; -import com.gmail.nossr50.datatypes.skills.CoreSkills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill; import com.gmail.nossr50.listeners.InteractionManager; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.text.TextComponentFactory; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -37,13 +34,6 @@ public class MmoInfoCommand implements TabExecutor { return false; Player player = (Player) commandSender; - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); - - if(mmoPlayer == null) { - player.sendMessage(LocaleLoader.getString("Commands.NotLoaded")); - return true; - } - if(Permissions.mmoinfo(player)) { if(args == null || args[0] == null) @@ -58,7 +48,7 @@ public class MmoInfoCommand implements TabExecutor { return true; } else if(InteractionManager.getAbstractByName(args[0]) != null || PrimarySkillType.SUBSKILL_NAMES.contains(args[0])) { - displayInfo(mmoPlayer, args[0]); + displayInfo(player, args[0]); return true; } @@ -79,21 +69,19 @@ public class MmoInfoCommand implements TabExecutor { return ImmutableList.of(); } - private void displayInfo(@NotNull OnlineMMOPlayer mmoPlayer, String subSkillName) + private void displayInfo(Player player, String subSkillName) { - //Check to see if the rootSkillexists in the new system + //Check to see if the skill exists in the new system AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName(subSkillName); if(abstractSubSkill != null) { /* New System Skills are programmable */ - abstractSubSkill.printInfo(mmoPlayer.getPlayer()); + abstractSubSkill.printInfo(player); //TextComponentFactory.sendPlayerUrlHeader(player); } else { /* - * rootSkillis only in the old system + * Skill is only in the old system */ - Player player = Misc.adaptPlayer(mmoPlayer); - player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header")); player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.SubSkillHeader", subSkillName)); player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader")); @@ -107,6 +95,6 @@ public class MmoInfoCommand implements TabExecutor { } //Send Player Wiki Link - TextComponentFactory.sendPlayerSubSkillWikiLink(mmoPlayer, subSkillName); + TextComponentFactory.sendPlayerSubSkillWikiLink(player, subSkillName); } } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java index a2ffcfd63..1941357d0 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java @@ -1,6 +1,7 @@ package com.gmail.nossr50.commands.skills; import com.gmail.nossr50.datatypes.skills.MaterialType; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; @@ -9,13 +10,13 @@ import com.gmail.nossr50.skills.repair.Repair; import com.gmail.nossr50.skills.repair.RepairManager; import com.gmail.nossr50.skills.repair.repairables.Repairable; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; import org.bukkit.Material; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -47,7 +48,7 @@ public class RepairCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // We're using pickaxes here, not the best but it works Repairable diamondRepairable = mcMMO.getRepairableManager().getRepairable(Material.DIAMOND_PICKAXE); Repairable goldRepairable = mcMMO.getRepairableManager().getRepairable(Material.GOLDEN_PICKAXE); @@ -67,37 +68,37 @@ public class RepairCommand extends SkillCommand { // SUPER REPAIR if (canSuperRepair) { - String[] superRepairStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.REPAIR_SUPER_REPAIR); + String[] superRepairStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.REPAIR_SUPER_REPAIR); superRepairChance = superRepairStrings[0]; superRepairChanceLucky = superRepairStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canSuperRepair = canUseSubskill(mmoPlayer, SubSkillType.REPAIR_SUPER_REPAIR); - canMasterRepair = canUseSubskill(mmoPlayer, SubSkillType.REPAIR_REPAIR_MASTERY); - canArcaneForge = canUseSubskill(mmoPlayer, SubSkillType.REPAIR_ARCANE_FORGING); - canRepairDiamond = Permissions.repairMaterialType(Misc.adaptPlayer(mmoPlayer), MaterialType.DIAMOND); - canRepairGold = Permissions.repairMaterialType(Misc.adaptPlayer(mmoPlayer), MaterialType.GOLD); - canRepairIron = Permissions.repairMaterialType(Misc.adaptPlayer(mmoPlayer), MaterialType.IRON); - canRepairStone = Permissions.repairMaterialType(Misc.adaptPlayer(mmoPlayer), MaterialType.STONE); - canRepairString = Permissions.repairMaterialType(Misc.adaptPlayer(mmoPlayer), MaterialType.STRING); - canRepairLeather = Permissions.repairMaterialType(Misc.adaptPlayer(mmoPlayer), MaterialType.LEATHER); - canRepairWood = Permissions.repairMaterialType(Misc.adaptPlayer(mmoPlayer), MaterialType.WOOD); - arcaneBypass = (Permissions.arcaneBypass(mmoPlayer.getPlayer()) || Permissions.hasRepairEnchantBypassPerk(mmoPlayer.getPlayer())); + protected void permissionsCheck(Player player) { + canSuperRepair = canUseSubskill(player, SubSkillType.REPAIR_SUPER_REPAIR); + canMasterRepair = canUseSubskill(player, SubSkillType.REPAIR_REPAIR_MASTERY); + canArcaneForge = canUseSubskill(player, SubSkillType.REPAIR_ARCANE_FORGING); + canRepairDiamond = Permissions.repairMaterialType(player, MaterialType.DIAMOND); + canRepairGold = Permissions.repairMaterialType(player, MaterialType.GOLD); + canRepairIron = Permissions.repairMaterialType(player, MaterialType.IRON); + canRepairStone = Permissions.repairMaterialType(player, MaterialType.STONE); + canRepairString = Permissions.repairMaterialType(player, MaterialType.STRING); + canRepairLeather = Permissions.repairMaterialType(player, MaterialType.LEATHER); + canRepairWood = Permissions.repairMaterialType(player, MaterialType.WOOD); + arcaneBypass = (Permissions.arcaneBypass(player) || Permissions.hasRepairEnchantBypassPerk(player)); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canArcaneForge) { - RepairManager repairManager = ((McMMOPlayer) (mmoPlayer)).getRepairManager(); + RepairManager repairManager = UserManager.getPlayer(player).getRepairManager(); messages.add(getStatMessage(false, true, SubSkillType.REPAIR_ARCANE_FORGING, - String.valueOf(RankUtils.getRank(mmoPlayer, SubSkillType.REPAIR_ARCANE_FORGING)), + String.valueOf(RankUtils.getRank(player, SubSkillType.REPAIR_ARCANE_FORGING)), RankUtils.getHighestRankStr(SubSkillType.REPAIR_ARCANE_FORGING))); if (ArcaneForging.arcaneForgingEnchantLoss || ArcaneForging.arcaneForgingDowngrades) { @@ -120,10 +121,10 @@ public class RepairCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.REPAIR); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.REPAIR); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java index dae707b72..770299951 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java @@ -1,14 +1,15 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.salvage.Salvage; import com.gmail.nossr50.skills.salvage.SalvageManager; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -22,26 +23,26 @@ public class SalvageCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // TODO Auto-generated method stub } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canScrapCollector = canUseSubskill(mmoPlayer, SubSkillType.SALVAGE_SCRAP_COLLECTOR); - canArcaneSalvage = canUseSubskill(mmoPlayer, SubSkillType.SALVAGE_ARCANE_SALVAGE); + protected void permissionsCheck(Player player) { + canScrapCollector = canUseSubskill(player, SubSkillType.SALVAGE_SCRAP_COLLECTOR); + canArcaneSalvage = canUseSubskill(player, SubSkillType.SALVAGE_ARCANE_SALVAGE); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); - SalvageManager salvageManager = ((McMMOPlayer) (mmoPlayer)).getSalvageManager(); + SalvageManager salvageManager = UserManager.getPlayer(player).getSalvageManager(); if (canScrapCollector) { messages.add(getStatMessage(false, true, SubSkillType.SALVAGE_SCRAP_COLLECTOR, - String.valueOf(RankUtils.getRank(mmoPlayer, SubSkillType.SALVAGE_SCRAP_COLLECTOR)), + String.valueOf(RankUtils.getRank(player, SubSkillType.SALVAGE_SCRAP_COLLECTOR)), RankUtils.getHighestRankStr(SubSkillType.SALVAGE_SCRAP_COLLECTOR))); } @@ -63,10 +64,10 @@ public class SalvageCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.SALVAGE); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.SALVAGE); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java index 409ab9cfc..e550913fa 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java @@ -2,15 +2,15 @@ package com.gmail.nossr50.commands.skills; import com.gmail.nossr50.config.AdvancedConfig; import com.gmail.nossr50.config.Config; -import com.gmail.nossr50.datatypes.skills.CoreSkills; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.skills.child.FamilyTree; -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.NotificationManager; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.random.RandomChanceUtil; import com.gmail.nossr50.util.scoreboards.ScoreboardManager; import com.gmail.nossr50.util.skills.PerksUtils; @@ -19,8 +19,6 @@ import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.StringUtils; import com.gmail.nossr50.util.text.TextComponentFactory; import com.google.common.collect.ImmutableList; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; -import com.neetgames.mcmmo.skill.RootSkill; import net.kyori.adventure.text.Component; import net.md_5.bungee.api.ChatColor; import org.bukkit.command.Command; @@ -37,8 +35,7 @@ import java.util.Locale; import java.util.Set; public abstract class SkillCommand implements TabExecutor { - protected @NotNull RootSkill rootSkill; - protected @NotNull RootSkill rootSkill; + protected PrimarySkillType skill; private final String skillName; protected DecimalFormat percent = new DecimalFormat("##0.00%"); @@ -46,11 +43,10 @@ public abstract class SkillCommand implements TabExecutor { private final CommandExecutor skillGuideCommand; - public SkillCommand(@NotNull RootSkill rootSkill) { - this.rootSkill = PrimarySkillType.getSkill(primarySkillType); - this.primarySkillType = primarySkillType; - skillName = rootSkill.getName(); - skillGuideCommand = new SkillGuideCommand(rootSkill); + public SkillCommand(PrimarySkillType skill) { + this.skill = skill; + skillName = skill.getName(); + skillGuideCommand = new SkillGuideCommand(skill); } @Override @@ -63,33 +59,33 @@ public abstract class SkillCommand implements TabExecutor { return true; } - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer((Player) sender); - - if(mmoPlayer == null) { + if(UserManager.getPlayer((Player) sender) == null) + { sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad")); return true; } if (args.length == 0) { - Player player = Misc.adaptPlayer(mmoPlayer); + Player player = (Player) sender; + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); - boolean isLucky = Permissions.lucky(player, rootSkill); + boolean isLucky = Permissions.lucky(player, skill); boolean hasEndurance = (PerksUtils.handleActivationPerks(player, 0, 0) != 0); - float skillValue = mmoPlayer.getExperienceHandler().getSkillLevel(rootSkill); + float skillValue = mcMMOPlayer.getSkillLevel(skill); - //Send the players a few blank lines to make finding the top of the rootSkillcommand easier + //Send the players a few blank lines to make finding the top of the skill command easier if (AdvancedConfig.getInstance().doesSkillCommandSendBlankLines()) for (int i = 0; i < 2; i++) { player.sendMessage(""); } - permissionsCheck(mmoPlayer); - dataCalculations(mmoPlayer, skillValue); + permissionsCheck(player); + dataCalculations(player, skillValue); - sendSkillCommandHeader(mmoPlayer, (int) skillValue); + sendSkillCommandHeader(player, mcMMOPlayer, (int) skillValue); //Make JSON text components - List subskillTextComponents = getTextComponents(mmoPlayer); + List subskillTextComponents = getTextComponents(player); //Subskills Header player.sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", LocaleLoader.getString("Effects.SubSkills.Overhaul"))); @@ -104,7 +100,7 @@ public abstract class SkillCommand implements TabExecutor { }*/ //Stats - sendStatMessages(mmoPlayer, isLucky, hasEndurance, skillValue); + getStatMessages(player, isLucky, hasEndurance, skillValue); //Header @@ -112,12 +108,12 @@ public abstract class SkillCommand implements TabExecutor { //Link Header if (Config.getInstance().getUrlLinksEnabled()) { player.sendMessage(LocaleLoader.getString("Overhaul.mcMMO.Header")); - TextComponentFactory.sendPlayerUrlHeader(mmoPlayer); + TextComponentFactory.sendPlayerUrlHeader(player); } if (Config.getInstance().getScoreboardsEnabled() && Config.getInstance().getSkillUseBoard()) { - ScoreboardManager.enablePlayerSkillScoreboard(player, primarySkillType); + ScoreboardManager.enablePlayerSkillScoreboard(player, skill); } return true; @@ -125,39 +121,39 @@ public abstract class SkillCommand implements TabExecutor { return skillGuideCommand.onCommand(sender, command, label, args); } - private void sendStatMessages(@NotNull OnlineMMOPlayer mmoPlayer, boolean isLucky, boolean hasEndurance, float skillValue) { - List statsMessages = statsDisplay(mmoPlayer, skillValue, hasEndurance, isLucky); + private void getStatMessages(Player player, boolean isLucky, boolean hasEndurance, float skillValue) { + List statsMessages = statsDisplay(player, skillValue, hasEndurance, isLucky); if (!statsMessages.isEmpty()) { - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", LocaleLoader.getString("Commands.Stats.Self.Overhaul"))); + player.sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", LocaleLoader.getString("Commands.Stats.Self.Overhaul"))); for (String message : statsMessages) { - Misc.adaptPlayer(mmoPlayer).sendMessage(message); + player.sendMessage(message); } } - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Guides.Available", skillName, skillName.toLowerCase(Locale.ENGLISH))); + player.sendMessage(LocaleLoader.getString("Guides.Available", skillName, skillName.toLowerCase(Locale.ENGLISH))); } - private void sendSkillCommandHeader(@NotNull OnlineMMOPlayer mmoPlayer, int skillValue) { + private void sendSkillCommandHeader(Player player, McMMOPlayer mcMMOPlayer, int skillValue) { ChatColor hd1 = ChatColor.DARK_AQUA; ChatColor c1 = ChatColor.GOLD; ChatColor c2 = ChatColor.RED; - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", skillName)); + player.sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", skillName)); - if(!PrimarySkillType.isChildSkill(rootSkill)) + if(!skill.isChildSkill()) { /* * NON-CHILD SKILLS */ //XP GAIN METHOD - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Commands.XPGain.Overhaul", LocaleLoader.getString("Commands.XPGain." + StringUtils.getCapitalized(rootSkill.toString())))); + player.sendMessage(LocaleLoader.getString("Commands.XPGain.Overhaul", LocaleLoader.getString("Commands.XPGain." + StringUtils.getCapitalized(skill.toString())))); //LEVEL - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Effects.Level.Overhaul", skillValue, mmoPlayer.getExperienceHandler().getSkillXpValue(rootSkill), mmoPlayer.getExperienceHandler().getExperienceToNextLevel(rootSkill))); + player.sendMessage(LocaleLoader.getString("Effects.Level.Overhaul", skillValue, mcMMOPlayer.getSkillXpLevel(skill), mcMMOPlayer.getXpToLevel(skill))); } else { /* @@ -165,11 +161,11 @@ public abstract class SkillCommand implements TabExecutor { */ - Set parents = FamilyTree.getParentSkills(rootSkill); + Set parents = FamilyTree.getParents(skill); //TODO: Add JSON here - /*player.sendMessage(parent.getName() + " - " + LocaleLoader.getString("Effects.Level.Overhaul", mmoPlayer.getSkillLevel(parent), mmoPlayer.getSkillXpLevel(parent), mmoPlayer.getXpToLevel(parent)))*/ - ArrayList parentList = new ArrayList<>(parents); + /*player.sendMessage(parent.getName() + " - " + LocaleLoader.getString("Effects.Level.Overhaul", mcMMOPlayer.getSkillLevel(parent), mcMMOPlayer.getSkillXpLevel(parent), mcMMOPlayer.getXpToLevel(parent)))*/ + ArrayList parentList = new ArrayList<>(parents); StringBuilder parentMessage = new StringBuilder(); @@ -185,15 +181,35 @@ public abstract class SkillCommand implements TabExecutor { } //XP GAIN METHOD - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Commands.XPGain.Overhaul", LocaleLoader.getString("Commands.XPGain.Child"))); + player.sendMessage(LocaleLoader.getString("Commands.XPGain.Overhaul", LocaleLoader.getString("Commands.XPGain.Child"))); - Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Effects.Child.Overhaul", skillValue, parentMessage.toString())); + player.sendMessage(LocaleLoader.getString("Effects.Child.Overhaul", skillValue, parentMessage.toString())); + //LEVEL + //player.sendMessage(LocaleLoader.getString("Effects.Child.Overhaul", skillValue, skillValue)); } + /* + if (!skill.isChildSkill()) { + player.sendMessage(LocaleLoader.getString("Skills.Header", skillName)); + player.sendMessage(LocaleLoader.getString("Commands.XPGain", LocaleLoader.getString("Commands.XPGain." + StringUtils.getCapitalized(skill.toString())))); + player.sendMessage(LocaleLoader.getString("Effects.Level", skillValue, mcMMOPlayer.getSkillXpLevel(skill), mcMMOPlayer.getXpToLevel(skill))); + } else { + player.sendMessage(LocaleLoader.getString("Skills.Header", skillName + " " + LocaleLoader.getString("Skills.Child"))); + player.sendMessage(LocaleLoader.getString("Commands.XPGain", LocaleLoader.getString("Commands.XPGain.Child"))); + player.sendMessage(LocaleLoader.getString("Effects.Child", skillValue)); + + player.sendMessage(LocaleLoader.getString("Skills.Header", LocaleLoader.getString("Skills.Parents"))); + Set parents = FamilyTree.getParents(skill); + + for (PrimarySkillType parent : parents) { + player.sendMessage(parent.getName() + " - " + LocaleLoader.getString("Effects.Level", mcMMOPlayer.getSkillLevel(parent), mcMMOPlayer.getSkillXpLevel(parent), mcMMOPlayer.getXpToLevel(parent))); + } + } + */ } @Override - public @NotNull List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) { + public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) { if (args.length == 1) { return ImmutableList.of("?"); } @@ -204,12 +220,12 @@ public abstract class SkillCommand implements TabExecutor { return Math.min((int) skillValue, maxLevel) / rankChangeLevel; } - protected @NotNull String[] getAbilityDisplayValues(@NotNull SkillActivationType skillActivationType, @NotNull OnlineMMOPlayer mmoPlayer, @NotNull SubSkillType subSkill) { - return RandomChanceUtil.calculateAbilityDisplayValues(SkillActivationType, Misc.adaptPlayer(mmoPlayer), subSkill); + protected String[] getAbilityDisplayValues(SkillActivationType skillActivationType, Player player, SubSkillType subSkill) { + return RandomChanceUtil.calculateAbilityDisplayValues(skillActivationType, player, subSkill); } - protected @NotNull String[] calculateLengthDisplayValues(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { - int maxLength = PrimarySkillType.getSuperAbilityType().getMaxLength(); + protected String[] calculateLengthDisplayValues(Player player, float skillValue) { + int maxLength = skill.getAbility().getMaxLength(); int abilityLengthVar = AdvancedConfig.getInstance().getAbilityLength(); int abilityLengthCap = AdvancedConfig.getInstance().getAbilityLengthCap(); @@ -217,13 +233,13 @@ public abstract class SkillCommand implements TabExecutor { if(abilityLengthCap <= 0) { - length = 2 + (int) (rootSkillValue / abilityLengthVar); + length = 2 + (int) (skillValue / abilityLengthVar); } else { length = 2 + (int) (Math.min(abilityLengthCap, skillValue) / abilityLengthVar); } - int enduranceLength = PerksUtils.handleActivationPerks(Misc.adaptPlayer(mmoPlayer), length, maxLength); + int enduranceLength = PerksUtils.handleActivationPerks(player, length, maxLength); if (maxLength != 0) { length = Math.min(length, maxLength); @@ -232,12 +248,12 @@ public abstract class SkillCommand implements TabExecutor { return new String[] { String.valueOf(length), String.valueOf(enduranceLength) }; } - protected @NotNull String getStatMessage(SubSkillType subSkillType, String... vars) + protected String getStatMessage(SubSkillType subSkillType, String... vars) { return getStatMessage(false, false, subSkillType, vars); } - protected @NotNull String getStatMessage(boolean isExtra, boolean isCustom, SubSkillType subSkillType, String... vars) + protected String getStatMessage(boolean isExtra, boolean isCustom, SubSkillType subSkillType, String... vars) { String templateKey = isCustom ? "Ability.Generic.Template.Custom" : "Ability.Generic.Template"; String statDescriptionKey = !isExtra ? subSkillType.getLocaleKeyStatDescription() : subSkillType.getLocaleKeyStatExtraDescription(); @@ -251,7 +267,7 @@ public abstract class SkillCommand implements TabExecutor { } } - protected @NotNull String getLimitBreakDescriptionParameter() { + protected String getLimitBreakDescriptionParameter() { if(AdvancedConfig.getInstance().canApplyLimitBreakPVE()) { return "(PVP/PVE)"; } else { @@ -259,23 +275,24 @@ public abstract class SkillCommand implements TabExecutor { } } - protected abstract void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue); + protected abstract void dataCalculations(Player player, float skillValue); - protected abstract void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer); + protected abstract void permissionsCheck(Player player); //protected abstract List effectsDisplay(); - protected abstract @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky); + protected abstract List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky); - protected abstract @NotNull List getTextComponents(@NotNull OnlineMMOPlayer player); + protected abstract List getTextComponents(Player player); /** * Checks if a player can use a skill - * @param mmoPlayer target player + * @param player target player * @param subSkillType target subskill - * @return true if the player has permission and has the rootSkillunlocked + * @return true if the player has permission and has the skill unlocked */ - protected boolean canUseSubskill(@NotNull OnlineMMOPlayer mmoPlayer, SubSkillType subSkillType) { - return Permissions.isSubSkillEnabled(Misc.adaptPlayer(mmoPlayer), subSkillType) && RankUtils.hasUnlockedSubskill(mmoPlayer, subSkillType); + protected boolean canUseSubskill(Player player, SubSkillType subSkillType) + { + return Permissions.isSubSkillEnabled(player, subSkillType) && RankUtils.hasUnlockedSubskill(player, subSkillType); } } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java index 2645f278e..a7879bb8d 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java @@ -1,9 +1,8 @@ package com.gmail.nossr50.commands.skills; -import com.gmail.nossr50.datatypes.skills.CoreSkills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.text.StringUtils; -import com.neetgames.mcmmo.skill.RootSkill; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -12,18 +11,15 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.Arrays; -//TODO: Switch to root rootSkillbased public class SkillGuideCommand implements CommandExecutor { private final String header; - private final RootSkill rootSkill; private final ArrayList guide; private final String invalidPage = LocaleLoader.getString("Guides.Page.Invalid"); - public SkillGuideCommand(@NotNull RootSkill rootSkill) { - this.rootSkill = rootSkill; - header = LocaleLoader.getString("Guides.Header", rootSkill.getName()); - guide = getGuide(rootSkill); + public SkillGuideCommand(PrimarySkillType skill) { + header = LocaleLoader.getString("Guides.Header", skill.getName()); + guide = getGuide(skill); } @Override @@ -90,11 +86,11 @@ public class SkillGuideCommand implements CommandExecutor { return allStrings; } - private ArrayList getGuide(RootSkill rootSkill) { + private ArrayList getGuide(PrimarySkillType skill) { ArrayList guide = new ArrayList<>(); for (int i = 0; i < 10; i++) { - String[] section = LocaleLoader.getString("Guides." + StringUtils.getCapitalized(rootSkill.toString()) + ".Section." + i).split("\n"); + String[] section = LocaleLoader.getString("Guides." + StringUtils.getCapitalized(skill.toString()) + ".Section." + i).split("\n"); if (section[0].startsWith("!")) { break; diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java index d5dc5ed3e..55544acc2 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java @@ -1,14 +1,15 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -30,10 +31,10 @@ public class SmeltingCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // FUEL EFFICIENCY if (canFuelEfficiency) { - burnTimeModifier = String.valueOf(((McMMOPlayer) (mmoPlayer)).getSmeltingManager().getFuelEfficiencyMultiplier()); + burnTimeModifier = String.valueOf(UserManager.getPlayer(player).getSmeltingManager().getFuelEfficiencyMultiplier()); } // FLUX MINING @@ -45,22 +46,22 @@ public class SmeltingCommand extends SkillCommand { // SECOND SMELT if (canSecondSmelt) { - String[] secondSmeltStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.SMELTING_SECOND_SMELT); + String[] secondSmeltStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SMELTING_SECOND_SMELT); str_secondSmeltChance = secondSmeltStrings[0]; str_secondSmeltChanceLucky = secondSmeltStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canFuelEfficiency = canUseSubskill(mmoPlayer, SubSkillType.SMELTING_FUEL_EFFICIENCY); - canSecondSmelt = canUseSubskill(mmoPlayer, SubSkillType.SMELTING_SECOND_SMELT); + protected void permissionsCheck(Player player) { + canFuelEfficiency = canUseSubskill(player, SubSkillType.SMELTING_FUEL_EFFICIENCY); + canSecondSmelt = canUseSubskill(player, SubSkillType.SMELTING_SECOND_SMELT); //canFluxMine = canUseSubskill(player, SubSkillType.SMELTING_FLUX_MINING); - canUnderstandTheArt = Permissions.vanillaXpBoost(Misc.adaptPlayer(mmoPlayer), rootSkill) && RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.SMELTING_UNDERSTANDING_THE_ART); + canUnderstandTheArt = Permissions.vanillaXpBoost(player, skill) && RankUtils.hasUnlockedSubskill(player, SubSkillType.SMELTING_UNDERSTANDING_THE_ART); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); /*if (canFluxMine) { @@ -80,17 +81,17 @@ public class SmeltingCommand extends SkillCommand { if (canUnderstandTheArt) { messages.add(getStatMessage(false, true, SubSkillType.SMELTING_UNDERSTANDING_THE_ART, - String.valueOf(((McMMOPlayer) (mmoPlayer)).getSmeltingManager().getVanillaXpMultiplier()))); + String.valueOf(UserManager.getPlayer(player).getSmeltingManager().getVanillaXpMultiplier()))); } return messages; } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.SMELTING); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.SMELTING); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java index f3edc9aec..1e6bf1d72 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java @@ -1,16 +1,17 @@ package com.gmail.nossr50.commands.skills; import com.gmail.nossr50.config.AdvancedConfig; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.CombatUtils; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -33,45 +34,45 @@ public class SwordsCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // SWORDS_COUNTER_ATTACK if (canCounter) { - String[] counterStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.SWORDS_COUNTER_ATTACK); + String[] counterStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SWORDS_COUNTER_ATTACK); counterChance = counterStrings[0]; counterChanceLucky = counterStrings[1]; } // SWORDS_RUPTURE if (canBleed) { - bleedLength = ((McMMOPlayer) (mmoPlayer)).getSwordsManager().getRuptureBleedTicks(); + bleedLength = UserManager.getPlayer(player).getSwordsManager().getRuptureBleedTicks(); - String[] bleedStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.SWORDS_RUPTURE); + String[] bleedStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SWORDS_RUPTURE); bleedChance = bleedStrings[0]; bleedChanceLucky = bleedStrings[1]; } // SERRATED STRIKES if (canSerratedStrike) { - String[] serratedStrikesStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); + String[] serratedStrikesStrings = calculateLengthDisplayValues(player, skillValue); serratedStrikesLength = serratedStrikesStrings[0]; serratedStrikesLengthEndurance = serratedStrikesStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canBleed = canUseSubskill(mmoPlayer, SubSkillType.SWORDS_RUPTURE); - canCounter = canUseSubskill(mmoPlayer, SubSkillType.SWORDS_COUNTER_ATTACK); - canSerratedStrike = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.SWORDS_SERRATED_STRIKES) && Permissions.serratedStrikes(mmoPlayer.getPlayer()); + protected void permissionsCheck(Player player) { + canBleed = canUseSubskill(player, SubSkillType.SWORDS_RUPTURE); + canCounter = canUseSubskill(player, SubSkillType.SWORDS_COUNTER_ATTACK); + canSerratedStrike = RankUtils.hasUnlockedSubskill(player, SubSkillType.SWORDS_SERRATED_STRIKES) && Permissions.serratedStrikes(player); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); - int ruptureTicks = ((McMMOPlayer) (mmoPlayer)).getSwordsManager().getRuptureBleedTicks(); - double ruptureDamagePlayers = RankUtils.getRank(mmoPlayer, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamagePlayer() * 1.5D : AdvancedConfig.getInstance().getRuptureDamagePlayer(); - double ruptureDamageMobs = RankUtils.getRank(mmoPlayer, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamageMobs() * 1.5D : AdvancedConfig.getInstance().getRuptureDamageMobs(); + int ruptureTicks = UserManager.getPlayer(player).getSwordsManager().getRuptureBleedTicks(); + double ruptureDamagePlayers = RankUtils.getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamagePlayer() * 1.5D : AdvancedConfig.getInstance().getRuptureDamagePlayer(); + double ruptureDamageMobs = RankUtils.getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamageMobs() * 1.5D : AdvancedConfig.getInstance().getRuptureDamageMobs(); if (canCounter) { messages.add(getStatMessage(SubSkillType.SWORDS_COUNTER_ATTACK, counterChance) @@ -94,25 +95,25 @@ public class SwordsCommand extends SkillCommand { + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", serratedStrikesLengthEndurance) : "")); } - if(canUseSubskill(mmoPlayer, SubSkillType.SWORDS_STAB)) + if(canUseSubskill(player, SubSkillType.SWORDS_STAB)) { messages.add(getStatMessage(SubSkillType.SWORDS_STAB, - String.valueOf(((McMMOPlayer) (mmoPlayer)).getSwordsManager().getStabDamage()))); + String.valueOf(UserManager.getPlayer(player).getSwordsManager().getStabDamage()))); } - if(canUseSubskill(mmoPlayer, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK)) { + if(canUseSubskill(player, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK)) { messages.add(getStatMessage(SubSkillType.SWORDS_SWORDS_LIMIT_BREAK, - String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(mmoPlayer, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK, 1000)))); + String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(player, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK, 1000)))); } return messages; } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.SWORDS); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.SWORDS); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java index 3a7a60cdc..35f04f5bc 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java @@ -1,15 +1,15 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.taming.Taming; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; import org.bukkit.entity.EntityType; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -33,29 +33,29 @@ public class TamingCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { if (canGore) { - String[] goreStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.TAMING_GORE); + String[] goreStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.TAMING_GORE); goreChance = goreStrings[0]; goreChanceLucky = goreStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canBeastLore = canUseSubskill(mmoPlayer, SubSkillType.TAMING_BEAST_LORE); - canCallWild = Permissions.callOfTheWild(Misc.adaptPlayer(mmoPlayer), EntityType.HORSE) || Permissions.callOfTheWild(Misc.adaptPlayer(mmoPlayer), EntityType.WOLF) || Permissions.callOfTheWild(Misc.adaptPlayer(mmoPlayer), EntityType.OCELOT); - canEnvironmentallyAware = canUseSubskill(mmoPlayer, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE); - canFastFood = canUseSubskill(mmoPlayer, SubSkillType.TAMING_FAST_FOOD_SERVICE); - canGore = canUseSubskill(mmoPlayer, SubSkillType.TAMING_GORE); - canSharpenedClaws = canUseSubskill(mmoPlayer, SubSkillType.TAMING_SHARPENED_CLAWS); - canShockProof = canUseSubskill(mmoPlayer, SubSkillType.TAMING_SHOCK_PROOF); - canThickFur = canUseSubskill(mmoPlayer, SubSkillType.TAMING_THICK_FUR); - canHolyHound = canUseSubskill(mmoPlayer, SubSkillType.TAMING_HOLY_HOUND); + protected void permissionsCheck(Player player) { + canBeastLore = canUseSubskill(player, SubSkillType.TAMING_BEAST_LORE); + canCallWild = Permissions.callOfTheWild(player, EntityType.HORSE) || Permissions.callOfTheWild(player, EntityType.WOLF) || Permissions.callOfTheWild(player, EntityType.OCELOT); + canEnvironmentallyAware = canUseSubskill(player, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE); + canFastFood = canUseSubskill(player, SubSkillType.TAMING_FAST_FOOD_SERVICE); + canGore = canUseSubskill(player, SubSkillType.TAMING_GORE); + canSharpenedClaws = canUseSubskill(player, SubSkillType.TAMING_SHARPENED_CLAWS); + canShockProof = canUseSubskill(player, SubSkillType.TAMING_SHOCK_PROOF); + canThickFur = canUseSubskill(player, SubSkillType.TAMING_THICK_FUR); + canHolyHound = canUseSubskill(player, SubSkillType.TAMING_HOLY_HOUND); } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canEnvironmentallyAware) { @@ -92,10 +92,10 @@ public class TamingCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, this.rootSkill); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, this.skill); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java index ca4607d37..5f9784be7 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java @@ -1,15 +1,16 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.CombatUtils; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -36,53 +37,53 @@ public class UnarmedCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // UNARMED_ARROW_DEFLECT if (canDeflect) { - String[] deflectStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.UNARMED_ARROW_DEFLECT); + String[] deflectStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_ARROW_DEFLECT); deflectChance = deflectStrings[0]; deflectChanceLucky = deflectStrings[1]; } // BERSERK if (canBerserk) { - String[] berserkStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); + String[] berserkStrings = calculateLengthDisplayValues(player, skillValue); berserkLength = berserkStrings[0]; berserkLengthEndurance = berserkStrings[1]; } // UNARMED_DISARM if (canDisarm) { - String[] disarmStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.UNARMED_DISARM); + String[] disarmStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_DISARM); disarmChance = disarmStrings[0]; disarmChanceLucky = disarmStrings[1]; } // IRON ARM if (canIronArm) { - ironArmBonus = ((McMMOPlayer) (mmoPlayer)).getUnarmedManager().getSteelArmStyleDamage(); + ironArmBonus = UserManager.getPlayer(player).getUnarmedManager().getSteelArmStyleDamage(); } // IRON GRIP if (canIronGrip) { - String[] ironGripStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.UNARMED_IRON_GRIP); + String[] ironGripStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_IRON_GRIP); ironGripChance = ironGripStrings[0]; ironGripChanceLucky = ironGripStrings[1]; } } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canBerserk = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.UNARMED_BERSERK) && Permissions.berserk(mmoPlayer.getPlayer()); - canIronArm = canUseSubskill(mmoPlayer, SubSkillType.UNARMED_STEEL_ARM_STYLE); - canDeflect = canUseSubskill(mmoPlayer, SubSkillType.UNARMED_ARROW_DEFLECT); - canDisarm = canUseSubskill(mmoPlayer, SubSkillType.UNARMED_DISARM); - canIronGrip = canUseSubskill(mmoPlayer, SubSkillType.UNARMED_IRON_GRIP); + protected void permissionsCheck(Player player) { + canBerserk = RankUtils.hasUnlockedSubskill(player, SubSkillType.UNARMED_BERSERK) && Permissions.berserk(player); + canIronArm = canUseSubskill(player, SubSkillType.UNARMED_STEEL_ARM_STYLE); + canDeflect = canUseSubskill(player, SubSkillType.UNARMED_ARROW_DEFLECT); + canDisarm = canUseSubskill(player, SubSkillType.UNARMED_DISARM); + canIronGrip = canUseSubskill(player, SubSkillType.UNARMED_IRON_GRIP); // TODO: Apparently we forgot about block cracker? } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canDeflect) { @@ -113,19 +114,19 @@ public class UnarmedCommand extends SkillCommand { //messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.IronGrip", ironGripChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", ironGripChanceLucky) : "")); } - if(canUseSubskill(mmoPlayer, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK)) { + if(canUseSubskill(player, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK)) { messages.add(getStatMessage(SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, - String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(mmoPlayer, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, 1000)))); + String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(player, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, 1000)))); } return messages; } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.UNARMED); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.UNARMED); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java index e20df75bb..a817a312d 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java @@ -1,14 +1,14 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; +import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; @@ -32,39 +32,39 @@ public class WoodcuttingCommand extends SkillCommand { } @Override - protected void dataCalculations(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue) { + protected void dataCalculations(Player player, float skillValue) { // DOUBLE DROPS if (canDoubleDrop) { - setDoubleDropClassicChanceStrings(mmoPlayer); + setDoubleDropClassicChanceStrings(player); } // TREE FELLER if (canTreeFell) { - String[] treeFellerStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); + String[] treeFellerStrings = calculateLengthDisplayValues(player, skillValue); treeFellerLength = treeFellerStrings[0]; treeFellerLengthEndurance = treeFellerStrings[1]; } } - private void setDoubleDropClassicChanceStrings(OnlineMMOPlayer mmoPlayer) { - String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.WOODCUTTING_HARVEST_LUMBER); + private void setDoubleDropClassicChanceStrings(Player player) { + String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.WOODCUTTING_HARVEST_LUMBER); doubleDropChance = doubleDropStrings[0]; doubleDropChanceLucky = doubleDropStrings[1]; } @Override - protected void permissionsCheck(@NotNull OnlineMMOPlayer mmoPlayer) { - canTreeFell = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.WOODCUTTING_TREE_FELLER) && Permissions.treeFeller(mmoPlayer.getPlayer()); - canDoubleDrop = canUseSubskill(mmoPlayer, SubSkillType.WOODCUTTING_HARVEST_LUMBER) && !rootSkill.getDoubleDropsDisabled() && RankUtils.getRank(mmoPlayer, SubSkillType.WOODCUTTING_HARVEST_LUMBER) >= 1; - canLeafBlow = canUseSubskill(mmoPlayer, SubSkillType.WOODCUTTING_LEAF_BLOWER); - canKnockOnWood = canTreeFell && canUseSubskill(mmoPlayer, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD); + protected void permissionsCheck(Player player) { + canTreeFell = RankUtils.hasUnlockedSubskill(player, SubSkillType.WOODCUTTING_TREE_FELLER) && Permissions.treeFeller(player); + canDoubleDrop = canUseSubskill(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) && !skill.getDoubleDropsDisabled() && RankUtils.getRank(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) >= 1; + canLeafBlow = canUseSubskill(player, SubSkillType.WOODCUTTING_LEAF_BLOWER); + canKnockOnWood = canTreeFell && canUseSubskill(player, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD); /*canSplinter = canUseSubskill(player, SubSkillType.WOODCUTTING_SPLINTER); canBarkSurgeon = canUseSubskill(player, SubSkillType.WOODCUTTING_BARK_SURGEON); canNaturesBounty = canUseSubskill(player, SubSkillType.WOODCUTTING_NATURES_BOUNTY);*/ } @Override - protected @NotNull List statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { + protected List statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); if (canDoubleDrop) { @@ -75,7 +75,7 @@ public class WoodcuttingCommand extends SkillCommand { if (canKnockOnWood) { String lootNote; - if(RankUtils.hasReachedRank(2, mmoPlayer, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD)) { + if(RankUtils.hasReachedRank(2, player, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD)) { lootNote = LocaleLoader.getString("Woodcutting.SubSkill.KnockOnWood.Loot.Rank2"); } else { lootNote = LocaleLoader.getString("Woodcutting.SubSkill.KnockOnWood.Loot.Normal"); @@ -97,10 +97,10 @@ public class WoodcuttingCommand extends SkillCommand { } @Override - protected @NotNull List getTextComponents(@NotNull OnlineMMOPlayer mmoPlayer) { + protected List getTextComponents(Player player) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.WOODCUTTING); + TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.WOODCUTTING); return textComponents; }