Tab hide delay config
This commit is contained in:
parent
6df618d673
commit
a87550779e
6 changed files with 29 additions and 15 deletions
|
@ -124,7 +124,7 @@ public class ZNpcsPlus {
|
|||
ConfigManager configManager = new ConfigManager(getDataFolder());
|
||||
MojangSkinCache skinCache = new MojangSkinCache(configManager);
|
||||
EntityPropertyRegistryImpl propertyRegistry = new EntityPropertyRegistryImpl(skinCache, configManager);
|
||||
PacketFactory packetFactory = setupPacketFactory(scheduler, propertyRegistry);
|
||||
PacketFactory packetFactory = setupPacketFactory(scheduler, propertyRegistry, configManager);
|
||||
propertyRegistry.registerTypes(packetFactory);
|
||||
|
||||
ActionRegistry actionRegistry = new ActionRegistry();
|
||||
|
@ -214,12 +214,12 @@ public class ZNpcsPlus {
|
|||
PacketEvents.getAPI().terminate();
|
||||
}
|
||||
|
||||
private PacketFactory setupPacketFactory(TaskScheduler scheduler, EntityPropertyRegistryImpl propertyRegistry) {
|
||||
private PacketFactory setupPacketFactory(TaskScheduler scheduler, EntityPropertyRegistryImpl propertyRegistry, ConfigManager configManager) {
|
||||
HashMap<ServerVersion, LazyLoader<? extends PacketFactory>> versions = new HashMap<>();
|
||||
versions.put(ServerVersion.V_1_8, LazyLoader.of(() -> new V1_8PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer)));
|
||||
versions.put(ServerVersion.V_1_17, LazyLoader.of(() -> new V1_17PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer)));
|
||||
versions.put(ServerVersion.V_1_19_2, LazyLoader.of(() -> new V1_19_2PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer)));
|
||||
versions.put(ServerVersion.V_1_20_2, LazyLoader.of(() -> new V1_20_2PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer)));
|
||||
versions.put(ServerVersion.V_1_8, LazyLoader.of(() -> new V1_8PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer, configManager)));
|
||||
versions.put(ServerVersion.V_1_17, LazyLoader.of(() -> new V1_17PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer, configManager)));
|
||||
versions.put(ServerVersion.V_1_19_2, LazyLoader.of(() -> new V1_19_2PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer, configManager)));
|
||||
versions.put(ServerVersion.V_1_20_2, LazyLoader.of(() -> new V1_20_2PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer, configManager)));
|
||||
|
||||
ServerVersion version = packetEvents.getServerManager().getVersion();
|
||||
if (versions.containsKey(version)) return versions.get(version).get();
|
||||
|
|
|
@ -56,4 +56,9 @@ public interface MainConfig {
|
|||
@ConfComments("How far should the look property work from in blocks")
|
||||
@DefaultDouble(10)
|
||||
double lookPropertyDistance();
|
||||
|
||||
@ConfKey("tab-hide-delay")
|
||||
@ConfComments("The ticks delay for NPCs to be hidden from the TAB")
|
||||
@DefaultInteger(60)
|
||||
int tabHideDelay();
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.github.retrooper.packetevents.PacketEventsAPI;
|
|||
import com.github.retrooper.packetevents.util.Vector3d;
|
||||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity;
|
||||
import lol.pyr.znpcsplus.api.entity.PropertyHolder;
|
||||
import lol.pyr.znpcsplus.config.ConfigManager;
|
||||
import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
|
||||
import lol.pyr.znpcsplus.entity.PacketEntity;
|
||||
import lol.pyr.znpcsplus.scheduling.TaskScheduler;
|
||||
|
@ -16,8 +17,8 @@ import org.bukkit.plugin.Plugin;
|
|||
import java.util.Optional;
|
||||
|
||||
public class V1_17PacketFactory extends V1_8PacketFactory {
|
||||
public V1_17PacketFactory(TaskScheduler scheduler, PacketEventsAPI<Plugin> packetEvents, EntityPropertyRegistryImpl propertyRegistry, LegacyComponentSerializer textSerializer) {
|
||||
super(scheduler, packetEvents, propertyRegistry, textSerializer);
|
||||
public V1_17PacketFactory(TaskScheduler scheduler, PacketEventsAPI<Plugin> packetEvents, EntityPropertyRegistryImpl propertyRegistry, LegacyComponentSerializer textSerializer, ConfigManager configManager) {
|
||||
super(scheduler, packetEvents, propertyRegistry, textSerializer, configManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.github.retrooper.packetevents.protocol.player.UserProfile;
|
|||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerPlayerInfoRemove;
|
||||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerPlayerInfoUpdate;
|
||||
import lol.pyr.znpcsplus.api.entity.PropertyHolder;
|
||||
import lol.pyr.znpcsplus.config.ConfigManager;
|
||||
import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
|
||||
import lol.pyr.znpcsplus.entity.PacketEntity;
|
||||
import lol.pyr.znpcsplus.scheduling.TaskScheduler;
|
||||
|
@ -19,8 +20,8 @@ import java.util.EnumSet;
|
|||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class V1_19_2PacketFactory extends V1_17PacketFactory {
|
||||
public V1_19_2PacketFactory(TaskScheduler scheduler, PacketEventsAPI<Plugin> packetEvents, EntityPropertyRegistryImpl propertyRegistry, LegacyComponentSerializer textSerializer) {
|
||||
super(scheduler, packetEvents, propertyRegistry, textSerializer);
|
||||
public V1_19_2PacketFactory(TaskScheduler scheduler, PacketEventsAPI<Plugin> packetEvents, EntityPropertyRegistryImpl propertyRegistry, LegacyComponentSerializer textSerializer, ConfigManager configManager) {
|
||||
super(scheduler, packetEvents, propertyRegistry, textSerializer, configManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.github.retrooper.packetevents.util.Vector3d;
|
|||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityHeadLook;
|
||||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity;
|
||||
import lol.pyr.znpcsplus.api.entity.PropertyHolder;
|
||||
import lol.pyr.znpcsplus.config.ConfigManager;
|
||||
import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
|
||||
import lol.pyr.znpcsplus.entity.PacketEntity;
|
||||
import lol.pyr.znpcsplus.scheduling.TaskScheduler;
|
||||
|
@ -17,8 +18,11 @@ import org.bukkit.plugin.Plugin;
|
|||
import java.util.Optional;
|
||||
|
||||
public class V1_20_2PacketFactory extends V1_19_2PacketFactory {
|
||||
public V1_20_2PacketFactory(TaskScheduler scheduler, PacketEventsAPI<Plugin> packetEvents, EntityPropertyRegistryImpl propertyRegistry, LegacyComponentSerializer textSerializer) {
|
||||
super(scheduler, packetEvents, propertyRegistry, textSerializer);
|
||||
|
||||
protected ConfigManager configManager;
|
||||
|
||||
public V1_20_2PacketFactory(TaskScheduler scheduler, PacketEventsAPI<Plugin> packetEvents, EntityPropertyRegistryImpl propertyRegistry, LegacyComponentSerializer textSerializer, ConfigManager configManager) {
|
||||
super(scheduler, packetEvents, propertyRegistry, textSerializer, configManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -30,7 +34,7 @@ public class V1_20_2PacketFactory extends V1_19_2PacketFactory {
|
|||
npcLocationToVector(location), location.getPitch(), location.getYaw(), location.getYaw(), 0, Optional.of(new Vector3d())));
|
||||
sendPacket(player, new WrapperPlayServerEntityHeadLook(entity.getEntityId(), location.getYaw()));
|
||||
sendAllMetadata(player, entity, properties);
|
||||
scheduler.runLaterAsync(() -> removeTabPlayer(player, entity), 60);
|
||||
scheduler.runLaterAsync(() -> removeTabPlayer(player, entity), configManager.getConfig().tabHideDelay());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.github.retrooper.packetevents.wrapper.play.server.*;
|
|||
import lol.pyr.znpcsplus.api.entity.EntityProperty;
|
||||
import lol.pyr.znpcsplus.api.entity.PropertyHolder;
|
||||
import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
|
||||
import lol.pyr.znpcsplus.config.ConfigManager;
|
||||
import lol.pyr.znpcsplus.entity.EntityPropertyImpl;
|
||||
import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
|
||||
import lol.pyr.znpcsplus.entity.PacketEntity;
|
||||
|
@ -34,12 +35,14 @@ public class V1_8PacketFactory implements PacketFactory {
|
|||
protected final PacketEventsAPI<Plugin> packetEvents;
|
||||
protected final EntityPropertyRegistryImpl propertyRegistry;
|
||||
protected final LegacyComponentSerializer textSerializer;
|
||||
protected ConfigManager configManager;
|
||||
|
||||
public V1_8PacketFactory(TaskScheduler scheduler, PacketEventsAPI<Plugin> packetEvents, EntityPropertyRegistryImpl propertyRegistry, LegacyComponentSerializer textSerializer) {
|
||||
public V1_8PacketFactory(TaskScheduler scheduler, PacketEventsAPI<Plugin> packetEvents, EntityPropertyRegistryImpl propertyRegistry, LegacyComponentSerializer textSerializer, ConfigManager configManager) {
|
||||
this.scheduler = scheduler;
|
||||
this.packetEvents = packetEvents;
|
||||
this.propertyRegistry = propertyRegistry;
|
||||
this.textSerializer = textSerializer;
|
||||
this.configManager = configManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -51,7 +54,7 @@ public class V1_8PacketFactory implements PacketFactory {
|
|||
entity.getUuid(), npcLocationToVector(location), location.getYaw(), location.getPitch(), Collections.emptyList()));
|
||||
sendPacket(player, new WrapperPlayServerEntityHeadLook(entity.getEntityId(), location.getYaw()));
|
||||
sendAllMetadata(player, entity, properties);
|
||||
scheduler.runLaterAsync(() -> removeTabPlayer(player, entity), 60);
|
||||
scheduler.runLaterAsync(() -> removeTabPlayer(player, entity), configManager.getConfig().tabHideDelay());
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue