mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-25 10:14:43 +02:00
Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into configurable
This commit is contained in:
@ -8,6 +8,7 @@ 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.util.player.PlayerLevelUtils;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
|
||||
import com.gmail.nossr50.util.skills.RankUtils;
|
||||
@ -92,7 +93,8 @@ public class SelfListener implements Listener {
|
||||
int earlyGameBonusXP = 0;
|
||||
|
||||
//Give some bonus XP for low levels
|
||||
if (mcMMOPlayer.getSkillLevel(primarySkillType) <= mcMMO.getPlayerLevelUtils().getEarlyGameCutoff(primarySkillType)) {
|
||||
if(PlayerLevelUtils.qualifiesForEarlyGameBoost(mcMMOPlayer, primarySkillType))
|
||||
{
|
||||
earlyGameBonusXP += (mcMMOPlayer.getXpToLevel(primarySkillType) * 0.05);
|
||||
event.setRawXpGained(event.getRawXpGained() + earlyGameBonusXP);
|
||||
}
|
||||
@ -144,4 +146,6 @@ public class SelfListener implements Listener {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import com.gmail.nossr50.util.player.PlayerLevelUtils;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.boss.BarColor;
|
||||
import org.bukkit.boss.BarStyle;
|
||||
@ -20,7 +21,14 @@ public class ExperienceBarWrapper {
|
||||
|
||||
protected final McMMOPlayer mcMMOPlayer;
|
||||
private final PrimarySkillType primarySkillType; //Primary Skill
|
||||
<<<<<<< HEAD
|
||||
private final Server server;
|
||||
=======
|
||||
private BossBar bossBar;
|
||||
protected final McMMOPlayer mcMMOPlayer;
|
||||
private int lastLevelUpdated;
|
||||
|
||||
>>>>>>> 9111590dc2a9bb6a1c12fefc13167a1d88470cd4
|
||||
/*
|
||||
* This is stored to help optimize updating the title
|
||||
*/
|
||||
@ -31,7 +39,6 @@ public class ExperienceBarWrapper {
|
||||
|
||||
public ExperienceBarWrapper(PrimarySkillType primarySkillType, McMMOPlayer mcMMOPlayer) {
|
||||
this.mcMMOPlayer = mcMMOPlayer;
|
||||
this.server = mcMMOPlayer.getPlayer().getServer(); //Might not be good for bungee to do this
|
||||
this.primarySkillType = primarySkillType;
|
||||
title = "";
|
||||
lastLevelUpdated = 0;
|
||||
@ -55,8 +62,10 @@ public class ExperienceBarWrapper {
|
||||
|
||||
private String getTitleTemplate() {
|
||||
//If they are using extra details
|
||||
if (mcMMO.getConfigManager().getConfigLeveling().isMoreDetailedXPBars())
|
||||
return LocaleLoader.getString("XPBar.Complex.Template", LocaleLoader.getString("XPBar." + niceSkillName, getLevel()), getCurrentXP(), getMaxXP(), getPowerLevel(), getPercentageOfLevel());
|
||||
if(mcMMO.getConfigManager().getConfigLeveling().getEarlyGameBoost().isEnableEarlyGameBoost() && PlayerLevelUtils.qualifiesForEarlyGameBoost(mcMMOPlayer, primarySkillType)) {
|
||||
return LocaleLoader.getString("XPBar.Template.EarlyGameBoost");
|
||||
} else if(mcMMO.getConfigManager().getConfigLeveling().getConfigExperienceBars().isMoreDetailedXPBars())
|
||||
return LocaleLoader.getString("XPBar.Complex.Template", LocaleLoader.getString("XPBar."+niceSkillName, getLevel()), getCurrentXP(), getMaxXP(), getPowerLevel(), getPercentageOfLevel());
|
||||
|
||||
return LocaleLoader.getString("XPBar." + niceSkillName, getLevel(), getCurrentXP(), getMaxXP(), getPowerLevel(), getPercentageOfLevel());
|
||||
}
|
||||
@ -119,6 +128,13 @@ public class ExperienceBarWrapper {
|
||||
else
|
||||
bossBar.setProgress(v);
|
||||
|
||||
//Check player level
|
||||
if(ExperienceConfig.getInstance().isEarlyGameBoostEnabled() && PlayerLevelUtils.qualifiesForEarlyGameBoost(mcMMOPlayer, primarySkillType)) {
|
||||
setColor(BarColor.YELLOW);
|
||||
} else {
|
||||
setColor(ExperienceConfig.getInstance().getExperienceBarColor(primarySkillType));
|
||||
}
|
||||
|
||||
//Every time progress updates we need to check for a title update
|
||||
if (getLevel() != lastLevelUpdated || mcMMO.getConfigManager().getConfigLeveling().isMoreDetailedXPBars()) {
|
||||
updateTitle();
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.gmail.nossr50.util.player;
|
||||
|
||||
import com.gmail.nossr50.datatypes.experience.CustomXPPerk;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
@ -131,4 +132,14 @@ public class PlayerLevelUtils {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if a player is currently qualifying for the early game boosted XP
|
||||
* Will return false only if a player is above the boost level cutoff, it does not check config settings to see if the early game boost is on
|
||||
* @param mcMMOPlayer target player
|
||||
* @param primarySkillType target skill
|
||||
* @return if the player would qualify for the XP boost if its enabled
|
||||
*/
|
||||
public static boolean qualifiesForEarlyGameBoost(McMMOPlayer mcMMOPlayer, PrimarySkillType primarySkillType) {
|
||||
return mcMMOPlayer.getSkillLevel(primarySkillType) < mcMMO.getPlayerLevelUtils().getEarlyGameCutoff(primarySkillType);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user