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

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

Discussion in 'Разработка плагинов для новичков' started by BANKA, Jul 30, 2021.

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

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

    Trophy Points:
    6
    Я столкнулся с проблемой, не могу понять как выдавать деньги игpоку. Вроде вышло выдачу сделать:
    Code:
    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 Новичок

    Trophy Points:
    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();
    вот тебе кусок кода впихни в запускающийся класс и все
     
    Last edited: Aug 21, 2021
  4. WVDjvWUYD

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

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

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

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

Share This Page