start work
This commit is contained in:
parent
7ba39744e4
commit
2ed950db01
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