diff --git a/eco-api/src/main/java/com/willfp/eco/core/price/impl/PriceEconomy.java b/eco-api/src/main/java/com/willfp/eco/core/price/impl/PriceEconomy.java index e1fdc628..b9e773e5 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/price/impl/PriceEconomy.java +++ b/eco-api/src/main/java/com/willfp/eco/core/price/impl/PriceEconomy.java @@ -84,9 +84,12 @@ public final class PriceEconomy implements Price { @Override public @NotNull PriceEconomy withMultiplier(double multiplier) { - return new PriceEconomy( + PriceEconomy copy = new PriceEconomy( baseContext, ctx -> function.apply(ctx) * multiplier ); + + copy.multipliers.putAll(this.multipliers); + return copy; } } diff --git a/eco-api/src/main/java/com/willfp/eco/core/price/impl/PriceItem.java b/eco-api/src/main/java/com/willfp/eco/core/price/impl/PriceItem.java index d1a6555a..deafd7a3 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/price/impl/PriceItem.java +++ b/eco-api/src/main/java/com/willfp/eco/core/price/impl/PriceItem.java @@ -149,10 +149,13 @@ public final class PriceItem implements Price { @Override public @NotNull PriceItem withMultiplier(double multiplier) { - return new PriceItem( + PriceItem copy = new PriceItem( baseContext, ctx -> function.apply(ctx) * multiplier, item ); + + copy.multipliers.putAll(this.multipliers); + return copy; } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/price/PriceFactoryUltraEconomy.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/price/PriceFactoryUltraEconomy.kt index 67da0a40..b97f81ed 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/price/PriceFactoryUltraEconomy.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/price/PriceFactoryUltraEconomy.kt @@ -56,12 +56,15 @@ class PriceFactoryUltraEconomy(private val currency: Currency) : PriceFactory { } override fun withMultiplier(multiplier: Double): Price { - return PriceUltraEconomy( + val copy = PriceUltraEconomy( currency, baseContext ) { function(it) * multiplier } + + copy.multipliers.putAll(this.multipliers) + return copy } } }