Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Выдача валюты vault

Метки:
Теги Теги
решено

Nespsnikersni

Новичок
Пользователь
Баллы
6
Имя в Minecraft
Nespsnikersni
Не могу выдать валюту

if (e.getView().getTitle().equals(ChatColor.AQUA + "Скупщик: ресурсы")) {
if (clickedItem.getType() == Material.DIAMOND) {
if (player.getInventory().containsAtLeast(diamond, 1)) {
e.setCancelled(true);
player.getInventory().removeItem(diamond);
EconomyResponse r = econ.depositPlayer(player, 100.05);
player.sendMessage("pon");
}
else {
player.sendMessage("ne pon");
e.setCancelled(true);
}
}
}
 
[19:35:15 ERROR]: Could not pass event InventoryClickEvent to Buyer v1.0
java.lang.NullPointerException: null
at org.ex.buyer.Event.onInventoryClick(Event.java:76) ~[?:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor83.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Purpur-1171]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2848) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:32) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:10) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:55) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1339) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1332) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1308) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1152) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171]
at java.lang.Thread.run(Thread.java:829) [?:?]
>
Тут инструкция как добавить Vault в проект
https://github.com/MilkBowl/VaultAPI
я это открывал
 
Если ты делал всё по инструкции, то для выдачи тебе нужно classname.getEconomy().depositPlayer(player, amount);
А так желательно залить фулл код класса на pastebin, тогда смогу сказать точно в чем проблема
 
чат гпт уже помог

RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp != null) {
Economy econ = rsp.getProvider();
if (econ != null) {
EconomyResponse r = econ.depositPlayer(player, count * 100);
}
}
 
чат гпт уже помог

RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp != null) {
Economy econ = rsp.getProvider();
if (econ != null) {
EconomyResponse r = econ.depositPlayer(player, count * 100);
}
}
Сделай нормальный код :)
 
Код:
public class ExamplePlugin extends JavaPlugin {
    
    private static Economy econ = null;

    @Override
    public void onEnable() {
        setupEconomy();
    }
    
    private boolean setupEconomy() {
        if (getServer().getPluginManager().getPlugin("Vault") == null) {
            return false;
        }
        RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
        if (rsp == null) {
            return false;
        }
        econ = rsp.getProvider();
        return econ != null;
    }
    
    public static Economy getEconomy() {
        return econ;
    }

Нужно сделать так, чтобы ты мог по надобности обращаться к одному методу и всё: если ты в другом классе, то ExamplePlugin.getEconomy().делаешьТочтоНужно, если в главном то просто можно getEconomy()
Ты сделал так, что тебе нужно будет постоянно писать эти 4 строки, если ты захочешь воспользоваться API Vault
 

Поделиться этой страницей

Назад
Верх