[UNSTABLE] Working on plot protection system

This commit is contained in:
Jesse Boyd 2015-01-24 21:40:50 -07:00
parent 90856e4424
commit 030f2df21c
13 changed files with 377 additions and 226 deletions

View File

@ -80,6 +80,7 @@ import com.intellectualcrafters.plot.events.PlayerTeleportToPlotEvent;
import com.intellectualcrafters.plot.events.PlotDeleteEvent;
import com.intellectualcrafters.plot.flag.AbstractFlag;
import com.intellectualcrafters.plot.flag.FlagManager;
import com.intellectualcrafters.plot.flag.FlagValue;
import com.intellectualcrafters.plot.generator.HybridGen;
import com.intellectualcrafters.plot.generator.HybridPlotManager;
import com.intellectualcrafters.plot.generator.HybridPlotWorld;
@ -1030,134 +1031,27 @@ public class PlotMain extends JavaPlugin implements Listener {
final List<String> intervalFlags = Arrays.asList("feed", "heal");
final List<String> stringFlags = Arrays.asList("greeting", "farewell");
for (final String flag : stringFlags) {
FlagManager.addFlag(new AbstractFlag(flag) {
@Override
public String parseValue(final String value) {
return value;
}
@Override
public String getValueDesc() {
return "Value must be a string, supports color codes (&)";
}
});
FlagManager.addFlag(new AbstractFlag(flag));
}
for (final String flag : intervalFlags) {
FlagManager.addFlag(new AbstractFlag(flag) {
@Override
public String parseValue(final String value) {
int seconds;
int amount;
final String[] values = value.split(" ");
if (values.length < 2) {
seconds = 1;
try {
amount = Integer.parseInt(values[0]);
} catch (final Exception e) {
return null;
}
} else {
try {
amount = Integer.parseInt(values[0]);
seconds = Integer.parseInt(values[1]);
} catch (final Exception e) {
return null;
}
}
return amount + " " + seconds;
}
@Override
public String getValueDesc() {
return "Value(s) must be numeric. /plot set flag {flag} {amount} [seconds]";
}
});
FlagManager.addFlag(new AbstractFlag(flag, new FlagValue.IntervalValue()));
}
for (final String flag : booleanFlags) {
FlagManager.addFlag(new AbstractFlag(flag) {
@Override
public String parseValue(final String value) {
switch (value) {
case "on":
case "1":
case "true":
case "enabled":
return "true";
case "off":
case "0":
case "false":
case "disabled":
return "false";
default:
return null;
}
}
@Override
public String getValueDesc() {
return "Value must be true/false, 1/0, on/off, enabled/disabled";
}
});
FlagManager.addFlag(new AbstractFlag(flag, new FlagValue.BooleanValue()));
}
}
private static void defaultFlags() {
addPlusFlags();
FlagManager.addFlag(new AbstractFlag("fly") {
@Override
public String parseValue(final String value) {
switch (value) {
case "on":
case "enabled":
case "true":
case "1":
return "true";
case "off":
case "disabled":
case "false":
case "0":
return "false";
default:
return null;
}
}
@Override
public String getValueDesc() {
return "Flag value must be a boolean: true, false, enabled, disabled";
}
});
FlagManager.addFlag(new AbstractFlag("fly", new FlagValue.BooleanValue()));
for (final String str : booleanFlags.values()) {
FlagManager.addFlag(new AbstractFlag(str) {
@Override
public String parseValue(final String value) {
switch (value) {
case "true":
case "1":
case "yes":
return "true";
case "false":
case "off":
case "0":
return "false";
default:
return null;
}
}
@Override
public String getValueDesc() {
return "Flag value must be a boolean: true, false";
}
});
FlagManager.addFlag(new AbstractFlag(str, new FlagValue.BooleanValue()));
}
FlagManager.addFlag(new AbstractFlag("gamemode") {
@Override
public String parseValue(final String value) {
public String parseValueRaw(final String value) {
switch (value) {
case "creative":
case "c":
@ -1182,48 +1076,13 @@ public class PlotMain extends JavaPlugin implements Listener {
}
});
FlagManager.addFlag(new AbstractFlag("price") {
@Override
public String parseValue(final String value) {
try {
double price = Double.parseDouble(value);
if (price >= 0) {
return price + "";
}
else {
return null;
}
}
catch (Exception e) {
return null;
}
}
FlagManager.addFlag(new AbstractFlag("price", new FlagValue.UnsignedDoubleValue()));
@Override
public String getValueDesc() {
return "Flag value must be a positive number representing the price of the plot'";
}
});
FlagManager.addFlag(new AbstractFlag("time") {
@Override
public String parseValue(final String value) {
try {
return Long.parseLong(value) + "";
} catch (final Exception e) {
return null;
}
}
@Override
public String getValueDesc() {
return "Flag value must be a time in ticks: 0=sunrise 12000=noon 18000=sunset 24000=night";
}
});
FlagManager.addFlag(new AbstractFlag("time", new FlagValue.LongValue()));
FlagManager.addFlag(new AbstractFlag("weather") {
@Override
public String parseValue(final String value) {
public String parseValueRaw(final String value) {
switch (value) {
case "rain":
case "storm":

View File

@ -86,7 +86,7 @@ public class Buy extends SubCommand {
if (flag == null) {
return sendMessage(plr, C.NOT_FOR_SALE);
}
double initPrice = Double.parseDouble(flag.getValue());
double initPrice = (double) flag.getValue();
double price = initPrice;
PlotId id = plot.id;
PlotId id2 = PlayerFunctions.getTopPlot(world, plot).id;

View File

@ -149,18 +149,18 @@ public class Set extends SubCommand {
}
try {
String value = StringUtils.join(Arrays.copyOfRange(args, 2, args.length), " ");
value = af.parseValue(value);
if (value == null) {
Object parsed_value = af.parseValueRaw(value);
if (parsed_value == null) {
PlayerFunctions.sendMessage(plr, af.getValueDesc());
return false;
}
if ((FlagManager.getFlag(args[1].toLowerCase()) == null) && (PlotMain.worldGuardListener != null)) {
PlotMain.worldGuardListener.addFlag(plr, plr.getWorld(), plot, args[1], value);
PlotMain.worldGuardListener.addFlag(plr, plr.getWorld(), plot, args[1], af.toString(parsed_value));
return false;
}
final Flag flag = new Flag(FlagManager.getFlag(args[1].toLowerCase(), true), value);
final Flag flag = new Flag(FlagManager.getFlag(args[1].toLowerCase(), true), parsed_value);
boolean result = FlagManager.addPlotFlag(plot, flag);
if (!result) {
PlayerFunctions.sendMessage(plr, C.FLAG_NOT_ADDED);

View File

@ -80,7 +80,7 @@ public class list extends SubCommand {
for (final Plot p : PlotMain.getPlots(plr.getWorld()).values()) {
Flag price = FlagManager.getPlotFlag(p, "price");
if (price != null) {
string.append(C.PLOT_LIST_ITEM_ORDERED.s().replaceAll("%in", idx + 1 + "").replaceAll("%id", p.id.toString()).replaceAll("%world", price.getValue()).replaceAll("%owner", getName(p.owner))).append("\n");
string.append(C.PLOT_LIST_ITEM_ORDERED.s().replaceAll("%in", idx + 1 + "").replaceAll("%id", p.id.toString()).replaceAll("%world", price.getValueString()).replaceAll("%owner", getName(p.owner))).append("\n");
idx++;
}
}

View File

@ -683,7 +683,9 @@ public class SQLManager implements AbstractDB {
if (element.contains(":")) {
final String[] split = element.split(":");
try {
flags.add(new Flag(FlagManager.getFlag(split[0], true), split[1].replaceAll("\u00AF", ":").replaceAll("<EFBFBD>", ",")));
String flag_str = split[1].replaceAll("\u00AF", ":").replaceAll("<EFBFBD>", ",");
Flag flag = new Flag(FlagManager.getFlag(split[0], true), flag_str);
flags.add(flag);
} catch (final Exception e) {
e.printStackTrace();
exception = true;
@ -756,7 +758,7 @@ public class SQLManager implements AbstractDB {
if (i != 0) {
flag_string.append(",");
}
flag_string.append(flag.getKey() + ":" + flag.getValue().replaceAll(":", "\u00AF").replaceAll(",", "\u00B4"));
flag_string.append(flag.getKey() + ":" + flag.getValueString().replaceAll(":", "\u00AF").replaceAll(",", "\u00B4"));
i++;
}
TaskManager.runTask(new Runnable() {

View File

@ -37,11 +37,10 @@ public class AbstractFlag {
public AbstractFlag(final String key) {
this(key, new FlagValue.StringValue());
}
/**
* AbstractFlag is a parameter used in creating a new Flag
*
* @param key The key must be alphabetical characters and <= 16 characters in length
* AbstractFlag is a parameter used in creating a new Flag<br>
* The key must be alphabetical characters and <= 16 characters in length
* @param key
*/
public AbstractFlag(final String key, final FlagValue<?> value) {
if (!StringUtils.isAlpha(key.replaceAll("_", "").replaceAll("-", ""))) {
@ -58,10 +57,14 @@ public class AbstractFlag {
}
}
public String parseValue(final String value) {
public Object parseValueRaw(final String value) {
return this.value.parse(value);
}
public String toString(final Object t) {
return this.value.toString(t);
}
public String getValueDesc() {
return this.value.getDescription();
}

View File

@ -25,7 +25,7 @@ import org.apache.commons.lang.StringUtils;
public class Flag {
private final AbstractFlag key;
private final String value;
private final Object value;
/**
* Flag object used to store basic information for a Plot. Flags are a key/value pair. For a flag to be usable by a
@ -49,12 +49,20 @@ public class Flag {
throw new IllegalArgumentException("Value must be <= 48 characters");
}
this.key = key;
this.value = key.parseValue(value);
this.value = key.parseValueRaw(value);
if (this.value == null) {
throw new IllegalArgumentException(key.getValueDesc());
}
}
/**
* Warning: Unchecked
*/
public Flag(final AbstractFlag key, final Object value) {
this.key = key;
this.value = value;
}
/**
* Get the AbstractFlag used in creating the flag
*
@ -78,16 +86,20 @@ public class Flag {
*
* @return String
*/
public String getValue() {
public Object getValue() {
return this.value;
}
public String getValueString() {
return this.key.toString(this.value);
}
@Override
public String toString() {
if (this.value.equals("")) {
return this.key.getKey();
}
return this.key + ":" + this.value;
return this.key + ":" + getValueString();
}
@Override

View File

@ -1,5 +1,11 @@
package com.intellectualcrafters.plot.flag;
import java.util.HashSet;
import org.apache.commons.lang.StringUtils;
import com.intellectualcrafters.plot.object.PlotBlock;
/**
* Created 2014-11-17 for PlotSquared
*
@ -9,7 +15,8 @@ public abstract class FlagValue<T> {
private final Class<T> clazz;
public FlagValue() {
@SuppressWarnings("unchecked")
public FlagValue() {
this.clazz = (Class<T>) getClass();
}
@ -23,28 +30,299 @@ public abstract class FlagValue<T> {
public boolean validValue(final Object value) {
return (value != null) && (value.getClass() == this.clazz);
}
public String toString(Object t) {
return t.toString();
}
public abstract T getValue(String t);
public abstract T getValue(Object t);
public abstract String parse(String t);
public abstract T parse(String t);
public abstract String getDescription();
public static class BooleanValue extends FlagValue<Boolean> {
@Override
public Boolean getValue(final String t) {
return null;
public Boolean getValue(final Object t) {
return (Boolean) t;
}
@Override
public String parse(final String t) {
return null;
public Boolean parse(final String t) {
try {
return Boolean.parseBoolean(t);
}
catch (IllegalArgumentException e) {
return null;
}
}
@Override
public String getDescription() {
return null;
return "Flag value must be a boolean (true|false)";
}
}
public static class IntegerValue extends FlagValue<Integer> {
@Override
public Integer getValue(final Object t) {
return (Integer) t;
}
@Override
public Integer parse(final String t) {
try {
return Integer.parseInt(t);
}
catch (IllegalArgumentException e) {
return null;
}
}
@Override
public String getDescription() {
return "Flag value must be a whole number";
}
}
public static class IntervalValue extends FlagValue<Integer[]> {
@Override
public String toString(Object t) {
Integer[] value = ((Integer[]) t);
return value[0] + " " + value[1];
}
@Override
public Integer[] getValue(final Object t) {
return (Integer[]) t;
}
@Override
public Integer[] parse(final String t) {
int seconds;
int amount;
final String[] values = t.split(" ");
if (values.length < 2) {
seconds = 1;
try {
amount = Integer.parseInt(values[0]);
} catch (final Exception e) {
return null;
}
} else {
try {
amount = Integer.parseInt(values[0]);
seconds = Integer.parseInt(values[1]);
} catch (final Exception e) {
return null;
}
}
return new Integer[]{amount, seconds};
}
@Override
public String getDescription() {
return "Value(s) must be numeric. /plot set flag {flag} {amount} [seconds]";
}
}
public static class UnsignedIntegerValue extends FlagValue<Integer> {
@Override
public Integer getValue(final Object t) {
return (Integer) t;
}
@Override
public Integer parse(final String t) {
try {
int value = Integer.parseInt(t);
if (value >= 0) {
return null;
}
return value;
}
catch (IllegalArgumentException e) {
return null;
}
}
@Override
public String getDescription() {
return "Flag value must be a positive whole number (includes 0)";
}
}
public static class DoubleValue extends FlagValue<Double> {
@Override
public Double getValue(final Object t) {
return (Double) t;
}
@Override
public Double parse(final String t) {
try {
return Double.parseDouble(t);
}
catch (IllegalArgumentException e) {
return null;
}
}
@Override
public String getDescription() {
return "Flag value must be a number (negative decimals are allowed)";
}
}
public static class LongValue extends FlagValue<Long> {
@Override
public Long getValue(final Object t) {
return (Long) t;
}
@Override
public Long parse(final String t) {
try {
return Long.parseLong(t);
}
catch (IllegalArgumentException e) {
return null;
}
}
@Override
public String getDescription() {
return "Flag value must be a whole number (large numbers allowed)";
}
}
public static class UnsignedLongValue extends FlagValue<Long> {
@Override
public Long getValue(final Object t) {
return (Long) t;
}
@Override
public Long parse(final String t) {
try {
long value = Long.parseLong(t);
if (value < 0) {
return null;
}
return value;
}
catch (IllegalArgumentException e) {
return null;
}
}
@Override
public String getDescription() {
return "Flag value must be a positive whole number (large numbers allowed)";
}
}
public static class UnsignedDoubleValue extends FlagValue<Double> {
@Override
public Double getValue(final Object t) {
return (Double) t;
}
@Override
public Double parse(final String t) {
try {
double value = Double.parseDouble(t);
if (value < 0) {
return null;
}
return value;
}
catch (IllegalArgumentException e) {
return null;
}
}
@Override
public String getDescription() {
return "Flag value must be a positive number (decimals allowed)";
}
}
public static class PlotBlockValue extends FlagValue<PlotBlock> {
@Override
public PlotBlock getValue(final Object t) {
return (PlotBlock) t;
}
@Override
public PlotBlock parse(final String t) {
try {
String[] split = t.split(":");
byte data;
if (split.length == 2) {
data = Byte.parseByte(split[1]);
}
else {
data = 0;
}
short id = Short.parseShort(split[0]);
return new PlotBlock(id, data);
}
catch (Exception e) {
return null;
}
}
@Override
public String getDescription() {
return "Flag value must be a number (negative decimals are allowed)";
}
}
public static class PlotBlockListValue extends FlagValue<HashSet<PlotBlock>> {
@Override
public String toString(Object t) {
return StringUtils.join((HashSet<PlotBlock>) t, ",");
}
@SuppressWarnings("unchecked")
@Override
public HashSet<PlotBlock> getValue(final Object t) {
return (HashSet<PlotBlock>)t;
}
@Override
public HashSet<PlotBlock> parse(final String t) {
HashSet<PlotBlock> list = new HashSet<PlotBlock>();
for (String item : t.split(",")) {
String[] split = item.split(":");
byte data;
if (split.length == 2) {
data = Byte.parseByte(split[1]);
}
else {
data = 0;
}
short id = Short.parseShort(split[0]);
PlotBlock block = new PlotBlock(id, data);
list.add(block);
}
return list;
}
@Override
public String getDescription() {
return "Flag value must be a block list";
}
}
@ -57,12 +335,12 @@ public abstract class FlagValue<T> {
@Override
public String getDescription() {
return "Flag value must be alphanumeric";
return "Flag value must be alphanumeric. Some special characters are allowed.";
}
@Override
public String getValue(final String t) {
return t;
public String getValue(final Object t) {
return t.toString();
}
}
}

View File

@ -104,7 +104,7 @@ public class ForceFieldListener implements Listener {
}
final Plot plot = PlayerFunctions.getCurrentPlot(player);
if ((FlagManager.getPlotFlag(plot, "forcefield") != null) && FlagManager.getPlotFlag(plot, "forcefield").getValue().equals("true")) {
if (!PlotListener.booleanFlag(plot, "forcefield")) {
if (!PlotListener.booleanFlag(plot, "forcefield", false)) {
if (plot.hasRights(player)) {
final Set<Player> players = getNearbyPlayers(player, plot);
for (final Player oPlayer : players) {

View File

@ -468,8 +468,8 @@ public class PlayerEvents extends com.intellectualcrafters.plot.listeners.PlotLi
}
if (PlotMain.booleanFlags.containsKey(event.getClickedBlock().getType())) {
final String flag = PlotMain.booleanFlags.get(event.getClickedBlock().getType());
if ((FlagManager.getPlotFlag(plot, flag) != null) && getFlagValue(FlagManager.getPlotFlag(plot, flag).getValue())) {
return;
if (PlotListener.booleanFlag(plot, flag, false)) {
return;
}
}
if (!plot.hasRights(event.getPlayer())) {
@ -782,10 +782,10 @@ public class PlayerEvents extends com.intellectualcrafters.plot.listeners.PlotLi
e.setCancelled(true);
return;
}
} else if (aPlr && !booleanFlag(plot, "pvp")) {
} else if (aPlr && !booleanFlag(plot, "pvp", false)) {
return;
}
if (!aPlr && !booleanFlag(plot, "pve")) {
if (!aPlr && !booleanFlag(plot, "pve", false)) {
return;
}
assert plot != null;

View File

@ -41,6 +41,7 @@ import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.events.PlayerEnterPlotEvent;
import com.intellectualcrafters.plot.events.PlayerLeavePlotEvent;
import com.intellectualcrafters.plot.flag.Flag;
import com.intellectualcrafters.plot.flag.FlagManager;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
@ -49,6 +50,7 @@ import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.titles.AbstractTitle;
import com.intellectualcrafters.plot.util.PlayerFunctions;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.sk89q.worldguard.protection.flags.BooleanFlag;
/**
* @author Citymonstret
@ -61,6 +63,18 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
p.setResourcePack(Settings.PLOT_SPECIFIC_RESOURCE_PACK);
}
}
public static boolean booleanFlag(Plot plot, String key, boolean defaultValue) {
Flag flag = FlagManager.getPlotFlag(plot, key);
if (flag == null) {
return defaultValue;
}
Object value = flag.getValue();
if (value instanceof Boolean) {
return (boolean) value;
}
return defaultValue;
}
public static boolean isInPlot(final Player player) {
return PlayerFunctions.isInPlot(player);
@ -149,27 +163,6 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
}
}
public static boolean booleanFlag(final Plot plot, final String flag) {
return (FlagManager.getPlotFlag(plot, flag) != null) && getBooleanFlag(FlagManager.getPlotFlag(plot, flag).getValue()).equals("true");
}
private static String getBooleanFlag(final String value) {
switch (value) {
case "on":
case "1":
case "true":
case "enabled":
return "true";
case "off":
case "0":
case "false":
case "disabled":
return "false";
default:
return null;
}
}
private static GameMode getGameMode(final String str) {
switch (str) {
case "creative":
@ -185,24 +178,28 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
public static void plotEntry(final Player player, final Plot plot) {
if (plot.hasOwner()) {
if (FlagManager.getPlotFlag(plot, "gamemode") != null) {
player.setGameMode(getGameMode(FlagManager.getPlotFlag(plot, "gamemode").getValue()));
Flag gamemodeFlag = FlagManager.getPlotFlag(plot, "gamemode");
if (gamemodeFlag != null) {
player.setGameMode(getGameMode(gamemodeFlag.getValueString()));
}
if (FlagManager.getPlotFlag(plot, "fly") != null) {
player.setAllowFlight(getFlagValue(FlagManager.getPlotFlag(plot, "fly").getValue()));
Flag flyFlag = FlagManager.getPlotFlag(plot, "fly");
if (flyFlag != null) {
player.setAllowFlight((boolean) flyFlag.getValue());
}
if (FlagManager.getPlotFlag(plot, "time") != null) {
Flag timeFlag = FlagManager.getPlotFlag(plot, "time");
if (timeFlag != null) {
try {
final Long time = Long.parseLong(FlagManager.getPlotFlag(plot, "time").getValue());
long time = (long) timeFlag.getValue();
player.setPlayerTime(time, true);
} catch (final Exception e) {
FlagManager.removePlotFlag(plot, "time");
}
}
if (FlagManager.getPlotFlag(plot, "weather") != null) {
player.setPlayerWeather(getWeatherType(FlagManager.getPlotFlag(plot, "weather").getValue()));
Flag weatherFlag = FlagManager.getPlotFlag(plot, "weather");
if (weatherFlag != null) {
player.setPlayerWeather(getWeatherType(weatherFlag.getValueString()));
}
if ((booleanFlag(plot, "titles") || Settings.TITLES) && (C.TITLE_ENTERED_PLOT.s().length() > 2)) {
if ((booleanFlag(plot, "titles", false) || Settings.TITLES) && (C.TITLE_ENTERED_PLOT.s().length() > 2)) {
final String sTitleMain = C.TITLE_ENTERED_PLOT.s().replaceAll("%x%", plot.id.x + "").replaceAll("%z%", plot.id.y + "").replaceAll("%world%", plot.world + "");
final String sTitleSub = C.TITLE_ENTERED_PLOT_SUB.s().replaceFirst("%s", getName(plot.owner));
final ChatColor sTitleMainColor = ChatColor.valueOf(C.TITLE_ENTERED_PLOT_COLOR.s());

View File

@ -145,7 +145,7 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
return;
}
final Plot plot = getPlot(player);
if (booleanFlag(plot, "instabreak")) {
if (booleanFlag(plot, "instabreak", false)) {
event.getBlock().breakNaturally();
}
}
@ -159,21 +159,21 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
if (!isInPlot(player)) {
return;
}
if (booleanFlag(getPlot(player), "invincible")) {
if (booleanFlag(getPlot(player), "invincible", false)) {
event.setCancelled(true);
}
}
@EventHandler
public void onItemPickup(final PlayerPickupItemEvent event) {
if (isInPlot(event.getPlayer()) && !getPlot(event.getPlayer()).hasRights(event.getPlayer()) && booleanFlag(getPlot(event.getPlayer()), "drop-protection")) {
if (isInPlot(event.getPlayer()) && !getPlot(event.getPlayer()).hasRights(event.getPlayer()) && booleanFlag(getPlot(event.getPlayer()), "drop-protection", false)) {
event.setCancelled(true);
}
}
@EventHandler
public void onItemDrop(final PlayerDropItemEvent event) {
if (isInPlot(event.getPlayer()) && !getPlot(event.getPlayer()).hasRights(event.getPlayer()) && booleanFlag(getPlot(event.getPlayer()), "item-drop")) {
if (isInPlot(event.getPlayer()) && !getPlot(event.getPlayer()).hasRights(event.getPlayer()) && booleanFlag(getPlot(event.getPlayer()), "item-drop", false)) {
event.setCancelled(true);
}
}
@ -182,9 +182,9 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
public void onPlotEnter(final PlayerEnterPlotEvent event) {
final Plot plot = event.getPlot();
if (FlagManager.getPlotFlag(plot, "greeting") != null) {
event.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', FlagManager.getPlotFlag(plot, "greeting").getValue()));
event.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', FlagManager.getPlotFlag(plot, "greeting").getValueString()));
}
if (booleanFlag(plot, "notify-enter")) {
if (booleanFlag(plot, "notify-enter", false)) {
if (plot.hasOwner()) {
final Player player = UUIDHandler.uuidWrapper.getPlayer(plot.getOwner());
@ -216,7 +216,7 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
event.getPlayer().playEffect(event.getPlayer().getLocation(), Effect.RECORD_PLAY, 0);
final Plot plot = event.getPlot();
if (FlagManager.getPlotFlag(plot, "farewell") != null) {
event.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', FlagManager.getPlotFlag(plot, "farewell").getValue()));
event.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', FlagManager.getPlotFlag(plot, "farewell").getValueString()));
}
if (feedRunnable.containsKey(event.getPlayer().getName())) {
feedRunnable.remove(event.getPlayer().getName());
@ -224,7 +224,7 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
if (healRunnable.containsKey(event.getPlayer().getName())) {
healRunnable.remove(event.getPlayer().getName());
}
if (booleanFlag(plot, "notify-leave")) {
if (booleanFlag(plot, "notify-leave", false)) {
if (plot.hasOwner()) {
final Player player = UUIDHandler.uuidWrapper.getPlayer(plot.getOwner());
if (player == null) {

View File

@ -136,7 +136,7 @@ import com.intellectualcrafters.plot.util.PlotHelper;
public String getJoinMessage() {
final Flag greeting = FlagManager.getPlotFlag(plot, "greeting");
if (greeting != null) {
return greeting.getValue();
return greeting.getValueString();
}
return "";
}
@ -149,7 +149,7 @@ import com.intellectualcrafters.plot.util.PlotHelper;
public String getLeaveMessage() {
final Flag farewell = FlagManager.getPlotFlag(plot, "farewell");
if (farewell != null) {
return farewell.getValue();
return farewell.getValueString();
}
return "";
}