|
@@ -11,12 +11,13 @@ import java.util.jar.JarFile;
|
|
|
|
|
|
import org.bukkit.Material;
|
|
|
import org.bukkit.entity.Player;
|
|
|
+import org.bukkit.plugin.PluginManager;
|
|
|
import org.getspout.spoutapi.SpoutManager;
|
|
|
import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent;
|
|
|
import org.getspout.spoutapi.player.SpoutPlayer;
|
|
|
|
|
|
import com.gmail.nossr50.mcMMO;
|
|
|
-import com.gmail.nossr50.config.AdvancedConfig;
|
|
|
+import com.gmail.nossr50.config.spout.SpoutConfig;
|
|
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
|
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
|
|
import com.gmail.nossr50.locale.LocaleLoader;
|
|
@@ -25,11 +26,90 @@ import com.gmail.nossr50.util.player.UserManager;
|
|
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
|
|
|
|
|
public class SpoutUtils {
|
|
|
- public final static String spoutDirectory = mcMMO.getMainDirectory() + "Resources" + File.separator;
|
|
|
- public final static String hudDirectory = spoutDirectory + "HUD" + File.separator;
|
|
|
- public final static String hudStandardDirectory = hudDirectory + "Standard" + File.separator;
|
|
|
- public final static String hudRetroDirectory = hudDirectory + "Retro" + File.separator;
|
|
|
- public final static String soundDirectory = spoutDirectory + "Sound" + File.separator;
|
|
|
+ // The order of the values is extremely important, a few methods depend on it to work properly
|
|
|
+ protected enum Tier {
|
|
|
+ FOUR(4) {
|
|
|
+ @Override public int getLevel() { return SpoutConfig.getInstance().getNotificationTier4(); }
|
|
|
+ @Override protected Material getAcrobaticsNotificationItem() { return Material.DIAMOND_BOOTS; }
|
|
|
+ @Override protected Material getArcheryNotificationItem() { return Material.BOW; }
|
|
|
+ @Override protected Material getAxesNotificationItem() { return Material.DIAMOND_AXE; }
|
|
|
+ @Override protected Material getExcavationNotificationItem() { return Material.CLAY; }
|
|
|
+ @Override protected Material getFishingNotificationItem() { return Material.FISHING_ROD; }
|
|
|
+ @Override protected Material getHerbalismNotificationItem() { return Material.WATER_LILY; }
|
|
|
+ @Override protected Material getMiningNotificationItem() { return Material.EMERALD_ORE; }
|
|
|
+ @Override protected Material getSwordsNotificationItem() { return Material.DIAMOND_SWORD; }
|
|
|
+ @Override protected Material getTamingNotificationItem() { return Material.BONE; }
|
|
|
+ @Override protected Material getUnarmedNotificationItem() { return Material.DIAMOND_HELMET; }
|
|
|
+ @Override protected Material getWoodcuttingNotificationItem() { return Material.LOG; }},
|
|
|
+ THREE(3) {
|
|
|
+ @Override public int getLevel() { return SpoutConfig.getInstance().getNotificationTier3(); }
|
|
|
+ @Override protected Material getAcrobaticsNotificationItem() { return Material.GOLD_BOOTS; }
|
|
|
+ @Override protected Material getArcheryNotificationItem() { return Material.ARROW; }
|
|
|
+ @Override protected Material getAxesNotificationItem() { return Material.GOLD_AXE; }
|
|
|
+ @Override protected Material getExcavationNotificationItem() { return Material.SAND; }
|
|
|
+ @Override protected Material getFishingNotificationItem() { return Material.COOKED_FISH; }
|
|
|
+ @Override protected Material getHerbalismNotificationItem() { return Material.RED_ROSE; }
|
|
|
+ @Override protected Material getMiningNotificationItem() { return Material.DIAMOND_ORE; }
|
|
|
+ @Override protected Material getSwordsNotificationItem() { return Material.GOLD_SWORD; }
|
|
|
+ @Override protected Material getTamingNotificationItem() { return Material.GRILLED_PORK; }
|
|
|
+ @Override protected Material getUnarmedNotificationItem() { return Material.GOLD_HELMET; }
|
|
|
+ @Override protected Material getWoodcuttingNotificationItem() { return Material.WOOD; }},
|
|
|
+ TWO(2) {
|
|
|
+ @Override public int getLevel() { return SpoutConfig.getInstance().getNotificationTier2(); }
|
|
|
+ @Override protected Material getAcrobaticsNotificationItem() { return Material.IRON_BOOTS; }
|
|
|
+ @Override protected Material getArcheryNotificationItem() { return Material.ARROW; }
|
|
|
+ @Override protected Material getAxesNotificationItem() { return Material.IRON_AXE; }
|
|
|
+ @Override protected Material getExcavationNotificationItem() { return Material.GRAVEL; }
|
|
|
+ @Override protected Material getFishingNotificationItem() { return Material.COOKED_FISH; }
|
|
|
+ @Override protected Material getHerbalismNotificationItem() { return Material.YELLOW_FLOWER; }
|
|
|
+ @Override protected Material getMiningNotificationItem() { return Material.GOLD_ORE; }
|
|
|
+ @Override protected Material getSwordsNotificationItem() { return Material.IRON_SWORD; }
|
|
|
+ @Override protected Material getTamingNotificationItem() { return Material.GRILLED_PORK; }
|
|
|
+ @Override protected Material getUnarmedNotificationItem() { return Material.IRON_HELMET; }
|
|
|
+ @Override protected Material getWoodcuttingNotificationItem() { return Material.LEAVES; }},
|
|
|
+ ONE(1) {
|
|
|
+ @Override public int getLevel() { return SpoutConfig.getInstance().getNotificationTier1(); }
|
|
|
+ @Override protected Material getAcrobaticsNotificationItem() { return Material.CHAINMAIL_BOOTS; }
|
|
|
+ @Override protected Material getArcheryNotificationItem() { return Material.FLINT; }
|
|
|
+ @Override protected Material getAxesNotificationItem() { return Material.STONE_AXE; }
|
|
|
+ @Override protected Material getExcavationNotificationItem() { return Material.GRASS; }
|
|
|
+ @Override protected Material getFishingNotificationItem() { return Material.RAW_FISH; }
|
|
|
+ @Override protected Material getHerbalismNotificationItem() { return Material.CACTUS; }
|
|
|
+ @Override protected Material getMiningNotificationItem() { return Material.IRON_ORE; }
|
|
|
+ @Override protected Material getSwordsNotificationItem() { return Material.STONE_SWORD; }
|
|
|
+ @Override protected Material getTamingNotificationItem() { return Material.PORK; }
|
|
|
+ @Override protected Material getUnarmedNotificationItem() { return Material.CHAINMAIL_HELMET; }
|
|
|
+ @Override protected Material getWoodcuttingNotificationItem() { return Material.SAPLING; }};
|
|
|
+
|
|
|
+ int numerical;
|
|
|
+
|
|
|
+ private Tier(int numerical) {
|
|
|
+ this.numerical = numerical;
|
|
|
+ }
|
|
|
+
|
|
|
+ public int toNumerical() {
|
|
|
+ return numerical;
|
|
|
+ }
|
|
|
+
|
|
|
+ abstract protected int getLevel();
|
|
|
+ abstract protected Material getAcrobaticsNotificationItem();
|
|
|
+ abstract protected Material getArcheryNotificationItem();
|
|
|
+ abstract protected Material getAxesNotificationItem();
|
|
|
+ abstract protected Material getExcavationNotificationItem();
|
|
|
+ abstract protected Material getFishingNotificationItem();
|
|
|
+ abstract protected Material getHerbalismNotificationItem();
|
|
|
+ abstract protected Material getMiningNotificationItem();
|
|
|
+ abstract protected Material getSwordsNotificationItem();
|
|
|
+ abstract protected Material getTamingNotificationItem();
|
|
|
+ abstract protected Material getUnarmedNotificationItem();
|
|
|
+ abstract protected Material getWoodcuttingNotificationItem();
|
|
|
+ }
|
|
|
+
|
|
|
+ private final static String spoutDirectory = mcMMO.getMainDirectory() + "Resources" + File.separator;
|
|
|
+ private final static String hudDirectory = spoutDirectory + "HUD" + File.separator;
|
|
|
+ private final static String hudStandardDirectory = hudDirectory + "Standard" + File.separator;
|
|
|
+ private final static String hudRetroDirectory = hudDirectory + "Retro" + File.separator;
|
|
|
+ private final static String soundDirectory = spoutDirectory + "Sound" + File.separator;
|
|
|
|
|
|
/**
|
|
|
* Write file to disk.
|
|
@@ -188,334 +268,185 @@ public class SpoutUtils {
|
|
|
*/
|
|
|
public static void levelUpNotification(SkillType skillType, SpoutPlayer spoutPlayer) {
|
|
|
PlayerProfile profile = UserManager.getPlayer(spoutPlayer).getProfile();
|
|
|
- int notificationTier = getNotificationTier(profile.getSkillLevel(skillType));
|
|
|
- Material mat = null;
|
|
|
+ int skillLevel = profile.getSkillLevel(skillType);
|
|
|
+ Material notificationItem;
|
|
|
|
|
|
switch (skillType) {
|
|
|
- case TAMING:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- case 2:
|
|
|
- mat = Material.PORK;
|
|
|
- break;
|
|
|
-
|
|
|
- case 3:
|
|
|
- case 4:
|
|
|
- mat = Material.GRILLED_PORK;
|
|
|
- break;
|
|
|
-
|
|
|
- case 5:
|
|
|
- mat = Material.BONE;
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
+ case ACROBATICS:
|
|
|
+ notificationItem = getAcrobaticsNotificationItem(skillLevel);
|
|
|
break;
|
|
|
|
|
|
- case MINING:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- mat = Material.COAL_ORE;
|
|
|
- break;
|
|
|
-
|
|
|
- case 2:
|
|
|
- mat = Material.IRON_ORE;
|
|
|
- break;
|
|
|
-
|
|
|
- case 3:
|
|
|
- mat = Material.GOLD_ORE;
|
|
|
- break;
|
|
|
-
|
|
|
- case 4:
|
|
|
- mat = Material.DIAMOND_ORE;
|
|
|
- break;
|
|
|
-
|
|
|
- case 5:
|
|
|
- mat = Material.EMERALD_ORE;
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
+ case ARCHERY:
|
|
|
+ notificationItem = getArcheryNotificationItem(skillLevel);
|
|
|
break;
|
|
|
|
|
|
- case WOODCUTTING:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- mat = Material.STICK;
|
|
|
- break;
|
|
|
-
|
|
|
- case 2:
|
|
|
- case 3:
|
|
|
- mat = Material.WOOD;
|
|
|
- break;
|
|
|
-
|
|
|
- case 4:
|
|
|
- case 5:
|
|
|
- mat = Material.LOG;
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ case AXES:
|
|
|
+ notificationItem = getAxesNotificationItem(skillLevel);
|
|
|
+ break;
|
|
|
|
|
|
+ case EXCAVATION:
|
|
|
+ notificationItem = getExcavationNotificationItem(skillLevel);
|
|
|
break;
|
|
|
|
|
|
- case REPAIR:
|
|
|
- mat = Material.ANVIL;
|
|
|
+ case FISHING:
|
|
|
+ notificationItem = getFishingNotificationItem(skillLevel);
|
|
|
break;
|
|
|
|
|
|
case HERBALISM:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- mat = Material.YELLOW_FLOWER;
|
|
|
- break;
|
|
|
-
|
|
|
- case 2:
|
|
|
- mat = Material.RED_ROSE;
|
|
|
- break;
|
|
|
-
|
|
|
- case 3:
|
|
|
- mat = Material.BROWN_MUSHROOM;
|
|
|
- break;
|
|
|
-
|
|
|
- case 4:
|
|
|
- mat = Material.RED_MUSHROOM;
|
|
|
- break;
|
|
|
-
|
|
|
- case 5:
|
|
|
- mat = Material.PUMPKIN;
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
+ notificationItem = getHerbalismNotificationItem(skillLevel);
|
|
|
break;
|
|
|
|
|
|
- case ACROBATICS:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- mat = Material.LEATHER_BOOTS;
|
|
|
- break;
|
|
|
-
|
|
|
- case 2:
|
|
|
- mat = Material.CHAINMAIL_BOOTS;
|
|
|
- break;
|
|
|
-
|
|
|
- case 3:
|
|
|
- mat = Material.IRON_BOOTS;
|
|
|
- break;
|
|
|
-
|
|
|
- case 4:
|
|
|
- mat = Material.GOLD_BOOTS;
|
|
|
- break;
|
|
|
-
|
|
|
- case 5:
|
|
|
- mat = Material.DIAMOND_BOOTS;
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ case MINING:
|
|
|
+ notificationItem = getMiningNotificationItem(skillLevel);
|
|
|
+ break;
|
|
|
|
|
|
+ case REPAIR:
|
|
|
+ notificationItem = Material.ANVIL;
|
|
|
break;
|
|
|
|
|
|
case SWORDS:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- mat = Material.WOOD_SWORD;
|
|
|
- break;
|
|
|
-
|
|
|
- case 2:
|
|
|
- mat = Material.STONE_SWORD;
|
|
|
- break;
|
|
|
-
|
|
|
- case 3:
|
|
|
- mat = Material.IRON_SWORD;
|
|
|
- break;
|
|
|
-
|
|
|
- case 4:
|
|
|
- mat = Material.GOLD_SWORD;
|
|
|
- break;
|
|
|
-
|
|
|
- case 5:
|
|
|
- mat = Material.DIAMOND_SWORD;
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
+ notificationItem = getSwordsNotificationItem(skillLevel);
|
|
|
break;
|
|
|
|
|
|
- case ARCHERY:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- case 2:
|
|
|
- case 3:
|
|
|
- mat = Material.ARROW;
|
|
|
- break;
|
|
|
-
|
|
|
- case 4:
|
|
|
- case 5:
|
|
|
- mat = Material.BOW;
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
+ case TAMING:
|
|
|
+ notificationItem = getTamingNotificationItem(skillLevel);
|
|
|
break;
|
|
|
|
|
|
case UNARMED:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- mat = Material.LEATHER_HELMET;
|
|
|
- break;
|
|
|
-
|
|
|
- case 2:
|
|
|
- mat = Material.CHAINMAIL_HELMET;
|
|
|
- break;
|
|
|
+ notificationItem = getUnarmedNotificationItem(skillLevel);
|
|
|
+ break;
|
|
|
|
|
|
- case 3:
|
|
|
- mat = Material.IRON_HELMET;
|
|
|
- break;
|
|
|
+ case WOODCUTTING:
|
|
|
+ notificationItem = getWoodcuttingNotificationItem(skillLevel);
|
|
|
+ break;
|
|
|
|
|
|
- case 4:
|
|
|
- mat = Material.GOLD_HELMET;
|
|
|
- break;
|
|
|
+ default:
|
|
|
+ notificationItem = Material.MAP;
|
|
|
+ break;
|
|
|
+ }
|
|
|
|
|
|
- case 5:
|
|
|
- mat = Material.DIAMOND_HELMET;
|
|
|
- break;
|
|
|
+ spoutPlayer.sendNotification(LocaleLoader.getString("Spout.LevelUp.1"), LocaleLoader.getString("Spout.LevelUp.2", SkillUtils.getSkillName(skillType), skillLevel), notificationItem);
|
|
|
+ SpoutManager.getSoundManager().playCustomSoundEffect(mcMMO.p, spoutPlayer, "level.wav", false);
|
|
|
+ }
|
|
|
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ private static Material getAcrobaticsNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getAcrobaticsNotificationItem();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- break;
|
|
|
+ return Material.LEATHER_BOOTS;
|
|
|
+ }
|
|
|
|
|
|
- case EXCAVATION:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- mat = Material.WOOD_SPADE;
|
|
|
- break;
|
|
|
+ private static Material getArcheryNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getArcheryNotificationItem();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- case 2:
|
|
|
- mat = Material.STONE_SPADE;
|
|
|
- break;
|
|
|
+ return Material.FEATHER;
|
|
|
+ }
|
|
|
|
|
|
- case 3:
|
|
|
- mat = Material.IRON_SPADE;
|
|
|
- break;
|
|
|
+ private static Material getAxesNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getAxesNotificationItem();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- case 4:
|
|
|
- mat = Material.GOLD_SPADE;
|
|
|
- break;
|
|
|
+ return Material.WOOD_AXE;
|
|
|
+ }
|
|
|
|
|
|
- case 5:
|
|
|
- mat = Material.DIAMOND_SPADE;
|
|
|
- break;
|
|
|
+ private static Material getExcavationNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getExcavationNotificationItem();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ return Material.DIRT;
|
|
|
+ }
|
|
|
|
|
|
- break;
|
|
|
+ private static Material getFishingNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getFishingNotificationItem();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- case AXES:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- mat = Material.WOOD_AXE;
|
|
|
- break;
|
|
|
+ return Material.RAW_FISH;
|
|
|
+ }
|
|
|
|
|
|
- case 2:
|
|
|
- mat = Material.STONE_AXE;
|
|
|
- break;
|
|
|
+ private static Material getHerbalismNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getHerbalismNotificationItem();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- case 3:
|
|
|
- mat = Material.IRON_AXE;
|
|
|
- break;
|
|
|
+ return Material.VINE;
|
|
|
+ }
|
|
|
|
|
|
- case 4:
|
|
|
- mat = Material.GOLD_AXE;
|
|
|
- break;
|
|
|
+ private static Material getMiningNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getMiningNotificationItem();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- case 5:
|
|
|
- mat = Material.DIAMOND_AXE;
|
|
|
- break;
|
|
|
+ return Material.COAL_ORE;
|
|
|
+ }
|
|
|
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ private static Material getSwordsNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getSwordsNotificationItem();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- break;
|
|
|
+ return Material.WOOD_SWORD;
|
|
|
+ }
|
|
|
|
|
|
- case FISHING:
|
|
|
- switch (notificationTier) {
|
|
|
- case 1:
|
|
|
- case 2:
|
|
|
- mat = Material.RAW_FISH;
|
|
|
- break;
|
|
|
-
|
|
|
- case 3:
|
|
|
- case 4:
|
|
|
- mat = Material.COOKED_FISH;
|
|
|
- break;
|
|
|
-
|
|
|
- case 5:
|
|
|
- mat = Material.FISHING_ROD;
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ private static Material getTamingNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getTamingNotificationItem();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- break;
|
|
|
+ return Material.PORK;
|
|
|
+ }
|
|
|
|
|
|
- default:
|
|
|
- mat = Material.WATCH;
|
|
|
- break;
|
|
|
+ private static Material getUnarmedNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getUnarmedNotificationItem();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- spoutPlayer.sendNotification(LocaleLoader.getString("Spout.LevelUp.1"), LocaleLoader.getString("Spout.LevelUp.2", SkillUtils.getSkillName(skillType), profile.getSkillLevel(skillType)), mat);
|
|
|
- SpoutManager.getSoundManager().playCustomSoundEffect(mcMMO.p, spoutPlayer, "level.wav", false);
|
|
|
+ return Material.LEATHER_HELMET;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Gets the notification tier of a skill.
|
|
|
- *
|
|
|
- * @param level The level of the skill
|
|
|
- * @return the notification tier of the skill
|
|
|
- */
|
|
|
- private static int getNotificationTier(int level) {
|
|
|
- if (level >= AdvancedConfig.getInstance().getSpoutNotificationTier4()) {
|
|
|
- return 5;
|
|
|
- }
|
|
|
- else if (level >= AdvancedConfig.getInstance().getSpoutNotificationTier3()) {
|
|
|
- return 4;
|
|
|
- }
|
|
|
- else if (level >= AdvancedConfig.getInstance().getSpoutNotificationTier2()) {
|
|
|
- return 3;
|
|
|
- }
|
|
|
- else if (level >= AdvancedConfig.getInstance().getSpoutNotificationTier1()) {
|
|
|
- return 2;
|
|
|
- }
|
|
|
- else {
|
|
|
- return 1;
|
|
|
+ private static Material getWoodcuttingNotificationItem(int skillLevel) {
|
|
|
+ for (Tier tier : Tier.values()) {
|
|
|
+ if (skillLevel >= tier.getLevel()) {
|
|
|
+ return tier.getWoodcuttingNotificationItem();
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ return Material.STICK;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Re-enable SpoutCraft for players after a /reload
|
|
|
*/
|
|
|
public static void reloadSpoutPlayers() {
|
|
|
+ PluginManager pluginManager = mcMMO.p.getServer().getPluginManager();
|
|
|
+
|
|
|
for (SpoutPlayer spoutPlayer : SpoutManager.getPlayerChunkMap().getOnlinePlayers()) {
|
|
|
- mcMMO.p.getServer().getPluginManager().callEvent(new SpoutCraftEnableEvent(spoutPlayer));
|
|
|
+ pluginManager.callEvent(new SpoutCraftEnableEvent(spoutPlayer));
|
|
|
}
|
|
|
}
|
|
|
|