mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-07-04 14:44:43 +02:00
Compare commits
1 Commits
fix/player
...
migrate-en
Author | SHA1 | Date | |
---|---|---|---|
f5972317bd |
@ -19,7 +19,6 @@
|
|||||||
package com.plotsquared.core.command;
|
package com.plotsquared.core.command;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.plotsquared.core.PlotSquared;
|
|
||||||
import com.plotsquared.core.configuration.Settings;
|
import com.plotsquared.core.configuration.Settings;
|
||||||
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;
|
||||||
@ -102,13 +101,8 @@ public class Add extends Command {
|
|||||||
Permission.PERMISSION_ADMIN_COMMAND_TRUST))) {
|
Permission.PERMISSION_ADMIN_COMMAND_TRUST))) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("errors.invalid_player"),
|
TranslatableCaption.of("errors.invalid_player"),
|
||||||
PlotSquared
|
TagResolver.resolver("value", Tag.inserting(
|
||||||
.platform()
|
PlayerManager.resolveName(uuid).toComponent(player)
|
||||||
.playerManager()
|
|
||||||
.getUsernameCaption(uuid)
|
|
||||||
.thenApply(caption -> TagResolver.resolver(
|
|
||||||
"value",
|
|
||||||
Tag.inserting(caption.toComponent(player))
|
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
@ -117,10 +111,8 @@ public class Add extends Command {
|
|||||||
if (plot.isOwner(uuid)) {
|
if (plot.isOwner(uuid)) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("member.already_added"),
|
TranslatableCaption.of("member.already_added"),
|
||||||
PlotSquared.platform().playerManager().getUsernameCaption(uuid)
|
TagResolver.resolver("player", Tag.inserting(
|
||||||
.thenApply(caption -> TagResolver.resolver(
|
PlayerManager.resolveName(uuid).toComponent(player)
|
||||||
"player",
|
|
||||||
Tag.inserting(caption.toComponent(player))
|
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
@ -129,10 +121,8 @@ public class Add extends Command {
|
|||||||
if (plot.getMembers().contains(uuid)) {
|
if (plot.getMembers().contains(uuid)) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("member.already_added"),
|
TranslatableCaption.of("member.already_added"),
|
||||||
PlotSquared.platform().playerManager().getUsernameCaption(uuid)
|
TagResolver.resolver("player", Tag.inserting(
|
||||||
.thenApply(caption -> TagResolver.resolver(
|
PlayerManager.resolveName(uuid).toComponent(player)
|
||||||
"player",
|
|
||||||
Tag.inserting(caption.toComponent(player))
|
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
|
@ -25,7 +25,6 @@ import com.plotsquared.core.player.PlotPlayer;
|
|||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CommandCategory.
|
* CommandCategory.
|
||||||
@ -83,7 +82,7 @@ public enum CommandCategory implements Caption {
|
|||||||
// TODO this method shouldn't be invoked
|
// TODO this method shouldn't be invoked
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@Override
|
@Override
|
||||||
public @NotNull String toString() {
|
public String toString() {
|
||||||
return this.caption.getComponent(LocaleHolder.console());
|
return this.caption.getComponent(LocaleHolder.console());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,5 +108,4 @@ public enum CommandCategory implements Caption {
|
|||||||
return !MainCommand.getInstance().getCommands(this, player).isEmpty();
|
return !MainCommand.getInstance().getCommands(this, player).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -117,11 +117,10 @@ public class Deny extends SubCommand {
|
|||||||
} else if (plot.getDenied().contains(uuid)) {
|
} else if (plot.getDenied().contains(uuid)) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("member.already_added"),
|
TranslatableCaption.of("member.already_added"),
|
||||||
PlotSquared.platform().playerManager().getUsernameCaption(uuid)
|
TagResolver.resolver(
|
||||||
.thenApply(caption -> TagResolver.resolver(
|
|
||||||
"player",
|
"player",
|
||||||
Tag.inserting(caption.toComponent(player))
|
Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player))
|
||||||
))
|
)
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
@ -31,6 +31,7 @@ import com.plotsquared.core.player.PlayerMetaDataKeys;
|
|||||||
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.util.EventDispatcher;
|
import com.plotsquared.core.util.EventDispatcher;
|
||||||
|
import com.plotsquared.core.util.PlayerManager;
|
||||||
import com.plotsquared.core.util.TabCompletions;
|
import com.plotsquared.core.util.TabCompletions;
|
||||||
import com.plotsquared.core.util.task.TaskManager;
|
import com.plotsquared.core.util.task.TaskManager;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@ -135,11 +136,10 @@ public class Owner extends SetCommand {
|
|||||||
if (plot.isOwner(uuid)) {
|
if (plot.isOwner(uuid)) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("member.already_owner"),
|
TranslatableCaption.of("member.already_owner"),
|
||||||
PlotSquared.platform().playerManager().getUsernameCaption(uuid)
|
TagResolver.resolver(
|
||||||
.thenApply(caption -> TagResolver.resolver(
|
|
||||||
"player",
|
"player",
|
||||||
Tag.inserting(caption.toComponent(player))
|
Tag.inserting(PlayerManager.resolveName(uuid, false).toComponent(player))
|
||||||
))
|
)
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -147,11 +147,10 @@ public class Owner extends SetCommand {
|
|||||||
if (other == null) {
|
if (other == null) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("errors.invalid_player_offline"),
|
TranslatableCaption.of("errors.invalid_player_offline"),
|
||||||
PlotSquared.platform().playerManager().getUsernameCaption(uuid)
|
TagResolver.resolver(
|
||||||
.thenApply(caption -> TagResolver.resolver(
|
|
||||||
"player",
|
"player",
|
||||||
Tag.inserting(caption.toComponent(player))
|
Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player))
|
||||||
))
|
)
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
package com.plotsquared.core.command;
|
package com.plotsquared.core.command;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.plotsquared.core.PlotSquared;
|
|
||||||
import com.plotsquared.core.configuration.Settings;
|
import com.plotsquared.core.configuration.Settings;
|
||||||
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;
|
||||||
@ -104,11 +103,10 @@ public class Trust extends Command {
|
|||||||
player.hasPermission(Permission.PERMISSION_TRUST_EVERYONE) || player.hasPermission(Permission.PERMISSION_ADMIN_COMMAND_TRUST))) {
|
player.hasPermission(Permission.PERMISSION_TRUST_EVERYONE) || player.hasPermission(Permission.PERMISSION_ADMIN_COMMAND_TRUST))) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("errors.invalid_player"),
|
TranslatableCaption.of("errors.invalid_player"),
|
||||||
PlotSquared.platform().playerManager().getUsernameCaption(uuid)
|
TagResolver.resolver(
|
||||||
.thenApply(caption -> TagResolver.resolver(
|
|
||||||
"value",
|
"value",
|
||||||
Tag.inserting(caption.toComponent(player))
|
Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player))
|
||||||
))
|
)
|
||||||
);
|
);
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
continue;
|
continue;
|
||||||
@ -116,11 +114,10 @@ public class Trust extends Command {
|
|||||||
if (currentPlot.isOwner(uuid)) {
|
if (currentPlot.isOwner(uuid)) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("member.already_added"),
|
TranslatableCaption.of("member.already_added"),
|
||||||
PlotSquared.platform().playerManager().getUsernameCaption(uuid)
|
TagResolver.resolver(
|
||||||
.thenApply(caption -> TagResolver.resolver(
|
"value",
|
||||||
"player",
|
Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player))
|
||||||
Tag.inserting(caption.toComponent(player))
|
)
|
||||||
))
|
|
||||||
);
|
);
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
continue;
|
continue;
|
||||||
@ -128,11 +125,10 @@ public class Trust extends Command {
|
|||||||
if (currentPlot.getTrusted().contains(uuid)) {
|
if (currentPlot.getTrusted().contains(uuid)) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("member.already_added"),
|
TranslatableCaption.of("member.already_added"),
|
||||||
PlotSquared.platform().playerManager().getUsernameCaption(uuid)
|
TagResolver.resolver(
|
||||||
.thenApply(caption -> TagResolver.resolver(
|
"value",
|
||||||
"player",
|
Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player))
|
||||||
Tag.inserting(caption.toComponent(player))
|
)
|
||||||
))
|
|
||||||
);
|
);
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
continue;
|
continue;
|
||||||
|
@ -44,6 +44,4 @@ public interface Caption {
|
|||||||
*/
|
*/
|
||||||
@NonNull Component toComponent(@NonNull LocaleHolder localeHolder);
|
@NonNull Component toComponent(@NonNull LocaleHolder localeHolder);
|
||||||
|
|
||||||
@NonNull String toString();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -51,9 +51,4 @@ public final class StaticCaption implements Caption {
|
|||||||
return MiniMessage.miniMessage().deserialize(this.value);
|
return MiniMessage.miniMessage().deserialize(this.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public @NonNull String toString() {
|
|
||||||
return "StaticCaption(" + value + ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,6 @@ import net.kyori.adventure.text.minimessage.MiniMessage;
|
|||||||
import net.kyori.adventure.text.minimessage.tag.Tag;
|
import net.kyori.adventure.text.minimessage.tag.Tag;
|
||||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@ -133,9 +132,4 @@ public final class TranslatableCaption implements NamespacedCaption {
|
|||||||
return Objects.hashCode(this.getNamespace(), this.getKey());
|
return Objects.hashCode(this.getNamespace(), this.getKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public @NotNull String toString() {
|
|
||||||
return "TranslatableCaption(" + getNamespace() + ":" + getKey() + ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,7 @@ import com.plotsquared.core.plot.flag.implementations.TitlesFlag;
|
|||||||
import com.plotsquared.core.plot.flag.implementations.WeatherFlag;
|
import com.plotsquared.core.plot.flag.implementations.WeatherFlag;
|
||||||
import com.plotsquared.core.plot.flag.types.TimedFlag;
|
import com.plotsquared.core.plot.flag.types.TimedFlag;
|
||||||
import com.plotsquared.core.util.EventDispatcher;
|
import com.plotsquared.core.util.EventDispatcher;
|
||||||
|
import com.plotsquared.core.util.PlayerManager;
|
||||||
import com.plotsquared.core.util.task.TaskManager;
|
import com.plotsquared.core.util.task.TaskManager;
|
||||||
import com.plotsquared.core.util.task.TaskTime;
|
import com.plotsquared.core.util.task.TaskTime;
|
||||||
import com.sk89q.worldedit.world.gamemode.GameMode;
|
import com.sk89q.worldedit.world.gamemode.GameMode;
|
||||||
@ -62,6 +63,7 @@ import com.sk89q.worldedit.world.gamemode.GameModes;
|
|||||||
import com.sk89q.worldedit.world.item.ItemType;
|
import com.sk89q.worldedit.world.item.ItemType;
|
||||||
import com.sk89q.worldedit.world.item.ItemTypes;
|
import com.sk89q.worldedit.world.item.ItemTypes;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.ComponentLike;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
import net.kyori.adventure.text.minimessage.tag.Tag;
|
import net.kyori.adventure.text.minimessage.tag.Tag;
|
||||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||||
@ -75,7 +77,6 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
|
|
||||||
public class PlotListener {
|
public class PlotListener {
|
||||||
|
|
||||||
@ -320,27 +321,22 @@ public class PlotListener {
|
|||||||
}
|
}
|
||||||
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();
|
||||||
|
ComponentLike owner = PlayerManager.resolveName(plotOwner, true).toComponent(player);
|
||||||
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");
|
||||||
|
TagResolver resolver = TagResolver.builder()
|
||||||
CompletableFuture<TagResolver> future = PlotSquared.platform().playerManager()
|
|
||||||
.getUsernameCaption(plotOwner).thenApply(caption -> TagResolver.builder()
|
|
||||||
.tag("owner", Tag.inserting(caption.toComponent(player)))
|
|
||||||
.tag("plot", Tag.inserting(Component.text(lastPlot.getId().toString())))
|
.tag("plot", Tag.inserting(Component.text(lastPlot.getId().toString())))
|
||||||
.tag("world", Tag.inserting(Component.text(player.getLocation().getWorldName())))
|
.tag("world", Tag.inserting(Component.text(player.getLocation().getWorldName())))
|
||||||
|
.tag("owner", Tag.inserting(owner))
|
||||||
.tag("alias", Tag.inserting(Component.text(plot.getAlias())))
|
.tag("alias", Tag.inserting(Component.text(plot.getAlias())))
|
||||||
.build()
|
.build();
|
||||||
);
|
|
||||||
|
|
||||||
future.whenComplete((tagResolver, throwable) -> {
|
|
||||||
if (Settings.Titles.TITLES_AS_ACTIONBAR) {
|
if (Settings.Titles.TITLES_AS_ACTIONBAR) {
|
||||||
player.sendActionBar(header, tagResolver);
|
player.sendActionBar(header, resolver);
|
||||||
} else {
|
} else {
|
||||||
player.sendTitle(header, subHeader, tagResolver);
|
player.sendTitle(header, subHeader, resolver);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}, TaskTime.seconds(1L));
|
}, TaskTime.seconds(1L));
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,6 @@ import java.util.Map;
|
|||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
@ -954,54 +953,6 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sends a message to the command caller, when the future is resolved
|
|
||||||
*
|
|
||||||
* @param caption Caption to send
|
|
||||||
* @param asyncReplacement Async variable replacement
|
|
||||||
* @return A Future to be resolved, after the message was sent
|
|
||||||
* @since TODO
|
|
||||||
*/
|
|
||||||
public final CompletableFuture<Void> sendMessage(
|
|
||||||
@NonNull Caption caption,
|
|
||||||
CompletableFuture<@NonNull TagResolver> asyncReplacement
|
|
||||||
) {
|
|
||||||
return sendMessage(caption, new CompletableFuture[]{asyncReplacement});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sends a message to the command caller, when all futures are resolved
|
|
||||||
*
|
|
||||||
* @param caption Caption to send
|
|
||||||
* @param asyncReplacements Async variable replacements
|
|
||||||
* @param replacements Sync variable replacements
|
|
||||||
* @return A Future to be resolved, after the message was sent
|
|
||||||
* @since TODO
|
|
||||||
*/
|
|
||||||
public final CompletableFuture<Void> sendMessage(
|
|
||||||
@NonNull Caption caption,
|
|
||||||
CompletableFuture<@NonNull TagResolver>[] asyncReplacements,
|
|
||||||
@NonNull TagResolver... replacements
|
|
||||||
) {
|
|
||||||
return CompletableFuture.allOf(asyncReplacements).whenComplete((unused, throwable) -> {
|
|
||||||
Set<TagResolver> resolvers = new HashSet<>(Arrays.asList(replacements));
|
|
||||||
if (throwable != null) {
|
|
||||||
sendMessage(
|
|
||||||
TranslatableCaption.of("errors.error"),
|
|
||||||
TagResolver.resolver("value", Tag.inserting(
|
|
||||||
Component.text("Failed to resolve asynchronous caption replacements")
|
|
||||||
))
|
|
||||||
);
|
|
||||||
LOGGER.error("Failed to resolve asynchronous tagresolver(s) for " + caption, throwable);
|
|
||||||
} else {
|
|
||||||
for (final CompletableFuture<TagResolver> asyncReplacement : asyncReplacements) {
|
|
||||||
resolvers.add(asyncReplacement.join());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sendMessage(caption, resolvers.toArray(TagResolver[]::new));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Redefine from PermissionHolder as it's required from CommandCaller
|
// Redefine from PermissionHolder as it's required from CommandCaller
|
||||||
@Override
|
@Override
|
||||||
public boolean hasPermission(@NonNull String permission) {
|
public boolean hasPermission(@NonNull String permission) {
|
||||||
|
@ -38,6 +38,7 @@ import com.plotsquared.core.location.Location;
|
|||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
import com.plotsquared.core.plot.flag.PlotFlag;
|
import com.plotsquared.core.plot.flag.PlotFlag;
|
||||||
import com.plotsquared.core.queue.QueueCoordinator;
|
import com.plotsquared.core.queue.QueueCoordinator;
|
||||||
|
import com.plotsquared.core.util.PlayerManager;
|
||||||
import com.plotsquared.core.util.task.TaskManager;
|
import com.plotsquared.core.util.task.TaskManager;
|
||||||
import com.plotsquared.core.util.task.TaskTime;
|
import com.plotsquared.core.util.task.TaskTime;
|
||||||
import com.sk89q.worldedit.function.pattern.Pattern;
|
import com.sk89q.worldedit.function.pattern.Pattern;
|
||||||
@ -58,7 +59,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
@ -383,17 +383,13 @@ public final class PlotModificationManager {
|
|||||||
}
|
}
|
||||||
if (createSign) {
|
if (createSign) {
|
||||||
queue.setCompleteTask(() -> TaskManager.runTaskAsync(() -> {
|
queue.setCompleteTask(() -> TaskManager.runTaskAsync(() -> {
|
||||||
List<CompletableFuture<Void>> tasks = plots.stream().map(current -> PlotSquared.platform().playerManager()
|
for (Plot current : plots) {
|
||||||
.getUsernameCaption(current.getOwnerAbs())
|
current.getPlotModificationManager().setSign(PlayerManager.resolveName(current.getOwnerAbs()).getComponent(
|
||||||
.thenAccept(caption -> current
|
LocaleHolder.console()));
|
||||||
.getPlotModificationManager()
|
}
|
||||||
.setSign(caption.getComponent(LocaleHolder.console()))))
|
|
||||||
.toList();
|
|
||||||
CompletableFuture.allOf(tasks.toArray(CompletableFuture[]::new)).whenComplete((unused, throwable) -> {
|
|
||||||
if (whenDone != null) {
|
if (whenDone != null) {
|
||||||
TaskManager.runTask(whenDone);
|
TaskManager.runTask(whenDone);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}));
|
}));
|
||||||
} else if (whenDone != null) {
|
} else if (whenDone != null) {
|
||||||
queue.setCompleteTask(whenDone);
|
queue.setCompleteTask(whenDone);
|
||||||
|
@ -42,27 +42,14 @@ public class EntityUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static int capNumeral(final @NonNull String flagName) {
|
private static int capNumeral(final @NonNull String flagName) {
|
||||||
int i;
|
int i = switch (flagName) {
|
||||||
switch (flagName) {
|
case "mob-cap" -> CAP_MOB;
|
||||||
case "mob-cap":
|
case "hostile-cap" -> CAP_MONSTER;
|
||||||
i = CAP_MOB;
|
case "animal-cap" -> CAP_ANIMAL;
|
||||||
break;
|
case "vehicle-cap" -> CAP_VEHICLE;
|
||||||
case "hostile-cap":
|
case "misc-cap" -> CAP_MISC;
|
||||||
i = CAP_MONSTER;
|
default -> CAP_ENTITY;
|
||||||
break;
|
};
|
||||||
case "animal-cap":
|
|
||||||
i = CAP_ANIMAL;
|
|
||||||
break;
|
|
||||||
case "vehicle-cap":
|
|
||||||
i = CAP_VEHICLE;
|
|
||||||
break;
|
|
||||||
case "misc-cap":
|
|
||||||
i = CAP_MISC;
|
|
||||||
break;
|
|
||||||
case "entity-cap":
|
|
||||||
default:
|
|
||||||
i = CAP_ENTITY;
|
|
||||||
}
|
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,6 @@ import com.plotsquared.core.database.DBFunc;
|
|||||||
import com.plotsquared.core.player.ConsolePlayer;
|
import com.plotsquared.core.player.ConsolePlayer;
|
||||||
import com.plotsquared.core.player.OfflinePlotPlayer;
|
import com.plotsquared.core.player.OfflinePlotPlayer;
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
import com.plotsquared.core.plot.Plot;
|
|
||||||
import com.plotsquared.core.uuid.UUIDMapping;
|
import com.plotsquared.core.uuid.UUIDMapping;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.ComponentLike;
|
import net.kyori.adventure.text.ComponentLike;
|
||||||
@ -38,7 +37,6 @@ import net.kyori.adventure.text.minimessage.tag.Tag;
|
|||||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
import org.jetbrains.annotations.Contract;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -50,7 +48,6 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
|
|
||||||
@ -172,9 +169,7 @@ public abstract class PlayerManager<P extends PlotPlayer<? extends T>, T> {
|
|||||||
* @return A caption containing either the name, {@code None}, {@code Everyone} or {@code Unknown}
|
* @return A caption containing either the name, {@code None}, {@code Everyone} or {@code Unknown}
|
||||||
* @see #resolveName(UUID, boolean)
|
* @see #resolveName(UUID, boolean)
|
||||||
* @since 6.4.0
|
* @since 6.4.0
|
||||||
* @deprecated Don't unnecessarily block threads and utilize playerMap - see {@link #getUsernameCaption(UUID)}
|
|
||||||
*/
|
*/
|
||||||
@Deprecated(since = "TODO")
|
|
||||||
public static @NonNull Caption resolveName(final @Nullable UUID owner) {
|
public static @NonNull Caption resolveName(final @Nullable UUID owner) {
|
||||||
return resolveName(owner, true);
|
return resolveName(owner, true);
|
||||||
}
|
}
|
||||||
@ -186,9 +181,7 @@ public abstract class PlayerManager<P extends PlotPlayer<? extends T>, T> {
|
|||||||
* @param blocking If the operation should block the current thread for {@link Settings.UUID#BLOCKING_TIMEOUT} milliseconds
|
* @param blocking If the operation should block the current thread for {@link Settings.UUID#BLOCKING_TIMEOUT} milliseconds
|
||||||
* @return A caption containing either the name, {@code None}, {@code Everyone} or {@code Unknown}
|
* @return A caption containing either the name, {@code None}, {@code Everyone} or {@code Unknown}
|
||||||
* @since 6.4.0
|
* @since 6.4.0
|
||||||
* @deprecated Don't unnecessarily block threads and utilize playerMap - see {@link #getUsernameCaption(UUID)}
|
|
||||||
*/
|
*/
|
||||||
@Deprecated(since = "TODO")
|
|
||||||
public static @NonNull Caption resolveName(final @Nullable UUID owner, final boolean blocking) {
|
public static @NonNull Caption resolveName(final @Nullable UUID owner, final boolean blocking) {
|
||||||
if (owner == null) {
|
if (owner == null) {
|
||||||
return TranslatableCaption.of("info.none");
|
return TranslatableCaption.of("info.none");
|
||||||
@ -218,50 +211,6 @@ public abstract class PlayerManager<P extends PlotPlayer<? extends T>, T> {
|
|||||||
return StaticCaption.of(name);
|
return StaticCaption.of(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Resolves a UUID to a formatted {@link Caption} representing the player behind the UUID.
|
|
||||||
* Returns a {@link CompletableFuture} instead of a plain {@link UUID} as this method may query the
|
|
||||||
* {@link com.plotsquared.core.uuid.UUIDPipeline ImpromptuUUIDPipeline}.
|
|
||||||
* <br>
|
|
||||||
* Special Cases:
|
|
||||||
* <ul>
|
|
||||||
* <li>{@code null}: Resolves to a {@link TranslatableCaption} with the key {@code info.none}</li>
|
|
||||||
* <li>{@link DBFunc#EVERYONE}: Resolves to a {@link TranslatableCaption} with the key {@code info.everyone}</li>
|
|
||||||
* <li>{@link DBFunc#SERVER}: Resolves to a {@link TranslatableCaption} with the key {@code info.server}</li>
|
|
||||||
* </ul>
|
|
||||||
* <br>
|
|
||||||
* Otherwise, if the UUID is a valid UUID and not reserved by PlotSquared itself, this method first attempts to query the
|
|
||||||
* online players ({@link #getPlayerIfExists(UUID)}) for the specific UUID.
|
|
||||||
* If no online player was found for that UUID, the {@link com.plotsquared.core.uuid.UUIDPipeline ImpromptuUUIDPipeline} is
|
|
||||||
* queried to retrieve the known username
|
|
||||||
*
|
|
||||||
* @param uuid The UUID of the player (for example provided by {@link Plot#getOwner()}
|
|
||||||
* @return A CompletableFuture resolving to a Caption representing the players name of the uuid
|
|
||||||
* @since TODO
|
|
||||||
*/
|
|
||||||
@Contract("_->!null")
|
|
||||||
public @NonNull CompletableFuture<Caption> getUsernameCaption(@Nullable UUID uuid) {
|
|
||||||
if (uuid == null) {
|
|
||||||
return CompletableFuture.completedFuture(TranslatableCaption.of("info.none"));
|
|
||||||
}
|
|
||||||
if (uuid.equals(DBFunc.EVERYONE)) {
|
|
||||||
return CompletableFuture.completedFuture(TranslatableCaption.of("info.everyone"));
|
|
||||||
}
|
|
||||||
if (uuid.equals(DBFunc.SERVER)) {
|
|
||||||
return CompletableFuture.completedFuture(TranslatableCaption.of("info.server"));
|
|
||||||
}
|
|
||||||
P player = getPlayerIfExists(uuid);
|
|
||||||
if (player != null) {
|
|
||||||
return CompletableFuture.completedFuture(StaticCaption.of(player.getName()));
|
|
||||||
}
|
|
||||||
return PlotSquared.get().getImpromptuUUIDPipeline().getNames(Collections.singleton(uuid)).thenApply(mapping -> {
|
|
||||||
if (mapping.isEmpty()) {
|
|
||||||
return TranslatableCaption.of("info.unknown");
|
|
||||||
}
|
|
||||||
return StaticCaption.of(mapping.get(0).username());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a player from the player map
|
* Remove a player from the player map
|
||||||
*
|
*
|
||||||
|
@ -47,7 +47,6 @@ import java.util.Locale;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -110,9 +109,9 @@ public final class PlaceholderRegistry {
|
|||||||
if (plotOwner == null) {
|
if (plotOwner == null) {
|
||||||
return legacyComponent(TranslatableCaption.of("generic.generic_unowned"), player);
|
return legacyComponent(TranslatableCaption.of("generic.generic_unowned"), player);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return PlotSquared.platform().playerManager().getUsernameCaption(plotOwner)
|
return PlayerManager.resolveName(plotOwner, false).getComponent(player);
|
||||||
.get(Settings.UUID.BLOCKING_TIMEOUT, TimeUnit.MILLISECONDS).getComponent(player);
|
|
||||||
} catch (final Exception ignored) {
|
} catch (final Exception ignored) {
|
||||||
}
|
}
|
||||||
return legacyComponent(TranslatableCaption.of("info.unknown"), player);
|
return legacyComponent(TranslatableCaption.of("info.unknown"), player);
|
||||||
|
Reference in New Issue
Block a user