mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 05:06:44 +01:00
Allow PlotTitle to have a "null" mode (default plot title flag should be the configured values)
This commit is contained in:
parent
8a53b41b52
commit
4b26a7e300
@ -35,7 +35,6 @@ import com.plotsquared.core.events.PlotFlagRemoveEvent;
|
|||||||
import com.plotsquared.core.events.Result;
|
import com.plotsquared.core.events.Result;
|
||||||
import com.plotsquared.core.location.Location;
|
import com.plotsquared.core.location.Location;
|
||||||
import com.plotsquared.core.permissions.Permission;
|
import com.plotsquared.core.permissions.Permission;
|
||||||
import com.plotsquared.core.player.ConsolePlayer;
|
|
||||||
import com.plotsquared.core.player.MetaDataAccess;
|
import com.plotsquared.core.player.MetaDataAccess;
|
||||||
import com.plotsquared.core.player.PlayerMetaDataKeys;
|
import com.plotsquared.core.player.PlayerMetaDataKeys;
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
@ -297,60 +296,59 @@ public class PlotListener {
|
|||||||
String subtitle;
|
String subtitle;
|
||||||
PlotTitle titleFlag = plot.getFlag(PlotTitleFlag.class);
|
PlotTitle titleFlag = plot.getFlag(PlotTitleFlag.class);
|
||||||
boolean fromFlag;
|
boolean fromFlag;
|
||||||
if (!titleFlag.title().isEmpty() && !titleFlag.subtitle().isEmpty()) {
|
if (titleFlag.title() != null && titleFlag.subtitle() != null) {
|
||||||
title = titleFlag.title();
|
title = titleFlag.title();
|
||||||
subtitle = titleFlag.subtitle();
|
subtitle = titleFlag.subtitle();
|
||||||
fromFlag = true;
|
fromFlag = true;
|
||||||
} else {
|
} else {
|
||||||
title = TranslatableCaption.of("titles.title_entered_plot").getComponent(ConsolePlayer.getConsole());
|
title = "";
|
||||||
subtitle = TranslatableCaption.of("titles.title_entered_plot_sub").getComponent(ConsolePlayer.getConsole());
|
subtitle = "";
|
||||||
fromFlag = false;
|
fromFlag = false;
|
||||||
}
|
}
|
||||||
if (!title.isEmpty() && !subtitle.isEmpty()) {
|
// It's not actually possible for these to be null, but IntelliJ is dumb
|
||||||
TaskManager.runTaskLaterAsync(() -> {
|
TaskManager.runTaskLaterAsync(() -> {
|
||||||
Plot lastPlot;
|
Plot lastPlot;
|
||||||
try (final MetaDataAccess<Plot> lastPlotAccess =
|
try (final MetaDataAccess<Plot> lastPlotAccess =
|
||||||
player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_LAST_PLOT)) {
|
player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_LAST_PLOT)) {
|
||||||
lastPlot = lastPlotAccess.get().orElse(null);
|
lastPlot = lastPlotAccess.get().orElse(null);
|
||||||
}
|
}
|
||||||
if ((lastPlot != null) && plot.getId().equals(lastPlot.getId()) && plot.hasOwner()) {
|
if ((lastPlot != null) && plot.getId().equals(lastPlot.getId()) && plot.hasOwner()) {
|
||||||
final UUID plotOwner = plot.getOwnerAbs();
|
final UUID plotOwner = plot.getOwnerAbs();
|
||||||
String owner = PlayerManager.getName(plotOwner, false);
|
String owner = PlayerManager.getName(plotOwner, false);
|
||||||
Caption header = fromFlag ? StaticCaption.of(title) : TranslatableCaption.of("titles" +
|
Caption header = fromFlag ? StaticCaption.of(title) : TranslatableCaption.of("titles" +
|
||||||
".title_entered_plot");
|
".title_entered_plot");
|
||||||
Caption subHeader = fromFlag ? StaticCaption.of(subtitle) : TranslatableCaption.of("titles" +
|
Caption subHeader = fromFlag ? StaticCaption.of(subtitle) : TranslatableCaption.of("titles" +
|
||||||
".title_entered_plot_sub");
|
".title_entered_plot_sub");
|
||||||
Template plotTemplate = Template.of("plot", lastPlot.getId().toString());
|
Template plotTemplate = Template.of("plot", lastPlot.getId().toString());
|
||||||
Template worldTemplate = Template.of("world", player.getLocation().getWorldName());
|
Template worldTemplate = Template.of("world", player.getLocation().getWorldName());
|
||||||
Template ownerTemplate = Template.of("owner", owner);
|
Template ownerTemplate = Template.of("owner", owner);
|
||||||
|
|
||||||
final Consumer<String> userConsumer = user -> {
|
final Consumer<String> userConsumer = user -> {
|
||||||
if (Settings.Titles.TITLES_AS_ACTIONBAR) {
|
if (Settings.Titles.TITLES_AS_ACTIONBAR) {
|
||||||
player.sendActionBar(header, plotTemplate, worldTemplate, ownerTemplate);
|
player.sendActionBar(header, plotTemplate, worldTemplate, ownerTemplate);
|
||||||
} else {
|
|
||||||
player.sendTitle(header, subHeader, plotTemplate, worldTemplate, ownerTemplate);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
UUID uuid = plot.getOwner();
|
|
||||||
if (uuid == null) {
|
|
||||||
userConsumer.accept("Unknown");
|
|
||||||
} else if (uuid.equals(DBFunc.SERVER)) {
|
|
||||||
userConsumer.accept(MINI_MESSAGE.stripTokens(TranslatableCaption
|
|
||||||
.of("info.server")
|
|
||||||
.getComponent(player)));
|
|
||||||
} else {
|
} else {
|
||||||
PlotSquared.get().getImpromptuUUIDPipeline().getSingle(plot.getOwner(), (user, throwable) -> {
|
player.sendTitle(header, subHeader, plotTemplate, worldTemplate, ownerTemplate);
|
||||||
if (throwable != null) {
|
|
||||||
userConsumer.accept("Unknown");
|
|
||||||
} else {
|
|
||||||
userConsumer.accept(user);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
UUID uuid = plot.getOwner();
|
||||||
|
if (uuid == null) {
|
||||||
|
userConsumer.accept("Unknown");
|
||||||
|
} else if (uuid.equals(DBFunc.SERVER)) {
|
||||||
|
userConsumer.accept(MINI_MESSAGE.stripTokens(TranslatableCaption
|
||||||
|
.of("info.server")
|
||||||
|
.getComponent(player)));
|
||||||
|
} else {
|
||||||
|
PlotSquared.get().getImpromptuUUIDPipeline().getSingle(plot.getOwner(), (user, throwable) -> {
|
||||||
|
if (throwable != null) {
|
||||||
|
userConsumer.accept("Unknown");
|
||||||
|
} else {
|
||||||
|
userConsumer.accept(user);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}, TaskTime.seconds(1L));
|
}
|
||||||
}
|
}, TaskTime.seconds(1L));
|
||||||
}
|
}
|
||||||
|
|
||||||
TimedFlag.Timed<Integer> feed = plot.getFlag(FeedFlag.class);
|
TimedFlag.Timed<Integer> feed = plot.getFlag(FeedFlag.class);
|
||||||
|
@ -25,13 +25,21 @@
|
|||||||
*/
|
*/
|
||||||
package com.plotsquared.core.plot;
|
package com.plotsquared.core.plot;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class PlotTitle {
|
public class PlotTitle {
|
||||||
|
|
||||||
|
public static final PlotTitle CONFIGURED = new PlotTitle();
|
||||||
|
|
||||||
private final String title;
|
private final String title;
|
||||||
private final String subtitle;
|
private final String subtitle;
|
||||||
|
|
||||||
|
private PlotTitle() {
|
||||||
|
title = null;
|
||||||
|
subtitle = null;
|
||||||
|
}
|
||||||
|
|
||||||
public PlotTitle(String title, String subtitle) {
|
public PlotTitle(String title, String subtitle) {
|
||||||
Objects.requireNonNull(title);
|
Objects.requireNonNull(title);
|
||||||
Objects.requireNonNull(subtitle);
|
Objects.requireNonNull(subtitle);
|
||||||
@ -39,10 +47,12 @@ public class PlotTitle {
|
|||||||
this.subtitle = subtitle;
|
this.subtitle = subtitle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public String title() {
|
public String title() {
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public String subtitle() {
|
public String subtitle() {
|
||||||
return subtitle;
|
return subtitle;
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ import org.checkerframework.checker.nullness.qual.NonNull;
|
|||||||
|
|
||||||
public class PlotTitleFlag extends PlotFlag<PlotTitle, PlotTitleFlag> {
|
public class PlotTitleFlag extends PlotFlag<PlotTitle, PlotTitleFlag> {
|
||||||
|
|
||||||
public static final PlotTitleFlag TITLE_FLAG_EMPTY = new PlotTitleFlag(new PlotTitle("", ""));
|
public static final PlotTitleFlag TITLE_FLAG_EMPTY = new PlotTitleFlag(PlotTitle.CONFIGURED);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct a new flag instance.
|
* Construct a new flag instance.
|
||||||
|
Loading…
Reference in New Issue
Block a user