added permission_required property
This commit is contained in:
parent
4a89f3c21c
commit
3fba776df1
3 changed files with 9 additions and 1 deletions
|
@ -127,6 +127,8 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
|||
register(new DummyProperty<>("look_distance", configManager.getConfig().lookPropertyDistance()));
|
||||
register(new DummyProperty<>("view_distance", configManager.getConfig().viewDistance()));
|
||||
|
||||
register(new DummyProperty<>("permission_required", false));
|
||||
|
||||
register(new GlowProperty(packetFactory));
|
||||
register(new BitsetProperty("fire", 0, 0x01));
|
||||
register(new BitsetProperty("invisible", 0, 0x20));
|
||||
|
|
|
@ -115,7 +115,7 @@ public class NpcTypeImpl implements NpcType {
|
|||
public NpcTypeImpl build() {
|
||||
ServerVersion version = PacketEvents.getAPI().getServerManager().getVersion();
|
||||
addProperties("fire", "invisible", "silent", "look", "look_distance", "view_distance",
|
||||
"potion_color", "potion_ambient", "display_name");
|
||||
"potion_color", "potion_ambient", "display_name", "permission_required");
|
||||
if (!type.equals(EntityTypes.PLAYER)) addProperties("dinnerbone");
|
||||
// TODO: make this look nicer after completing the rest of the properties
|
||||
if (version.isNewerThanOrEquals(ServerVersion.V_1_9)) addProperties("glow");
|
||||
|
|
|
@ -30,6 +30,7 @@ public class NpcProcessorTask extends BukkitRunnable {
|
|||
EntityPropertyImpl<Integer> viewDistanceProperty = propertyRegistry.getByName("view_distance", Integer.class); // Not sure why this is an Integer, but it is
|
||||
EntityPropertyImpl<LookType> lookProperty = propertyRegistry.getByName("look", LookType.class);
|
||||
EntityPropertyImpl<Double> lookDistanceProperty = propertyRegistry.getByName("look_distance", Double.class);
|
||||
EntityPropertyImpl<Boolean> permissionRequiredProperty = propertyRegistry.getByName("permission_required", Boolean.class);
|
||||
double lookDistance;
|
||||
for (NpcEntryImpl entry : npcRegistry.getProcessable()) {
|
||||
NpcImpl npc = entry.getNpc();
|
||||
|
@ -39,11 +40,16 @@ public class NpcProcessorTask extends BukkitRunnable {
|
|||
Player closest = null;
|
||||
LookType lookType = npc.getProperty(lookProperty);
|
||||
lookDistance = NumberConversions.square(npc.getProperty(lookDistanceProperty));
|
||||
boolean permissionRequired = npc.getProperty(permissionRequiredProperty);
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
if (!player.getWorld().equals(npc.getWorld())) {
|
||||
if (npc.isVisibleTo(player)) npc.hide(player);
|
||||
continue;
|
||||
}
|
||||
if (permissionRequired && !player.hasPermission("znpcsplus.npc." + entry.getId())) {
|
||||
if (npc.isVisibleTo(player)) npc.hide(player);
|
||||
continue;
|
||||
}
|
||||
double distance = player.getLocation().distanceSquared(npc.getBukkitLocation());
|
||||
|
||||
// visibility
|
||||
|
|
Loading…
Reference in a new issue