package npcarmies.stars1410;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.plugin.java.JavaPlugin;
import de.kumpelblase2.remoteentities.EntityManager;
import de.kumpelblase2.remoteentities.RemoteEntities;
import de.kumpelblase2.remoteentities.api.RemoteEntity;
import de.kumpelblase2.remoteentities.api.RemoteEntityType;
import de.kumpelblase2.remoteentities.api.features.RemoteTamingFeature;
import de.kumpelblase2.remoteentities.api.features.TamingFeature;
import de.kumpelblase2.remoteentities.api.thinking.InteractBehavior;
import de.kumpelblase2.remoteentities.api.thinking.goals.DesireFollowTamer;
import de.kumpelblase2.remoteentities.api.thinking.goals.DesireLookAtNearest;
public final class NpcArmies extends JavaPlugin implements Listener {
@Override
public void onEnable(){
getLogger().info("Npc Armies is running :D!");
getServer().getPluginManager().registerEvents(this, this);{
}
}
@Override
public void onDisable() {
getLogger().info("NpcArmies is no longer running D:!");
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if(cmd.getName().equalsIgnoreCase("NpcArmies")){ sender.sendMessage("NpcArmies Is a simple plugin that plans too expand greatly in the future but can currently only do one thing; When you place a pumpkin on top of two wool blocks and click on it with a sword it will spawn a zombie.");
return true;
}
return false;
}
@SuppressWarnings("deprecation")
@EventHandler
public void onBlockPlace(BlockPlaceEvent event){
Block block = event.getBlock();
Block block1 = block.getRelative(0, -1, 0);
Block block2 = block1.getRelative(0, -1, 0);
EntityManager manager = RemoteEntities.createManager(this);
if (block.getType() == Material.PUMPKIN);{
if (block1.getType() == Material.WOOL && block2.getType() == Material.WOOL) {
block. setType(Material.AIR);
block1.setType(Material.AIR);
block2.setType(Material.AIR);
final RemoteEntity entity = manager.createEntity(RemoteEntityType.Zombie, block2.getLocation());
entity.getMind().addMovementDesire(new DesireLookAtNearest(entity, Player.class, 8F), 1);
entity.setStationary(false);
entity.getMind().addBehaviour(new InteractBehavior(entity)
{
@Override
public void onInteract(Player inPlayer)
{
entity.setName(inPlayer.getName() + "'s Warrior");
inPlayer.sendMessage("MASTER!");
TamingFeature feature = new RemoteTamingFeature(entity);
feature.tame(inPlayer.getPlayer());
entity.getFeatures().addFeature(feature);
entity.getMind().addMovementDesire(new DesireFollowTamer(entity, 5, 15), entity.getMind().getHighestMovementPriority() + 1);
}
});
TamingFeature feature = new RemoteTamingFeature(entity);
feature.tame(event.getPlayer());
entity.getFeatures().addFeature(feature);
entity.getMind().addMovementDesire(new DesireFollowTamer(entity, 5, 15), entity.getMind().getHighestMovementPriority() + 1);
}
}
}
}
Comments