Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.souperfish.bot.main;
- import java.lang.reflect.Field;
- import org.bukkit.Material;
- import org.bukkit.craftbukkit.v1_7_R3.CraftWorld;
- import org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer;
- import org.bukkit.craftbukkit.v1_7_R3.util.UnsafeList;
- import org.bukkit.entity.Player;
- import org.bukkit.entity.Zombie;
- import org.bukkit.inventory.EntityEquipment;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.scheduler.BukkitRunnable;
- import me.libraryaddict.disguise.DisguiseAPI;
- import me.libraryaddict.disguise.disguisetypes.PlayerDisguise;
- import net.minecraft.server.v1_7_R3.EntityHuman;
- import net.minecraft.server.v1_7_R3.EntityZombie;
- import net.minecraft.server.v1_7_R3.GenericAttributes;
- import net.minecraft.server.v1_7_R3.PacketPlayOutAnimation;
- import net.minecraft.server.v1_7_R3.PacketPlayOutSpawnEntityLiving;
- import net.minecraft.server.v1_7_R3.PathfinderGoalLookAtPlayer;
- import net.minecraft.server.v1_7_R3.PathfinderGoalMeleeAttack;
- import net.minecraft.server.v1_7_R3.PathfinderGoalNearestAttackableTarget;
- import net.minecraft.server.v1_7_R3.PathfinderGoalSelector;
- public class Bot extends EntityZombie {
- Main plugin;
- EntityEquipment ee = ((Zombie)getBukkitEntity()).getEquipment();
- public Bot(net.minecraft.server.v1_7_R3. World world) {
- super(world);
- try {
- //Get the Fields from PathFinderGoal
- Field bField = PathfinderGoalSelector.class.getDeclaredField("b");
- bField.setAccessible(true);
- Field cField = PathfinderGoalSelector.class.getDeclaredField("c");
- cField.setAccessible(true);
- bField.set(goalSelector, new UnsafeList<PathfinderGoalSelector>());
- bField.set(targetSelector, new UnsafeList<PathfinderGoalSelector>());
- cField.set(goalSelector, new UnsafeList<PathfinderGoalSelector>());
- cField.set(targetSelector, new UnsafeList<PathfinderGoalSelector>());
- } catch (Exception e) {
- e.printStackTrace();
- }
- // Set the Pathfindergoals
- this.goalSelector.a(1, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F));
- this.goalSelector.a(0, new PathfinderGoalMeleeAttack(this, EntityHuman.class, 1.4D, false));
- this.targetSelector.a(0, new PathfinderGoalNearestAttackableTarget(this, EntityHuman.class, 0, true));
- }
- public void start( final Player p)
- {
- if(!p.isOnline())
- {
- this.getBukkitEntity().remove();
- return;
- }
- if(((CraftWorld)p.getWorld()).getHandle().addEntity(this))
- {
- p.sendMessage("§aBot gespawnt");
- }else{
- try{
- new BukkitRunnable() {
- @Override
- public void run() {
- new Bot((net.minecraft.server.v1_7_R3.World) p.getWorld());
- }
- }.runTaskLater(Main.inst(), 2 * 20);
- }catch(Exception ex)
- {
- }
- return;
- }
- PlayerDisguise dis = new PlayerDisguise(p.getName());
- DisguiseAPI.disguiseEntity(getBukkitEntity(), dis);
- EntityEquipment ee = ((Zombie)getBukkitEntity()).getEquipment();
- ee.setItemInHand(new ItemStack(Material.STONE_SWORD));
- setSprinting(true);
- this.getAttributeInstance(GenericAttributes.a).setValue(350D);
- this.getAttributeInstance(GenericAttributes.e).setValue(0);
- setHealth(350);
- PacketPlayOutSpawnEntityLiving packet = new PacketPlayOutSpawnEntityLiving(Bot.this);
- ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
- }
- public void fakeAttack(Player p)
- {
- for(org.bukkit.entity.Entity ent : getBukkitEntity().getNearbyEntities(3.0, 3.0, 3.0))
- {
- if(ent instanceof Player)
- {
- PacketPlayOutAnimation hitAnimation = new PacketPlayOutAnimation(Bot.this, 0);
- ((CraftPlayer)p).getHandle().playerConnection.sendPacket(hitAnimation);
- ((Player) ent).damage(2.0);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement