Помогите Как правильно зарегистрировать свою экономику Vault?

OJIEKCAHDP

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
OJIEKCAHDP
Хочу сделать свою экономику на основе Vault`a, как её правильно зарегистрировать?
 
Код:
    private void setupVault() {
        Plugin vault = this.getServer().getPluginManager().getPlugin("Vault");
        if (vault != null) {
            RegisteredServiceProvider<Economy> economyProvider = this.getServer().getServicesManager()
                    .getRegistration(Economy.class);
            if (economyProvider != null) {
                this.getServer().getServicesManager().unregister(economyProvider.getProvider());
            }
            this.getServer().getServicesManager().register(Economy.class, new MyEconomy(this), this, ServicePriority.Highest);
        }
    }
Вызвать в методе onEnable
 
В onLoad(), чтобы избежать проблем с другими плагинами
 
Код:
    private void setupVault() {
        Plugin vault = this.getServer().getPluginManager().getPlugin("Vault");
        if (vault != null) {
            RegisteredServiceProvider<Economy> economyProvider = this.getServer().getServicesManager()
                    .getRegistration(Economy.class);
            if (economyProvider != null) {
                this.getServer().getServicesManager().unregister(economyProvider.getProvider());
            }
            this.getServer().getServicesManager().register(Economy.class, new MyEconomy(this), this, ServicePriority.Highest);
        }
    }
Вызвать в методе onEnable
Да, работает, можете подсказать, почему баланс определяет, но когда пытаюсь что-либо купить, пишет, что недостаточно денег, хоть они есть?
https://paste.xtrafrancyz.net/NkJWEVF.kotlin
 
Да, работает, можете подсказать, почему баланс определяет, но когда пытаюсь что-либо купить, пишет, что недостаточно денег, хоть они есть?
https://paste.xtrafrancyz.net/NkJWEVF.kotlin
Возможно потому что на 400 строке return null;
System.out что выводит?

Также я бы рекомендовал перегруженные методы сводить к вызову одного общего, чтобы минимизировать дублирование кода. Например, в withdraw(OfflinePlayer, int) вызывать тот же withdraw(String, int). Это уменьшит влияние человеческого фактора при дальнейших изменениях в коде.

Также неясно, с какой целью сохраняется нулевой баланс в конфиг, если текущее значение баланса не было найдено. Конечно, напрямую это не влияет на проблему, однако в некоторой степени тоже усложняет восприятие кода. Чем чище код - тем проще в нём найти ошибку
 
Назад
Верх