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

[РЕШЕНО] PaperSpigot PlayerArmorChangeEvent NullPointerException

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

Статус темы:
Закрыта.
  1. Автор темы
    notfoundname

    notfoundname Новичок

    Баллы:
    6
    Имя в Minecraft:
    Not_Found_Name
    При одевании брони всё работает, броня красится. Ошибка появляется после снимания брони (т.е. вместо шапки одевают "воздух")

    Код:

    Код:
    package notfound.main;
    
    import org.bukkit.Color;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.buккit.invеntоry.ItemStack;
    import org.buккit.invеntоry.meta.LeatherArmorMeta;
    import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent;
    
    import misat11.bw.api.BedwarsAPI;
    import misat11.bw.api.Game;
    import misat11.bw.api.TeamColor;
    
    
    public class Scheduler implements Listener
    {
        Main plugin;
    
        Scheduler(Main plugin) {
            this.plugin = plugin;
        }
    
       @EventHandler
       public void onColorizeHelmet(PlayerArmorChangeEvent e)
       {
            BedwarsAPI api = BedwarsAPI.getInstance();
            Player player = e.getPlayer();
            ItemStack helm = new ItemStack(Material.LEATHER_HELMET, 1);
            Game game = api.getGameOfPlayer(player);
            if(api.isPlayerPlayingAnyGame(player) == true)
            {
                if(player.getEquipment().getHelmet().getType() == Material.LEATHER_HELMET && player.getEquipment().getHelmet().hasItemMeta() == false)
                {
                    if(game.getTeamOfPlayer(player).getColor() == TeamColor.BLUE)
                    {
                        player.sendMessage("blue");
                        LeatherArmorMeta meta = (LeatherArmorMeta)helm.getItemMeta();
                        meta.setColor(Color.fromRGB(0, 0, 255));
                        helm.setItemMeta(meta);
                        player.getEquipment().setHelmet(helm);
                    }
                    else if(game.getTeamOfPlayer(player).getColor() == TeamColor.RED)
                    {
                        player.sendMessage("red");
                        LeatherArmorMeta meta = (LeatherArmorMeta)helm.getItemMeta();
                        meta.setColor(Color.fromRGB(255, 0, 0));
                        helm.setItemMeta(meta);
                        player.getEquipment().setHelmet(helm);
                    }
                }
            }
        }
    }
    
    Ошибка:


    Код:
    [ERROR] Could not pass event PlayerArmorChangeEvent to Colorize v1.0
    
    org.bukkit.event.EventException: null
    
    at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:72) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:513) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at org.bukkit.event.Event.callEvent(Event.java:44) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.EntityLiving.B_(EntityLiving.java:1988) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.EntityHuman.B_(EntityHuman.java:146) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.EntityPlayer.playerTick(EntityPlayer.java:343) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.PlayerConnection.e(PlayerConnection.java:145) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.NetworkManager.a(NetworkManager.java:273) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.ServerConnection.c(ServerConnection.java:150) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:948) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:774) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:666) ~[patched_1.12.2.jar:git-Paper-1618]
    
    at java.lang.Thread.run(Thread.java:813) [?:1.8.0_212]
    
    Caused by: java.lang.NullPointerException
    
    at notfound.main.Scheduler.onColorizeHelmet(Scheduler.java:34) ~[?:?]
    
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor114.execute(Unknown Source) ~[?:?]
    
    at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:70) ~[patched_1.12.2.jar:git-Paper-1618]
    
    ... 15 more 
     
  2. Автор темы
    notfoundname

    notfoundname Новичок

    Баллы:
    6
    Имя в Minecraft:
    Not_Found_Name
  3. Автор темы
    notfoundname

    notfoundname Новичок

    Баллы:
    6
    Имя в Minecraft:
    Not_Found_Name
Статус темы:
Закрыта.

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