Skip to content

Commit e5dfaf5

Browse files
committed
📝 Fix economy loader
1 parent 74dfb6d commit e5dfaf5

4 files changed

Lines changed: 44 additions & 34 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,4 @@ target-api
5252
.claude
5353
CLAUDE.md
5454
gradle.properties
55+
build-and-deploy.sh

build.gradle.kts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ allprojects {
5959
dependencies {
6060
compileOnly("org.spigotmc:spigot-api:1.21.5-R0.1-SNAPSHOT")
6161
compileOnly("me.clip:placeholderapi:2.11.6")
62-
compileOnly("fr.maxlego08.menu:zmenu-api:1.1.1.0")
63-
62+
compileOnly("fr.maxlego08.menu:zmenu-api:1.1.1.2")
63+
implementation("fr.traqueur.currencies:currenciesapi:1.0.13")
6464
}
6565
}
6666

@@ -77,6 +77,8 @@ dependencies {
7777
tasks {
7878
shadowJar {
7979

80+
relocate("fr.traqueur.currencies", "fr.maxlego08.zshop.libs.currencies")
81+
8082
rootProject.extra.properties["sha"]?.let { sha ->
8183
archiveClassifier.set("${rootProject.extra.properties["classifier"]}-${sha}")
8284
} ?: run {

src/main/java/fr/maxlego08/shop/economy/ZEconomyManager.java

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
package fr.maxlego08.shop.economy;
22

3-
import fr.maxlego08.menu.hooks.currencies.Currencies;
4-
import fr.maxlego08.menu.hooks.currencies.CurrencyProvider;
53
import fr.maxlego08.shop.ShopPlugin;
64
import fr.maxlego08.shop.api.economy.EconomyManager;
75
import fr.maxlego08.shop.api.economy.ShopEconomy;
86
import fr.maxlego08.shop.api.event.events.ZShopEconomyRegisterEvent;
97
import fr.maxlego08.shop.save.Config;
108
import fr.maxlego08.shop.zcore.logger.Logger;
9+
import fr.traqueur.currencies.Currencies;
10+
import fr.traqueur.currencies.CurrencyProvider;
11+
import fr.traqueur.currencies.providers.ZMenuItemProvider;
1112
import org.bukkit.configuration.file.YamlConfiguration;
1213

1314
import java.io.File;
14-
import java.util.ArrayList;
15-
import java.util.Collection;
16-
import java.util.Collections;
17-
import java.util.List;
18-
import java.util.Optional;
15+
import java.util.*;
1916

2017
public class ZEconomyManager implements EconomyManager {
2118

@@ -63,27 +60,37 @@ public void loadEconomies() {
6360

6461
YamlConfiguration configuration = YamlConfiguration.loadConfiguration(file);
6562
for (String key : configuration.getConfigurationSection("economies.").getKeys(false)) {
66-
String path = "economies." + key + ".";
67-
68-
if (!configuration.getBoolean(path + "isEnable", configuration.getBoolean(path + "is-enable"))) continue;
69-
70-
String name = configuration.getString(path + "name", "VAULT");
71-
String type = configuration.getString(path + "type", "VAULT");
72-
String currency = configuration.getString(path + "currency", "$");
73-
String denyMessage = configuration.getString(path + "denyMessage", configuration.getString(path + "deny-message"));
74-
75-
Currencies currencies = Currencies.valueOf(type.toUpperCase());
76-
CurrencyProvider currencyProvider = switch (currencies) {
77-
case ZMENUITEMS, ITEM -> Currencies.ZMENUITEMS.createProvider(plugin, file, path + "item.");
78-
case ZESSENTIALS, ECOBITS, COINSENGINE, REDISECONOMY -> {
79-
String currencyName = configuration.getString(path + "currencyName", configuration.getString(path + "currency-name"));
80-
yield currencies.createProvider(currencyName);
81-
}
82-
default -> currencies.createProvider();
83-
};
84-
85-
if (Config.enableDebug) Logger.info("Register Vault economy");
86-
registerEconomy(new ZShopEconomy(name, currency, denyMessage, currencyProvider));
63+
try {
64+
65+
String path = "economies." + key + ".";
66+
67+
if (!configuration.getBoolean(path + "isEnable", configuration.getBoolean(path + "is-enable")))
68+
continue;
69+
70+
String name = configuration.getString(path + "name", "VAULT");
71+
String type = configuration.getString(path + "type", "VAULT");
72+
String currency = configuration.getString(path + "currency", "$");
73+
String denyMessage = configuration.getString(path + "denyMessage", configuration.getString(path + "deny-message"));
74+
75+
Currencies currencies = Currencies.valueOf(type.toUpperCase());
76+
CurrencyProvider currencyProvider = switch (currencies) {
77+
case ZMENUITEMS, ITEM -> {
78+
var itemStack = this.plugin.getIManager().loadItemStack(configuration, path + "item.", file);
79+
yield new ZMenuItemProvider(plugin, itemStack);
80+
}
81+
case ZESSENTIALS, ECOBITS, COINSENGINE, REDISECONOMY -> {
82+
String currencyName = configuration.getString(path + "currencyName", configuration.getString(path + "currency-name"));
83+
yield currencies.createProvider(currencyName);
84+
}
85+
default -> currencies.createProvider();
86+
};
87+
88+
if (Config.enableDebug) Logger.info("Register " + name + " economy");
89+
registerEconomy(new ZShopEconomy(name, currency, denyMessage, currencyProvider));
90+
} catch (Exception exception) {
91+
this.plugin.getLogger().severe("Error while loading " + key + " economy");
92+
exception.printStackTrace();
93+
}
8794
}
8895

8996
ZShopEconomyRegisterEvent event = new ZShopEconomyRegisterEvent(this);

src/main/java/fr/maxlego08/shop/economy/ZShopEconomy.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package fr.maxlego08.shop.economy;
22

3-
import fr.maxlego08.menu.hooks.currencies.CurrencyProvider;
43
import fr.maxlego08.shop.api.economy.ShopEconomy;
54
import fr.maxlego08.shop.zcore.utils.ZUtils;
5+
import fr.traqueur.currencies.CurrencyProvider;
66
import org.bukkit.OfflinePlayer;
77

88
import java.math.BigDecimal;
@@ -42,17 +42,17 @@ public boolean hasMoney(OfflinePlayer offlinePlayer, double price) {
4242

4343
@Override
4444
public double getMoney(OfflinePlayer offlinePlayer) {
45-
return this.currencyProvider.getBalance(offlinePlayer).doubleValue();
45+
return this.currencyProvider.getBalance(offlinePlayer.getUniqueId()).doubleValue();
4646
}
4747

4848
@Override
4949
public void depositMoney(OfflinePlayer offlinePlayer, double value, String reason) {
50-
this.currencyProvider.deposit(offlinePlayer, BigDecimal.valueOf(value), reason);
50+
this.currencyProvider.deposit(offlinePlayer.getUniqueId(), BigDecimal.valueOf(value), reason);
5151
}
5252

5353
@Override
5454
public void withdrawMoney(OfflinePlayer offlinePlayer, double value, String reason) {
55-
this.currencyProvider.withdraw(offlinePlayer, BigDecimal.valueOf(value), reason);
55+
this.currencyProvider.withdraw(offlinePlayer.getUniqueId(), BigDecimal.valueOf(value), reason);
5656
}
5757

5858
public CurrencyProvider getCurrencyProvider() {

0 commit comments

Comments
 (0)