Request addOrRemoveFromPlayerList less

This commit is contained in:
fullwall 2016-03-08 21:48:23 +08:00
parent 62c38bc359
commit 8d079659cf
2 changed files with 12 additions and 3 deletions

View File

@ -373,9 +373,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
for (EnumItemSlot slot : EnumItemSlot.values()) {
packets[i++] = new PacketPlayOutEntityEquipment(getId(), slot, getEquipment(slot));
}
boolean removeFromPlayerList = npc.data().get("removefromplayerlist",
Setting.REMOVE_PLAYERS_FROM_PLAYER_LIST.asBoolean());
NMS.addOrRemoveFromPlayerList(getBukkitEntity(), removeFromPlayerList);
NMS.sendPacketsNearby(getBukkitEntity(), current, packets);
}
}

View File

@ -9,9 +9,12 @@ import java.util.UUID;
import org.bukkit.scheduler.BukkitRunnable;
import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.minecraft.server.v1_9_R1.CrashReport;
import net.minecraft.server.v1_9_R1.CrashReportSystemDetails;
import net.minecraft.server.v1_9_R1.Entity;
import net.minecraft.server.v1_9_R1.EntityHuman;
import net.minecraft.server.v1_9_R1.ReportedException;
public class PlayerUpdateTask extends BukkitRunnable {
@ -55,9 +58,18 @@ public class PlayerUpdateTask extends BukkitRunnable {
throw new ReportedException(crashreport);
}
}
boolean removeFromPlayerList = ((NPCHolder) entity).getNPC().data().get("removefromplayerlist",
Setting.REMOVE_PLAYERS_FROM_PLAYER_LIST.asBoolean());
if (entity.dead) {
entity.world.removeEntity(entity);
itr.remove();
} else if (!removeFromPlayerList) {
itr.remove();
if (!entity.world.players.contains(entity)) {
entity.world.players.add((EntityHuman) entity);
}
} else {
entity.world.players.remove(entity);
}
}
}