1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-11-29 05:55:27 +01:00

User defined actionbar and boosbar update types

This commit is contained in:
Zrips 2024-09-28 18:33:25 +03:00
parent 4d94195146
commit 00a50da871
8 changed files with 188 additions and 65 deletions

View File

@ -9,6 +9,7 @@ import org.bukkit.entity.Player;
import com.gamingmesh.jobs.Jobs; import com.gamingmesh.jobs.Jobs;
import com.gamingmesh.jobs.commands.Cmd; import com.gamingmesh.jobs.commands.Cmd;
import com.gamingmesh.jobs.container.JobsPlayer; import com.gamingmesh.jobs.container.JobsPlayer;
import com.gamingmesh.jobs.container.MessageToggleState;
import com.gamingmesh.jobs.i18n.Language; import com.gamingmesh.jobs.i18n.Language;
import com.gamingmesh.jobs.stuff.ToggleBarHandling; import com.gamingmesh.jobs.stuff.ToggleBarHandling;
@ -33,28 +34,23 @@ public class toggle implements Cmd {
UUID playerUUID = player.getUniqueId(); UUID playerUUID = player.getUniqueId();
if (isActionbar) { if (isActionbar) {
boolean ex = ToggleBarHandling.getActionBarToggle().getOrDefault(playerUUID, Jobs.getGCManager().ActionBarsMessageByDefault); MessageToggleState ex = ToggleBarHandling.getActionBarToggle().getOrDefault(playerUUID, Jobs.getGCManager().ActionBarsMessageDefault).getNext();
Language.sendMessage(sender, "command.toggle.output." + ex.toString());
if (ex) { ToggleBarHandling.getActionBarToggle().put(playerUUID, ex);
Language.sendMessage(sender, "command.toggle.output.off");
} else {
Language.sendMessage(sender, "command.toggle.output.on");
}
ToggleBarHandling.getActionBarToggle().put(playerUUID, !ex);
} }
if (isBossbar) { if (isBossbar) {
boolean ex = ToggleBarHandling.getBossBarToggle().getOrDefault(playerUUID, Jobs.getGCManager().BossBarsMessageByDefault); MessageToggleState ex = ToggleBarHandling.getBossBarToggle().getOrDefault(playerUUID, Jobs.getGCManager().BossBarsMessageDefault).getNext();
if (ex) { Language.sendMessage(sender, "command.toggle.output." + ex.toString());
Language.sendMessage(sender, "command.toggle.output.off");
if (ex.equals(MessageToggleState.Off)) {
JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(player.getUniqueId()); JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(player.getUniqueId());
if (jPlayer != null) if (jPlayer != null)
jPlayer.hideBossBars(); jPlayer.hideBossBars();
} else {
Language.sendMessage(sender, "command.toggle.output.on");
} }
ToggleBarHandling.getBossBarToggle().put(playerUUID, !ex);
ToggleBarHandling.getBossBarToggle().put(playerUUID, ex);
} }
return true; return true;

View File

@ -10,6 +10,7 @@ import com.gamingmesh.jobs.container.BossBarInfo;
import com.gamingmesh.jobs.container.Job; import com.gamingmesh.jobs.container.Job;
import com.gamingmesh.jobs.container.JobProgression; import com.gamingmesh.jobs.container.JobProgression;
import com.gamingmesh.jobs.container.JobsPlayer; import com.gamingmesh.jobs.container.JobsPlayer;
import com.gamingmesh.jobs.container.MessageToggleState;
import com.gamingmesh.jobs.stuff.ToggleBarHandling; import com.gamingmesh.jobs.stuff.ToggleBarHandling;
import net.Zrips.CMILib.Version.Version; import net.Zrips.CMILib.Version.Version;
@ -36,10 +37,10 @@ public class BossBarManager {
} }
public void ShowJobProgression(final JobsPlayer player, final JobProgression jobProg, double expGain) { public void ShowJobProgression(final JobsPlayer player, final JobProgression jobProg, double expGain) {
if (Version.getCurrent().isLower(Version.v1_9_R1) || !Jobs.getGCManager().BossBarsMessageByDefault) if (Version.getCurrent().isLower(Version.v1_9_R1) || Jobs.getGCManager().BossBarsMessageDefault.equals(MessageToggleState.Off))
return; return;
if (!ToggleBarHandling.getBossBarToggle().getOrDefault(player.getUniqueId(), true)) if (ToggleBarHandling.getBossBarToggle().getOrDefault(player.getUniqueId(), MessageToggleState.Rapid).equals(MessageToggleState.Off))
return; return;
showJobProgressionInTask(player, jobProg, expGain); showJobProgressionInTask(player, jobProg, expGain);

View File

@ -37,8 +37,10 @@ import org.bukkit.inventory.ItemStack;
import com.gamingmesh.jobs.Jobs; import com.gamingmesh.jobs.Jobs;
import com.gamingmesh.jobs.container.CurrencyLimit; import com.gamingmesh.jobs.container.CurrencyLimit;
import com.gamingmesh.jobs.container.CurrencyType; import com.gamingmesh.jobs.container.CurrencyType;
import com.gamingmesh.jobs.container.MessageToggleState;
import net.Zrips.CMILib.CMILib; import net.Zrips.CMILib.CMILib;
import net.Zrips.CMILib.Container.CMIArray;
import net.Zrips.CMILib.Container.CMIList; import net.Zrips.CMILib.Container.CMIList;
import net.Zrips.CMILib.Container.CMINumber; import net.Zrips.CMILib.Container.CMINumber;
import net.Zrips.CMILib.Enchants.CMIEnchantment; import net.Zrips.CMILib.Enchants.CMIEnchantment;
@ -103,15 +105,17 @@ public class GeneralConfigManager {
applyToNegativeIncome, useMinimumOveralPayment, useMinimumOveralPoints, useMinimumOveralExp, useBreederFinder, applyToNegativeIncome, useMinimumOveralPayment, useMinimumOveralPoints, useMinimumOveralExp, useBreederFinder,
CancelCowMilking, fixAtMaxLevel, TitleChangeChat, TitleChangeActionBar, LevelChangeChat, CancelCowMilking, fixAtMaxLevel, TitleChangeChat, TitleChangeActionBar, LevelChangeChat,
LevelChangeActionBar, SoundLevelupUse, SoundTitleChangeUse, UseServerAccount, EmptyServerAccountChat, LevelChangeActionBar, SoundLevelupUse, SoundTitleChangeUse, UseServerAccount, EmptyServerAccountChat,
EmptyServerAccountActionBar, ActionBarsMessageByDefault, ShowTotalWorkers, ShowPenaltyBonus, useDynamicPayment, EmptyServerAccountActionBar, ShowTotalWorkers, ShowPenaltyBonus, useDynamicPayment,
JobsGUIOpenOnBrowse, JobsGUIShowChatBrowse, JobsGUISwitcheButtons, ShowActionNames, hideItemAttributes, JobsGUIOpenOnBrowse, JobsGUIShowChatBrowse, JobsGUISwitcheButtons, ShowActionNames, hideItemAttributes,
DisableJoiningJobThroughGui, FireworkLevelupUse, UseRandom, UsePerPermissionForLeaving, DisableJoiningJobThroughGui, FireworkLevelupUse, UseRandom, UsePerPermissionForLeaving,
EnableConfirmation, jobsInfoOpensBrowse, MonsterDamageUse, MonsterDamageIgnoreBosses, tameablesPayout, useMaxPaymentCurve, blockOwnershipTakeOver, EnableConfirmation, jobsInfoOpensBrowse, MonsterDamageUse, MonsterDamageIgnoreBosses, tameablesPayout, useMaxPaymentCurve, blockOwnershipTakeOver,
hideJobsInfoWithoutPermission, UseTaxes, TransferToServerAccount, TakeFromPlayersPayment, AutoJobJoinUse, AllowDelevel, RomanNumbers, hideJobsInfoWithoutPermission, UseTaxes, TransferToServerAccount, TakeFromPlayersPayment, AutoJobJoinUse, AllowDelevel, RomanNumbers,
BossBarEnabled = false, BossBarsMessageByDefault = false, ExploreCompact, ExploreSaveIntoDatabase = false, DBCleaningJobsUse, DBCleaningUsersUse, BossBarEnabled = false, ActionBarEnabled, ExploreCompact, ExploreSaveIntoDatabase = false, DBCleaningJobsUse, DBCleaningUsersUse,
DisabledWorldsUse, UseAsWhiteListWorldList, MythicMobsEnabled, DisabledWorldsUse, UseAsWhiteListWorldList, MythicMobsEnabled,
LoggingUse, payForCombiningItems, BlastFurnacesReassign = false, SmokerReassign = false, payForStackedEntities, payForAbove = false, LoggingUse, payForCombiningItems, BlastFurnacesReassign = false, SmokerReassign = false, payForStackedEntities, payForAbove = false,
payForEachVTradeItem, allowEnchantingBoostedItems, preventShopItemEnchanting; payForEachVTradeItem, allowEnchantingBoostedItems, preventShopItemEnchanting;
public MessageToggleState BossBarsMessageDefault = MessageToggleState.Rapid;
public MessageToggleState ActionBarsMessageDefault = MessageToggleState.Rapid;
public int ActionBarsMessageKeepFor; public int ActionBarsMessageKeepFor;
@ -988,10 +992,13 @@ public class GeneralConfigManager {
"Only works when fix-at-max-level is set to false"); "Only works when fix-at-max-level is set to false");
levelLossPercentageFromMax = c.get("old-job.level-loss-from-max-level", levelLossPercentage); levelLossPercentageFromMax = c.get("old-job.level-loss-from-max-level", levelLossPercentage);
c.addComment("ActionBars.Messages.EnabledByDefault", "When this set to true player will see action bar messages by default", c.addComment("ActionBars.Enabled", "Enables ActionBar messages");
"When false, players will see chat messages instead."); ActionBarEnabled = c.get("ActionBars.Enabled", true);
ActionBarsMessageByDefault = c.get("ActionBars.Messages.EnabledByDefault", true);
c.addComment("ActionBars.Messages.KeepFor", "Time in seconds action bar will remain visible if enabled", c.addComment("ActionBars.Messages.DefaultState", "States of action bar messages", "Valid options: " + MessageToggleState.toCommaSeparatedString());
ActionBarsMessageDefault = MessageToggleState.getByName(c.get("ActionBars.Messages.DefaultState", MessageToggleState.Rapid.toString()));
c.addComment("ActionBars.Messages.KeepFor", "Time in seconds action bar will remain visible if rapid state is enabled",
"This time is used to define for how long we will accumulate payments to be shown in action bar", "This time is used to define for how long we will accumulate payments to be shown in action bar",
"If no payments are being issued in defined time then it will reset to 0 and remain hidden"); "If no payments are being issued in defined time then it will reset to 0 and remain hidden");
ActionBarsMessageKeepFor = c.get("ActionBars.Messages.KeepFor", 5); ActionBarsMessageKeepFor = c.get("ActionBars.Messages.KeepFor", 5);
@ -1000,8 +1007,8 @@ public class GeneralConfigManager {
c.addComment("BossBar.Enabled", "Enables BossBar feature", "Works only from 1.9 mc version"); c.addComment("BossBar.Enabled", "Enables BossBar feature", "Works only from 1.9 mc version");
BossBarEnabled = c.get("BossBar.Enabled", true); BossBarEnabled = c.get("BossBar.Enabled", true);
c.addComment("BossBar.Messages.EnabledByDefault", "When this set to true player will see Bossbar messages by default"); c.addComment("BossBar.Messages.DefaultState", "When this set to true player will see Bossbar messages by default");
BossBarsMessageByDefault = c.get("BossBar.Messages.EnabledByDefault", true); BossBarsMessageDefault = MessageToggleState.getByName(c.get("BossBar.Messages.DefaultState", MessageToggleState.Rapid.toString()));
c.addComment("BossBar.SegmentCount", "Defines in how many parts bossbar will be split visually", "Valid options: 1, 6, 10, 12, 20"); c.addComment("BossBar.SegmentCount", "Defines in how many parts bossbar will be split visually", "Valid options: 1, 6, 10, 12, 20");
SegmentCount = c.get("BossBar.SegmentCount", 1); SegmentCount = c.get("BossBar.SegmentCount", 1);

View File

@ -658,8 +658,9 @@ public class LanguageManager {
c.get("command.toggle.output.paid.ACexp", "&7+[exp]XP "); c.get("command.toggle.output.paid.ACexp", "&7+[exp]XP ");
c.get("command.toggle.output.paid.ACpoints", "&6+[points]pts "); c.get("command.toggle.output.paid.ACpoints", "&6+[points]pts ");
c.get("command.toggle.output.on", "&aToggled: &aON"); c.get("command.toggle.output.Rapid", "&aToggled: &7Rapid");
c.get("command.toggle.output.off", "&aToggled: &4OFF"); c.get("command.toggle.output.Batched", "&aToggled: &fBatched");
c.get("command.toggle.output.Off", "&aToggled: &6Off");
c.get("command.howmuch.help.info", "Check potential payment by target entity or block"); c.get("command.howmuch.help.info", "Check potential payment by target entity or block");
c.get("command.howmuch.help.args", ""); c.get("command.howmuch.help.args", "");

View File

@ -0,0 +1,38 @@
package com.gamingmesh.jobs.container;
import net.Zrips.CMILib.Container.CMINumber;
import net.Zrips.CMILib.Locale.LC;
public enum MessageToggleState {
Off, Rapid, Batched;
public static MessageToggleState getByName(String name) {
for (MessageToggleState state : MessageToggleState.values()) {
if (state.name().equalsIgnoreCase(name))
return state;
}
return MessageToggleState.Rapid;
}
public static MessageToggleState getFromID(int id) {
return MessageToggleState.values()[CMINumber.clamp(id, 0, MessageToggleState.values().length - 1)];
}
public static String toCommaSeparatedString() {
StringBuilder str = new StringBuilder();
for (MessageToggleState state : MessageToggleState.values()) {
if (!str.toString().isEmpty())
str.append(LC.info_ListSpliter.getLocale());
str.append(state.name());
}
return str.toString();
}
public MessageToggleState getNext() {
int index = this.ordinal();
index++;
index = index >= MessageToggleState.values().length ? 0 : index;
return MessageToggleState.values()[index];
}
}

View File

@ -177,7 +177,7 @@ public class BufferedEconomy {
economy.depositPlayer(serverTaxesAccount, taxesAmount); economy.depositPlayer(serverTaxesAccount, taxesAmount);
} }
if (Jobs.getGCManager().ActionBarsMessageByDefault && serverTaxesAccount.isOnline()) { if (serverTaxesAccount.isOnline()) {
CMIActionBar.send(Bukkit.getPlayer(serverAccountName), CMIActionBar.send(Bukkit.getPlayer(serverAccountName),
Jobs.getLanguage().getMessage("message.taxes", "[amount]", String.format(Jobs.getGCManager().getDecimalPlacesMoney(), totalAmount))); Jobs.getLanguage().getMessage("message.taxes", "[amount]", String.format(Jobs.getGCManager().getDecimalPlacesMoney(), totalAmount)));
} }

View File

@ -33,6 +33,7 @@ import com.gamingmesh.jobs.Jobs;
import com.gamingmesh.jobs.api.JobsInstancePaymentEvent; import com.gamingmesh.jobs.api.JobsInstancePaymentEvent;
import com.gamingmesh.jobs.api.JobsPaymentEvent; import com.gamingmesh.jobs.api.JobsPaymentEvent;
import com.gamingmesh.jobs.container.CurrencyType; import com.gamingmesh.jobs.container.CurrencyType;
import com.gamingmesh.jobs.container.MessageToggleState;
import com.gamingmesh.jobs.economy.BufferedPayment; import com.gamingmesh.jobs.economy.BufferedPayment;
import com.gamingmesh.jobs.stuff.ToggleBarHandling; import com.gamingmesh.jobs.stuff.ToggleBarHandling;
@ -97,38 +98,60 @@ public class JobsPaymentVisualizationListener implements Listener {
public void onJobsPaymentEvent(JobsPaymentEvent event) { public void onJobsPaymentEvent(JobsPaymentEvent event) {
if (event.isCancelled()) if (event.isCancelled())
return; return;
showPayment(event); showBatchedActionBarChatMessage(event);
} }
private static void showPayment(JobsPaymentEvent event) { private static void showBatchedActionBarChatMessage(JobsPaymentEvent event) {
if (event.getPlayer() == null || !event.getPlayer().isOnline() || event.getPayment().isEmpty()) if (event.getPlayer() == null || !event.getPlayer().isOnline() || event.getPayment().isEmpty())
return; return;
MessageToggleState state = ToggleBarHandling.getActionBarState(event.getPlayer().getUniqueId());
if (state.equals(MessageToggleState.Rapid))
return;
UUID playerUUID = event.getPlayer().getUniqueId(); UUID playerUUID = event.getPlayer().getUniqueId();
Player abp = Bukkit.getPlayer(playerUUID); Player abp = Bukkit.getPlayer(playerUUID);
if (abp == null) if (abp == null)
return; return;
if (ToggleBarHandling.getActionBarToggle().getOrDefault(playerUUID, Jobs.getGCManager().ActionBarsMessageByDefault)) if (!Jobs.getGeneralConfigManager().ActionBarEnabled) {
String message = generateDelayedMessage(event.getPayment());
if (!message.isEmpty())
abp.sendMessage(message);
return; return;
}
String message = Jobs.getLanguage().getMessage("command.toggle.output.paid.main"); if (state.equals(MessageToggleState.Batched)) {
double money = event.getPayment().get(CurrencyType.MONEY); String message = generateDelayedMessage(event.getPayment());
if (money != 0D) if (!message.isEmpty())
message += " " + Jobs.getLanguage().getMessage("command.toggle.output.paid.money", "[amount]", String.format(Jobs.getGCManager().getDecimalPlacesMoney(), money)); CMIActionBar.send(abp, message);
return;
}
double points = event.getPayment().get(CurrencyType.POINTS); String message = generateDelayedMessage(event.getPayment());
if (points != 0D)
message += " " + Jobs.getLanguage().getMessage("command.toggle.output.paid.points", "[points]", String.format(Jobs.getGCManager().getDecimalPlacesPoints(), points));
double exp = event.getPayment().get(CurrencyType.EXP);
if (exp != 0D)
message += " " + Jobs.getLanguage().getMessage("command.toggle.output.paid.exp", "[exp]", String.format(Jobs.getGCManager().getDecimalPlacesExp(), exp));
if (!message.isEmpty()) if (!message.isEmpty())
abp.sendMessage(message); abp.sendMessage(message);
}
private static String generateDelayedMessage(Map<CurrencyType, Double> payment) {
String message = Jobs.getLanguage().getMessage("command.toggle.output.paid.main");
double money = payment.get(CurrencyType.MONEY);
if (money != 0D)
message += " " + Jobs.getLanguage().getMessage("command.toggle.output.paid.money", "[amount]", String.format(Jobs.getGCManager().getDecimalPlacesMoney(), money));
double points = payment.get(CurrencyType.POINTS);
if (points != 0D)
message += " " + Jobs.getLanguage().getMessage("command.toggle.output.paid.points", "[points]", String.format(Jobs.getGCManager().getDecimalPlacesPoints(), points));
double exp = payment.get(CurrencyType.EXP);
if (exp != 0D)
message += " " + Jobs.getLanguage().getMessage("command.toggle.output.paid.exp", "[exp]", String.format(Jobs.getGCManager().getDecimalPlacesExp(), exp));
return message;
} }
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
@ -140,12 +163,41 @@ public class JobsPaymentVisualizationListener implements Listener {
if (!Version.getCurrent().isHigher(Version.v1_8_R3)) if (!Version.getCurrent().isHigher(Version.v1_8_R3))
return; return;
// Whether or not to show this on player actionbar or on chat
MessageToggleState state = ToggleBarHandling.getBossBarState(event.getPlayer().getUniqueId());
if (!state.equals(MessageToggleState.Rapid))
return;
Jobs.getBBManager().ShowJobProgression(Jobs.getPlayerManager().getJobsPlayer(event.getPlayer().getUniqueId()));
}
@EventHandler(priority = EventPriority.MONITOR)
public void onJobsPaymentEventBossBar(JobsPaymentEvent event) {
if (event.isCancelled())
return;
if (event.getPlayer() == null || !event.getPlayer().isOnline())
return;
if (!Version.getCurrent().isHigher(Version.v1_8_R3))
return;
// Whether or not to show this on player actionbar or on chat
MessageToggleState state = ToggleBarHandling.getBossBarState(event.getPlayer().getUniqueId());
if (!state.equals(MessageToggleState.Batched))
return;
Jobs.getBBManager().ShowJobProgression(Jobs.getPlayerManager().getJobsPlayer(event.getPlayer().getUniqueId())); Jobs.getBBManager().ShowJobProgression(Jobs.getPlayerManager().getJobsPlayer(event.getPlayer().getUniqueId()));
} }
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onJobsInstancePaymentActionBarEvent(JobsInstancePaymentEvent event) { public void onJobsInstancePaymentActionBarEvent(JobsInstancePaymentEvent event) {
if (!Jobs.getGeneralConfigManager().ActionBarEnabled)
return;
if (event.getPlayer() == null || !event.getPlayer().isOnline()) if (event.getPlayer() == null || !event.getPlayer().isOnline())
return; return;
@ -155,9 +207,9 @@ public class JobsPaymentVisualizationListener implements Listener {
return; return;
// Whether or not to show this on player actionbar or on chat // Whether or not to show this on player actionbar or on chat
boolean showInActionbar = ToggleBarHandling.getActionBarToggle().getOrDefault(player.getUniqueId(), Jobs.getGCManager().ActionBarsMessageByDefault); MessageToggleState state = ToggleBarHandling.getActionBarState(event.getPlayer().getUniqueId());
if (!showInActionbar) if (!state.equals(MessageToggleState.Rapid))
return; return;
paymentCache cached = getPaymentCache(player.getUniqueId(), event.getPayment()); paymentCache cached = getPaymentCache(player.getUniqueId(), event.getPayment());

View File

@ -10,11 +10,14 @@ import org.bukkit.configuration.file.FileConfiguration;
import com.gamingmesh.jobs.Jobs; import com.gamingmesh.jobs.Jobs;
import com.gamingmesh.jobs.config.YmlMaker; import com.gamingmesh.jobs.config.YmlMaker;
import com.gamingmesh.jobs.container.MessageToggleState;
import net.Zrips.CMILib.Container.CMINumber;
public class ToggleBarHandling { public class ToggleBarHandling {
static Map<UUID, Boolean> actionBarToggle = new HashMap<>(); static Map<UUID, MessageToggleState> actionBarToggle = new HashMap<>();
static Map<UUID, Boolean> bossBarToggle = new HashMap<>(); static Map<UUID, MessageToggleState> bossBarToggle = new HashMap<>();
public static void load() { public static void load() {
YmlMaker f = new YmlMaker(Jobs.getFolder(), "actionBarBossbar.yml"); YmlMaker f = new YmlMaker(Jobs.getFolder(), "actionBarBossbar.yml");
@ -28,28 +31,43 @@ public class ToggleBarHandling {
if (section != null) { if (section != null) {
for (String one : section.getKeys(false)) { for (String one : section.getKeys(false)) {
boolean boo = section.getBoolean(one);
if (boo) MessageToggleState state = MessageToggleState.Rapid;
continue;
if (section.isBoolean(one)) {
if (!section.getBoolean(one))
state = MessageToggleState.Off;
} else if (section.isInt(one)) {
int id = section.getInt(one);
state = MessageToggleState.getFromID(id);
}
try { try {
bossBarToggle.put(UUID.fromString(one), boo); bossBarToggle.put(UUID.fromString(one), state);
} catch (Throwable e) { } catch (Throwable e) {
} }
} }
} }
} }
if (Jobs.getGCManager().ActionBarsMessageByDefault) { if (Jobs.getGCManager().ActionBarEnabled) {
ConfigurationSection section = config.getConfigurationSection("actionBar"); ConfigurationSection section = config.getConfigurationSection("actionBar");
if (section != null) { if (section != null) {
for (String one : section.getKeys(false)) { for (String one : section.getKeys(false)) {
boolean boo = section.getBoolean(one);
if (boo) MessageToggleState state = MessageToggleState.Rapid;
continue;
if (section.isBoolean(one)) {
if (!section.getBoolean(one))
state = MessageToggleState.Off;
} else if (section.isInt(one)) {
int id = section.getInt(one);
state = MessageToggleState.getFromID(id);
}
try { try {
actionBarToggle.put(UUID.fromString(one), boo); actionBarToggle.put(UUID.fromString(one), state);
} catch (Throwable e) { } catch (Throwable e) {
} }
} }
@ -79,22 +97,20 @@ public class ToggleBarHandling {
config.set("bossBar", null); config.set("bossBar", null);
if (!bossBarToggle.isEmpty()) { if (!bossBarToggle.isEmpty()) {
for (Entry<UUID, Boolean> one : bossBarToggle.entrySet()) { for (Entry<UUID, MessageToggleState> one : bossBarToggle.entrySet()) {
if (!one.getValue()) { if (!one.getValue().equals(Jobs.getGeneralConfigManager().BossBarsMessageDefault)) {
config.set("bossBar." + one.getKey().toString(), one.getValue()); config.set("bossBar." + one.getKey().toString(), one.getValue());
} }
} }
} }
} }
if (Jobs.getGCManager().ActionBarsMessageByDefault) { config.set("actionBar", null);
config.set("actionBar", null);
if (!actionBarToggle.isEmpty()) { if (!actionBarToggle.isEmpty()) {
for (Entry<UUID, Boolean> one : actionBarToggle.entrySet()) { for (Entry<UUID, MessageToggleState> one : actionBarToggle.entrySet()) {
if (!one.getValue()) { if (!one.getValue().equals(Jobs.getGeneralConfigManager().ActionBarsMessageDefault)) {
config.set("actionBar." + one.getKey().toString(), one.getValue()); config.set("actionBar." + one.getKey().toString(), one.getValue());
}
} }
} }
} }
@ -105,11 +121,23 @@ public class ToggleBarHandling {
f.saveConfig(); f.saveConfig();
} }
public static Map<UUID, Boolean> getActionBarToggle() { public static Map<UUID, MessageToggleState> getActionBarToggle() {
return actionBarToggle; return actionBarToggle;
} }
public static Map<UUID, Boolean> getBossBarToggle() { public static Map<UUID, MessageToggleState> getBossBarToggle() {
return bossBarToggle; return bossBarToggle;
} }
public static MessageToggleState getActionBarState(UUID uuid) {
synchronized (actionBarToggle) {
return actionBarToggle.getOrDefault(uuid, Jobs.getGCManager().ActionBarsMessageDefault);
}
}
public static MessageToggleState getBossBarState(UUID uuid) {
synchronized (bossBarToggle) {
return bossBarToggle.getOrDefault(uuid, Jobs.getGCManager().BossBarsMessageDefault);
}
}
} }