How to addItem a specific spawner

Discussion in 'Spigot Plugin Development' started by luwie556, Jun 9, 2017.

  1. Hello I am making something and it give a player a specific spawner but when i do it it gives them the spawner but when i put the spawner on the ground it isn't the spawner i specified.

    heres a snipet of code:

    Code (Text):

    if(e.getCurrentItem().equals(skele)){
                    e.setCancelled(true);
                    ItemStack s = new ItemStack(Material.MOB_SPAWNER, 1, (short) 54);
                    ItemMeta sm = s.getItemMeta();
                    sm.setDisplayName("§9Skeleton Spawner");
                    s.setItemMeta(sm);
                    if(plugin.getEconomyManager().getBalance(p.getUniqueId()) >= 25000){
                    p.getInventory().addItem(s);
                    p.sendMessage("§9You have successfully purchased a §fSkeleton Spawner§9.");
                    plugin.getEconomyManager().subtractBalance(p.getUniqueId(), 25000);
                    return;
                    }else{
                        p.sendMessage("§cYou do not have enough money to purchase a §fSkeleton Spawner§c.");
                    }
                }
     
     
  2. Make a BlockPlaceEvent, make a check to see if it's a mob spawner and it's name is equal to skeleton spawner, set block placed to skeleton spawner
     
  3. Here is a code snippet from my SpawnerShop plugin ;)
    Code (Text):
    public void updateSpawner(Block block, String type) {
            BukkitScheduler scheduler = getServer().getScheduler();
            scheduler.scheduleSyncDelayedTask(this, new Runnable() {
                @Override
                public void run() {
                    if(!(block.getState() instanceof CreatureSpawner)) return;
                    CreatureSpawner spawner = (CreatureSpawner) block.getState();
                    switch (type) {
                        case "Enderman":
                            spawner.setSpawnedType(EntityType.ENDERMAN);
                            break;
                        case "Blaze":
                            spawner.setSpawnedType(EntityType.BLAZE);
                            break;
                        case "Skeleton":
                            spawner.setSpawnedType(EntityType.SKELETON);
                            break;
                        case "Zombie":
                            spawner.setSpawnedType(EntityType.ZOMBIE);
                            break;
                        case "Creeper":
                            spawner.setSpawnedType(EntityType.CREEPER);
                            break;
                        case "CaveSpider":
                            spawner.setSpawnedType(EntityType.CAVE_SPIDER);
                            break;
                        case "Spider":
                            spawner.setSpawnedType(EntityType.SPIDER);
                            break;
                        case "Wolf":
                            spawner.setSpawnedType(EntityType.WOLF);
                            break;
                        case "Chicken":
                            spawner.setSpawnedType(EntityType.CHICKEN);
                            break;
                        case "Cow":
                            spawner.setSpawnedType(EntityType.COW);
                            break;
                        case "Pig":
                            spawner.setSpawnedType(EntityType.PIG);
                            break;
                        case "Ocelot":
                            spawner.setSpawnedType(EntityType.OCELOT);
                            break;
                        case "MushroomCow":
                            spawner.setSpawnedType(EntityType.MUSHROOM_COW);
                            break;
                        case "Sheep":
                            spawner.setSpawnedType(EntityType.SHEEP);
                            break;
                        case "Bat":
                            spawner.setSpawnedType(EntityType.BAT);
                            break;
                        case "Rabbit":
                            spawner.setSpawnedType(EntityType.RABBIT);
                            break;
                        case "Squid":
                            spawner.setSpawnedType(EntityType.SQUID);
                            break;
                        case "Villager":
                            spawner.setSpawnedType(EntityType.VILLAGER);
                            break;
                        case "ZombiePigman":
                            spawner.setSpawnedType(EntityType.PIG_ZOMBIE);
                            break;
                        case "Silverfish":
                            spawner.setSpawnedType(EntityType.SILVERFISH);
                            break;
                        case "IronGolem":
                            spawner.setSpawnedType(EntityType.IRON_GOLEM);
                            break;
                        case "Slime":
                            spawner.setSpawnedType(EntityType.SLIME);
                            break;
                        case "Horse":
                            spawner.setSpawnedType(EntityType.HORSE);
                            break;
                        case "Witch":
                            spawner.setSpawnedType(EntityType.WITCH);
                            break;
                        case "MagmaCube":
                            spawner.setSpawnedType(EntityType.MAGMA_CUBE);
                            break;
                        case "PolarBear":
                            spawner.setSpawnedType(EntityType.POLAR_BEAR);
                            break;
                        case "Endermite":
                            spawner.setSpawnedType(EntityType.ENDERMITE);
                            break;
                        case "Evoker":
                            spawner.setSpawnedType(EntityType.EVOKER);
                            break;
                        case "Guardian":
                            spawner.setSpawnedType(EntityType.GUARDIAN);
                            break;
                        case "Shulker":
                            spawner.setSpawnedType(EntityType.SHULKER);
                            break;
                        case "Husk":
                            spawner.setSpawnedType(EntityType.HUSK);
                            break;
                        case "Stray":
                            spawner.setSpawnedType(EntityType.STRAY);
                            break;
                        case "Vex":
                            spawner.setSpawnedType(EntityType.VEX);
                            break;
                        case "Vindicator":
                            spawner.setSpawnedType(EntityType.VINDICATOR);
                            break;
                        case "Llama":
                            spawner.setSpawnedType(EntityType.LLAMA);
                            break;
                        case "Mule":
                            spawner.setSpawnedType(EntityType.MULE);
                            break;
                    }
                    spawner.update();
                }
            }, 1L);
        }
    And yes, I know you can do EntityType#valueOf, but most of my spawners aren't the exact spelling lmao