Fix logic error in allay reset, code cleanup

This commit is contained in:
fullwall 2023-02-23 00:00:47 +08:00
parent 5087ffb4bf
commit 8fa5a965e1
1222 changed files with 1049 additions and 4588 deletions

View File

@ -8,14 +8,10 @@
<artifactId>citizens-parent</artifactId> <artifactId>citizens-parent</artifactId>
<version>2.0.30-SNAPSHOT</version> <version>2.0.30-SNAPSHOT</version>
</parent> </parent>
<artifactId>citizens-v1_10_R1</artifactId> <artifactId>citizens-v1_10_R1</artifactId> <properties>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<craftbukkit.version>1.10.2-R0.1-SNAPSHOT</craftbukkit.version> <craftbukkit.version>1.10.2-R0.1-SNAPSHOT</craftbukkit.version>
</properties> </properties> <dependencies>
<dependencies>
<dependency> <dependency>
<groupId>${project.groupId}</groupId> <groupId>${project.groupId}</groupId>
<artifactId>citizens-main</artifactId> <artifactId>citizens-main</artifactId>
@ -30,13 +26,9 @@
<type>jar</type> <type>jar</type>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies> <build>
<build>
<defaultGoal>clean package install</defaultGoal> <defaultGoal>clean package install</defaultGoal>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory> <sourceDirectory>${basedir}/src/main/java</sourceDirectory> <plugins>
<plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
@ -45,9 +37,7 @@
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
</configuration> </configuration>
</plugin> </plugin> <plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId> <artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0</version> <version>3.0.0</version>
@ -63,9 +53,7 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId> <artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version> <version>3.2.0</version>
</plugin> </plugin> <plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>3.3.0</version> <version>3.3.0</version>

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftBat;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Bat; import org.bukkit.entity.Bat;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftBlaze;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Blaze; import org.bukkit.entity.Blaze;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftCaveSpider;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.CaveSpider; import org.bukkit.entity.CaveSpider;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftChicken;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Chicken; import org.bukkit.entity.Chicken;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -66,13 +65,11 @@ public class ChickenController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftCow;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Cow; import org.bukkit.entity.Cow;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -70,13 +69,11 @@ public class CowController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftCreeper;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Creeper; import org.bukkit.entity.Creeper;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -53,7 +52,6 @@ public class CreeperController extends MobEntityController {
public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder {
private boolean allowPowered; private boolean allowPowered;
private final CitizensNPC npc; private final CitizensNPC npc;
public EntityCreeperNPC(World world) { public EntityCreeperNPC(World world) {

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEnderDragon;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.EnderDragon; import org.bukkit.entity.EnderDragon;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEnderman;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Enderman; import org.bukkit.entity.Enderman;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEndermite;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Endermite; import org.bukkit.entity.Endermite;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -4,7 +4,6 @@ import java.io.IOException;
import java.net.Socket; import java.net.Socket;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Location; import org.bukkit.Location;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.bukkit.metadata.MetadataValue; import org.bukkit.metadata.MetadataValue;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent; import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
@ -78,7 +75,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile, public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile,
PlayerInteractManager playerInteractManager, NPC npc) { PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager); super(minecraftServer, world, gameProfile, playerInteractManager);
this.npc = (CitizensNPC) npc; this.npc = (CitizensNPC) npc;
if (npc != null) { if (npc != null) {
skinTracker = new SkinPacketTracker(this); skinTracker = new SkinPacketTracker(this);
@ -259,20 +255,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
} catch (IOException e) { } catch (IOException e) {
// swallow // swallow
} }
AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE); AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE);
if (range == null) { if (range == null) {
range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE); range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE);
} }
range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble()); range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble());
controllerJump = new PlayerControllerJump(this); controllerJump = new PlayerControllerJump(this);
controllerMove = new PlayerControllerMove(this); controllerMove = new PlayerControllerMove(this);
navigation = new PlayerNavigation(this, world); navigation = new PlayerNavigation(this, world);
invulnerableTicks = 0; invulnerableTicks = 0;
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing setSkinFlags((byte) 0xFF);
setSkinFlags((byte) 0xFF);
} }
@Override @Override
@ -309,13 +301,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
} }
moveOnCurrentHeading(); moveOnCurrentHeading();
} }
updateAI(); updateAI();
if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) {
cs(); cs();
} }
if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, !npc.isProtected())) { if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, !npc.isProtected())) {
AxisAlignedBB axisalignedbb; AxisAlignedBB axisalignedbb;
if (this.isPassenger() && !this.getVehicle().dead) { if (this.isPassenger() && !this.getVehicle().dead) {
@ -323,7 +312,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
} else { } else {
axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0); axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0);
} }
for (Entity entity : this.world.getEntities(this, axisalignedbb)) { for (Entity entity : this.world.getEntities(this, axisalignedbb)) {
if (!entity.dead) { if (!entity.dead) {
entity.d(this); entity.d(this);
@ -339,9 +327,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
return; return;
this.noclip = isSpectator(); this.noclip = isSpectator();
Bukkit.getServer().getPluginManager().unsubscribeFromPermission("bukkit.broadcast.user", bukkitEntity); Bukkit.getServer().getPluginManager().unsubscribeFromPermission("bukkit.broadcast.user", bukkitEntity);
updatePackets(npc.getNavigator().isNavigating()); updatePackets(npc.getNavigator().isNavigating());
npc.update(); npc.update();
} }
@ -375,7 +361,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
private void moveWithFallDamage(float mx, float my) { private void moveWithFallDamage(float mx, float my) {
double y = this.locY; double y = this.locY;
g(mx, my); g(mx, my);
if (!npc.isProtected()) { if (!npc.isProtected()) {
a(this.locY - y, onGround); a(this.locY - y, onGround);

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftGhast; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftGhast;
import org.bukkit.entity.Ghast; import org.bukkit.entity.Ghast;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftGiant; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftGiant;
import org.bukkit.entity.Giant; import org.bukkit.entity.Giant;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftGuardian; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftGuardian;
import org.bukkit.entity.Guardian; import org.bukkit.entity.Guardian;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -7,7 +7,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftHorse; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftHorse;
import org.bukkit.entity.Horse; import org.bukkit.entity.Horse;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -63,13 +62,11 @@ public class HorseController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -1,15 +1,12 @@
package net.citizensnpcs.nms.v1_10_R1.entity; package net.citizensnpcs.nms.v1_10_R1.entity;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_10_R1.CraftWorld; import org.bukkit.craftbukkit.v1_10_R1.CraftWorld;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
@ -31,27 +28,21 @@ public class HumanController extends AbstractEntityController {
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle(); final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
String coloredName = npc.getFullName(); String coloredName = npc.getFullName();
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName; String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
UUID uuid = npc.getUniqueId(); UUID uuid = npc.getUniqueId();
String teamName = Util.getTeamName(uuid); String teamName = Util.getTeamName(uuid);
if (npc.requiresNameHologram()) { if (npc.requiresNameHologram()) {
name = teamName; name = teamName;
} }
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name);
} }
final GameProfile profile = new GameProfile(uuid, name); final GameProfile profile = new GameProfile(uuid, name);
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
new PlayerInteractManager(nmsWorld), npc); new PlayerInteractManager(nmsWorld), npc);
Skin skin = handle.getSkinTracker().getSkin(); Skin skin = handle.getSkinTracker().getSkin();
if (skin != null) { if (skin != null) {
skin.apply(handle); skin.apply(handle);
} }
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() { Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() {
@Override @Override
public void run() { public void run() {
@ -63,9 +54,7 @@ public class HumanController extends AbstractEntityController {
NMS.addOrRemoveFromPlayerList(getBukkitEntity(), removeFromPlayerList); NMS.addOrRemoveFromPlayerList(getBukkitEntity(), removeFromPlayerList);
} }
}, 20); }, 20);
handle.getBukkitEntity().setSleepingIgnored(true); handle.getBukkitEntity().setSleepingIgnored(true);
return handle.getBukkitEntity(); return handle.getBukkitEntity();
} }

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftIronGolem; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftIronGolem;
import org.bukkit.entity.IronGolem; import org.bukkit.entity.IronGolem;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMagmaCube; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMagmaCube;
import org.bukkit.entity.MagmaCube; import org.bukkit.entity.MagmaCube;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -4,12 +4,10 @@ import java.lang.invoke.MethodHandle;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.Map; import java.util.Map;
import java.util.WeakHashMap; import java.util.WeakHashMap;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.block.BlockFace; import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_10_R1.CraftWorld; import org.bukkit.craftbukkit.v1_10_R1.CraftWorld;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -34,9 +32,10 @@ public abstract class MobEntityController extends AbstractEntityController {
if (entity instanceof EntityInsentient) { if (entity instanceof EntityInsentient) {
NMSImpl.clearGoals(((EntityInsentient) entity).goalSelector, ((EntityInsentient) entity).targetSelector); NMSImpl.clearGoals(((EntityInsentient) entity).goalSelector, ((EntityInsentient) entity).targetSelector);
} }
entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); // entity.onGround
// isn't updated right
// entity.onGround isn't updated right away - we approximate here so // away - we
// approximate here so
// that things like pathfinding still work *immediately* after spawn. // that things like pathfinding still work *immediately* after spawn.
org.bukkit.Material beneath = at.getBlock().getRelative(BlockFace.DOWN).getType(); org.bukkit.Material beneath = at.getBlock().getRelative(BlockFace.DOWN).getType();
if (beneath.isSolid()) { if (beneath.isSolid()) {

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMushroomCow; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMushroomCow;
import org.bukkit.entity.MushroomCow; import org.bukkit.entity.MushroomCow;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -27,7 +26,6 @@ import net.minecraft.server.v1_10_R1.SoundEffect;
import net.minecraft.server.v1_10_R1.World; import net.minecraft.server.v1_10_R1.World;
public class MushroomCowController extends MobEntityController { public class MushroomCowController extends MobEntityController {
public MushroomCowController() { public MushroomCowController() {
super(EntityMushroomCowNPC.class); super(EntityMushroomCowNPC.class);
} }
@ -56,13 +54,11 @@ public class MushroomCowController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftOcelot; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftOcelot;
import org.bukkit.entity.Ocelot; import org.bukkit.entity.Ocelot;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -52,13 +51,11 @@ public class OcelotController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override
@ -178,7 +175,6 @@ public class OcelotController extends MobEntityController {
return false; return false;
} }
} }
} }
public static class OcelotNPC extends CraftOcelot implements NPCHolder { public static class OcelotNPC extends CraftOcelot implements NPCHolder {

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPig; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPig;
import org.bukkit.entity.Pig; import org.bukkit.entity.Pig;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -53,13 +52,11 @@ public class PigController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPigZombie; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPigZombie;
import org.bukkit.entity.PigZombie; import org.bukkit.entity.PigZombie;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -24,7 +23,6 @@ import net.minecraft.server.v1_10_R1.SoundEffect;
import net.minecraft.server.v1_10_R1.World; import net.minecraft.server.v1_10_R1.World;
public class PigZombieController extends MobEntityController { public class PigZombieController extends MobEntityController {
public PigZombieController() { public PigZombieController() {
super(EntityPigZombieNPC.class); super(EntityPigZombieNPC.class);
} }

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPolarBear; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPolarBear;
import org.bukkit.entity.PolarBear; import org.bukkit.entity.PolarBear;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -50,13 +49,11 @@ public class PolarBearController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftRabbit; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftRabbit;
import org.bukkit.entity.Rabbit; import org.bukkit.entity.Rabbit;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -53,13 +52,11 @@ public class RabbitController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSheep; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSheep;
import org.bukkit.entity.Sheep; import org.bukkit.entity.Sheep;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -52,13 +51,11 @@ public class SheepController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftShulker; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftShulker;
import org.bukkit.entity.Shulker; import org.bukkit.entity.Shulker;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSilverfish; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSilverfish;
import org.bukkit.entity.Silverfish; import org.bukkit.entity.Silverfish;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSkeleton; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSkeleton;
import org.bukkit.entity.Skeleton; import org.bukkit.entity.Skeleton;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSlime; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSlime;
import org.bukkit.entity.Slime; import org.bukkit.entity.Slime;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSnowman; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSnowman;
import org.bukkit.entity.Snowman; import org.bukkit.entity.Snowman;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSpider; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSpider;
import org.bukkit.entity.Spider; import org.bukkit.entity.Spider;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -169,7 +168,6 @@ public class SpiderController extends MobEntityController {
NMSImpl.setSize(this, f, f1, justCreated); NMSImpl.setSize(this, f, f1, justCreated);
} }
} }
} }
public static class SpiderNPC extends CraftSpider implements NPCHolder { public static class SpiderNPC extends CraftSpider implements NPCHolder {

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSquid; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSquid;
import org.bukkit.entity.Squid; import org.bukkit.entity.Squid;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftVillager; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftVillager;
import org.bukkit.entity.Villager; import org.bukkit.entity.Villager;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -57,13 +56,11 @@ public class VillagerController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWitch; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWitch;
import org.bukkit.entity.Witch; import org.bukkit.entity.Witch;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWither; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWither;
import org.bukkit.entity.Wither; import org.bukkit.entity.Wither;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -7,7 +7,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWolf;
import org.bukkit.entity.Wolf; import org.bukkit.entity.Wolf;
import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
@ -54,13 +53,11 @@ public class WolfController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override
@ -199,6 +196,5 @@ public class WolfController extends MobEntityController {
public void setSitting(boolean sitting) { public void setSitting(boolean sitting) {
getHandle().setSitting(sitting); getHandle().setSitting(sitting);
} }
} }
} }

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftZombie; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftZombie;
import org.bukkit.entity.Zombie; import org.bukkit.entity.Zombie;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftAreaEffectCloud;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.AreaEffectCloud; import org.bukkit.entity.AreaEffectCloud;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -8,7 +8,6 @@ import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftBoat;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Boat; import org.bukkit.entity.Boat;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftDragonFireball;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.DragonFireball; import org.bukkit.entity.DragonFireball;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -9,7 +9,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Egg; import org.bukkit.entity.Egg;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.AbstractEntityController;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEnderCrystal;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.EnderCrystal; import org.bukkit.entity.EnderCrystal;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEnderPearl;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.EnderPearl; import org.bukkit.entity.EnderPearl;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEnderSignal;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.EnderSignal; import org.bukkit.entity.EnderSignal;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftExperienceOrb; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftExperienceOrb;
import org.bukkit.entity.ExperienceOrb; import org.bukkit.entity.ExperienceOrb;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -10,7 +10,6 @@ import org.bukkit.craftbukkit.v1_10_R1.util.CraftMagicNumbers;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.FallingBlock; import org.bukkit.entity.FallingBlock;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftFirework; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftFirework;
import org.bukkit.entity.Firework; import org.bukkit.entity.Firework;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftFish; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftFish;
import org.bukkit.entity.FishHook; import org.bukkit.entity.FishHook;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -9,7 +9,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftItem;
import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemStack; import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemStack;
import org.bukkit.entity.Item; import org.bukkit.entity.Item;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;
import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.AbstractEntityController;

View File

@ -8,7 +8,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftItemFrame;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.ItemFrame; import org.bukkit.entity.ItemFrame;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftLargeFireball; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftLargeFireball;
import org.bukkit.entity.LargeFireball; import org.bukkit.entity.LargeFireball;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftLeash; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftLeash;
import org.bukkit.entity.LeashHitch; import org.bukkit.entity.LeashHitch;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMinecartChest; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMinecartChest;
import org.bukkit.entity.Minecart; import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMinecartCommand; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMinecartCommand;
import org.bukkit.entity.Minecart; import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMinecartFurnace; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMinecartFurnace;
import org.bukkit.entity.Minecart; import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.entity.Minecart; import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMinecartRideable; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMinecartRideable;
import org.bukkit.entity.Minecart; import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.entity.Minecart; import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.entity.Minecart; import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPainting; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPainting;
import org.bukkit.entity.Painting; import org.bukkit.entity.Painting;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftShulkerBullet; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftShulkerBullet;
import org.bukkit.entity.ShulkerBullet; import org.bukkit.entity.ShulkerBullet;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSmallFireball; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSmallFireball;
import org.bukkit.entity.SmallFireball; import org.bukkit.entity.SmallFireball;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSnowball; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSnowball;
import org.bukkit.entity.Snowball; import org.bukkit.entity.Snowball;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftArrow;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.entity.Arrow; import org.bukkit.entity.Arrow;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftTNTPrimed; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftTNTPrimed;
import org.bukkit.entity.TNTPrimed; import org.bukkit.entity.TNTPrimed;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftThrownExpBottle; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftThrownExpBottle;
import org.bukkit.entity.ThrownExpBottle; import org.bukkit.entity.ThrownExpBottle;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftLingeringPotion; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftLingeringPotion;
import org.bukkit.entity.ThrownPotion; import org.bukkit.entity.ThrownPotion;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftTippedArrow; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftTippedArrow;
import org.bukkit.entity.Arrow; import org.bukkit.entity.Arrow;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWitherSkull; import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWitherSkull;
import org.bukkit.entity.WitherSkull; import org.bukkit.entity.WitherSkull;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox;

View File

@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_10_R1.network; package net.citizensnpcs.nms.v1_10_R1.network;
import java.io.IOException; import java.io.IOException;
import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.minecraft.server.v1_10_R1.EnumProtocolDirection; import net.minecraft.server.v1_10_R1.EnumProtocolDirection;
import net.minecraft.server.v1_10_R1.NetworkManager; import net.minecraft.server.v1_10_R1.NetworkManager;

View File

@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_10_R1.util; package net.citizensnpcs.nms.v1_10_R1.util;
import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemStack; import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemStack;
import net.citizensnpcs.util.AbstractBlockBreaker; import net.citizensnpcs.util.AbstractBlockBreaker;
import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EnchantmentManager; import net.minecraft.server.v1_10_R1.EnchantmentManager;
@ -86,11 +85,9 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker {
} }
f *= f1; f *= f1;
} }
if (handle.a(Material.WATER) && !EnchantmentManager.i(handle)) { if (handle.a(Material.WATER) && !EnchantmentManager.i(handle)) {
f /= 5.0F; f /= 5.0F;
} }
} }
if (!getHandle().onGround) { if (!getHandle().onGround) {
f /= 5.0F; f /= 5.0F;

View File

@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_10_R1.util; package net.citizensnpcs.nms.v1_10_R1.util;
import java.util.function.Supplier; import java.util.function.Supplier;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.BoundingBox; import net.citizensnpcs.api.util.BoundingBox;
import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.AxisAlignedBB;

View File

@ -17,7 +17,6 @@ import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Supplier; import java.util.function.Supplier;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
@ -55,7 +54,6 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.plugin.PluginLoadOrder; import org.bukkit.plugin.PluginLoadOrder;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@ -69,7 +67,6 @@ import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService; import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService;
import com.mojang.authlib.yggdrasil.response.MinecraftProfilePropertiesResponse; import com.mojang.authlib.yggdrasil.response.MinecraftProfilePropertiesResponse;
import com.mojang.util.UUIDTypeAdapter; import com.mojang.util.UUIDTypeAdapter;
import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.LocationLookup.PerPlayerMetadata; import net.citizensnpcs.api.LocationLookup.PerPlayerMetadata;
@ -283,14 +280,11 @@ public class NMSImpl implements NMSBridge {
AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE); AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE);
float f = (float) (attackDamage == null ? 1 : attackDamage.getValue()); float f = (float) (attackDamage == null ? 1 : attackDamage.getValue());
int i = 0; int i = 0;
if (target instanceof EntityLiving) { if (target instanceof EntityLiving) {
f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType()); f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType());
i += EnchantmentManager.a(handle); i += EnchantmentManager.a(handle);
} }
boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f); boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f);
if (!flag) if (!flag)
return; return;
if (i > 0) { if (i > 0) {
@ -299,9 +293,7 @@ public class NMSImpl implements NMSBridge {
handle.motX *= 0.6D; handle.motX *= 0.6D;
handle.motZ *= 0.6D; handle.motZ *= 0.6D;
} }
int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle); int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle);
if (fireAspectLevel > 0) { if (fireAspectLevel > 0) {
target.setOnFire(fireAspectLevel * 4); target.setOnFire(fireAspectLevel * 4);
} }
@ -366,29 +358,22 @@ public class NMSImpl implements NMSBridge {
public GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) throws Exception { public GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) throws Exception {
if (Bukkit.isPrimaryThread()) if (Bukkit.isPrimaryThread())
throw new IllegalStateException("NMS.fillProfileProperties cannot be invoked from the main thread."); throw new IllegalStateException("NMS.fillProfileProperties cannot be invoked from the main thread.");
MinecraftSessionService sessionService = ((CraftServer) Bukkit.getServer()).getServer().ay(); MinecraftSessionService sessionService = ((CraftServer) Bukkit.getServer()).getServer().ay();
if (!(sessionService instanceof YggdrasilMinecraftSessionService)) { if (!(sessionService instanceof YggdrasilMinecraftSessionService)) {
return sessionService.fillProfileProperties(profile, requireSecure); return sessionService.fillProfileProperties(profile, requireSecure);
} }
YggdrasilAuthenticationService auth = ((YggdrasilMinecraftSessionService) sessionService) YggdrasilAuthenticationService auth = ((YggdrasilMinecraftSessionService) sessionService)
.getAuthenticationService(); .getAuthenticationService();
URL url = HttpAuthenticationService URL url = HttpAuthenticationService
.constantURL(getAuthServerBaseUrl() + UUIDTypeAdapter.fromUUID(profile.getId())); .constantURL(getAuthServerBaseUrl() + UUIDTypeAdapter.fromUUID(profile.getId()));
url = HttpAuthenticationService.concatenateURL(url, "unsigned=" + !requireSecure); url = HttpAuthenticationService.concatenateURL(url, "unsigned=" + !requireSecure);
MinecraftProfilePropertiesResponse response = (MinecraftProfilePropertiesResponse) MAKE_REQUEST.invoke(auth, MinecraftProfilePropertiesResponse response = (MinecraftProfilePropertiesResponse) MAKE_REQUEST.invoke(auth,
url, null, MinecraftProfilePropertiesResponse.class); url, null, MinecraftProfilePropertiesResponse.class);
if (response == null) if (response == null)
return profile; return profile;
GameProfile result = new GameProfile(response.getId(), response.getName()); GameProfile result = new GameProfile(response.getId(), response.getName());
result.getProperties().putAll(response.getProperties()); result.getProperties().putAll(response.getProperties());
profile.getProperties().putAll(response.getProperties()); profile.getProperties().putAll(response.getProperties());
return result; return result;
} }
@ -812,10 +797,8 @@ public class NMSImpl implements NMSBridge {
xDiff = to.getX() - fromLocation.getX(); xDiff = to.getX() - fromLocation.getX();
yDiff = to.getY() - fromLocation.getY(); yDiff = to.getY() - fromLocation.getY();
zDiff = to.getZ() - fromLocation.getZ(); zDiff = to.getZ() - fromLocation.getZ();
double distanceXZ = Math.sqrt(xDiff * xDiff + zDiff * zDiff); double distanceXZ = Math.sqrt(xDiff * xDiff + zDiff * zDiff);
double distanceY = Math.sqrt(distanceXZ * distanceXZ + yDiff * yDiff); double distanceY = Math.sqrt(distanceXZ * distanceXZ + yDiff * yDiff);
double yaw = Math.toDegrees(Math.acos(xDiff / distanceXZ)); double yaw = Math.toDegrees(Math.acos(xDiff / distanceXZ));
double pitch = Math.toDegrees(Math.acos(yDiff / distanceY)) - 90; double pitch = Math.toDegrees(Math.acos(yDiff / distanceY)) - 90;
if (zDiff < 0.0) if (zDiff < 0.0)
@ -963,7 +946,6 @@ public class NMSImpl implements NMSBridge {
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.a(throwable, "Ticking player"); CrashReport crashreport = CrashReport.a(throwable, "Ticking player");
CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Player being ticked"); CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Player being ticked");
entity.appendEntityCrashDetails(crashreportsystemdetails); entity.appendEntityCrashDetails(crashreportsystemdetails);
throw new ReportedException(crashreport); throw new ReportedException(crashreport);
} }
@ -1016,7 +998,6 @@ public class NMSImpl implements NMSBridge {
@Override @Override
public void removeFromWorld(org.bukkit.entity.Entity entity) { public void removeFromWorld(org.bukkit.entity.Entity entity) {
Preconditions.checkNotNull(entity); Preconditions.checkNotNull(entity);
Entity nmsEntity = ((CraftEntity) entity).getHandle(); Entity nmsEntity = ((CraftEntity) entity).getHandle();
nmsEntity.world.removeEntity(nmsEntity); nmsEntity.world.removeEntity(nmsEntity);
} }
@ -1082,9 +1063,7 @@ public class NMSImpl implements NMSBridge {
public boolean sendTabListAdd(Player recipient, Player listPlayer) { public boolean sendTabListAdd(Player recipient, Player listPlayer) {
Preconditions.checkNotNull(recipient); Preconditions.checkNotNull(recipient);
Preconditions.checkNotNull(listPlayer); Preconditions.checkNotNull(listPlayer);
EntityPlayer entity = ((CraftPlayer) listPlayer).getHandle(); EntityPlayer entity = ((CraftPlayer) listPlayer).getHandle();
NMSImpl.sendPacket(recipient, NMSImpl.sendPacket(recipient,
new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, entity)); new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, entity));
return true; return true;
@ -1094,14 +1073,12 @@ public class NMSImpl implements NMSBridge {
public void sendTabListRemove(Player recipient, Collection<? extends SkinnableEntity> skinnableNPCs) { public void sendTabListRemove(Player recipient, Collection<? extends SkinnableEntity> skinnableNPCs) {
Preconditions.checkNotNull(recipient); Preconditions.checkNotNull(recipient);
Preconditions.checkNotNull(skinnableNPCs); Preconditions.checkNotNull(skinnableNPCs);
EntityPlayer[] entities = new EntityPlayer[skinnableNPCs.size()]; EntityPlayer[] entities = new EntityPlayer[skinnableNPCs.size()];
int i = 0; int i = 0;
for (SkinnableEntity skinnable : skinnableNPCs) { for (SkinnableEntity skinnable : skinnableNPCs) {
entities[i] = (EntityPlayer) skinnable; entities[i] = (EntityPlayer) skinnable;
i++; i++;
} }
NMSImpl.sendPacket(recipient, NMSImpl.sendPacket(recipient,
new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities)); new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities));
} }
@ -1110,9 +1087,7 @@ public class NMSImpl implements NMSBridge {
public void sendTabListRemove(Player recipient, Player listPlayer) { public void sendTabListRemove(Player recipient, Player listPlayer) {
Preconditions.checkNotNull(recipient); Preconditions.checkNotNull(recipient);
Preconditions.checkNotNull(listPlayer); Preconditions.checkNotNull(listPlayer);
EntityPlayer entity = ((CraftPlayer) listPlayer).getHandle(); EntityPlayer entity = ((CraftPlayer) listPlayer).getHandle();
NMSImpl.sendPacket(recipient, NMSImpl.sendPacket(recipient,
new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entity)); new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entity));
} }
@ -1121,11 +1096,9 @@ public class NMSImpl implements NMSBridge {
public void sendTeamPacket(Player recipient, Team team, int mode) { public void sendTeamPacket(Player recipient, Team team, int mode) {
Preconditions.checkNotNull(recipient); Preconditions.checkNotNull(recipient);
Preconditions.checkNotNull(team); Preconditions.checkNotNull(team);
if (TEAM_FIELD == null) { if (TEAM_FIELD == null) {
TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); TEAM_FIELD = NMS.getGetter(team.getClass(), "team");
} }
try { try {
ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.invoke(team); ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.invoke(team);
sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode)); sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode));
@ -1535,6 +1508,16 @@ public class NMSImpl implements NMSBridge {
} }
} }
public static void checkAndUpdateHeight(EntityLiving living, boolean flag, Consumer<Boolean> cb) {
float oldw = living.width;
float oldl = living.length;
cb.accept(flag);
if (oldw != living.width || living.length != oldl) {
living.setPosition(living.locX - 0.01, living.locY, living.locZ - 0.01);
living.setPosition(living.locX + 0.01, living.locY, living.locZ + 0.01);
}
}
public static void clearGoals(PathfinderGoalSelector... goalSelectors) { public static void clearGoals(PathfinderGoalSelector... goalSelectors) {
if (GOAL_FIELD == null || goalSelectors == null) if (GOAL_FIELD == null || goalSelectors == null)
return; return;
@ -1583,7 +1566,6 @@ public class NMSImpl implements NMSBridge {
List<Tag> converted = Lists.newArrayList(); List<Tag> converted = Lists.newArrayList();
if (list.size() > 0) { if (list.size() > 0) {
Class<? extends Tag> tagType = convertNBT("", list.get(0)).getClass(); Class<? extends Tag> tagType = convertNBT("", list.get(0)).getClass();
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
converted.add(convertNBT("", list.get(i))); converted.add(convertNBT("", list.get(i)));
} }
@ -1649,12 +1631,10 @@ public class NMSImpl implements NMSBridge {
} }
Vec3D vec3d = entity.aB(); Vec3D vec3d = entity.aB();
float f5 = entity.pitch * 0.017453292F; float f5 = entity.pitch * 0.017453292F;
double d0 = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z); double d0 = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z);
double d2 = Math.sqrt(entity.motX * entity.motX + entity.motZ * entity.motZ); double d2 = Math.sqrt(entity.motX * entity.motX + entity.motZ * entity.motZ);
double d3 = vec3d.b(); double d3 = vec3d.b();
float f6 = MathHelper.cos(f5); float f6 = MathHelper.cos(f5);
f6 = (float) (f6 * f6 * Math.min(1.0D, d3 / 0.4D)); f6 = (float) (f6 * f6 * Math.min(1.0D, d3 / 0.4D));
entity.motY += -0.08D + f6 * 0.06D; entity.motY += -0.08D + f6 * 0.06D;
if ((entity.motY < 0.0D) && (d0 > 0.0D)) { if ((entity.motY < 0.0D) && (d0 > 0.0D)) {
@ -1868,7 +1848,6 @@ public class NMSImpl implements NMSBridge {
public static void setSize(Entity entity, float f, float f1, boolean justCreated) { public static void setSize(Entity entity, float f, float f1, boolean justCreated) {
if ((f != entity.width) || (f1 != entity.length)) { if ((f != entity.width) || (f1 != entity.length)) {
float f2 = entity.width; float f2 = entity.width;
entity.width = f; entity.width = f;
entity.length = f1; entity.length = f1;
entity.a(new AxisAlignedBB(entity.getBoundingBox().a, entity.getBoundingBox().b, entity.getBoundingBox().c, entity.a(new AxisAlignedBB(entity.getBoundingBox().a, entity.getBoundingBox().b, entity.getBoundingBox().c,
@ -1926,9 +1905,7 @@ public class NMSImpl implements NMSBridge {
private static Field SKULL_PROFILE_FIELD; private static Field SKULL_PROFILE_FIELD;
private static MethodHandle TEAM_FIELD; private static MethodHandle TEAM_FIELD;
private static Field TRACKED_ENTITY_SET = NMS.getField(EntityTracker.class, "c"); private static Field TRACKED_ENTITY_SET = NMS.getField(EntityTracker.class, "c");
private static final Field WITHER_BOSS_BAR_FIELD = NMS.getField(EntityWither.class, "bG"); private static final Field WITHER_BOSS_BAR_FIELD = NMS.getField(EntityWither.class, "bG");
static { static {
try { try {
Field field = NMS.getField(EntityTypes.class, "f"); Field field = NMS.getField(EntityTypes.class, "f");
@ -1938,7 +1915,6 @@ public class NMSImpl implements NMSBridge {
} catch (Exception e) { } catch (Exception e) {
Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage());
} }
try { try {
MAKE_REQUEST = YggdrasilAuthenticationService.class.getDeclaredMethod("makeRequest", URL.class, MAKE_REQUEST = YggdrasilAuthenticationService.class.getDeclaredMethod("makeRequest", URL.class,
Object.class, Class.class); Object.class, Class.class);
@ -1946,7 +1922,6 @@ public class NMSImpl implements NMSBridge {
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
try { try {
ENDERMAN_ANGRY = (DataWatcherObject<Boolean>) NMS.getField(EntityEnderman.class, "by").get(null); ENDERMAN_ANGRY = (DataWatcherObject<Boolean>) NMS.getField(EntityEnderman.class, "by").get(null);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {

View File

@ -1,11 +1,8 @@
package net.citizensnpcs.nms.v1_10_R1.util; package net.citizensnpcs.nms.v1_10_R1.util;
import java.util.EnumMap; import java.util.EnumMap;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import net.citizensnpcs.util.PlayerAnimation; import net.citizensnpcs.util.PlayerAnimation;
import net.minecraft.server.v1_10_R1.EntityPlayer; import net.minecraft.server.v1_10_R1.EntityPlayer;
import net.minecraft.server.v1_10_R1.EnumHand; import net.minecraft.server.v1_10_R1.EnumHand;

View File

@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_10_R1.util; package net.citizensnpcs.nms.v1_10_R1.util;
import java.util.Random; import java.util.Random;
import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC; import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC;
import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.NMS;
import net.minecraft.server.v1_10_R1.AttributeInstance; import net.minecraft.server.v1_10_R1.AttributeInstance;
@ -47,23 +46,18 @@ public class PlayerControllerMove extends ControllerMove {
@Override @Override
protected float a(float f, float f1, float f2) { protected float a(float f, float f1, float f2) {
float f3 = MathHelper.g(f1 - f); float f3 = MathHelper.g(f1 - f);
if (f3 > f2) { if (f3 > f2) {
f3 = f2; f3 = f2;
} }
if (f3 < -f2) { if (f3 < -f2) {
f3 = -f2; f3 = -f2;
} }
float f4 = f + f3; float f4 = f + f3;
if (f4 < 0.0F) if (f4 < 0.0F)
f4 += 360.0F; f4 += 360.0F;
else if (f4 > 360.0F) { else if (f4 > 360.0F) {
f4 -= 360.0F; f4 -= 360.0F;
} }
return f4; return f4;
} }

View File

@ -202,7 +202,6 @@ public class PlayerNavigation extends NavigationAbstract {
protected boolean a(Vec3D paramVec3D1, Vec3D paramVec3D2, int paramInt1, int paramInt2, int paramInt3) { protected boolean a(Vec3D paramVec3D1, Vec3D paramVec3D2, int paramInt1, int paramInt2, int paramInt3) {
int i = MathHelper.floor(paramVec3D1.x); int i = MathHelper.floor(paramVec3D1.x);
int j = MathHelper.floor(paramVec3D1.z); int j = MathHelper.floor(paramVec3D1.z);
double d1 = paramVec3D2.x - paramVec3D1.x; double d1 = paramVec3D2.x - paramVec3D1.x;
double d2 = paramVec3D2.z - paramVec3D1.z; double d2 = paramVec3D2.z - paramVec3D1.z;
double d3 = d1 * d1 + d2 * d2; double d3 = d1 * d1 + d2 * d2;
@ -212,7 +211,6 @@ public class PlayerNavigation extends NavigationAbstract {
double d4 = 1.0D / Math.sqrt(d3); double d4 = 1.0D / Math.sqrt(d3);
d1 *= d4; d1 *= d4;
d2 *= d4; d2 *= d4;
paramInt1 += 2; paramInt1 += 2;
paramInt3 += 2; paramInt3 += 2;
if (!a(i, (int) paramVec3D1.y, j, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2)) { if (!a(i, (int) paramVec3D1.y, j, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2)) {
@ -220,10 +218,8 @@ public class PlayerNavigation extends NavigationAbstract {
} }
paramInt1 -= 2; paramInt1 -= 2;
paramInt3 -= 2; paramInt3 -= 2;
double d5 = 1.0D / Math.abs(d1); double d5 = 1.0D / Math.abs(d1);
double d6 = 1.0D / Math.abs(d2); double d6 = 1.0D / Math.abs(d2);
double d7 = i - paramVec3D1.x; double d7 = i - paramVec3D1.x;
double d8 = j - paramVec3D1.z; double d8 = j - paramVec3D1.z;
if (d1 >= 0.0D) { if (d1 >= 0.0D) {
@ -234,7 +230,6 @@ public class PlayerNavigation extends NavigationAbstract {
} }
d7 /= d1; d7 /= d1;
d8 /= d2; d8 /= d2;
int k = d1 < 0.0D ? -1 : 1; int k = d1 < 0.0D ? -1 : 1;
int m = d2 < 0.0D ? -1 : 1; int m = d2 < 0.0D ? -1 : 1;
int n = MathHelper.floor(paramVec3D2.x); int n = MathHelper.floor(paramVec3D2.x);
@ -266,12 +261,10 @@ public class PlayerNavigation extends NavigationAbstract {
return this.c; return this.c;
} }
this.r = paramBlockPosition; this.r = paramBlockPosition;
float f1 = h(); float f1 = h();
this.b.methodProfiler.a("pathfind"); this.b.methodProfiler.a("pathfind");
BlockPosition localBlockPosition = new BlockPosition(this.a); BlockPosition localBlockPosition = new BlockPosition(this.a);
int i1 = (int) (f1 + 8.0F); int i1 = (int) (f1 + 8.0F);
ChunkCache localChunkCache = new ChunkCache(this.b, localBlockPosition.a(-i1, -i1, -i1), ChunkCache localChunkCache = new ChunkCache(this.b, localBlockPosition.a(-i1, -i1, -i1),
localBlockPosition.a(i1, i1, i1), 0); localBlockPosition.a(i1, i1, i1), 0);
PathEntity localPathEntity = this.s.a(localChunkCache, this.a, this.r, f1); PathEntity localPathEntity = this.s.a(localChunkCache, this.a, this.r, f1);
@ -325,7 +318,6 @@ public class PlayerNavigation extends NavigationAbstract {
for (int i = 0; i < this.c.d(); i++) { for (int i = 0; i < this.c.d(); i++) {
localPathPoint = this.c.a(i); localPathPoint = this.c.a(i);
Object localObject = i + 1 < this.c.d() ? this.c.a(i + 1) : null; Object localObject = i + 1 < this.c.d() ? this.c.a(i + 1) : null;
IBlockData localIBlockData = this.b IBlockData localIBlockData = this.b
.getType(new BlockPosition(localPathPoint.a, localPathPoint.b, localPathPoint.c)); .getType(new BlockPosition(localPathPoint.a, localPathPoint.b, localPathPoint.c));
Block localBlock = localIBlockData.getBlock(); Block localBlock = localIBlockData.getBlock();
@ -420,14 +412,12 @@ public class PlayerNavigation extends NavigationAbstract {
AxisAlignedBB localAxisAlignedBB = this.b.getType((BlockPosition) localObject).c(this.b, AxisAlignedBB localAxisAlignedBB = this.b.getType((BlockPosition) localObject).c(this.b,
(BlockPosition) localObject); (BlockPosition) localObject);
localVec3D = localVec3D.a(0.0D, 1.0D - localAxisAlignedBB.e, 0.0D); localVec3D = localVec3D.a(0.0D, 1.0D - localAxisAlignedBB.e, 0.0D);
this.a.getControllerMove().a(localVec3D.x, localVec3D.y, localVec3D.z, this.d); this.a.getControllerMove().a(localVec3D.x, localVec3D.y, localVec3D.z, this.d);
} }
@Override @Override
protected void m() { protected void m() {
Vec3D localVec3D1 = c(); Vec3D localVec3D1 = c();
int i1 = this.c.d(); int i1 = this.c.d();
for (int i2 = this.c.e(); i2 < this.c.d(); i2++) { for (int i2 = this.c.e(); i2 < this.c.d(); i2++) {
if (this.c.a(i2).b != Math.floor(localVec3D1.y)) { if (this.c.a(i2).b != Math.floor(localVec3D1.y)) {
@ -501,11 +491,9 @@ public class PlayerNavigation extends NavigationAbstract {
return this.c; return this.c;
} }
this.r = paramBlockPosition; this.r = paramBlockPosition;
float f1 = h(); float f1 = h();
BlockPosition localBlockPosition = new BlockPosition(this.a); BlockPosition localBlockPosition = new BlockPosition(this.a);
int i1 = (int) (f1 + 8.0F); int i1 = (int) (f1 + 8.0F);
ChunkCache localChunkCache = new ChunkCache(this.b, localBlockPosition.a(-i1, -i1, -i1), ChunkCache localChunkCache = new ChunkCache(this.b, localBlockPosition.a(-i1, -i1, -i1),
localBlockPosition.a(i1, i1, i1), 0); localBlockPosition.a(i1, i1, i1), 0);
PathEntity localPathEntity = this.s.a(localChunkCache, this.a, this.r, f1); PathEntity localPathEntity = this.s.a(localChunkCache, this.a, this.r, f1);

View File

@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_10_R1.util;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC; import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC;
import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.Entity;
@ -33,9 +32,7 @@ public class PlayerPathfinder {
this.d.a(paramIBlockAccess, paramEntityInsentient); this.d.a(paramIBlockAccess, paramEntityInsentient);
PathPoint localPathPoint1 = this.d.b(); PathPoint localPathPoint1 = this.d.b();
PathPoint localPathPoint2 = this.d.a(paramDouble1, paramDouble2, paramDouble3); PathPoint localPathPoint2 = this.d.a(paramDouble1, paramDouble2, paramDouble3);
PathEntity localPathEntity = a(localPathPoint1, localPathPoint2, paramFloat); PathEntity localPathEntity = a(localPathPoint1, localPathPoint2, paramFloat);
this.d.a(); this.d.a();
return localPathEntity; return localPathEntity;
} }
@ -67,11 +64,9 @@ public class PlayerPathfinder {
paramPathPoint1.e = 0.0F; paramPathPoint1.e = 0.0F;
paramPathPoint1.f = paramPathPoint1.c(paramPathPoint2); paramPathPoint1.f = paramPathPoint1.c(paramPathPoint2);
paramPathPoint1.g = paramPathPoint1.f; paramPathPoint1.g = paramPathPoint1.f;
this.a.a(); this.a.a();
this.b.clear(); this.b.clear();
this.a.a(paramPathPoint1); this.a.a(paramPathPoint1);
Object localObject1 = paramPathPoint1; Object localObject1 = paramPathPoint1;
int i = 0; int i = 0;
while (!this.a.e()) { while (!this.a.e()) {
@ -88,15 +83,12 @@ public class PlayerPathfinder {
localObject1 = localObject2; localObject1 = localObject2;
} }
localObject2.i = true; localObject2.i = true;
int j = this.d.a(this.c, localObject2, paramPathPoint2, paramFloat); int j = this.d.a(this.c, localObject2, paramPathPoint2, paramFloat);
for (int k = 0; k < j; k++) { for (int k = 0; k < j; k++) {
PathPoint localPathPoint = this.c[k]; PathPoint localPathPoint = this.c[k];
float f1 = localObject2.c(localPathPoint); float f1 = localObject2.c(localPathPoint);
localPathPoint.j = (localObject2.j + f1); localPathPoint.j = (localObject2.j + f1);
localPathPoint.k = (f1 + localPathPoint.l); localPathPoint.k = (f1 + localPathPoint.l);
float f2 = localObject2.e + localPathPoint.k; float f2 = localObject2.e + localPathPoint.k;
if ((localPathPoint.j < paramFloat) && ((!localPathPoint.a()) || (f2 < localPathPoint.e))) { if ((localPathPoint.j < paramFloat) && ((!localPathPoint.a()) || (f2 < localPathPoint.e))) {
localPathPoint.h = (localObject2); localPathPoint.h = (localObject2);
@ -115,7 +107,6 @@ public class PlayerPathfinder {
return null; return null;
} }
Object localObject2 = a(paramPathPoint1, (PathPoint) localObject1); Object localObject2 = a(paramPathPoint1, (PathPoint) localObject1);
return (PathEntity) localObject2; return (PathEntity) localObject2;
} }
} }

View File

@ -34,7 +34,6 @@ public abstract class PlayerPathfinderAbstract extends PathfinderAbstract {
this.a = paramIBlockAccess; this.a = paramIBlockAccess;
this.b = paramEntityInsentient; this.b = paramEntityInsentient;
this.c.c(); this.c.c();
this.d = MathHelper.d(paramEntityInsentient.width + 1.0F); this.d = MathHelper.d(paramEntityInsentient.width + 1.0F);
this.e = MathHelper.d(paramEntityInsentient.length + 1.0F); this.e = MathHelper.d(paramEntityInsentient.length + 1.0F);
this.f = MathHelper.d(paramEntityInsentient.width + 1.0F); this.f = MathHelper.d(paramEntityInsentient.width + 1.0F);

View File

@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_10_R1.util;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashSet; import java.util.HashSet;
import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC; import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC;
import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.AxisAlignedBB;
@ -89,7 +88,6 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract {
boolean paramBoolean2) { boolean paramBoolean2) {
EnumSet<PathType> localEnumSet = EnumSet.noneOf(PathType.class); EnumSet<PathType> localEnumSet = EnumSet.noneOf(PathType.class);
Object localObject1 = PathType.BLOCKED; Object localObject1 = PathType.BLOCKED;
double d = paramEntityInsentient.width / 2.0D; double d = paramEntityInsentient.width / 2.0D;
BlockPosition localBlockPosition = new BlockPosition(paramEntityInsentient); BlockPosition localBlockPosition = new BlockPosition(paramEntityInsentient);
for (int i = paramInt1; i < paramInt1 + paramInt4; i++) { for (int i = paramInt1; i < paramInt1 + paramInt4; i++) {
@ -147,7 +145,6 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract {
boolean paramBoolean2) { boolean paramBoolean2) {
EnumSet<PathType> localEnumSet = EnumSet.noneOf(PathType.class); EnumSet<PathType> localEnumSet = EnumSet.noneOf(PathType.class);
Object localObject1 = PathType.BLOCKED; Object localObject1 = PathType.BLOCKED;
double d = paramEntityInsentient.width / 2.0D; double d = paramEntityInsentient.width / 2.0D;
BlockPosition localBlockPosition = new BlockPosition(paramEntityInsentient); BlockPosition localBlockPosition = new BlockPosition(paramEntityInsentient);
for (int i = paramInt1; i < paramInt1 + paramInt4; i++) { for (int i = paramInt1; i < paramInt1 + paramInt4; i++) {
@ -202,7 +199,6 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract {
private PathPoint a(int paramInt1, int paramInt2, int paramInt3, int paramInt4, double paramDouble, private PathPoint a(int paramInt1, int paramInt2, int paramInt3, int paramInt4, double paramDouble,
EnumDirection paramEnumDirection) { EnumDirection paramEnumDirection) {
PathPoint localPathPoint = null; PathPoint localPathPoint = null;
BlockPosition localBlockPosition1 = new BlockPosition(paramInt1, paramInt2, paramInt3); BlockPosition localBlockPosition1 = new BlockPosition(paramInt1, paramInt2, paramInt3);
BlockPosition localBlockPosition2 = localBlockPosition1.down(); BlockPosition localBlockPosition2 = localBlockPosition1.down();
double d1 = paramInt2 - (1.0D - this.a.getType(localBlockPosition2).c(this.a, localBlockPosition2).e); double d1 = paramInt2 - (1.0D - this.a.getType(localBlockPosition2).c(this.a, localBlockPosition2).e);
@ -227,11 +223,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract {
&& ((localPathPoint.m == PathType.OPEN) || (localPathPoint.m == PathType.WALKABLE))) { && ((localPathPoint.m == PathType.OPEN) || (localPathPoint.m == PathType.WALKABLE))) {
double d3 = paramInt1 - paramEnumDirection.getAdjacentX() + 0.5D; double d3 = paramInt1 - paramEnumDirection.getAdjacentX() + 0.5D;
double d4 = paramInt3 - paramEnumDirection.getAdjacentZ() + 0.5D; double d4 = paramInt3 - paramEnumDirection.getAdjacentZ() + 0.5D;
AxisAlignedBB localAxisAlignedBB1 = new AxisAlignedBB(d3 - d2, paramInt2 + 0.001D, d4 - d2, d3 + d2, AxisAlignedBB localAxisAlignedBB1 = new AxisAlignedBB(d3 - d2, paramInt2 + 0.001D, d4 - d2, d3 + d2,
paramInt2 + this.b.length, d4 + d2); paramInt2 + this.b.length, d4 + d2);
AxisAlignedBB localAxisAlignedBB2 = this.a.getType(localBlockPosition1).c(this.a, localBlockPosition1); AxisAlignedBB localAxisAlignedBB2 = this.a.getType(localBlockPosition1).c(this.a, localBlockPosition1);
AxisAlignedBB localAxisAlignedBB3 = localAxisAlignedBB1.a(0.0D, localAxisAlignedBB2.e - 0.002D, 0.0D); AxisAlignedBB localAxisAlignedBB3 = localAxisAlignedBB1.a(0.0D, localAxisAlignedBB2.e - 0.002D, 0.0D);
if (this.b.world.b(localAxisAlignedBB3)) { if (this.b.world.b(localAxisAlignedBB3)) {
localPathPoint = null; localPathPoint = null;
@ -268,7 +262,6 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract {
public int a(PathPoint[] paramArrayOfPathPoint, PathPoint paramPathPoint1, PathPoint paramPathPoint2, public int a(PathPoint[] paramArrayOfPathPoint, PathPoint paramPathPoint1, PathPoint paramPathPoint2,
float paramFloat) { float paramFloat) {
int i = 0; int i = 0;
int k = 0; int k = 0;
PathType localPathType = a(this.b, paramPathPoint1.a, paramPathPoint1.b + 1, paramPathPoint1.c); PathType localPathType = a(this.b, paramPathPoint1.a, paramPathPoint1.b + 1, paramPathPoint1.c);
if (this.b.a(localPathType) >= 0.0F) { if (this.b.a(localPathType) >= 0.0F) {
@ -277,7 +270,6 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract {
BlockPosition localBlockPosition = new BlockPosition(paramPathPoint1.a, paramPathPoint1.b, paramPathPoint1.c) BlockPosition localBlockPosition = new BlockPosition(paramPathPoint1.a, paramPathPoint1.b, paramPathPoint1.c)
.down(); .down();
double d = paramPathPoint1.b - (1.0D - this.a.getType(localBlockPosition).c(this.a, localBlockPosition).e); double d = paramPathPoint1.b - (1.0D - this.a.getType(localBlockPosition).c(this.a, localBlockPosition).e);
PathPoint localPathPoint1 = a(paramPathPoint1.a, paramPathPoint1.b, paramPathPoint1.c + 1, k, d, PathPoint localPathPoint1 = a(paramPathPoint1.a, paramPathPoint1.b, paramPathPoint1.c + 1, k, d,
EnumDirection.SOUTH); EnumDirection.SOUTH);
PathPoint localPathPoint2 = a(paramPathPoint1.a - 1, paramPathPoint1.b, paramPathPoint1.c, k, d, PathPoint localPathPoint2 = a(paramPathPoint1.a - 1, paramPathPoint1.b, paramPathPoint1.c, k, d,
@ -391,7 +383,6 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract {
IBlockData localIBlockData = paramIBlockAccess.getType(localBlockPosition); IBlockData localIBlockData = paramIBlockAccess.getType(localBlockPosition);
Block localBlock1 = localIBlockData.getBlock(); Block localBlock1 = localIBlockData.getBlock();
Material localMaterial = localIBlockData.getMaterial(); Material localMaterial = localIBlockData.getMaterial();
PathType localPathType1 = PathType.BLOCKED; PathType localPathType1 = PathType.BLOCKED;
if ((localBlock1 == Blocks.TRAPDOOR) || (localBlock1 == Blocks.IRON_TRAPDOOR) if ((localBlock1 == Blocks.TRAPDOOR) || (localBlock1 == Blocks.IRON_TRAPDOOR)
|| (localBlock1 == Blocks.WATERLILY)) { || (localBlock1 == Blocks.WATERLILY)) {

View File

@ -1,9 +1,7 @@
package net.citizensnpcs.nms.v1_10_R1.util; package net.citizensnpcs.nms.v1_10_R1.util;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC; import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC;
import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.npc.ai.NPCHolder;
@ -33,13 +31,10 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry {
&& ((entityplayer.x().getPlayerChunkMap().a(entityplayer, tracker.ac, tracker.ae)) && ((entityplayer.x().getPlayerChunkMap().a(entityplayer, tracker.ac, tracker.ae))
|| (tracker.attachedToPlayer))) { || (tracker.attachedToPlayer))) {
if ((tracker instanceof SkinnableEntity)) { if ((tracker instanceof SkinnableEntity)) {
SkinnableEntity skinnable = (SkinnableEntity) tracker; SkinnableEntity skinnable = (SkinnableEntity) tracker;
Player player = skinnable.getBukkitEntity(); Player player = skinnable.getBukkitEntity();
if (!entityplayer.getBukkitEntity().canSee(player)) if (!entityplayer.getBukkitEntity().canSee(player))
return; return;
skinnable.getSkinTracker().updateViewer(entityplayer.getBukkitEntity()); skinnable.getSkinTracker().updateViewer(entityplayer.getBukkitEntity());
} }
} }

View File

@ -8,14 +8,10 @@
<artifactId>citizens-parent</artifactId> <artifactId>citizens-parent</artifactId>
<version>2.0.30-SNAPSHOT</version> <version>2.0.30-SNAPSHOT</version>
</parent> </parent>
<artifactId>citizens-v1_11_R1</artifactId> <artifactId>citizens-v1_11_R1</artifactId> <properties>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<craftbukkit.version>1.11.2-R0.1-SNAPSHOT</craftbukkit.version> <craftbukkit.version>1.11.2-R0.1-SNAPSHOT</craftbukkit.version>
</properties> </properties> <dependencies>
<dependencies>
<dependency> <dependency>
<groupId>${project.groupId}</groupId> <groupId>${project.groupId}</groupId>
<artifactId>citizens-main</artifactId> <artifactId>citizens-main</artifactId>
@ -30,13 +26,9 @@
<type>jar</type> <type>jar</type>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies> <build>
<build>
<defaultGoal>clean package install</defaultGoal> <defaultGoal>clean package install</defaultGoal>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory> <sourceDirectory>${basedir}/src/main/java</sourceDirectory> <plugins>
<plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
@ -45,9 +37,7 @@
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
</configuration> </configuration>
</plugin> </plugin> <plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId> <artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0</version> <version>3.0.0</version>
@ -63,9 +53,7 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId> <artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version> <version>3.2.0</version>
</plugin> </plugin> <plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>3.3.0</version> <version>3.3.0</version>

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftBat;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.Bat; import org.bukkit.entity.Bat;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftBlaze;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.Blaze; import org.bukkit.entity.Blaze;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftCaveSpider;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.CaveSpider; import org.bukkit.entity.CaveSpider;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftChicken;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.Chicken; import org.bukkit.entity.Chicken;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;
@ -66,13 +65,11 @@ public class ChickenController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftCow;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.Cow; import org.bukkit.entity.Cow;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;
@ -70,13 +69,11 @@ public class CowController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftCreeper;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.Creeper; import org.bukkit.entity.Creeper;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;
@ -50,7 +49,6 @@ public class CreeperController extends MobEntityController {
public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder {
private boolean allowPowered; private boolean allowPowered;
private final CitizensNPC npc; private final CitizensNPC npc;
public EntityCreeperNPC(World world) { public EntityCreeperNPC(World world) {

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEnderDragon;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.EnderDragon; import org.bukkit.entity.EnderDragon;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEnderman;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.Enderman; import org.bukkit.entity.Enderman;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEndermite;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.Endermite; import org.bukkit.entity.Endermite;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -4,7 +4,6 @@ import java.io.IOException;
import java.net.Socket; import java.net.Socket;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Location; import org.bukkit.Location;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.bukkit.metadata.MetadataValue; import org.bukkit.metadata.MetadataValue;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent; import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
@ -80,7 +77,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile, public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile,
PlayerInteractManager playerInteractManager, NPC npc) { PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager); super(minecraftServer, world, gameProfile, playerInteractManager);
this.npc = (CitizensNPC) npc; this.npc = (CitizensNPC) npc;
if (npc != null) { if (npc != null) {
skinTracker = new SkinPacketTracker(this); skinTracker = new SkinPacketTracker(this);
@ -121,10 +117,8 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
return; return;
this.noclip = isSpectator(); this.noclip = isSpectator();
Bukkit.getServer().getPluginManager().unsubscribeFromPermission("bukkit.broadcast.user", bukkitEntity); Bukkit.getServer().getPluginManager().unsubscribeFromPermission("bukkit.broadcast.user", bukkitEntity);
boolean navigating = npc.getNavigator().isNavigating() || controllerMove.a(); boolean navigating = npc.getNavigator().isNavigating() || controllerMove.a();
updatePackets(navigating); updatePackets(navigating);
npc.update(); npc.update();
} }
@ -283,20 +277,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
} catch (IOException e) { } catch (IOException e) {
// swallow // swallow
} }
AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE); AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE);
if (range == null) { if (range == null) {
range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE); range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE);
} }
range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble()); range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble());
controllerJump = new PlayerControllerJump(this); controllerJump = new PlayerControllerJump(this);
controllerMove = new PlayerControllerMove(this); controllerMove = new PlayerControllerMove(this);
navigation = new PlayerNavigation(this, world); navigation = new PlayerNavigation(this, world);
invulnerableTicks = 0; invulnerableTicks = 0;
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing setSkinFlags((byte) 0xFF);
setSkinFlags((byte) 0xFF);
} }
@Override @Override
@ -340,7 +330,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
private void moveWithFallDamage(float mx, float my) { private void moveWithFallDamage(float mx, float my) {
double y = this.locY; double y = this.locY;
g(mx, my); g(mx, my);
if (!npc.isProtected()) { if (!npc.isProtected()) {
a(this.locY - y, onGround); a(this.locY - y, onGround);
@ -370,13 +359,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
} }
moveOnCurrentHeading(); moveOnCurrentHeading();
} }
updateAI(); updateAI();
if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) {
ct(); ct();
} }
if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, !npc.isProtected())) { if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, !npc.isProtected())) {
AxisAlignedBB axisalignedbb; AxisAlignedBB axisalignedbb;
if (this.isPassenger() && !this.getVehicle().dead) { if (this.isPassenger() && !this.getVehicle().dead) {
@ -384,7 +370,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
} else { } else {
axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0); axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0);
} }
for (Entity entity : this.world.getEntities(this, axisalignedbb)) { for (Entity entity : this.world.getEntities(this, axisalignedbb)) {
if (!entity.dead) { if (!entity.dead) {
entity.d(this); entity.d(this);
@ -447,7 +432,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
} }
if (!itemChanged) if (!itemChanged)
return; return;
Location current = getBukkitEntity().getLocation(packetLocationCache); Location current = getBukkitEntity().getLocation(packetLocationCache);
Packet<?>[] packets = new Packet[EnumItemSlot.values().length]; Packet<?>[] packets = new Packet[EnumItemSlot.values().length];
int i = 0; int i = 0;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEvoker; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEvoker;
import org.bukkit.entity.Evoker; import org.bukkit.entity.Evoker;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftGhast; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftGhast;
import org.bukkit.entity.Ghast; import org.bukkit.entity.Ghast;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftGiant; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftGiant;
import org.bukkit.entity.Giant; import org.bukkit.entity.Giant;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftGuardian; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftGuardian;
import org.bukkit.entity.Guardian; import org.bukkit.entity.Guardian;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -6,7 +6,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftElderGuardian;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.ElderGuardian; import org.bukkit.entity.ElderGuardian;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;

View File

@ -7,7 +7,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftHorse; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftHorse;
import org.bukkit.entity.Horse; import org.bukkit.entity.Horse;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;
@ -63,13 +62,11 @@ public class HorseController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

View File

@ -7,7 +7,6 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftDonkey;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
import org.bukkit.entity.Donkey; import org.bukkit.entity.Donkey;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;
@ -63,13 +62,11 @@ public class HorseDonkeyController extends MobEntityController {
@Override @Override
public void a(boolean flag) { public void a(boolean flag) {
float oldw = width; if (npc == null) {
float oldl = length; super.a(flag);
super.a(flag); return;
if (oldw != width || oldl != length) {
this.setPosition(locX - 0.01, locY, locZ - 0.01);
this.setPosition(locX + 0.01, locY, locZ + 0.01);
} }
NMSImpl.checkAndUpdateHeight(this, flag, super::a);
} }
@Override @Override

Some files were not shown because too many files have changed in this diff Show More