Вопрос Vault-экономика (getBalance, depositPlayer)

Rinuuri

Заблокирован
Сообщения
26
Пишу я себе плагин такой, и вдруг выводит An internal error, я как обычно иду в консоль, и вижу, что ядро (Akarin 1.12.2) ругается на эту строку:

Java:
if (EconomyManager.getBalance(Bukkit.getPlayer(args[3])) >= Integer.parseInt(args[2])) {

код EconomyManager:
Java:
package me.cachat.main;

import net.milkbowl.vault.economy.*;

import org.bukkit.Bukkit;
import org.bukkit.entity.*;
import org.bukkit.plugin.RegisteredServiceProvider;

public class EconomyManager {
    private static Economy e;
   
    public static void init() {
        RegisteredServiceProvider<Economy> reg = Bukkit.getServicesManager().getRegistration(Economy.class);
        if(reg != null) e = reg.getProvider();
    }
   
    public static boolean takeMoney(Player p, int amount) {
       
        if(e == null) {
            p.sendMessage("[CBussineses] \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438: Vault!");
            return false;
        }
       
        if(e.getBalance(p) >= amount) return e.withdrawPlayer(p, amount).transactionSuccess();
        return false;
       
       
       
    }
    public static double getBalance(Player p) {
       
        if(e == null) {
            p.sendMessage("[CBussineses] \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438: Vault!");
            return -1;
        }
       
        return e.getBalance(p);
    }
}
И еще, пробовал добавить начисление денег игроку через depositPlayer, но ситуация подобна. Проблема у обоих этих случаев также, как я думаю, в одном и том-же.
И да, withdrawPlayer работает как надо.
 
Решение
Ни самой ошибки, ни того, что происходит перед
Java:
if (EconomyManager.getBalance(Bukkit.getPlayer(args[3])) >= Integer.parseInt(args[2])) {
как всегда нет. Какая уже по счёту тема в этом разделе, неужели трудно запомнить последовательность действий для того, чтобы максимально быстро получить помощь?

Хотя, в принципе, можно и не смотреть код и ошибку - у тебя аргументы вообще никак не проверяются.
Ни самой ошибки, ни того, что происходит перед
Java:
if (EconomyManager.getBalance(Bukkit.getPlayer(args[3])) >= Integer.parseInt(args[2])) {
как всегда нет. Какая уже по счёту тема в этом разделе, неужели трудно запомнить последовательность действий для того, чтобы максимально быстро получить помощь?

Хотя, в принципе, можно и не смотреть код и ошибку - у тебя аргументы вообще никак не проверяются.
 
Прошу прощения за бессмысленное беспокойство. Оказывается, я каким-то боков (сам не понимаю каким) выпилил из onEnable инициализацию экономики, а потом еще удивлялся, что это у меня новые методы не работают. (И да, чтобы прийти к этому мне понадобились сутки) Но всё равно спасибо, добавлю проверку аргументов. Закрываю.
 
Назад
Сверху Снизу