start work
This commit is contained in:
parent
620b39b22d
commit
30b8d90665
5 changed files with 57 additions and 0 deletions
4
src/main/java/lol/pyr/znpcsplus/npc/NPC.java
Normal file
4
src/main/java/lol/pyr/znpcsplus/npc/NPC.java
Normal file
|
@ -0,0 +1,4 @@
|
|||
package lol.pyr.znpcsplus.npc;
|
||||
|
||||
public class NPC {
|
||||
}
|
4
src/main/java/lol/pyr/znpcsplus/npc/NPCType.java
Normal file
4
src/main/java/lol/pyr/znpcsplus/npc/NPCType.java
Normal file
|
@ -0,0 +1,4 @@
|
|||
package lol.pyr.znpcsplus.npc;
|
||||
|
||||
public class NPCType {
|
||||
}
|
21
src/main/java/lol/pyr/znpcsplus/packets/PacketFactory.java
Normal file
21
src/main/java/lol/pyr/znpcsplus/packets/PacketFactory.java
Normal file
|
@ -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() {
|
||||
|
||||
}
|
||||
}
|
4
src/main/java/lol/pyr/znpcsplus/packets/V1_8Factory.java
Normal file
4
src/main/java/lol/pyr/znpcsplus/packets/V1_8Factory.java
Normal file
|
@ -0,0 +1,4 @@
|
|||
package lol.pyr.znpcsplus.packets;
|
||||
|
||||
public class V1_8Factory implements PacketFactory {
|
||||
}
|
24
src/main/java/lol/pyr/znpcsplus/util/LazyLoader.java
Normal file
24
src/main/java/lol/pyr/znpcsplus/util/LazyLoader.java
Normal file
|
@ -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();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue