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

Помогите NullPointerExecption

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

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

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

    Баллы:
    76
    Донат меню.
    При клике на предмет не открывается другое меню!
    Появляется NullPointerExecption!
    Все ItemStack`и есть!

    Код:
    this.inv = Bukkit.getServer().createInventory(null, 9, ChatColor.GREEN + "Магазин");
                this.inv.setItem(0, boosterbttn);
                this.inv.setItem(1, itemsbttn);
                this.inv.setItem(2, specialbttn);
              
                this.inv2 = Bukkit.getServer().createInventory(null, 9, ChatColor.GOLD + "Бустеры");
                this.inv2.setItem(0, boostermoneyloc);
                this.inv2.setItem(1, boostermoneyglobal);
              
                this.inv3 = Bukkit.getServer().createInventory(null, 9, ChatColor.GREEN + "Предметы");
                this.inv3.setItem(0, dust);
                this.inv3.setItem(1, star);
                this.inv3.setItem(2, tenkeys);
                this.inv3.setItem(3, fiftykeys);
              
                this.inv4 = Bukkit.getServer().createInventory(null, 9, ChatColor.AQUA + "Специальное");
                this.inv4.setItem(0, autosell);
                this.inv4.setItem(1, toilet);
              
                p.openInventory(this.inv);
                return true;
            }
            return true;
        }
      
        @EventHandler
        public void onInventoryClick(InventoryClickEvent e) {
            if (e.getInventory().getName().equalsIgnoreCase(ChatColor.GREEN + "Магазин")) {
                if (e.getCurrentItem().getItemMeta().getLore() == null) {
                    e.setCancelled(true);
                }
                Player p = (Player)e.getWhoClicked();
                e.setCancelled(true);
                if (e.getCurrentItem().getType().equals(Material.GOLD_INGOT)) {
                    p.openInventory(inv2);
                }
              
                if (e.getCurrentItem().getType().equals(Material.DIAMOND)) {
                    p.openInventory(inv3);
                }
              
                if (e.getCurrentItem().getType().equals(Material.EMERALD)) {
                    p.openInventory(inv4);
                }
            }
     
  2. Хостинг MineCraft
    <
  3. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Проорал.
     
  4. Автор темы
    sasha2003

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

    Баллы:
    76
    Я - нет.
     
  5. HunterGaming

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

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Бесишь...
     
  6. Автор темы
    sasha2003

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

    Баллы:
    76
    ????

     
  7. HunterGaming

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

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Код класса полностью и ошибку в студию
     
  8. Автор темы
    sasha2003

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

    Баллы:
    76
    Код:
    public class Donate implements CommandExecutor, Listener {
       
        private Inventory inv;
        private Inventory inv2;
        private Inventory inv3;
        private Inventory inv4;
       
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            Player p = (Player) sender;
            if (cmd.getName().equalsIgnoreCase("donate")) {
                ItemStack boosterbttn = new ItemStack(Material.GOLD_INGOT);
                ItemMeta boosterbttnMeta = boosterbttn.getItemMeta();
                boosterbttnMeta.setDisplayName("§6§lБустеры");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreBoosterbttn = new ArrayList();
                loreBoosterbttn.add("§7§lНажмите, чтобы открыть меню покупки бустеров.");
                boosterbttnMeta.setLore(loreBoosterbttn);
                boosterbttn.setItemMeta(boosterbttnMeta);
               
                ItemStack itemsbttn = new ItemStack(Material.DIAMOND);
                ItemMeta itemsbttnMeta = itemsbttn.getItemMeta();
                itemsbttnMeta.setDisplayName("§a§lПредметы");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreItemsbttn = new ArrayList();
                loreItemsbttn.add("§7§lНажмите, чтобы открыть меню покупки предметов.");
                itemsbttnMeta.setLore(loreItemsbttn);
                itemsbttn.setItemMeta(itemsbttnMeta);
               
                ItemStack specialbttn = new ItemStack(Material.EMERALD);
                ItemMeta specialbttnMeta = specialbttn.getItemMeta();
                specialbttnMeta.setDisplayName("§b§lСпециальное");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreSpecialbttn = new ArrayList();
                loreSpecialbttn.add("§7§lНажмите, чтобы открыть меню покупки специальных услуг.");
                specialbttnMeta.setLore(loreSpecialbttn);
                specialbttn.setItemMeta(specialbttnMeta);
               
                ItemStack boostermoneyloc = new ItemStack(Material.GOLD_INGOT);
                ItemMeta boostermoneylocMeta = boostermoneyloc.getItemMeta();
                boosterbttnMeta.setDisplayName("§a§lБустер денег.");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreBoostermoneyloc = new ArrayList();
                loreBoostermoneyloc.add("§7§lТип: Локальный");
                loreBoostermoneyloc.add("§7§lМножитель: x2.0");
                loreBoostermoneyloc.add("§7§lДлительность: 40 минут");
                loreBoostermoneyloc.add("§7§lЦена: 39");
                loreBoostermoneyloc.add("§c§lНажмите, чтобы купить");
                boostermoneylocMeta.setLore(loreBoostermoneyloc);
                boostermoneyloc.setItemMeta(boostermoneylocMeta);
               
                ItemStack boostermoneyglobal = new ItemStack(Material.GOLD_BLOCK);
                ItemMeta boostermoneyglobalMeta = boostermoneyglobal.getItemMeta();
                boostermoneyglobalMeta.setDisplayName("§a§lБустер денег.");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreBoostermoneyglobal = new ArrayList();
                loreBoostermoneyglobal.add("§7§lТип: Глобальный");
                loreBoostermoneyglobal.add("§7§lМножитель: x2.0");
                loreBoostermoneyglobal.add("§7§lДлительность: 30 минут");
                loreBoostermoneyglobal.add("§7§lЦена: 59");
                loreBoostermoneyglobal.add("§c§lНажмите, чтобы купить");
                boostermoneyglobalMeta.setLore(loreBoostermoneyglobal);
                boostermoneyglobal.setItemMeta(boostermoneyglobalMeta);
               
                ItemStack dust = new ItemStack(Material.GLOWSTONE_DUST);
                ItemMeta dustMeta = dust.getItemMeta();
                dustMeta.setDisplayName("§aМагическая пыль");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreDust = new ArrayList();
                loreDust.add("§7§lУвеличивает шанс наложения зачарования на 100%");
                loreDust.add("§7§lЦена: 69");
                loreDust.add("§c§lНажмите, чтобы купить");
                dustMeta.setLore(loreDust);
                dust.setItemMeta(dustMeta);
               
                ItemStack star = new ItemStack(Material.NETHER_STAR);
                ItemMeta starMeta = star.getItemMeta();
                starMeta.setDisplayName("§6§lЗвезда");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreStar = new ArrayList();
                loreStar.add("§7§lКоличество: 1 штука");
                loreStar.add("§7§lЦена: 14");
                loreStar.add("§c§lНажмите, чтобы купить");
                starMeta.setLore(loreStar);
                star.setItemMeta(starMeta);
               
                ItemStack tenkeys = new ItemStack(Material.GHAST_TEAR);
                ItemMeta tenkeysMeta = tenkeys.getItemMeta();
                tenkeysMeta.setDisplayName("§aКлюч");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreTenkeys = new ArrayList();
                loreTenkeys.add("§7§lКоличество: 10 штук");
                loreTenkeys.add("§7§lЦена: 49");
                loreTenkeys.add("§c§lНажмите, чтобы купить");
                tenkeysMeta.setLore(loreTenkeys);
                tenkeys.setItemMeta(tenkeysMeta);
               
                ItemStack fiftykeys = new ItemStack(Material.GHAST_TEAR);
                ItemMeta fiftykeysMeta = fiftykeys.getItemMeta();
                fiftykeysMeta.setDisplayName("§aКлюч");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreFiftykeys = new ArrayList();
                loreFiftykeys.add("§7§lКоличество: 50 штук");
                loreFiftykeys.add("§7§lЦена: 139");
                loreFiftykeys.add("§c§lНажмите, чтобы купить");
                fiftykeysMeta.setLore(loreFiftykeys);
                fiftykeys.setItemMeta(fiftykeysMeta);
               
                ItemStack autosell = new ItemStack(Material.DIAMOND);
                ItemMeta autosellMeta = autosell.getItemMeta();
                autosellMeta.setDisplayName("§bАвтоПродажа");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreAutosell = new ArrayList();
                loreAutosell.add(" ");
                loreAutosell.add("§7§lЦена: 259");
                loreAutosell.add("§c§lНажмите, чтобы купить");
                autosellMeta.setLore(loreAutosell);
                autosell.setItemMeta(autosellMeta);
               
                ItemStack toilet = new ItemStack(Material.TRIPWIRE_HOOK);
                ItemMeta toiletMeta = toilet.getItemMeta();
                toiletMeta.setDisplayName("§6Отключение потребностей");
                @SuppressWarnings({ "unchecked", "rawtypes" })
                ArrayList<String> loreToilet = new ArrayList();
                loreToilet.add(" ");
                loreToilet.add("§7§lЦена: 99");
                loreToilet.add("§c§lНажмите, чтобы купить");
                toiletMeta.setLore(loreToilet);
                toilet.setItemMeta(toiletMeta);
               
                this.inv = Bukkit.getServer().createInventory(null, 9, ChatColor.GREEN + "Магазин");
                this.inv.setItem(0, boosterbttn);
                this.inv.setItem(1, itemsbttn);
                this.inv.setItem(2, specialbttn);
               
                this.inv2 = Bukkit.getServer().createInventory(null, 9, ChatColor.GOLD + "Бустеры");
                this.inv2.setItem(0, boostermoneyloc);
                this.inv2.setItem(1, boostermoneyglobal);
               
                this.inv3 = Bukkit.getServer().createInventory(null, 9, ChatColor.GREEN + "Предметы");
                this.inv3.setItem(0, dust);
                this.inv3.setItem(1, star);
                this.inv3.setItem(2, tenkeys);
                this.inv3.setItem(3, fiftykeys);
               
                this.inv4 = Bukkit.getServer().createInventory(null, 9, ChatColor.AQUA + "Специальное");
                this.inv4.setItem(0, autosell);
                this.inv4.setItem(1, toilet);
               
                p.openInventory(this.inv);
                return true;
            }
            return true;
        }
       
        @EventHandler
        public void onInventoryClick(InventoryClickEvent e) {
            if (e.getInventory().getName().equalsIgnoreCase(ChatColor.GREEN + "Магазин")) {
                if (e.getCurrentItem().getItemMeta().getLore() == null) {
                    e.setCancelled(true);
                }
                Player p = (Player)e.getWhoClicked();
                e.setCancelled(true);
                if (e.getCurrentItem().getType().equals(Material.GOLD_INGOT)) {
                    p.openInventory(inv2);
                }
               
                if (e.getCurrentItem().getType().equals(Material.DIAMOND)) {
                    p.openInventory(inv3);
                }
               
                if (e.getCurrentItem().getType().equals(Material.EMERALD)) {
                    p.openInventory(inv4);
                }
            }
            if (e.getInventory().getName().equalsIgnoreCase(ChatColor.GOLD + "Бустеры")) {
                Player p = (Player) e.getWhoClicked();
                if (e.getCurrentItem().getItemMeta().getLore() == null) {
                    e.setCancelled(true);
                }
                e.setCancelled(true);
               
                if (e.getCurrentItem().getType().equals(Material.GOLD_INGOT)) {
                    p.sendMessage("§6§l[]");
                    p.closeInventory();
                }
               
                if (e.getCurrentItem().getType().equals(Material.GOLD_BLOCK)) {
                    p.sendMessage("§6§l[]");
                    p.closeInventory();
                }
            }
            if (e.getInventory().getName().equalsIgnoreCase(ChatColor.GREEN + "Предметы")) {
                Player p = (Player) e.getWhoClicked();
                if (e.getCurrentItem().getItemMeta().getLore() == null) {
                    e.setCancelled(true);
                }
                e.setCancelled(true);
               
                if (e.getCurrentItem().getType().equals(Material.GLOWSTONE_DUST)) {
                    p.sendMessage("§6§l[]");
                    p.closeInventory();
                }
                if (e.getCurrentItem().getType().equals(Material.NETHER_STAR)) {
                    p.sendMessage("§6§l[]");
                    p.closeInventory();
                }
                if (e.getCurrentItem().getType().equals(Material.GHAST_TEAR)) {
                    p.sendMessage("§6§l[]");
                    p.closeInventory();
            }
            if (e.getInventory().getName().equalsIgnoreCase(ChatColor.AQUA + "Специальное")) {
                Player p1 = (Player) e.getWhoClicked();
                if (e.getCurrentItem().getItemMeta().getLore() == null) {
                    e.setCancelled(true);
                }
                e.setCancelled(true);
               
                if (e.getCurrentItem().getType().equals(Material.DIAMOND)) {
                    p1.sendMessage("§6§l[]");
                    p1.closeInventory();
                }
               
                if (e.getCurrentItem().getType().equals(Material.TRIPWIRE_HOOK)) {
                    p1.sendMessage("§6§l[]");
                    p1.closeInventory();
                }
            }
            }
        }
    }
     
  9. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Код:
    package Example;
    
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.InventoryHolder;
    import org.bukkit.inventory.ItemStack;
    public class Menu implements InventoryHolder {
    
        private Inventory inventory;
    
        public Menu(List<ItemStack> stack, String title) {
            this.inventory = Bukkit.createInventory(this, 9*(int)Math.ceil((double)stack.size()/9), title);
            for(int i = 0; i<stack.size(); i++) {
                inventory.setItem(i, stack.get(i));
            }
        }
        @Override
        public Inventory getInventory() {
            return this.inventory;
        }
    }
    Код:
            Player p = e.getWhoClicked();//Наш лузверь.
            List<ItemStack> stack;//Импровезед стак лист.
            Menu menu = new Menu(stack, "Магазин");
            p.openInventory(menu.getInventory());//Открыть чест.
     
  10. HunterGaming

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

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    А вот сейчас я орнул...
     
  11. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    x2.
     
  12. HunterGaming

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

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Столько ItemStack'ов я видел в своем старом AdminMenu 1.0, кстати видел мой AdminMenu? Как тебе?
     
  13. Автор темы
    sasha2003

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

    Баллы:
    76
    Если что не мой плагин!
    Переписываю.
    Дак в чём ошибка?
     
  14. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    В процедурном говнокеде разумеется. Выкинь и забей.
     
  15. HunterGaming

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

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Ааа, я понял, что ты за плагин пытаешься написать. Это с дристаликса донат. Гы
     
  16. Автор темы
    sasha2003

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

    Баллы:
    76
    +
     
  17. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Не удивительно, что они сдохли. Яб тож слился с такими плагинами :D.
     
  18. HunterGaming

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

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    А как деньги собираешься снимать?
     
  19. Автор темы
    sasha2003

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

    Баллы:
    76
    Никак
     
  20. HunterGaming

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

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Тау это не их 100%, кто-то писал из говнокодеров...
     
  21. Автор темы
    sasha2003

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

    Баллы:
    76
    Что исправлять то?
     

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