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_DENY_EXIT("Set to 'true' to disallow players from exiting the plot.", "Flags"),
FLAG_DESCRIPTION_DESCRIPTION("Plot description. Supports '&' color codes.", "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_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>
//<editor-fold desc="Flag category errors"> //<editor-fold desc="Flag category errors">
FLAG_ERROR_BOOLEAN("Flag value must be a boolean (true|false)", "Flags"), 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 = public static final IntegerListFlag ANALYSIS =
(IntegerListFlag) new IntegerListFlag("analysis").reserve(); (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 FEED = new IntervalFlag("feed");
public static final IntervalFlag HEAL = new IntervalFlag("heal"); public static final IntervalFlag HEAL = new IntervalFlag("heal");
public static final GameModeFlag GAMEMODE = new GameModeFlag("gamemode"); 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.DenyExitFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DescriptionFlag; 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.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.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.MusicFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.UntrustedVisitFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.UntrustedVisitFlag;
import lombok.Getter; import lombok.Getter;
@ -31,6 +33,8 @@ public final class GlobalFlagContainer extends FlagContainer {
this.addFlag(UntrustedVisitFlag.UNTRUSTED_VISIT_FLAG_TRUE); this.addFlag(UntrustedVisitFlag.UNTRUSTED_VISIT_FLAG_TRUE);
this.addFlag(DenyExitFlag.DENY_EXIT_FLAG_TRUE); this.addFlag(DenyExitFlag.DENY_EXIT_FLAG_TRUE);
this.addFlag(DescriptionFlag.DESCRIPTION_FLAG_EMPTY); this.addFlag(DescriptionFlag.DESCRIPTION_FLAG_EMPTY);
this.addFlag(GreetingFlag.GREETING_FLAG_EMPTY);
this.addFlag(FarewellFlag.FAREWELL_FLAG_EMPTY);
} }
@Override public PlotFlag<?, ?> getFlagErased(Class<?> flagClass) { @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() { @Override public String getExample() {
return "&6Welcome to my plot!"; return "&6This is my plot!";
} }
@Override protected DescriptionFlag flagOf(@NotNull String value) { @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) { @Override protected ExplosionFlag flagOf(@NotNull Boolean value) {
return value ? EXPLOSION_TRUE : EXPLOSION_FALSE; 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) { @Override protected FlightFlag flagOf(@NotNull Boolean value) {
return new FlightFlag(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) { @Override protected UntrustedVisitFlag flagOf(@NotNull Boolean value) {
return new UntrustedVisitFlag(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.FlagManager;
import com.github.intellectualsites.plotsquared.plot.flag.Flags; 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.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.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.MusicFlag;
import com.github.intellectualsites.plotsquared.plot.object.Location; import com.github.intellectualsites.plotsquared.plot.object.Location;
import com.github.intellectualsites.plotsquared.plot.object.Plot; import com.github.intellectualsites.plotsquared.plot.object.Plot;
@ -60,7 +62,7 @@ public class PlotListener {
} else { } else {
titles = Settings.TITLES; titles = Settings.TITLES;
} }
final String greeting; String greeting;
if (flags.isEmpty()) { if (flags.isEmpty()) {
if (titles) { if (titles) {
greeting = ""; greeting = "";
@ -69,9 +71,9 @@ public class PlotListener {
} }
} else { } else {
titles = plot.getFlag(Flags.TITLES, titles); titles = plot.getFlag(Flags.TITLES, titles);
Optional<String> greetingFlag = plot.getFlag(Flags.GREETING);
if (greetingFlag.isPresent()) { greeting = plot.getFlag(GreetingFlag.class);
greeting = greetingFlag.get(); if (!greeting.isEmpty()) {
MainUtil MainUtil
.format(Captions.PREFIX_GREETING.getTranslated() + greeting, plot, player, .format(Captions.PREFIX_GREETING.getTranslated() + greeting, plot, player,
false, false,
@ -80,8 +82,6 @@ public class PlotListener {
MainUtil.sendMessage(player, value); MainUtil.sendMessage(player, value);
} }
}); });
} else {
greeting = "";
} }
Optional<Boolean> enter = plot.getFlag(Flags.NOTIFY_ENTER); Optional<Boolean> enter = plot.getFlag(Flags.NOTIFY_ENTER);
if (enter.isPresent() && enter.get()) { if (enter.isPresent() && enter.get()) {
@ -234,14 +234,18 @@ public class PlotListener {
} }
} }
} }
Optional<String> farewell = plot.getFlag(Flags.FAREWELL);
farewell.ifPresent(s -> MainUtil final String farewell = plot.getFlag(FarewellFlag.class);
.format(Captions.PREFIX_FAREWELL.getTranslated() + s, plot, player, false, if (!farewell.isEmpty()) {
new RunnableVal<String>() { MainUtil
@Override public void run(String value) { .format(Captions.PREFIX_FAREWELL.getTranslated() + farewell, plot, player, false,
MainUtil.sendMessage(player, value); new RunnableVal<String>() {
} @Override public void run(String value) {
})); MainUtil.sendMessage(player, value);
}
});
}
Optional<Boolean> leave = plot.getFlag(Flags.NOTIFY_LEAVE); Optional<Boolean> leave = plot.getFlag(Flags.NOTIFY_LEAVE);
if (leave.isPresent() && leave.get()) { if (leave.isPresent() && leave.get()) {
if (!Permissions.hasPermission(player, "plots.flag.notify-enter.bypass")) { if (!Permissions.hasPermission(player, "plots.flag.notify-enter.bypass")) {

View File

@ -1,8 +1,5 @@
package com.github.intellectualsites.plotsquared.plot.object; 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.github.intellectualsites.plotsquared.plot.object.comment.PlotComment;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
@ -118,28 +115,6 @@ public class PlotSettings {
this.alias = alias; 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) { @SuppressWarnings({"UnstableApiUsage"}) public List<PlotComment> getComments(String inbox) {
if (this.comments == null) { if (this.comments == null) {
return Collections.emptyList(); return Collections.emptyList();