1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Nespsnikersni, 27 авг 2023.

Метки:
  1. Автор темы
    Nespsnikersni

    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);
    }
    }
    }
     
  2. Level132331

    Level132331 Активный участник Пользователь

    Баллы:
    66
    Ошибки в консоли?
     
  3. Level132331

    Level132331 Активный участник Пользователь

    Баллы:
    66
  4. Автор темы
    Nespsnikersni

    Nespsnikersni Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Nespsnikersni
    [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) [?:?]
    >
    я это открывал
     
  5. Level132331

    Level132331 Активный участник Пользователь

    Баллы:
    66
    Если ты делал всё по инструкции, то для выдачи тебе нужно classname.getEconomy().depositPlayer(player, amount);
    А так желательно залить фулл код класса на pastebin, тогда смогу сказать точно в чем проблема
     
  6. Автор темы
    Nespsnikersni

    Nespsnikersni Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Nespsnikersni
    чат гпт уже помог

    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);
    }
    }
     
  7. SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Сделай нормальный код :)
     
  8. Level132331

    Level132331 Активный участник Пользователь

    Баллы:
    66
    Код:
    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
     
  9. Автор темы
    Nespsnikersni

    Nespsnikersni Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Nespsnikersni
    Главное оно работает
     

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