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

Помогите NullPointerExecption

Discussion in 'Разработка плагинов для новичков' started by sasha2003, Apr 23, 2017.

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

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

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

    Code:
    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 Администратор

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

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

    Trophy Points:
    76
    Я - нет.
     
  5. HunterGaming

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

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

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

    Trophy Points:
    76
    ????

     
  7. HunterGaming

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

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

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

    Trophy Points:
    76
    Code:
    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 Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Code:
    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;
        }
    }
    Code:
            Player p = e.getWhoClicked();//Наш лузверь.
            List<ItemStack> stack;//Импровезед стак лист.
            Menu menu = new Menu(stack, "Магазин");
            p.openInventory(menu.getInventory());//Открыть чест.
     
  10. HunterGaming

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

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

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    x2.
     
  12. HunterGaming

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

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

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

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

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

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

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

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

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

    Trophy Points:
    76
    +
     
  17. alexandrage

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

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

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

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

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

    Trophy Points:
    76
    Никак
     
  20. HunterGaming

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

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

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

    Trophy Points:
    76
    Что исправлять то?
     

Share This Page