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<>("look_distance", configManager.getConfig().lookPropertyDistance()));
|
||||||
register(new DummyProperty<>("view_distance", configManager.getConfig().viewDistance()));
|
register(new DummyProperty<>("view_distance", configManager.getConfig().viewDistance()));
|
||||||
|
|
||||||
|
register(new DummyProperty<>("permission_required", false));
|
||||||
|
|
||||||
register(new GlowProperty(packetFactory));
|
register(new GlowProperty(packetFactory));
|
||||||
register(new BitsetProperty("fire", 0, 0x01));
|
register(new BitsetProperty("fire", 0, 0x01));
|
||||||
register(new BitsetProperty("invisible", 0, 0x20));
|
register(new BitsetProperty("invisible", 0, 0x20));
|
||||||
|
|
|
@ -115,7 +115,7 @@ public class NpcTypeImpl implements NpcType {
|
||||||
public NpcTypeImpl build() {
|
public NpcTypeImpl build() {
|
||||||
ServerVersion version = PacketEvents.getAPI().getServerManager().getVersion();
|
ServerVersion version = PacketEvents.getAPI().getServerManager().getVersion();
|
||||||
addProperties("fire", "invisible", "silent", "look", "look_distance", "view_distance",
|
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");
|
if (!type.equals(EntityTypes.PLAYER)) addProperties("dinnerbone");
|
||||||
// TODO: make this look nicer after completing the rest of the properties
|
// TODO: make this look nicer after completing the rest of the properties
|
||||||
if (version.isNewerThanOrEquals(ServerVersion.V_1_9)) addProperties("glow");
|
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<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<LookType> lookProperty = propertyRegistry.getByName("look", LookType.class);
|
||||||
EntityPropertyImpl<Double> lookDistanceProperty = propertyRegistry.getByName("look_distance", Double.class);
|
EntityPropertyImpl<Double> lookDistanceProperty = propertyRegistry.getByName("look_distance", Double.class);
|
||||||
|
EntityPropertyImpl<Boolean> permissionRequiredProperty = propertyRegistry.getByName("permission_required", Boolean.class);
|
||||||
double lookDistance;
|
double lookDistance;
|
||||||
for (NpcEntryImpl entry : npcRegistry.getProcessable()) {
|
for (NpcEntryImpl entry : npcRegistry.getProcessable()) {
|
||||||
NpcImpl npc = entry.getNpc();
|
NpcImpl npc = entry.getNpc();
|
||||||
|
@ -39,11 +40,16 @@ public class NpcProcessorTask extends BukkitRunnable {
|
||||||
Player closest = null;
|
Player closest = null;
|
||||||
LookType lookType = npc.getProperty(lookProperty);
|
LookType lookType = npc.getProperty(lookProperty);
|
||||||
lookDistance = NumberConversions.square(npc.getProperty(lookDistanceProperty));
|
lookDistance = NumberConversions.square(npc.getProperty(lookDistanceProperty));
|
||||||
|
boolean permissionRequired = npc.getProperty(permissionRequiredProperty);
|
||||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
if (!player.getWorld().equals(npc.getWorld())) {
|
if (!player.getWorld().equals(npc.getWorld())) {
|
||||||
if (npc.isVisibleTo(player)) npc.hide(player);
|
if (npc.isVisibleTo(player)) npc.hide(player);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (permissionRequired && !player.hasPermission("znpcsplus.npc." + entry.getId())) {
|
||||||
|
if (npc.isVisibleTo(player)) npc.hide(player);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
double distance = player.getLocation().distanceSquared(npc.getBukkitLocation());
|
double distance = player.getLocation().distanceSquared(npc.getBukkitLocation());
|
||||||
|
|
||||||
// visibility
|
// visibility
|
||||||
|
|
Loading…
Reference in a new issue