mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-03 18:43:43 +01:00 
			
		
		
		
	Fixed bug with only getting one level when there was enough XP for
multiple levels. Fixes MCCORE-191
This commit is contained in:
		@@ -16,6 +16,7 @@ Version 1.3.06-dev
 | 
				
			|||||||
 = Fixed bug with repairing wooden tools
 | 
					 = Fixed bug with repairing wooden tools
 | 
				
			||||||
 = Fixed bug with Nether Wart not awarding XP
 | 
					 = Fixed bug with Nether Wart not awarding XP
 | 
				
			||||||
 = Fixed bug with fishing treasures when treasures list is empty
 | 
					 = Fixed bug with fishing treasures when treasures list is empty
 | 
				
			||||||
 | 
					 = Fixed bug with only getting one level when there was enough XP for multiple levels.
 | 
				
			||||||
 ! Changed mcremove to no longer kick players when they are removed from database
 | 
					 ! Changed mcremove to no longer kick players when they are removed from database
 | 
				
			||||||
 ! Changed mcremove to work on offline users for FlatFile
 | 
					 ! Changed mcremove to work on offline users for FlatFile
 | 
				
			||||||
 ! Changed PlayerProfile constructor to always take a boolean
 | 
					 ! Changed PlayerProfile constructor to always take a boolean
 | 
				
			||||||
@@ -23,6 +24,7 @@ Version 1.3.06-dev
 | 
				
			|||||||
 ! Changed Archery's Daze to deal 4 DMG on proc (2 Hearts)
 | 
					 ! Changed Archery's Daze to deal 4 DMG on proc (2 Hearts)
 | 
				
			||||||
 ! Changed /addlevel command to work for offline users
 | 
					 ! Changed /addlevel command to work for offline users
 | 
				
			||||||
 ! Changed party & admin chat handling to be nicer to developers
 | 
					 ! Changed party & admin chat handling to be nicer to developers
 | 
				
			||||||
 | 
					 ! Changed UpdateXPBar function to hopefully avoid errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Version 1.3.05
 | 
					Version 1.3.05
 | 
				
			||||||
 + Added Skill Shot to Archery which increases damage dealt by 10% every 50 skill levels (caps at 200%)
 | 
					 + Added Skill Shot to Archery which increases damage dealt by 10% every 50 skill levels (caps at 200%)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -964,6 +964,10 @@ public class PlayerProfile {
 | 
				
			|||||||
        return skillsXp.get(skillType);
 | 
					        return skillsXp.get(skillType);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void skillUp(SkillType skillType, int newValue) {
 | 
				
			||||||
 | 
					        skills.put(skillType, skills.get(skillType) + newValue);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Adds XP to the player, doesn't calculate for XP Rate
 | 
					     * Adds XP to the player, doesn't calculate for XP Rate
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
@@ -1038,6 +1042,27 @@ public class PlayerProfile {
 | 
				
			|||||||
        lastgained = skillType;
 | 
					        lastgained = skillType;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Remove XP from a skill.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param skillType Type of skill to modify
 | 
				
			||||||
 | 
					     * @param xp Amount of xp to remove
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void removeXP(SkillType skillType, int xp) {
 | 
				
			||||||
 | 
					        if (skillType.equals(SkillType.ALL)) {
 | 
				
			||||||
 | 
					            for (SkillType skill : SkillType.values()) {
 | 
				
			||||||
 | 
					                if (skill.equals(SkillType.ALL)) {
 | 
				
			||||||
 | 
					                    continue;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                skillsXp.put(skill, skillsXp.get(skill) - xp);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            skillsXp.put(skillType, skillsXp.get(skillType) - xp);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Modify a skill level.
 | 
					     * Modify a skill level.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,7 @@ import org.bukkit.enchantments.Enchantment;
 | 
				
			|||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
import org.bukkit.inventory.ItemStack;
 | 
					import org.bukkit.inventory.ItemStack;
 | 
				
			||||||
import org.bukkit.inventory.PlayerInventory;
 | 
					import org.bukkit.inventory.PlayerInventory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.getspout.spoutapi.SpoutManager;
 | 
					import org.getspout.spoutapi.SpoutManager;
 | 
				
			||||||
import org.getspout.spoutapi.player.SpoutPlayer;
 | 
					import org.getspout.spoutapi.player.SpoutPlayer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -189,14 +189,13 @@ public class Skills {
 | 
				
			|||||||
            while (PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) {
 | 
					            while (PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) {
 | 
				
			||||||
                if ((skillType.getMaxLevel() >= PP.getSkillLevel(skillType) + 1) && (m.getPowerLevelCap() >= PP.getPowerLevel() + 1)) {
 | 
					                if ((skillType.getMaxLevel() >= PP.getSkillLevel(skillType) + 1) && (m.getPowerLevelCap() >= PP.getPowerLevel() + 1)) {
 | 
				
			||||||
                    skillups++;
 | 
					                    skillups++;
 | 
				
			||||||
                    PP.addLevels(skillType, 1);
 | 
					                    PP.skillUp(skillType, 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    McMMOPlayerLevelUpEvent eventToFire = new McMMOPlayerLevelUpEvent(player, skillType);
 | 
					                    McMMOPlayerLevelUpEvent eventToFire = new McMMOPlayerLevelUpEvent(player, skillType);
 | 
				
			||||||
                    Bukkit.getPluginManager().callEvent(eventToFire);
 | 
					                    Bukkit.getPluginManager().callEvent(eventToFire);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else {
 | 
					
 | 
				
			||||||
                    PP.addLevels(skillType, 0);
 | 
					                PP.removeXP(skillType, PP.getXpToLevel(skillType));
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (!LoadProperties.useMySQL) {
 | 
					            if (!LoadProperties.useMySQL) {
 | 
				
			||||||
@@ -212,15 +211,14 @@ public class Skills {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                if (sPlayer.isSpoutCraftEnabled()) {
 | 
					                if (sPlayer.isSpoutCraftEnabled()) {
 | 
				
			||||||
                    if (LoadProperties.xpbar) {
 | 
					                    if (LoadProperties.xpbar) {
 | 
				
			||||||
                        SpoutStuff.updateXpBar(sPlayer);
 | 
					                        SpoutStuff.updateXpBar(player);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    SpoutStuff.levelUpNotification(skillType, sPlayer);
 | 
					                    SpoutStuff.levelUpNotification(skillType, sPlayer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    /* Update custom titles */
 | 
					                    /* Update custom titles */
 | 
				
			||||||
                    if(LoadProperties.showPowerLevel) {
 | 
					                    if(LoadProperties.showPowerLevel) {
 | 
				
			||||||
                        sPlayer.setTitle(sPlayer.getName()+ "\n" + ChatColor.YELLOW + "P" + ChatColor.GOLD + "lvl" 
 | 
					                        sPlayer.setTitle(sPlayer.getName()+ "\n" + ChatColor.YELLOW + "P" + ChatColor.GOLD + "lvl" + ChatColor.WHITE + "." + ChatColor.GREEN + String.valueOf(PP.getPowerLevel()));
 | 
				
			||||||
                                + ChatColor.WHITE+"." + ChatColor.GREEN + String.valueOf(PP.getPowerLevel()));
 | 
					 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else {
 | 
					                else {
 | 
				
			||||||
@@ -237,7 +235,7 @@ public class Skills {
 | 
				
			|||||||
            SpoutPlayer sPlayer = (SpoutPlayer) player;
 | 
					            SpoutPlayer sPlayer = (SpoutPlayer) player;
 | 
				
			||||||
            if (sPlayer.isSpoutCraftEnabled()) {
 | 
					            if (sPlayer.isSpoutCraftEnabled()) {
 | 
				
			||||||
                if (LoadProperties.xpbar) {
 | 
					                if (LoadProperties.xpbar) {
 | 
				
			||||||
                    SpoutStuff.updateXpBar(sPlayer);
 | 
					                    SpoutStuff.updateXpBar(player);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user