start work

This commit is contained in:
Pyrbu 2023-04-23 20:24:31 +01:00
parent df668a8585
commit 944dc14fd2
5 changed files with 57 additions and 0 deletions

@ -0,0 +1,4 @@
package lol.pyr.znpcsplus.npc;
public class NPC {
}

@ -0,0 +1,4 @@
package lol.pyr.znpcsplus.npc;
public class NPCType {
}

@ -0,0 +1,21 @@
package lol.pyr.znpcsplus.packets;
import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.manager.server.ServerVersion;
import lol.pyr.znpcsplus.util.LazyLoader;
import java.util.Map;
public interface PacketFactory {
Map<ServerVersion, LazyLoader<? extends PacketFactory>> factories = buildFactoryMap();
static PacketFactory get() {
return factories.get(PacketEvents.getAPI().getServerManager().getVersion()).get();
}
private static Map<ServerVersion, LazyLoader<? extends PacketFactory>> buildFactoryMap() {
}
}

@ -0,0 +1,4 @@
package lol.pyr.znpcsplus.packets;
public class V1_8Factory implements PacketFactory {
}

@ -0,0 +1,24 @@
package lol.pyr.znpcsplus.util;
public class LazyLoader <T> {
private final ObjectProvider<T> provider;
private T value;
private LazyLoader(ObjectProvider<T> provider) {
this.provider = provider;
}
public T get() {
if (value == null) value = provider.provide();
return value;
}
public static <T> LazyLoader<T> of(ObjectProvider<T> provider) {
return new LazyLoader<>(provider);
}
@FunctionalInterface
public interface ObjectProvider<T> {
T provide();
}
}