Don't look or speak to players in spectator mode

This commit is contained in:
fullwall 2016-02-29 00:24:41 +08:00
parent 9e4274516a
commit fcf9fae805
2 changed files with 5 additions and 2 deletions

View File

@ -4,6 +4,7 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
@ -62,7 +63,8 @@ public class LookClose extends Trait implements Toggleable, CommandConfigurable
for (Entity entity : nearby) {
if (entity.getType() != EntityType.PLAYER || entity.getLocation().getWorld() != npcLocation.getWorld())
continue;
if (CitizensAPI.getNPCRegistry().getNPC(entity) != null)
if (CitizensAPI.getNPCRegistry().getNPC(entity) != null
|| ((Player) npc.getEntity()).getGameMode() == GameMode.SPECTATOR)
continue;
lookingAt = (Player) entity;
return;

View File

@ -9,6 +9,7 @@ import java.util.UUID;
import java.util.concurrent.TimeUnit;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.conversations.Conversation;
import org.bukkit.conversations.ConversationAbandonedEvent;
import org.bukkit.conversations.ConversationAbandonedListener;
@ -134,7 +135,7 @@ public class Text extends Trait implements Runnable, Toggleable, Listener, Conve
return;
List<Entity> nearby = npc.getEntity().getNearbyEntities(range, range, range);
for (Entity search : nearby) {
if (!(search instanceof Player))
if (!(search instanceof Player) || ((Player) search).getGameMode() == GameMode.SPECTATOR)
continue;
Player player = (Player) search;
// If the cooldown is not expired, do not send text