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

Помогите Что возвращает null?

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

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

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Код:
    public void onBla-bla (PlayerInteractEvent e) {
    Player p = e.getPlayer
    if(e != null && p.getItemInHand().getType() != null && p.getItemInHand().getItemMeta().getDisplayName() != null && e.getClickedBlock() != null && p.getItemInHand().getItemMeta() != null && e.getClickedBlock().getType() != null && p.getItemInHand() != null && e.getItem() != null){
            if (p.getItemInHand().getItemMeta().getDisplayName().equals(ChatColor.BLUE + "Прокладка") && e.getClickedBlock().getType() == Material.GOLD_BLOCK){
                p.sendMessage("Месяки убраны!");
                mesyachnie.remove(p.getName());
    }
    }
    }
    Ругается на строчку 4
     
  2. Хостинг MineCraft
    <
  3. Sonicxd2

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

    Баллы:
    76
    Научи так же, плиииз "
    1. if(e != null && p.getItemInHand().getType() != null && p.getItemInHand().getItemMeta().getDisplayName() != null && e.getClickedBlock() != null && p.getItemInHand().getItemMeta() != null && e.getClickedBlock().getType() != null && p.getItemInHand() != null && e.getItem() != null){"
    [DOUBLEPOST=1480446127,1480446085][/DOUBLEPOST]А так ты ItemMetу на null не проверяешь :DDD
    Хотя нет проверяешь[DOUBLEPOST=1480446159][/DOUBLEPOST]Кидай лог!
     
  4. Автор темы
    TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    p.getItemInHand().getItemMeta() != null[DOUBLEPOST=1480446232][/DOUBLEPOST]
    [Server thread/ERROR]: Could not pass event PlayerInteractEvent to CristalixPrison v0.1
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[Corre.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[Corre.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:226) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PlayerInteractManager.interact(PlayerInteractManager.java:463) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PlayerConnection.a(PlayerConnection.java:724) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:50) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:80) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_102]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_102]
    at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:696) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537) [Corre.jar:git-Spigot-c3c767f-33d5de3]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_102]
    Caused by: java.lang.NullPointerException
    at me.kargond.prison.Keys.onPlayerInteract(Keys.java:47) ~[?:?]
    at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_102]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_102]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ~[Corre.jar:git-Spigot-c3c767f-33d5de3]
    ... 16 more
    [DOUBLEPOST=1480446276][/DOUBLEPOST]47 строчка, это тут 4
     
  5. Sonicxd2

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

    Баллы:
    76
    В одном из старых плагинов делал так:
    Код:
            if(e.getPlayer().getInventory().getItemInMainHand()==null) return;
            if(!e.getPlayer().getInventory().getItemInMainHand().hasItemMeta()) return;
            if(e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getDisplayName()==null) return;
    В принципе должно работать:3
     
  6. Автор темы
    TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    А блок проверять?
     
  7. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Код:
        public void onBla(PlayerInteractEvent e) {
            if(e.getAction() == Action.RIGHT_CLICK_BLOCK && e.getItem()!=null) {
                if(e.getItem().getItemMeta()!=null) {
                  //что то делаем.
                }
            }
        }
     
  8. Sonicxd2

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

    Баллы:
    76
    Ну тут проще:
    Код:
    if(e.getClickedBlock()==null) return;
     
  9. Автор темы
    TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    1. Код:
       if(e.getPlayer().getInventory().getItemInMainHand()==null) return;
              if(!e.getPlayer().getInventory().getItemInMainHand().hasItemMeta()) return;
             if(e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getDisplayName()==null) return;
      [/LIST]
    2. сработало, спасибо!
    [DOUBLEPOST=1480447157,1480446777][/DOUBLEPOST]=)
     
    Последнее редактирование: 29 ноя 2016
Статус темы:
Закрыта.

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