Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ca.enderlance.bukkit.herobrine;
- import org.bukkit.Bukkit;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.EntityType;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- import de.kumpelblase2.remoteentities.CreateEntityContext;
- 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.pathfinding.Pathfinder;
- import de.kumpelblase2.remoteentities.api.thinking.DamageBehavior;
- import de.kumpelblase2.remoteentities.api.thinking.Desire;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireAvoidSpecific;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireAvoidSpecificEntity;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireAvoidSun;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireFindAttackingTarget;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireFindNearestTarget;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireLookAtNearest;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireMoveAndMeleeAttack;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireMoveToLocation;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireSwim;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireWanderAround;
- import de.kumpelblase2.remoteentities.api.thinking.goals.DesireWanderAroundArea;
- import de.kumpelblase2.remoteentities.entities.RemotePlayer;
- import de.kumpelblase2.remoteentities.entities.RemoteSpider;
- public class Main extends JavaPlugin implements Listener {
- EntityManager manager;
- RemoteEntity herobrine;
- DesireWanderAround wandering = new DesireWanderAround();
- DesireAvoidSun fleeSunlight = new DesireAvoidSun();
- //Desire fleeSpiders = new DesireAvoidSpecific(10, 4, 2, EntityType.SPIDER.getClass());
- //Pathfinder path = new Pathfinder(herobrine);
- @Override
- public void onEnable()
- {
- PluginManager pm = getServer().getPluginManager();
- pm.registerEvents(this, this);
- manager = RemoteEntities.createManager(this);
- //herobrine.despawn(DespawnReason.CUSTOM);
- //herobrine = (RemotePlayer) manager.createNamedEntity(RemoteEntityType.Human, Bukkit.getWorld("world").getSpawnLocation(), "Herobrine");
- CreateEntityContext entityContext = manager.prepareEntity(RemoteEntityType.Human)
- .withName("Herobrine")
- .withMaxHealth(20)
- .atLocation(getServer().getWorld("world").getSpawnLocation())
- .asPushable(true)
- .asStationary(false)
- .withSpeed(2);
- herobrine = entityContext.create();
- herobrine.getMind().addTargetingDesire(new DesireFindAttackingTarget(50F, true, false), 1);
- herobrine.getMind().addMovementDesire(new DesireMoveAndMeleeAttack(Player.class, true), 3);
- //herobrine.getMind().addMovementDesire(new DesireAvoidSun(), 5);
- //herobrine.getMind().addMovementDesire(new DesireAvoidSpecific(10, 7, 3, EntityType.SPIDER.getClass()), 7);
- //herobrine.getMind().addMovementDesire(new DesireLookAtNearest(EntityType.PLAYER.getClass(), 3), 6);
- //setHerobrineMindset();
- getLogger().info("Herobrine is stationary? "+herobrine.isStationary());
- }
- public void setHerobrineMindset()
- {
- herobrine.getMind().addMovementDesire(wandering, 2);
- herobrine.getMind().addMovementDesire(fleeSunlight, 3);
- //herobrine.getMind().addMovementDesire(fleeSpiders, 5);
- }
- @Override
- public void onDisable()
- {
- manager.despawnAll();
- }
- /*@EventHandler
- public void onPush(RemoteEntityPushEvent e)
- {
- }*/
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent e)
- {
- //Player player = e.getPlayer();
- //herobrine.getMind().addMovementDesire(new DesireLookAtNearest(null, 5), 2);
- }
- public void spawnAtPlayer(Player player)
- {
- /*RemoteEntity herobrine = manager.createEntity(RemoteEntityType.Human, player.getLocation(), false);
- herobrine.setName("Herobrine");
- herobrine.setStationary(false);
- //herobrine.getMind().addMovementDesire(new DesireSwim(), 1);
- //herobrine.getMind().addMovementDesire(new DesireWanderAround(), 2);*/
- CreateEntityContext c = manager
- .prepareEntity(RemoteEntityType.Human)
- .asPushable(true)
- .asStationary(false)
- .atLocation(player.getLocation())
- .withName("Herobrine");
- RemoteEntity entity = c.create();
- //RemoteEntity entity = manager.createEntity(RemoteEntityType.Human, player.getLocation());
- //entity.setName("Herobrine");
- //entity.getMind().addMovementDesire(new DesireEatGrass(), 1);
- entity.getMind().addMovementDesire(new DesireSwim(), 2);
- entity.getMind().addMovementDesire(new DesireAvoidSun(), 1);
- entity.setStationary(false);
- //re.getMind().addMovementDesire(new DesireEatGrass(), 1);
- //re.getMind().addMovementDesire(new DesireSwim(), 2);
- }
- public void getLoc(CommandSender sender, RemoteEntity entity)
- {
- sender.sendMessage("Herobrine's position:");
- sender.sendMessage("X: "+herobrine.getBukkitEntity().getLocation().getX());
- sender.sendMessage("Y: "+herobrine.getBukkitEntity().getLocation().getY());
- sender.sendMessage("Z: "+herobrine.getBukkitEntity().getLocation().getZ());
- }
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
- {
- if(label.equalsIgnoreCase("bhb"))
- {
- if(args.length == 0)
- {
- /*if(sender.hasPermission("bherobrine.spawn"))
- {
- Player player = (Player) sender;
- spawnAtPlayer(player);
- player.sendMessage("An Entity was spawned.");
- }*/
- }
- else if(args.length == 1)
- {
- if(args[0].equalsIgnoreCase("reload"))
- {
- onDisable();
- onEnable();
- sender.sendMessage("Plugin reloaded.");
- }
- else if(args[0].equalsIgnoreCase("tphere"))
- {
- Player player = (Player) sender;
- herobrine.teleport(player.getLocation());
- player.sendMessage("Herobrine was teleported to you.");
- herobrine.getMind().addMovementDesire(new DesireWanderAroundArea(10, player.getLocation()), 4);
- }
- else if(args[0].equalsIgnoreCase("getloc"))
- {
- getLoc(sender, herobrine);
- }
- else if(args[0].equalsIgnoreCase("swing"))
- {
- herobrine.getBukkitEntity().damage(10);
- //herobrine.fakeDamage();
- //herobrine.doArmSwing();
- }
- else if(args[0].equalsIgnoreCase("walkhere"))
- {
- Player player = (Player) sender;
- herobrine.move(player.getLocation());
- herobrine.getMind().addMovementDesire(new DesireMoveToLocation(player.getLocation()), 1);
- }
- else if(args[0].equalsIgnoreCase("mind"))
- {
- setHerobrineMindset();
- }
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement