Added toggle to disable party system

This commit is contained in:
nossr50 2019-03-18 07:46:33 -07:00
parent b0b326d080
commit 3a21a913c6
6 changed files with 55 additions and 8 deletions

View File

@ -10,6 +10,7 @@ Key:
Version 2.2.0 Version 2.2.0
mcMMO's config system has been rewritten mcMMO's config system has been rewritten
Parties no longer have a cap, you can level them forever for bragging rights Parties no longer have a cap, you can level them forever for bragging rights
You can now disable the party system completely
Many config files are now generated on demand instead of being copied from within the JAR Many config files are now generated on demand instead of being copied from within the JAR
All config nodes that used to be styled with CamelCase or otherwise now use hyphens (-) as spaces for readability and consistency All config nodes that used to be styled with CamelCase or otherwise now use hyphens (-) as spaces for readability and consistency
All config nodes will now use Capital letters at the start of each nodes name and after each hyphen (-) All config nodes will now use Capital letters at the start of each nodes name and after each hyphen (-)
@ -45,6 +46,7 @@ Version 2.2.0
Particle settings will now be found in "particle_spawning.conf" Particle settings will now be found in "particle_spawning.conf"
Party config options will now be found in "party.conf" Party config options will now be found in "party.conf"
Added toggle to completely disable parties
Party's "MaxSize" renamed -> "Party-Max-Size" Party's "MaxSize" renamed -> "Party-Max-Size"
Party's "AutoKick_Interval" renamed -> "Hours-Between-Cleanup-Operations" Party's "AutoKick_Interval" renamed -> "Hours-Between-Cleanup-Operations"
Party's "Old_Party_Member_Cutoff" renamed -> "Offline-Day-Limit" Party's "Old_Party_Member_Cutoff" renamed -> "Offline-Day-Limit"

View File

@ -6,6 +6,7 @@ import com.gmail.nossr50.commands.party.teleport.PtpCommand;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.commands.CommandUtils;
import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.player.UserManager;
@ -59,6 +60,10 @@ public class PartyCommand implements TabExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
//If the party system is disabled, don't fire this command
if(!mcMMO.getConfigManager().getConfigParty().isPartySystemEnabled())
return true;
if (CommandUtils.noConsoleUsage(sender)) { if (CommandUtils.noConsoleUsage(sender)) {
return true; return true;
} }

View File

@ -91,6 +91,8 @@ public class ConfigParty {
return partyCombat.isPartyFriendlyFire(); return partyCombat.isPartyFriendlyFire();
} }
public boolean isPartySystemEnabled() { return partyGeneral.isEnablePartySystem(); }
/* /*

View File

@ -6,9 +6,15 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
@ConfigSerializable @ConfigSerializable
public class ConfigSectionPartyGeneral { public class ConfigSectionPartyGeneral {
public static final boolean PARTY_SYSTEM_DEFAULT = true;
@Setting(value = "Party-Limitations") @Setting(value = "Party-Limitations")
private ConfigSectionPartyLimit configSectionPartyLimit = new ConfigSectionPartyLimit(); private ConfigSectionPartyLimit configSectionPartyLimit = new ConfigSectionPartyLimit();
@Setting(value = "Enable-Party-System", comment = "Turn this off to completely disable the mcMMO party system." +
"\nDefault value: "+PARTY_SYSTEM_DEFAULT)
private boolean enablePartySystem = PARTY_SYSTEM_DEFAULT;
public int getPartySizeLimit() { public int getPartySizeLimit() {
return configSectionPartyLimit.partyMaxSize; return configSectionPartyLimit.partyMaxSize;
} }
@ -16,4 +22,8 @@ public class ConfigSectionPartyGeneral {
public boolean isPartySizeCapped() { public boolean isPartySizeCapped() {
return configSectionPartyLimit.useCap; return configSectionPartyLimit.useCap;
} }
public boolean isEnablePartySystem() {
return enablePartySystem;
}
} }

View File

@ -137,7 +137,8 @@ public class mcMMO extends JavaPlugin {
registerCoreSkills(); registerCoreSkills();
registerCustomRecipes(); registerCustomRecipes();
PartyManager.loadParties(); if(getConfigManager().getConfigParty().isPartySystemEnabled())
PartyManager.loadParties();
formulaManager = new FormulaManager(); formulaManager = new FormulaManager();
holidayManager = new HolidayManager(); holidayManager = new HolidayManager();
@ -499,16 +500,21 @@ public class mcMMO extends JavaPlugin {
new UserPurgeTask().runTaskTimerAsynchronously(this, purgeIntervalTicks, purgeIntervalTicks); new UserPurgeTask().runTaskTimerAsynchronously(this, purgeIntervalTicks, purgeIntervalTicks);
} }
// Automatically remove old members from parties //Party System Stuff
long kickIntervalTicks = getConfigManager().getConfigParty().getPartyCleanup().getPartyAutoKickHoursInterval() * 60L * 60L * Misc.TICK_CONVERSION_FACTOR; if(mcMMO.configManager.getConfigParty().isPartySystemEnabled())
{
// Automatically remove old members from parties
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.
} }
else if (kickIntervalTicks > 0) { else if (kickIntervalTicks > 0) {
new PartyAutoKickTask().runTaskTimer(this, kickIntervalTicks, kickIntervalTicks); new PartyAutoKickTask().runTaskTimer(this, kickIntervalTicks, kickIntervalTicks);
}
} }
// Update power level tag scoreboards // Update power level tag scoreboards
new PowerLevelUpdatingTask().runTaskTimer(this, 2 * Misc.TICK_CONVERSION_FACTOR, 2 * Misc.TICK_CONVERSION_FACTOR); new PowerLevelUpdatingTask().runTaskTimer(this, 2 * Misc.TICK_CONVERSION_FACTOR, 2 * Misc.TICK_CONVERSION_FACTOR);

View File

@ -108,6 +108,11 @@ public final class PartyManager {
* @return true if they are in the same party, false otherwise * @return true if they are in the same party, false otherwise
*/ */
public static boolean inSameParty(Player firstPlayer, Player secondPlayer) { public static boolean inSameParty(Player firstPlayer, Player secondPlayer) {
//If the party system is disabled, return false
if(!mcMMO.getConfigManager().getConfigParty().isPartySystemEnabled())
return false;
Party firstParty = UserManager.getPlayer(firstPlayer).getParty(); Party firstParty = UserManager.getPlayer(firstPlayer).getParty();
Party secondParty = UserManager.getPlayer(secondPlayer).getParty(); Party secondParty = UserManager.getPlayer(secondPlayer).getParty();
@ -119,6 +124,11 @@ public final class PartyManager {
} }
public static boolean areAllies(Player firstPlayer, Player secondPlayer) { public static boolean areAllies(Player firstPlayer, Player secondPlayer) {
//If the party system is disabled, return false
if(!mcMMO.getConfigManager().getConfigParty().isPartySystemEnabled())
return false;
Party firstParty = UserManager.getPlayer(firstPlayer).getParty(); Party firstParty = UserManager.getPlayer(firstPlayer).getParty();
Party secondParty = UserManager.getPlayer(secondPlayer).getParty(); Party secondParty = UserManager.getPlayer(secondPlayer).getParty();
@ -217,6 +227,10 @@ public final class PartyManager {
* @return the existing party, null otherwise * @return the existing party, null otherwise
*/ */
public static Party getParty(String partyName) { public static Party getParty(String partyName) {
//If the party system is disabled, return null
if(!mcMMO.getConfigManager().getConfigParty().isPartySystemEnabled())
return null;
for (Party party : parties) { for (Party party : parties) {
if (party.getName().equalsIgnoreCase(partyName)) { if (party.getName().equalsIgnoreCase(partyName)) {
return party; return party;
@ -234,6 +248,10 @@ public final class PartyManager {
*/ */
@Deprecated @Deprecated
public static Party getPlayerParty(String playerName) { public static Party getPlayerParty(String playerName) {
//If the party system is disabled, return null
if(!mcMMO.getConfigManager().getConfigParty().isPartySystemEnabled())
return null;
for (Party party : parties) { for (Party party : parties) {
if (party.getMembers().keySet().contains(playerName)) { if (party.getMembers().keySet().contains(playerName)) {
return party; return party;
@ -250,6 +268,10 @@ public final class PartyManager {
* @return the existing party, null otherwise * @return the existing party, null otherwise
*/ */
public static Party getPlayerParty(String playerName, UUID uuid) { public static Party getPlayerParty(String playerName, UUID uuid) {
//If the party system is disabled, return null
if(!mcMMO.getConfigManager().getConfigParty().isPartySystemEnabled())
return null;
for (Party party : parties) { for (Party party : parties) {
LinkedHashMap<UUID, String> members = party.getMembers(); LinkedHashMap<UUID, String> members = party.getMembers();
if (members.keySet().contains(uuid) || members.values().contains(playerName)) { if (members.keySet().contains(uuid) || members.values().contains(playerName)) {