diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/FlagCmd.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/FlagCmd.java index 833c0b780..35888fdde 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/FlagCmd.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/FlagCmd.java @@ -293,11 +293,12 @@ public class FlagCmd extends SubCommand { MainUtil.sendMessage(player, Captions.COMMAND_SYNTAX, "/plot flag list"); return false; } - HashMap> flags = new HashMap<>(); + final Map> flags = new HashMap<>(); for (Flag flag1 : Flags.getFlags()) { - String type = flag1.getClass().getSimpleName(); - flags.computeIfAbsent(type, k -> new ArrayList<>()); - flags.get(type).add(flag1.getName()); + final String category = flag1.getCategoryCaption(); + final Collection flagList = + flags.computeIfAbsent(category, k -> new ArrayList<>()); + flagList.add(flag1.getName()); } StringBuilder message = new StringBuilder(); String prefix = ""; diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Captions.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Captions.java index 35538a637..d0e386ea3 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Captions.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Captions.java @@ -567,9 +567,7 @@ public enum Captions { // BUCKET_ENTRIES_IGNORED("$2Total bucket values add up to 1 or more. Blocks without a specified chance will be ignored","Generator_Bucket"), - /** - * Command Categories - */ + // COMMAND_CATEGORY_CLAIMING("Claiming", "Category"), COMMAND_CATEGORY_TELEPORT("Teleport", "Category"), COMMAND_CATEGORY_SETTINGS("Protection", "Category"), @@ -579,6 +577,7 @@ public enum Captions { COMMAND_CATEGORY_INFO("Info", "Category"), COMMAND_CATEGORY_DEBUG("Debug", "Category"), COMMAND_CATEGORY_ADMINISTRATION("Admin", "Category"), + // // GRANTED_PLOTS("$1Result: $2%s $1grants left", "Grants"), @@ -586,6 +585,22 @@ public enum Captions { GRANTED_PLOT_FAILED("$1Grant failed: $2%s", "Grants"), // + // + FLAG_CATEGORY_STRING("String Flags", "Flags"), + FLAG_CATEGORY_INTEGERS("Integer Flags", "Flags"), + FLAG_CATEGORY_TELEPORT_DENY("Teleport Deny Flag", "Flags"), + FLAG_CATEGORY_STRING_LIST("String List Flags", "Flags"), + FLAG_CATEGORY_WEATHER("Weather Flags", "Flags"), + FLAG_CATEGORY_BLOCK_LIST("Material Flags", "Flags"), + FLAG_CATEGORY_INTERVALS("Interval Flags", "Flags"), + FLAG_CATEGORY_INTEGER_LIST("Integer List Flags", "Flags"), + FLAG_CATEGORY_GAMEMODE("Game Mode Flags", "Flags"), + FLAG_CATEGORY_ENUM("Generic Enum Flags", "Flags"), + FLAG_CATEGORY_DECIMAL("Decimal Flags", "Flags"), + FLAG_CATEGORY_BOOLEAN("Boolean Flags", "Flags"), + FLAG_CATEGORY_MIXED("Mixed Value Flags", "Flags"), + // + /** * Legacy Configuration Conversion */ diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/BooleanFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/BooleanFlag.java index a492c9c0f..841df766c 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/BooleanFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/BooleanFlag.java @@ -1,11 +1,12 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.object.Plot; public class BooleanFlag extends Flag { public BooleanFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_BOOLEAN, name); } @Override public String valueToString(Object value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/DoubleFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/DoubleFlag.java index 9b46a2cde..8cc665471 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/DoubleFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/DoubleFlag.java @@ -1,9 +1,11 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; + public class DoubleFlag extends Flag { public DoubleFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_DECIMAL, name); } @Override public String valueToString(Object value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/EnumFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/EnumFlag.java index 3ba6b2457..88119bbaa 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/EnumFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/EnumFlag.java @@ -1,15 +1,17 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.util.StringMan; import java.util.Arrays; import java.util.HashSet; public class EnumFlag extends Flag { + private final HashSet values; public EnumFlag(String name, String... values) { - super(name); + super(Captions.FLAG_CATEGORY_ENUM, name); this.values = new HashSet<>(Arrays.asList(values)); } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flag.java index 3b247d87a..21047d9cd 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flag.java @@ -1,13 +1,21 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.object.Plot; import com.github.intellectualsites.plotsquared.plot.util.StringComparison; +import lombok.Getter; public abstract class Flag implements StringComparison.StringComparable { + @Getter private final Captions typeCaption; private final String name; private boolean reserved = false; + public Flag(Captions typeCaption, String name) { + this.typeCaption = typeCaption; + this.name = name; + } + /** * Flag object used to store basic information for a Plot. Flags are a * key/value pair. For a flag to be usable by a player, you need to @@ -16,7 +24,7 @@ public abstract class Flag implements StringComparison.StringComparable { * @param name the flag name */ public Flag(String name) { - this.name = name; + this(null, name); } public Flag reserve() { @@ -57,4 +65,11 @@ public abstract class Flag implements StringComparison.StringComparable { @Override public String getComparableString() { return getName(); } + + public String getCategoryCaption() { + return this.typeCaption == null ? + getClass().getSimpleName() : + this.typeCaption.getTranslated(); + } + } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flags.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flags.java index fc203a00b..ed5560f09 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flags.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flags.java @@ -1,6 +1,7 @@ package com.github.intellectualsites.plotsquared.plot.flag; import com.github.intellectualsites.plotsquared.plot.PlotSquared; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.util.MainUtil; import com.github.intellectualsites.plotsquared.plot.util.MathMan; import com.github.intellectualsites.plotsquared.plot.util.StringMan; @@ -95,7 +96,7 @@ public final class Flags { public static final IntegerFlag ANIMAL_CAP = new IntegerFlag("animal-cap"); public static final IntegerFlag HOSTILE_CAP = new IntegerFlag("hostile-cap"); public static final IntegerFlag VEHICLE_CAP = new IntegerFlag("vehicle-cap"); - public static final Flag KEEP = new Flag("keep") { + public static final Flag KEEP = new Flag(Captions.FLAG_CATEGORY_MIXED, "keep") { @Override public String valueToString(Object value) { return value.toString(); } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/GameModeFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/GameModeFlag.java index 80225c2aa..26510b35b 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/GameModeFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/GameModeFlag.java @@ -1,11 +1,12 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.util.PlotGameMode; public class GameModeFlag extends Flag { public GameModeFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_GAMEMODE, name); } @Override public String valueToString(Object value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerFlag.java index 2cafed4d1..ced532cd1 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerFlag.java @@ -1,11 +1,12 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.object.Plot; public class IntegerFlag extends Flag { public IntegerFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_INTEGERS, name); } @Override public String getValueDescription() { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerListFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerListFlag.java index e46071b86..1f24cb4a3 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerListFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerListFlag.java @@ -1,5 +1,6 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.util.StringMan; import java.util.ArrayList; @@ -9,7 +10,7 @@ import java.util.List; public class IntegerListFlag extends ListFlag> { public IntegerListFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_INTEGER_LIST, name); } @Override public String valueToString(Object value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntervalFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntervalFlag.java index c8f490591..0468c59b2 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntervalFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntervalFlag.java @@ -1,5 +1,6 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -7,7 +8,7 @@ import lombok.RequiredArgsConstructor; public class IntervalFlag extends Flag { public IntervalFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_INTERVALS, name); } @Override public String valueToString(Object value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/ListFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/ListFlag.java index 518c3df11..3085288b1 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/ListFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/ListFlag.java @@ -1,11 +1,16 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.object.Plot; import java.util.Collection; public abstract class ListFlag> extends Flag { + public ListFlag(Captions typeCaption, String name) { + super(typeCaption, name); + } + public ListFlag(String name) { super(name); } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/LongFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/LongFlag.java index 464780af8..8d57e8865 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/LongFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/LongFlag.java @@ -1,9 +1,11 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; + public class LongFlag extends Flag { public LongFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_INTEGERS, name); } @Override public Long parseValue(String value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotBlockListFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotBlockListFlag.java index 4be8ac475..93bd8c56f 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotBlockListFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotBlockListFlag.java @@ -1,6 +1,7 @@ package com.github.intellectualsites.plotsquared.plot.flag; import com.github.intellectualsites.plotsquared.plot.PlotSquared; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.object.PlotBlock; import com.github.intellectualsites.plotsquared.plot.util.LegacyMappings; import com.github.intellectualsites.plotsquared.plot.util.StringMan; @@ -14,7 +15,7 @@ import java.util.stream.Collectors; public class PlotBlockListFlag extends ListFlag> { public PlotBlockListFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_BLOCK_LIST, name); } @Override public String valueToString(Object value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotWeatherFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotWeatherFlag.java index e6f93ee2d..43544748f 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotWeatherFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotWeatherFlag.java @@ -1,11 +1,12 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.util.PlotWeather; public class PlotWeatherFlag extends Flag { public PlotWeatherFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_WEATHER, name); } @Override public String valueToString(Object value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/StringFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/StringFlag.java index 36a68f66b..6438ec938 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/StringFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/StringFlag.java @@ -1,10 +1,12 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; + public class StringFlag extends Flag { public StringFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_STRING, name); } @Override public String valueToString(Object value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/StringListFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/StringListFlag.java index 8f02a3801..a1e28aa3d 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/StringListFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/StringListFlag.java @@ -1,5 +1,6 @@ package com.github.intellectualsites.plotsquared.plot.flag; +import com.github.intellectualsites.plotsquared.plot.config.Captions; import com.github.intellectualsites.plotsquared.plot.util.StringMan; import java.util.ArrayList; @@ -9,7 +10,7 @@ import java.util.List; public class StringListFlag extends ListFlag> { public StringListFlag(String name) { - super(name); + super(Captions.FLAG_CATEGORY_STRING_LIST, name); } @Override public String valueToString(Object value) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/TeleportDenyFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/TeleportDenyFlag.java index 90f6c292c..6c02516fd 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/TeleportDenyFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/TeleportDenyFlag.java @@ -4,6 +4,7 @@ import com.github.intellectualsites.plotsquared.plot.object.Plot; import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; public class TeleportDenyFlag extends EnumFlag { + public TeleportDenyFlag(String name) { super(name, "trusted", "members", "nonmembers", "nontrusted", "nonowners"); }