From 444f532f117a3d5566cb51037de18eb5919cc4de Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Fri, 29 Jun 2018 22:58:42 +0300 Subject: [PATCH] default spring config --- core/src/main/java/mc/core/Main.java | 18 +++- .../mc/core/embedded/FakePlayerManager.java | 91 +++++++++++++++++++ .../java/mc/core/embedded/FakeServer.java | 18 ++++ core/src/main/resources/spring.xml | 20 ++++ 4 files changed, 143 insertions(+), 4 deletions(-) create mode 100644 core/src/main/java/mc/core/embedded/FakePlayerManager.java create mode 100644 core/src/main/java/mc/core/embedded/FakeServer.java create mode 100644 core/src/main/resources/spring.xml diff --git a/core/src/main/java/mc/core/Main.java b/core/src/main/java/mc/core/Main.java index e551b6a..9869da9 100644 --- a/core/src/main/java/mc/core/Main.java +++ b/core/src/main/java/mc/core/Main.java @@ -7,10 +7,14 @@ package mc.core; import lombok.extern.slf4j.Slf4j; import mc.core.network.Server; import mc.core.network.StartServerException; +import org.apache.commons.io.IOUtils; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; @@ -19,11 +23,17 @@ public class Main { private static ApplicationContext createContext() { final String springXml = System.getProperty("springConfig", "./spring.xml"); - if (Files.exists(Paths.get(springXml))) { - return new FileSystemXmlApplicationContext(springXml); - } else { - return new ClassPathXmlApplicationContext("spring.xml"); + if (!Files.exists(Paths.get(springXml))) { + log.info("File \"{}\" not found. Get default config.", springXml); + try (FileOutputStream fos = new FileOutputStream(springXml)) { + IOUtils.copy(Main.class.getResourceAsStream("/spring.xml"), fos); + } catch (IOException e) { + log.error("Get default spring config", e); + System.exit(-1); + } } + + return new FileSystemXmlApplicationContext(springXml); } public static void main(String[] args) { diff --git a/core/src/main/java/mc/core/embedded/FakePlayerManager.java b/core/src/main/java/mc/core/embedded/FakePlayerManager.java new file mode 100644 index 0000000..10a8ea5 --- /dev/null +++ b/core/src/main/java/mc/core/embedded/FakePlayerManager.java @@ -0,0 +1,91 @@ +/* + * DmitriyMX + * 2018-06-29 + */ +package mc.core.embedded; + +import mc.core.Location; +import mc.core.chat.MessageType; +import mc.core.network.NetChannel; +import mc.core.network.SCPacket; +import mc.core.player.Look; +import mc.core.player.Player; +import mc.core.player.PlayerManager; +import mc.core.text.Text; +import mc.core.text.Title; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +public class FakePlayerManager implements PlayerManager { + public static class FakeNetChannet implements NetChannel { + @Override + public void sendKeepAlive() { + } + + @Override + public void sendTimeUpdate(long time, long age) { + } + + @Override + public void sendChatMessage(Text text, MessageType type) { + } + + @Override + public void sendTitle(Title title) { + } + + @Override + public void writeAndFlush(SCPacket pkt) { + } + + @Override + public void write(SCPacket pkt) { + } + + @Override + public void flush() { + } + } + + private static final NetChannel FAKE_NET_CHANNEL = new FakeNetChannet(); + + @Override + public Player createPlayer(String name, Location defaultLocation, Look defaultLook) { + return null; + } + + @Override + public void joinServer(Player player) { + } + + @Override + public void leftServer(Player player) { + } + + @Override + public Optional getPlayer(String name) { + return Optional.empty(); + } + + @Override + public Optional getPlayerById(int id) { + return Optional.empty(); + } + + @Override + public List getPlayers() { + return Collections.emptyList(); + } + + @Override + public int getCountOnlinePlayers() { + return 0; + } + + @Override + public NetChannel getBroadcastChannel() { + return FAKE_NET_CHANNEL; + } +} diff --git a/core/src/main/java/mc/core/embedded/FakeServer.java b/core/src/main/java/mc/core/embedded/FakeServer.java new file mode 100644 index 0000000..99e296f --- /dev/null +++ b/core/src/main/java/mc/core/embedded/FakeServer.java @@ -0,0 +1,18 @@ +/* + * DmitriyMX + * 2018-06-29 + */ +package mc.core.embedded; + +import mc.core.network.Server; +import mc.core.network.StartServerException; + +public class FakeServer implements Server { + @Override + public void start() throws StartServerException { + } + + @Override + public void stop() { + } +} diff --git a/core/src/main/resources/spring.xml b/core/src/main/resources/spring.xml new file mode 100644 index 0000000..bb81a1a --- /dev/null +++ b/core/src/main/resources/spring.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + \ No newline at end of file