mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Wire up Party Config pt 1
This commit is contained in:
		@@ -50,7 +50,9 @@ public class PartyInviteCommand implements CommandExecutor {
 | 
				
			|||||||
                if(mcMMO.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped())
 | 
					                if(mcMMO.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped())
 | 
				
			||||||
                    if(PartyManager.isPartyFull(target, playerParty))
 | 
					                    if(PartyManager.isPartyFull(target, playerParty))
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull.Invite", target.getName(), playerParty.toString(), MainConfig.getInstance().getPartyMaxSize()));
 | 
					                        player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull.Invite",
 | 
				
			||||||
 | 
					                                target.getName(), playerParty.toString(),
 | 
				
			||||||
 | 
					                                    mcMMO.getConfigManager().getConfigParty().getPartySizeLimit()));
 | 
				
			||||||
                        return true;
 | 
					                        return true;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -696,42 +696,6 @@ public class MainConfig extends ConfigValidated {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* PARTY SETTINGS */
 | 
					    /* PARTY SETTINGS */
 | 
				
			||||||
    public boolean getPartyFriendlyFire() {
 | 
					 | 
				
			||||||
        return getBooleanValue(PARTY, FRIENDLY_FIRE);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public int getPartyMaxSize() {
 | 
					 | 
				
			||||||
        return getIntValue(PARTY, MAX_SIZE);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public int getAutoPartyKickInterval() {
 | 
					 | 
				
			||||||
        return getIntValue(PARTY, AUTO_KICK_INTERVAL);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public int getAutoPartyKickTime() {
 | 
					 | 
				
			||||||
        return getIntValue(PARTY, OLD_PARTY_MEMBER_CUTOFF);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public double getPartyShareBonusBase() {
 | 
					 | 
				
			||||||
        return getDoubleValue(PARTY, SHARING, EXP_SHARE_BONUS_BASE);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public double getPartyShareBonusIncrease() {
 | 
					 | 
				
			||||||
        return getDoubleValue(PARTY, SHARING, EXP_SHARE_BONUS_INCREASE);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public double getPartyShareBonusCap() {
 | 
					 | 
				
			||||||
        return getDoubleValue(PARTY, SHARING, EXP_SHARE_BONUS_CAP);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public double getPartyShareRange() {
 | 
					 | 
				
			||||||
        return getDoubleValue(PARTY, SHARING, RANGE);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public int getPartyLevelCap() {
 | 
					 | 
				
			||||||
        int cap = getIntValue(PARTY, LEVELING, LEVEL_CAP);
 | 
					 | 
				
			||||||
        return (cap <= 0) ? Integer.MAX_VALUE : cap;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //TODO: Move this to Experience Config
 | 
					    //TODO: Move this to Experience Config
 | 
				
			||||||
    public int getPartyXpCurveMultiplier() {
 | 
					    public int getPartyXpCurveMultiplier() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,6 +49,10 @@ public class ConfigParty {
 | 
				
			|||||||
        return partyGeneral;
 | 
					        return partyGeneral;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ConfigSectionPartyXP getPartyXP() {
 | 
				
			||||||
 | 
					        return partyXP;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getPartyChatPrefixFormat() {
 | 
					    public String getPartyChatPrefixFormat() {
 | 
				
			||||||
        return partyChat.getPartyChatPrefixFormat();
 | 
					        return partyChat.getPartyChatPrefixFormat();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,9 @@ public class ConfigSectionPartyCombat {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public static final boolean PARTY_FRIENDLY_FIRE_DEFAULT = false;
 | 
					    public static final boolean PARTY_FRIENDLY_FIRE_DEFAULT = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Setting(value = "Friendly-Fire", comment = "When friendly fire is enabled, players in the same party can injure each other.")
 | 
					    @Setting(value = "Friendly-Fire", comment = "When friendly fire is enabled, players in the same party can injure each other." +
 | 
				
			||||||
 | 
					            "\nThis also allows Party alliances to hurt each other." +
 | 
				
			||||||
 | 
					            "\nDefault value: "+PARTY_FRIENDLY_FIRE_DEFAULT)
 | 
				
			||||||
    private boolean partyFriendlyFire = PARTY_FRIENDLY_FIRE_DEFAULT;
 | 
					    private boolean partyFriendlyFire = PARTY_FRIENDLY_FIRE_DEFAULT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public boolean isPartyFriendlyFire() {
 | 
					    public boolean isPartyFriendlyFire() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,4 +33,23 @@ public class ConfigSectionPartyLevel {
 | 
				
			|||||||
    @Setting(value = "Party-Feature-Unlock-Level-Requirements")
 | 
					    @Setting(value = "Party-Feature-Unlock-Level-Requirements")
 | 
				
			||||||
    private Map<PartyFeature, Integer> partyFeatureUnlockMap = PARTY_FEATURE_MAP_DEFAULT;
 | 
					    private Map<PartyFeature, Integer> partyFeatureUnlockMap = PARTY_FEATURE_MAP_DEFAULT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static HashMap<PartyFeature, Integer> getPartyFeatureMapDefault() {
 | 
				
			||||||
 | 
					        return PARTY_FEATURE_MAP_DEFAULT;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public int getPartyXpCurveMultiplier() {
 | 
				
			||||||
 | 
					        return partyXpCurveMultiplier;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean isPartyLevelingNeedsNearbyMembers() {
 | 
				
			||||||
 | 
					        return partyLevelingNeedsNearbyMembers;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean isInformPartyMembersOnLevelup() {
 | 
				
			||||||
 | 
					        return informPartyMembersOnLevelup;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Map<PartyFeature, Integer> getPartyFeatureUnlockMap() {
 | 
				
			||||||
 | 
					        return partyFeatureUnlockMap;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -23,4 +23,12 @@ public class ConfigSectionPartyXP {
 | 
				
			|||||||
    @Setting(value = "Party-Level", comment = "Parties in mcMMO gain levels just like skills" +
 | 
					    @Setting(value = "Party-Level", comment = "Parties in mcMMO gain levels just like skills" +
 | 
				
			||||||
            "\nSettings related to that can be found here!.")
 | 
					            "\nSettings related to that can be found here!.")
 | 
				
			||||||
    private ConfigSectionPartyLevel partyLevel = new ConfigSectionPartyLevel();
 | 
					    private ConfigSectionPartyLevel partyLevel = new ConfigSectionPartyLevel();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ConfigSectionPartyExperienceSharing getPartyExperienceSharing() {
 | 
				
			||||||
 | 
					        return partyExperienceSharing;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ConfigSectionPartyLevel getPartyLevel() {
 | 
				
			||||||
 | 
					        return partyLevel;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -303,7 +303,7 @@ public class EntityListener implements Listener {
 | 
				
			|||||||
                Player attackingPlayer = (Player) attacker;
 | 
					                Player attackingPlayer = (Player) attacker;
 | 
				
			||||||
                if (event.getDamage(DamageModifier.ABSORPTION) > 0) {
 | 
					                if (event.getDamage(DamageModifier.ABSORPTION) > 0) {
 | 
				
			||||||
                    //If friendly fire is off don't allow players to hurt one another
 | 
					                    //If friendly fire is off don't allow players to hurt one another
 | 
				
			||||||
                    if(!MainConfig.getInstance().getPartyFriendlyFire())
 | 
					                    if(!mcMMO.getConfigManager().getConfigParty().isPartyFriendlyFireEnabled())
 | 
				
			||||||
                        if ((PartyManager.inSameParty(defendingPlayer, attackingPlayer) || PartyManager.areAllies(defendingPlayer, attackingPlayer)) && !(Permissions.friendlyFire(attackingPlayer) && Permissions.friendlyFire(defendingPlayer))) {
 | 
					                        if ((PartyManager.inSameParty(defendingPlayer, attackingPlayer) || PartyManager.areAllies(defendingPlayer, attackingPlayer)) && !(Permissions.friendlyFire(attackingPlayer) && Permissions.friendlyFire(defendingPlayer))) {
 | 
				
			||||||
                            event.setCancelled(true);
 | 
					                            event.setCancelled(true);
 | 
				
			||||||
                            return;
 | 
					                            return;
 | 
				
			||||||
@@ -372,8 +372,9 @@ public class EntityListener implements Listener {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //Party Friendly Fire
 | 
					            //Party Friendly Fire
 | 
				
			||||||
            if(!MainConfig.getInstance().getPartyFriendlyFire())
 | 
					            if(!mcMMO.getConfigManager().getConfigParty().isPartyFriendlyFireEnabled())
 | 
				
			||||||
                if ((PartyManager.inSameParty(defendingPlayer, attackingPlayer) || PartyManager.areAllies(defendingPlayer, attackingPlayer)) && !(Permissions.friendlyFire(attackingPlayer) && Permissions.friendlyFire(defendingPlayer))) {
 | 
					                if ((PartyManager.inSameParty(defendingPlayer, attackingPlayer)
 | 
				
			||||||
 | 
					                        || PartyManager.areAllies(defendingPlayer, attackingPlayer)) && !(Permissions.friendlyFire(attackingPlayer) && Permissions.friendlyFire(defendingPlayer))) {
 | 
				
			||||||
                    event.setCancelled(true);
 | 
					                    event.setCancelled(true);
 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ import com.gmail.nossr50.config.MainConfig;
 | 
				
			|||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
					import com.gmail.nossr50.config.experience.ExperienceConfig;
 | 
				
			||||||
import com.gmail.nossr50.config.hocon.database.ConfigSectionCleaning;
 | 
					import com.gmail.nossr50.config.hocon.database.ConfigSectionCleaning;
 | 
				
			||||||
import com.gmail.nossr50.config.hocon.database.ConfigSectionMySQL;
 | 
					import com.gmail.nossr50.config.hocon.database.ConfigSectionMySQL;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.config.hocon.party.ConfigSectionPartyExperienceSharing;
 | 
				
			||||||
import com.gmail.nossr50.config.hocon.playerleveling.ConfigLeveling;
 | 
					import com.gmail.nossr50.config.hocon.playerleveling.ConfigLeveling;
 | 
				
			||||||
import com.gmail.nossr50.config.hocon.scoreboard.ConfigScoreboard;
 | 
					import com.gmail.nossr50.config.hocon.scoreboard.ConfigScoreboard;
 | 
				
			||||||
import com.gmail.nossr50.database.DatabaseManager;
 | 
					import com.gmail.nossr50.database.DatabaseManager;
 | 
				
			||||||
@@ -326,6 +327,15 @@ public class mcMMO extends JavaPlugin {
 | 
				
			|||||||
        return configManager.getConfigDatabase().getConfigSectionCleaning();
 | 
					        return configManager.getConfigDatabase().getConfigSectionCleaning();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Returns settings for Party XP sharing from the users config
 | 
				
			||||||
 | 
					     * @return settings for the Party XP sharing from the users config
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static ConfigSectionPartyExperienceSharing getPartyXPShareSettings()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return configManager.getConfigParty().getPartyXP().getPartyExperienceSharing();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Returns settings for Scoreboards from the users config
 | 
					     * Returns settings for Scoreboards from the users config
 | 
				
			||||||
     * @return settings for Scoreboards from the users config
 | 
					     * @return settings for Scoreboards from the users config
 | 
				
			||||||
@@ -480,7 +490,7 @@ public class mcMMO extends JavaPlugin {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Automatically remove old members from parties
 | 
					        // Automatically remove old members from parties
 | 
				
			||||||
        long kickIntervalTicks = MainConfig.getInstance().getAutoPartyKickInterval() * 60L * 60L * Misc.TICK_CONVERSION_FACTOR;
 | 
					        long kickIntervalTicks = getConfigManager().getConfigParty().getPartyCleanup().getPartyAutoKickHoursInterval() * 60L * 60L * Misc.TICK_CONVERSION_FACTOR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (kickIntervalTicks == 0) {
 | 
					        if (kickIntervalTicks == 0) {
 | 
				
			||||||
            new PartyAutoKickTask().runTaskLater(this, 2 * Misc.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup.
 | 
					            new PartyAutoKickTask().runTaskLater(this, 2 * Misc.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -130,7 +130,7 @@ public final class PartyManager {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if (party != null) {
 | 
					        if (party != null) {
 | 
				
			||||||
            Player player = mcMMOPlayer.getPlayer();
 | 
					            Player player = mcMMOPlayer.getPlayer();
 | 
				
			||||||
            double range = MainConfig.getInstance().getPartyShareRange();
 | 
					            double range = mcMMO.getPartyXPShareSettings().getPartyShareRange();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (Player member : party.getOnlineMembers()) {
 | 
					            for (Player member : party.getOnlineMembers()) {
 | 
				
			||||||
                if (!player.equals(member) && member.isValid() && Misc.isNear(player.getLocation(), member.getLocation(), range)) {
 | 
					                if (!player.equals(member) && member.isValid() && Misc.isNear(player.getLocation(), member.getLocation(), range)) {
 | 
				
			||||||
@@ -148,7 +148,7 @@ public final class PartyManager {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if (party != null) {
 | 
					        if (party != null) {
 | 
				
			||||||
            Player player = mcMMOPlayer.getPlayer();
 | 
					            Player player = mcMMOPlayer.getPlayer();
 | 
				
			||||||
            double range = MainConfig.getInstance().getPartyShareRange();
 | 
					            double range = mcMMO.getPartyXPShareSettings().getPartyShareRange();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (Player member : party.getVisibleMembers(player)) {
 | 
					            for (Player member : party.getVisibleMembers(player)) {
 | 
				
			||||||
                if (!player.equals(member)
 | 
					                if (!player.equals(member)
 | 
				
			||||||
@@ -403,9 +403,11 @@ public final class PartyManager {
 | 
				
			|||||||
        /*
 | 
					        /*
 | 
				
			||||||
         * Don't let players join a full party
 | 
					         * Don't let players join a full party
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
        if(MainConfig.getInstance().getPartyMaxSize() > 0 && invite.getMembers().size() >= MainConfig.getInstance().getPartyMaxSize())
 | 
					        if(mcMMO.getConfigManager().getConfigParty().isPartySizeCapped() && invite.getMembers().size() >= mcMMO.getConfigManager().getConfigParty().getPartySizeLimit())
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            NotificationManager.sendPlayerInformation(mcMMOPlayer.getPlayer(), NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull.InviteAccept", invite.getName(), String.valueOf(MainConfig.getInstance().getPartyMaxSize()));
 | 
					            NotificationManager.sendPlayerInformation(mcMMOPlayer.getPlayer(),
 | 
				
			||||||
 | 
					                    NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull.InviteAccept",
 | 
				
			||||||
 | 
					                        invite.getName(), String.valueOf(mcMMO.getConfigManager().getConfigParty().getPartySizeLimit()));
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@ import com.gmail.nossr50.datatypes.party.Party;
 | 
				
			|||||||
import com.gmail.nossr50.datatypes.party.ShareMode;
 | 
					import com.gmail.nossr50.datatypes.party.ShareMode;
 | 
				
			||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
					import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
				
			||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
					import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.Misc;
 | 
					import com.gmail.nossr50.util.Misc;
 | 
				
			||||||
import com.gmail.nossr50.util.player.UserManager;
 | 
					import com.gmail.nossr50.util.player.UserManager;
 | 
				
			||||||
import org.bukkit.entity.Item;
 | 
					import org.bukkit.entity.Item;
 | 
				
			||||||
@@ -44,7 +45,9 @@ public final class ShareHandler {
 | 
				
			|||||||
        nearMembers.add(mcMMOPlayer.getPlayer());
 | 
					        nearMembers.add(mcMMOPlayer.getPlayer());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        int partySize = nearMembers.size();
 | 
					        int partySize = nearMembers.size();
 | 
				
			||||||
        double shareBonus = Math.min(MainConfig.getInstance().getPartyShareBonusBase() + (partySize * MainConfig.getInstance().getPartyShareBonusIncrease()), MainConfig.getInstance().getPartyShareBonusCap());
 | 
					        double shareBonus = Math.min(mcMMO.getPartyXPShareSettings().getPartyShareXPBonusBase()
 | 
				
			||||||
 | 
					                + (partySize * mcMMO.getPartyXPShareSettings().getPartyShareBonusIncrease()),
 | 
				
			||||||
 | 
					                    mcMMO.getPartyXPShareSettings().getPartyShareBonusCap());
 | 
				
			||||||
        float splitXp = (float) (xp / partySize * shareBonus);
 | 
					        float splitXp = (float) (xp / partySize * shareBonus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (Player member : nearMembers) {
 | 
					        for (Player member : nearMembers) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@ import java.util.Map.Entry;
 | 
				
			|||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class PartyAutoKickTask extends BukkitRunnable {
 | 
					public class PartyAutoKickTask extends BukkitRunnable {
 | 
				
			||||||
    private final static long KICK_TIME = 24L * 60L * 60L * 1000L * MainConfig.getInstance().getAutoPartyKickTime();
 | 
					    private final static long KICK_TIME = 24L * 60L * 60L * 1000L * mcMMO.getConfigManager().getConfigParty().getPartyCleanup().getPartyAutoKickHoursInterval();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void run() {
 | 
					    public void run() {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user