Solved How to make a spawner a certain kind?

Discussion in 'Plugin Development' started by JjPwN1, Oct 1, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    JjPwN1

    I am coding a spawner plugin that when you type /bbyspawner <mob>, it will make the block you're looking at (up to 10 blocks away) turn into the mob spawner you defined in the first argument. However, I do not know how to set the spawner as anything else either than a pig spawner. Any help with this would be appreciated!

    Here is my current code for a "zombie" spawner... although the id '52' only spawns a pig spawner.
    Code:
            if(cmd.getName().equalsIgnoreCase("bbyspawner")){
                if(args[0].equalsIgnoreCase("zombie")){
                    if(econ.getBalance(player.getName()) > 9999){
                        econ.withdrawPlayer(player.getName(), 10000);
                        targetBlock.setTypeId(52);
                        player.sendMessage(ChatColor.GOLD + "[BbySpawner] " + ChatColor.DARK_RED + "You have spent " + ChatColor.RED + "$10,000 " + ChatColor.DARK_RED + "for a zombie spawner!");
                    }else{
                        int balance = (int) econ.getBalance(player.getName());
                        int diff = 10000 - balance;
                        player.sendMessage(ChatColor.GOLD + "[BbySpawner] " + ChatColor.DARK_RED + "You need " + ChatColor.RED + "$" + diff + ChatColor.DARK_RED + " to get a zombie spawner!");
     
  2. Offline

    Timr

    Not sure if this is how to do it, code untested:

    Code:java
    1. CreatureSpawner cs;
    2. cs.setSpawnedType(EntityType.ZOMBIE);


    Obviously you would have to cast your block state to a creaturespawner and go from there, this is just a simple example.
     
  3. Offline

    JjPwN1

    This is not working:
    Code:
                        targetBlock.setTypeId(52);
                        CreatureSpawner cs = (CreatureSpawner) targetBlock;
                        cs.setSpawnedType(EntityType.ZOMBIE);
    I get this error:
    Code:
    org.bukkit.command.CommandException: Unhandled exception executing command 'bbyspawner' in plugin BbySpawner v0.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:878)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:825)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:807)
        at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:281)
        at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
        at net.minecraft.server.ServerConnection.b(SourceFile:35)
        at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:583)
        at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
        at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlock cannot be cast to org.bukkit.block.CreatureSpawner
        at com.pwncraftpvp.BbySpawner.BbySpawnerMain.onCommand(BbySpawnerMain.java:33)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
        ... 15 more
    targetBlock cannot be defined as a CreatureSpawner...?
     
  4. Offline

    chasechocolate

  5. Offline

    Supertt007

    CreatureSpawner is a blockstate:

    Code:
                        targetBlock.setTypeId(52);
                        CreatureSpawner cs = (CreatureSpawner) targetBlock.getState();
                        cs.setSpawnedType(EntityType.ZOMBIE);
    
     
    JjPwN1 likes this.
  6. Offline

    JjPwN1

    Thanks, Super, it works.
     
Thread Status:
Not open for further replies.

Share This Page