package tc.oc.pgm.observers.tools; import com.google.common.collect.Lists; import java.util.List; import net.kyori.text.Component; import net.kyori.text.TranslatableComponent; import net.kyori.text.format.TextColor; import net.md_5.bungee.api.ChatColor; import org.bukkit.Material; import org.bukkit.event.inventory.ClickType; import tc.oc.pgm.api.player.MatchPlayer; import tc.oc.pgm.api.setting.SettingKey; import tc.oc.pgm.api.setting.SettingValue; import tc.oc.pgm.api.setting.Settings; import tc.oc.pgm.menu.InventoryMenu; import tc.oc.pgm.menu.InventoryMenuItem; import tc.oc.pgm.util.text.TextTranslations; public class VisibilityTool implements InventoryMenuItem { @Override public Component getName() { return TranslatableComponent.of("setting.visibility"); } @Override public ChatColor getColor() { return ChatColor.YELLOW; } @Override public List<String> getLore(MatchPlayer player) { Component status = TranslatableComponent.of( isVisible(player) ? "setting.visibility.shown" : "setting.visibility.hidden", isVisible(player) ? TextColor.GREEN : TextColor.RED); Component lore = TranslatableComponent.of("setting.visibility.lore", TextColor.GRAY, status); return Lists.newArrayList(TextTranslations.translateLegacy(lore, player.getBukkit())); } @Override public Material getMaterial(MatchPlayer player) { return isVisible(player) ? Material.EYE_OF_ENDER : Material.ENDER_PEARL; } @Override public void onInventoryClick(InventoryMenu menu, MatchPlayer player, ClickType clickType) { toggleObserverVisibility(player); menu.refreshWindow(player); } public boolean isVisible(MatchPlayer player) { return player.getSettings().getValue(SettingKey.OBSERVERS) == SettingValue.OBSERVERS_ON; } public void toggleObserverVisibility(MatchPlayer player) { Settings setting = player.getSettings(); setting.toggleValue(SettingKey.OBSERVERS); SettingKey.OBSERVERS.update(player); } }