1
0
mirror of https://github.com/mcMMO-Dev/mcMMO.git synced 2026-02-20 02:33:15 +01:00

wip expmanager/party/mcmmo player rewrites

This commit is contained in:
nossr50
2020-11-16 13:43:47 -08:00
parent 5dc95b1fca
commit 450d09e9e4
10 changed files with 299 additions and 182 deletions

View File

@@ -9,10 +9,12 @@ import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.party.ShareMode;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.Misc;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import java.util.List;
@@ -27,10 +29,9 @@ public final class ShareHandler {
* @param primarySkillType Skill being used
* @return True is the xp has been shared
*/
public static boolean handleXpShare(float xp, McMMOPlayer mmoPlayer, PrimarySkillType primarySkillType, XPGainReason xpGainReason) {
Party party = mmoPlayer.getParty();
public static boolean handleXpShare(float xp, @NotNull McMMOPlayer mmoPlayer, @NotNull Party party, @NotNull PrimarySkillType primarySkillType, @NotNull XPGainReason xpGainReason) {
if (party.getXpShareMode() != ShareMode.EQUAL) {
if (party.getPartyExperienceManager().getXpShareMode() != ShareMode.EQUAL) {
return false;
}
@@ -46,14 +47,15 @@ public final class ShareHandler {
double shareBonus = Math.min(Config.getInstance().getPartyShareBonusBase() + (partySize * Config.getInstance().getPartyShareBonusIncrease()), Config.getInstance().getPartyShareBonusCap());
float splitXp = (float) (xp / partySize * shareBonus);
for (Player member : nearMembers) {
for (Player otherMember : nearMembers) {
McMMOPlayer partyMember = mcMMO.getUserManager().queryMcMMOPlayer(otherMember);
//Profile not loaded
if(mcMMO.getUserManager().getPlayer(member) == null)
{
if(partyMember == null) {
continue;
}
mcMMO.getUserManager().getPlayer(member).beginUnsharedXpGain(primarySkillType, splitXp, xpGainReason, XPGainSource.PARTY_MEMBERS);
partyMember.getExperienceManager().beginUnsharedXpGain(primarySkillType, splitXp, xpGainReason, XPGainSource.PARTY_MEMBERS);
}
return true;