Preventing spawn?

Discussion in 'Plugin Development' started by Infernus, Feb 26, 2011.

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

    Infernus

    As there is an event in Minecraft named CREATURE_SPAWNED, I suppose it is possible to try checking what creature that is.

    What I currently have is this:

    PHP:
    package com.bukkit.infernus.INF;

    import java.io.File;
    import java.util.HashMap;
    import org.bukkit.entity.Player;
    import org.bukkit.Server;
    import org.bukkit.event.Event;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.PluginLoader;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.plugin.PluginManager;

    public class 
    plgInf extends JavaPlugin {
       private final 
    HashMap<PlayerBooleandebugees = new HashMap<PlayerBoolean>();

        public 
    plgInf(PluginLoader pluginLoaderServer instancePluginDescriptionFile descFile folderFile pluginClassLoader cLoader) {
            
    super(pluginLoaderinstancedescfolderplugincLoader);
        }

        public 
    void onEnable() {
            
    PluginManager pm getServer().getPluginManager();
            
    pm.registerEvent(Event.Type.CREATURE_SPAWN, ????????ListenerEvent.Priority.Normalthis);
            
    PluginDescriptionFile pdfFile this.getDescription();
            
    System.out.printlnpdfFile.getName() + " version " pdfFile.getVersion() + " is enabled!" );
        }

        public 
    void onDisable() {
             
    System.out.println("[InfPlugin] Disabled!");
        }

        public 
    boolean isDebugging(final Player player) {
            if (
    debugees.containsKey(player)) {
                return 
    debugees.get(player);
            } else {
                return 
    false;
            }
        }

        public 
    void setDebugging(final Player player, final boolean value) {
            
    debugees.put(playervalue);
        }
    }
    I would like to know what I should put at pm.registerEvent(Event.Type.CREATURE_SPAWN, ????????Listener, Event.Priority.Normal, this);

    After that I would like to know what to do next.

    What I am trying to achieve is that I want to prevent certain creatures or zombies from spawning.

    I would appreciate some help for this as this is my first self-written code for Minecraft.

    Also, sorry for my horrible grammar, i'm quite tired.
     
  2. Offline

    Edward Hand

    1) get rid of:
    Code:
        public plgInf(PluginLoader pluginLoader, Server instance, PluginDescriptionFile desc, File folder, File plugin, ClassLoader cLoader) {
            super(pluginLoader, instance, desc, folder, plugin, cLoader);
        }
    plugins with that wont work any more. If eclipse complains, it means you need to update bukkit/craftbukkit.

    2) you're asking what 'Listener' needs to be?
    You need to create a separate class - call it whatever you like - that extends (in this case) EntityListener.
    Within that class, include the function:
    Code:
    public void onCreatureSpawn(CreatureSpawnEvent event)
    {
        //stuff to do when a creature spawns.
    }
    create a new instance of that class in onEnable() (MyListener listener = new MyListener()) and pass that to the registerEvent thing.
     
  3. Offline

    Infernus

    Ah, thank you :)

    I think I will get this to working soon enough, if not I will post here again.
     
Thread Status:
Not open for further replies.

Share This Page