Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

(Pешено)Как выдавать деньги игроку при помощи Vault API?

Тема в разделе "Разработка плагинов для новичков", создана пользователем BANKA, 30 июл 2021.

  1. Автор темы
    BANKA

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

    Баллы:
    6
    Я столкнулся с проблемой, не могу понять как выдавать деньги игpоку. Вроде вышло выдачу сделать:
    Код:
    public class Handler implements Listener {
    
        public static Economy eco;
    
        @EventHandler
        public void onJoin(PlayerJoinEvent event) {
    
            Player p = event.getPlayer();
            ItemStack kirpich = new ItemStack(Material.BRICK);
            ItemMeta metak = kirpich.getItemMeta();
            metak.setDisplayName(ChatColor.AQUA + "Кирпич");
            kirpich.setItemMeta(metak);
            p.getInventory().addItem(kirpich);
        }
    
        @EventHandler
        public void interact(PlayerInteractEvent e){
            Player p = e.getPlayer();
            ItemStack kirpich = new ItemStack(Material.BRICK);
            ItemMeta metak = kirpich.getItemMeta();
            metak.setDisplayName(ChatColor.AQUA + "Кирпич");
            kirpich.setItemMeta(metak);
            Action a = e.getAction();
            Block k = e.getClickedBlock();
            kirpich = p.getItemInHand();
            if (a == Action.RIGHT_CLICK_BLOCK && p.getInventory().contains(kirpich) && e.getClickedBlock().equals(Material.BRICKS));
                p.sendMessage("ку");
                eco.depositPlayer(p, 100);
    
    
    
    
    
    
    
    
    
            }
    
    
    
        }
    Но консоль выдаёт ошибку:
    [16:52:35] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to BanJobs v1
    org.bukkit.event.EventException: null
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:481) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.PlayerInteractManager.a(PlayerInteractManager.java:447) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1356) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:27) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:1) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.PlayerConnectionUtils$$Lambda$5057/1834581882.run(Unknown Source) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(SourceFile:144) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(SourceFile:118) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:942) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:935) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(SourceFile:103) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:918) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:851) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at net.minecraft.server.v1_16_R3.MinecraftServer$$Lambda$3171/2113997762.run(Unknown Source) [spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
    Caused by: java.lang.NullPointerException
    at by.banned.banjobs.Handler.interact(Handler.java:62) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
    ... 22 more

    Объясните пожалуйста, что не так делаю, ибо я новичок и могу что-то не понимать...
     
  2. Хостинг MineCraft
    <
  3. BivaetJene123213

    BivaetJene123213 Новичок

    Баллы:
    6
    Имя в Minecraft:
    KrytoiMan4ik
    Проблема в том что у тебя Economy econ равно null, из-за этого NullPointerException


    final RegisteredServiceProvider<Economy> rsp = (RegisteredServiceProvider<Economy>)this.getServer().getServicesManager().getRegistration((Class)Economy.class);
    if (rsp == null) {
    return false;
    }
    Handler.eco = (Economy)rsp.getProvider();
    вот тебе кусок кода впихни в запускающийся класс и все
     
    Последнее редактирование: 21 авг 2021
  4. WVDjvWUYD

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

    Баллы:
    68
    Имя в Minecraft:
    Leieheueu
    Естественно выкидывает npe, у тебя нет инициализации переменной eco
     
  5. Автор темы
    BANKA

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

    Баллы:
    6
    F
    А соpе, забыл тему закpыть. Всё pешилось давно
     

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