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

Помогите Печка срёт ошЫбками

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    XjCyan1de
    Собсна проблема в том что мне надо разрешить эвент когда есть слизь с названием "Каучук", а если обычная слизь или другая то запретить. Мой код прекрасно справляется с задачей но проблема в том что если запихнуть обычную слизь то в консоль начинает срать печка с ошЫбками с интенсивностью около 20 ошЫбок в секунду... Но зато эвент запрещает и это радует :good:

    Лог ошЫбок (повторяется постоянно когда обычная слизь в печке):
    Код:
    [10:12:12 ERROR]: Could not pass event FurnaceBurnEvent to CyanTech v16.12.27 Snapshot
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at net.minecraft.server.v1_11_R1.TileEntityFurnace.F_(TileEntityFurnace.java:195) [spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at net.minecraft.server.v1_11_R1.World.tickEntities(World.java:1501) [spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at net.minecraft.server.v1_11_R1.WorldServer.tickEntities(WorldServer.java:617) [spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:806) [spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:675) [spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:574) [spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_112]
    Caused by: java.lang.NullPointerException
            at me.xjcyan1de.cyantech.events.DisableSmelt.CTRubberSmelt(DisableSmelt.java:20) ~[?:?]
            at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) ~[?:?]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_112]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_112]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.11.2.jar:git-Spigot-7d78b81-50acb44]
            ... 11 more
    

    Код (20 строчка : "if (smelting.getItemMeta().getDisplayName().equals("§eКаучук")) {")
    Код:
    public class DisableSmelt implements Listener {
    
    @EventHandlerpublic void CTRubberSmelt(FurnaceBurnEvent event) {
    Furnace f = (Furnace) event.getBlock().getState();
    FurnaceInventory inv = f.getInventory();
    ItemStack smelting = inv.getSmelting();
    if (smelting.getType().equals(Material.SLIME_BALL)) {
    event.setCancelled(true);
    if (smelting.getItemMeta().getDisplayName().equals("§eКаучук")) {
    event.setCancelled(false);
    }
    }
    }
    }
    
     
    Последнее редактирование: 27 дек 2016
  2. kirill2011s

    kirill2011s Старожил Пользователь

    Баллы:
    103
    ItemStack необязательно имеет ItemMeta.
     
  3. Автор темы
    XjCyan1de

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

    Баллы:
    76
    Имя в Minecraft:
    XjCyan1de
    А как мне исправить ошибку то? Я просто не понимаю
     
  4. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    hasItemMeta() && getItemMeta().hasDisplayName()
     
  5. Автор темы
    XjCyan1de

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

    Баллы:
    76
    Имя в Minecraft:
    XjCyan1de
    Спасибо! для тех кому интересно:
    Код:
    @EventHandlerpublic void CTRubberSmelt(FurnaceBurnEvent event) {
    Furnace f = (Furnace) event.getBlock().getState();
    FurnaceInventory inv = f.getInventory();
    ItemStack smelting = inv.getSmelting();
    if (smelting.getType().equals(Material.SLIME_BALL)) {event.setCancelled(true);
    if (smelting.hasItemMeta() && smelting.getItemMeta().getDisplayName().equals("§eКаучук")) {
    event.setCancelled(false);
    }}}
    
     
Статус темы:
Закрыта.

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