From fd739809a8efef0951b42b73e3d3ef6a221c33fc Mon Sep 17 00:00:00 2001 From: Mrec <66518248+RecoTG@users.noreply.github.com> Date: Sun, 17 Aug 2025 00:32:22 +0100 Subject: [PATCH] Add configurable buy/sell multipliers --- .../yourorg/servershop/dynamic/DynamicPricingManager.java | 7 +++++-- src/main/resources/config.yml | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/yourorg/servershop/dynamic/DynamicPricingManager.java b/src/main/java/com/yourorg/servershop/dynamic/DynamicPricingManager.java index 5667af6..70b096b 100644 --- a/src/main/java/com/yourorg/servershop/dynamic/DynamicPricingManager.java +++ b/src/main/java/com/yourorg/servershop/dynamic/DynamicPricingManager.java @@ -11,6 +11,7 @@ public final class DynamicPricingManager { private final boolean enabled; private final double initMult, minMult, maxMult, buyStep, sellStep, perHourTowards1; private final boolean decayEnabled; + private final double buyMultiplier, sellMultiplier; public DynamicPricingManager(ServerShopPlugin plugin) { this.plugin = plugin; @@ -25,6 +26,8 @@ public DynamicPricingManager(ServerShopPlugin plugin) { var dec = dp.getConfigurationSection("decay"); this.decayEnabled = dec.getBoolean("enabled", true); this.perHourTowards1 = dec.getDouble("perHourTowards1", 0.02); + this.buyMultiplier = c.getDouble("buyMultiplier", 1.0); + this.sellMultiplier = c.getDouble("sellMultiplier", 0.8); String mode = dp.getString("storage", "YAML").toUpperCase(); PriceStorage ps; @@ -62,7 +65,7 @@ public synchronized double buyPrice(Material m, double base) { double weeklyDiscount = plugin.weekly().isWeekly(m) ? plugin.getConfig().getDouble("weekly.discount", 0.80) : 1.0; String cat = plugin.catalog().categoryOf(m); double catMult = plugin.categorySettings().multiplier(cat); - double price = base * mult * weeklyDiscount * catMult; + double price = base * mult * weeklyDiscount * catMult * buyMultiplier; return clampToBounds(price, base); } @@ -70,7 +73,7 @@ public synchronized double sellPrice(Material m, double base) { double mult = currentMultiplier(m); String cat = plugin.catalog().categoryOf(m); double catMult = plugin.categorySettings().multiplier(cat); - double price = base * mult * catMult; + double price = base * mult * catMult * sellMultiplier; return clampToBounds(price, base); } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 69d4af7..50b2645 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -8,6 +8,8 @@ priceModel: minFactor: 0.5 maxFactor: 1.5 sellStep: 0.01 +buyMultiplier: 1.0 # Price multiplier when players buy from the shop +sellMultiplier: 0.8 # Price multiplier when players sell to the shop logging: storage: YAML # YAML or MYSQL maxEntries: 1000