mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Changing the style of our code
This commit is contained in:
		@@ -1,11 +1,11 @@
 | 
			
		||||
package com.gmail.nossr50.commands;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.database.FlatfileDatabaseManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.database.SQLDatabaseManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.commands;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.skills.ModConfigType;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.util.Misc;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
@@ -71,17 +71,14 @@ public class McImportCommand implements CommandExecutor {
 | 
			
		||||
                materialNames.get(type).add(materialName);
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        catch (FileNotFoundException e) {
 | 
			
		||||
        } 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) {
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        finally {
 | 
			
		||||
        } finally {
 | 
			
		||||
            tryClose(in);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -116,8 +113,7 @@ public class McImportCommand implements CommandExecutor {
 | 
			
		||||
        }
 | 
			
		||||
        try {
 | 
			
		||||
            c.close();
 | 
			
		||||
        }
 | 
			
		||||
        catch (IOException e) {
 | 
			
		||||
        } catch (IOException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -169,16 +165,13 @@ public class McImportCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
                out = new FileWriter(outputFile);
 | 
			
		||||
                out.write(writer.toString());
 | 
			
		||||
            }
 | 
			
		||||
            catch (IOException e) {
 | 
			
		||||
            } catch (IOException e) {
 | 
			
		||||
                e.printStackTrace();
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e) {
 | 
			
		||||
            } catch (Exception e) {
 | 
			
		||||
                e.printStackTrace();
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            finally {
 | 
			
		||||
            } finally {
 | 
			
		||||
                tryClose(out);
 | 
			
		||||
                fileAmount++;
 | 
			
		||||
            }
 | 
			
		||||
@@ -208,14 +201,11 @@ public class McImportCommand implements CommandExecutor {
 | 
			
		||||
            String skillName = "UNIDENTIFIED";
 | 
			
		||||
            if (materialName.contains("ORE")) {
 | 
			
		||||
                skillName = "Mining";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("LOG") || materialName.contains("LEAVES")) {
 | 
			
		||||
            } else if (materialName.contains("LOG") || materialName.contains("LEAVES")) {
 | 
			
		||||
                skillName = "Woodcutting";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
 | 
			
		||||
            } else if (materialName.contains("GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
 | 
			
		||||
                skillName = "Herbalism";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("DIRT") || materialName.contains("SAND")) {
 | 
			
		||||
            } else if (materialName.contains("DIRT") || materialName.contains("SAND")) {
 | 
			
		||||
                skillName = "Excavation";
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -230,8 +220,7 @@ public class McImportCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
            if (skillName.equals("Mining")) {
 | 
			
		||||
                skillContents.add("    " + "    " + "Smelting_XP_Gain: 9");
 | 
			
		||||
            }
 | 
			
		||||
            else if (skillName.equals("Woodcutting")) {
 | 
			
		||||
            } else if (skillName.equals("Woodcutting")) {
 | 
			
		||||
                skillContents.add("    " + "    " + "Is_Log: " + materialName.contains("LOG"));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -247,20 +236,15 @@ public class McImportCommand implements CommandExecutor {
 | 
			
		||||
            String toolType = "UNIDENTIFIED";
 | 
			
		||||
            if (materialName.contains("PICKAXE")) {
 | 
			
		||||
                toolType = "Pickaxes";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("AXE")) {
 | 
			
		||||
            } else if (materialName.contains("AXE")) {
 | 
			
		||||
                toolType = "Axes";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("BOW")) {
 | 
			
		||||
            } else if (materialName.contains("BOW")) {
 | 
			
		||||
                toolType = "Bows";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("HOE")) {
 | 
			
		||||
            } else if (materialName.contains("HOE")) {
 | 
			
		||||
                toolType = "Hoes";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("SHOVEL") || materialName.contains("SPADE")) {
 | 
			
		||||
            } else if (materialName.contains("SHOVEL") || materialName.contains("SPADE")) {
 | 
			
		||||
                toolType = "Shovels";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("SWORD")) {
 | 
			
		||||
            } else if (materialName.contains("SWORD")) {
 | 
			
		||||
                toolType = "Swords";
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -287,14 +271,11 @@ public class McImportCommand implements CommandExecutor {
 | 
			
		||||
            String toolType = "UNIDENTIFIED";
 | 
			
		||||
            if (materialName.contains("BOOT") || materialName.contains("SHOE")) {
 | 
			
		||||
                toolType = "Boots";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("CHESTPLATE") || materialName.contains("CHEST")) {
 | 
			
		||||
            } else if (materialName.contains("CHESTPLATE") || materialName.contains("CHEST")) {
 | 
			
		||||
                toolType = "Chestplates";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("HELM") || materialName.contains("HAT")) {
 | 
			
		||||
            } else if (materialName.contains("HELM") || materialName.contains("HAT")) {
 | 
			
		||||
                toolType = "Helmets";
 | 
			
		||||
            }
 | 
			
		||||
            else if (materialName.contains("LEGGINGS") || materialName.contains("LEGS") || materialName.contains("PANTS")) {
 | 
			
		||||
            } else if (materialName.contains("LEGGINGS") || materialName.contains("LEGS") || materialName.contains("PANTS")) {
 | 
			
		||||
                toolType = "Leggings";
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -22,9 +22,6 @@ public class McconvertCommand implements TabExecutor {
 | 
			
		||||
    private static final List<String> DATABASE_TYPES;
 | 
			
		||||
    private static final List<String> SUBCOMMANDS = ImmutableList.of("database", "experience");
 | 
			
		||||
 | 
			
		||||
    private CommandExecutor databaseConvertCommand = new ConvertDatabaseCommand();
 | 
			
		||||
    private CommandExecutor experienceConvertCommand = new ConvertExperienceCommand();
 | 
			
		||||
 | 
			
		||||
    static {
 | 
			
		||||
        ArrayList<String> formulaTypes = new ArrayList<String>();
 | 
			
		||||
        ArrayList<String> databaseTypes = new ArrayList<String>();
 | 
			
		||||
@@ -52,14 +49,16 @@ public class McconvertCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private CommandExecutor databaseConvertCommand = new ConvertDatabaseCommand();
 | 
			
		||||
    private CommandExecutor experienceConvertCommand = new ConvertExperienceCommand();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        switch (args.length) {
 | 
			
		||||
            case 2:
 | 
			
		||||
                if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
 | 
			
		||||
                    return databaseConvertCommand.onCommand(sender, command, label, args);
 | 
			
		||||
                }
 | 
			
		||||
                else if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[1].equalsIgnoreCase("exp")) {
 | 
			
		||||
                } else if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[1].equalsIgnoreCase("exp")) {
 | 
			
		||||
                    return experienceConvertCommand.onCommand(sender, command, label, args);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,8 +3,8 @@ package com.gmail.nossr50.commands;
 | 
			
		||||
import com.gmail.nossr50.commands.party.PartySubcommandType;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
@@ -71,7 +71,7 @@ public class McmmoCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
    private void displayOtherCommands(CommandSender sender) {
 | 
			
		||||
        //Don't show them this category if they have none of the permissions
 | 
			
		||||
        if(!Permissions.skillreset(sender) && !Permissions.mmoedit(sender) && !Permissions.adminChat(sender) && !Permissions.mcgod(sender))
 | 
			
		||||
        if (!Permissions.skillreset(sender) && !Permissions.mmoedit(sender) && !Permissions.adminChat(sender) && !Permissions.mcgod(sender))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        sender.sendMessage(LocaleLoader.getString("Commands.Other"));
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.commands;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.commands;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -71,7 +71,10 @@ public abstract class ToggleCommand implements TabExecutor {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
package com.gmail.nossr50.commands;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.AdvancedConfig;
 | 
			
		||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.AdvancedConfig;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.StringUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.player.NotificationManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
@@ -25,7 +25,7 @@ public class XprateCommand implements TabExecutor {
 | 
			
		||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        switch (args.length) {
 | 
			
		||||
            case 1:
 | 
			
		||||
                if (!args[0].equalsIgnoreCase("reset") &&  !args[0].equalsIgnoreCase("clear")) {
 | 
			
		||||
                if (!args[0].equalsIgnoreCase("reset") && !args[0].equalsIgnoreCase("clear")) {
 | 
			
		||||
                    return false;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -36,12 +36,11 @@ public class XprateCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
                if (mcMMO.p.isXPEventEnabled()) {
 | 
			
		||||
 | 
			
		||||
                    if(AdvancedConfig.getInstance().useTitlesForXPEvent())
 | 
			
		||||
                    {
 | 
			
		||||
                    if (AdvancedConfig.getInstance().useTitlesForXPEvent()) {
 | 
			
		||||
                        NotificationManager.broadcastTitle(mcMMO.p.getServer(),
 | 
			
		||||
                                LocaleLoader.getString("Commands.Event.Stop"),
 | 
			
		||||
                                LocaleLoader.getString("Commands.Event.Stop.Subtitle"),
 | 
			
		||||
                                10, 10*20, 20);
 | 
			
		||||
                                10, 10 * 20, 20);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Stop"));
 | 
			
		||||
@@ -65,36 +64,31 @@ public class XprateCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
                if (CommandUtils.shouldDisableToggle(args[1])) {
 | 
			
		||||
                    mcMMO.p.setXPEventEnabled(false);
 | 
			
		||||
                }
 | 
			
		||||
                else if (CommandUtils.shouldEnableToggle(args[1])) {
 | 
			
		||||
                } else if (CommandUtils.shouldEnableToggle(args[1])) {
 | 
			
		||||
                    mcMMO.p.setXPEventEnabled(true);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    return false;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                int newXpRate = Integer.parseInt(args[0]);
 | 
			
		||||
 | 
			
		||||
                if(newXpRate < 0)
 | 
			
		||||
                {
 | 
			
		||||
                    sender.sendMessage(ChatColor.RED+LocaleLoader.getString("Commands.NegativeNumberWarn"));
 | 
			
		||||
                if (newXpRate < 0) {
 | 
			
		||||
                    sender.sendMessage(ChatColor.RED + LocaleLoader.getString("Commands.NegativeNumberWarn"));
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                ExperienceConfig.getInstance().setExperienceGainsGlobalMultiplier(newXpRate);
 | 
			
		||||
 | 
			
		||||
                if (mcMMO.p.isXPEventEnabled()) {
 | 
			
		||||
                    if(AdvancedConfig.getInstance().useTitlesForXPEvent())
 | 
			
		||||
                    {
 | 
			
		||||
                    if (AdvancedConfig.getInstance().useTitlesForXPEvent()) {
 | 
			
		||||
                        NotificationManager.broadcastTitle(mcMMO.p.getServer(),
 | 
			
		||||
                                LocaleLoader.getString("Commands.Event.Start"),
 | 
			
		||||
                                LocaleLoader.getString("Commands.Event.XP", newXpRate),
 | 
			
		||||
                                10, 10*20, 20);
 | 
			
		||||
                                10, 10 * 20, 20);
 | 
			
		||||
                    }
 | 
			
		||||
                    mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Start"));
 | 
			
		||||
                    mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.XP", newXpRate));
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    sender.sendMessage(LocaleLoader.getString("Commands.xprate.modified", newXpRate));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,13 +3,13 @@ package com.gmail.nossr50.commands.chat;
 | 
			
		||||
import com.gmail.nossr50.core.chat.ChatManager;
 | 
			
		||||
import com.gmail.nossr50.core.chat.ChatManagerFactory;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.chat.ChatMode;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyFeature;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -21,8 +21,8 @@ import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public abstract class ChatCommand implements TabExecutor {
 | 
			
		||||
    private ChatMode chatMode;
 | 
			
		||||
    protected ChatManager chatManager;
 | 
			
		||||
    private ChatMode chatMode;
 | 
			
		||||
 | 
			
		||||
    public ChatCommand(ChatMode chatMode) {
 | 
			
		||||
        this.chatMode = chatMode;
 | 
			
		||||
@@ -47,8 +47,7 @@ public abstract class ChatCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
                if (mcMMOPlayer.isChatEnabled(chatMode)) {
 | 
			
		||||
                    disableChatMode(mcMMOPlayer, sender);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    enableChatMode(mcMMOPlayer, sender);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,12 +2,12 @@ package com.gmail.nossr50.commands.chat;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.chat.PartyChatManager;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.chat.ChatMode;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyFeature;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 | 
			
		||||
@@ -35,8 +35,7 @@ public class PartyChatCommand extends ChatCommand {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            message = buildChatMessage(args, 0);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            if (args.length < 2) {
 | 
			
		||||
                sender.sendMessage(LocaleLoader.getString("Party.Specify"));
 | 
			
		||||
                return;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,14 @@
 | 
			
		||||
package com.gmail.nossr50.commands.database;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.database.DatabaseManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.database.DatabaseManagerFactory;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.database.DatabaseType;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.PlayerProfile;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.database.DatabaseConversionTask;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.player.PlayerProfileLoadingTask;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -41,8 +41,7 @@ public class ConvertDatabaseCommand implements CommandExecutor {
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        oldDatabase = DatabaseManagerFactory.createCustomDatabaseManager((Class<? extends DatabaseManager>) clazz);
 | 
			
		||||
                    }
 | 
			
		||||
                    catch (Throwable e) {
 | 
			
		||||
                    } catch (Throwable e) {
 | 
			
		||||
                        e.printStackTrace();
 | 
			
		||||
                        sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
 | 
			
		||||
                        return true;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package com.gmail.nossr50.commands.database;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -26,8 +26,7 @@ public class McremoveCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
                if (mcMMO.getDatabaseManager().removeUser(playerName)) {
 | 
			
		||||
                    sender.sendMessage(LocaleLoader.getString("Commands.mcremove.Success", playerName));
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    sender.sendMessage(playerName + " could not be removed from the database."); // Pretty sure this should NEVER happen.
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@ package com.gmail.nossr50.commands.experience;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.experience.XPGainReason;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.PlayerProfile;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.EventUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.experience;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.experience.XPGainReason;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.experience.XPGainSource;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.PlayerProfile;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 | 
			
		||||
@@ -25,8 +25,7 @@ public class AddxpCommand extends ExperienceCommand {
 | 
			
		||||
    protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
 | 
			
		||||
        if (player != null) {
 | 
			
		||||
            UserManager.getPlayer(player).applyXpGain(skill, value, XPGainReason.COMMAND, XPGainSource.COMMAND);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            profile.addXp(skill, value);
 | 
			
		||||
            profile.scheduleAsyncSave();
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package com.gmail.nossr50.commands.experience;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.experience.FormulaType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.database.FormulaConversionTask;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.player.PlayerProfileLoadingTask;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.experience;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.PlayerProfile;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.OfflinePlayer;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
@@ -20,6 +20,14 @@ import java.util.List;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
public abstract class ExperienceCommand implements TabExecutor {
 | 
			
		||||
    protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
 | 
			
		||||
        if (skill == null) {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
 | 
			
		||||
        } else {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        PrimarySkillType skill;
 | 
			
		||||
@@ -45,8 +53,7 @@ public abstract class ExperienceCommand implements TabExecutor {
 | 
			
		||||
                    skill = null;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (skill != null && skill.isChildSkill())
 | 
			
		||||
                {
 | 
			
		||||
                if (skill != null && skill.isChildSkill()) {
 | 
			
		||||
                    sender.sendMessage(LocaleLoader.getString("Commands.Skill.ChildSkill"));
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
@@ -70,8 +77,7 @@ public abstract class ExperienceCommand implements TabExecutor {
 | 
			
		||||
                    skill = null;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (skill != null && skill.isChildSkill())
 | 
			
		||||
                {
 | 
			
		||||
                if (skill != null && skill.isChildSkill()) {
 | 
			
		||||
                    sender.sendMessage(LocaleLoader.getString("Commands.Skill.ChildSkill"));
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
@@ -95,8 +101,7 @@ public abstract class ExperienceCommand implements TabExecutor {
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    editValues(null, profile, skill, value);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill, value);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -122,24 +127,19 @@ public abstract class ExperienceCommand implements TabExecutor {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected abstract boolean permissionsCheckSelf(CommandSender sender);
 | 
			
		||||
 | 
			
		||||
    protected abstract boolean permissionsCheckOthers(CommandSender sender);
 | 
			
		||||
 | 
			
		||||
    protected abstract void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value);
 | 
			
		||||
 | 
			
		||||
    protected abstract void handlePlayerMessageAll(Player player, int value);
 | 
			
		||||
 | 
			
		||||
    protected abstract void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill);
 | 
			
		||||
 | 
			
		||||
    private boolean validateArguments(CommandSender sender, String skillName, String value) {
 | 
			
		||||
        return !(CommandUtils.isInvalidInteger(sender, value) || (!skillName.equalsIgnoreCase("all") && CommandUtils.isInvalidSkill(sender, skillName)));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
 | 
			
		||||
        if (skill == null) {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected void editValues(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
 | 
			
		||||
        if (skill == null) {
 | 
			
		||||
            for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) {
 | 
			
		||||
@@ -149,8 +149,7 @@ public abstract class ExperienceCommand implements TabExecutor {
 | 
			
		||||
            if (player != null) {
 | 
			
		||||
                handlePlayerMessageAll(player, value);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            handleCommand(player, profile, skill, value);
 | 
			
		||||
 | 
			
		||||
            if (player != null) {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@ package com.gmail.nossr50.commands.experience;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.experience.XPGainReason;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.PlayerProfile;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.EventUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
package com.gmail.nossr50.commands.experience;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.experience.XPGainReason;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.PlayerProfile;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.EventUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.OfflinePlayer;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
@@ -27,6 +27,14 @@ import java.util.UUID;
 | 
			
		||||
 * value/quantity argument is removed.
 | 
			
		||||
 */
 | 
			
		||||
public class SkillresetCommand implements TabExecutor {
 | 
			
		||||
    protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
 | 
			
		||||
        if (skill == null) {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
 | 
			
		||||
        } else {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        PrimarySkillType skill;
 | 
			
		||||
@@ -47,8 +55,7 @@ public class SkillresetCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
                if (args[0].equalsIgnoreCase("all")) {
 | 
			
		||||
                    skill = null;
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    skill = PrimarySkillType.getSkill(args[1]);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -67,8 +74,7 @@ public class SkillresetCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
                if (args[1].equalsIgnoreCase("all")) {
 | 
			
		||||
                    skill = null;
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    skill = PrimarySkillType.getSkill(args[1]);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -89,8 +95,7 @@ public class SkillresetCommand implements TabExecutor {
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    editValues(null, profile, skill);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -149,15 +154,6 @@ public class SkillresetCommand implements TabExecutor {
 | 
			
		||||
        return skillName.equalsIgnoreCase("all") || !CommandUtils.isInvalidSkill(sender, skillName);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
 | 
			
		||||
        if (skill == null) {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected void editValues(Player player, PlayerProfile profile, PrimarySkillType skill) {
 | 
			
		||||
        if (skill == null) {
 | 
			
		||||
            for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) {
 | 
			
		||||
@@ -167,8 +163,7 @@ public class SkillresetCommand implements TabExecutor {
 | 
			
		||||
            if (player != null) {
 | 
			
		||||
                handlePlayerMessageAll(player);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            handleCommand(player, profile, skill);
 | 
			
		||||
 | 
			
		||||
            if (player != null) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package com.gmail.nossr50.commands.hardcore;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 | 
			
		||||
public class HardcoreCommand extends HardcoreModeCommand {
 | 
			
		||||
@@ -54,8 +54,7 @@ public class HardcoreCommand extends HardcoreModeCommand {
 | 
			
		||||
            for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) {
 | 
			
		||||
                primarySkillType.setHardcoreStatLossEnabled(enable);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            skill.setHardcoreStatLossEnabled(enable);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ public abstract class HardcoreModeCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
                if (checkEnabled(null)) {
 | 
			
		||||
                    disable(null);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    enable(null);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -122,9 +121,14 @@ public abstract class HardcoreModeCommand implements TabExecutor {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected abstract boolean checkTogglePermissions(CommandSender sender);
 | 
			
		||||
 | 
			
		||||
    protected abstract boolean checkModifyPermissions(CommandSender sender);
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package com.gmail.nossr50.commands.hardcore;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 | 
			
		||||
public class VampirismCommand extends HardcoreModeCommand {
 | 
			
		||||
@@ -54,8 +54,7 @@ public class VampirismCommand extends HardcoreModeCommand {
 | 
			
		||||
            for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) {
 | 
			
		||||
                primarySkillType.setHardcoreVampirismEnabled(enable);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            skill.setHardcoreVampirismEnabled(enable);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.OfflinePlayer;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -3,12 +3,12 @@ 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.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
@@ -38,24 +38,24 @@ public class PartyCommand implements TabExecutor {
 | 
			
		||||
        PARTY_SUBCOMMANDS = ImmutableList.copyOf(subcommands);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private CommandExecutor partyJoinCommand           = new PartyJoinCommand();
 | 
			
		||||
    private CommandExecutor partyAcceptCommand         = new PartyAcceptCommand();
 | 
			
		||||
    private CommandExecutor partyCreateCommand         = new PartyCreateCommand();
 | 
			
		||||
    private CommandExecutor partyQuitCommand           = new PartyQuitCommand();
 | 
			
		||||
    private CommandExecutor partyXpShareCommand        = new PartyXpShareCommand();
 | 
			
		||||
    private CommandExecutor partyItemShareCommand      = new PartyItemShareCommand();
 | 
			
		||||
    private CommandExecutor partyInviteCommand         = new PartyInviteCommand();
 | 
			
		||||
    private CommandExecutor partyKickCommand           = new PartyKickCommand();
 | 
			
		||||
    private CommandExecutor partyDisbandCommand        = new PartyDisbandCommand();
 | 
			
		||||
    private CommandExecutor partyChangeOwnerCommand    = new PartyChangeOwnerCommand();
 | 
			
		||||
    private CommandExecutor partyLockCommand           = new PartyLockCommand();
 | 
			
		||||
    private CommandExecutor partyJoinCommand = new PartyJoinCommand();
 | 
			
		||||
    private CommandExecutor partyAcceptCommand = new PartyAcceptCommand();
 | 
			
		||||
    private CommandExecutor partyCreateCommand = new PartyCreateCommand();
 | 
			
		||||
    private CommandExecutor partyQuitCommand = new PartyQuitCommand();
 | 
			
		||||
    private CommandExecutor partyXpShareCommand = new PartyXpShareCommand();
 | 
			
		||||
    private CommandExecutor partyItemShareCommand = new PartyItemShareCommand();
 | 
			
		||||
    private CommandExecutor partyInviteCommand = new PartyInviteCommand();
 | 
			
		||||
    private CommandExecutor partyKickCommand = new PartyKickCommand();
 | 
			
		||||
    private CommandExecutor partyDisbandCommand = new PartyDisbandCommand();
 | 
			
		||||
    private CommandExecutor partyChangeOwnerCommand = new PartyChangeOwnerCommand();
 | 
			
		||||
    private CommandExecutor partyLockCommand = new PartyLockCommand();
 | 
			
		||||
    private CommandExecutor partyChangePasswordCommand = new PartyChangePasswordCommand();
 | 
			
		||||
    private CommandExecutor partyRenameCommand         = new PartyRenameCommand();
 | 
			
		||||
    private CommandExecutor partyInfoCommand           = new PartyInfoCommand();
 | 
			
		||||
    private CommandExecutor partyHelpCommand           = new PartyHelpCommand();
 | 
			
		||||
    private CommandExecutor partyTeleportCommand       = new PtpCommand();
 | 
			
		||||
    private CommandExecutor partyChatCommand           = new PartyChatCommand();
 | 
			
		||||
    private CommandExecutor partyAllianceCommand       = new PartyAllianceCommand();
 | 
			
		||||
    private CommandExecutor partyRenameCommand = new PartyRenameCommand();
 | 
			
		||||
    private CommandExecutor partyInfoCommand = new PartyInfoCommand();
 | 
			
		||||
    private CommandExecutor partyHelpCommand = new PartyHelpCommand();
 | 
			
		||||
    private CommandExecutor partyTeleportCommand = new PtpCommand();
 | 
			
		||||
    private CommandExecutor partyChatCommand = new PartyChatCommand();
 | 
			
		||||
    private CommandExecutor partyAllianceCommand = new PartyAllianceCommand();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyFeature;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.ShareMode;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
@@ -65,8 +65,7 @@ public class PartyInfoCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
            if (isUnlockedFeature(party, partyFeature)) {
 | 
			
		||||
                unlockedPartyFeatures.add(partyFeature.getLocaleString());
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
            } else {
 | 
			
		||||
                lockedPartyFeatures.add(partyFeature.getFeatureLockedLocaleString());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -123,7 +122,7 @@ public class PartyInfoCommand implements CommandExecutor {
 | 
			
		||||
        int membersOnline = party.getVisibleMembers(player).size();
 | 
			
		||||
 | 
			
		||||
        player.sendMessage(LocaleLoader.getString("Commands.Party.Members.Header"));
 | 
			
		||||
        player.sendMessage(LocaleLoader.getString("Commands.Party.MembersNear", nearMembers.size()+1, membersOnline));
 | 
			
		||||
        player.sendMessage(LocaleLoader.getString("Commands.Party.MembersNear", nearMembers.size() + 1, membersOnline));
 | 
			
		||||
        player.sendMessage(party.createMembersList(player));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -46,8 +46,7 @@ public class PartyInviteCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
                Party playerParty = mcMMOPlayer.getParty();
 | 
			
		||||
 | 
			
		||||
                if(PartyManager.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;
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.ItemShareType;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyFeature;
 | 
			
		||||
@@ -8,7 +9,6 @@ import com.gmail.nossr50.core.datatypes.party.ShareMode;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.StringUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -41,19 +41,16 @@ public class PartyItemShareCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
                if (CommandUtils.shouldEnableToggle(args[2])) {
 | 
			
		||||
                    toggle = true;
 | 
			
		||||
                }
 | 
			
		||||
                else if (CommandUtils.shouldDisableToggle(args[2])) {
 | 
			
		||||
                } else if (CommandUtils.shouldDisableToggle(args[2])) {
 | 
			
		||||
                    toggle = false;
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                try {
 | 
			
		||||
                    handleToggleItemShareCategory(party, ItemShareType.valueOf(args[1].toUpperCase()), toggle);
 | 
			
		||||
                }
 | 
			
		||||
                catch (IllegalArgumentException ex) {
 | 
			
		||||
                } catch (IllegalArgumentException ex) {
 | 
			
		||||
                    sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -54,8 +54,7 @@ public class PartyJoinCommand implements CommandExecutor {
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if(PartyManager.isPartyFull(player, targetParty))
 | 
			
		||||
                {
 | 
			
		||||
                if (PartyManager.isPartyFull(player, targetParty)) {
 | 
			
		||||
                    player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull", targetParty.toString()));
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.OfflinePlayer;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -17,8 +17,7 @@ public class PartyLockCommand implements CommandExecutor {
 | 
			
		||||
            case 1:
 | 
			
		||||
                if (args[0].equalsIgnoreCase("lock")) {
 | 
			
		||||
                    togglePartyLock(sender, true);
 | 
			
		||||
                }
 | 
			
		||||
                else if (args[0].equalsIgnoreCase("unlock")) {
 | 
			
		||||
                } else if (args[0].equalsIgnoreCase("unlock")) {
 | 
			
		||||
                    togglePartyLock(sender, false);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -32,11 +31,9 @@ public class PartyLockCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
                if (CommandUtils.shouldEnableToggle(args[1])) {
 | 
			
		||||
                    togglePartyLock(sender, true);
 | 
			
		||||
                }
 | 
			
		||||
                else if (CommandUtils.shouldDisableToggle(args[1])) {
 | 
			
		||||
                } else if (CommandUtils.shouldDisableToggle(args[1])) {
 | 
			
		||||
                    togglePartyLock(sender, false);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    sendUsageStrings(sender);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -30,20 +30,15 @@ public enum PartySubcommandType {
 | 
			
		||||
 | 
			
		||||
        if (commandName.equalsIgnoreCase("?")) {
 | 
			
		||||
            return HELP;
 | 
			
		||||
        }
 | 
			
		||||
        else if (commandName.equalsIgnoreCase("q") || commandName.equalsIgnoreCase("leave")) {
 | 
			
		||||
        } else if (commandName.equalsIgnoreCase("q") || commandName.equalsIgnoreCase("leave")) {
 | 
			
		||||
            return QUIT;
 | 
			
		||||
        }
 | 
			
		||||
        else if (commandName.equalsIgnoreCase("leader")) {
 | 
			
		||||
        } else if (commandName.equalsIgnoreCase("leader")) {
 | 
			
		||||
            return OWNER;
 | 
			
		||||
        }
 | 
			
		||||
        else if (commandName.equalsIgnoreCase("xpshare") || commandName.equalsIgnoreCase("shareexp") || commandName.equalsIgnoreCase("sharexp")) {
 | 
			
		||||
        } else if (commandName.equalsIgnoreCase("xpshare") || commandName.equalsIgnoreCase("shareexp") || commandName.equalsIgnoreCase("sharexp")) {
 | 
			
		||||
            return XPSHARE;
 | 
			
		||||
        }
 | 
			
		||||
        else if (commandName.equalsIgnoreCase("shareitem") || commandName.equalsIgnoreCase("shareitems")) {
 | 
			
		||||
        } else if (commandName.equalsIgnoreCase("shareitem") || commandName.equalsIgnoreCase("shareitems")) {
 | 
			
		||||
            return ITEMSHARE;
 | 
			
		||||
        }
 | 
			
		||||
        else if (commandName.equalsIgnoreCase("ally")) {
 | 
			
		||||
        } else if (commandName.equalsIgnoreCase("ally")) {
 | 
			
		||||
            return ALLIANCE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyFeature;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.ShareMode;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.StringUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -27,11 +27,9 @@ public class PartyXpShareCommand implements CommandExecutor {
 | 
			
		||||
            case 2:
 | 
			
		||||
                if (args[1].equalsIgnoreCase("none") || CommandUtils.shouldDisableToggle(args[1])) {
 | 
			
		||||
                    handleChangingShareMode(party, ShareMode.NONE);
 | 
			
		||||
                }
 | 
			
		||||
                else if (args[1].equalsIgnoreCase("equal") || args[1].equalsIgnoreCase("even") || CommandUtils.shouldEnableToggle(args[1])) {
 | 
			
		||||
                } else if (args[1].equalsIgnoreCase("equal") || args[1].equalsIgnoreCase("even") || CommandUtils.shouldEnableToggle(args[1])) {
 | 
			
		||||
                    handleChangingShareMode(party, ShareMode.EQUAL);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "xpshare", "<NONE | EQUAL>"));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party.alliance;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party.alliance;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyFeature;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
@@ -21,12 +21,10 @@ import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public class PartyAllianceCommand implements TabExecutor {
 | 
			
		||||
    public static final List<String> ALLIANCE_SUBCOMMANDS = ImmutableList.of("invite", "accept", "disband");
 | 
			
		||||
    private Player player;
 | 
			
		||||
    private Party playerParty;
 | 
			
		||||
    private Party targetParty;
 | 
			
		||||
 | 
			
		||||
    public static final List<String> ALLIANCE_SUBCOMMANDS = ImmutableList.of("invite", "accept", "disband");
 | 
			
		||||
 | 
			
		||||
    private CommandExecutor partyAllianceInviteCommand = new PartyAllianceInviteCommand();
 | 
			
		||||
    private CommandExecutor partyAllianceAcceptCommand = new PartyAllianceAcceptCommand();
 | 
			
		||||
    private CommandExecutor partyAllianceDisbandCommand = new PartyAllianceDisbandCommand();
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party.alliance;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party.alliance;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party.teleport;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyTeleportRecord;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -20,8 +20,7 @@ public class PtpAcceptAnyCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
        if (ptpRecord.isConfirmRequired()) {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Disabled"));
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Enabled"));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party.teleport;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyTeleportRecord;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillUtils;
 | 
			
		||||
import org.bukkit.World;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
@@ -49,8 +49,7 @@ public class PtpAcceptCommand implements CommandExecutor {
 | 
			
		||||
                if (!Permissions.partyTeleportWorld(target, targetWorld)) {
 | 
			
		||||
                    target.sendMessage(LocaleLoader.getString("Commands.ptp.NoWorldPermissions", targetWorld.getName()));
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
                else if (targetWorld != playerWorld && !Permissions.partyTeleportWorld(target, playerWorld)) {
 | 
			
		||||
                } else if (targetWorld != playerWorld && !Permissions.partyTeleportWorld(target, playerWorld)) {
 | 
			
		||||
                    target.sendMessage(LocaleLoader.getString("Commands.ptp.NoWorldPermissions", playerWorld.getName()));
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -2,22 +2,22 @@ package com.gmail.nossr50.commands.party.teleport;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.WorldBlacklist;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyFeature;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyTeleportRecord;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.items.TeleportationWarmup;
 | 
			
		||||
import com.gmail.nossr50.core.util.EventUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.Misc;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillUtils;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardUtils;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
@@ -36,6 +36,54 @@ public class PtpCommand implements TabExecutor {
 | 
			
		||||
    private CommandExecutor ptpAcceptAnyCommand = new PtpAcceptAnyCommand();
 | 
			
		||||
    private CommandExecutor ptpAcceptCommand = new PtpAcceptCommand();
 | 
			
		||||
 | 
			
		||||
    protected static boolean canTeleport(CommandSender sender, Player player, String targetName) {
 | 
			
		||||
        McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName);
 | 
			
		||||
 | 
			
		||||
        if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Player target = mcMMOTarget.getPlayer();
 | 
			
		||||
 | 
			
		||||
        if (player.equals(target)) {
 | 
			
		||||
            player.sendMessage(LocaleLoader.getString("Party.Teleport.Self"));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!PartyManager.inSameParty(player, target)) {
 | 
			
		||||
            player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!mcMMOTarget.getPartyTeleportRecord().isEnabled()) {
 | 
			
		||||
            player.sendMessage(LocaleLoader.getString("Party.Teleport.Disabled", targetName));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!target.isValid()) {
 | 
			
		||||
            player.sendMessage(LocaleLoader.getString("Party.Teleport.Dead"));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected static void handleTeleportWarmup(Player teleportingPlayer, Player targetPlayer) {
 | 
			
		||||
        McMMOPlayer mcMMOPlayer = UserManager.getPlayer(teleportingPlayer);
 | 
			
		||||
        McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetPlayer);
 | 
			
		||||
 | 
			
		||||
        long warmup = Config.getInstance().getPTPCommandWarmup();
 | 
			
		||||
 | 
			
		||||
        mcMMOPlayer.actualizeTeleportCommenceLocation(teleportingPlayer);
 | 
			
		||||
 | 
			
		||||
        if (warmup > 0) {
 | 
			
		||||
            teleportingPlayer.sendMessage(LocaleLoader.getString("Teleport.Commencing", warmup));
 | 
			
		||||
            new TeleportationWarmup(mcMMOPlayer, mcMMOTarget).runTaskLater(mcMMO.p, 20 * warmup);
 | 
			
		||||
        } else {
 | 
			
		||||
            EventUtils.handlePartyTeleportEvent(teleportingPlayer, targetPlayer);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        if (CommandUtils.noConsoleUsage(sender)) {
 | 
			
		||||
@@ -45,14 +93,13 @@ public class PtpCommand implements TabExecutor {
 | 
			
		||||
        Player player = (Player) sender;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(player.getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(player.getWorld()))
 | 
			
		||||
            return true;
 | 
			
		||||
 | 
			
		||||
        if (!UserManager.hasPlayerDataKey(player)) {
 | 
			
		||||
@@ -171,53 +218,4 @@ public class PtpCommand implements TabExecutor {
 | 
			
		||||
        target.sendMessage(LocaleLoader.getString("Commands.ptp.Request1", player.getName()));
 | 
			
		||||
        target.sendMessage(LocaleLoader.getString("Commands.ptp.Request2", Config.getInstance().getPTPCommandTimeout()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected static boolean canTeleport(CommandSender sender, Player player, String targetName) {
 | 
			
		||||
        McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName);
 | 
			
		||||
 | 
			
		||||
        if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Player target = mcMMOTarget.getPlayer();
 | 
			
		||||
 | 
			
		||||
        if (player.equals(target)) {
 | 
			
		||||
            player.sendMessage(LocaleLoader.getString("Party.Teleport.Self"));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!PartyManager.inSameParty(player, target)) {
 | 
			
		||||
            player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!mcMMOTarget.getPartyTeleportRecord().isEnabled()) {
 | 
			
		||||
            player.sendMessage(LocaleLoader.getString("Party.Teleport.Disabled", targetName));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!target.isValid()) {
 | 
			
		||||
            player.sendMessage(LocaleLoader.getString("Party.Teleport.Dead"));
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected static void handleTeleportWarmup(Player teleportingPlayer, Player targetPlayer) {
 | 
			
		||||
        McMMOPlayer mcMMOPlayer = UserManager.getPlayer(teleportingPlayer);
 | 
			
		||||
        McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetPlayer);
 | 
			
		||||
 | 
			
		||||
        long warmup = Config.getInstance().getPTPCommandWarmup();
 | 
			
		||||
 | 
			
		||||
        mcMMOPlayer.actualizeTeleportCommenceLocation(teleportingPlayer);
 | 
			
		||||
 | 
			
		||||
        if (warmup > 0) {
 | 
			
		||||
            teleportingPlayer.sendMessage(LocaleLoader.getString("Teleport.Commencing", warmup));
 | 
			
		||||
            new TeleportationWarmup(mcMMOPlayer, mcMMOTarget).runTaskLater(mcMMO.p, 20 * warmup);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            EventUtils.handlePartyTeleportEvent(teleportingPlayer, targetPlayer);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package com.gmail.nossr50.commands.party.teleport;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.PartyTeleportRecord;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -20,8 +20,7 @@ public class PtpToggleCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
        if (ptpRecord.isEnabled()) {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.ptp.Disabled"));
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            sender.sendMessage(LocaleLoader.getString("Commands.ptp.Enabled"));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
package com.gmail.nossr50.commands.player;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.PlayerProfile;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.scoreboards.ScoreboardManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -65,8 +65,7 @@ public class InspectCommand implements TabExecutor {
 | 
			
		||||
                        sender.sendMessage(CommandUtils.displaySkill(profile, skill));
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    Player target = mcMMOPlayer.getPlayer();
 | 
			
		||||
 | 
			
		||||
                    if (CommandUtils.hidden(sender, target, Permissions.inspectHidden(sender))) {
 | 
			
		||||
@@ -74,8 +73,7 @@ public class InspectCommand implements TabExecutor {
 | 
			
		||||
                            sender.sendMessage(LocaleLoader.getString("Inspect.Offline"));
 | 
			
		||||
                            return true;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    else if (CommandUtils.tooFar(sender, target, Permissions.inspectFar(sender))) {
 | 
			
		||||
                    } else if (CommandUtils.tooFar(sender, target, Permissions.inspectFar(sender))) {
 | 
			
		||||
                        return true;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package com.gmail.nossr50.commands.player;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SuperAbilityType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SuperAbilityType;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.scoreboards.ScoreboardManager;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
@@ -52,8 +52,7 @@ public class MccooldownCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
                    if (seconds <= 0) {
 | 
			
		||||
                        player.sendMessage(LocaleLoader.getString("Commands.Cooldowns.Row.Y", ability.getName()));
 | 
			
		||||
                    }
 | 
			
		||||
                    else {
 | 
			
		||||
                    } else {
 | 
			
		||||
                        player.sendMessage(LocaleLoader.getString("Commands.Cooldowns.Row.N", ability.getName(), seconds));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
package com.gmail.nossr50.commands.player;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.commands.McrankCommandAsyncTask;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -61,8 +61,7 @@ public class McrankCommand implements TabExecutor {
 | 
			
		||||
                    if (CommandUtils.tooFar(sender, player, Permissions.mcrankFar(sender))) {
 | 
			
		||||
                        return true;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                else if (CommandUtils.inspectOffline(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false), Permissions.mcrankOffline(sender))) {
 | 
			
		||||
                } else if (CommandUtils.inspectOffline(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false), Permissions.mcrankOffline(sender))) {
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package com.gmail.nossr50.commands.player;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.scoreboards.ScoreboardManager;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
@@ -47,8 +47,7 @@ public class McstatsCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
                if (powerLevelCap != Integer.MAX_VALUE) {
 | 
			
		||||
                    player.sendMessage(LocaleLoader.getString("Commands.PowerLevel.Capped", UserManager.getPlayer(player).getPowerLevel(), powerLevelCap));
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    player.sendMessage(LocaleLoader.getString("Commands.PowerLevel", UserManager.getPlayer(player).getPowerLevel()));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
package com.gmail.nossr50.commands.player;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.commands.MctopCommandAsyncTask;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.StringUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,14 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.subskills.AbstractSubSkill;
 | 
			
		||||
import com.gmail.nossr50.listeners.InteractionManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.util.random.RandomChanceSkill;
 | 
			
		||||
import com.gmail.nossr50.core.util.random.RandomChanceUtil;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
 | 
			
		||||
import com.gmail.nossr50.listeners.InteractionManager;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 | 
			
		||||
@@ -50,31 +50,30 @@ public class AcrobaticsCommand extends SkillCommand {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.ACROBATICS_DODGE, dodgeChance)
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", dodgeChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canRoll) {
 | 
			
		||||
 | 
			
		||||
            AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName("Roll");
 | 
			
		||||
 | 
			
		||||
            if(abstractSubSkill != null)
 | 
			
		||||
            {
 | 
			
		||||
            if (abstractSubSkill != null) {
 | 
			
		||||
                double rollChance, graceChance;
 | 
			
		||||
 | 
			
		||||
                //Chance to roll at half
 | 
			
		||||
                RandomChanceSkill roll_rcs  = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL);
 | 
			
		||||
                RandomChanceSkill roll_rcs = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL);
 | 
			
		||||
 | 
			
		||||
                //Chance to graceful roll
 | 
			
		||||
                RandomChanceSkill grace_rcs = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL);
 | 
			
		||||
                grace_rcs.setSkillLevel(grace_rcs.getSkillLevel() * 2); //Double Odds
 | 
			
		||||
 | 
			
		||||
                //Chance Stat Calculations
 | 
			
		||||
                rollChance       = RandomChanceUtil.getRandomChanceExecutionChance(roll_rcs);
 | 
			
		||||
                graceChance      = RandomChanceUtil.getRandomChanceExecutionChance(grace_rcs);
 | 
			
		||||
                rollChance = RandomChanceUtil.getRandomChanceExecutionChance(roll_rcs);
 | 
			
		||||
                graceChance = RandomChanceUtil.getRandomChanceExecutionChance(grace_rcs);
 | 
			
		||||
                //damageThreshold  = AdvancedConfig.getInstance().getRollDamageThreshold();
 | 
			
		||||
 | 
			
		||||
                String rollStrings[] = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ACROBATICS_ROLL);
 | 
			
		||||
 | 
			
		||||
                //Format
 | 
			
		||||
                double rollChanceLucky  = rollChance * 1.333D;
 | 
			
		||||
                double rollChanceLucky = rollChance * 1.333D;
 | 
			
		||||
                double graceChanceLucky = graceChance * 1.333D;
 | 
			
		||||
 | 
			
		||||
                messages.add(getStatMessage(SubSkillType.ACROBATICS_ROLL, rollStrings[0])
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.alchemy.AlchemyManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
@@ -18,8 +18,8 @@ public class AlchemyCommand extends SkillCommand {
 | 
			
		||||
    private String brewSpeed;
 | 
			
		||||
    private String brewSpeedLucky;
 | 
			
		||||
 | 
			
		||||
    private int    tier;
 | 
			
		||||
    private int    ingredientCount;
 | 
			
		||||
    private int tier;
 | 
			
		||||
    private int ingredientCount;
 | 
			
		||||
    private String ingredientList;
 | 
			
		||||
 | 
			
		||||
    private boolean canCatalysis;
 | 
			
		||||
 
 | 
			
		||||
@@ -16,10 +16,9 @@ import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public class AprilCommand implements TabExecutor {
 | 
			
		||||
    private String skillName;
 | 
			
		||||
 | 
			
		||||
    protected DecimalFormat percent = new DecimalFormat("##0.00%");
 | 
			
		||||
    protected DecimalFormat decimal = new DecimalFormat("##0.00");
 | 
			
		||||
    private String skillName;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.archery.Archery;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
 | 
			
		||||
@@ -35,14 +35,14 @@ public class ArcheryCommand extends SkillCommand {
 | 
			
		||||
            retrieveChance = retrieveStrings[0];
 | 
			
		||||
            retrieveChanceLucky = retrieveStrings[1];
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // ARCHERY_DAZE
 | 
			
		||||
        if (canDaze) {
 | 
			
		||||
            String[] dazeStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.ARCHERY_DAZE);
 | 
			
		||||
            dazeChance = dazeStrings[0];
 | 
			
		||||
            dazeChanceLucky = dazeStrings[1];
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // SKILL SHOT
 | 
			
		||||
        if (canSkillShot) {
 | 
			
		||||
            skillShotBonus = percent.format(Archery.getDamageBonusPercent(player));
 | 
			
		||||
@@ -64,12 +64,12 @@ public class ArcheryCommand extends SkillCommand {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.ARCHERY_ARROW_RETRIEVAL, retrieveChance)
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", retrieveChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canDaze) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.ARCHERY_DAZE, dazeChance)
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", dazeChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canSkillShot) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.ARCHERY_SKILL_SHOT, skillShotBonus));
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.axes.Axes;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
@@ -44,14 +44,14 @@ public class AxesCommand extends SkillCommand {
 | 
			
		||||
        if (canAxeMastery) {
 | 
			
		||||
            axeMasteryDamage = Axes.getAxeMasteryBonusDamage(player);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // CRITICAL HIT
 | 
			
		||||
        if (canCritical) {
 | 
			
		||||
            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(player, skillValue);
 | 
			
		||||
@@ -76,7 +76,7 @@ public class AxesCommand extends SkillCommand {
 | 
			
		||||
        if (canImpact) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Axes.Ability.Bonus.2"), LocaleLoader.getString("Axes.Ability.Bonus.3", impactDamage)));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canAxeMastery) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Axes.Ability.Bonus.0"), LocaleLoader.getString("Axes.Ability.Bonus.1", axeMasteryDamage)));
 | 
			
		||||
        }
 | 
			
		||||
@@ -85,7 +85,7 @@ public class AxesCommand extends SkillCommand {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.AXES_CRITICAL_STRIKES, critChance)
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", critChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canGreaterImpact) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Axes.Ability.Bonus.4"), LocaleLoader.getString("Axes.Ability.Bonus.5", Axes.greaterImpactBonusDamage)));
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
 
 | 
			
		||||
@@ -2,15 +2,15 @@ package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.AdvancedConfig;
 | 
			
		||||
import com.gmail.nossr50.core.config.treasure.TreasureConfig;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.treasure.Rarity;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.fishing.Fishing;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.fishing.FishingManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.treasure.Rarity;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.random.RandomChanceUtil;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
@@ -74,7 +74,7 @@ public class FishingCommand extends SkillCommand {
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if(totalEnchantChance >= 1)
 | 
			
		||||
            if (totalEnchantChance >= 1)
 | 
			
		||||
                magicChance = percent.format(totalEnchantChance / 100.0);
 | 
			
		||||
            else
 | 
			
		||||
                magicChance = percent.format(0);
 | 
			
		||||
@@ -129,15 +129,15 @@ public class FishingCommand extends SkillCommand {
 | 
			
		||||
    @Override
 | 
			
		||||
    protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
 | 
			
		||||
        List<String> messages = new ArrayList<String>();
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canFishermansDiet) {
 | 
			
		||||
            messages.add(getStatMessage(false, true, SubSkillType.FISHING_FISHERMANS_DIET, String.valueOf(fishermansDietRank)));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canIceFish) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.FISHING_ICE_FISHING, SubSkillType.FISHING_ICE_FISHING.getLocaleStatDescription()));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canMagicHunt) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.FISHING_MAGIC_HUNTER, magicChance));
 | 
			
		||||
        }
 | 
			
		||||
@@ -146,12 +146,12 @@ public class FishingCommand extends SkillCommand {
 | 
			
		||||
            //TODO: Update this with more details
 | 
			
		||||
            messages.add(getStatMessage(false, true, SubSkillType.FISHING_MASTER_ANGLER, biteChance));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canShake) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.FISHING_SHAKE, shakeChance)
 | 
			
		||||
            + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", shakeChanceLucky) : ""));
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", shakeChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canTreasureHunt) {
 | 
			
		||||
            messages.add(getStatMessage(false, true, SubSkillType.FISHING_TREASURE_HUNTER, String.valueOf(lootTier), String.valueOf(RankUtils.getHighestRank(SubSkillType.FISHING_TREASURE_HUNTER))));
 | 
			
		||||
            messages.add(getStatMessage(true, true, SubSkillType.FISHING_TREASURE_HUNTER,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
@@ -42,19 +42,20 @@ public class HerbalismCommand extends SkillCommand {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected void dataCalculations(Player player, float skillValue) {
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // DOUBLE DROPS
 | 
			
		||||
        if (canDoubleDrop) {
 | 
			
		||||
            String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, 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(player, SubSkillType.HERBALISM_FARMERS_DIET);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // GREEN TERRA
 | 
			
		||||
        if (canGreenTerra) {
 | 
			
		||||
            String[] greenTerraStrings = calculateLengthDisplayValues(player, skillValue);
 | 
			
		||||
@@ -105,11 +106,11 @@ public class HerbalismCommand extends SkillCommand {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.HERBALISM_DOUBLE_DROPS, doubleDropChance)
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canFarmersDiet) {
 | 
			
		||||
            messages.add(getStatMessage(false, true, SubSkillType.HERBALISM_FARMERS_DIET, String.valueOf(farmersDietRank)));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canGreenTerra) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.HERBALISM_GREEN_TERRA, greenTerraLength)
 | 
			
		||||
                    + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", greenTerraLengthEndurance) : ""));
 | 
			
		||||
@@ -124,7 +125,7 @@ public class HerbalismCommand extends SkillCommand {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (canGreenThumbPlants) {
 | 
			
		||||
            messages.add(getStatMessage(true, true,SubSkillType.HERBALISM_GREEN_THUMB, String.valueOf(greenThumbStage)));
 | 
			
		||||
            messages.add(getStatMessage(true, true, SubSkillType.HERBALISM_GREEN_THUMB, String.valueOf(greenThumbStage)));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (hasHylianLuck) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.mining.MiningManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
@@ -51,14 +51,14 @@ public class MiningCommand extends SkillCommand {
 | 
			
		||||
            blastDamageDecrease = percent.format(miningManager.getBlastDamageModifier() / 100.0D);
 | 
			
		||||
            blastRadiusIncrease = miningManager.getBlastRadiusModifier();
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // DOUBLE DROPS
 | 
			
		||||
        if (canDoubleDrop) {
 | 
			
		||||
            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(player, skillValue);
 | 
			
		||||
@@ -84,17 +84,17 @@ public class MiningCommand extends SkillCommand {
 | 
			
		||||
            messages.add(getStatMessage(true, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastRadiusIncrease)));
 | 
			
		||||
            //messages.add(LocaleLoader.getString("Mining.Blast.Radius.Increase", blastRadiusIncrease));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canBlast) {
 | 
			
		||||
            messages.add(getStatMessage(false, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastMiningRank), String.valueOf(RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING)), LocaleLoader.getString("Mining.Blast.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
 | 
			
		||||
            //messages.add(LocaleLoader.getString("Mining.Blast.Rank", blastMiningRank, RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING), LocaleLoader.getString("Mining.Blast.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
         if (canDemoExpert) {
 | 
			
		||||
 | 
			
		||||
        if (canDemoExpert) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.MINING_DEMOLITIONS_EXPERTISE, blastDamageDecrease));
 | 
			
		||||
            //messages.add(LocaleLoader.getString("Mining.Effect.Decrease", blastDamageDecrease));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canDoubleDrop) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.HERBALISM_DOUBLE_DROPS, doubleDropChance)
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.subskills.AbstractSubSkill;
 | 
			
		||||
import com.gmail.nossr50.listeners.InteractionManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.listeners.InteractionManager;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
@@ -27,26 +27,22 @@ public class MmoInfoCommand implements TabExecutor {
 | 
			
		||||
        /*
 | 
			
		||||
         * Only allow players to use this command
 | 
			
		||||
         */
 | 
			
		||||
        if(commandSender instanceof Player)
 | 
			
		||||
        {
 | 
			
		||||
            if(args.length < 1)
 | 
			
		||||
        if (commandSender instanceof Player) {
 | 
			
		||||
            if (args.length < 1)
 | 
			
		||||
                return false;
 | 
			
		||||
 | 
			
		||||
            Player player = (Player) commandSender;
 | 
			
		||||
            if(Permissions.mmoinfo(player))
 | 
			
		||||
            {
 | 
			
		||||
                if(args == null || args[0] == null)
 | 
			
		||||
            if (Permissions.mmoinfo(player)) {
 | 
			
		||||
                if (args == null || args[0] == null)
 | 
			
		||||
                    return false;
 | 
			
		||||
 | 
			
		||||
                if(args[0].equalsIgnoreCase( "???"))
 | 
			
		||||
                {
 | 
			
		||||
                if (args[0].equalsIgnoreCase("???")) {
 | 
			
		||||
                    player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header"));
 | 
			
		||||
                    player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.SubSkillHeader", "???"));
 | 
			
		||||
                    player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader"));
 | 
			
		||||
                    player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Mystery"));
 | 
			
		||||
                    return true;
 | 
			
		||||
                } else if(InteractionManager.getAbstractByName(args[0]) != null || PrimarySkillType.SUBSKILL_NAMES.contains(args[0]))
 | 
			
		||||
                {
 | 
			
		||||
                } else if (InteractionManager.getAbstractByName(args[0]) != null || PrimarySkillType.SUBSKILL_NAMES.contains(args[0])) {
 | 
			
		||||
                    displayInfo(player, args[0]);
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
@@ -70,12 +66,10 @@ public class MmoInfoCommand implements TabExecutor {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void displayInfo(Player player, String subSkillName)
 | 
			
		||||
    {
 | 
			
		||||
    private void displayInfo(Player player, String subSkillName) {
 | 
			
		||||
        //Check to see if the skill exists in the new system
 | 
			
		||||
        AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName(subSkillName);
 | 
			
		||||
        if(abstractSubSkill != null)
 | 
			
		||||
        {
 | 
			
		||||
        if (abstractSubSkill != null) {
 | 
			
		||||
            /* New System Skills are programmable */
 | 
			
		||||
            abstractSubSkill.printInfo(player);
 | 
			
		||||
            //TextComponentFactory.sendPlayerUrlHeader(player);
 | 
			
		||||
@@ -89,9 +83,8 @@ public class MmoInfoCommand implements TabExecutor {
 | 
			
		||||
            player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.OldSkill"));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        for(SubSkillType subSkillType : SubSkillType.values())
 | 
			
		||||
        {
 | 
			
		||||
            if(subSkillType.getNiceNameNoSpaces(subSkillType).equalsIgnoreCase(subSkillName))
 | 
			
		||||
        for (SubSkillType subSkillType : SubSkillType.values()) {
 | 
			
		||||
            if (subSkillType.getNiceNameNoSpaces(subSkillType).equalsIgnoreCase(subSkillName))
 | 
			
		||||
                subSkillName = subSkillType.getWikiName(subSkillType.toString());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,19 +1,19 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.MaterialType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.ArcaneForging;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.Repair;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.RepairManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.Repairable;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
@@ -107,7 +107,7 @@ public class RepairCommand extends SkillCommand {
 | 
			
		||||
                        String.valueOf(arcaneBypass ? 0 : repairManager.getDowngradeEnchantChance()))); //Jesus those parentheses
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canMasterRepair) {
 | 
			
		||||
            messages.add(getStatMessage(false, true, SubSkillType.REPAIR_REPAIR_MASTERY, repairMasteryBonus));
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.Salvage;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.SalvageManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 
 | 
			
		||||
@@ -2,16 +2,16 @@ package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.AdvancedConfig;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.FamilyTree;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.StringUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.random.RandomChanceUtil;
 | 
			
		||||
import com.gmail.nossr50.core.util.scoreboards.ScoreboardManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.PerksUtils;
 | 
			
		||||
@@ -33,11 +33,9 @@ import java.util.Set;
 | 
			
		||||
 | 
			
		||||
public abstract class SkillCommand implements TabExecutor {
 | 
			
		||||
    protected PrimarySkillType skill;
 | 
			
		||||
    private String skillName;
 | 
			
		||||
 | 
			
		||||
    protected DecimalFormat percent = new DecimalFormat("##0.00%");
 | 
			
		||||
    protected DecimalFormat decimal = new DecimalFormat("##0.00");
 | 
			
		||||
 | 
			
		||||
    private String skillName;
 | 
			
		||||
    private CommandExecutor skillGuideCommand;
 | 
			
		||||
 | 
			
		||||
    public SkillCommand(PrimarySkillType skill) {
 | 
			
		||||
@@ -46,6 +44,15 @@ public abstract class SkillCommand implements TabExecutor {
 | 
			
		||||
        skillGuideCommand = new SkillGuideCommand(skill);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String[] addItemToFirstPositionOfArray(String itemToAdd, String... existingArray) {
 | 
			
		||||
        String[] newArray = new String[existingArray.length + 1];
 | 
			
		||||
        newArray[0] = itemToAdd;
 | 
			
		||||
 | 
			
		||||
        System.arraycopy(existingArray, 0, newArray, 1, existingArray.length);
 | 
			
		||||
 | 
			
		||||
        return newArray;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        if (CommandUtils.noConsoleUsage(sender)) {
 | 
			
		||||
@@ -66,9 +73,8 @@ public abstract class SkillCommand implements TabExecutor {
 | 
			
		||||
                float skillValue = mcMMOPlayer.getSkillLevel(skill);
 | 
			
		||||
 | 
			
		||||
                //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++)
 | 
			
		||||
                    {
 | 
			
		||||
                if (AdvancedConfig.getInstance().doesSkillCommandSendBlankLines())
 | 
			
		||||
                    for (int i = 0; i < 2; i++) {
 | 
			
		||||
                        player.sendMessage("");
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
@@ -99,8 +105,7 @@ public abstract class SkillCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                //Link Header
 | 
			
		||||
                if(Config.getInstance().getUrlLinksEnabled())
 | 
			
		||||
                {
 | 
			
		||||
                if (Config.getInstance().getUrlLinksEnabled()) {
 | 
			
		||||
                    player.sendMessage(LocaleLoader.getString("Overhaul.mcMMO.Header"));
 | 
			
		||||
                    TextComponentFactory.sendPlayerUrlHeader(player);
 | 
			
		||||
                }
 | 
			
		||||
@@ -138,8 +143,7 @@ public abstract class SkillCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
        player.sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", skillName));
 | 
			
		||||
 | 
			
		||||
        if(!skill.isChildSkill())
 | 
			
		||||
        {
 | 
			
		||||
        if (!skill.isChildSkill()) {
 | 
			
		||||
            /*
 | 
			
		||||
             * NON-CHILD SKILLS
 | 
			
		||||
             */
 | 
			
		||||
@@ -162,17 +166,16 @@ public abstract class SkillCommand implements TabExecutor {
 | 
			
		||||
            //TODO: Add JSON here
 | 
			
		||||
            for (PrimarySkillType parent : parents) {
 | 
			
		||||
                parentList.add(parent);
 | 
			
		||||
                /*player.sendMessage(parent.getName() + " - " + LocaleLoader.getString("Effects.Level.Overhaul", mcMMOPlayer.getSkillLevel(parent), mcMMOPlayer.getSkillXpLevel(parent), mcMMOPlayer.getXpToLevel(parent)))*/;
 | 
			
		||||
                /*player.sendMessage(parent.getName() + " - " + LocaleLoader.getString("Effects.Level.Overhaul", mcMMOPlayer.getSkillLevel(parent), mcMMOPlayer.getSkillXpLevel(parent), mcMMOPlayer.getXpToLevel(parent)))*/
 | 
			
		||||
                ;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            String parentMessage = "";
 | 
			
		||||
 | 
			
		||||
            for(int i = 0; i < parentList.size(); i++)
 | 
			
		||||
            {
 | 
			
		||||
                if(i+1 < parentList.size())
 | 
			
		||||
                {
 | 
			
		||||
            for (int i = 0; i < parentList.size(); i++) {
 | 
			
		||||
                if (i + 1 < parentList.size()) {
 | 
			
		||||
                    parentMessage += LocaleLoader.getString("Effects.Child.ParentList", parentList.get(i).getName(), mcMMOPlayer.getSkillLevel(parentList.get(i)));
 | 
			
		||||
                    parentMessage += ChatColor.GRAY+", ";
 | 
			
		||||
                    parentMessage += ChatColor.GRAY + ", ";
 | 
			
		||||
                } else {
 | 
			
		||||
                    parentMessage += LocaleLoader.getString("Effects.Child.ParentList", parentList.get(i).getName(), mcMMOPlayer.getSkillLevel(parentList.get(i)));
 | 
			
		||||
                }
 | 
			
		||||
@@ -231,11 +234,9 @@ public abstract class SkillCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
        int length;
 | 
			
		||||
 | 
			
		||||
        if(abilityLengthCap <= 0)
 | 
			
		||||
        {
 | 
			
		||||
        if (abilityLengthCap <= 0) {
 | 
			
		||||
            length = 2 + (int) (skillValue / abilityLengthVar);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            length = 2 + (int) (Math.min(abilityLengthCap, skillValue) / abilityLengthVar);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -245,40 +246,27 @@ public abstract class SkillCommand implements TabExecutor {
 | 
			
		||||
            length = Math.min(length, maxLength);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return new String[] { String.valueOf(length), String.valueOf(enduranceLength) };
 | 
			
		||||
        return new String[]{String.valueOf(length), String.valueOf(enduranceLength)};
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected String getStatMessage(SubSkillType subSkillType, String... vars)
 | 
			
		||||
    {
 | 
			
		||||
    protected String getStatMessage(SubSkillType subSkillType, String... vars) {
 | 
			
		||||
        return getStatMessage(false, false, subSkillType, vars);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected 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();
 | 
			
		||||
 | 
			
		||||
        if(isCustom)
 | 
			
		||||
        if (isCustom)
 | 
			
		||||
            //Cast to Object[] to suppress warnings
 | 
			
		||||
            return LocaleLoader.getString(templateKey, LocaleLoader.getString(statDescriptionKey, (Object[]) vars));
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
        else {
 | 
			
		||||
            String[] mergedList = addItemToFirstPositionOfArray(LocaleLoader.getString(statDescriptionKey), vars);
 | 
			
		||||
            //Cast to Object[] to suppress warnings
 | 
			
		||||
            return LocaleLoader.getString(templateKey, (Object[]) mergedList);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public static String[] addItemToFirstPositionOfArray(String itemToAdd, String... existingArray) {
 | 
			
		||||
        String[] newArray = new String[existingArray.length + 1];
 | 
			
		||||
        newArray[0] = itemToAdd;
 | 
			
		||||
 | 
			
		||||
        System.arraycopy(existingArray, 0, newArray, 1, existingArray.length);
 | 
			
		||||
 | 
			
		||||
        return newArray;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected abstract void dataCalculations(Player player, float skillValue);
 | 
			
		||||
 | 
			
		||||
    protected abstract void permissionsCheck(Player player);
 | 
			
		||||
@@ -291,12 +279,12 @@ public abstract class SkillCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Checks if a player can use a skill
 | 
			
		||||
     * @param player target player
 | 
			
		||||
     *
 | 
			
		||||
     * @param player       target player
 | 
			
		||||
     * @param subSkillType target subskill
 | 
			
		||||
     * @return true if the player has permission and has the skill unlocked
 | 
			
		||||
     */
 | 
			
		||||
    protected boolean canUseSubskill(Player player, SubSkillType subSkillType)
 | 
			
		||||
    {
 | 
			
		||||
    protected boolean canUseSubskill(Player player, SubSkillType subSkillType) {
 | 
			
		||||
        return Permissions.isSubSkillEnabled(player, subSkillType) && RankUtils.hasUnlockedSubskill(player, subSkillType);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.StringUtils;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
@@ -75,8 +75,7 @@ public class SkillGuideCommand implements CommandExecutor {
 | 
			
		||||
        while (allStrings.size() < 9) {
 | 
			
		||||
            if (pageIndexStart + allStrings.size() > guide.size()) {
 | 
			
		||||
                allStrings.add("");
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
            } else {
 | 
			
		||||
                allStrings.add(guide.get(pageIndexStart + (allStrings.size() - 1)));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.smelting.Smelting;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
@@ -44,7 +44,7 @@ public class SmeltingCommand extends SkillCommand {
 | 
			
		||||
            str_fluxMiningChance = fluxMiningStrings[0];
 | 
			
		||||
            str_fluxMiningChanceLucky = fluxMiningStrings[1];
 | 
			
		||||
        }*/
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // SECOND SMELT
 | 
			
		||||
        if (canSecondSmelt) {
 | 
			
		||||
            String[] secondSmeltStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SMELTING_SECOND_SMELT);
 | 
			
		||||
@@ -70,7 +70,7 @@ public class SmeltingCommand extends SkillCommand {
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
 | 
			
		||||
            //messages.add(LocaleLoader.getString("Smelting.Ability.FluxMining", str_fluxMiningChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
 | 
			
		||||
        }*/
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canFuelEfficiency) {
 | 
			
		||||
            messages.add(getStatMessage(false, true, SubSkillType.SMELTING_FUEL_EFFICIENCY, burnTimeModifier));
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.AdvancedConfig;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
@@ -49,7 +49,7 @@ public class SwordsCommand extends SkillCommand {
 | 
			
		||||
            bleedChance = bleedStrings[0];
 | 
			
		||||
            bleedChanceLucky = bleedStrings[1];
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // SERRATED STRIKES
 | 
			
		||||
        if (canSerratedStrike) {
 | 
			
		||||
            String[] serratedStrikesStrings = calculateLengthDisplayValues(player, skillValue);
 | 
			
		||||
@@ -70,8 +70,8 @@ public class SwordsCommand extends SkillCommand {
 | 
			
		||||
        List<String> messages = new ArrayList<String>();
 | 
			
		||||
 | 
			
		||||
        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();
 | 
			
		||||
        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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.taming.Taming;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
@@ -61,17 +61,17 @@ public class TamingCommand extends SkillCommand {
 | 
			
		||||
        if (canEnvironmentallyAware) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.0"), LocaleLoader.getString("Taming.Ability.Bonus.1")));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canFastFood) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.8"), LocaleLoader.getString("Taming.Ability.Bonus.9", percent.format(Taming.fastFoodServiceActivationChance / 100D))));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canGore) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template",
 | 
			
		||||
                    LocaleLoader.getString("Taming.Combat.Chance.Gore"),
 | 
			
		||||
                    goreChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", goreChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canHolyHound) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.10"), LocaleLoader.getString("Taming.Ability.Bonus.11")));
 | 
			
		||||
        }
 | 
			
		||||
@@ -79,11 +79,11 @@ public class TamingCommand extends SkillCommand {
 | 
			
		||||
        if (canSharpenedClaws) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.6"), LocaleLoader.getString("Taming.Ability.Bonus.7", Taming.sharpenedClawsBonusDamage)));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canShockProof) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.4"), LocaleLoader.getString("Taming.Ability.Bonus.5", Taming.shockProofModifier)));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canThickFur) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Taming.Ability.Bonus.2"), LocaleLoader.getString("Taming.Ability.Bonus.3", Taming.thickFurModifier)));
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillActivationType;
 | 
			
		||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
			
		||||
@@ -39,11 +39,12 @@ public class UnarmedCommand extends SkillCommand {
 | 
			
		||||
    protected void dataCalculations(Player player, float skillValue) {
 | 
			
		||||
        // UNARMED_ARROW_DEFLECT
 | 
			
		||||
        if (canDeflect) {
 | 
			
		||||
            String[] deflectStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, 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(player, skillValue);
 | 
			
		||||
@@ -53,7 +54,8 @@ public class UnarmedCommand extends SkillCommand {
 | 
			
		||||
 | 
			
		||||
        // UNARMED_DISARM
 | 
			
		||||
        if (canDisarm) {
 | 
			
		||||
            String[] disarmStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_DISARM);;
 | 
			
		||||
            String[] disarmStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_DISARM);
 | 
			
		||||
            ;
 | 
			
		||||
            disarmChance = disarmStrings[0];
 | 
			
		||||
            disarmChanceLucky = disarmStrings[1];
 | 
			
		||||
        }
 | 
			
		||||
@@ -90,19 +92,19 @@ public class UnarmedCommand extends SkillCommand {
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", deflectChanceLucky) : ""));
 | 
			
		||||
            //messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.ArrowDeflect", deflectChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", deflectChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canBerserk) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.UNARMED_BERSERK, berserkLength)
 | 
			
		||||
                    + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", berserkLengthEndurance) : ""));
 | 
			
		||||
            //messages.add(LocaleLoader.getString("Unarmed.Ability.Berserk.Length", berserkLength) + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", berserkLengthEndurance) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canDisarm) {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.UNARMED_DISARM, disarmChance)
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", disarmChanceLucky) : ""));
 | 
			
		||||
            //messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.Disarm", disarmChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", disarmChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canIronArm) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Unarmed.Ability.Bonus.0"), LocaleLoader.getString("Unarmed.Ability.Bonus.1", ironArmBonus)));
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.commands.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.util.TextComponentFactory;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
@@ -36,7 +36,7 @@ public class WoodcuttingCommand extends SkillCommand {
 | 
			
		||||
        if (canDoubleDrop) {
 | 
			
		||||
            setDoubleDropClassicChanceStrings(player);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // TREE FELLER
 | 
			
		||||
        if (canTreeFell) {
 | 
			
		||||
            String[] treeFellerStrings = calculateLengthDisplayValues(player, skillValue);
 | 
			
		||||
@@ -46,7 +46,8 @@ public class WoodcuttingCommand extends SkillCommand {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void setDoubleDropClassicChanceStrings(Player player) {
 | 
			
		||||
        String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.WOODCUTTING_HARVEST_LUMBER);;
 | 
			
		||||
        String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.WOODCUTTING_HARVEST_LUMBER);
 | 
			
		||||
        ;
 | 
			
		||||
        doubleDropChance = doubleDropStrings[0];
 | 
			
		||||
        doubleDropChanceLucky = doubleDropStrings[1];
 | 
			
		||||
    }
 | 
			
		||||
@@ -69,7 +70,7 @@ public class WoodcuttingCommand extends SkillCommand {
 | 
			
		||||
            messages.add(getStatMessage(SubSkillType.WOODCUTTING_HARVEST_LUMBER, doubleDropChance)
 | 
			
		||||
                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if (canLeafBlow) {
 | 
			
		||||
            messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Woodcutting.Ability.0"), LocaleLoader.getString("Woodcutting.Ability.1")));
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,10 @@ import org.bukkit.event.HandlerList;
 | 
			
		||||
import org.bukkit.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
public abstract class McMMOChatEvent extends Event implements Cancellable {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
    private Plugin plugin;
 | 
			
		||||
    private String sender;
 | 
			
		||||
@@ -27,6 +31,10 @@ public abstract class McMMOChatEvent extends Event implements Cancellable {
 | 
			
		||||
        this.message = message;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return The plugin responsible for this event, note this can be null
 | 
			
		||||
     */
 | 
			
		||||
@@ -48,13 +56,6 @@ public abstract class McMMOChatEvent extends Event implements Cancellable {
 | 
			
		||||
        return displayName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return String message that will be sent
 | 
			
		||||
     */
 | 
			
		||||
    public String getMessage() {
 | 
			
		||||
        return message;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param displayName String display name of the player who sent the chat
 | 
			
		||||
     */
 | 
			
		||||
@@ -62,6 +63,13 @@ public abstract class McMMOChatEvent extends Event implements Cancellable {
 | 
			
		||||
        this.displayName = displayName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return String message that will be sent
 | 
			
		||||
     */
 | 
			
		||||
    public String getMessage() {
 | 
			
		||||
        return message;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param message String message to be sent in chat
 | 
			
		||||
     */
 | 
			
		||||
@@ -69,7 +77,9 @@ public abstract class McMMOChatEvent extends Event implements Cancellable {
 | 
			
		||||
        this.message = message;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
@@ -80,15 +90,8 @@ public abstract class McMMOChatEvent extends Event implements Cancellable {
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.events.experience;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.experience.XPGainReason;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.Cancellable;
 | 
			
		||||
import org.bukkit.event.HandlerList;
 | 
			
		||||
@@ -12,10 +12,11 @@ import org.bukkit.event.player.PlayerEvent;
 | 
			
		||||
 * Generic event for mcMMO experience events.
 | 
			
		||||
 */
 | 
			
		||||
public abstract class McMMOPlayerExperienceEvent extends PlayerEvent implements Cancellable {
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    protected PrimarySkillType skill;
 | 
			
		||||
    protected int skillLevel;
 | 
			
		||||
    protected XPGainReason xpGainReason;
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
 | 
			
		||||
    @Deprecated
 | 
			
		||||
    protected McMMOPlayerExperienceEvent(Player player, PrimarySkillType skill) {
 | 
			
		||||
@@ -32,6 +33,10 @@ public abstract class McMMOPlayerExperienceEvent extends PlayerEvent implements
 | 
			
		||||
        this.xpGainReason = xpGainReason;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return The skill involved in this event
 | 
			
		||||
     */
 | 
			
		||||
@@ -53,7 +58,9 @@ public abstract class McMMOPlayerExperienceEvent extends PlayerEvent implements
 | 
			
		||||
        return xpGainReason;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
@@ -63,15 +70,9 @@ public abstract class McMMOPlayerExperienceEvent extends PlayerEvent implements
 | 
			
		||||
    public void setCancelled(boolean cancelled) {
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ import org.bukkit.event.HandlerList;
 | 
			
		||||
 * Called when a user loses levels in a skill
 | 
			
		||||
 */
 | 
			
		||||
public class McMMOPlayerLevelDownEvent extends McMMOPlayerLevelChangeEvent {
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private int levelsLost;
 | 
			
		||||
 | 
			
		||||
    @Deprecated
 | 
			
		||||
@@ -33,11 +34,8 @@ public class McMMOPlayerLevelDownEvent extends McMMOPlayerLevelChangeEvent {
 | 
			
		||||
        this.levelsLost = levelsLost;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param levelsLost Set the number of levels lost in this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setLevelsLost(int levelsLost) {
 | 
			
		||||
        this.levelsLost = levelsLost;
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -47,14 +45,15 @@ public class McMMOPlayerLevelDownEvent extends McMMOPlayerLevelChangeEvent {
 | 
			
		||||
        return levelsLost;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    /**
 | 
			
		||||
     * @param levelsLost Set the number of levels lost in this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setLevelsLost(int levelsLost) {
 | 
			
		||||
        this.levelsLost = levelsLost;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ import org.bukkit.event.HandlerList;
 | 
			
		||||
 * Called when a user levels up in a skill
 | 
			
		||||
 */
 | 
			
		||||
public class McMMOPlayerLevelUpEvent extends McMMOPlayerLevelChangeEvent {
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private int levelsGained;
 | 
			
		||||
 | 
			
		||||
    @Deprecated
 | 
			
		||||
@@ -33,11 +34,8 @@ public class McMMOPlayerLevelUpEvent extends McMMOPlayerLevelChangeEvent {
 | 
			
		||||
        this.levelsGained = levelsGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param levelsGained Set the number of levels gained in this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setLevelsGained(int levelsGained) {
 | 
			
		||||
        this.levelsGained = levelsGained;
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -47,14 +45,15 @@ public class McMMOPlayerLevelUpEvent extends McMMOPlayerLevelChangeEvent {
 | 
			
		||||
        return levelsGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    /**
 | 
			
		||||
     * @param levelsGained Set the number of levels gained in this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setLevelsGained(int levelsGained) {
 | 
			
		||||
        this.levelsGained = levelsGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ import org.bukkit.event.HandlerList;
 | 
			
		||||
 * Called when a player gains XP in a skill
 | 
			
		||||
 */
 | 
			
		||||
public class McMMOPlayerXpGainEvent extends McMMOPlayerExperienceEvent {
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private float xpGained;
 | 
			
		||||
 | 
			
		||||
    @Deprecated
 | 
			
		||||
@@ -22,6 +23,10 @@ public class McMMOPlayerXpGainEvent extends McMMOPlayerExperienceEvent {
 | 
			
		||||
        this.xpGained = xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return The amount of experience gained in this event
 | 
			
		||||
     */
 | 
			
		||||
@@ -29,6 +34,13 @@ public class McMMOPlayerXpGainEvent extends McMMOPlayerExperienceEvent {
 | 
			
		||||
        return xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param xpGained int amount of experience gained in this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setRawXpGained(float xpGained) {
 | 
			
		||||
        this.xpGained = xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return int amount of experience gained in this event
 | 
			
		||||
     */
 | 
			
		||||
@@ -37,13 +49,6 @@ public class McMMOPlayerXpGainEvent extends McMMOPlayerExperienceEvent {
 | 
			
		||||
        return (int) xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param xpGained int amount of experience gained in this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setRawXpGained(float xpGained) {
 | 
			
		||||
        this.xpGained = xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param xpGained int amount of experience gained in this event
 | 
			
		||||
     */
 | 
			
		||||
@@ -52,14 +57,8 @@ public class McMMOPlayerXpGainEvent extends McMMOPlayerExperienceEvent {
 | 
			
		||||
        this.xpGained = xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -8,9 +8,12 @@ import org.bukkit.event.player.PlayerEvent;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerDeathPenaltyEvent extends PlayerEvent implements Cancellable {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private HashMap<String, Integer> levelChanged;
 | 
			
		||||
    private HashMap<String, Float> experienceChanged;
 | 
			
		||||
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
 | 
			
		||||
    public McMMOPlayerDeathPenaltyEvent(Player player, HashMap<String, Integer> levelChanged, HashMap<String, Float> experienceChanged) {
 | 
			
		||||
@@ -26,6 +29,10 @@ public class McMMOPlayerDeathPenaltyEvent extends PlayerEvent implements Cancell
 | 
			
		||||
        this.cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public HashMap<String, Integer> getLevelChanged() {
 | 
			
		||||
        return levelChanged;
 | 
			
		||||
    }
 | 
			
		||||
@@ -42,7 +49,9 @@ public class McMMOPlayerDeathPenaltyEvent extends PlayerEvent implements Cancell
 | 
			
		||||
        this.experienceChanged = experienceChanged;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
@@ -53,15 +62,8 @@ public class McMMOPlayerDeathPenaltyEvent extends PlayerEvent implements Cancell
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,10 @@ import org.bukkit.event.HandlerList;
 | 
			
		||||
import org.bukkit.event.player.PlayerEvent;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerPreDeathPenaltyEvent extends PlayerEvent implements Cancellable {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
 | 
			
		||||
    public McMMOPlayerPreDeathPenaltyEvent(Player player) {
 | 
			
		||||
@@ -13,7 +17,13 @@ public class McMMOPlayerPreDeathPenaltyEvent extends PlayerEvent implements Canc
 | 
			
		||||
        this.cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
@@ -24,15 +34,8 @@ public class McMMOPlayerPreDeathPenaltyEvent extends PlayerEvent implements Canc
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,10 @@ import org.bukkit.inventory.ItemStack;
 | 
			
		||||
 * Called when mcMMO is preparing to drop an item.
 | 
			
		||||
 */
 | 
			
		||||
public class McMMOItemSpawnEvent extends Event implements Cancellable {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private Location location;
 | 
			
		||||
    private ItemStack itemStack;
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
@@ -20,6 +24,10 @@ public class McMMOItemSpawnEvent extends Event implements Cancellable {
 | 
			
		||||
        this.cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return Location where the item will be dropped
 | 
			
		||||
     */
 | 
			
		||||
@@ -48,7 +56,9 @@ public class McMMOItemSpawnEvent extends Event implements Cancellable {
 | 
			
		||||
        this.itemStack = itemStack;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
@@ -59,15 +69,8 @@ public class McMMOItemSpawnEvent extends Event implements Cancellable {
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,10 @@ import org.bukkit.event.HandlerList;
 | 
			
		||||
import org.bukkit.event.player.PlayerEvent;
 | 
			
		||||
 | 
			
		||||
public class McMMOPartyAllianceChangeEvent extends PlayerEvent implements Cancellable {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private String oldAlly;
 | 
			
		||||
    private String newAlly;
 | 
			
		||||
    private EventReason reason;
 | 
			
		||||
@@ -24,6 +28,10 @@ public class McMMOPartyAllianceChangeEvent extends PlayerEvent implements Cancel
 | 
			
		||||
        this.cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return The party being left, or null if the player was not in a party
 | 
			
		||||
     */
 | 
			
		||||
@@ -45,6 +53,24 @@ public class McMMOPartyAllianceChangeEvent extends PlayerEvent implements Cancel
 | 
			
		||||
        return reason;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void setCancelled(boolean cancelled) {
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * A list of reasons why the event may have been fired
 | 
			
		||||
     */
 | 
			
		||||
@@ -64,27 +90,4 @@ public class McMMOPartyAllianceChangeEvent extends PlayerEvent implements Cancel
 | 
			
		||||
         */
 | 
			
		||||
        CUSTOM;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void setCancelled(boolean cancelled) {
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,10 @@ import org.bukkit.event.player.PlayerEvent;
 | 
			
		||||
 * Called when a player attempts to join, leave, or change parties.
 | 
			
		||||
 */
 | 
			
		||||
public class McMMOPartyChangeEvent extends PlayerEvent implements Cancellable {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private String oldParty;
 | 
			
		||||
    private String newParty;
 | 
			
		||||
    private EventReason reason;
 | 
			
		||||
@@ -27,6 +31,10 @@ public class McMMOPartyChangeEvent extends PlayerEvent implements Cancellable {
 | 
			
		||||
        this.cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return The party being left, or null if the player was not in a party
 | 
			
		||||
     */
 | 
			
		||||
@@ -48,6 +56,24 @@ public class McMMOPartyChangeEvent extends PlayerEvent implements Cancellable {
 | 
			
		||||
        return reason;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void setCancelled(boolean cancelled) {
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * A list of reasons why the event may have been fired
 | 
			
		||||
     */
 | 
			
		||||
@@ -77,27 +103,4 @@ public class McMMOPartyChangeEvent extends PlayerEvent implements Cancellable {
 | 
			
		||||
         */
 | 
			
		||||
        CUSTOM;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void setCancelled(boolean cancelled) {
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,10 @@ import org.bukkit.event.Event;
 | 
			
		||||
import org.bukkit.event.HandlerList;
 | 
			
		||||
 | 
			
		||||
public class McMMOPartyLevelUpEvent extends Event implements Cancellable {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private Party party;
 | 
			
		||||
    private int levelsChanged;
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
@@ -16,6 +20,10 @@ public class McMMOPartyLevelUpEvent extends Event implements Cancellable {
 | 
			
		||||
        this.cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Party getParty() {
 | 
			
		||||
        return party;
 | 
			
		||||
    }
 | 
			
		||||
@@ -28,7 +36,9 @@ public class McMMOPartyLevelUpEvent extends Event implements Cancellable {
 | 
			
		||||
        this.levelsChanged = levelsChanged;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
@@ -39,15 +49,8 @@ public class McMMOPartyLevelUpEvent extends Event implements Cancellable {
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,10 @@ import org.bukkit.event.player.PlayerTeleportEvent;
 | 
			
		||||
 * Called just before a player teleports using the /ptp command.
 | 
			
		||||
 */
 | 
			
		||||
public class McMMOPartyTeleportEvent extends PlayerTeleportEvent {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private String party;
 | 
			
		||||
    private Player target;
 | 
			
		||||
 | 
			
		||||
@@ -17,6 +21,10 @@ public class McMMOPartyTeleportEvent extends PlayerTeleportEvent {
 | 
			
		||||
        this.target = target;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return The party the teleporting player is in
 | 
			
		||||
     */
 | 
			
		||||
@@ -31,15 +39,8 @@ public class McMMOPartyTeleportEvent extends PlayerTeleportEvent {
 | 
			
		||||
        return target;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,10 @@ import org.bukkit.event.Event;
 | 
			
		||||
import org.bukkit.event.HandlerList;
 | 
			
		||||
 | 
			
		||||
public class McMMOPartyXpGainEvent extends Event implements Cancellable {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    private Party party;
 | 
			
		||||
    private float xpGained;
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
@@ -16,6 +20,10 @@ public class McMMOPartyXpGainEvent extends Event implements Cancellable {
 | 
			
		||||
        this.cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Party getParty() {
 | 
			
		||||
        return party;
 | 
			
		||||
    }
 | 
			
		||||
@@ -27,6 +35,13 @@ public class McMMOPartyXpGainEvent extends Event implements Cancellable {
 | 
			
		||||
        return xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param xpGained set amount of experience gained in this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setRawXpGained(float xpGained) {
 | 
			
		||||
        this.xpGained = xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return int amount of experience gained in this event
 | 
			
		||||
     */
 | 
			
		||||
@@ -35,13 +50,6 @@ public class McMMOPartyXpGainEvent extends Event implements Cancellable {
 | 
			
		||||
        return (int) xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param xpGained set amount of experience gained in this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setRawXpGained(float xpGained) {
 | 
			
		||||
        this.xpGained = xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param xpGained set int amount of experience gained in this event
 | 
			
		||||
     */
 | 
			
		||||
@@ -50,7 +58,9 @@ public class McMMOPartyXpGainEvent extends Event implements Cancellable {
 | 
			
		||||
        this.xpGained = xpGained;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
@@ -61,15 +71,8 @@ public class McMMOPartyXpGainEvent extends Event implements Cancellable {
 | 
			
		||||
        this.cancelled = cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,24 +11,31 @@ import org.bukkit.scoreboard.Scoreboard;
 | 
			
		||||
 */
 | 
			
		||||
abstract public class McMMOScoreboardEvent extends Event {
 | 
			
		||||
 | 
			
		||||
    protected Scoreboard targetBoard; //Scoreboard involved in this event
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    final Scoreboard currentBoard; //Can be null
 | 
			
		||||
    private final ScoreboardEventReason scoreboardEventReason;
 | 
			
		||||
    protected Scoreboard targetBoard; //Scoreboard involved in this event
 | 
			
		||||
    protected Player targetPlayer;
 | 
			
		||||
 | 
			
		||||
    private final ScoreboardEventReason scoreboardEventReason;
 | 
			
		||||
    /** GETTER & SETTER BOILERPLATE **/
 | 
			
		||||
 | 
			
		||||
    public McMMOScoreboardEvent(Scoreboard targetBoard, Scoreboard currentBoard, Player targetPlayer, ScoreboardEventReason scoreboardEventReason)
 | 
			
		||||
    {
 | 
			
		||||
    public McMMOScoreboardEvent(Scoreboard targetBoard, Scoreboard currentBoard, Player targetPlayer, ScoreboardEventReason scoreboardEventReason) {
 | 
			
		||||
        this.scoreboardEventReason = scoreboardEventReason;
 | 
			
		||||
        this.targetBoard = targetBoard;
 | 
			
		||||
        this.currentBoard = currentBoard;
 | 
			
		||||
        this.targetPlayer = targetPlayer;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** GETTER & SETTER BOILERPLATE **/
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This is the scoreboard the player will be assigned to after this event
 | 
			
		||||
     *
 | 
			
		||||
     * @return the target board to assign the player after this event fires
 | 
			
		||||
     */
 | 
			
		||||
    public Scoreboard getTargetBoard() {
 | 
			
		||||
@@ -37,6 +44,7 @@ abstract public class McMMOScoreboardEvent extends Event {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Change the scoreboard that the player will be assigned to after this event fires
 | 
			
		||||
     *
 | 
			
		||||
     * @param targetBoard the new board to assign the player to
 | 
			
		||||
     */
 | 
			
		||||
    public void setTargetBoard(Scoreboard targetBoard) {
 | 
			
		||||
@@ -45,15 +53,26 @@ abstract public class McMMOScoreboardEvent extends Event {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The player involved in this event (this can be changed)
 | 
			
		||||
     *
 | 
			
		||||
     * @return the player involved in this event
 | 
			
		||||
     */
 | 
			
		||||
    public Player getTargetPlayer() {
 | 
			
		||||
        return targetPlayer;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Change the target player for this event
 | 
			
		||||
     *
 | 
			
		||||
     * @param targetPlayer the new target for this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setTargetPlayer(Player targetPlayer) {
 | 
			
		||||
        this.targetPlayer = targetPlayer;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This is the scoreboard the player is currently assigned to at the time the event was fired
 | 
			
		||||
     * Grabbed via player.getScoreboard()
 | 
			
		||||
     *
 | 
			
		||||
     * @return players current scoreboard
 | 
			
		||||
     */
 | 
			
		||||
    public Scoreboard getCurrentBoard() {
 | 
			
		||||
@@ -62,29 +81,15 @@ abstract public class McMMOScoreboardEvent extends Event {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The ENUM defining the reason for this event
 | 
			
		||||
     *
 | 
			
		||||
     * @return the reason for this event
 | 
			
		||||
     */
 | 
			
		||||
    public ScoreboardEventReason getScoreboardEventReason() {
 | 
			
		||||
        return scoreboardEventReason;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Change the target player for this event
 | 
			
		||||
     * @param targetPlayer the new target for this event
 | 
			
		||||
     */
 | 
			
		||||
    public void setTargetPlayer(Player targetPlayer) {
 | 
			
		||||
        this.targetPlayer = targetPlayer;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,10 +6,9 @@ import org.bukkit.scoreboard.Objective;
 | 
			
		||||
import org.bukkit.scoreboard.Scoreboard;
 | 
			
		||||
 | 
			
		||||
public class McMMOScoreboardObjectiveEvent extends McMMOScoreboardEvent implements Cancellable {
 | 
			
		||||
    protected boolean cancelled;
 | 
			
		||||
 | 
			
		||||
    protected Objective targetObjective;
 | 
			
		||||
    protected final ScoreboardObjectiveEventReason objectiveEventReason;
 | 
			
		||||
    protected boolean cancelled;
 | 
			
		||||
    protected Objective targetObjective;
 | 
			
		||||
 | 
			
		||||
    public McMMOScoreboardObjectiveEvent(Objective targetObjective, ScoreboardObjectiveEventReason objectiveEventReason, Scoreboard scoreboard, Scoreboard oldboard, Player targetPlayer, ScoreboardEventReason scoreboardEventReason) {
 | 
			
		||||
        super(scoreboard, oldboard, targetPlayer, scoreboardEventReason);
 | 
			
		||||
@@ -20,6 +19,7 @@ public class McMMOScoreboardObjectiveEvent extends McMMOScoreboardEvent implemen
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The objective that will be modified by this event
 | 
			
		||||
     *
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public Objective getTargetObjective() {
 | 
			
		||||
@@ -28,6 +28,7 @@ public class McMMOScoreboardObjectiveEvent extends McMMOScoreboardEvent implemen
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Change the target objective for this event
 | 
			
		||||
     *
 | 
			
		||||
     * @param newObjective new target objective
 | 
			
		||||
     */
 | 
			
		||||
    public void setTargetObjective(Objective newObjective) {
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,10 @@ import org.bukkit.event.player.PlayerEvent;
 | 
			
		||||
 * This event is sent for when mcMMO informs a player about various important information
 | 
			
		||||
 */
 | 
			
		||||
public class McMMOPlayerNotificationEvent extends PlayerEvent implements Cancellable {
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    protected final NotificationType notificationType;
 | 
			
		||||
    protected ChatMessageType chatMessageType;
 | 
			
		||||
    protected TextComponent notificationTextComponent;
 | 
			
		||||
    private boolean isCancelled;
 | 
			
		||||
    /*
 | 
			
		||||
     * Messages can be sent to both places, as configured in advanced.yml
 | 
			
		||||
@@ -20,12 +24,6 @@ public class McMMOPlayerNotificationEvent extends PlayerEvent implements Cancell
 | 
			
		||||
     */
 | 
			
		||||
    private boolean isMessageAlsoBeingSentToChat;
 | 
			
		||||
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    protected ChatMessageType chatMessageType;
 | 
			
		||||
 | 
			
		||||
    protected TextComponent notificationTextComponent;
 | 
			
		||||
    protected final NotificationType notificationType;
 | 
			
		||||
 | 
			
		||||
    public McMMOPlayerNotificationEvent(Player who, NotificationType notificationType, TextComponent notificationTextComponent, ChatMessageType chatMessageType, boolean isMessageAlsoBeingSentToChat) {
 | 
			
		||||
        super(who);
 | 
			
		||||
        this.notificationType = notificationType;
 | 
			
		||||
@@ -39,6 +37,10 @@ public class McMMOPlayerNotificationEvent extends PlayerEvent implements Cancell
 | 
			
		||||
     * Getters & Setters
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean isMessageAlsoBeingSentToChat() {
 | 
			
		||||
        return isMessageAlsoBeingSentToChat;
 | 
			
		||||
    }
 | 
			
		||||
@@ -63,27 +65,24 @@ public class McMMOPlayerNotificationEvent extends PlayerEvent implements Cancell
 | 
			
		||||
        this.chatMessageType = chatMessageType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Custom Event Boilerplate
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The notification type for this event
 | 
			
		||||
     *
 | 
			
		||||
     * @return this event's notification type
 | 
			
		||||
     */
 | 
			
		||||
    public NotificationType getEventNotificationType() {
 | 
			
		||||
        return notificationType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Custom Event Boilerplate
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Cancellable Interface Boilerplate
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.HandlerList;
 | 
			
		||||
import org.bukkit.event.player.PlayerEvent;
 | 
			
		||||
@@ -10,6 +10,10 @@ import org.bukkit.event.player.PlayerEvent;
 | 
			
		||||
 * Generic event for mcMMO skill handling.
 | 
			
		||||
 */
 | 
			
		||||
public abstract class McMMOPlayerSkillEvent extends PlayerEvent {
 | 
			
		||||
    /**
 | 
			
		||||
     * Rest of file is required boilerplate for custom events
 | 
			
		||||
     **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
    protected PrimarySkillType skill;
 | 
			
		||||
    protected int skillLevel;
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +23,10 @@ public abstract class McMMOPlayerSkillEvent extends PlayerEvent {
 | 
			
		||||
        this.skillLevel = UserManager.getPlayer(player).getSkillLevel(skill);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return The skill involved in this event
 | 
			
		||||
     */
 | 
			
		||||
@@ -33,15 +41,8 @@ public abstract class McMMOPlayerSkillEvent extends PlayerEvent {
 | 
			
		||||
        return skillLevel;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HandlerList getHandlerList() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,9 @@ public class McMMOPlayerRepairCheckEvent extends McMMOPlayerSkillEvent implement
 | 
			
		||||
        return repairedObject;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,9 @@ public class McMMOPlayerSalvageCheckEvent extends McMMOPlayerSkillEvent implemen
 | 
			
		||||
        return enchantedBook;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,8 @@ public class SubSkillEvent extends McMMOPlayerSkillEvent implements Cancellable
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Only skills using the old system will fire this event
 | 
			
		||||
     * @param player target player
 | 
			
		||||
     *
 | 
			
		||||
     * @param player       target player
 | 
			
		||||
     * @param subSkillType target subskill
 | 
			
		||||
     * @Deprecated Skills will be using a new system stemming from the AbstractSubSkill class so make sure you check for both events, this event will be removed eventually.
 | 
			
		||||
     */
 | 
			
		||||
@@ -23,13 +24,13 @@ public class SubSkillEvent extends McMMOPlayerSkillEvent implements Cancellable
 | 
			
		||||
        this.subSkillType = subSkillType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public SubSkillEvent(Player player, AbstractSubSkill abstractSubSkill)
 | 
			
		||||
    {
 | 
			
		||||
    public SubSkillEvent(Player player, AbstractSubSkill abstractSubSkill) {
 | 
			
		||||
        super(player, abstractSubSkill.getPrimarySkill());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Gets the SubSkillType involved in the event
 | 
			
		||||
     *
 | 
			
		||||
     * @return the SubSkillType
 | 
			
		||||
     */
 | 
			
		||||
    public SubSkillType getSubSkillType() {
 | 
			
		||||
 
 | 
			
		||||
@@ -12,8 +12,7 @@ public class SubSkillRandomCheckEvent extends SubSkillEvent {
 | 
			
		||||
        this.chance = chance;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public SubSkillRandomCheckEvent(Player player, AbstractSubSkill abstractSubSkill, double chance)
 | 
			
		||||
    {
 | 
			
		||||
    public SubSkillRandomCheckEvent(Player player, AbstractSubSkill abstractSubSkill, double chance) {
 | 
			
		||||
        super(player, abstractSubSkill);
 | 
			
		||||
        this.chance = chance;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,9 @@ public class McMMOPlayerDisarmEvent extends McMMOPlayerSkillEvent implements Can
 | 
			
		||||
        return defender;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Following are required for Cancellable **/
 | 
			
		||||
    /**
 | 
			
		||||
     * Following are required for Cancellable
 | 
			
		||||
     **/
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +1,34 @@
 | 
			
		||||
package com.gmail.nossr50.listeners;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.HiddenConfig;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.WorldBlacklist;
 | 
			
		||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SuperAbilityType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.ToolType;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeBlockBreakEvent;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeBlockDamageEvent;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.Salvage;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.alchemy.Alchemy;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.excavation.ExcavationManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.herbalism.Herbalism;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.herbalism.HerbalismManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.mining.MiningManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.Repair;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.Salvage;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.woodcutting.WoodcuttingManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.BlockUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.EventUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.ItemUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.sounds.SoundManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.sounds.SoundType;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardUtils;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeBlockBreakEvent;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeBlockDamageEvent;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.GameMode;
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
@@ -62,7 +62,7 @@ public class BlockListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onBlockPistonExtend(BlockPistonExtendEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        BlockFace direction = event.getDirection();
 | 
			
		||||
@@ -85,7 +85,7 @@ public class BlockListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onBlockPistonRetract(BlockPistonRetractEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        // Get opposite direction so we get correct block
 | 
			
		||||
@@ -105,14 +105,12 @@ public class BlockListener implements Listener {
 | 
			
		||||
     * @param event The event to watch
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onEntityBlockFormEvent(EntityBlockFormEvent event)
 | 
			
		||||
    {
 | 
			
		||||
    public void onEntityBlockFormEvent(EntityBlockFormEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if(BlockUtils.shouldBeWatched(event.getBlock().getState()))
 | 
			
		||||
        {
 | 
			
		||||
        if (BlockUtils.shouldBeWatched(event.getBlock().getState())) {
 | 
			
		||||
            mcMMO.getPlaceStore().setTrue(event.getBlock());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -125,14 +123,14 @@ public class BlockListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onFallingBlock(EntityChangeBlockEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if (BlockUtils.shouldBeWatched(event.getBlock().getState()) && event.getEntityType().equals(EntityType.FALLING_BLOCK)) {
 | 
			
		||||
            if (event.getTo().equals(Material.AIR) && mcMMO.getPlaceStore().isTrue(event.getBlock())) {
 | 
			
		||||
                event.getEntity().setMetadata("mcMMOBlockFall", new FixedMetadataValue( plugin, event.getBlock().getLocation()));
 | 
			
		||||
                event.getEntity().setMetadata("mcMMOBlockFall", new FixedMetadataValue(plugin, event.getBlock().getLocation()));
 | 
			
		||||
            } else {
 | 
			
		||||
                List<MetadataValue> values = event.getEntity().getMetadata( "mcMMOBlockFall" );
 | 
			
		||||
                List<MetadataValue> values = event.getEntity().getMetadata("mcMMOBlockFall");
 | 
			
		||||
 | 
			
		||||
                if (!values.isEmpty()) {
 | 
			
		||||
 | 
			
		||||
@@ -140,8 +138,8 @@ public class BlockListener implements Listener {
 | 
			
		||||
                    Block spawn = ((org.bukkit.Location) values.get(0).value()).getBlock();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                    mcMMO.getPlaceStore().setTrue( event.getBlock() );
 | 
			
		||||
                    mcMMO.getPlaceStore().setFalse( spawn );
 | 
			
		||||
                    mcMMO.getPlaceStore().setTrue(event.getBlock());
 | 
			
		||||
                    mcMMO.getPlaceStore().setFalse(spawn);
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
@@ -156,7 +154,7 @@ public class BlockListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
    public void onBlockPlace(BlockPlaceEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Player player = event.getPlayer();
 | 
			
		||||
@@ -178,8 +176,7 @@ public class BlockListener implements Listener {
 | 
			
		||||
 | 
			
		||||
        if (blockState.getType() == Repair.anvilMaterial && PrimarySkillType.REPAIR.getPermissions(player)) {
 | 
			
		||||
            mcMMOPlayer.getRepairManager().placedAnvilCheck();
 | 
			
		||||
        }
 | 
			
		||||
        else if (blockState.getType() == Salvage.anvilMaterial && PrimarySkillType.SALVAGE.getPermissions(player)) {
 | 
			
		||||
        } else if (blockState.getType() == Salvage.anvilMaterial && PrimarySkillType.SALVAGE.getPermissions(player)) {
 | 
			
		||||
            mcMMOPlayer.getSalvageManager().placedAnvilCheck();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -192,7 +189,7 @@ public class BlockListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onBlockMultiPlace(BlockMultiPlaceEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Player player = event.getPlayer();
 | 
			
		||||
@@ -201,8 +198,7 @@ public class BlockListener implements Listener {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        for (BlockState replacedBlockState : event.getReplacedBlockStates())
 | 
			
		||||
        {
 | 
			
		||||
        for (BlockState replacedBlockState : event.getReplacedBlockStates()) {
 | 
			
		||||
            BlockState blockState = replacedBlockState.getBlock().getState();
 | 
			
		||||
 | 
			
		||||
            /* Check if the blocks placed should be monitored so they do not give out XP in the future */
 | 
			
		||||
@@ -213,10 +209,9 @@ public class BlockListener implements Listener {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onBlockGrow(BlockGrowEvent event)
 | 
			
		||||
    {
 | 
			
		||||
    public void onBlockGrow(BlockGrowEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        BlockState blockState = event.getBlock().getState();
 | 
			
		||||
@@ -236,13 +231,12 @@ public class BlockListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onBlockBreak(BlockBreakEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -300,8 +294,7 @@ public class BlockListener implements Listener {
 | 
			
		||||
            WoodcuttingManager woodcuttingManager = mcMMOPlayer.getWoodcuttingManager();
 | 
			
		||||
            if (woodcuttingManager.canUseTreeFeller(heldItem)) {
 | 
			
		||||
                woodcuttingManager.processTreeFeller(blockState);
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
            } else {
 | 
			
		||||
                woodcuttingManager.woodcuttingBlockCheck(blockState);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -328,13 +321,12 @@ public class BlockListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onBlockBreakHigher(BlockBreakEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -363,8 +355,7 @@ public class BlockListener implements Listener {
 | 
			
		||||
                if (herbalismManager.processHylianLuck(blockState)) {
 | 
			
		||||
                    blockState.update(true);
 | 
			
		||||
                    event.setCancelled(true);
 | 
			
		||||
                }
 | 
			
		||||
                else if (blockState.getType() == Material.FLOWER_POT) {
 | 
			
		||||
                } else if (blockState.getType() == Material.FLOWER_POT) {
 | 
			
		||||
                    blockState.setType(Material.AIR);
 | 
			
		||||
                    blockState.update(true);
 | 
			
		||||
                    event.setCancelled(true);
 | 
			
		||||
@@ -394,13 +385,12 @@ public class BlockListener implements Listener {
 | 
			
		||||
        BlockState blockState = event.getBlock().getState();
 | 
			
		||||
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -423,17 +413,13 @@ public class BlockListener implements Listener {
 | 
			
		||||
 | 
			
		||||
            if (mcMMOPlayer.getToolPreparationMode(ToolType.HOE) && ItemUtils.isHoe(heldItem) && (BlockUtils.affectedByGreenTerra(blockState) || BlockUtils.canMakeMossy(blockState)) && Permissions.greenTerra(player)) {
 | 
			
		||||
                mcMMOPlayer.checkAbilityActivation(PrimarySkillType.HERBALISM);
 | 
			
		||||
            }
 | 
			
		||||
            else if (mcMMOPlayer.getToolPreparationMode(ToolType.AXE) && ItemUtils.isAxe(heldItem) && BlockUtils.isLog(blockState) && Permissions.treeFeller(player)) {
 | 
			
		||||
            } else if (mcMMOPlayer.getToolPreparationMode(ToolType.AXE) && ItemUtils.isAxe(heldItem) && BlockUtils.isLog(blockState) && Permissions.treeFeller(player)) {
 | 
			
		||||
                mcMMOPlayer.checkAbilityActivation(PrimarySkillType.WOODCUTTING);
 | 
			
		||||
            }
 | 
			
		||||
            else if (mcMMOPlayer.getToolPreparationMode(ToolType.PICKAXE) && ItemUtils.isPickaxe(heldItem) && BlockUtils.affectedBySuperBreaker(blockState) && Permissions.superBreaker(player)) {
 | 
			
		||||
            } else if (mcMMOPlayer.getToolPreparationMode(ToolType.PICKAXE) && ItemUtils.isPickaxe(heldItem) && BlockUtils.affectedBySuperBreaker(blockState) && Permissions.superBreaker(player)) {
 | 
			
		||||
                mcMMOPlayer.checkAbilityActivation(PrimarySkillType.MINING);
 | 
			
		||||
            }
 | 
			
		||||
            else if (mcMMOPlayer.getToolPreparationMode(ToolType.SHOVEL) && ItemUtils.isShovel(heldItem) && BlockUtils.affectedByGigaDrillBreaker(blockState) && Permissions.gigaDrillBreaker(player)) {
 | 
			
		||||
            } else if (mcMMOPlayer.getToolPreparationMode(ToolType.SHOVEL) && ItemUtils.isShovel(heldItem) && BlockUtils.affectedByGigaDrillBreaker(blockState) && Permissions.gigaDrillBreaker(player)) {
 | 
			
		||||
                mcMMOPlayer.checkAbilityActivation(PrimarySkillType.EXCAVATION);
 | 
			
		||||
            }
 | 
			
		||||
            else if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW || BlockUtils.affectedByBlockCracker(blockState) && Permissions.berserk(player))) {
 | 
			
		||||
            } else if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW || BlockUtils.affectedByBlockCracker(blockState) && Permissions.berserk(player))) {
 | 
			
		||||
                mcMMOPlayer.checkAbilityActivation(PrimarySkillType.UNARMED);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -466,13 +452,12 @@ public class BlockListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onBlockDamageHigher(BlockDamageEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -500,19 +485,16 @@ public class BlockListener implements Listener {
 | 
			
		||||
            if (mcMMOPlayer.getHerbalismManager().processGreenTerra(blockState)) {
 | 
			
		||||
                blockState.update(true);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (mcMMOPlayer.getAbilityMode(SuperAbilityType.BERSERK) && heldItem.getType() == Material.AIR) {
 | 
			
		||||
        } else if (mcMMOPlayer.getAbilityMode(SuperAbilityType.BERSERK) && heldItem.getType() == Material.AIR) {
 | 
			
		||||
            if (SuperAbilityType.BERSERK.blockCheck(block.getState()) && EventUtils.simulateBlockBreak(block, player, true)) {
 | 
			
		||||
                event.setInstaBreak(true);
 | 
			
		||||
                SoundManager.sendSound(player, block.getLocation(), SoundType.POP);
 | 
			
		||||
            }
 | 
			
		||||
            else if (mcMMOPlayer.getUnarmedManager().canUseBlockCracker() && BlockUtils.affectedByBlockCracker(blockState) && EventUtils.simulateBlockBreak(block, player, true)) {
 | 
			
		||||
            } else if (mcMMOPlayer.getUnarmedManager().canUseBlockCracker() && BlockUtils.affectedByBlockCracker(blockState) && EventUtils.simulateBlockBreak(block, player, true)) {
 | 
			
		||||
                if (mcMMOPlayer.getUnarmedManager().blockCrackerCheck(blockState)) {
 | 
			
		||||
                    blockState.update();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (mcMMOPlayer.getWoodcuttingManager().canUseLeafBlower(heldItem) && BlockUtils.isLeaves(blockState) && EventUtils.simulateBlockBreak(block, player, true)) {
 | 
			
		||||
        } else if (mcMMOPlayer.getWoodcuttingManager().canUseLeafBlower(heldItem) && BlockUtils.isLeaves(blockState) && EventUtils.simulateBlockBreak(block, player, true)) {
 | 
			
		||||
            event.setInstaBreak(true);
 | 
			
		||||
            SoundManager.sendSound(player, block.getLocation(), SoundType.POP);
 | 
			
		||||
        }
 | 
			
		||||
@@ -532,46 +514,39 @@ public class BlockListener implements Listener {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void debugStickDump(Player player, BlockState blockState) {
 | 
			
		||||
        if(player.getInventory().getItemInMainHand().getType() == Material.DEBUG_STICK)
 | 
			
		||||
        {
 | 
			
		||||
            if(mcMMO.getPlaceStore().isTrue(blockState))
 | 
			
		||||
        if (player.getInventory().getItemInMainHand().getType() == Material.DEBUG_STICK) {
 | 
			
		||||
            if (mcMMO.getPlaceStore().isTrue(blockState))
 | 
			
		||||
                player.sendMessage("[mcMMO DEBUG] This block is not natural and does not reward treasures/XP");
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
            else {
 | 
			
		||||
                player.sendMessage("[mcMMO DEBUG] This block is considered natural by mcMMO");
 | 
			
		||||
                UserManager.getPlayer(player).getExcavationManager().printExcavationDebug(player, blockState);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
            {
 | 
			
		||||
                if(WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
            if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
                if (WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                    player.sendMessage("[mcMMO DEBUG] World Guard main flag is permitted for this player in this region");
 | 
			
		||||
                else
 | 
			
		||||
                    player.sendMessage("[mcMMO DEBUG] World Guard main flag is DENIED for this player in this region");
 | 
			
		||||
 | 
			
		||||
                if(WorldGuardManager.getInstance().hasXPFlag(player))
 | 
			
		||||
                if (WorldGuardManager.getInstance().hasXPFlag(player))
 | 
			
		||||
                    player.sendMessage("[mcMMO DEBUG] World Guard xp flag is permitted for this player in this region");
 | 
			
		||||
                else
 | 
			
		||||
                    player.sendMessage("[mcMMO DEBUG] World Guard xp flag is not permitted for this player in this region");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if(blockState instanceof Furnace)
 | 
			
		||||
            {
 | 
			
		||||
            if (blockState instanceof Furnace) {
 | 
			
		||||
                Furnace furnace = (Furnace) blockState;
 | 
			
		||||
                if(furnace.hasMetadata(mcMMO.furnaceMetadataKey))
 | 
			
		||||
                {
 | 
			
		||||
                if (furnace.hasMetadata(mcMMO.furnaceMetadataKey)) {
 | 
			
		||||
                    player.sendMessage("[mcMMO DEBUG] This furnace has a registered owner");
 | 
			
		||||
                    Player furnacePlayer = getPlayerFromFurnace(furnace.getBlock());
 | 
			
		||||
                    if(furnacePlayer != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        player.sendMessage("[mcMMO DEBUG] This furnace is owned by player "+furnacePlayer.getName());
 | 
			
		||||
                    if (furnacePlayer != null) {
 | 
			
		||||
                        player.sendMessage("[mcMMO DEBUG] This furnace is owned by player " + furnacePlayer.getName());
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                } else
 | 
			
		||||
                    player.sendMessage("[mcMMO DEBUG] This furnace does not have a registered owner");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if(ExperienceConfig.getInstance().isExperienceBarsEnabled())
 | 
			
		||||
            if (ExperienceConfig.getInstance().isExperienceBarsEnabled())
 | 
			
		||||
                player.sendMessage("[mcMMO DEBUG] XP bars are enabled, however you should check per-skill settings to make sure those are enabled.");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,31 +1,31 @@
 | 
			
		||||
package com.gmail.nossr50.listeners;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.AdvancedConfig;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.WorldBlacklist;
 | 
			
		||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.meta.OldName;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.subskills.interfaces.InteractType;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.archery.Archery;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.fishing.Fishing;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.mining.BlastMining;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.mining.MiningManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.taming.Taming;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.taming.TamingManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.subskills.interfaces.InteractType;
 | 
			
		||||
import com.gmail.nossr50.core.util.BlockUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.Misc;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.CombatUtils;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardUtils;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.OfflinePlayer;
 | 
			
		||||
import org.bukkit.block.Block;
 | 
			
		||||
@@ -55,15 +55,13 @@ public class EntityListener implements Listener {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onEntityTargetEntity(EntityTargetLivingEntityEvent event)
 | 
			
		||||
    {
 | 
			
		||||
        if(!ExperienceConfig.getInstance().isEndermanEndermiteFarmingPrevented())
 | 
			
		||||
    public void onEntityTargetEntity(EntityTargetLivingEntityEvent event) {
 | 
			
		||||
        if (!ExperienceConfig.getInstance().isEndermanEndermiteFarmingPrevented())
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        //Prevent entities from giving XP if they target endermite
 | 
			
		||||
        if(event.getTarget() instanceof Endermite)
 | 
			
		||||
        {
 | 
			
		||||
            if(event.getEntity().getMetadata(mcMMO.entityMetadataKey) == null || event.getEntity().getMetadata(mcMMO.entityMetadataKey).size() <= 0)
 | 
			
		||||
        if (event.getTarget() instanceof Endermite) {
 | 
			
		||||
            if (event.getEntity().getMetadata(mcMMO.entityMetadataKey) == null || event.getEntity().getMetadata(mcMMO.entityMetadataKey).size() <= 0)
 | 
			
		||||
                event.getEntity().setMetadata(mcMMO.entityMetadataKey, mcMMO.metadataValue);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -71,17 +69,15 @@ public class EntityListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onEntityShootBow(EntityShootBowEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if(event.getEntity() instanceof Player)
 | 
			
		||||
        {
 | 
			
		||||
        if (event.getEntity() instanceof Player) {
 | 
			
		||||
            Player player = (Player) event.getEntity();
 | 
			
		||||
 | 
			
		||||
            /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
            if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
            {
 | 
			
		||||
                if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
            if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
                if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                    return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -105,17 +101,15 @@ public class EntityListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onProjectileLaunch(ProjectileLaunchEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if(event.getEntity() instanceof Player)
 | 
			
		||||
        {
 | 
			
		||||
        if (event.getEntity() instanceof Player) {
 | 
			
		||||
            Player player = (Player) event.getEntity();
 | 
			
		||||
 | 
			
		||||
            /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
            if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
            {
 | 
			
		||||
                if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
            if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
                if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                    return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -133,13 +127,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Monitor EntityChangeBlock events.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to watch
 | 
			
		||||
     * @param event The event to watch
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onEntityChangeBlock(EntityChangeBlockEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Block block = event.getBlock();
 | 
			
		||||
@@ -159,14 +152,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
            if (mcMMO.getPlaceStore().isTrue(block) && !isTracked) {
 | 
			
		||||
                mcMMO.getPlaceStore().setFalse(block);
 | 
			
		||||
                entity.setMetadata(mcMMO.entityMetadataKey, mcMMO.metadataValue);
 | 
			
		||||
            }
 | 
			
		||||
            else if (isTracked) {
 | 
			
		||||
            } else if (isTracked) {
 | 
			
		||||
                mcMMO.getPlaceStore().setTrue(block);
 | 
			
		||||
            }
 | 
			
		||||
        } else if ((block.getType() == Material.REDSTONE_ORE)) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
        } else {
 | 
			
		||||
            if (mcMMO.getPlaceStore().isTrue(block)) {
 | 
			
		||||
                mcMMO.getPlaceStore().setFalse(block);
 | 
			
		||||
            }
 | 
			
		||||
@@ -176,13 +167,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Handle EntityDamageByEntity events that involve modifying the event.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to watch
 | 
			
		||||
     * @param event The event to watch
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if (event instanceof FakeEntityDamageByEntityEvent) {
 | 
			
		||||
@@ -192,9 +182,8 @@ public class EntityListener implements Listener {
 | 
			
		||||
        if (event.getEntity() instanceof ArmorStand) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if (event.getDamager().hasMetadata(mcMMO.funfettiMetadataKey))
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
        if (event.getDamager().hasMetadata(mcMMO.funfettiMetadataKey)) {
 | 
			
		||||
            event.setCancelled(true);
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
@@ -203,14 +192,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
        Entity defender = event.getEntity();
 | 
			
		||||
        Entity attacker = event.getDamager();
 | 
			
		||||
 | 
			
		||||
        if(attacker instanceof Player)
 | 
			
		||||
        {
 | 
			
		||||
        if (attacker instanceof Player) {
 | 
			
		||||
            Player player = (Player) attacker;
 | 
			
		||||
 | 
			
		||||
            /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
            if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
            {
 | 
			
		||||
                if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
            if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
                if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                    return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -221,7 +208,7 @@ public class EntityListener implements Listener {
 | 
			
		||||
                Player attackingPlayer = (Player) attacker;
 | 
			
		||||
                if (event.getDamage(DamageModifier.ABSORPTION) > 0) {
 | 
			
		||||
                    //If friendly fire is off don't allow players to hurt one another
 | 
			
		||||
                    if(!Config.getInstance().getPartyFriendlyFire())
 | 
			
		||||
                    if (!Config.getInstance().getPartyFriendlyFire())
 | 
			
		||||
                        if ((PartyManager.inSameParty(defendingPlayer, attackingPlayer) || PartyManager.areAllies(defendingPlayer, attackingPlayer)) && !(Permissions.friendlyFire(attackingPlayer) && Permissions.friendlyFire(defendingPlayer))) {
 | 
			
		||||
                            event.setCancelled(true);
 | 
			
		||||
                            return;
 | 
			
		||||
@@ -252,7 +239,6 @@ public class EntityListener implements Listener {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if (Misc.isNPCEntity(attacker)) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
@@ -263,15 +249,13 @@ public class EntityListener implements Listener {
 | 
			
		||||
            if (projectileSource instanceof LivingEntity) {
 | 
			
		||||
                attacker = (LivingEntity) projectileSource;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (attacker instanceof Tameable) {
 | 
			
		||||
        } else if (attacker instanceof Tameable) {
 | 
			
		||||
            AnimalTamer animalTamer = ((Tameable) attacker).getOwner();
 | 
			
		||||
 | 
			
		||||
            if (animalTamer != null && ((OfflinePlayer) animalTamer).isOnline()) {
 | 
			
		||||
                attacker = (Entity) animalTamer;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (attacker instanceof TNTPrimed && defender instanceof Player) {
 | 
			
		||||
        } else if (attacker instanceof TNTPrimed && defender instanceof Player) {
 | 
			
		||||
            if (BlastMining.processBlastMiningExplosion(event, (TNTPrimed) attacker, (Player) defender)) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
@@ -292,7 +276,7 @@ public class EntityListener implements Listener {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            //Party Friendly Fire
 | 
			
		||||
            if(!Config.getInstance().getPartyFriendlyFire())
 | 
			
		||||
            if (!Config.getInstance().getPartyFriendlyFire())
 | 
			
		||||
                if ((PartyManager.inSameParty(defendingPlayer, attackingPlayer) || PartyManager.areAllies(defendingPlayer, attackingPlayer)) && !(Permissions.friendlyFire(attackingPlayer) && Permissions.friendlyFire(defendingPlayer))) {
 | 
			
		||||
                    event.setCancelled(true);
 | 
			
		||||
                    return;
 | 
			
		||||
@@ -305,17 +289,14 @@ public class EntityListener implements Listener {
 | 
			
		||||
        /**
 | 
			
		||||
         * This sets entity names back to whatever they are supposed to be
 | 
			
		||||
         */
 | 
			
		||||
        if(!(attacker instanceof Player) && defender instanceof Player)
 | 
			
		||||
        {
 | 
			
		||||
            if(event.getFinalDamage() >= ((LivingEntity) defender).getHealth())
 | 
			
		||||
            {
 | 
			
		||||
        if (!(attacker instanceof Player) && defender instanceof Player) {
 | 
			
		||||
            if (event.getFinalDamage() >= ((LivingEntity) defender).getHealth()) {
 | 
			
		||||
                List<MetadataValue> metadataValue = attacker.getMetadata("mcMMO_oldName");
 | 
			
		||||
 | 
			
		||||
                if(metadataValue.size() <= 0)
 | 
			
		||||
                if (metadataValue.size() <= 0)
 | 
			
		||||
                    return;
 | 
			
		||||
 | 
			
		||||
                if(metadataValue != null)
 | 
			
		||||
                {
 | 
			
		||||
                if (metadataValue != null) {
 | 
			
		||||
                    OldName oldName = (OldName) metadataValue.get(0);
 | 
			
		||||
                    attacker.setCustomName(oldName.asString());
 | 
			
		||||
                    attacker.setCustomNameVisible(false);
 | 
			
		||||
@@ -327,22 +308,19 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Handle EntityDamage events that involve modifying the event.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to modify
 | 
			
		||||
     * @param event The event to modify
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onEntityDamage(EntityDamageEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if(event.getEntity() instanceof Player)
 | 
			
		||||
        {
 | 
			
		||||
        if (event.getEntity() instanceof Player) {
 | 
			
		||||
            Player player = (Player) event.getEntity();
 | 
			
		||||
            /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
            if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
            {
 | 
			
		||||
                if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
            if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
                if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                    return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -408,19 +386,15 @@ public class EntityListener implements Listener {
 | 
			
		||||
                mcMMOPlayer.actualizeRecentlyHurt();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        else if (livingEntity instanceof Tameable) {
 | 
			
		||||
        } else if (livingEntity instanceof Tameable) {
 | 
			
		||||
            Tameable pet = (Tameable) livingEntity;
 | 
			
		||||
            AnimalTamer owner = pet.getOwner();
 | 
			
		||||
 | 
			
		||||
            if(owner instanceof Player)
 | 
			
		||||
            {
 | 
			
		||||
            if (owner instanceof Player) {
 | 
			
		||||
                Player player = (Player) owner;
 | 
			
		||||
                /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
                if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
                {
 | 
			
		||||
                    if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
                    if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                        return;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
@@ -493,13 +467,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Monitor EntityDeath events.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to watch
 | 
			
		||||
     * @param event The event to watch
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.LOWEST)
 | 
			
		||||
    public void onEntityDeathLowest(EntityDeathEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        LivingEntity entity = event.getEntity();
 | 
			
		||||
@@ -526,13 +499,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Monitor EntityDeath events.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to watch
 | 
			
		||||
     * @param event The event to watch
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
    public void onEntityDeath(EntityDeathEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        LivingEntity entity = event.getEntity();
 | 
			
		||||
@@ -547,13 +519,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Monitor CreatureSpawn events.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to watch
 | 
			
		||||
     * @param event The event to watch
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onCreatureSpawn(CreatureSpawnEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        LivingEntity entity = event.getEntity();
 | 
			
		||||
@@ -583,13 +554,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Handle ExplosionPrime events that involve modifying the event.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to modify
 | 
			
		||||
     * @param event The event to modify
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onExplosionPrime(ExplosionPrimeEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Entity entity = event.getEntity();
 | 
			
		||||
@@ -607,9 +577,8 @@ public class EntityListener implements Listener {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -623,13 +592,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Handle EntityExplode events that involve modifying the event.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to modify
 | 
			
		||||
     * @param event The event to modify
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onEnitityExplode(EntityExplodeEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Entity entity = event.getEntity();
 | 
			
		||||
@@ -647,9 +615,8 @@ public class EntityListener implements Listener {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -664,13 +631,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Handle EntityExplode events that involve modifying the event.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to modify
 | 
			
		||||
     * @param event The event to modify
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
 | 
			
		||||
    public void onEntityExplodeMonitor(EntityExplodeEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Entity entity = event.getEntity();
 | 
			
		||||
@@ -685,13 +651,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Handle FoodLevelChange events that involve modifying the event.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to modify
 | 
			
		||||
     * @param event The event to modify
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
 | 
			
		||||
    public void onFoodLevelChange(FoodLevelChangeEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Entity entity = event.getEntity();
 | 
			
		||||
@@ -703,9 +668,8 @@ public class EntityListener implements Listener {
 | 
			
		||||
        Player player = (Player) entity;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -728,27 +692,27 @@ public class EntityListener implements Listener {
 | 
			
		||||
         */
 | 
			
		||||
        switch (player.getInventory().getItemInMainHand().getType()) {
 | 
			
		||||
            case BAKED_POTATO: /*
 | 
			
		||||
                                * RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @
 | 
			
		||||
                                * 1000
 | 
			
		||||
                                */
 | 
			
		||||
             * RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @
 | 
			
		||||
             * 1000
 | 
			
		||||
             */
 | 
			
		||||
            case BEETROOT:
 | 
			
		||||
            case BREAD: /* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */
 | 
			
		||||
            case CARROT: /*
 | 
			
		||||
                               * RESTORES 2 HUNGER - RESTORES 4 1/2 HUNGER @
 | 
			
		||||
                               * 1000
 | 
			
		||||
                               */
 | 
			
		||||
             * RESTORES 2 HUNGER - RESTORES 4 1/2 HUNGER @
 | 
			
		||||
             * 1000
 | 
			
		||||
             */
 | 
			
		||||
            case GOLDEN_CARROT: /*
 | 
			
		||||
                                 * RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @
 | 
			
		||||
                                 * 1000
 | 
			
		||||
                                 */
 | 
			
		||||
             * RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @
 | 
			
		||||
             * 1000
 | 
			
		||||
             */
 | 
			
		||||
            case MUSHROOM_STEW: /*
 | 
			
		||||
                                 * RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @
 | 
			
		||||
                                 * 1000
 | 
			
		||||
                                 */
 | 
			
		||||
             * RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @
 | 
			
		||||
             * 1000
 | 
			
		||||
             */
 | 
			
		||||
            case PUMPKIN_PIE: /*
 | 
			
		||||
                               * RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @
 | 
			
		||||
                               * 1000
 | 
			
		||||
                               */
 | 
			
		||||
             * RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @
 | 
			
		||||
             * 1000
 | 
			
		||||
             */
 | 
			
		||||
                if (Permissions.isSubSkillEnabled(player, SubSkillType.HERBALISM_FARMERS_DIET)) {
 | 
			
		||||
                    event.setFoodLevel(UserManager.getPlayer(player).getHerbalismManager().farmersDiet(newFoodLevel));
 | 
			
		||||
                }
 | 
			
		||||
@@ -757,9 +721,9 @@ public class EntityListener implements Listener {
 | 
			
		||||
            case COOKIE: /* RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
 | 
			
		||||
            case MELON_SLICE: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
 | 
			
		||||
            case POISONOUS_POTATO: /*
 | 
			
		||||
                                    * RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER
 | 
			
		||||
                                    * @ 1000
 | 
			
		||||
                                    */
 | 
			
		||||
             * RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER
 | 
			
		||||
             * @ 1000
 | 
			
		||||
             */
 | 
			
		||||
            case POTATO: /* RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
 | 
			
		||||
                if (Permissions.isSubSkillEnabled(player, SubSkillType.HERBALISM_FARMERS_DIET)) {
 | 
			
		||||
                    event.setFoodLevel(UserManager.getPlayer(player).getHerbalismManager().farmersDiet(newFoodLevel));
 | 
			
		||||
@@ -767,9 +731,9 @@ public class EntityListener implements Listener {
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            case COOKED_SALMON: /*
 | 
			
		||||
                               * RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @
 | 
			
		||||
                               * 1000
 | 
			
		||||
                               */
 | 
			
		||||
             * RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @
 | 
			
		||||
             * 1000
 | 
			
		||||
             */
 | 
			
		||||
                if (Permissions.isSubSkillEnabled(player, SubSkillType.FISHING_FISHERMANS_DIET)) {
 | 
			
		||||
                    event.setFoodLevel(UserManager.getPlayer(player).getFishingManager().handleFishermanDiet(Fishing.fishermansDietRankLevel1, newFoodLevel));
 | 
			
		||||
                }
 | 
			
		||||
@@ -789,13 +753,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Monitor EntityTame events.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to watch
 | 
			
		||||
     * @param event The event to watch
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onEntityTame(EntityTameEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if (event instanceof FakeEntityTameEvent) {
 | 
			
		||||
@@ -805,9 +768,8 @@ public class EntityListener implements Listener {
 | 
			
		||||
        Player player = (Player) event.getOwner();
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -824,13 +786,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
    /**
 | 
			
		||||
     * Handle EntityTarget events.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to process
 | 
			
		||||
     * @param event The event to process
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onEntityTarget(EntityTargetEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Entity entity = event.getEntity();
 | 
			
		||||
@@ -843,9 +804,8 @@ public class EntityListener implements Listener {
 | 
			
		||||
        Player player = (Player) target;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -867,13 +827,12 @@ public class EntityListener implements Listener {
 | 
			
		||||
     * Handle PotionSplash events in order to fix broken Splash Potion of
 | 
			
		||||
     * Saturation.
 | 
			
		||||
     *
 | 
			
		||||
     * @param event
 | 
			
		||||
     *            The event to process
 | 
			
		||||
     * @param event The event to process
 | 
			
		||||
     */
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onPotionSplash(PotionSplashEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        for (PotionEffect effect : ((PotionMeta) event.getPotion().getItem().getItemMeta()).getCustomEffects()) {
 | 
			
		||||
@@ -887,11 +846,11 @@ public class EntityListener implements Listener {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onPigZapEvent(PigZapEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if (event.getEntity().hasMetadata(mcMMO.entityMetadataKey)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -17,26 +17,26 @@ public class InteractionManager {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Registers subskills with the Interaction registration
 | 
			
		||||
     *
 | 
			
		||||
     * @param abstractSubSkill the target subskill to register
 | 
			
		||||
     */
 | 
			
		||||
    public static void registerSubSkill(AbstractSubSkill abstractSubSkill)
 | 
			
		||||
    {
 | 
			
		||||
    public static void registerSubSkill(AbstractSubSkill abstractSubSkill) {
 | 
			
		||||
        /* INIT MAPS */
 | 
			
		||||
        if(interactRegister == null)
 | 
			
		||||
        if (interactRegister == null)
 | 
			
		||||
            interactRegister = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        if(subSkillList == null)
 | 
			
		||||
        if (subSkillList == null)
 | 
			
		||||
            subSkillList = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
        if(subSkillNameMap == null)
 | 
			
		||||
        if (subSkillNameMap == null)
 | 
			
		||||
            subSkillNameMap = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        //Store a unique copy of each subskill
 | 
			
		||||
        if(!subSkillList.contains(abstractSubSkill))
 | 
			
		||||
        if (!subSkillList.contains(abstractSubSkill))
 | 
			
		||||
            subSkillList.add(abstractSubSkill);
 | 
			
		||||
 | 
			
		||||
        //Init ArrayList
 | 
			
		||||
        if(interactRegister.get(abstractSubSkill.getInteractType()) == null)
 | 
			
		||||
        if (interactRegister.get(abstractSubSkill.getInteractType()) == null)
 | 
			
		||||
            interactRegister.put(abstractSubSkill.getInteractType(), new ArrayList<>());
 | 
			
		||||
 | 
			
		||||
        //Registration array reference
 | 
			
		||||
@@ -48,33 +48,32 @@ public class InteractionManager {
 | 
			
		||||
        String lowerCaseName = abstractSubSkill.getConfigKeyName().toLowerCase();
 | 
			
		||||
 | 
			
		||||
        //Register in name map
 | 
			
		||||
        if(subSkillNameMap.get(lowerCaseName) == null)
 | 
			
		||||
        if (subSkillNameMap.get(lowerCaseName) == null)
 | 
			
		||||
            subSkillNameMap.put(lowerCaseName, abstractSubSkill);
 | 
			
		||||
 | 
			
		||||
        System.out.println("[mcMMO] registered subskill: "+ abstractSubSkill.getConfigKeyName());
 | 
			
		||||
        System.out.println("[mcMMO] registered subskill: " + abstractSubSkill.getConfigKeyName());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Grabs the registered abstract skill by its name
 | 
			
		||||
     * Is not case sensitive
 | 
			
		||||
     *
 | 
			
		||||
     * @param name name of subskill, not case sensitive
 | 
			
		||||
     * @return null if the subskill is not registered
 | 
			
		||||
     */
 | 
			
		||||
    public static AbstractSubSkill getAbstractByName(String name)
 | 
			
		||||
    {
 | 
			
		||||
    public static AbstractSubSkill getAbstractByName(String name) {
 | 
			
		||||
        return subSkillNameMap.get(name.toLowerCase());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Processes the associated Interactions for this event
 | 
			
		||||
     * @param event target event
 | 
			
		||||
     * @param plugin instance of mcMMO plugin
 | 
			
		||||
     *
 | 
			
		||||
     * @param event           target event
 | 
			
		||||
     * @param plugin          instance of mcMMO plugin
 | 
			
		||||
     * @param curInteractType the associated interaction type
 | 
			
		||||
     */
 | 
			
		||||
    public static void processEvent(Event event, mcMMO plugin, InteractType curInteractType)
 | 
			
		||||
    {
 | 
			
		||||
        for(Interaction interaction : interactRegister.get(curInteractType))
 | 
			
		||||
        {
 | 
			
		||||
    public static void processEvent(Event event, mcMMO plugin, InteractType curInteractType) {
 | 
			
		||||
        for (Interaction interaction : interactRegister.get(curInteractType)) {
 | 
			
		||||
            interaction.doInteraction(event, plugin);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -82,25 +81,24 @@ public class InteractionManager {
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns the list that contains all unique instances of registered Interaction classes
 | 
			
		||||
     * Interactions are extensions of abstract classes that represent modifying behaviours in Minecraft through events
 | 
			
		||||
     *
 | 
			
		||||
     * @return the unique collection of all registered Interaction classes
 | 
			
		||||
     */
 | 
			
		||||
    public static ArrayList<AbstractSubSkill> getSubSkillList()
 | 
			
		||||
    {
 | 
			
		||||
    public static ArrayList<AbstractSubSkill> getSubSkillList() {
 | 
			
		||||
        return subSkillList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean hasSubSkill(String name)
 | 
			
		||||
    {
 | 
			
		||||
    public static boolean hasSubSkill(String name) {
 | 
			
		||||
        return getAbstractByName(name) != null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean hasSubSkill(SubSkillType subSkillType)
 | 
			
		||||
    {
 | 
			
		||||
    public static boolean hasSubSkill(SubSkillType subSkillType) {
 | 
			
		||||
        return hasSubSkill(subSkillType.getNiceNameNoSpaces(subSkillType));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns the associative map which contains all registered interactions
 | 
			
		||||
     *
 | 
			
		||||
     * @return the interact register
 | 
			
		||||
     */
 | 
			
		||||
    public static HashMap<InteractType, ArrayList<Interaction>> getInteractRegister() {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,19 +2,19 @@ package com.gmail.nossr50.listeners;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.WorldBlacklist;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.player.PlayerUpdateInventoryTask;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeBrewEvent;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.player.PlayerUpdateInventoryTask;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.alchemy.Alchemy;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.alchemy.AlchemyPotionBrewer;
 | 
			
		||||
import com.gmail.nossr50.core.util.ItemUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillUtils;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardUtils;
 | 
			
		||||
import com.gmail.nossr50.events.fake.FakeBrewEvent;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.block.Block;
 | 
			
		||||
@@ -42,7 +42,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
 | 
			
		||||
    public void onInventoryOpen(InventoryOpenEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory());
 | 
			
		||||
@@ -57,14 +57,14 @@ public class InventoryListener implements Listener {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if(!furnaceBlock.hasMetadata(mcMMO.furnaceMetadataKey) && furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey).size() == 0)
 | 
			
		||||
        if (!furnaceBlock.hasMetadata(mcMMO.furnaceMetadataKey) && furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey).size() == 0)
 | 
			
		||||
            furnaceBlock.setMetadata(mcMMO.furnaceMetadataKey, UserManager.getPlayer((Player) player).getPlayerMetadata());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onInventoryClose(InventoryCloseEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory());
 | 
			
		||||
@@ -85,7 +85,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onFurnaceBurnEvent(FurnaceBurnEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Block furnaceBlock = event.getBlock();
 | 
			
		||||
@@ -99,9 +99,8 @@ public class InventoryListener implements Listener {
 | 
			
		||||
        Player player = getPlayerFromFurnace(furnaceBlock);
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -115,7 +114,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onFurnaceSmeltEvent(FurnaceSmeltEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Block furnaceBlock = event.getBlock();
 | 
			
		||||
@@ -128,9 +127,8 @@ public class InventoryListener implements Listener {
 | 
			
		||||
        Player player = getPlayerFromFurnace(furnaceBlock);
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -144,7 +142,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onFurnaceExtractEvent(FurnaceExtractEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Block furnaceBlock = event.getBlock();
 | 
			
		||||
@@ -156,9 +154,8 @@ public class InventoryListener implements Listener {
 | 
			
		||||
        Player player = getPlayerFromFurnace(furnaceBlock);
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -173,18 +170,16 @@ public class InventoryListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
 | 
			
		||||
    public void onInventoryClickEventNormal(InventoryClickEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Inventory inventory = event.getInventory();
 | 
			
		||||
 | 
			
		||||
        if(event.getWhoClicked() instanceof Player)
 | 
			
		||||
        {
 | 
			
		||||
        if (event.getWhoClicked() instanceof Player) {
 | 
			
		||||
            Player player = ((Player) event.getWhoClicked()).getPlayer();
 | 
			
		||||
            Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory());
 | 
			
		||||
 | 
			
		||||
            if (furnaceBlock != null)
 | 
			
		||||
            {
 | 
			
		||||
            if (furnaceBlock != null) {
 | 
			
		||||
                if (furnaceBlock.getMetadata(mcMMO.furnaceMetadataKey).size() > 0)
 | 
			
		||||
                    furnaceBlock.removeMetadata(mcMMO.furnaceMetadataKey, mcMMO.p);
 | 
			
		||||
 | 
			
		||||
@@ -211,9 +206,8 @@ public class InventoryListener implements Listener {
 | 
			
		||||
        Player player = (Player) whoClicked;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -251,8 +245,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
                default:
 | 
			
		||||
                    return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (slot == InventoryType.SlotType.FUEL) {
 | 
			
		||||
        } else if (slot == InventoryType.SlotType.FUEL) {
 | 
			
		||||
            boolean emptyClicked = AlchemyPotionBrewer.isEmpty(clicked);
 | 
			
		||||
 | 
			
		||||
            if (AlchemyPotionBrewer.isEmpty(cursor)) {
 | 
			
		||||
@@ -262,8 +255,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                AlchemyPotionBrewer.scheduleCheck(player, stand);
 | 
			
		||||
            }
 | 
			
		||||
            else if (emptyClicked) {
 | 
			
		||||
            } else if (emptyClicked) {
 | 
			
		||||
                if (AlchemyPotionBrewer.isValidIngredient(player, cursor)) {
 | 
			
		||||
                    int amount = cursor.getAmount();
 | 
			
		||||
 | 
			
		||||
@@ -274,8 +266,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
 | 
			
		||||
                        AlchemyPotionBrewer.scheduleUpdate(inventory);
 | 
			
		||||
                        AlchemyPotionBrewer.scheduleCheck(player, stand);
 | 
			
		||||
                    }
 | 
			
		||||
                    else if (click == ClickType.RIGHT) {
 | 
			
		||||
                    } else if (click == ClickType.RIGHT) {
 | 
			
		||||
                        event.setCancelled(true);
 | 
			
		||||
 | 
			
		||||
                        ItemStack one = cursor.clone();
 | 
			
		||||
@@ -298,7 +289,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
 | 
			
		||||
    public void onInventoryDragEvent(InventoryDragEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Inventory inventory = event.getInventory();
 | 
			
		||||
@@ -330,9 +321,8 @@ public class InventoryListener implements Listener {
 | 
			
		||||
            Player player = (Player) whoClicked;
 | 
			
		||||
 | 
			
		||||
            /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
            if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
            {
 | 
			
		||||
                if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
            if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
                if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                    return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -349,10 +339,9 @@ public class InventoryListener implements Listener {
 | 
			
		||||
 | 
			
		||||
    // Apparently sometimes vanilla brewing beats our task listener to the actual brew. We handle this by cancelling the vanilla event and finishing our brew ourselves.
 | 
			
		||||
    @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
 | 
			
		||||
    public void onBrew(BrewEvent event)
 | 
			
		||||
    {
 | 
			
		||||
    public void onBrew(BrewEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if (event instanceof FakeBrewEvent)
 | 
			
		||||
@@ -367,7 +356,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
 | 
			
		||||
    public void onInventoryMoveItemEvent(InventoryMoveItemEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getSource().getLocation().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getSource().getLocation().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Inventory inventory = event.getDestination();
 | 
			
		||||
@@ -415,7 +404,7 @@ public class InventoryListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onCraftItem(CraftItemEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        final HumanEntity whoClicked = event.getWhoClicked();
 | 
			
		||||
@@ -433,9 +422,8 @@ public class InventoryListener implements Listener {
 | 
			
		||||
        Player player = (Player) whoClicked;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,35 +1,35 @@
 | 
			
		||||
package com.gmail.nossr50.listeners;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
			
		||||
import com.gmail.nossr50.core.chat.ChatManager;
 | 
			
		||||
import com.gmail.nossr50.core.chat.ChatManagerFactory;
 | 
			
		||||
import com.gmail.nossr50.core.chat.PartyChatManager;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.WorldBlacklist;
 | 
			
		||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.chat.ChatMode;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.party.Party;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.core.util.*;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.party.ShareHandler;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.player.PlayerProfileLoadingTask;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.Salvage;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.SalvageManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.fishing.FishingManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.herbalism.HerbalismManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.mining.MiningManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.Repair;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.RepairManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.Salvage;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.SalvageManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.taming.TamingManager;
 | 
			
		||||
import com.gmail.nossr50.util.*;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.*;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.SkillUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.sounds.SoundManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.sounds.SoundType;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardUtils;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.util.*;
 | 
			
		||||
import org.bukkit.GameMode;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.block.Block;
 | 
			
		||||
@@ -63,15 +63,14 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerTeleport(PlayerTeleportEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Player player = event.getPlayer();
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -94,15 +93,14 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerDeathLowest(PlayerDeathEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        String deathMessage = event.getDeathMessage();
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(event.getEntity()))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(event.getEntity()))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -127,7 +125,7 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerDeathMonitor(PlayerDeathEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        boolean statLossEnabled = HardcoreManager.isStatLossEnabled();
 | 
			
		||||
@@ -146,9 +144,8 @@ public class PlayerListener implements Listener {
 | 
			
		||||
        Player killer = killedPlayer.getKiller();
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(killedPlayer))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(killedPlayer))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -202,13 +199,12 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerDropItem(PlayerDropItemEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -233,15 +229,14 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerFishHighest(PlayerFishEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Player player = event.getPlayer();
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -266,7 +261,7 @@ public class PlayerListener implements Listener {
 | 
			
		||||
 | 
			
		||||
                if (Permissions.vanillaXpBoost(player, PrimarySkillType.FISHING)) {
 | 
			
		||||
                    //Don't modify XP below vanilla values
 | 
			
		||||
                    if(fishingManager.handleVanillaXpBoost(event.getExpToDrop()) > 1)
 | 
			
		||||
                    if (fishingManager.handleVanillaXpBoost(event.getExpToDrop()) > 1)
 | 
			
		||||
                        event.setExpToDrop(fishingManager.handleVanillaXpBoost(event.getExpToDrop()));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
@@ -304,15 +299,14 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerFishMonitor(PlayerFishEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Player player = event.getPlayer();
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -334,7 +328,7 @@ public class PlayerListener implements Listener {
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            case CAUGHT_FISH:
 | 
			
		||||
                if(fishingManager.exploitPrevention(event.getHook().getBoundingBox()))
 | 
			
		||||
                if (fishingManager.exploitPrevention(event.getHook().getBoundingBox()))
 | 
			
		||||
                    return;
 | 
			
		||||
                fishingManager.handleFishing((Item) caught);
 | 
			
		||||
                fishingManager.setFishingTarget();
 | 
			
		||||
@@ -363,17 +357,15 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerPickupItem(EntityPickupItemEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if(event.getEntity() instanceof Player)
 | 
			
		||||
        {
 | 
			
		||||
        if (event.getEntity() instanceof Player) {
 | 
			
		||||
            Player player = (Player) event.getEntity();
 | 
			
		||||
 | 
			
		||||
            /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
            if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
            {
 | 
			
		||||
                if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
            if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
                if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                    return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -493,15 +485,14 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerInteractLowest(PlayerInteractEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Player player = event.getPlayer();
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -547,8 +538,7 @@ public class PlayerListener implements Listener {
 | 
			
		||||
                else if (miningManager.canDetonate()) {
 | 
			
		||||
                    if (type == Material.TNT) {
 | 
			
		||||
                        event.setCancelled(true); // Don't detonate the TNT if they're too close
 | 
			
		||||
                    }
 | 
			
		||||
                    else {
 | 
			
		||||
                    } else {
 | 
			
		||||
                        miningManager.remoteDetonation();
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
@@ -596,15 +586,14 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
    public void onPlayerInteractMonitor(PlayerInteractEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Player player = event.getPlayer();
 | 
			
		||||
 | 
			
		||||
        /* WORLD GUARD MAIN FLAG CHECK */
 | 
			
		||||
        if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
        {
 | 
			
		||||
            if(!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
        if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
            if (!WorldGuardManager.getInstance().hasMainFlag(player))
 | 
			
		||||
                return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -617,10 +606,10 @@ public class PlayerListener implements Listener {
 | 
			
		||||
 | 
			
		||||
        switch (event.getAction()) {
 | 
			
		||||
            case RIGHT_CLICK_BLOCK:
 | 
			
		||||
                if(player.getInventory().getItemInOffHand().getType() != Material.AIR && !player.isInsideVehicle() && !player.isSneaking()) {
 | 
			
		||||
                if (player.getInventory().getItemInOffHand().getType() != Material.AIR && !player.isInsideVehicle() && !player.isSneaking()) {
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                Block block = event.getClickedBlock();
 | 
			
		||||
                BlockState blockState = block.getState();
 | 
			
		||||
 | 
			
		||||
@@ -675,10 +664,10 @@ public class PlayerListener implements Listener {
 | 
			
		||||
                break;
 | 
			
		||||
 | 
			
		||||
            case RIGHT_CLICK_AIR:
 | 
			
		||||
                if(player.getInventory().getItemInOffHand().getType() != Material.AIR && !player.isInsideVehicle() && !player.isSneaking()) {
 | 
			
		||||
                if (player.getInventory().getItemInOffHand().getType() != Material.AIR && !player.isInsideVehicle() && !player.isSneaking()) {
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                /* ACTIVATION CHECKS */
 | 
			
		||||
                if (Config.getInstance().getAbilitiesEnabled()) {
 | 
			
		||||
                    mcMMOPlayer.processAbilityActivation(PrimarySkillType.AXES);
 | 
			
		||||
@@ -714,11 +703,9 @@ public class PlayerListener implements Listener {
 | 
			
		||||
 | 
			
		||||
                if (type == Config.getInstance().getTamingCOTWMaterial(EntityType.WOLF)) {
 | 
			
		||||
                    tamingManager.summonWolf();
 | 
			
		||||
                }
 | 
			
		||||
                else if (type == Config.getInstance().getTamingCOTWMaterial(EntityType.OCELOT)) {
 | 
			
		||||
                } else if (type == Config.getInstance().getTamingCOTWMaterial(EntityType.OCELOT)) {
 | 
			
		||||
                    tamingManager.summonOcelot();
 | 
			
		||||
                }
 | 
			
		||||
                else if (type == Config.getInstance().getTamingCOTWMaterial(EntityType.HORSE)) {
 | 
			
		||||
                } else if (type == Config.getInstance().getTamingCOTWMaterial(EntityType.HORSE)) {
 | 
			
		||||
                    tamingManager.summonHorse();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -763,8 +750,7 @@ public class PlayerListener implements Listener {
 | 
			
		||||
 | 
			
		||||
            chatManager = ChatManagerFactory.getChatManager(plugin, ChatMode.PARTY);
 | 
			
		||||
            ((PartyChatManager) chatManager).setParty(party);
 | 
			
		||||
        }
 | 
			
		||||
        else if (mcMMOPlayer.isChatEnabled(ChatMode.ADMIN)) {
 | 
			
		||||
        } else if (mcMMOPlayer.isChatEnabled(ChatMode.ADMIN)) {
 | 
			
		||||
            chatManager = ChatManagerFactory.getChatManager(plugin, ChatMode.ADMIN);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -806,7 +792,7 @@ public class PlayerListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if (!mcMMO.getHolidayManager().isAprilFirst()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,18 @@
 | 
			
		||||
package com.gmail.nossr50.listeners;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.Config;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.experience.XPGainReason;
 | 
			
		||||
import com.gmail.nossr50.core.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.util.scoreboards.ScoreboardManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardUtils;
 | 
			
		||||
import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent;
 | 
			
		||||
import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent;
 | 
			
		||||
import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityActivateEvent;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.scoreboards.ScoreboardManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardUtils;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.EventHandler;
 | 
			
		||||
import org.bukkit.event.EventPriority;
 | 
			
		||||
@@ -22,8 +22,7 @@ public class SelfListener implements Listener {
 | 
			
		||||
    //Used in task scheduling and other things
 | 
			
		||||
    private final mcMMO plugin;
 | 
			
		||||
 | 
			
		||||
    public SelfListener(mcMMO plugin)
 | 
			
		||||
    {
 | 
			
		||||
    public SelfListener(mcMMO plugin) {
 | 
			
		||||
        this.plugin = plugin;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -33,14 +32,13 @@ public class SelfListener implements Listener {
 | 
			
		||||
        PrimarySkillType skill = event.getSkill();
 | 
			
		||||
 | 
			
		||||
        //Players can gain multiple levels especially during xprate events
 | 
			
		||||
        for(int i = 0; i < event.getLevelsGained(); i++)
 | 
			
		||||
        {
 | 
			
		||||
        for (int i = 0; i < event.getLevelsGained(); i++) {
 | 
			
		||||
            int previousLevelGained = event.getSkillLevel() - i;
 | 
			
		||||
            //Send player skill unlock notifications
 | 
			
		||||
            UserManager.getPlayer(player).processUnlockNotifications(plugin, event.getSkill(), previousLevelGained);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if(Config.getInstance().getScoreboardsEnabled())
 | 
			
		||||
        if (Config.getInstance().getScoreboardsEnabled())
 | 
			
		||||
            ScoreboardManager.handleLevelUp(player, skill);
 | 
			
		||||
 | 
			
		||||
        if (!Config.getInstance().getLevelUpEffectsEnabled()) {
 | 
			
		||||
@@ -54,13 +52,13 @@ public class SelfListener implements Listener {
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerXp(McMMOPlayerXpGainEvent event) {
 | 
			
		||||
        if(Config.getInstance().getScoreboardsEnabled())
 | 
			
		||||
        if (Config.getInstance().getScoreboardsEnabled())
 | 
			
		||||
            ScoreboardManager.handleXp(event.getPlayer(), event.getSkill());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onAbility(McMMOPlayerAbilityActivateEvent event) {
 | 
			
		||||
        if(Config.getInstance().getScoreboardsEnabled())
 | 
			
		||||
        if (Config.getInstance().getScoreboardsEnabled())
 | 
			
		||||
            ScoreboardManager.cooldownUpdate(event.getPlayer(), event.getSkill());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -71,23 +69,19 @@ public class SelfListener implements Listener {
 | 
			
		||||
        PrimarySkillType primarySkillType = event.getSkill();
 | 
			
		||||
 | 
			
		||||
        //WorldGuard XP Check
 | 
			
		||||
        if(event.getXpGainReason() == XPGainReason.PVE ||
 | 
			
		||||
        if (event.getXpGainReason() == XPGainReason.PVE ||
 | 
			
		||||
                event.getXpGainReason() == XPGainReason.PVP ||
 | 
			
		||||
                event.getXpGainReason() == XPGainReason.SHARED_PVE ||
 | 
			
		||||
                event.getXpGainReason() == XPGainReason.SHARED_PVP)
 | 
			
		||||
        {
 | 
			
		||||
            if(WorldGuardUtils.isWorldGuardLoaded())
 | 
			
		||||
            {
 | 
			
		||||
                if(!WorldGuardManager.getInstance().hasXPFlag(player))
 | 
			
		||||
                {
 | 
			
		||||
                event.getXpGainReason() == XPGainReason.SHARED_PVP) {
 | 
			
		||||
            if (WorldGuardUtils.isWorldGuardLoaded()) {
 | 
			
		||||
                if (!WorldGuardManager.getInstance().hasXPFlag(player)) {
 | 
			
		||||
                    event.setRawXpGained(0);
 | 
			
		||||
                    event.setCancelled(true);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (event.getXpGainReason() == XPGainReason.COMMAND)
 | 
			
		||||
        {
 | 
			
		||||
        if (event.getXpGainReason() == XPGainReason.COMMAND) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -124,12 +118,10 @@ public class SelfListener implements Listener {
 | 
			
		||||
             * Make sure players get a guaranteed minimum of XP
 | 
			
		||||
             */
 | 
			
		||||
            //If there is no guaranteed minimum proceed, otherwise only proceed if newValue would be higher than our guaranteed minimum
 | 
			
		||||
            if(guaranteedMinimum <= 0 || newValue > guaranteedMinimum)
 | 
			
		||||
            {
 | 
			
		||||
            if (guaranteedMinimum <= 0 || newValue > guaranteedMinimum) {
 | 
			
		||||
                if (newValue > 0) {
 | 
			
		||||
                    event.setRawXpGained(newValue);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    event.setCancelled(true);
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package com.gmail.nossr50.listeners;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.WorldBlacklist;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.core.data.blockmeta.conversion.BlockStoreConversionMain;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.Chunk;
 | 
			
		||||
import org.bukkit.World;
 | 
			
		||||
import org.bukkit.block.BlockState;
 | 
			
		||||
@@ -31,7 +31,7 @@ public class WorldListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onStructureGrow(StructureGrowEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        if (!mcMMO.getPlaceStore().isTrue(event.getLocation().getBlock())) {
 | 
			
		||||
@@ -51,7 +51,7 @@ public class WorldListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onWorldInit(WorldInitEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        World world = event.getWorld();
 | 
			
		||||
@@ -73,7 +73,7 @@ public class WorldListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onWorldUnload(WorldUnloadEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        mcMMO.getPlaceStore().unloadWorld(event.getWorld());
 | 
			
		||||
@@ -87,7 +87,7 @@ public class WorldListener implements Listener {
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onChunkUnload(ChunkUnloadEvent event) {
 | 
			
		||||
        /* WORLD BLACKLIST CHECK */
 | 
			
		||||
        if(WorldBlacklist.isWorldBlacklisted(event.getWorld()))
 | 
			
		||||
        if (WorldBlacklist.isWorldBlacklisted(event.getWorld()))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        Chunk chunk = event.getChunk();
 | 
			
		||||
 
 | 
			
		||||
@@ -8,14 +8,13 @@ import com.gmail.nossr50.config.mods.ToolConfigManager;
 | 
			
		||||
import com.gmail.nossr50.config.skills.alchemy.PotionConfig;
 | 
			
		||||
import com.gmail.nossr50.config.skills.repair.RepairConfigManager;
 | 
			
		||||
import com.gmail.nossr50.config.skills.salvage.SalvageConfigManager;
 | 
			
		||||
import com.gmail.nossr50.core.config.treasure.TreasureConfig;
 | 
			
		||||
import com.gmail.nossr50.core.config.skills.*;
 | 
			
		||||
import com.gmail.nossr50.core.config.treasure.TreasureConfig;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.blockmeta.chunkmeta.ChunkManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.blockmeta.chunkmeta.ChunkManagerFactory;
 | 
			
		||||
import com.gmail.nossr50.core.data.database.DatabaseManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.database.DatabaseManagerFactory;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.subskills.acrobatics.Roll;
 | 
			
		||||
import com.gmail.nossr50.core.util.*;
 | 
			
		||||
import com.gmail.nossr50.listeners.*;
 | 
			
		||||
import com.gmail.nossr50.core.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.CheckDateTask;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.SaveTimerTask;
 | 
			
		||||
@@ -26,24 +25,25 @@ import com.gmail.nossr50.core.runnables.player.ClearRegisteredXPGainTask;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.player.PlayerProfileLoadingTask;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.player.PowerLevelUpdatingTask;
 | 
			
		||||
import com.gmail.nossr50.core.runnables.skills.BleedTimerTask;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.alchemy.Alchemy;
 | 
			
		||||
import com.gmail.nossr50.core.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.ChildConfig;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.Repairable;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.RepairableManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.SimpleRepairableManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.salvageables.Salvageable;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.salvageables.SalvageableManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.child.salvage.salvageables.SimpleSalvageableManager;
 | 
			
		||||
import com.gmail.nossr50.util.*;
 | 
			
		||||
import com.gmail.nossr50.core.data.blockmeta.chunkmeta.ChunkManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.blockmeta.chunkmeta.ChunkManagerFactory;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.alchemy.Alchemy;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.Repairable;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.RepairableManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.primary.repair.repairables.SimpleRepairableManager;
 | 
			
		||||
import com.gmail.nossr50.core.skills.subskills.acrobatics.Roll;
 | 
			
		||||
import com.gmail.nossr50.core.util.*;
 | 
			
		||||
import com.gmail.nossr50.core.util.commands.CommandRegistrationManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.experience.FormulaManager;
 | 
			
		||||
import com.gmail.nossr50.core.data.UserManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.scoreboards.ScoreboardManager;
 | 
			
		||||
import com.gmail.nossr50.core.util.skills.RankUtils;
 | 
			
		||||
import com.gmail.nossr50.core.util.upgrade.UpgradeManager;
 | 
			
		||||
import com.gmail.nossr50.core.worldguard.WorldGuardManager;
 | 
			
		||||
import com.gmail.nossr50.listeners.*;
 | 
			
		||||
import com.gmail.nossr50.util.*;
 | 
			
		||||
import com.google.common.base.Charsets;
 | 
			
		||||
import net.shatteredlands.shatt.backup.ZipLibrary;
 | 
			
		||||
import org.bstats.bukkit.Metrics;
 | 
			
		||||
@@ -61,6 +61,29 @@ import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public class mcMMO extends JavaPlugin {
 | 
			
		||||
    /* Metadata Values */
 | 
			
		||||
    public final static String entityMetadataKey = "mcMMO: Spawned Entity";
 | 
			
		||||
    public final static String blockMetadataKey = "mcMMO: Piston Tracking";
 | 
			
		||||
    public final static String furnaceMetadataKey = "mcMMO: Tracked Furnace";
 | 
			
		||||
    public final static String tntMetadataKey = "mcMMO: Tracked TNT";
 | 
			
		||||
    public final static String funfettiMetadataKey = "mcMMO: Funfetti";
 | 
			
		||||
    public final static String tntsafeMetadataKey = "mcMMO: Safe TNT";
 | 
			
		||||
    public final static String customNameKey = "mcMMO: Custom Name";
 | 
			
		||||
    public final static String customVisibleKey = "mcMMO: Name Visibility";
 | 
			
		||||
    public final static String droppedItemKey = "mcMMO: Tracked Item";
 | 
			
		||||
    public final static String infiniteArrowKey = "mcMMO: Infinite Arrow";
 | 
			
		||||
    public final static String bowForceKey = "mcMMO: Bow Force";
 | 
			
		||||
    public final static String arrowDistanceKey = "mcMMO: Arrow Distance";
 | 
			
		||||
    //public final static String customDamageKey     = "mcMMO: Custom Damage";
 | 
			
		||||
    public final static String disarmedItemKey = "mcMMO: Disarmed Item";
 | 
			
		||||
    public final static String playerDataKey = "mcMMO: Player Data";
 | 
			
		||||
    public final static String greenThumbDataKey = "mcMMO: Green Thumb";
 | 
			
		||||
    public final static String databaseCommandKey = "mcMMO: Processing Database Command";
 | 
			
		||||
    public final static String bredMetadataKey = "mcMMO: Bred Animal";
 | 
			
		||||
    public static mcMMO p;
 | 
			
		||||
    // Jar Stuff
 | 
			
		||||
    public static File mcmmo;
 | 
			
		||||
    public static FixedMetadataValue metadataValue;
 | 
			
		||||
    /* Managers */
 | 
			
		||||
    private static ChunkManager placeStore;
 | 
			
		||||
    private static RepairableManager repairableManager;
 | 
			
		||||
@@ -70,53 +93,92 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
    private static FormulaManager formulaManager;
 | 
			
		||||
    private static HolidayManager holidayManager;
 | 
			
		||||
    private static UpgradeManager upgradeManager;
 | 
			
		||||
 | 
			
		||||
    /* Blacklist */
 | 
			
		||||
    private static WorldBlacklist worldBlacklist;
 | 
			
		||||
 | 
			
		||||
    /* File Paths */
 | 
			
		||||
    private static String mainDirectory;
 | 
			
		||||
    private static String flatFileDirectory;
 | 
			
		||||
    private static String usersFile;
 | 
			
		||||
    private static String modDirectory;
 | 
			
		||||
 | 
			
		||||
    public static mcMMO p;
 | 
			
		||||
 | 
			
		||||
    // Jar Stuff
 | 
			
		||||
    public static File mcmmo;
 | 
			
		||||
 | 
			
		||||
    /* Plugin Checks */
 | 
			
		||||
    private static boolean healthBarPluginEnabled;
 | 
			
		||||
 | 
			
		||||
    private static boolean isRetroModeEnabled;
 | 
			
		||||
    // Config Validation Check
 | 
			
		||||
    public boolean noErrorsInConfigFiles = true;
 | 
			
		||||
 | 
			
		||||
    // XP Event Check
 | 
			
		||||
    private boolean xpEventEnabled;
 | 
			
		||||
 | 
			
		||||
    private static boolean isRetroModeEnabled;
 | 
			
		||||
    public static String getMainDirectory() {
 | 
			
		||||
        return mainDirectory;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* Metadata Values */
 | 
			
		||||
    public final static String entityMetadataKey   = "mcMMO: Spawned Entity";
 | 
			
		||||
    public final static String blockMetadataKey    = "mcMMO: Piston Tracking";
 | 
			
		||||
    public final static String furnaceMetadataKey  = "mcMMO: Tracked Furnace";
 | 
			
		||||
    public final static String tntMetadataKey      = "mcMMO: Tracked TNT";
 | 
			
		||||
    public final static String funfettiMetadataKey = "mcMMO: Funfetti";
 | 
			
		||||
    public final static String tntsafeMetadataKey  = "mcMMO: Safe TNT";
 | 
			
		||||
    public final static String customNameKey       = "mcMMO: Custom Name";
 | 
			
		||||
    public final static String customVisibleKey    = "mcMMO: Name Visibility";
 | 
			
		||||
    public final static String droppedItemKey      = "mcMMO: Tracked Item";
 | 
			
		||||
    public final static String infiniteArrowKey    = "mcMMO: Infinite Arrow";
 | 
			
		||||
    public final static String bowForceKey         = "mcMMO: Bow Force";
 | 
			
		||||
    public final static String arrowDistanceKey    = "mcMMO: Arrow Distance";
 | 
			
		||||
    //public final static String customDamageKey     = "mcMMO: Custom Damage";
 | 
			
		||||
    public final static String disarmedItemKey     = "mcMMO: Disarmed Item";
 | 
			
		||||
    public final static String playerDataKey       = "mcMMO: Player Data";
 | 
			
		||||
    public final static String greenThumbDataKey   = "mcMMO: Green Thumb";
 | 
			
		||||
    public final static String databaseCommandKey  = "mcMMO: Processing Database Command";
 | 
			
		||||
    public final static String bredMetadataKey     = "mcMMO: Bred Animal";
 | 
			
		||||
    public static String getFlatFileDirectory() {
 | 
			
		||||
        return flatFileDirectory;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static FixedMetadataValue metadataValue;
 | 
			
		||||
    public static String getUsersFilePath() {
 | 
			
		||||
        return usersFile;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getModDirectory() {
 | 
			
		||||
        return modDirectory;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static FormulaManager getFormulaManager() {
 | 
			
		||||
        return formulaManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HolidayManager getHolidayManager() {
 | 
			
		||||
        return holidayManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static ChunkManager getPlaceStore() {
 | 
			
		||||
        return placeStore;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static RepairableManager getRepairableManager() {
 | 
			
		||||
        return repairableManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static SalvageableManager getSalvageableManager() {
 | 
			
		||||
        return salvageableManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static DatabaseManager getDatabaseManager() {
 | 
			
		||||
        return databaseManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Deprecated
 | 
			
		||||
    public static void setDatabaseManager(DatabaseManager databaseManager) {
 | 
			
		||||
        mcMMO.databaseManager = databaseManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static ModManager getModManager() {
 | 
			
		||||
        return modManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static UpgradeManager getUpgradeManager() {
 | 
			
		||||
        return upgradeManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean isHealthBarPluginEnabled() {
 | 
			
		||||
        return healthBarPluginEnabled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Checks if this plugin is using retro mode
 | 
			
		||||
     * Retro mode is a 0-1000 skill system
 | 
			
		||||
     * Standard mode is scaled for 1-100
 | 
			
		||||
     *
 | 
			
		||||
     * @return true if retro mode is enabled
 | 
			
		||||
     */
 | 
			
		||||
    public static boolean isRetroModeEnabled() {
 | 
			
		||||
        return isRetroModeEnabled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static WorldBlacklist getWorldBlacklist() {
 | 
			
		||||
        return worldBlacklist;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Things to be run when the plugin is enabled.
 | 
			
		||||
@@ -192,23 +254,21 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
 | 
			
		||||
            Metrics metrics;
 | 
			
		||||
 | 
			
		||||
            if(Config.getInstance().getIsMetricsEnabled()) {
 | 
			
		||||
            if (Config.getInstance().getIsMetricsEnabled()) {
 | 
			
		||||
                metrics = new Metrics(this);
 | 
			
		||||
                metrics.addCustomChart(new Metrics.SimplePie("version", () -> getDescription().getVersion()));
 | 
			
		||||
 | 
			
		||||
                if(Config.getInstance().getIsRetroMode())
 | 
			
		||||
                if (Config.getInstance().getIsRetroMode())
 | 
			
		||||
                    metrics.addCustomChart(new Metrics.SimplePie("scaling", () -> "Standard"));
 | 
			
		||||
                else
 | 
			
		||||
                    metrics.addCustomChart(new Metrics.SimplePie("scaling", () -> "Retro"));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        catch (Throwable t) {
 | 
			
		||||
        } catch (Throwable t) {
 | 
			
		||||
            getLogger().severe("There was an error while enabling mcMMO!");
 | 
			
		||||
 | 
			
		||||
            if (!(t instanceof ExceptionInInitializerError)) {
 | 
			
		||||
                t.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
            } else {
 | 
			
		||||
                getLogger().info("Please do not replace the mcMMO jar while the server is running.");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -220,9 +280,8 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onLoad()
 | 
			
		||||
    {
 | 
			
		||||
        if(getServer().getPluginManager().getPlugin("WorldGuard") != null)
 | 
			
		||||
    public void onLoad() {
 | 
			
		||||
        if (getServer().getPluginManager().getPlugin("WorldGuard") != null)
 | 
			
		||||
            WorldGuardManager.getInstance().registerFlags();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -238,15 +297,16 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
            PartyManager.saveParties(); // Save our parties
 | 
			
		||||
 | 
			
		||||
            //TODO: Needed?
 | 
			
		||||
            if(Config.getInstance().getScoreboardsEnabled())
 | 
			
		||||
            if (Config.getInstance().getScoreboardsEnabled())
 | 
			
		||||
                ScoreboardManager.teardownAll();
 | 
			
		||||
 | 
			
		||||
            formulaManager.saveFormula();
 | 
			
		||||
            holidayManager.saveAnniversaryFiles();
 | 
			
		||||
            placeStore.saveAll();       // Save our metadata
 | 
			
		||||
            placeStore.cleanUp();       // Cleanup empty metadata stores
 | 
			
		||||
        } catch (NullPointerException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
        catch (NullPointerException e) { e.printStackTrace(); }
 | 
			
		||||
 | 
			
		||||
        debug("Canceling all tasks...");
 | 
			
		||||
        getServer().getScheduler().cancelTasks(this); // This removes our tasks
 | 
			
		||||
@@ -257,16 +317,13 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
            // Remove other tasks BEFORE starting the Backup, or we just cancel it straight away.
 | 
			
		||||
            try {
 | 
			
		||||
                ZipLibrary.mcMMOBackup();
 | 
			
		||||
            }
 | 
			
		||||
            catch (IOException e) {
 | 
			
		||||
            } catch (IOException e) {
 | 
			
		||||
                getLogger().severe(e.toString());
 | 
			
		||||
            }
 | 
			
		||||
            catch (Throwable e) {
 | 
			
		||||
            } catch (Throwable e) {
 | 
			
		||||
                if (e instanceof NoClassDefFoundError) {
 | 
			
		||||
                    getLogger().severe("Backup class not found!");
 | 
			
		||||
                    getLogger().info("Please do not replace the mcMMO jar while the server is running.");
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                } else {
 | 
			
		||||
                    getLogger().severe(e.toString());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
@@ -276,22 +333,6 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
        debug("Was disabled."); // How informative!
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getMainDirectory() {
 | 
			
		||||
        return mainDirectory;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getFlatFileDirectory() {
 | 
			
		||||
        return flatFileDirectory;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getUsersFilePath() {
 | 
			
		||||
        return usersFile;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getModDirectory() {
 | 
			
		||||
        return modDirectory;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean isXPEventEnabled() {
 | 
			
		||||
        return xpEventEnabled;
 | 
			
		||||
    }
 | 
			
		||||
@@ -308,47 +349,6 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
        getLogger().info("[Debug] " + message);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static FormulaManager getFormulaManager() {
 | 
			
		||||
        return formulaManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static HolidayManager getHolidayManager() {
 | 
			
		||||
        return holidayManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static ChunkManager getPlaceStore() {
 | 
			
		||||
        return placeStore;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static RepairableManager getRepairableManager() {
 | 
			
		||||
        return repairableManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static SalvageableManager getSalvageableManager() {
 | 
			
		||||
        return salvageableManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static DatabaseManager getDatabaseManager() {
 | 
			
		||||
        return databaseManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static ModManager getModManager() {
 | 
			
		||||
        return modManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static UpgradeManager getUpgradeManager() {
 | 
			
		||||
        return upgradeManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Deprecated
 | 
			
		||||
    public static void setDatabaseManager(DatabaseManager databaseManager) {
 | 
			
		||||
        mcMMO.databaseManager = databaseManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean isHealthBarPluginEnabled() {
 | 
			
		||||
        return healthBarPluginEnabled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Setup the various storage file paths
 | 
			
		||||
     */
 | 
			
		||||
@@ -377,10 +377,10 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        File oldArmorFile    = new File(modDirectory + "armor.yml");
 | 
			
		||||
        File oldBlocksFile   = new File(modDirectory + "blocks.yml");
 | 
			
		||||
        File oldArmorFile = new File(modDirectory + "armor.yml");
 | 
			
		||||
        File oldBlocksFile = new File(modDirectory + "blocks.yml");
 | 
			
		||||
        File oldEntitiesFile = new File(modDirectory + "entities.yml");
 | 
			
		||||
        File oldToolsFile    = new File(modDirectory + "tools.yml");
 | 
			
		||||
        File oldToolsFile = new File(modDirectory + "tools.yml");
 | 
			
		||||
 | 
			
		||||
        if (oldArmorFile.exists()) {
 | 
			
		||||
            if (!oldArmorFile.renameTo(new File(modDirectory + "armor.default.yml"))) {
 | 
			
		||||
@@ -475,8 +475,7 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
         * Acrobatics skills
 | 
			
		||||
         */
 | 
			
		||||
 | 
			
		||||
        if(CoreSkillsConfig.getInstance().isPrimarySkillEnabled(PrimarySkillType.ACROBATICS))
 | 
			
		||||
        {
 | 
			
		||||
        if (CoreSkillsConfig.getInstance().isPrimarySkillEnabled(PrimarySkillType.ACROBATICS)) {
 | 
			
		||||
            System.out.println("[mcMMO]" + " enabling Acrobatics Skills");
 | 
			
		||||
 | 
			
		||||
            //TODO: Should do this differently
 | 
			
		||||
@@ -510,8 +509,7 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
 | 
			
		||||
        if (purgeIntervalTicks == 0) {
 | 
			
		||||
            new UserPurgeTask().runTaskLaterAsynchronously(this, 2 * Misc.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup.
 | 
			
		||||
        }
 | 
			
		||||
        else if (purgeIntervalTicks > 0) {
 | 
			
		||||
        } else if (purgeIntervalTicks > 0) {
 | 
			
		||||
            new UserPurgeTask().runTaskTimerAsynchronously(this, purgeIntervalTicks, purgeIntervalTicks);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -520,8 +518,7 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
 | 
			
		||||
        if (kickIntervalTicks == 0) {
 | 
			
		||||
            new PartyAutoKickTask().runTaskLater(this, 2 * Misc.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup.
 | 
			
		||||
        }
 | 
			
		||||
        else if (kickIntervalTicks > 0) {
 | 
			
		||||
        } else if (kickIntervalTicks > 0) {
 | 
			
		||||
            new PartyAutoKickTask().runTaskTimer(this, kickIntervalTicks, kickIntervalTicks);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -564,18 +561,4 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
        InputStream in = getResource(fileName);
 | 
			
		||||
        return in == null ? null : new InputStreamReader(in, Charsets.UTF_8);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Checks if this plugin is using retro mode
 | 
			
		||||
     * Retro mode is a 0-1000 skill system
 | 
			
		||||
     * Standard mode is scaled for 1-100
 | 
			
		||||
     * @return true if retro mode is enabled
 | 
			
		||||
     */
 | 
			
		||||
    public static boolean isRetroModeEnabled() {
 | 
			
		||||
        return isRetroModeEnabled;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static WorldBlacklist getWorldBlacklist() {
 | 
			
		||||
        return worldBlacklist;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -14,114 +14,6 @@ import java.util.Map.Entry;
 | 
			
		||||
 | 
			
		||||
public class PotionConfigGenerator {
 | 
			
		||||
 | 
			
		||||
    public static class Ingredient {
 | 
			
		||||
 | 
			
		||||
        public Material mat;
 | 
			
		||||
        public int      data;
 | 
			
		||||
        public String   name;
 | 
			
		||||
 | 
			
		||||
        public Ingredient(Material mat) {
 | 
			
		||||
            this.mat = mat;
 | 
			
		||||
            this.data = 0;
 | 
			
		||||
            name = mat.name();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    public static class WriteablePotion {
 | 
			
		||||
 | 
			
		||||
        public String       name;
 | 
			
		||||
        public Material     mat;
 | 
			
		||||
        public PotionData   data;
 | 
			
		||||
        public PotionEffect effect;
 | 
			
		||||
        public String       baseName;
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(PotionData data) {
 | 
			
		||||
            this(Material.POTION, data);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(Material type, PotionData data) {
 | 
			
		||||
            this(type, data, null, getMCName(data.getType()));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(Material mat, PotionType type, PotionEffect effect, String baseName) {
 | 
			
		||||
            this(mat, new PotionData(type, false, false), effect, baseName);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(Material type, PotionData data, PotionEffect effect, String baseName) {
 | 
			
		||||
            this.data = data;
 | 
			
		||||
            this.effect = effect;
 | 
			
		||||
            this.mat = type;
 | 
			
		||||
            this.baseName = baseName;
 | 
			
		||||
            this.name = "POTION_OF_" + baseName;
 | 
			
		||||
            if (mat == Material.SPLASH_POTION) {
 | 
			
		||||
                this.name = "SPLASH_" + this.name;
 | 
			
		||||
            }
 | 
			
		||||
            if (mat == Material.LINGERING_POTION) {
 | 
			
		||||
                this.name = "LINGERING_" + this.name;
 | 
			
		||||
            }
 | 
			
		||||
            if (data.isExtended()) {
 | 
			
		||||
                this.name += "_EXTENDED";
 | 
			
		||||
            }
 | 
			
		||||
            if (data.isUpgraded()) {
 | 
			
		||||
                this.name += "_II";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(PotionType type) {
 | 
			
		||||
            this(new PotionData(type, false, false));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(Material mat, PotionType type) {
 | 
			
		||||
            this(mat, new PotionData(type, false, false));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static String getMCName(PotionType type) {
 | 
			
		||||
            switch (type) {
 | 
			
		||||
                case INSTANT_DAMAGE :
 | 
			
		||||
                    return "HARMING";
 | 
			
		||||
                case INSTANT_HEAL :
 | 
			
		||||
                    return "HEALING";
 | 
			
		||||
                case JUMP :
 | 
			
		||||
                    return "LEAPING";
 | 
			
		||||
                case REGEN :
 | 
			
		||||
                    return "REGENERATION";
 | 
			
		||||
                case SPEED :
 | 
			
		||||
                    return "SWIFTNESS";
 | 
			
		||||
                case UNCRAFTABLE :
 | 
			
		||||
                    return "EMPTY";
 | 
			
		||||
                case LUCK :
 | 
			
		||||
                case MUNDANE :
 | 
			
		||||
                case NIGHT_VISION :
 | 
			
		||||
                case POISON :
 | 
			
		||||
                case INVISIBILITY :
 | 
			
		||||
                case SLOWNESS :
 | 
			
		||||
                case AWKWARD :
 | 
			
		||||
                case STRENGTH :
 | 
			
		||||
                case THICK :
 | 
			
		||||
                case FIRE_RESISTANCE :
 | 
			
		||||
                case WATER :
 | 
			
		||||
                case WATER_BREATHING :
 | 
			
		||||
                case WEAKNESS :
 | 
			
		||||
                case TURTLE_MASTER:
 | 
			
		||||
                case SLOW_FALLING:
 | 
			
		||||
                    return type.name();
 | 
			
		||||
                default :
 | 
			
		||||
                    return "";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public int hashCode() {
 | 
			
		||||
            return name.hashCode();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public boolean equals(Object obj) {
 | 
			
		||||
            if (!(obj instanceof WriteablePotion)) {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            return name.equals(((WriteablePotion) obj).name);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        Map<WriteablePotion, Map<Ingredient, WriteablePotion>> vanillaPotions = new HashMap<>();
 | 
			
		||||
        populateVanillaPotions(vanillaPotions);
 | 
			
		||||
@@ -250,59 +142,59 @@ public class PotionConfigGenerator {
 | 
			
		||||
 | 
			
		||||
    private static String getName(PotionEffectType type) {
 | 
			
		||||
        switch (type.getId()) {
 | 
			
		||||
            case 1 :
 | 
			
		||||
            case 1:
 | 
			
		||||
                return "SPEED";
 | 
			
		||||
            case 2 :
 | 
			
		||||
            case 2:
 | 
			
		||||
                return "SLOW";
 | 
			
		||||
            case 3 :
 | 
			
		||||
            case 3:
 | 
			
		||||
                return "FAST_DIGGING";
 | 
			
		||||
            case 4 :
 | 
			
		||||
            case 4:
 | 
			
		||||
                return "SLOW_DIGGING";
 | 
			
		||||
            case 5 :
 | 
			
		||||
            case 5:
 | 
			
		||||
                return "INCREASE_DAMAGE";
 | 
			
		||||
            case 6 :
 | 
			
		||||
            case 6:
 | 
			
		||||
                return "HEAL";
 | 
			
		||||
            case 7 :
 | 
			
		||||
            case 7:
 | 
			
		||||
                return "HARM";
 | 
			
		||||
            case 8 :
 | 
			
		||||
            case 8:
 | 
			
		||||
                return "JUMP";
 | 
			
		||||
            case 9 :
 | 
			
		||||
            case 9:
 | 
			
		||||
                return "CONFUSION";
 | 
			
		||||
            case 10 :
 | 
			
		||||
            case 10:
 | 
			
		||||
                return "REGENERATION";
 | 
			
		||||
            case 11 :
 | 
			
		||||
            case 11:
 | 
			
		||||
                return "DAMAGE_RESISTANCE";
 | 
			
		||||
            case 12 :
 | 
			
		||||
            case 12:
 | 
			
		||||
                return "FIRE_RESISTANCE";
 | 
			
		||||
            case 13 :
 | 
			
		||||
            case 13:
 | 
			
		||||
                return "WATER_BREATHING";
 | 
			
		||||
            case 14 :
 | 
			
		||||
            case 14:
 | 
			
		||||
                return "INVISIBILITY";
 | 
			
		||||
            case 15 :
 | 
			
		||||
            case 15:
 | 
			
		||||
                return "BLINDNESS";
 | 
			
		||||
            case 16 :
 | 
			
		||||
            case 16:
 | 
			
		||||
                return "NIGHT_VISION";
 | 
			
		||||
            case 17 :
 | 
			
		||||
            case 17:
 | 
			
		||||
                return "HUNGER";
 | 
			
		||||
            case 18 :
 | 
			
		||||
            case 18:
 | 
			
		||||
                return "WEAKNESS";
 | 
			
		||||
            case 19 :
 | 
			
		||||
            case 19:
 | 
			
		||||
                return "POISON";
 | 
			
		||||
            case 20 :
 | 
			
		||||
            case 20:
 | 
			
		||||
                return "WITHER";
 | 
			
		||||
            case 21 :
 | 
			
		||||
            case 21:
 | 
			
		||||
                return "HEALTH_BOOST";
 | 
			
		||||
            case 22 :
 | 
			
		||||
            case 22:
 | 
			
		||||
                return "ABSORPTION";
 | 
			
		||||
            case 23 :
 | 
			
		||||
            case 23:
 | 
			
		||||
                return "SATURATION";
 | 
			
		||||
            case 24 :
 | 
			
		||||
            case 24:
 | 
			
		||||
                return "GLOWING";
 | 
			
		||||
            case 25 :
 | 
			
		||||
            case 25:
 | 
			
		||||
                return "LEVITATION";
 | 
			
		||||
            case 26 :
 | 
			
		||||
            case 26:
 | 
			
		||||
                return "LUCK";
 | 
			
		||||
            case 27 :
 | 
			
		||||
            case 27:
 | 
			
		||||
                return "UNLUCK";
 | 
			
		||||
            case 28:
 | 
			
		||||
                return "SLOW_FALLING";
 | 
			
		||||
@@ -310,7 +202,7 @@ public class PotionConfigGenerator {
 | 
			
		||||
                return "CONDUIT_POWER";
 | 
			
		||||
            case 30:
 | 
			
		||||
                return "DOLPHINS_GRACE";
 | 
			
		||||
            default :
 | 
			
		||||
            default:
 | 
			
		||||
                return "UNKNOWN_EFFECT_TYPE_" + type.getId();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -348,9 +240,9 @@ public class PotionConfigGenerator {
 | 
			
		||||
 | 
			
		||||
    private static void getChildren(WriteablePotion current, HashMap<Ingredient, WriteablePotion> children) {
 | 
			
		||||
        switch (current.data.getType()) {
 | 
			
		||||
            case WATER :
 | 
			
		||||
                assert(!current.data.isExtended());
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case WATER:
 | 
			
		||||
                assert (!current.data.isExtended());
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                children.put(new Ingredient(Material.NETHER_WART), new WriteablePotion(current.mat, PotionType.AWKWARD));
 | 
			
		||||
                children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.WEAKNESS));
 | 
			
		||||
                children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, PotionType.MUNDANE));
 | 
			
		||||
@@ -363,9 +255,9 @@ public class PotionConfigGenerator {
 | 
			
		||||
                children.put(new Ingredient(Material.GLISTERING_MELON_SLICE), new WriteablePotion(current.mat, PotionType.MUNDANE));
 | 
			
		||||
                children.put(new Ingredient(Material.GHAST_TEAR), new WriteablePotion(current.mat, PotionType.MUNDANE));
 | 
			
		||||
                return;
 | 
			
		||||
            case AWKWARD :
 | 
			
		||||
                assert(!current.data.isExtended());
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case AWKWARD:
 | 
			
		||||
                assert (!current.data.isExtended());
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                children.put(new Ingredient(Material.GOLDEN_CARROT), new WriteablePotion(current.mat, PotionType.NIGHT_VISION));
 | 
			
		||||
                children.put(new Ingredient(Material.RABBIT_FOOT), new WriteablePotion(current.mat, PotionType.JUMP));
 | 
			
		||||
                children.put(new Ingredient(Material.MAGMA_CREAM), new WriteablePotion(current.mat, PotionType.FIRE_RESISTANCE));
 | 
			
		||||
@@ -396,8 +288,8 @@ public class PotionConfigGenerator {
 | 
			
		||||
                children.put(new Ingredient(Material.FERN), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.SATURATION, (int) (8 * mod), 0), "SATURATION"));
 | 
			
		||||
                children.put(new Ingredient(Material.APPLE), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.HEALTH_BOOST, (int) (1800 * mod), 0), "HEALTH_BOOST"));
 | 
			
		||||
                return;
 | 
			
		||||
            case FIRE_RESISTANCE :
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case FIRE_RESISTANCE:
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                if (current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.SLOWNESS, true, false)));
 | 
			
		||||
                } else {
 | 
			
		||||
@@ -405,14 +297,14 @@ public class PotionConfigGenerator {
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case INSTANT_DAMAGE :
 | 
			
		||||
                assert(!current.data.isExtended());
 | 
			
		||||
            case INSTANT_DAMAGE:
 | 
			
		||||
                assert (!current.data.isExtended());
 | 
			
		||||
                if (!current.data.isUpgraded()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case INSTANT_HEAL :
 | 
			
		||||
                assert(!current.data.isExtended());
 | 
			
		||||
            case INSTANT_HEAL:
 | 
			
		||||
                assert (!current.data.isExtended());
 | 
			
		||||
                if (!current.data.isUpgraded()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INSTANT_DAMAGE));
 | 
			
		||||
                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
 | 
			
		||||
@@ -420,21 +312,21 @@ public class PotionConfigGenerator {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.INSTANT_DAMAGE, false, true)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case INVISIBILITY :
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case INVISIBILITY:
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                if (!current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case JUMP :
 | 
			
		||||
            case JUMP:
 | 
			
		||||
                if (!current.data.isUpgraded() && !current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.SLOWNESS));
 | 
			
		||||
                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case NIGHT_VISION :
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case NIGHT_VISION:
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                if (!current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INVISIBILITY));
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
@@ -442,7 +334,7 @@ public class PotionConfigGenerator {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.INVISIBILITY, true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case POISON :
 | 
			
		||||
            case POISON:
 | 
			
		||||
                if (!current.data.isUpgraded() && !current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INSTANT_DAMAGE));
 | 
			
		||||
                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
 | 
			
		||||
@@ -451,25 +343,25 @@ public class PotionConfigGenerator {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.INSTANT_DAMAGE, false, true)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case REGEN :
 | 
			
		||||
            case REGEN:
 | 
			
		||||
                if (!current.data.isUpgraded() && !current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case SLOWNESS :
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case SLOWNESS:
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                if (!current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case SLOW_FALLING :
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case SLOW_FALLING:
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                if (!current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case SPEED :
 | 
			
		||||
            case SPEED:
 | 
			
		||||
                if (!current.data.isUpgraded() && !current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.SLOWNESS));
 | 
			
		||||
                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
 | 
			
		||||
@@ -478,7 +370,7 @@ public class PotionConfigGenerator {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.SLOWNESS, true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case STRENGTH :
 | 
			
		||||
            case STRENGTH:
 | 
			
		||||
                if (!current.data.isUpgraded() && !current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
@@ -490,28 +382,28 @@ public class PotionConfigGenerator {
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case WATER_BREATHING :
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case WATER_BREATHING:
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                if (!current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INSTANT_DAMAGE));
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case WEAKNESS :
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case WEAKNESS:
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                if (!current.data.isExtended()) {
 | 
			
		||||
                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
 | 
			
		||||
                }
 | 
			
		||||
                return;
 | 
			
		||||
            case LUCK :
 | 
			
		||||
            case MUNDANE :
 | 
			
		||||
            case THICK :
 | 
			
		||||
            case UNCRAFTABLE :
 | 
			
		||||
                assert(!current.data.isExtended());
 | 
			
		||||
                assert(!current.data.isUpgraded());
 | 
			
		||||
            case LUCK:
 | 
			
		||||
            case MUNDANE:
 | 
			
		||||
            case THICK:
 | 
			
		||||
            case UNCRAFTABLE:
 | 
			
		||||
                assert (!current.data.isExtended());
 | 
			
		||||
                assert (!current.data.isUpgraded());
 | 
			
		||||
                return;
 | 
			
		||||
            default :
 | 
			
		||||
                assert(false);
 | 
			
		||||
            default:
 | 
			
		||||
                assert (false);
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -608,7 +500,7 @@ public class PotionConfigGenerator {
 | 
			
		||||
            }
 | 
			
		||||
            mcMMOPotions.put(data, children);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // Add all material state changes
 | 
			
		||||
        for (Entry<WriteablePotion, Map<Ingredient, WriteablePotion>> entry : mcMMOPotions.entrySet()) {
 | 
			
		||||
            if (entry.getKey().mat == Material.POTION) {
 | 
			
		||||
@@ -620,4 +512,113 @@ public class PotionConfigGenerator {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static class Ingredient {
 | 
			
		||||
 | 
			
		||||
        public Material mat;
 | 
			
		||||
        public int data;
 | 
			
		||||
        public String name;
 | 
			
		||||
 | 
			
		||||
        public Ingredient(Material mat) {
 | 
			
		||||
            this.mat = mat;
 | 
			
		||||
            this.data = 0;
 | 
			
		||||
            name = mat.name();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static class WriteablePotion {
 | 
			
		||||
 | 
			
		||||
        public String name;
 | 
			
		||||
        public Material mat;
 | 
			
		||||
        public PotionData data;
 | 
			
		||||
        public PotionEffect effect;
 | 
			
		||||
        public String baseName;
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(PotionData data) {
 | 
			
		||||
            this(Material.POTION, data);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(Material type, PotionData data) {
 | 
			
		||||
            this(type, data, null, getMCName(data.getType()));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(Material mat, PotionType type, PotionEffect effect, String baseName) {
 | 
			
		||||
            this(mat, new PotionData(type, false, false), effect, baseName);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(Material type, PotionData data, PotionEffect effect, String baseName) {
 | 
			
		||||
            this.data = data;
 | 
			
		||||
            this.effect = effect;
 | 
			
		||||
            this.mat = type;
 | 
			
		||||
            this.baseName = baseName;
 | 
			
		||||
            this.name = "POTION_OF_" + baseName;
 | 
			
		||||
            if (mat == Material.SPLASH_POTION) {
 | 
			
		||||
                this.name = "SPLASH_" + this.name;
 | 
			
		||||
            }
 | 
			
		||||
            if (mat == Material.LINGERING_POTION) {
 | 
			
		||||
                this.name = "LINGERING_" + this.name;
 | 
			
		||||
            }
 | 
			
		||||
            if (data.isExtended()) {
 | 
			
		||||
                this.name += "_EXTENDED";
 | 
			
		||||
            }
 | 
			
		||||
            if (data.isUpgraded()) {
 | 
			
		||||
                this.name += "_II";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(PotionType type) {
 | 
			
		||||
            this(new PotionData(type, false, false));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public WriteablePotion(Material mat, PotionType type) {
 | 
			
		||||
            this(mat, new PotionData(type, false, false));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static String getMCName(PotionType type) {
 | 
			
		||||
            switch (type) {
 | 
			
		||||
                case INSTANT_DAMAGE:
 | 
			
		||||
                    return "HARMING";
 | 
			
		||||
                case INSTANT_HEAL:
 | 
			
		||||
                    return "HEALING";
 | 
			
		||||
                case JUMP:
 | 
			
		||||
                    return "LEAPING";
 | 
			
		||||
                case REGEN:
 | 
			
		||||
                    return "REGENERATION";
 | 
			
		||||
                case SPEED:
 | 
			
		||||
                    return "SWIFTNESS";
 | 
			
		||||
                case UNCRAFTABLE:
 | 
			
		||||
                    return "EMPTY";
 | 
			
		||||
                case LUCK:
 | 
			
		||||
                case MUNDANE:
 | 
			
		||||
                case NIGHT_VISION:
 | 
			
		||||
                case POISON:
 | 
			
		||||
                case INVISIBILITY:
 | 
			
		||||
                case SLOWNESS:
 | 
			
		||||
                case AWKWARD:
 | 
			
		||||
                case STRENGTH:
 | 
			
		||||
                case THICK:
 | 
			
		||||
                case FIRE_RESISTANCE:
 | 
			
		||||
                case WATER:
 | 
			
		||||
                case WATER_BREATHING:
 | 
			
		||||
                case WEAKNESS:
 | 
			
		||||
                case TURTLE_MASTER:
 | 
			
		||||
                case SLOW_FALLING:
 | 
			
		||||
                    return type.name();
 | 
			
		||||
                default:
 | 
			
		||||
                    return "";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public int hashCode() {
 | 
			
		||||
            return name.hashCode();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public boolean equals(Object obj) {
 | 
			
		||||
            if (!(obj instanceof WriteablePotion)) {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            return name.equals(((WriteablePotion) obj).name);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
#
 | 
			
		||||
#####
 | 
			
		||||
Salvage:
 | 
			
		||||
    - Fishing
 | 
			
		||||
    - Repair
 | 
			
		||||
- Fishing
 | 
			
		||||
- Repair
 | 
			
		||||
Smelting:
 | 
			
		||||
    - Mining
 | 
			
		||||
    - Repair
 | 
			
		||||
- Mining
 | 
			
		||||
- Repair
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user