From 80fa05da9803cadeab096c4336bbcf05df8a3e93 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 26 Apr 2023 14:07:22 +0100 Subject: [PATCH] Added PlaceholderContext#copyWithItem --- .../placeholder/PlaceholderManager.java | 8 ++----- .../context/PlaceholderContext.java | 22 +++++++++++++++++++ .../java/com/willfp/eco/util/StringUtils.java | 9 ++------ 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/eco-api/src/main/java/com/willfp/eco/core/integrations/placeholder/PlaceholderManager.java b/eco-api/src/main/java/com/willfp/eco/core/integrations/placeholder/PlaceholderManager.java index ab62d572..5494fd76 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/integrations/placeholder/PlaceholderManager.java +++ b/eco-api/src/main/java/com/willfp/eco/core/integrations/placeholder/PlaceholderManager.java @@ -131,12 +131,8 @@ public final class PlaceholderManager { getResult( plugin, identifier, - new PlaceholderContext( - player, - null, - EMPTY_INJECTABLE, - Collections.emptyList() - ) + new PlaceholderContext() + .copyWithPlayer(player) ), "" ); diff --git a/eco-api/src/main/java/com/willfp/eco/core/placeholder/context/PlaceholderContext.java b/eco-api/src/main/java/com/willfp/eco/core/placeholder/context/PlaceholderContext.java index 723bc0af..0f675d43 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/placeholder/context/PlaceholderContext.java +++ b/eco-api/src/main/java/com/willfp/eco/core/placeholder/context/PlaceholderContext.java @@ -50,6 +50,13 @@ public class PlaceholderContext { @NotNull private final Collection additionalPlayers; + /** + * Create an empty PlaceholderContext. + */ + public PlaceholderContext() { + this(null, null, PlaceholderManager.EMPTY_INJECTABLE, Collections.emptyList()); + } + /** * Constructs a new PlaceholderContext with the given parameters. * @@ -135,6 +142,21 @@ public class PlaceholderContext { ); } + /** + * Copy with an item. + * + * @param itemStack The ItemStack. + * @return The new context. + */ + public PlaceholderContext copyWithItem(@Nullable final ItemStack itemStack) { + return new PlaceholderContext( + this.getPlayer(), + itemStack, + this.getInjectableContext(), + this.getAdditionalPlayers() + ); + } + /** * Copy with an extra injectable context. * diff --git a/eco-api/src/main/java/com/willfp/eco/util/StringUtils.java b/eco-api/src/main/java/com/willfp/eco/util/StringUtils.java index e802c10c..1a191b0b 100644 --- a/eco-api/src/main/java/com/willfp/eco/util/StringUtils.java +++ b/eco-api/src/main/java/com/willfp/eco/util/StringUtils.java @@ -22,7 +22,6 @@ import org.jetbrains.annotations.Nullable; import java.awt.Color; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -346,12 +345,8 @@ public final class StringUtils { if (option == FormatOption.WITH_PLACEHOLDERS) { return format( message, - new PlaceholderContext( - player, - null, - PlaceholderManager.EMPTY_INJECTABLE, - Collections.emptyList() - ) + new PlaceholderContext() + .copyWithPlayer(player) ); }