mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 13:16:45 +01:00
This commit is contained in:
parent
a4dd5bb62f
commit
469d6ab907
@ -57,6 +57,7 @@ public class Info extends SubCommand {
|
|||||||
case "id":
|
case "id":
|
||||||
case "size":
|
case "size":
|
||||||
case "members":
|
case "members":
|
||||||
|
case "creationdate":
|
||||||
case "seen":
|
case "seen":
|
||||||
case "owner":
|
case "owner":
|
||||||
case "rating":
|
case "rating":
|
||||||
@ -175,6 +176,8 @@ public class Info extends SubCommand {
|
|||||||
return TranslatableCaption.of("info.plot_info_likes");
|
return TranslatableCaption.of("info.plot_info_likes");
|
||||||
case "seen":
|
case "seen":
|
||||||
return TranslatableCaption.of("info.plot_info_seen");
|
return TranslatableCaption.of("info.plot_info_seen");
|
||||||
|
case "creationdate":
|
||||||
|
return TranslatableCaption.of("info.plot_info_creationdate");
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -438,6 +438,16 @@ public class Settings extends Config {
|
|||||||
public static String DELETE_URL = "https://sw.jacobandersen.dev/delete/{key}";
|
public static String DELETE_URL = "https://sw.jacobandersen.dev/delete/{key}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Comment("Used to format the plot creation date placeholder. Modifying the format does not affect the storage time.")
|
||||||
|
public static class Timeformat {
|
||||||
|
|
||||||
|
@Comment("The date used formatted in ISO 8601")
|
||||||
|
public static String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss z";
|
||||||
|
|
||||||
|
@Comment("The time zone used")
|
||||||
|
public static String TIME_ZONE = "GMT";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Comment("Miscellaneous settings")
|
@Comment("Miscellaneous settings")
|
||||||
public static final class Done {
|
public static final class Done {
|
||||||
|
@ -84,10 +84,12 @@ import org.slf4j.LoggerFactory;
|
|||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayDeque;
|
import java.util.ArrayDeque;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -95,6 +97,7 @@ import java.util.Map;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.TimeZone;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@ -2726,6 +2729,11 @@ public class Plot {
|
|||||||
} else {
|
} else {
|
||||||
areaTemplate = Template.of("area", TranslatableCaption.of("info.none").getComponent(player));
|
areaTemplate = Template.of("area", TranslatableCaption.of("info.none").getComponent(player));
|
||||||
}
|
}
|
||||||
|
long creationDate = Long.parseLong(String.valueOf(timestamp));
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat(Settings.Timeformat.DATE_FORMAT);
|
||||||
|
sdf.setTimeZone(TimeZone.getTimeZone(Settings.Timeformat.TIME_ZONE));
|
||||||
|
String newDate = sdf.format(creationDate);
|
||||||
|
|
||||||
Template idTemplate = Template.of("id", this.getId().toString());
|
Template idTemplate = Template.of("id", this.getId().toString());
|
||||||
Template aliasTemplate = Template.of("alias", alias);
|
Template aliasTemplate = Template.of("alias", alias);
|
||||||
Template numTemplate = Template.of("num", String.valueOf(num));
|
Template numTemplate = Template.of("num", String.valueOf(num));
|
||||||
@ -2739,6 +2747,7 @@ public class Plot {
|
|||||||
Template deniedTemplate = Template.of("denied", denied);
|
Template deniedTemplate = Template.of("denied", denied);
|
||||||
Template seenTemplate = Template.of("seen", seen);
|
Template seenTemplate = Template.of("seen", seen);
|
||||||
Template flagsTemplate = Template.of("flags", flags);
|
Template flagsTemplate = Template.of("flags", flags);
|
||||||
|
Template creationTemplate = Template.of("creationdate", newDate);
|
||||||
Template buildTemplate = Template.of("build", String.valueOf(build));
|
Template buildTemplate = Template.of("build", String.valueOf(build));
|
||||||
if (iInfo.getComponent(player).contains("<rating>")) {
|
if (iInfo.getComponent(player).contains("<rating>")) {
|
||||||
TaskManager.runTaskAsync(() -> {
|
TaskManager.runTaskAsync(() -> {
|
||||||
@ -2767,7 +2776,7 @@ public class Plot {
|
|||||||
future.complete(StaticCaption.of(MINI_MESSAGE.serialize(MINI_MESSAGE
|
future.complete(StaticCaption.of(MINI_MESSAGE.serialize(MINI_MESSAGE
|
||||||
.parse(iInfo.getComponent(player), headerTemplate, areaTemplate, idTemplate, aliasTemplate, numTemplate, descTemplate,
|
.parse(iInfo.getComponent(player), headerTemplate, areaTemplate, idTemplate, aliasTemplate, numTemplate, descTemplate,
|
||||||
biomeTemplate, ownerTemplate, membersTemplate, playerTemplate, trustedTemplate, helpersTemplate, deniedTemplate,
|
biomeTemplate, ownerTemplate, membersTemplate, playerTemplate, trustedTemplate, helpersTemplate, deniedTemplate,
|
||||||
seenTemplate, flagsTemplate, buildTemplate, ratingTemplate, footerTemplate))));
|
seenTemplate, flagsTemplate, buildTemplate, ratingTemplate, creationTemplate, footerTemplate))));
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ import com.google.common.base.Function;
|
|||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
|
import com.plotsquared.core.configuration.Settings;
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
import com.plotsquared.core.plot.Plot;
|
import com.plotsquared.core.plot.Plot;
|
||||||
import com.plotsquared.core.plot.flag.GlobalFlagContainer;
|
import com.plotsquared.core.plot.flag.GlobalFlagContainer;
|
||||||
@ -39,10 +40,12 @@ import com.plotsquared.core.util.PlayerManager;
|
|||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.TimeZone;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
|
|
||||||
@ -54,6 +57,7 @@ public final class PlaceholderRegistry {
|
|||||||
|
|
||||||
private final Map<String, Placeholder> placeholders;
|
private final Map<String, Placeholder> placeholders;
|
||||||
private final EventDispatcher eventDispatcher;
|
private final EventDispatcher eventDispatcher;
|
||||||
|
private final long timestamp = 0;
|
||||||
|
|
||||||
@Inject public PlaceholderRegistry(@Nonnull final EventDispatcher eventDispatcher) {
|
@Inject public PlaceholderRegistry(@Nonnull final EventDispatcher eventDispatcher) {
|
||||||
this.placeholders = Maps.newHashMap();
|
this.placeholders = Maps.newHashMap();
|
||||||
@ -130,6 +134,15 @@ public final class PlaceholderRegistry {
|
|||||||
}
|
}
|
||||||
return String.valueOf(PlayerManager.getPlayerList(plot.getDenied()));
|
return String.valueOf(PlayerManager.getPlayerList(plot.getDenied()));
|
||||||
});
|
});
|
||||||
|
this.createPlaceholder("currentplot_creationdate", (player, plot) -> {
|
||||||
|
if (plot.getTimestamp() == 0) {
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
long creationDate = plot.getTimestamp();
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat(Settings.Timeformat.DATE_FORMAT);
|
||||||
|
sdf.setTimeZone(TimeZone.getTimeZone(Settings.Timeformat.TIME_ZONE));
|
||||||
|
return sdf.format(creationDate);
|
||||||
|
});
|
||||||
this.createPlaceholder("has_build_rights", (player, plot) ->
|
this.createPlaceholder("has_build_rights", (player, plot) ->
|
||||||
plot.isAdded(player.getUUID()) ? "true" : "false");
|
plot.isAdded(player.getUUID()) ? "true" : "false");
|
||||||
this.createPlaceholder("currentplot_x", (player, plot) -> Integer.toString(plot.getId().getX()));
|
this.createPlaceholder("currentplot_x", (player, plot) -> Integer.toString(plot.getId().getX()));
|
||||||
|
@ -381,7 +381,7 @@
|
|||||||
"info.plot_info_unclaimed": "<prefix><gray>Plot <gold><plot></gold> is not yet claimed.</gray>",
|
"info.plot_info_unclaimed": "<prefix><gray>Plot <gold><plot></gold> is not yet claimed.</gray>",
|
||||||
"info.plot_info_header": "<dark_gray><strikethrough>--------- <reset><gold>INFO </gold><dark_gray><strikethrough>---------</dark_gray><reset>",
|
"info.plot_info_header": "<dark_gray><strikethrough>--------- <reset><gold>INFO </gold><dark_gray><strikethrough>---------</dark_gray><reset>",
|
||||||
"info.plot_info_hidden": "<prefix><red>You cannot view the information about this plot.</red>",
|
"info.plot_info_hidden": "<prefix><red>You cannot view the information about this plot.</red>",
|
||||||
"info.plot_info_format": "<header>\n<gold>ID: <gray><id></gray>\nArea: <gray><area></gray>\nAlias: <gray><alias></gray>\nOwner: <gray><owner></gray>\nBiome: <gray><biome></gray>\nCan Build: <gray><build></gray>\nRating: <gray><rating></gray>\nSeen: <gray><seen></gray>\nTrusted: <gray><trusted></gray>\nMembers: <gray><members></gray>\nDenied: <gray><denied></gray>\nFlags: <gray><flags></gray>\nDescription: <gray><desc></gray></gold>\n<footer>",
|
"info.plot_info_format": "<header>\n<gold>ID: <gray><id></gray>\nArea: <gray><area></gray>\nAlias: <gray><alias></gray>\nOwner: <gray><owner></gray>\nBiome: <gray><biome></gray>\nCan Build: <gray><build></gray>\nRating: <gray><rating></gray>\nSeen: <gray><seen></gray>\nCreation: <gray><creationdate></gray>\nTrusted: <gray><trusted></gray>\nMembers: <gray><members></gray>\nDenied: <gray><denied></gray>\nFlags: <gray><flags></gray>\nDescription: <gray><desc></gray></gold>\n<footer>",
|
||||||
"info.plot_info_footer": "<dark_gray><strikethrough>--------- <reset><gold>INFO </gold><dark_gray><strikethrough>---------<reset>",
|
"info.plot_info_footer": "<dark_gray><strikethrough>--------- <reset><gold>INFO </gold><dark_gray><strikethrough>---------<reset>",
|
||||||
"info.plot_info_trusted": "<gold>Trusted:</gold> <gray><trusted></gray>",
|
"info.plot_info_trusted": "<gold>Trusted:</gold> <gray><trusted></gray>",
|
||||||
"info.plot_info_members": "<gold>Members:</gold> <gray><members></gray>",
|
"info.plot_info_members": "<gold>Members:</gold> <gray><members></gray>",
|
||||||
@ -395,6 +395,7 @@
|
|||||||
"info.plot_info_alias": "<gold>Alias:</gold><gray> <alias></gray>",
|
"info.plot_info_alias": "<gold>Alias:</gold><gray> <alias></gray>",
|
||||||
"info.plot_info_size": "<gold>Size:</gold><gray> <size></gray>",
|
"info.plot_info_size": "<gold>Size:</gold><gray> <size></gray>",
|
||||||
"info.plot_info_seen": "<gold>Seen:</gold><gray> <seen></gray>",
|
"info.plot_info_seen": "<gold>Seen:</gold><gray> <seen></gray>",
|
||||||
|
"info.plot_info_creationdate": "<gold>Creation:</gold><gray> <creationdate></gray>",
|
||||||
"info.plot_user_list": "<gray><user></gray>",
|
"info.plot_user_list": "<gray><user></gray>",
|
||||||
"info.plot_flag_list": "<gray><flag>: <value></gray>",
|
"info.plot_flag_list": "<gray><flag>: <value></gray>",
|
||||||
"info.plot_no_description": "<prefix><gray>No description set.</gray>",
|
"info.plot_no_description": "<prefix><gray>No description set.</gray>",
|
||||||
|
Loading…
Reference in New Issue
Block a user