Bugs with simple plugin

Discussion in 'Plugin Development' started by Grower, May 3, 2011.

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

    Grower

    Hi, my friend had make plugin, and here's the code - but monsters don't attack players and mobs are dissaperaing when noone is nearly - can onyone help ? It's a plugin that disable monsters & mobs from spawn, and allow spawn them by command.


    Code:
    package bukkit.Nsuidara.Spawner;
    import org.bukkit.event.Event;
    import org.bukkit.event.Event.Priority;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.plugin.PluginManager;
    
    public class Spawner extends JavaPlugin
    {
    @Override
    public void onDisable()
    {
    
    }
    
    public ListnerPlayer vPListner = new ListnerPlayer(this);
    public ListnerMobs vMListner = new ListnerMobs(this);
    public boolean vOFF = true;
    
    public void onEnable()
    {
     System.out.println("Start Pluginu");
     PluginManager gManager = getServer().getPluginManager();
     gManager.registerEvent(Event.Type.CREATURE_SPAWN, vMListner, Priority.Highest, this);
     gManager.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS , vPListner, Priority.Highest, this);
    }a
    }
    16:49:14
    package bukkit.Nsuidara.Spawner;
    
    import org.bukkit.Location;
    import org.bukkit.World;
    import org.bukkit.entity.CreatureType;
    import org.bukkit.entity.Player;
    import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    import org.bukkit.event.player.PlayerListener;
    
    public class ListnerPlayer extends PlayerListener
    {
    private Spawner vPlugin = null;
    public ListnerPlayer(Spawner _Plugin)
    {
     vPlugin = _Plugin;
    }
    
    public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent _Event)
    {
     if(_Event.getMessage().contains(" "))
     {
      String[] _Split = _Event.getMessage().split(" ");
      Player _Player = _Event.getPlayer();
      World _World = _Player.getLocation().getWorld();
    
      if(_Split[0].equalsIgnoreCase("/monster") && _Player.isOp())
         {
       CreatureType vType = null;
       if(_Split[1].equalsIgnoreCase("CHICKEN"))
        vType = CreatureType.CHICKEN;
       else if(_Split[1].equalsIgnoreCase("COW"))
        vType = CreatureType.COW;
       else if(_Split[1].equalsIgnoreCase("CREEPER"))
        vType = CreatureType.CREEPER;
       else if(_Split[1].equalsIgnoreCase("GHAST"))
        vType = CreatureType.GHAST;
       else if(_Split[1].equalsIgnoreCase("GIANT"))
        vType = CreatureType.GIANT;
       else if(_Split[1].equalsIgnoreCase("MONSTER"))
        vType = CreatureType.MONSTER;
       else if(_Split[1].equalsIgnoreCase("PIG"))
        vType = CreatureType.PIG;
       else if(_Split[1].equalsIgnoreCase("PIG_ZOMBIE"))
        vType = CreatureType.PIG_ZOMBIE;
       else if(_Split[1].equalsIgnoreCase("SHEEP"))
        vType = CreatureType.SHEEP;
       else if(_Split[1].equalsIgnoreCase("SKELETON"))
        vType = CreatureType.SKELETON;
       else if(_Split[1].equalsIgnoreCase("SLIME"))
        vType = CreatureType.SLIME;
       else if(_Split[1].equalsIgnoreCase("SPIDER"))
        vType = CreatureType.SPIDER;
       else if(_Split[1].equalsIgnoreCase("SQUID"))
        vType = CreatureType.SQUID;
       else if(_Split[1].equalsIgnoreCase("WOLF"))
        vType = CreatureType.WOLF;
       else if(_Split[1].equalsIgnoreCase("ZOMBIE"))
        vType = CreatureType.ZOMBIE;
       else
       {
        _Player.sendMessage("Zwierze/Potwor o takiej nazwie nie istnieje!");
        _Event.setCancelled(true);
        return;
       }
    
       if(_Split.length == 4)
       {
        int oMax = Integer.parseInt(_Split[2]);
        int oR = Integer.parseInt(_Split[3]);
    
        for(int i = 0; i < oMax; i++)
        {
         Location oLocation = _Player.getLocation();
         double oX = oLocation.getX()+Math.random()*(2*oR) - oR;
         double oZ = oLocation.getZ()+Math.random()*(2*oR) - oR;
         oLocation.setX(oX);
         oLocation.setZ(oZ);
         vPlugin.vOFF = false;
         _World.spawnCreature(oLocation, vType);
    
        }
        _Player.sendMessage("Summoned!! "+vType.getName()+"x"+oMax+" R = "+oR);
       }
       else if(_Split.length == 3)
       {
        int oMax = Integer.parseInt(_Split[2]);
        for(int i = 0; i < oMax; i++)
        {
         vPlugin.vOFF = false;
         _World.spawnCreature(_Player.getLocation(), vType);
        }
       }
       else if(_Split.length == 2)
       {
        _World.spawnCreature(_Player.getLocation(), vType);
       }
         }
     }
    }
    }
    16:49:28
    package bukkit.Nsuidara.Spawner;
    
    import org.bukkit.event.entity.CreatureSpawnEvent;
    import org.bukkit.event.entity.EntityDeathEvent;
    import org.bukkit.event.entity.EntityListener;
    
    public class ListnerMobs extends EntityListener
    {
    private Spawner vPlugin = null;
    public ListnerMobs(Spawner _Plugin)
    {
     vPlugin = _Plugin;
    }
    
    public void onCreatureSpawn(CreatureSpawnEvent event)
    {
     if(vPlugin.vOFF == true)
      event.setCancelled(true);
     else
      vPlugin.vOFF = true;
    }
    
    }
     
Thread Status:
Not open for further replies.

Share This Page