Port greeting and farewell flags

This commit is contained in:
Alexander Söderberg 2020-02-16 15:46:06 +01:00
parent a3192c9668
commit 70e965d5cb
12 changed files with 101 additions and 42 deletions

View File

@ -554,6 +554,7 @@ public enum Captions implements Caption {
FLAG_DESCRIPTION_DENY_EXIT("Set to 'true' to disallow players from exiting the plot.", "Flags"),
FLAG_DESCRIPTION_DESCRIPTION("Plot description. Supports '&' color codes.", "Flags"),
FLAG_DESCRIPTION_GREETING("Message sent to players on plot entry. Supports '&' color codes.", "Flags"),
FLAG_DESCRIPTION_FAREWELL("Message sent to players when leaving the plot. Supports '&' color codes.", "Flags"),
//</editor-fold>
//<editor-fold desc="Flag category errors">
FLAG_ERROR_BOOLEAN("Flag value must be a boolean (true|false)", "Flags"),

View File

@ -8,8 +8,6 @@ public final class Flags {
public static final IntegerListFlag ANALYSIS =
(IntegerListFlag) new IntegerListFlag("analysis").reserve();
public static final StringFlag GREETING = new StringFlag("greeting");
public static final StringFlag FAREWELL = new StringFlag("farewell");
public static final IntervalFlag FEED = new IntervalFlag("feed");
public static final IntervalFlag HEAL = new IntervalFlag("heal");
public static final GameModeFlag GAMEMODE = new GameModeFlag("gamemode");

View File

@ -3,7 +3,9 @@ package com.github.intellectualsites.plotsquared.plot.flags;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DenyExitFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DescriptionFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.ExplosionFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.FarewellFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.FlightFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.GreetingFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.MusicFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.UntrustedVisitFlag;
import lombok.Getter;
@ -31,6 +33,8 @@ public final class GlobalFlagContainer extends FlagContainer {
this.addFlag(UntrustedVisitFlag.UNTRUSTED_VISIT_FLAG_TRUE);
this.addFlag(DenyExitFlag.DENY_EXIT_FLAG_TRUE);
this.addFlag(DescriptionFlag.DESCRIPTION_FLAG_EMPTY);
this.addFlag(GreetingFlag.GREETING_FLAG_EMPTY);
this.addFlag(FarewellFlag.FAREWELL_FLAG_EMPTY);
}
@Override public PlotFlag<?, ?> getFlagErased(Class<?> flagClass) {

View File

@ -0,0 +1,4 @@
package com.github.intellectualsites.plotsquared.plot.flags;
public interface InternalFlag {
}

View File

@ -25,7 +25,7 @@ public class DescriptionFlag extends PlotFlag<String, DescriptionFlag> {
}
@Override public String getExample() {
return "&6Welcome to my plot!";
return "&6This is my plot!";
}
@Override protected DescriptionFlag flagOf(@NotNull String value) {

View File

@ -20,4 +20,5 @@ public class ExplosionFlag extends BooleanFlag<ExplosionFlag> {
@Override protected ExplosionFlag flagOf(@NotNull Boolean value) {
return value ? EXPLOSION_TRUE : EXPLOSION_FALSE;
}
}

View File

@ -0,0 +1,35 @@
package com.github.intellectualsites.plotsquared.plot.flags.implementations;
import com.github.intellectualsites.plotsquared.plot.config.Captions;
import com.github.intellectualsites.plotsquared.plot.flags.PlotFlag;
import org.jetbrains.annotations.NotNull;
public class FarewellFlag extends PlotFlag<String, FarewellFlag> {
public static final FarewellFlag FAREWELL_FLAG_EMPTY = new FarewellFlag("");
protected FarewellFlag(@NotNull String value) {
super(value, Captions.FLAG_CATEGORY_STRING, Captions.FLAG_DESCRIPTION_FAREWELL);
}
@Override public FarewellFlag parse(@NotNull String input) {
return flagOf(input);
}
@Override public FarewellFlag merge(@NotNull String newValue) {
return flagOf(this.getValue() + " " + newValue);
}
@Override public String toString() {
return this.getValue();
}
@Override public String getExample() {
return "&cBye :(";
}
@Override protected FarewellFlag flagOf(@NotNull String value) {
return new FarewellFlag(value);
}
}

View File

@ -19,4 +19,5 @@ public class FlightFlag extends BooleanFlag<FlightFlag> {
@Override protected FlightFlag flagOf(@NotNull Boolean value) {
return new FlightFlag(value);
}
}

View File

@ -0,0 +1,35 @@
package com.github.intellectualsites.plotsquared.plot.flags.implementations;
import com.github.intellectualsites.plotsquared.plot.config.Captions;
import com.github.intellectualsites.plotsquared.plot.flags.PlotFlag;
import org.jetbrains.annotations.NotNull;
public class GreetingFlag extends PlotFlag<String, GreetingFlag> {
public static final GreetingFlag GREETING_FLAG_EMPTY = new GreetingFlag("");
protected GreetingFlag(@NotNull String value) {
super(value, Captions.FLAG_CATEGORY_STRING, Captions.FLAG_DESCRIPTION_GREETING);
}
@Override public GreetingFlag parse(@NotNull String input) {
return flagOf(input);
}
@Override public GreetingFlag merge(@NotNull String newValue) {
return flagOf(this.getValue() + " " + newValue);
}
@Override public String toString() {
return this.getValue();
}
@Override public String getExample() {
return "&6Welcome to my plot!";
}
@Override protected GreetingFlag flagOf(@NotNull String value) {
return new GreetingFlag(value);
}
}

View File

@ -19,4 +19,5 @@ public class UntrustedVisitFlag extends BooleanFlag<UntrustedVisitFlag> {
@Override protected UntrustedVisitFlag flagOf(@NotNull Boolean value) {
return new UntrustedVisitFlag(value);
}
}

View File

@ -6,7 +6,9 @@ import com.github.intellectualsites.plotsquared.plot.flag.Flag;
import com.github.intellectualsites.plotsquared.plot.flag.FlagManager;
import com.github.intellectualsites.plotsquared.plot.flag.Flags;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DenyExitFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.FarewellFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.FlightFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.GreetingFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.MusicFlag;
import com.github.intellectualsites.plotsquared.plot.object.Location;
import com.github.intellectualsites.plotsquared.plot.object.Plot;
@ -60,7 +62,7 @@ public class PlotListener {
} else {
titles = Settings.TITLES;
}
final String greeting;
String greeting;
if (flags.isEmpty()) {
if (titles) {
greeting = "";
@ -69,9 +71,9 @@ public class PlotListener {
}
} else {
titles = plot.getFlag(Flags.TITLES, titles);
Optional<String> greetingFlag = plot.getFlag(Flags.GREETING);
if (greetingFlag.isPresent()) {
greeting = greetingFlag.get();
greeting = plot.getFlag(GreetingFlag.class);
if (!greeting.isEmpty()) {
MainUtil
.format(Captions.PREFIX_GREETING.getTranslated() + greeting, plot, player,
false,
@ -80,8 +82,6 @@ public class PlotListener {
MainUtil.sendMessage(player, value);
}
});
} else {
greeting = "";
}
Optional<Boolean> enter = plot.getFlag(Flags.NOTIFY_ENTER);
if (enter.isPresent() && enter.get()) {
@ -234,14 +234,18 @@ public class PlotListener {
}
}
}
Optional<String> farewell = plot.getFlag(Flags.FAREWELL);
farewell.ifPresent(s -> MainUtil
.format(Captions.PREFIX_FAREWELL.getTranslated() + s, plot, player, false,
final String farewell = plot.getFlag(FarewellFlag.class);
if (!farewell.isEmpty()) {
MainUtil
.format(Captions.PREFIX_FAREWELL.getTranslated() + farewell, plot, player, false,
new RunnableVal<String>() {
@Override public void run(String value) {
MainUtil.sendMessage(player, value);
}
}));
});
}
Optional<Boolean> leave = plot.getFlag(Flags.NOTIFY_LEAVE);
if (leave.isPresent() && leave.get()) {
if (!Permissions.hasPermission(player, "plots.flag.notify-enter.bypass")) {

View File

@ -1,8 +1,5 @@
package com.github.intellectualsites.plotsquared.plot.object;
import com.github.intellectualsites.plotsquared.plot.flag.Flag;
import com.github.intellectualsites.plotsquared.plot.flag.Flags;
import com.github.intellectualsites.plotsquared.plot.flags.FlagContainer;
import com.github.intellectualsites.plotsquared.plot.object.comment.PlotComment;
import com.google.common.collect.ImmutableList;
@ -118,28 +115,6 @@ public class PlotSettings {
this.alias = alias;
}
public String getJoinMessage(PlotArea area) {
if (flags.containsKey(Flags.GREETING)) {
return (String) flags.get(Flags.GREETING);
} else {
return "";
}
}
/**
* Get the "farewell" flag value.
*
* @param plotArea The PlotArea
* @return Farewell flag
*/
public String getLeaveMessage(PlotArea plotArea) {
if (flags.containsKey(Flags.FAREWELL)) {
return (String) flags.get(Flags.FAREWELL);
} else {
return "";
}
}
@SuppressWarnings({"UnstableApiUsage"}) public List<PlotComment> getComments(String inbox) {
if (this.comments == null) {
return Collections.emptyList();