Forward the rest of the RegistryMaterials methods and fix player looking

This commit is contained in:
fullwall 2016-11-25 19:29:59 +08:00
parent 0fa0d29f17
commit 07a3aeabad
4 changed files with 44 additions and 8 deletions

View File

@ -8,8 +8,10 @@ import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.material.Door;
import org.bukkit.util.Vector;
import com.google.common.collect.Iterables;
@ -391,12 +393,17 @@ public class CitizensNavigator implements Navigator, Runnable {
private static class DoorOpener implements PathCallback {
@Override
@SuppressWarnings("deprecation")
public void run(NPC npc, Block point, ListIterator<Block> path) {
BlockState state = point.getState();
Door door = (Door) state.getData();
if (npc.getStoredLocation().distance(point.getLocation()) < 2) {
boolean bottom = (point.getData() & 8) == 0;
boolean bottom = !door.isTopHalf();
Block set = bottom ? point : point.getRelative(BlockFace.DOWN);
set.setData((byte) ((set.getData() & 7) | 4));
state = set.getState();
door = (Door) state.getData();
door.setOpen(true);
state.setData(door);
state.update();
}
}
}

View File

@ -133,6 +133,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
moveOnCurrentHeading();
}
NMSImpl.updateAI(this);
if (noDamageTicks > 0) {
--noDamageTicks;
@ -330,7 +331,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void moveOnCurrentHeading() {
NMSImpl.updateAI(this);
if (bd) {
if (onGround && jumpTicks == 0) {
cm();

View File

@ -1,6 +1,9 @@
package net.citizensnpcs.nms.v1_11_R1.util;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
@ -10,6 +13,7 @@ import net.minecraft.server.v1_11_R1.Entity;
import net.minecraft.server.v1_11_R1.MinecraftKey;
import net.minecraft.server.v1_11_R1.RegistryMaterials;
@SuppressWarnings("rawtypes")
public class CustomEntityRegistry extends RegistryMaterials {
private final BiMap<MinecraftKey, Class<? extends Entity>> entities = HashBiMap.create();
private final BiMap<Class<? extends Entity>, MinecraftKey> entityClasses = this.entities.inverse();
@ -34,6 +38,11 @@ public class CustomEntityRegistry extends RegistryMaterials {
return wrapped.a((Class<? extends Entity>) key);
}
@Override
public Object a(Random paramRandom) {
return wrapped.a(paramRandom);
}
@Override
public MinecraftKey b(Object value) {
if (entityClasses.containsKey(value)) {
@ -43,6 +52,11 @@ public class CustomEntityRegistry extends RegistryMaterials {
return wrapped.b((Class<? extends Entity>) value);
}
@Override
public boolean d(Object paramK) {
return wrapped.d((MinecraftKey) paramK);
}
@Override
public Class<? extends Entity> get(Object key) {
if (entities.containsKey(key)) {
@ -52,10 +66,25 @@ public class CustomEntityRegistry extends RegistryMaterials {
return wrapped.get((MinecraftKey) key);
}
@Override
public Object getId(int paramInt) {
return wrapped.getId(paramInt);
}
public RegistryMaterials<MinecraftKey, Class<? extends Entity>> getWrapped() {
return wrapped;
}
@Override
public Iterator<Object> iterator() {
return (Iterator) wrapped.iterator();
}
@Override
public Set<Object> keySet() {
return (Set) wrapped.keySet();
}
public void put(int entityId, MinecraftKey key, Class<? extends Entity> entityClass) {
entities.put(key, entityClass);
entityIds.put(entityClass, entityId);

View File

@ -810,11 +810,11 @@ public class NMSImpl implements NMSBridge {
return;
EntityLiving handle = (EntityLiving) getHandle(entity);
yaw = Util.clampYaw(yaw);
handle.aN = yaw;
if (!(handle instanceof EntityHuman)) {
handle.aL = yaw;
}
handle.aO = yaw;
if (!(handle instanceof EntityHuman)) {
handle.aN = yaw;
}
handle.aP = yaw;
}
@Override