Improve /plot info formatting

This commit is contained in:
Hannes Greule 2020-12-12 18:56:19 +01:00
parent cf70efabb0
commit 6746aab7ef
4 changed files with 25 additions and 18 deletions

View File

@ -353,9 +353,9 @@ public class ListCmd extends SubCommand {
color = TranslatableCaption.of("info.plot_list_default"); color = TranslatableCaption.of("info.plot_list_default");
} }
Component trusted = MINI_MESSAGE.parse(TranslatableCaption.of("info.plot_info_trusted").getComponent(player), Component trusted = MINI_MESSAGE.parse(TranslatableCaption.of("info.plot_info_trusted").getComponent(player),
Template.of("trusted", PlayerManager.getPlayerList(plot.getTrusted()))); Template.of("trusted", PlayerManager.getPlayerList(plot.getTrusted(), player)));
Component members = MINI_MESSAGE.parse(TranslatableCaption.of("info.plot_info_members").getComponent(player), Component members = MINI_MESSAGE.parse(TranslatableCaption.of("info.plot_info_members").getComponent(player),
Template.of("members", PlayerManager.getPlayerList(plot.getMembers()))); Template.of("members", PlayerManager.getPlayerList(plot.getMembers(), player)));
Template command_tp = Template.of("command_tp", "/plot visit " + plot.getArea() + ";" + plot.getId()); Template command_tp = Template.of("command_tp", "/plot visit " + plot.getArea() + ";" + plot.getId());
Template command_info = Template.of("command_info", "/plot info " + plot.getArea() + ";" + plot.getId()); Template command_info = Template.of("command_info", "/plot info " + plot.getArea() + ";" + plot.getId());
Template hover_info = Template hover_info =

View File

@ -1514,7 +1514,7 @@ public class Plot {
/** /**
* Gets the average rating of the plot. This is the value displayed in /plot info * Gets the average rating of the plot. This is the value displayed in /plot info
* *
* @return average rating as double * @return average rating as double, {@link Double#NaN} of no ratings exist
*/ */
public double getAverageRating() { public double getAverageRating() {
Collection<Rating> ratings = this.getRatings().values(); Collection<Rating> ratings = this.getRatings().values();
@ -2669,9 +2669,9 @@ public class Plot {
String alias = !this.getAlias().isEmpty() ? this.getAlias() : TranslatableCaption.of("info.none").getComponent(player); String alias = !this.getAlias().isEmpty() ? this.getAlias() : TranslatableCaption.of("info.none").getComponent(player);
Location bot = this.getCorners()[0]; Location bot = this.getCorners()[0];
PlotSquared.platform().worldUtil().getBiome(Objects.requireNonNull(this.getWorldName()), bot.getX(), bot.getZ(), biome -> { PlotSquared.platform().worldUtil().getBiome(Objects.requireNonNull(this.getWorldName()), bot.getX(), bot.getZ(), biome -> {
Component trusted = PlayerManager.getPlayerList(this.getTrusted()); Component trusted = PlayerManager.getPlayerList(this.getTrusted(), player);
Component members = PlayerManager.getPlayerList(this.getMembers()); Component members = PlayerManager.getPlayerList(this.getMembers(), player);
Component denied = PlayerManager.getPlayerList(this.getDenied()); Component denied = PlayerManager.getPlayerList(this.getDenied(), player);
String seen; String seen;
if (Settings.Enabled_Components.PLOT_EXPIRY && ExpireManager.IMP != null) { if (Settings.Enabled_Components.PLOT_EXPIRY && ExpireManager.IMP != null) {
if (this.isOnline()) { if (this.isOnline()) {
@ -2723,7 +2723,7 @@ public class Plot {
} else if (this.getOwner().equals(DBFunc.SERVER)) { } else if (this.getOwner().equals(DBFunc.SERVER)) {
owner = Component.text(MINI_MESSAGE.stripTokens(TranslatableCaption.of("info.server").getComponent(player))); owner = Component.text(MINI_MESSAGE.stripTokens(TranslatableCaption.of("info.server").getComponent(player)));
} else { } else {
owner = PlayerManager.getPlayerList(this.getOwners()); owner = PlayerManager.getPlayerList(this.getOwners(), player);
} }
Template headerTemplate = Template.of("header", TranslatableCaption.of("info.plot_info_header").getComponent(player)); Template headerTemplate = Template.of("header", TranslatableCaption.of("info.plot_info_header").getComponent(player));
Template footerTemplate = Template.of("footer", TranslatableCaption.of("info.plot_info_footer").getComponent(player)); Template footerTemplate = Template.of("footer", TranslatableCaption.of("info.plot_info_footer").getComponent(player));
@ -2775,7 +2775,13 @@ public class Plot {
} }
ratingTemplate = Template.of("rating", rating.toString()); ratingTemplate = Template.of("rating", rating.toString());
} else { } else {
ratingTemplate = Template.of("rating", String.format("%.1f", this.getAverageRating()) + '/' + max); double rating = this.getAverageRating();
if (Double.isFinite(rating)) {
ratingTemplate = Template.of("rating", String.format("%.1f", rating) + '/' + max);
} else {
ratingTemplate = Template.of("rating",
TranslatableCaption.of("info.none").getComponent(player));
}
} }
} }
future.complete(StaticCaption.of(MINI_MESSAGE.serialize(MINI_MESSAGE future.complete(StaticCaption.of(MINI_MESSAGE.serialize(MINI_MESSAGE

View File

@ -27,7 +27,7 @@ package com.plotsquared.core.util;
import com.plotsquared.core.PlotSquared; import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.Caption; import com.plotsquared.core.configuration.caption.LocaleHolder;
import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.database.DBFunc; import com.plotsquared.core.database.DBFunc;
import com.plotsquared.core.player.ConsolePlayer; import com.plotsquared.core.player.ConsolePlayer;
@ -112,22 +112,23 @@ public abstract class PlayerManager<P extends PlotPlayer<? extends T>, T> {
* - Uses the format {@link TranslatableCaption#of(String)} of "info.plot_user_list" for the returned string * - Uses the format {@link TranslatableCaption#of(String)} of "info.plot_user_list" for the returned string
* *
* @param uuids UUIDs * @param uuids UUIDs
* @param localeHolder the localeHolder to localize the component for
* @return Component of name list * @return Component of name list
*/ */
@Nonnull public static Component getPlayerList(@Nonnull final Collection<UUID> uuids) { @Nonnull public static Component getPlayerList(@Nonnull final Collection<UUID> uuids, LocaleHolder localeHolder) {
if (uuids.size() < 1) { if (uuids.isEmpty()) {
TranslatableCaption.of("info.none"); return MINI_MESSAGE.parse(TranslatableCaption.of("info.none").getComponent(localeHolder));
} }
final List<UUID> players = new LinkedList<>(); final List<UUID> players = new LinkedList<>();
final List<String> users = new LinkedList<>(); final List<String> users = new LinkedList<>();
for (final UUID uuid : uuids) { for (final UUID uuid : uuids) {
if (uuid == null) { if (uuid == null) {
users.add(MINI_MESSAGE.stripTokens(TranslatableCaption.of("info.none").getComponent(ConsolePlayer.getConsole()))); users.add(MINI_MESSAGE.stripTokens(TranslatableCaption.of("info.none").getComponent(localeHolder)));
} else if (DBFunc.EVERYONE.equals(uuid)) { } else if (DBFunc.EVERYONE.equals(uuid)) {
users.add(MINI_MESSAGE.stripTokens(TranslatableCaption.of("info.everyone").getComponent(ConsolePlayer.getConsole()))); users.add(MINI_MESSAGE.stripTokens(TranslatableCaption.of("info.everyone").getComponent(localeHolder)));
} else if (DBFunc.SERVER.equals(uuid)) { } else if (DBFunc.SERVER.equals(uuid)) {
users.add(MINI_MESSAGE.stripTokens(TranslatableCaption.of("info.console").getComponent(ConsolePlayer.getConsole()))); users.add(MINI_MESSAGE.stripTokens(TranslatableCaption.of("info.console").getComponent(localeHolder)));
} else { } else {
players.add(uuid); players.add(uuid);
} }

View File

@ -120,19 +120,19 @@ public final class PlaceholderRegistry {
if (plot.getTrusted() == null) { if (plot.getTrusted() == null) {
return "0"; return "0";
} }
return String.valueOf(PlayerManager.getPlayerList(plot.getTrusted())); return String.valueOf(PlayerManager.getPlayerList(plot.getTrusted(), player));
}); });
this.createPlaceholder("currentplot_members_added_list", (player, plot) -> { this.createPlaceholder("currentplot_members_added_list", (player, plot) -> {
if (plot.getMembers() == null) { if (plot.getMembers() == null) {
return "0"; return "0";
} }
return String.valueOf(PlayerManager.getPlayerList(plot.getMembers())); return String.valueOf(PlayerManager.getPlayerList(plot.getMembers(), player));
}); });
this.createPlaceholder("currentplot_members_denied_list", (player, plot) -> { this.createPlaceholder("currentplot_members_denied_list", (player, plot) -> {
if (plot.getDenied() == null) { if (plot.getDenied() == null) {
return "0"; return "0";
} }
return String.valueOf(PlayerManager.getPlayerList(plot.getDenied())); return String.valueOf(PlayerManager.getPlayerList(plot.getDenied(), player));
}); });
this.createPlaceholder("currentplot_creationdate", (player, plot) -> { this.createPlaceholder("currentplot_creationdate", (player, plot) -> {
if (plot.getTimestamp() == 0) { if (plot.getTimestamp() == 0) {