Initial untested 1.7.2 update

This commit is contained in:
fullwall 2013-12-01 17:24:54 +08:00
parent e25df6cd47
commit 38cec9d3f3
49 changed files with 896 additions and 1031 deletions

View File

@ -6,13 +6,13 @@
<groupId>net.citizensnpcs</groupId>
<artifactId>citizens</artifactId>
<version>2.0.10-SNAPSHOT</version>
<version>2.0.11-SNAPSHOT</version>
<name>Citizens</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<craftbukkit.version>LATEST</craftbukkit.version>
<citizensapi.version>2.0.10-SNAPSHOT</citizensapi.version>
<craftbukkit.version>1.7.2-R0.1-SNAPSHOT</craftbukkit.version>
<citizensapi.version>2.0.11-SNAPSHOT</citizensapi.version>
<vault.version>1.2.19-SNAPSHOT</vault.version>
<powermock.version>1.4.12</powermock.version>
<build.number>Unknown</build.number>

View File

@ -408,8 +408,9 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
public void storeNPCs() {
if (saves == null)
return;
for (NPC npc : npcRegistry)
for (NPC npc : npcRegistry) {
saves.store(npc);
}
}
public void storeNPCs(CommandContext args) {
@ -431,5 +432,5 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
return false;
}
private static final String COMPATIBLE_MC_VERSION = "1.6.4";
private static final String COMPATIBLE_MC_VERSION = "1.7.2";
}

View File

@ -22,11 +22,11 @@ import net.citizensnpcs.trait.CurrentLocation;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.Packet34EntityTeleport;
import net.minecraft.server.v1_7_R1.PacketPlayOutEntityTeleport;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
@ -159,7 +159,7 @@ public class CitizensNPC extends AbstractNPC {
at = at.clone();
entityController.spawn(at, this);
net.minecraft.server.v1_6_R3.Entity mcEntity = ((CraftEntity) getEntity()).getHandle();
net.minecraft.server.v1_7_R1.Entity mcEntity = ((CraftEntity) getEntity()).getHandle();
boolean couldSpawn = !Util.isLoaded(at) ? false : mcEntity.world.addEntity(mcEntity, SpawnReason.CUSTOM);
mcEntity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch());
if (!couldSpawn) {
@ -218,7 +218,7 @@ public class CitizensNPC extends AbstractNPC {
if (++packetUpdateCount > 30) {
if (!getNavigator().isNavigating()) {
NMS.sendPacketNearby(getStoredLocation(),
new Packet34EntityTeleport(NMS.getHandle(getEntity())));
new PacketPlayOutEntityTeleport(NMS.getHandle(getEntity())));
}
packetUpdateCount = 0;
}

View File

@ -5,11 +5,11 @@ import java.util.Map;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.util.NMS;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Location;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_6_R3.CraftWorld;
import org.bukkit.craftbukkit.v1_7_R1.CraftWorld;
import org.bukkit.entity.Entity;
import com.google.common.collect.Maps;
@ -24,7 +24,7 @@ public abstract class MobEntityController extends AbstractEntityController {
@Override
protected Entity createEntity(Location at, NPC npc) {
net.minecraft.server.v1_6_R3.Entity entity = createEntityFromClass(((CraftWorld) at.getWorld()).getHandle(),
net.minecraft.server.v1_7_R1.Entity entity = createEntityFromClass(((CraftWorld) at.getWorld()).getHandle(),
npc);
entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch());
@ -36,9 +36,9 @@ public abstract class MobEntityController extends AbstractEntityController {
return entity.getBukkitEntity();
}
private net.minecraft.server.v1_6_R3.Entity createEntityFromClass(Object... args) {
private net.minecraft.server.v1_7_R1.Entity createEntityFromClass(Object... args) {
try {
return (net.minecraft.server.v1_6_R3.Entity) constructor.newInstance(args);
return (net.minecraft.server.v1_7_R1.Entity) constructor.newInstance(args);
} catch (Exception ex) {
ex.printStackTrace();
return null;

View File

@ -61,7 +61,7 @@ public class AStarNavigationStrategy extends AbstractPathStrategy {
}
vector = plan.getCurrentVector();
}
net.minecraft.server.v1_6_R3.Entity handle = NMS.getHandle(npc.getEntity());
net.minecraft.server.v1_7_R1.Entity handle = NMS.getHandle(npc.getEntity());
double dX = vector.getBlockX() - handle.locX;
double dZ = vector.getBlockZ() - handle.locZ;
double dY = vector.getY() - handle.locY;

View File

@ -3,17 +3,18 @@ package net.citizensnpcs.npc.ai;
import net.citizensnpcs.api.ai.tree.BehaviorGoalAdapter;
import net.citizensnpcs.api.ai.tree.BehaviorStatus;
import net.citizensnpcs.util.PlayerAnimation;
import net.minecraft.server.v1_6_R3.Block;
import net.minecraft.server.v1_6_R3.Enchantment;
import net.minecraft.server.v1_6_R3.EnchantmentManager;
import net.minecraft.server.v1_6_R3.EntityLiving;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.ItemStack;
import net.minecraft.server.v1_6_R3.Material;
import net.minecraft.server.v1_6_R3.MobEffectList;
import net.minecraft.server.v1_7_R1.Block;
import net.minecraft.server.v1_7_R1.Blocks;
import net.minecraft.server.v1_7_R1.Enchantment;
import net.minecraft.server.v1_7_R1.EnchantmentManager;
import net.minecraft.server.v1_7_R1.EntityLiving;
import net.minecraft.server.v1_7_R1.EntityPlayer;
import net.minecraft.server.v1_7_R1.ItemStack;
import net.minecraft.server.v1_7_R1.Material;
import net.minecraft.server.v1_7_R1.MobEffectList;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftLivingEntity;
import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftLivingEntity;
import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftItemStack;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@ -39,17 +40,17 @@ public class BlockBreaker extends BehaviorGoalAdapter {
return Math.pow(entity.locX - x, 2) + Math.pow(entity.locY - y, 2) + Math.pow(entity.locZ - z, 2);
}
private net.minecraft.server.v1_6_R3.ItemStack getCurrentItem() {
private net.minecraft.server.v1_7_R1.ItemStack getCurrentItem() {
return configuration.item() != null ? CraftItemStack.asNMSCopy(configuration.item()) : entity.getEquipment(0);
}
private float getStrength(Block block) {
float base = block.l(null, 0, 0, 0);
float base = block.f(null, 0, 0, 0);
return base < 0.0F ? 0.0F : (!isDestroyable(block) ? 1.0F / base / 100.0F : strengthMod(block) / base / 30.0F);
}
private boolean isDestroyable(Block block) {
if (block.material.isAlwaysDestroyable()) {
if (block.getMaterial().isAlwaysDestroyable()) {
return true;
} else {
ItemStack current = getCurrentItem();
@ -83,7 +84,7 @@ public class BlockBreaker extends BehaviorGoalAdapter {
}
if (entity instanceof EntityPlayer)
PlayerAnimation.ARM_SWING.play((Player) entity.getBukkitEntity());
Block block = Block.byId[entity.world.getTypeId(x, y, z)];
Block block = entity.world.getType(x, y, z);
if (block == null) {
return BehaviorStatus.SUCCESS;
} else {
@ -104,12 +105,12 @@ public class BlockBreaker extends BehaviorGoalAdapter {
}
private void setBlockDamage(int modifiedDamage) {
entity.world.f(entity.id, x, y, z, modifiedDamage);
entity.world.d(entity.getId(), x, y, z, modifiedDamage);
}
@Override
public boolean shouldExecute() {
return entity.world.getTypeId(x, y, z) > 0;
return entity.world.getType(x, y, z) != Blocks.AIR;
}
private float strengthMod(Block block) {

View File

@ -11,7 +11,7 @@ import net.citizensnpcs.api.astar.pathfinder.VectorNode;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.MathHelper;
import net.minecraft.server.v1_7_R1.MathHelper;
import org.bukkit.Location;
import org.bukkit.util.Vector;

View File

@ -5,11 +5,11 @@ import net.citizensnpcs.api.ai.TargetType;
import net.citizensnpcs.api.ai.event.CancelReason;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.util.NMS;
import net.minecraft.server.v1_6_R3.EntityLiving;
import net.minecraft.server.v1_6_R3.Navigation;
import net.minecraft.server.v1_7_R1.EntityLiving;
import net.minecraft.server.v1_7_R1.Navigation;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftLivingEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftLivingEntity;
public class MCNavigationStrategy extends AbstractPathStrategy {
private final Navigation navigation;

View File

@ -12,16 +12,16 @@ import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.PlayerAnimation;
import net.citizensnpcs.util.nms.PlayerNavigation;
import net.minecraft.server.v1_6_R3.AttributeInstance;
import net.minecraft.server.v1_6_R3.Entity;
import net.minecraft.server.v1_6_R3.EntityLiving;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.Navigation;
import net.minecraft.server.v1_6_R3.PathEntity;
import net.minecraft.server.v1_7_R1.AttributeInstance;
import net.minecraft.server.v1_7_R1.Entity;
import net.minecraft.server.v1_7_R1.EntityLiving;
import net.minecraft.server.v1_7_R1.EntityPlayer;
import net.minecraft.server.v1_7_R1.Navigation;
import net.minecraft.server.v1_7_R1.PathEntity;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftLivingEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftLivingEntity;
import org.bukkit.entity.LivingEntity;
public class MCTargetStrategy implements PathStrategy, EntityTarget {

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityBat;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityBat;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftBat;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftBat;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.entity.Bat;
import org.bukkit.util.Vector;
@ -58,23 +58,23 @@ public class BatController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null) {
return super.bH();
return super.bL();
}
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
public void bn() {
if (npc == null) {
super.bi();
super.bn();
} else {
NMS.updateAI(this);
npc.update();
@ -82,7 +82,7 @@ public class BatController extends MobEntityController {
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -125,8 +125,8 @@ public class BatController extends MobEntityController {
}
@Override
public void l_() {
super.l_();
public void h() {
super.h();
if (npc != null) {
npc.update();
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityBlaze;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityBlaze;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftBlaze;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftBlaze;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.entity.Blaze;
import org.bukkit.util.Vector;
@ -57,30 +57,30 @@ public class BlazeController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bl() {
public void bq() {
if (npc != null) {
NMS.updateAI(this);
npc.update();
} else {
super.bl();
super.bq();
}
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityCaveSpider;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityCaveSpider;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftCaveSpider;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftCaveSpider;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.entity.CaveSpider;
import org.bukkit.util.Vector;
@ -72,32 +72,32 @@ public class CaveSpiderController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null) {
return super.bH();
return super.bL();
}
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) {
return super.bH();
return super.bL();
}
if (super.bH()) {
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null) {
npc.update();
}
}
@Override
public void bl() {
public void bq() {
if (npc == null) {
super.bl();
super.bq();
} else {
NMS.updateAI(this);
npc.update();
@ -105,7 +105,7 @@ public class CaveSpiderController extends MobEntityController {
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -114,15 +114,6 @@ public class CaveSpiderController extends MobEntityController {
}
}
@Override
public boolean e() {
if (npc == null || !npc.isFlyable()) {
return super.e();
} else {
return false;
}
}
@Override
public void e(float f, float f1) {
if (npc == null || !npc.isFlyable()) {
@ -165,5 +156,14 @@ public class CaveSpiderController extends MobEntityController {
public NPC getNPC() {
return npc;
}
@Override
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.h_();
} else {
return false;
}
}
}
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityChicken;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityChicken;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftChicken;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftChicken;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.entity.Chicken;
import org.bukkit.util.Vector;
@ -71,27 +71,27 @@ public class ChickenController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -99,15 +99,6 @@ public class ChickenController extends MobEntityController {
Util.callCollisionEvent(npc, entity.getBukkitEntity());
}
@Override
public boolean e() {
if (npc == null || !npc.isFlyable()) {
return super.e();
} else {
return false;
}
}
@Override
public void e(float f, float f1) {
if (npc == null || !npc.isFlyable()) {
@ -150,5 +141,14 @@ public class ChickenController extends MobEntityController {
public NPC getNPC() {
return npc;
}
@Override
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.h_();
} else {
return false;
}
}
}
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityCow;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityCow;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftCow;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftCow;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.entity.Cow;
import org.bukkit.util.Vector;
@ -72,28 +72,28 @@ public class CowController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null) {
npc.update();
}
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -102,15 +102,6 @@ public class CowController extends MobEntityController {
}
}
@Override
public boolean e() {
if (npc == null || !npc.isFlyable()) {
return super.e();
} else {
return false;
}
}
@Override
public void e(float f, float f1) {
if (npc == null || !npc.isFlyable()) {
@ -153,5 +144,14 @@ public class CowController extends MobEntityController {
public NPC getNPC() {
return npc;
}
@Override
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.h_();
} else {
return false;
}
}
}
}

View File

@ -7,14 +7,14 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityCreeper;
import net.minecraft.server.v1_6_R3.EntityLightning;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityCreeper;
import net.minecraft.server.v1_7_R1.EntityLightning;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftCreeper;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftCreeper;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.entity.Creeper;
import org.bukkit.util.Vector;
@ -79,28 +79,28 @@ public class CreeperController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null) {
npc.update();
}
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -109,9 +109,9 @@ public class CreeperController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityEnderDragon;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityEnderDragon;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEnderDragon;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEnderDragon;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.entity.EnderDragon;
import org.bukkit.util.Vector;
@ -57,27 +57,36 @@ public class EnderDragonController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bl() {
public void bq() {
if (npc == null) {
super.bl();
super.bq();
}
}
@Override
public void c() {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
if (npc != null)
Util.callCollisionEvent(npc, entity.getBukkitEntity());
}
@Override
public void e() {
if (npc != null) {
npc.update();
if (motX != 0 || motY != 0 || motZ != 0) {
@ -87,17 +96,9 @@ public class EnderDragonController extends MobEntityController {
yaw = getCorrectYaw(locX + motX, locZ + motZ);
setPosition(locX + motX, locY + motY, locZ + motZ);
}
} else
super.c();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
if (npc != null)
Util.callCollisionEvent(npc, entity.getBukkitEntity());
} else {
super.e();
}
}
@Override

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityEnderman;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityEnderman;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEnderman;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEnderman;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.entity.Enderman;
import org.bukkit.util.Vector;
@ -72,29 +72,29 @@ public class EndermanController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void bl() {
public void bq() {
if (npc == null)
super.bl();
super.bq();
else {
NMS.updateAI(this);
npc.update();
@ -102,17 +102,7 @@ public class EndermanController extends MobEntityController {
}
@Override
public void c() {
if (npc == null)
super.c();
else {
updateAIWithMovement();
npc.update();
}
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -121,11 +111,12 @@ public class EndermanController extends MobEntityController {
}
@Override
public boolean e() {
if (npc == null || !npc.isFlyable()) {
return super.e();
} else {
return false;
public void e() {
if (npc == null)
super.e();
else {
updateAIWithMovement();
npc.update();
}
}
@ -173,7 +164,16 @@ public class EndermanController extends MobEntityController {
}
@Override
protected boolean j(double d1, double d2, double d3) {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.h_();
} else {
return false;
}
}
@Override
protected boolean k(double d1, double d2, double d3) {
if (npc == null) {
return super.j(d1, d2, d3);
}
@ -189,7 +189,7 @@ public class EndermanController extends MobEntityController {
motY += 0.04;
} else //(handled elsewhere)*/
if (onGround && jumpTicks == 0) {
be();
bj();
jumpTicks = 10;
}
} else {

View File

@ -18,27 +18,27 @@ import net.citizensnpcs.util.nms.PlayerControllerJump;
import net.citizensnpcs.util.nms.PlayerControllerLook;
import net.citizensnpcs.util.nms.PlayerControllerMove;
import net.citizensnpcs.util.nms.PlayerNavigation;
import net.minecraft.server.v1_6_R3.AttributeInstance;
import net.minecraft.server.v1_6_R3.Connection;
import net.minecraft.server.v1_6_R3.Entity;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.EnumGamemode;
import net.minecraft.server.v1_6_R3.GenericAttributes;
import net.minecraft.server.v1_6_R3.MathHelper;
import net.minecraft.server.v1_6_R3.MinecraftServer;
import net.minecraft.server.v1_6_R3.Navigation;
import net.minecraft.server.v1_6_R3.NetworkManager;
import net.minecraft.server.v1_6_R3.Packet;
import net.minecraft.server.v1_6_R3.Packet201PlayerInfo;
import net.minecraft.server.v1_6_R3.Packet35EntityHeadRotation;
import net.minecraft.server.v1_6_R3.Packet5EntityEquipment;
import net.minecraft.server.v1_6_R3.PlayerInteractManager;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.AttributeInstance;
import net.minecraft.server.v1_7_R1.Entity;
import net.minecraft.server.v1_7_R1.EntityPlayer;
import net.minecraft.server.v1_7_R1.EnumGamemode;
import net.minecraft.server.v1_7_R1.GenericAttributes;
import net.minecraft.server.v1_7_R1.MathHelper;
import net.minecraft.server.v1_7_R1.MinecraftServer;
import net.minecraft.server.v1_7_R1.Navigation;
import net.minecraft.server.v1_7_R1.NetworkManager;
import net.minecraft.server.v1_7_R1.Packet;
import net.minecraft.server.v1_7_R1.PacketPlayOutEntityEquipment;
import net.minecraft.server.v1_7_R1.PacketPlayOutEntityHeadRotation;
import net.minecraft.server.v1_7_R1.PacketPlayOutPlayerInfo;
import net.minecraft.server.v1_7_R1.PlayerInteractManager;
import net.minecraft.server.v1_7_R1.WorldServer;
import net.minecraft.util.com.mojang.authlib.GameProfile;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.plugin.Plugin;
import org.bukkit.util.Vector;
@ -55,9 +55,9 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
private int packetUpdateCount;
private int useListName = -1;
public EntityHumanNPC(MinecraftServer minecraftServer, World world, String string,
public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile,
PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, string, playerInteractManager);
super(minecraftServer, world, gameProfile, playerInteractManager);
playerInteractManager.setGameMode(EnumGamemode.SURVIVAL);
this.npc = (CitizensNPC) npc;
@ -81,7 +81,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -90,15 +90,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
}
}
@Override
public boolean e() {
if (npc == null || !npc.isFlyable()) {
return super.e();
} else {
return false;
}
}
@Override
public void e(float f, float f1) {
if (npc == null || !npc.isFlyable()) {
@ -150,48 +141,9 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
return npc;
}
private void initialise(MinecraftServer minecraftServer) {
Socket socket = new EmptySocket();
NetworkManager conn = null;
try {
conn = new EmptyNetworkManager(minecraftServer.getLogger(), socket, "npc mgr", new Connection() {
@Override
public boolean a() {
return false;
}
}, minecraftServer.H().getPrivate());
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.a(playerConnection);
} catch (IOException e) {
// swallow
}
NMS.setStepHeight(this, 1);// stepHeight - must not stay as the default
// 0 (breaks steps).
try {
socket.close();
} catch (IOException ex) {
// swallow
}
AttributeInstance range = this.getAttributeInstance(GenericAttributes.b);
if (range == null) {
range = this.aX().b(GenericAttributes.b);
}
range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble());
controllerJump = new PlayerControllerJump(this);
controllerLook = new PlayerControllerLook(this);
controllerMove = new PlayerControllerMove(this);
navigation = new PlayerNavigation(this, world);
}
public boolean isNavigating() {
return npc.getNavigator().isNavigating();
}
@Override
public void l_() {
super.l_();
public void h() {
super.h();
if (npc == null)
return;
boolean navigating = npc.getNavigator().isNavigating();
@ -203,7 +155,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
// (onGround is normally updated by the client)
}
if (!npc.data().get("removefromplayerlist", Setting.REMOVE_PLAYERS_FROM_PLAYER_LIST.asBoolean())) {
h();
// h(); TODO
}
if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON)
motX = motY = motZ = 0;
@ -224,6 +176,50 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
npc.update();
}
@Override
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.h_();
} else {
return false;
}
}
private void initialise(MinecraftServer minecraftServer) {
Socket socket = new EmptySocket();
NetworkManager conn = null;
try {
conn = new EmptyNetworkManager(false);
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.a(playerConnection);
} catch (IOException e) {
// swallow
}
NMS.setStepHeight(this, 1);// stepHeight - must not stay as the default
// 0 (breaks steps).
try {
socket.close();
} catch (IOException ex) {
// swallow
}
AttributeInstance range = this.getAttributeInstance(GenericAttributes.b);
if (range == null) {
range = this.bc().b(GenericAttributes.b);
}
range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble());
controllerJump = new PlayerControllerJump(this);
controllerLook = new PlayerControllerLook(this);
controllerMove = new PlayerControllerMove(this);
navigation = new PlayerNavigation(this, world);
}
public boolean isNavigating() {
return npc.getNavigator().isNavigating();
}
private void moveOnCurrentHeading() {
NMS.updateAI(this);
// taken from EntityLiving update method
@ -233,7 +229,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
motY += 0.04;
} else //(handled elsewhere)*/
if (onGround && jumpTicks == 0) {
be();
bj();
jumpTicks = 10;
}
} else {
@ -250,7 +246,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
}
}
public void setMoveDestination(double x, double y, double z, float speed) {
public void setMoveDestination(double x, double y, double z, double speed) {
controllerMove.a(x, y, z, speed);
}
@ -273,11 +269,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
Location current = getBukkitEntity().getLocation(packetLocationCache);
Packet[] packets = new Packet[navigating ? 6 : 7];
if (!navigating) {
packets[6] = new Packet35EntityHeadRotation(id,
packets[6] = new PacketPlayOutEntityHeadRotation(this,
(byte) MathHelper.d(NMS.getHeadYaw(this) * 256.0F / 360.0F));
}
for (int i = 0; i < 5; i++) {
packets[i] = new Packet5EntityEquipment(id, i, getEquipment(i));
packets[i] = new PacketPlayOutEntityEquipment(getId(), i, getEquipment(i));
}
boolean removeFromPlayerList = Setting.REMOVE_PLAYERS_FROM_PLAYER_LIST.asBoolean();
NMS.addOrRemoveFromPlayerList(getBukkitEntity(),
@ -285,7 +281,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
int useListName = removeFromPlayerList ? 0 : 1;
if (useListName != this.useListName || this.useListName == -1) {
this.useListName = useListName;
packets[5] = new Packet201PlayerInfo(getBukkitEntity().getPlayerListName(), !removeFromPlayerList,
packets[5] = new PacketPlayOutPlayerInfo(getBukkitEntity().getPlayerListName(), !removeFromPlayerList,
removeFromPlayerList ? 9999 : ping);
}
NMS.sendPacketsNearby(current, packets);

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityGhast;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityGhast;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftGhast;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftGhast;
import org.bukkit.entity.Ghast;
import org.bukkit.util.Vector;
@ -43,28 +43,28 @@ public class GhastController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bl() {
public void bq() {
if (npc != null) {
npc.update();
} else
super.bl();
super.bq();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityGiantZombie;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityGiantZombie;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftGiant;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftGiant;
import org.bukkit.entity.Giant;
import org.bukkit.util.Vector;
@ -57,22 +57,22 @@ public class GiantController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bl() {
public void bq() {
if (npc == null) {
super.bl();
super.bq();
} else {
NMS.updateAI(this);
npc.update();
@ -80,7 +80,7 @@ public class GiantController extends MobEntityController {
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -89,9 +89,9 @@ public class GiantController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -8,14 +8,14 @@ import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.HorseModifiers;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityHorse;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityHorse;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftHorse;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftHorse;
import org.bukkit.entity.Horse;
import org.bukkit.util.Vector;
@ -67,31 +67,20 @@ public class HorseController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void c() {
if (npc == null) {
super.c();
} else {
NMS.setStepHeight(this, 1);
updateAIWithMovement();
npc.update();
}
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -101,11 +90,13 @@ public class HorseController extends MobEntityController {
}
@Override
public boolean e() {
if (npc == null || !npc.isFlyable()) {
return super.e();
public void e() {
if (npc == null) {
super.e();
} else {
return false;
NMS.setStepHeight(this, 1);
updateAIWithMovement();
npc.update();
}
}
@ -152,6 +143,15 @@ public class HorseController extends MobEntityController {
return npc;
}
@Override
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.h_();
} else {
return false;
}
}
private void updateAIWithMovement() {
NMS.updateAI(this);
// taken from EntityLiving update method
@ -161,7 +161,7 @@ public class HorseController extends MobEntityController {
motY += 0.04;
} else //(handled elsewhere)*/
if (onGround && jumpTicks == 0) {
be();
bj();
jumpTicks = 10;
}
} else {

View File

@ -1,26 +1,29 @@
package net.citizensnpcs.npc.entity;
import java.util.UUID;
import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Colorizer;
import net.citizensnpcs.npc.AbstractEntityController;
import net.citizensnpcs.util.NMS;
import net.minecraft.server.v1_6_R3.PlayerInteractManager;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.PlayerInteractManager;
import net.minecraft.server.v1_7_R1.WorldServer;
import net.minecraft.util.com.mojang.authlib.GameProfile;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_6_R3.CraftWorld;
import org.bukkit.craftbukkit.v1_7_R1.CraftWorld;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
public class HumanController extends AbstractEntityController {
@Override
protected Entity createEntity(final Location at, final NPC npc) {
World ws = ((CraftWorld) at.getWorld()).getHandle();
final EntityHumanNPC handle = new EntityHumanNPC(ws.getServer().getServer(), ws, Colorizer.parseColors(npc
.getFullName()), new PlayerInteractManager(ws), npc);
WorldServer ws = ((CraftWorld) at.getWorld()).getHandle();
final EntityHumanNPC handle = new EntityHumanNPC(ws.getServer().getServer(), ws, new GameProfile(UUID
.randomUUID().toString(), Colorizer.parseColors(npc.getFullName())), new PlayerInteractManager(ws), npc);
handle.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch());
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() {
@Override

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityIronGolem;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityIronGolem;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftIronGolem;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftIronGolem;
import org.bukkit.entity.IronGolem;
import org.bukkit.util.Vector;
@ -57,27 +57,27 @@ public class IronGolemController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -86,9 +86,9 @@ public class IronGolemController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityMagmaCube;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityMagmaCube;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftMagmaCube;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftMagmaCube;
import org.bukkit.entity.MagmaCube;
import org.bukkit.util.Vector;
@ -58,29 +58,29 @@ public class MagmaCubeController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void bl() {
public void bq() {
if (npc == null)
super.bl();
super.bq();
else {
NMS.updateAI(this);
npc.update();
@ -88,7 +88,7 @@ public class MagmaCubeController extends MobEntityController {
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -97,9 +97,9 @@ public class MagmaCubeController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityMushroomCow;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityMushroomCow;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftMushroomCow;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftMushroomCow;
import org.bukkit.entity.MushroomCow;
import org.bukkit.util.Vector;
@ -58,27 +58,27 @@ public class MushroomCowController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -87,9 +87,9 @@ public class MushroomCowController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityOcelot;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityOcelot;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftOcelot;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftOcelot;
import org.bukkit.entity.Ocelot;
import org.bukkit.util.Vector;
@ -58,27 +58,27 @@ public class OcelotController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -87,9 +87,9 @@ public class OcelotController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,14 +7,14 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityLightning;
import net.minecraft.server.v1_6_R3.EntityPig;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityLightning;
import net.minecraft.server.v1_7_R1.EntityPig;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPig;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPig;
import org.bukkit.entity.Pig;
import org.bukkit.util.Vector;
@ -64,27 +64,27 @@ public class PigController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -93,9 +93,9 @@ public class PigController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityPigZombie;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityPigZombie;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPigZombie;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPigZombie;
import org.bukkit.entity.PigZombie;
import org.bukkit.util.Vector;
@ -58,29 +58,29 @@ public class PigZombieController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void bl() {
public void bq() {
if (npc == null) {
super.bl();
super.bq();
} else {
NMS.updateAI(this);
npc.update();
@ -88,7 +88,7 @@ public class PigZombieController extends MobEntityController {
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -97,9 +97,9 @@ public class PigZombieController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntitySheep;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntitySheep;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftSheep;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftSheep;
import org.bukkit.entity.Sheep;
import org.bukkit.util.Vector;
@ -58,27 +58,27 @@ public class SheepController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -87,9 +87,9 @@ public class SheepController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntitySilverfish;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntitySilverfish;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftSilverfish;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftSilverfish;
import org.bukkit.entity.Silverfish;
import org.bukkit.util.Vector;
@ -57,29 +57,29 @@ public class SilverfishController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void bl() {
public void bq() {
if (npc == null) {
super.bl();
super.bq();
} else {
NMS.updateAI(this);
npc.update();
@ -87,7 +87,7 @@ public class SilverfishController extends MobEntityController {
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -96,9 +96,9 @@ public class SilverfishController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntitySkeleton;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntitySkeleton;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftSkeleton;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftSkeleton;
import org.bukkit.entity.Skeleton;
import org.bukkit.util.Vector;
@ -57,27 +57,27 @@ public class SkeletonController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -86,9 +86,9 @@ public class SkeletonController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntitySlime;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntitySlime;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftSlime;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftSlime;
import org.bukkit.entity.Slime;
import org.bukkit.util.Vector;
@ -59,29 +59,29 @@ public class SlimeController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void bl() {
public void bq() {
if (npc == null) {
super.bl();
super.bq();
} else {
npc.update();
NMS.updateAI(this);
@ -89,7 +89,7 @@ public class SlimeController extends MobEntityController {
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -98,9 +98,9 @@ public class SlimeController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntitySnowman;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntitySnowman;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftSnowman;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftSnowman;
import org.bukkit.entity.Snowman;
import org.bukkit.util.Vector;
@ -57,27 +57,27 @@ public class SnowmanController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -86,9 +86,9 @@ public class SnowmanController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntitySpider;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntitySpider;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftSpider;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftSpider;
import org.bukkit.entity.Spider;
import org.bukkit.util.Vector;
@ -57,29 +57,29 @@ public class SpiderController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void bl() {
public void bq() {
if (npc == null)
super.bl();
super.bq();
else {
NMS.updateAI(this);
npc.update();
@ -87,7 +87,7 @@ public class SpiderController extends MobEntityController {
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -96,9 +96,9 @@ public class SpiderController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntitySquid;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntitySquid;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftSquid;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftSquid;
import org.bukkit.entity.Squid;
import org.bukkit.util.Vector;
@ -57,28 +57,28 @@ public class SquidController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bl() {
public void bq() {
if (npc != null) {
npc.update();
} else
super.bl();
super.bq();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -87,9 +87,9 @@ public class SquidController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,14 +7,14 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityHuman;
import net.minecraft.server.v1_6_R3.EntityVillager;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityHuman;
import net.minecraft.server.v1_7_R1.EntityVillager;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftVillager;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftVillager;
import org.bukkit.entity.Villager;
import org.bukkit.util.Vector;
@ -65,27 +65,27 @@ public class VillagerController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -94,9 +94,9 @@ public class VillagerController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityWitch;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityWitch;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftWitch;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftWitch;
import org.bukkit.entity.Witch;
import org.bukkit.util.Vector;
@ -57,27 +57,27 @@ public class WitchController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null)
npc.update();
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -86,9 +86,9 @@ public class WitchController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityWither;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityWither;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftWither;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftWither;
import org.bukkit.entity.Wither;
import org.bukkit.util.Vector;
@ -44,37 +44,28 @@ public class WitherController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null) {
npc.update();
}
}
@Override
public void c() {
if (npc == null) {
super.c();
} else {
updateAIWithMovement();
}
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -82,6 +73,15 @@ public class WitherController extends MobEntityController {
Util.callCollisionEvent(npc, entity.getBukkitEntity());
}
@Override
public void e() {
if (npc == null) {
super.e();
} else {
updateAIWithMovement();
}
}
@Override
public void g(double x, double y, double z) {
if (npc == null) {
@ -125,7 +125,7 @@ public class WitherController extends MobEntityController {
motY += 0.04;
} else //(handled elsewhere)*/
if (onGround && jumpTicks == 0) {
be();
bj();
jumpTicks = 10;
}
} else {

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityWolf;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityWolf;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftWolf;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftWolf;
import org.bukkit.entity.Wolf;
import org.bukkit.util.Vector;
@ -57,28 +57,28 @@ public class WolfController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null) {
npc.update();
}
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -87,9 +87,9 @@ public class WolfController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -7,13 +7,13 @@ import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityZombie;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.EntityZombie;
import net.minecraft.server.v1_7_R1.World;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftZombie;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftZombie;
import org.bukkit.entity.Zombie;
import org.bukkit.util.Vector;
@ -57,28 +57,28 @@ public class ZombieController extends MobEntityController {
}
@Override
public boolean bH() {
public boolean bL() {
if (npc == null)
return super.bH();
return super.bL();
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true);
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault))
return super.bH();
if (super.bH()) {
return super.bL();
if (super.bL()) {
unleash(true, false); // clearLeash with client update
}
return false; // shouldLeash
}
@Override
public void bi() {
super.bi();
public void bn() {
super.bn();
if (npc != null) {
npc.update();
}
}
@Override
public void collide(net.minecraft.server.v1_6_R3.Entity entity) {
public void collide(net.minecraft.server.v1_7_R1.Entity entity) {
// this method is called by both the entities involved - cancelling
// it will not stop the NPC from moving.
super.collide(entity);
@ -87,9 +87,9 @@ public class ZombieController extends MobEntityController {
}
@Override
public boolean e() {
public boolean h_() {
if (npc == null || !npc.isFlyable()) {
return super.e();
return super.h_();
} else {
return false;
}

View File

@ -1,75 +1,16 @@
package net.citizensnpcs.npc.network;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.MinecraftServer;
import net.minecraft.server.v1_6_R3.NetworkManager;
import net.minecraft.server.v1_6_R3.Packet;
import net.minecraft.server.v1_6_R3.Packet102WindowClick;
import net.minecraft.server.v1_6_R3.Packet106Transaction;
import net.minecraft.server.v1_6_R3.Packet10Flying;
import net.minecraft.server.v1_6_R3.Packet130UpdateSign;
import net.minecraft.server.v1_6_R3.Packet14BlockDig;
import net.minecraft.server.v1_6_R3.Packet15Place;
import net.minecraft.server.v1_6_R3.Packet16BlockItemSwitch;
import net.minecraft.server.v1_6_R3.Packet255KickDisconnect;
import net.minecraft.server.v1_6_R3.Packet28EntityVelocity;
import net.minecraft.server.v1_6_R3.Packet3Chat;
import net.minecraft.server.v1_6_R3.Packet51MapChunk;
import net.minecraft.server.v1_6_R3.PlayerConnection;
import net.minecraft.server.v1_7_R1.EntityPlayer;
import net.minecraft.server.v1_7_R1.MinecraftServer;
import net.minecraft.server.v1_7_R1.NetworkManager;
import net.minecraft.server.v1_7_R1.Packet;
import net.minecraft.server.v1_7_R1.PlayerConnection;
public class EmptyNetHandler extends PlayerConnection {
public EmptyNetHandler(MinecraftServer minecraftServer, NetworkManager networkManager, EntityPlayer entityPlayer) {
super(minecraftServer, networkManager, entityPlayer);
}
@Override
public void a(Packet102WindowClick packet) {
}
@Override
public void a(Packet106Transaction packet) {
}
@Override
public void a(Packet10Flying packet) {
}
@Override
public void a(Packet130UpdateSign packet) {
}
@Override
public void a(Packet14BlockDig packet) {
}
@Override
public void a(Packet15Place packet) {
}
@Override
public void a(Packet16BlockItemSwitch packet) {
}
@Override
public void a(Packet255KickDisconnect packet) {
}
@Override
public void a(Packet28EntityVelocity packet) {
}
@Override
public void a(Packet3Chat packet) {
}
@Override
public void a(Packet51MapChunk packet) {
}
@Override
public void a(String string, Object[] objects) {
}
@Override
public void sendPacket(Packet packet) {
}

View File

@ -1,48 +1,13 @@
package net.citizensnpcs.npc.network;
import java.io.IOException;
import java.net.Socket;
import java.security.PrivateKey;
import net.citizensnpcs.util.NMS;
import net.minecraft.server.v1_6_R3.Connection;
import net.minecraft.server.v1_6_R3.IConsoleLogManager;
import net.minecraft.server.v1_6_R3.NetworkManager;
import net.minecraft.server.v1_6_R3.Packet;
import net.minecraft.server.v1_7_R1.NetworkManager;
public class EmptyNetworkManager extends NetworkManager {
public EmptyNetworkManager(IConsoleLogManager logManager, Socket socket, String string, Connection conn,
PrivateKey key) throws IOException {
super(logManager, socket, string, conn, key);
public EmptyNetworkManager(boolean flag) throws IOException {
super(flag);
NMS.stopNetworkThreads(this);
}
@Override
public void a() {
}
@Override
public void a(Connection conn) {
}
@Override
public void a(String s, Object... objects) {
}
@Override
public void b() {
}
@Override
public void d() {
}
@Override
public int e() {
return 0;
}
@Override
public void queue(Packet packet) {
}
}

View File

@ -14,12 +14,12 @@ import net.citizensnpcs.api.trait.trait.Owner;
import net.citizensnpcs.api.util.DataKey;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityEnderDragon;
import net.minecraft.server.v1_6_R3.EntityLiving;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_7_R1.EntityEnderDragon;
import net.minecraft.server.v1_7_R1.EntityLiving;
import net.minecraft.server.v1_7_R1.EntityPlayer;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
@ -76,7 +76,7 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
}
}
private net.minecraft.server.v1_6_R3.Entity getHandle() {
private net.minecraft.server.v1_7_R1.Entity getHandle() {
return ((CraftEntity) npc.getEntity()).getHandle();
}
@ -182,7 +182,7 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
return enabled;
}
private void setMountedYaw(net.minecraft.server.v1_6_R3.Entity handle) {
private void setMountedYaw(net.minecraft.server.v1_7_R1.Entity handle) {
if (handle instanceof EntityEnderDragon || !Setting.USE_BOAT_CONTROLS.asBoolean())
return; // EnderDragon handles this separately
double tX = handle.locX + handle.motX;
@ -204,7 +204,7 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
return enabled;
}
private double updateHorizontalSpeed(net.minecraft.server.v1_6_R3.Entity handle, double speed, float speedMod) {
private double updateHorizontalSpeed(net.minecraft.server.v1_7_R1.Entity handle, double speed, float speedMod) {
double oldSpeed = Math.sqrt(handle.motX * handle.motX + handle.motZ * handle.motZ);
double horizontal = ((EntityLiving) handle.passenger).bf;
if (horizontal > 0.0D) {
@ -250,7 +250,7 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
@Override
public void run(Player rider) {
net.minecraft.server.v1_6_R3.Entity handle = getHandle();
net.minecraft.server.v1_7_R1.Entity handle = getHandle();
boolean onGround = handle.onGround;
float speedMod = npc.getNavigator().getDefaultParameters()
.modifiedSpeed((onGround ? GROUND_SPEED : AIR_SPEED));
@ -301,7 +301,7 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
}
Vector dir = rider.getEyeLocation().getDirection();
dir.multiply(npc.getNavigator().getDefaultParameters().speedModifier());
net.minecraft.server.v1_6_R3.Entity handle = getHandle();
net.minecraft.server.v1_7_R1.Entity handle = getHandle();
handle.motX = dir.getX();
handle.motY = dir.getY();
handle.motZ = dir.getZ();
@ -344,7 +344,7 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
getHandle().motY = 0.001;
return;
}
net.minecraft.server.v1_6_R3.Entity handle = getHandle();
net.minecraft.server.v1_7_R1.Entity handle = getHandle();
this.speed = updateHorizontalSpeed(handle, this.speed, 1F);
boolean shouldJump = NMS.shouldJump(handle.passenger);
if (shouldJump) {

View File

@ -1,8 +1,8 @@
package net.citizensnpcs.trait.waypoint;
import net.minecraft.server.v1_6_R3.DamageSource;
import net.minecraft.server.v1_6_R3.EntityEnderSignal;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.DamageSource;
import net.minecraft.server.v1_7_R1.EntityEnderSignal;
import net.minecraft.server.v1_7_R1.World;
public class EntityEnderSignalMarker extends EntityEnderSignal {
public EntityEnderSignalMarker(World world) {
@ -19,6 +19,6 @@ public class EntityEnderSignalMarker extends EntityEnderSignal {
}
@Override
public void l_() {
public void h() {
}
}

View File

@ -12,35 +12,35 @@ import java.util.WeakHashMap;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Messaging;
import net.citizensnpcs.npc.entity.EntityHumanNPC;
import net.minecraft.server.v1_6_R3.AttributeInstance;
import net.minecraft.server.v1_6_R3.Block;
import net.minecraft.server.v1_6_R3.ControllerJump;
import net.minecraft.server.v1_6_R3.DamageSource;
import net.minecraft.server.v1_6_R3.EnchantmentManager;
import net.minecraft.server.v1_6_R3.Entity;
import net.minecraft.server.v1_6_R3.EntityHorse;
import net.minecraft.server.v1_6_R3.EntityHuman;
import net.minecraft.server.v1_6_R3.EntityInsentient;
import net.minecraft.server.v1_6_R3.EntityLiving;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.EntityTypes;
import net.minecraft.server.v1_6_R3.GenericAttributes;
import net.minecraft.server.v1_6_R3.MathHelper;
import net.minecraft.server.v1_6_R3.MobEffectList;
import net.minecraft.server.v1_6_R3.Navigation;
import net.minecraft.server.v1_6_R3.NetworkManager;
import net.minecraft.server.v1_6_R3.Packet;
import net.minecraft.server.v1_6_R3.PathfinderGoalSelector;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.AttributeInstance;
import net.minecraft.server.v1_7_R1.ControllerJump;
import net.minecraft.server.v1_7_R1.DamageSource;
import net.minecraft.server.v1_7_R1.EnchantmentManager;
import net.minecraft.server.v1_7_R1.Entity;
import net.minecraft.server.v1_7_R1.EntityHorse;
import net.minecraft.server.v1_7_R1.EntityHuman;
import net.minecraft.server.v1_7_R1.EntityInsentient;
import net.minecraft.server.v1_7_R1.EntityLiving;
import net.minecraft.server.v1_7_R1.EntityPlayer;
import net.minecraft.server.v1_7_R1.EntityTypes;
import net.minecraft.server.v1_7_R1.GenericAttributes;
import net.minecraft.server.v1_7_R1.MathHelper;
import net.minecraft.server.v1_7_R1.MobEffectList;
import net.minecraft.server.v1_7_R1.Navigation;
import net.minecraft.server.v1_7_R1.NetworkManager;
import net.minecraft.server.v1_7_R1.Packet;
import net.minecraft.server.v1_7_R1.PathfinderGoalSelector;
import net.minecraft.server.v1_7_R1.World;
import net.minecraft.util.io.netty.channel.Channel;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_6_R3.CraftServer;
import org.bukkit.craftbukkit.v1_6_R3.CraftWorld;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftLivingEntity;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_7_R1.CraftServer;
import org.bukkit.craftbukkit.v1_7_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftLivingEntity;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Horse;
import org.bukkit.entity.LivingEntity;
@ -121,13 +121,13 @@ public class NMS {
}
public static void flyingMoveLogic(EntityLiving entity, float f, float f1) {
if (entity.G()) {
if (entity.M()) {
entity.a(f, f1, 0.02F);
entity.move(entity.motX, entity.motY, entity.motZ);
entity.motX *= 0.800000011920929D;
entity.motY *= 0.800000011920929D;
entity.motZ *= 0.800000011920929D;
} else if (entity.I()) {
} else if (entity.P()) {
entity.a(f, f1, 0.02F);
entity.move(entity.motX, entity.motY, entity.motZ);
entity.motX *= 0.5D;
@ -137,13 +137,8 @@ public class NMS {
float f2 = 0.91F;
if (entity.onGround) {
f2 = 0.54600006F;
int i = entity.world.getTypeId(MathHelper.floor(entity.locX),
MathHelper.floor(entity.boundingBox.b) - 1, MathHelper.floor(entity.locZ));
if (i > 0) {
f2 = Block.byId[i].frictionFactor * 0.91F;
}
f2 = entity.world.getType(MathHelper.floor(entity.locX), MathHelper.floor(entity.boundingBox.b) - 1,
MathHelper.floor(entity.locZ)).frictionFactor * 0.91F;
}
float f3 = 0.16277136F / (f2 * f2 * f2);
@ -151,13 +146,8 @@ public class NMS {
entity.a(f, f1, entity.onGround ? 0.1F * f3 : 0.02F);
f2 = 0.91F;
if (entity.onGround) {
f2 = 0.54600006F;
int j = entity.world.getTypeId(MathHelper.floor(entity.locX),
MathHelper.floor(entity.boundingBox.b) - 1, MathHelper.floor(entity.locZ));
if (j > 0) {
f2 = Block.byId[j].frictionFactor * 0.91F;
}
f2 = entity.world.getType(MathHelper.floor(entity.locX), MathHelper.floor(entity.boundingBox.b) - 1,
MathHelper.floor(entity.locZ)).frictionFactor * 0.91F;
}
entity.move(entity.motX, entity.motY, entity.motZ);
@ -208,7 +198,7 @@ public class NMS {
return ((CraftLivingEntity) entity).getHandle();
}
public static net.minecraft.server.v1_6_R3.Entity getHandle(org.bukkit.entity.Entity entity) {
public static net.minecraft.server.v1_7_R1.Entity getHandle(org.bukkit.entity.Entity entity) {
return ((CraftEntity) entity).getHandle();
}
@ -232,7 +222,7 @@ public class NMS {
public static boolean inWater(org.bukkit.entity.Entity entity) {
Entity mcEntity = getHandle(entity);
return mcEntity.H() || mcEntity.J();
return mcEntity.M() || mcEntity.P();
}
public static boolean isNavigationFinished(Navigation navigation) {
@ -245,7 +235,7 @@ public class NMS {
public static void look(EntityLiving handle, Entity target) {
if (handle instanceof EntityInsentient) {
((EntityInsentient) handle).getControllerLook().a(target, 10.0F, ((EntityInsentient) handle).bp());
((EntityInsentient) handle).getControllerLook().a(target, 10.0F, ((EntityInsentient) handle).x());
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).setTargetLook(target, 10F, 40);
}
@ -376,7 +366,7 @@ public class NMS {
}
public static void setStepHeight(EntityLiving entity, float height) {
entity.Y = height;
entity.X = height;
}
public static void setVerticalMovement(org.bukkit.entity.Entity bukkitEntity, double d) {
@ -386,7 +376,7 @@ public class NMS {
handle.bf = (float) d;
}
public static boolean shouldJump(net.minecraft.server.v1_6_R3.Entity entity) {
public static boolean shouldJump(net.minecraft.server.v1_7_R1.Entity entity) {
if (JUMP_FIELD == null || !(entity instanceof EntityLiving))
return false;
try {
@ -424,8 +414,8 @@ public class NMS {
if (THREAD_STOPPER == null)
return;
try {
THREAD_STOPPER.set(manager, false);
THREAD_STOPPER_2.set(manager, true);
Channel channel = (Channel) THREAD_STOPPER.get(manager);
channel.close();
} catch (Exception e) {
Messaging.logTr(Messages.ERROR_STOPPING_NETWORK_THREADS, e.getMessage());
}
@ -502,7 +492,7 @@ public class NMS {
private static Map<Class<?>, Integer> ENTITY_CLASS_TO_INT;
private static final Map<Class<?>, Constructor<?>> ENTITY_CONSTRUCTOR_CACHE = new WeakHashMap<Class<?>, Constructor<?>>();
private static Map<Integer, Class<?>> ENTITY_INT_TO_CLASS;
private static Field GOAL_FIELD = getField(PathfinderGoalSelector.class, "a");
private static Field GOAL_FIELD = getField(PathfinderGoalSelector.class, "b");
private static final Field JUMP_FIELD = getField(EntityLiving.class, "bd");
private static Map<Class<?>, Integer> MC_ENTITY_CLASS_TO_INT = null;
private static Map<Integer, Class<?>> MC_ENTITY_INT_TO_CLASS = null;
@ -510,8 +500,7 @@ public class NMS {
private static final Location PACKET_CACHE_LOCATION = new Location(null, 0, 0, 0);
private static Field PATHFINDING_RANGE = getField(Navigation.class, "e");
private static final Random RANDOM = Util.getFastRandom();
private static Field THREAD_STOPPER = getField(NetworkManager.class, "n");
private static Field THREAD_STOPPER_2 = getField(NetworkManager.class, "t");
private static Field THREAD_STOPPER = getField(NetworkManager.class, "k");
// true field above false and three synchronised lists
static {

View File

@ -2,41 +2,41 @@ package net.citizensnpcs.util;
import java.util.Arrays;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.Packet;
import net.minecraft.server.v1_6_R3.Packet17EntityLocationAction;
import net.minecraft.server.v1_6_R3.Packet18ArmAnimation;
import net.minecraft.server.v1_6_R3.Packet40EntityMetadata;
import net.minecraft.server.v1_7_R1.EntityPlayer;
import net.minecraft.server.v1_7_R1.Packet;
import net.minecraft.server.v1_7_R1.PacketPlayOutAnimation;
import net.minecraft.server.v1_7_R1.PacketPlayOutBed;
import net.minecraft.server.v1_7_R1.PacketPlayOutEntityMetadata;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
public enum PlayerAnimation {
ARM_SWING {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
Packet18ArmAnimation packet = new Packet18ArmAnimation(player, 1);
PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 1);
sendPacketNearby(packet, player, radius);
}
},
CRIT {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
Packet18ArmAnimation packet = new Packet18ArmAnimation(player, 6);
PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 6);
sendPacketNearby(packet, player, radius);
}
},
HURT {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
Packet18ArmAnimation packet = new Packet18ArmAnimation(player, 2);
PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 2);
sendPacketNearby(packet, player, radius);
}
},
MAGIC_CRIT {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
Packet18ArmAnimation packet = new Packet18ArmAnimation(player, 7);
PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 7);
sendPacketNearby(packet, player, radius);
}
},
@ -49,8 +49,8 @@ public enum PlayerAnimation {
SLEEP {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
Packet17EntityLocationAction packet = new Packet17EntityLocationAction(player, 0, (int) player.locX,
(int) player.locY, (int) player.locZ);
PacketPlayOutBed packet = new PacketPlayOutBed(player, (int) player.locX, (int) player.locY,
(int) player.locZ);
sendPacketNearby(packet, player, radius);
}
},
@ -58,7 +58,8 @@ public enum PlayerAnimation {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
player.getBukkitEntity().setSneaking(true);
sendPacketNearby(new Packet40EntityMetadata(player.id, player.getDataWatcher(), true), player, radius);
sendPacketNearby(new PacketPlayOutEntityMetadata(player.getId(), player.getDataWatcher(), true), player,
radius);
}
},
STOP_SITTING {
@ -70,7 +71,7 @@ public enum PlayerAnimation {
STOP_SLEEPING {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
Packet18ArmAnimation packet = new Packet18ArmAnimation(player, 3);
PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 3);
sendPacketNearby(packet, player, radius);
}
},
@ -78,7 +79,8 @@ public enum PlayerAnimation {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
player.getBukkitEntity().setSneaking(false);
sendPacketNearby(new Packet40EntityMetadata(player.id, player.getDataWatcher(), true), player, radius);
sendPacketNearby(new PacketPlayOutEntityMetadata(player.getId(), player.getDataWatcher(), true), player,
radius);
}
};

View File

@ -1,9 +1,9 @@
package net.citizensnpcs.util.nms;
import net.citizensnpcs.npc.entity.EntityHumanNPC;
import net.minecraft.server.v1_6_R3.Entity;
import net.minecraft.server.v1_6_R3.EntityLiving;
import net.minecraft.server.v1_6_R3.MathHelper;
import net.minecraft.server.v1_7_R1.Entity;
import net.minecraft.server.v1_7_R1.EntityLiving;
import net.minecraft.server.v1_7_R1.MathHelper;
public class PlayerControllerLook {
private final EntityHumanNPC a;

View File

@ -2,9 +2,9 @@ package net.citizensnpcs.util.nms;
import net.citizensnpcs.npc.entity.EntityHumanNPC;
import net.citizensnpcs.util.NMS;
import net.minecraft.server.v1_6_R3.AttributeInstance;
import net.minecraft.server.v1_6_R3.GenericAttributes;
import net.minecraft.server.v1_6_R3.MathHelper;
import net.minecraft.server.v1_7_R1.AttributeInstance;
import net.minecraft.server.v1_7_R1.GenericAttributes;
import net.minecraft.server.v1_7_R1.MathHelper;
public class PlayerControllerMove {
private final EntityHumanNPC a;
@ -61,8 +61,8 @@ public class PlayerControllerMove {
double d2 = this.c - i;
double d3 = d0 * d0 + d2 * d2 + d1 * d1;
if (d3 >= 2.500000277905201E-7D) {
float f = (float) (Math.atan2(d1, d0) * 180.0D / 3.1415927410125732D) - 90.0F;
if (d3 >= 2.5D) {
float f = (float) (Math.atan2(d1, d0) * 180.0D / Math.PI) - 90.0F;
this.a.yaw = this.a(this.a.yaw, f, 30.0F);
NMS.setHeadYaw(a, this.a.yaw);

View File

@ -1,19 +1,19 @@
package net.citizensnpcs.util.nms;
import net.citizensnpcs.npc.entity.EntityHumanNPC;
import net.minecraft.server.v1_6_R3.AttributeInstance;
import net.minecraft.server.v1_6_R3.Block;
import net.minecraft.server.v1_6_R3.Entity;
import net.minecraft.server.v1_6_R3.EntityInsentient;
import net.minecraft.server.v1_6_R3.GenericAttributes;
import net.minecraft.server.v1_6_R3.IBlockAccess;
import net.minecraft.server.v1_6_R3.Material;
import net.minecraft.server.v1_6_R3.MathHelper;
import net.minecraft.server.v1_6_R3.Navigation;
import net.minecraft.server.v1_6_R3.PathEntity;
import net.minecraft.server.v1_6_R3.PathPoint;
import net.minecraft.server.v1_6_R3.Vec3D;
import net.minecraft.server.v1_6_R3.World;
import net.minecraft.server.v1_7_R1.AttributeInstance;
import net.minecraft.server.v1_7_R1.Block;
import net.minecraft.server.v1_7_R1.Blocks;
import net.minecraft.server.v1_7_R1.Entity;
import net.minecraft.server.v1_7_R1.EntityInsentient;
import net.minecraft.server.v1_7_R1.GenericAttributes;
import net.minecraft.server.v1_7_R1.Material;
import net.minecraft.server.v1_7_R1.MathHelper;
import net.minecraft.server.v1_7_R1.Navigation;
import net.minecraft.server.v1_7_R1.PathEntity;
import net.minecraft.server.v1_7_R1.PathPoint;
import net.minecraft.server.v1_7_R1.Vec3D;
import net.minecraft.server.v1_7_R1.World;
public class PlayerNavigation extends Navigation {
private final EntityHumanNPC a;
@ -25,6 +25,7 @@ public class PlayerNavigation extends Navigation {
private int g;
private int h;
private final Vec3D i = Vec3D.a(0.0D, 0.0D, 0.0D);
private boolean j = true;
private boolean k;
private boolean l;
@ -43,192 +44,169 @@ public class PlayerNavigation extends Navigation {
}
@Override
public void a(boolean flag) {
this.l = flag;
public void a(boolean paramBoolean) {
this.l = paramBoolean;
}
@Override
public void a(double d0) {
this.d = d0;
public void a(double paramDouble) {
this.d = paramDouble;
}
@Override
public PathEntity a(double d0, double d1, double d2) {
return !this.l() ? null : this.b.a(this.a, MathHelper.floor(d0), (int) d1, MathHelper.floor(d2), this.d(),
this.j, this.k, this.l, this.m);
public PathEntity a(double paramDouble1, double paramDouble2, double paramDouble3) {
if (!l())
return null;
return this.b.a(this.a, MathHelper.floor(paramDouble1), (int) paramDouble2, MathHelper.floor(paramDouble3),
d(), this.j, this.k, this.l, this.m);
}
@Override
public boolean a(double d0, double d1, double d2, double d3) {
PathEntity pathentity = this.a(MathHelper.floor(d0), ((int) d1), MathHelper.floor(d2));
return this.a(pathentity, d3);
public boolean a(double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4) {
PathEntity localPathEntity = a(MathHelper.floor(paramDouble1), (int) paramDouble2,
MathHelper.floor(paramDouble3));
return a(localPathEntity, paramDouble4);
}
@Override
public PathEntity a(Entity entity) {
return !this.l() ? null : this.b.findPath(this.a, entity, this.d(), this.j, this.k, this.l, this.m);
public PathEntity a(Entity paramEntity) {
if (!l())
return null;
return this.b.findPath(this.a, paramEntity, d(), this.j, this.k, this.l, this.m);
}
@Override
public boolean a(Entity entity, double d0) {
PathEntity pathentity = this.a(entity);
return pathentity != null ? this.a(pathentity, d0) : false;
public boolean a(Entity paramEntity, double paramDouble) {
PathEntity localPathEntity = a(paramEntity);
if (localPathEntity != null)
return a(localPathEntity, paramDouble);
return false;
}
private boolean a(int i, int j, int k, int l, int i1, int j1, Vec3D vec3d, double d0, double d1) {
int k1 = i - l / 2;
int l1 = k - j1 / 2;
private boolean a(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6,
Vec3D paramVec3D, double paramDouble1, double paramDouble2) {
int n = paramInt1 - paramInt4 / 2;
int i1 = paramInt3 - paramInt6 / 2;
if (!this.b(k1, j, l1, l, i1, j1, vec3d, d0, d1)) {
if (!b(n, paramInt2, i1, paramInt4, paramInt5, paramInt6, paramVec3D, paramDouble1, paramDouble2))
return false;
} else {
for (int i2 = k1; i2 < k1 + l; ++i2) {
for (int j2 = l1; j2 < l1 + j1; ++j2) {
double d2 = i2 + 0.5D - vec3d.c;
double d3 = j2 + 0.5D - vec3d.e;
if (d2 * d0 + d3 * d1 >= 0.0D) {
int k2 = this.b.getTypeId(i2, j - 1, j2);
if (k2 <= 0) {
return false;
}
Material material = Block.byId[k2].material;
if (material == Material.WATER && !this.a.H()) {
return false;
}
if (material == Material.LAVA) {
return false;
}
}
for (int i2 = n; i2 < n + paramInt4; i2++) {
for (int i3 = i1; i3 < i1 + paramInt6; i3++) {
double d1 = i2 + 0.5D - paramVec3D.c;
double d2 = i3 + 0.5D - paramVec3D.e;
if (d1 * paramDouble1 + d2 * paramDouble2 >= 0.0D) {
Block localBlock = this.b.getType(i2, paramInt2 - 1, i3);
Material localMaterial = localBlock.getMaterial();
if (localMaterial == Material.AIR)
return false;
if ((localMaterial == Material.WATER) && (!this.a.M()))
return false;
if (localMaterial == Material.LAVA)
return false;
}
}
return true;
}
return true;
}
@Override
public boolean a(PathEntity pathentity, double d0) {
if (pathentity == null) {
public boolean a(PathEntity paramPathEntity, double paramDouble) {
if (paramPathEntity == null) {
this.c = null;
return false;
} else {
if (!pathentity.a(this.c)) {
this.c = pathentity;
}
if (this.f) {
this.n();
}
if (this.c.d() == 0) {
return false;
} else {
this.d = d0;
Vec3D vec3d = this.j();
this.h = this.g;
this.i.c = vec3d.c;
this.i.d = vec3d.d;
this.i.e = vec3d.e;
return true;
}
}
if (!paramPathEntity.a(this.c))
this.c = paramPathEntity;
if (this.f)
n();
if (this.c.d() == 0)
return false;
this.d = paramDouble;
Vec3D localVec3D = j();
this.h = this.g;
this.i.c = localVec3D.c;
this.i.d = localVec3D.d;
this.i.e = localVec3D.e;
return true;
}
private boolean a(Vec3D vec3d, Vec3D vec3d1, int i, int j, int k) {
int l = MathHelper.floor(vec3d.c);
int i1 = MathHelper.floor(vec3d.e);
double d0 = vec3d1.c - vec3d.c;
double d1 = vec3d1.e - vec3d.e;
double d2 = d0 * d0 + d1 * d1;
private boolean a(Vec3D paramVec3D1, Vec3D paramVec3D2, int paramInt1, int paramInt2, int paramInt3) {
int n = MathHelper.floor(paramVec3D1.c);
int i1 = MathHelper.floor(paramVec3D1.e);
if (d2 < 1.0E-8D) {
double d1 = paramVec3D2.c - paramVec3D1.c;
double d2 = paramVec3D2.e - paramVec3D1.e;
double d3 = d1 * d1 + d2 * d2;
if (d3 < 1.0E-008D)
return false;
} else {
double d3 = 1.0D / Math.sqrt(d2);
d0 *= d3;
d1 *= d3;
i += 2;
k += 2;
if (!this.a(l, (int) vec3d.d, i1, i, j, k, vec3d, d0, d1)) {
return false;
double d4 = 1.0D / Math.sqrt(d3);
d1 *= d4;
d2 *= d4;
paramInt1 += 2;
paramInt3 += 2;
if (!a(n, (int) paramVec3D1.d, i1, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2))
return false;
paramInt1 -= 2;
paramInt3 -= 2;
double d5 = 1.0D / Math.abs(d1);
double d6 = 1.0D / Math.abs(d2);
double d7 = n * 1 - paramVec3D1.c;
double d8 = i1 * 1 - paramVec3D1.e;
if (d1 >= 0.0D)
d7 += 1.0D;
if (d2 >= 0.0D)
d8 += 1.0D;
d7 /= d1;
d8 /= d2;
int i2 = d1 < 0.0D ? -1 : 1;
int i3 = d2 < 0.0D ? -1 : 1;
int i4 = MathHelper.floor(paramVec3D2.c);
int i5 = MathHelper.floor(paramVec3D2.e);
int i6 = i4 - n;
int i7 = i5 - i1;
while ((i6 * i2 > 0) || (i7 * i3 > 0)) {
if (d7 < d8) {
d7 += d5;
n += i2;
i6 = i4 - n;
} else {
i -= 2;
k -= 2;
double d4 = 1.0D / Math.abs(d0);
double d5 = 1.0D / Math.abs(d1);
double d6 = l * 1 - vec3d.c;
double d7 = i1 * 1 - vec3d.e;
if (d0 >= 0.0D) {
++d6;
}
if (d1 >= 0.0D) {
++d7;
}
d6 /= d0;
d7 /= d1;
int j1 = d0 < 0.0D ? -1 : 1;
int k1 = d1 < 0.0D ? -1 : 1;
int l1 = MathHelper.floor(vec3d1.c);
int i2 = MathHelper.floor(vec3d1.e);
int j2 = l1 - l;
int k2 = i2 - i1;
do {
if (j2 * j1 <= 0 && k2 * k1 <= 0) {
return true;
}
if (d6 < d7) {
d6 += d4;
l += j1;
j2 = l1 - l;
} else {
d7 += d5;
i1 += k1;
k2 = i2 - i1;
}
} while (this.a(l, (int) vec3d.d, i1, i, j, k, vec3d, d0, d1));
return false;
d8 += d6;
i1 += i3;
i7 = i5 - i1;
}
if (!a(n, (int) paramVec3D1.d, i1, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2))
return false;
}
return true;
}
@Override
public void b(boolean flag) {
this.k = flag;
public void b(boolean paramBoolean) {
this.k = paramBoolean;
}
private boolean b(int i, int j, int k, int l, int i1, int j1, Vec3D vec3d, double d0, double d1) {
for (int k1 = i; k1 < i + l; ++k1) {
for (int l1 = j; l1 < j + i1; ++l1) {
for (int i2 = k; i2 < k + j1; ++i2) {
double d2 = k1 + 0.5D - vec3d.c;
double d3 = i2 + 0.5D - vec3d.e;
if (d2 * d0 + d3 * d1 >= 0.0D) {
int j2 = this.b.getTypeId(k1, l1, i2);
if (j2 > 0 && !Block.byId[j2].b((IBlockAccess) this.b, k1, l1, i2)) {
private boolean b(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6,
Vec3D paramVec3D, double paramDouble1, double paramDouble2) {
for (int n = paramInt1; n < paramInt1 + paramInt4; n++) {
for (int i1 = paramInt2; i1 < paramInt2 + paramInt5; i1++)
for (int i2 = paramInt3; i2 < paramInt3 + paramInt6; i2++) {
double d1 = n + 0.5D - paramVec3D.c;
double d2 = i2 + 0.5D - paramVec3D.e;
if (d1 * paramDouble1 + d2 * paramDouble2 >= 0.0D) {
Block localBlock = this.b.getType(n, i1, i2);
if (!localBlock.b(this.b, n, i1, i2))
return false;
}
}
}
}
}
return true;
}
@ -238,8 +216,8 @@ public class PlayerNavigation extends Navigation {
}
@Override
public void c(boolean flag) {
this.j = flag;
public void c(boolean paramBoolean) {
this.j = paramBoolean;
}
@Override
@ -248,8 +226,8 @@ public class PlayerNavigation extends Navigation {
}
@Override
public void d(boolean flag) {
this.f = flag;
public void d(boolean paramBoolean) {
this.f = paramBoolean;
}
@Override
@ -258,31 +236,31 @@ public class PlayerNavigation extends Navigation {
}
@Override
public void e(boolean flag) {
this.m = flag;
public void e(boolean paramBoolean) {
this.m = paramBoolean;
}
@Override
public void f() {
++this.g;
if (!this.g()) {
if (this.l()) {
this.i();
}
this.g += 1;
if (g())
return;
if (!this.g()) {
Vec3D vec3d = this.c.a(this.a);
if (l())
i();
if (vec3d != null) {
this.a.setMoveDestination(vec3d.c, vec3d.d, vec3d.e, (float) this.d);
}
}
}
if (g())
return;
Vec3D localVec3D = this.c.a(this.a);
if (localVec3D == null)
return;
this.a.setMoveDestination(localVec3D.c, localVec3D.d, localVec3D.e, this.d);
}
@Override
public boolean g() {
return this.c == null || this.c.b();
return (this.c == null) || (this.c.b());
}
@Override
@ -291,105 +269,93 @@ public class PlayerNavigation extends Navigation {
}
private void i() {
Vec3D vec3d = this.j();
int i = this.c.d();
Vec3D localVec3D = j();
for (int j = this.c.e(); j < this.c.d(); ++j) {
if (this.c.a(j).b != (int) vec3d.d) {
i = j;
int n = this.c.d();
for (int i1 = this.c.e(); i1 < this.c.d(); i1++) {
if (this.c.a(i1).b != (int) localVec3D.d) {
n = i1;
break;
}
}
float f = this.a.width * this.a.width;
int k;
for (k = this.c.e(); k < i; ++k) {
if (vec3d.distanceSquared(this.c.a(this.a, k)) < f) {
this.c.c(k + 1);
float f1 = this.a.width * this.a.width;
for (int i2 = this.c.e(); i2 < n; i2++) {
if (localVec3D.distanceSquared(this.c.a(this.a, i2)) < f1) {
this.c.c(i2 + 1);
}
}
k = MathHelper.f(this.a.width);
int l = (int) this.a.length + 1;
int i1 = k;
for (int j1 = i - 1; j1 >= this.c.e(); --j1) {
if (this.a(vec3d, this.c.a(this.a, j1), k, l, i1)) {
this.c.c(j1);
int i3 = (int) this.a.length + 1;
int i4 = MathHelper.f(this.a.width);
for (int i5 = n - 1; i5 >= this.c.e(); i5--) {
if (a(localVec3D, this.c.a(this.a, i5), i4, i3, i4)) {
this.c.c(i5);
break;
}
}
if (this.g - this.h > 100) {
if (vec3d.distanceSquared(this.i) < 2.25D) {
this.h();
}
if (localVec3D.distanceSquared(this.i) < 2.25D)
h();
this.h = this.g;
this.i.c = vec3d.c;
this.i.d = vec3d.d;
this.i.e = vec3d.e;
this.i.c = localVec3D.c;
this.i.d = localVec3D.d;
this.i.e = localVec3D.e;
}
}
private Vec3D j() {
return this.b.getVec3DPool().create(this.a.locX, this.k(), this.a.locZ);
return this.b.getVec3DPool().create(this.a.locX, k(), this.a.locZ);
}
private int k() {
if (this.a.H() && this.m) {
int i = (int) this.a.boundingBox.b;
int j = this.b.getTypeId(MathHelper.floor(this.a.locX), i, MathHelper.floor(this.a.locZ));
int k = 0;
do {
if (j != Block.WATER.id && j != Block.STATIONARY_WATER.id) {
return i;
}
++i;
j = this.b.getTypeId(MathHelper.floor(this.a.locX), i, MathHelper.floor(this.a.locZ));
++k;
} while (k <= 16);
return (int) this.a.boundingBox.b;
} else {
if ((!this.a.M()) || (!this.m))
return (int) (this.a.boundingBox.b + 0.5D);
int n = (int) this.a.boundingBox.b;
Block localBlock = this.b.getType(MathHelper.floor(this.a.locX), n, MathHelper.floor(this.a.locZ));
int i1 = 0;
while ((localBlock == Blocks.WATER) || (localBlock == Blocks.STATIONARY_WATER)) {
n++;
localBlock = this.b.getType(MathHelper.floor(this.a.locX), n, MathHelper.floor(this.a.locZ));
i1++;
if (i1 > 16)
return (int) this.a.boundingBox.b;
}
return n;
}
private boolean l() {
return this.a.onGround || this.m && this.m();
return (this.a.onGround) || ((this.m) && (m()));
}
private boolean m() {
return this.a.H() || this.a.J();
return (this.a.M()) || (this.a.P());
}
private void n() {
if (!this.b
.l(MathHelper.floor(this.a.locX), (int) (this.a.boundingBox.b + 0.5D), MathHelper.floor(this.a.locZ))) {
for (int i = 0; i < this.c.d(); ++i) {
PathPoint pathpoint = this.c.a(i);
if (this.b.i(MathHelper.floor(this.a.locX), (int) (this.a.boundingBox.b + 0.5D), MathHelper.floor(this.a.locZ)))
return;
if (this.b.l(pathpoint.a, pathpoint.b, pathpoint.c)) {
this.c.b(i - 1);
return;
}
for (int n = 0; n < this.c.d(); n++) {
PathPoint localPathPoint = this.c.a(n);
if (this.b.i(localPathPoint.a, localPathPoint.b, localPathPoint.c)) {
this.c.b(n - 1);
return;
}
}
}
public void setRange(float pathfindingRange) {
if (this.e != null) {
this.e.setValue(pathfindingRange);
}
this.e.setValue(pathfindingRange);
}
private static EntityInsentient getDummyInsentient(EntityHumanNPC from) {
return new EntityInsentient(null) {
};
}
}
}