mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-02 08:50:17 +01:00
Add plot descriptions & hide reserved flags from /plot info
This commit is contained in:
parent
240470fdd1
commit
1723d8266b
@ -1120,6 +1120,7 @@ public class PS {
|
|||||||
FlagManager.addFlag(new AbstractFlag("break", new FlagValue.PlotBlockListValue()));
|
FlagManager.addFlag(new AbstractFlag("break", new FlagValue.PlotBlockListValue()));
|
||||||
FlagManager.addFlag(new AbstractFlag("use", new FlagValue.PlotBlockListValue()));
|
FlagManager.addFlag(new AbstractFlag("use", new FlagValue.PlotBlockListValue()));
|
||||||
FlagManager.addFlag(new AbstractFlag("blocked-cmds", new FlagValue.StringListValue()));
|
FlagManager.addFlag(new AbstractFlag("blocked-cmds", new FlagValue.StringListValue()));
|
||||||
|
FlagManager.addFlag(new AbstractFlag("ice-met", new FlagValue.BooleanValue()));
|
||||||
FlagManager.addFlag(new AbstractFlag("gamemode") {
|
FlagManager.addFlag(new AbstractFlag("gamemode") {
|
||||||
|
|
||||||
public String parseValueRaw(final String value) {
|
public String parseValueRaw(final String value) {
|
||||||
@ -1173,6 +1174,7 @@ public class PS {
|
|||||||
return "Flag value must be weather type: 'clear' or 'rain'";
|
return "Flag value must be weather type: 'clear' or 'rain'";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
FlagManager.addFlag(new AbstractFlag("description", new FlagValue.StringValue()), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ import java.util.Collection;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.flag.Flag;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
@ -199,13 +200,16 @@ public class Info extends SubCommand {
|
|||||||
final int num = MainUtil.getPlotSelectionIds(id, id2).size();
|
final int num = MainUtil.getPlotSelectionIds(id, id2).size();
|
||||||
final String alias = plot.settings.getAlias().length() > 0 ? plot.settings.getAlias() : C.NONE.s();
|
final String alias = plot.settings.getAlias().length() > 0 ? plot.settings.getAlias() : C.NONE.s();
|
||||||
Location top = MainUtil.getPlotTopLoc(world, plot.id);
|
Location top = MainUtil.getPlotTopLoc(world, plot.id);
|
||||||
Location bot = MainUtil.getPlotBottomLoc(world, plot.id).add(1,0,1);
|
Location bot = MainUtil.getPlotBottomLoc(world, plot.id).add(1, 0, 1);
|
||||||
final String biome = BlockManager.manager.getBiome(bot.add((top.getX() - bot.getX()) / 2, 0, (top.getX() - bot.getX()) / 2));
|
final String biome = BlockManager.manager.getBiome(bot.add((top.getX() - bot.getX()) / 2, 0, (top.getX() - bot.getX()) / 2));
|
||||||
final String trusted = getPlayerList(plot.trusted);
|
final String trusted = getPlayerList(plot.trusted);
|
||||||
final String members = getPlayerList(plot.members);
|
final String members = getPlayerList(plot.members);
|
||||||
final String denied = getPlayerList(plot.denied);
|
final String denied = getPlayerList(plot.denied);
|
||||||
|
|
||||||
final String flags = StringMan.replaceFromMap("$2" + (StringUtils.join(FlagManager.getPlotFlags(plot).values(), "").length() > 0 ? StringUtils.join(FlagManager.getPlotFlags(plot).values(), "$1, $2") : C.NONE.s()), C.replacements);
|
Flag descriptionFlag = FlagManager.getPlotFlag(plot, "description");
|
||||||
|
final String description = descriptionFlag == null ? C.NONE.s() : descriptionFlag.getValueString();
|
||||||
|
|
||||||
|
final String flags = StringMan.replaceFromMap("$2" + (StringUtils.join(FlagManager.getPlotFlags(plot.world, plot.settings, true).values(), "").length() > 0 ? StringUtils.join(FlagManager.getPlotFlags(plot.world, plot.settings, true).values(), "$1, $2") : C.NONE.s()), C.replacements);
|
||||||
final boolean build = (player == null) || plot.isAdded(player.getUUID());
|
final boolean build = (player == null) || plot.isAdded(player.getUUID());
|
||||||
|
|
||||||
String owner = plot.owner == null ? "unowned" : getPlayerList(plot.getOwners());
|
String owner = plot.owner == null ? "unowned" : getPlayerList(plot.getOwners());
|
||||||
@ -214,6 +218,7 @@ public class Info extends SubCommand {
|
|||||||
info = info.replaceAll("%id%", id.toString());
|
info = info.replaceAll("%id%", id.toString());
|
||||||
info = info.replaceAll("%id2%", id2.toString());
|
info = info.replaceAll("%id2%", id2.toString());
|
||||||
info = info.replaceAll("%num%", num + "");
|
info = info.replaceAll("%num%", num + "");
|
||||||
|
info = info.replaceAll("%desc%", description);
|
||||||
info = info.replaceAll("%biome%", biome);
|
info = info.replaceAll("%biome%", biome);
|
||||||
info = info.replaceAll("%owner%", owner);
|
info = info.replaceAll("%owner%", owner);
|
||||||
info = info.replaceAll("%members%", members);
|
info = info.replaceAll("%members%", members);
|
||||||
|
@ -168,6 +168,30 @@ public class Set extends SubCommand {
|
|||||||
plot.setHome(blockloc);
|
plot.setHome(blockloc);
|
||||||
return MainUtil.sendMessage(plr, C.POSITION_SET);
|
return MainUtil.sendMessage(plr, C.POSITION_SET);
|
||||||
}
|
}
|
||||||
|
if (args[0].equalsIgnoreCase("desc")) {
|
||||||
|
if (!Permissions.hasPermission(plr, "plots.set.desc")) {
|
||||||
|
MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.set.desc");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (args.length < 2) {
|
||||||
|
MainUtil.sendMessage(plr, C.MISSING_DESC);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final StringBuilder desc = new StringBuilder();
|
||||||
|
for (int i = 1; i < args.length; i++) {
|
||||||
|
desc.append(args[i]).append(" ");
|
||||||
|
}
|
||||||
|
String descValue = desc.substring(0, desc.length() - 1);
|
||||||
|
|
||||||
|
Flag flag = new Flag(FlagManager.getFlag("description"), descValue);
|
||||||
|
final boolean result = FlagManager.addPlotFlag(plot, flag);
|
||||||
|
if (!result) {
|
||||||
|
MainUtil.sendMessage(plr, C.FLAG_NOT_ADDED);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
MainUtil.sendMessage(plr, C.DESC_SET);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
if (args[0].equalsIgnoreCase("alias")) {
|
if (args[0].equalsIgnoreCase("alias")) {
|
||||||
if (!Permissions.hasPermission(plr, "plots.set.alias")) {
|
if (!Permissions.hasPermission(plr, "plots.set.alias")) {
|
||||||
MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.set.alias");
|
MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.set.alias");
|
||||||
|
@ -227,6 +227,10 @@ public enum C {
|
|||||||
* BarAPI
|
* BarAPI
|
||||||
*/
|
*/
|
||||||
BOSSBAR_CLEARING("$2Clearing plot: $1%id%", "Bar API"),
|
BOSSBAR_CLEARING("$2Clearing plot: $1%id%", "Bar API"),
|
||||||
|
|
||||||
|
DESC_SET("$2Plot description set", "Desc"),
|
||||||
|
MISSING_DESC("$2You need to specify a description", "Desc"),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Alias
|
* Alias
|
||||||
*/
|
*/
|
||||||
|
@ -20,11 +20,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
package com.intellectualcrafters.plot.flag;
|
package com.intellectualcrafters.plot.flag;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PS;
|
import com.intellectualcrafters.plot.PS;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
@ -237,16 +233,28 @@ public class FlagManager {
|
|||||||
return getSettingFlags(plot.world, plot.settings);
|
return getSettingFlags(plot.world, plot.settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static HashMap<String, Flag> getPlotFlags(final String world, final PlotSettings settings, final boolean ignorePluginflags) {
|
||||||
|
HashMap<String, Flag> flags = new HashMap<>();
|
||||||
|
|
||||||
|
PlotWorld plotWorld = PS.get().getPlotWorld(world);
|
||||||
|
if (plotWorld != null && plotWorld.DEFAULT_FLAGS.size() != 0) {
|
||||||
|
flags.putAll(plotWorld.DEFAULT_FLAGS);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ignorePluginflags) {
|
||||||
|
for (final Map.Entry<String, Flag> flag : settings.flags.entrySet()) {
|
||||||
|
if (isReserved(flag.getValue().getAbstractFlag().getKey())) continue;
|
||||||
|
flags.put(flag.getKey(), flag.getValue());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
flags.putAll(settings.flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
public static HashMap<String, Flag> getSettingFlags(final String world, final PlotSettings settings) {
|
public static HashMap<String, Flag> getSettingFlags(final String world, final PlotSettings settings) {
|
||||||
PlotWorld plotworld = PS.get().getPlotWorld(world);
|
return getPlotFlags(world, settings, false);
|
||||||
if (plotworld == null || plotworld.DEFAULT_FLAGS.size() == 0) {
|
|
||||||
return settings.flags;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
HashMap<String, Flag> map = (HashMap<String, Flag>) plotworld.DEFAULT_FLAGS.clone();
|
|
||||||
map.putAll(settings.flags);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean removePlotFlag(final Plot plot, final String id) {
|
public static boolean removePlotFlag(final Plot plot, final String id) {
|
||||||
|
Loading…
Reference in New Issue
Block a user