From 3a21a913c61ba00323530f644dff7fa06101ed7d Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 18 Mar 2019 07:46:33 -0700 Subject: [PATCH] Added toggle to disable party system --- Changelog.txt | 2 ++ .../nossr50/commands/party/PartyCommand.java | 5 +++++ .../config/hocon/party/ConfigParty.java | 2 ++ .../party/ConfigSectionPartyGeneral.java | 10 +++++++++ src/main/java/com/gmail/nossr50/mcMMO.java | 22 ++++++++++++------- .../com/gmail/nossr50/party/PartyManager.java | 22 +++++++++++++++++++ 6 files changed, 55 insertions(+), 8 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index a6a1afd09..7e2ddfa07 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -10,6 +10,7 @@ Key: Version 2.2.0 mcMMO's config system has been rewritten 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 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 (-) @@ -45,6 +46,7 @@ Version 2.2.0 Particle settings will now be found in "particle_spawning.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 "AutoKick_Interval" renamed -> "Hours-Between-Cleanup-Operations" Party's "Old_Party_Member_Cutoff" renamed -> "Offline-Day-Limit" diff --git a/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java index 994ff69f2..0d32da932 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java @@ -6,6 +6,7 @@ import com.gmail.nossr50.commands.party.teleport.PtpCommand; import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.commands.CommandUtils; import com.gmail.nossr50.util.player.UserManager; @@ -59,6 +60,10 @@ public class PartyCommand implements TabExecutor { @Override 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)) { return true; } diff --git a/src/main/java/com/gmail/nossr50/config/hocon/party/ConfigParty.java b/src/main/java/com/gmail/nossr50/config/hocon/party/ConfigParty.java index ab0850086..0eee76800 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/party/ConfigParty.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/party/ConfigParty.java @@ -91,6 +91,8 @@ public class ConfigParty { return partyCombat.isPartyFriendlyFire(); } + public boolean isPartySystemEnabled() { return partyGeneral.isEnablePartySystem(); } + /* diff --git a/src/main/java/com/gmail/nossr50/config/hocon/party/ConfigSectionPartyGeneral.java b/src/main/java/com/gmail/nossr50/config/hocon/party/ConfigSectionPartyGeneral.java index b134d96f5..0433201c6 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/party/ConfigSectionPartyGeneral.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/party/ConfigSectionPartyGeneral.java @@ -6,9 +6,15 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; @ConfigSerializable public class ConfigSectionPartyGeneral { + public static final boolean PARTY_SYSTEM_DEFAULT = true; + @Setting(value = "Party-Limitations") 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() { return configSectionPartyLimit.partyMaxSize; } @@ -16,4 +22,8 @@ public class ConfigSectionPartyGeneral { public boolean isPartySizeCapped() { return configSectionPartyLimit.useCap; } + + public boolean isEnablePartySystem() { + return enablePartySystem; + } } diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index f8e2a933d..2e659f4e7 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -137,7 +137,8 @@ public class mcMMO extends JavaPlugin { registerCoreSkills(); registerCustomRecipes(); - PartyManager.loadParties(); + if(getConfigManager().getConfigParty().isPartySystemEnabled()) + PartyManager.loadParties(); formulaManager = new FormulaManager(); holidayManager = new HolidayManager(); @@ -499,16 +500,21 @@ public class mcMMO extends JavaPlugin { new UserPurgeTask().runTaskTimerAsynchronously(this, purgeIntervalTicks, purgeIntervalTicks); } - // Automatically remove old members from parties - long kickIntervalTicks = getConfigManager().getConfigParty().getPartyCleanup().getPartyAutoKickHoursInterval() * 60L * 60L * Misc.TICK_CONVERSION_FACTOR; + //Party System Stuff + 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) { - new PartyAutoKickTask().runTaskLater(this, 2 * Misc.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup. - } - else if (kickIntervalTicks > 0) { - new PartyAutoKickTask().runTaskTimer(this, kickIntervalTicks, kickIntervalTicks); + if (kickIntervalTicks == 0) { + new PartyAutoKickTask().runTaskLater(this, 2 * Misc.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup. + } + else if (kickIntervalTicks > 0) { + new PartyAutoKickTask().runTaskTimer(this, kickIntervalTicks, kickIntervalTicks); + } } + // Update power level tag scoreboards new PowerLevelUpdatingTask().runTaskTimer(this, 2 * Misc.TICK_CONVERSION_FACTOR, 2 * Misc.TICK_CONVERSION_FACTOR); diff --git a/src/main/java/com/gmail/nossr50/party/PartyManager.java b/src/main/java/com/gmail/nossr50/party/PartyManager.java index 6e8be4b01..326fd82d4 100644 --- a/src/main/java/com/gmail/nossr50/party/PartyManager.java +++ b/src/main/java/com/gmail/nossr50/party/PartyManager.java @@ -108,6 +108,11 @@ public final class PartyManager { * @return true if they are in the same party, false otherwise */ 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 secondParty = UserManager.getPlayer(secondPlayer).getParty(); @@ -119,6 +124,11 @@ public final class PartyManager { } 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 secondParty = UserManager.getPlayer(secondPlayer).getParty(); @@ -217,6 +227,10 @@ public final class PartyManager { * @return the existing party, null otherwise */ 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) { if (party.getName().equalsIgnoreCase(partyName)) { return party; @@ -234,6 +248,10 @@ public final class PartyManager { */ @Deprecated 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) { if (party.getMembers().keySet().contains(playerName)) { return party; @@ -250,6 +268,10 @@ public final class PartyManager { * @return the existing party, null otherwise */ 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) { LinkedHashMap members = party.getMembers(); if (members.keySet().contains(uuid) || members.values().contains(playerName)) {