From e5778d178cf018175bff3aea6a5b41b67610bbbe Mon Sep 17 00:00:00 2001 From: Exerosis Date: Mon, 18 Apr 2016 15:08:21 -0400 Subject: [PATCH 1/3] ~Check this out :D --- .idea/.name | 1 + .idea/codeStyleSettings.xml | 6 ++ .idea/compiler.xml | 32 ++++++++++ .idea/copyright/profiles_settings.xml | 3 + .idea/dictionaries/Exerosis.xml | 7 ++ .idea/encodings.xml | 6 ++ .idea/misc.xml | 64 +++++++++++++++++++ .idea/modules.xml | 8 +++ BlockServerTest.iml | 15 +++++ pom.xml | 12 ++++ .../test/core/CoreModuleLoader.java | 37 +++++++++++ .../org/blocksever/test/core/Enableable.java | 12 ++++ .../java/org/blocksever/test/core/Module.java | 35 ++++++++++ .../java/org/blocksever/test/core/Server.java | 29 +++++++++ .../test/core/test/TestModule1.java | 18 ++++++ .../test/core/test/TestModule2.java | 18 ++++++ 16 files changed, 303 insertions(+) create mode 100644 .idea/.name create mode 100644 .idea/codeStyleSettings.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/dictionaries/Exerosis.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 BlockServerTest.iml create mode 100644 pom.xml create mode 100644 src/main/java/org/blocksever/test/core/CoreModuleLoader.java create mode 100644 src/main/java/org/blocksever/test/core/Enableable.java create mode 100644 src/main/java/org/blocksever/test/core/Module.java create mode 100644 src/main/java/org/blocksever/test/core/Server.java create mode 100644 src/main/java/org/blocksever/test/core/test/TestModule1.java create mode 100644 src/main/java/org/blocksever/test/core/test/TestModule2.java diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..5fe7d7a --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +BlockServerTest \ No newline at end of file diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml new file mode 100644 index 0000000..5352bdf --- /dev/null +++ b/.idea/codeStyleSettings.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..860f7c1 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/dictionaries/Exerosis.xml b/.idea/dictionaries/Exerosis.xml new file mode 100644 index 0000000..5a925d8 --- /dev/null +++ b/.idea/dictionaries/Exerosis.xml @@ -0,0 +1,7 @@ + + + + enableable + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..1c811aa --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ca29ae1 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/BlockServerTest.iml b/BlockServerTest.iml new file mode 100644 index 0000000..2ee29af --- /dev/null +++ b/BlockServerTest.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..27b4745 --- /dev/null +++ b/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + BlockServerTest + org.blockserver.test + 1.0.0 + + + \ No newline at end of file diff --git a/src/main/java/org/blocksever/test/core/CoreModuleLoader.java b/src/main/java/org/blocksever/test/core/CoreModuleLoader.java new file mode 100644 index 0000000..496c9ad --- /dev/null +++ b/src/main/java/org/blocksever/test/core/CoreModuleLoader.java @@ -0,0 +1,37 @@ +package org.blocksever.test.core; + +import org.blocksever.test.core.test.TestModule1; +import org.blocksever.test.core.test.TestModule2; + +/** + * Created by Exerosis. + */ +public class CoreModuleLoader extends Module { + private final TestModule1 testModule1; + private final TestModule2 testModule2; + + public CoreModuleLoader() { + testModule1 = new TestModule1(); + testModule2 = new TestModule2(); + } + + @Override + protected void onEnable() { + testModule1.enable(); + testModule2.enable(); + } + + @Override + protected void onDisable() { + testModule1.disable(); + testModule2.disable(); + } + + public TestModule1 getTestModule1() { + return testModule1; + } + + public TestModule2 getTestModule2() { + return testModule2; + } +} \ No newline at end of file diff --git a/src/main/java/org/blocksever/test/core/Enableable.java b/src/main/java/org/blocksever/test/core/Enableable.java new file mode 100644 index 0000000..430777b --- /dev/null +++ b/src/main/java/org/blocksever/test/core/Enableable.java @@ -0,0 +1,12 @@ +package org.blocksever.test.core; + +/** + * Created by Exerosis. + */ +public interface Enableable { + void enable(); + + boolean isEnabled(); + + void disable(); +} \ No newline at end of file diff --git a/src/main/java/org/blocksever/test/core/Module.java b/src/main/java/org/blocksever/test/core/Module.java new file mode 100644 index 0000000..4149241 --- /dev/null +++ b/src/main/java/org/blocksever/test/core/Module.java @@ -0,0 +1,35 @@ +package org.blocksever.test.core; + +public class Module implements Enableable { + private boolean enabled = false; + + @Override + public void enable() { + if (isEnabled()) + return; + onEnable(); + enabled = true; + } + + @Override + public void disable() { + if (!isEnabled()) + return; + onDisable(); + enabled = false; + } + + @Override + public boolean isEnabled() { + return enabled; + } + + protected void onEnable() { + + } + + + protected void onDisable() { + + } +} \ No newline at end of file diff --git a/src/main/java/org/blocksever/test/core/Server.java b/src/main/java/org/blocksever/test/core/Server.java new file mode 100644 index 0000000..7ee662f --- /dev/null +++ b/src/main/java/org/blocksever/test/core/Server.java @@ -0,0 +1,29 @@ +package org.blocksever.test.core; + +import java.util.HashMap; +import java.util.Map; + +public class Server extends Module { + public static void main(String[] args) { + new Server().enable(); + } + private final Map moduleLoaders = new HashMap<>(); + + public Server() { + moduleLoaders.put("CoreModuleLoader", new CoreModuleLoader()); + } + + @Override + protected void onEnable() { + System.out.println("Starting the Server!"); + moduleLoaders.values().forEach(Module::enable); + System.out.println("Enabled the Server!"); + } + + @Override + protected void onDisable() { + System.out.println("Stopping the Server!"); + moduleLoaders.values().forEach(Module::disable); + System.out.println("Disabled the Server!"); + } +} \ No newline at end of file diff --git a/src/main/java/org/blocksever/test/core/test/TestModule1.java b/src/main/java/org/blocksever/test/core/test/TestModule1.java new file mode 100644 index 0000000..add198c --- /dev/null +++ b/src/main/java/org/blocksever/test/core/test/TestModule1.java @@ -0,0 +1,18 @@ +package org.blocksever.test.core.test; + +import org.blocksever.test.core.Module; + +/** + * Created by Exerosis. + */ +public class TestModule1 extends Module { + @Override + protected void onEnable() { + System.out.println("Enabled test module number 1"); + } + + @Override + protected void onDisable() { + System.out.println("Disabled test module number 1"); + } +} diff --git a/src/main/java/org/blocksever/test/core/test/TestModule2.java b/src/main/java/org/blocksever/test/core/test/TestModule2.java new file mode 100644 index 0000000..a8c3c30 --- /dev/null +++ b/src/main/java/org/blocksever/test/core/test/TestModule2.java @@ -0,0 +1,18 @@ +package org.blocksever.test.core.test; + +import org.blocksever.test.core.Module; + +/** + * Created by Exerosis. + */ +public class TestModule2 extends Module { + @Override + protected void onEnable() { + System.out.println("Enabled test module number 2"); + } + + @Override + protected void onDisable() { + System.out.println("Disabled test module number 2"); + } +} From 13d00efb9f68b1551f04406c62b3082e81cdc1ce Mon Sep 17 00:00:00 2001 From: Exerosis Date: Mon, 18 Apr 2016 15:09:04 -0400 Subject: [PATCH 2/3] ~Check this out :D --- .idea/vcs.xml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .idea/vcs.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From 647d7b4c389a90436de155038551fe96b2878d5a Mon Sep 17 00:00:00 2001 From: Exerosis Date: Tue, 19 Apr 2016 09:44:05 -0400 Subject: [PATCH 3/3] ~Added networking... which is pretty clean but still has one smallish problem, --- .idea/uiDesigner.xml | 124 ++++++++++++++++++ .../test/core/CoreModuleLoader.java | 9 ++ .../java/org/blocksever/test/core/Server.java | 2 + .../core/networking/NetworkDispatcher.java | 8 ++ .../test/core/networking/NetworkManager.java | 29 ++++ .../test/core/networking/RawPacket.java | 17 +++ .../test/core/test/TestNetworkModule.java | 42 ++++++ .../core/test/networking/EventDispatcher.java | 19 +++ .../test/networking/PENetworkHandler.java | 26 ++++ 9 files changed, 276 insertions(+) create mode 100644 .idea/uiDesigner.xml create mode 100644 src/main/java/org/blocksever/test/core/networking/NetworkDispatcher.java create mode 100644 src/main/java/org/blocksever/test/core/networking/NetworkManager.java create mode 100644 src/main/java/org/blocksever/test/core/networking/RawPacket.java create mode 100644 src/main/java/org/blocksever/test/core/test/TestNetworkModule.java create mode 100644 src/main/java/org/blocksever/test/core/test/networking/EventDispatcher.java create mode 100644 src/main/java/org/blocksever/test/core/test/networking/PENetworkHandler.java diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/org/blocksever/test/core/CoreModuleLoader.java b/src/main/java/org/blocksever/test/core/CoreModuleLoader.java index 496c9ad..d009b5d 100644 --- a/src/main/java/org/blocksever/test/core/CoreModuleLoader.java +++ b/src/main/java/org/blocksever/test/core/CoreModuleLoader.java @@ -2,6 +2,7 @@ import org.blocksever.test.core.test.TestModule1; import org.blocksever.test.core.test.TestModule2; +import org.blocksever.test.core.test.TestNetworkModule; /** * Created by Exerosis. @@ -9,22 +10,30 @@ public class CoreModuleLoader extends Module { private final TestModule1 testModule1; private final TestModule2 testModule2; + private final TestNetworkModule testNetworkModule; public CoreModuleLoader() { testModule1 = new TestModule1(); testModule2 = new TestModule2(); + testNetworkModule = new TestNetworkModule(); } @Override protected void onEnable() { testModule1.enable(); testModule2.enable(); + testNetworkModule.enable(); } @Override protected void onDisable() { testModule1.disable(); testModule2.disable(); + testNetworkModule.disable(); + } + + public TestNetworkModule getTestNetworkModule() { + return testNetworkModule; } public TestModule1 getTestModule1() { diff --git a/src/main/java/org/blocksever/test/core/Server.java b/src/main/java/org/blocksever/test/core/Server.java index 7ee662f..ba3d963 100644 --- a/src/main/java/org/blocksever/test/core/Server.java +++ b/src/main/java/org/blocksever/test/core/Server.java @@ -4,9 +4,11 @@ import java.util.Map; public class Server extends Module { + public static void main(String[] args) { new Server().enable(); } + private final Map moduleLoaders = new HashMap<>(); public Server() { diff --git a/src/main/java/org/blocksever/test/core/networking/NetworkDispatcher.java b/src/main/java/org/blocksever/test/core/networking/NetworkDispatcher.java new file mode 100644 index 0000000..ebc340c --- /dev/null +++ b/src/main/java/org/blocksever/test/core/networking/NetworkDispatcher.java @@ -0,0 +1,8 @@ +package org.blocksever.test.core.networking; + +/** + * Created by Exerosis. + */ +public interface NetworkDispatcher { + void dispatch(RawPacket packet); +} diff --git a/src/main/java/org/blocksever/test/core/networking/NetworkManager.java b/src/main/java/org/blocksever/test/core/networking/NetworkManager.java new file mode 100644 index 0000000..2c07b48 --- /dev/null +++ b/src/main/java/org/blocksever/test/core/networking/NetworkManager.java @@ -0,0 +1,29 @@ +package org.blocksever.test.core.networking; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +/** + * Created by Exerosis. + */ +public class NetworkManager { + private final Set dispatchers = new HashSet<>(); + + public NetworkManager() { + } + + public void registerDispatcher(NetworkDispatcher dispatcher){ + dispatchers.add(dispatcher); + } + + public void dispatch(RawPacket packet){ + for (NetworkDispatcher dispatcher : dispatchers) { + dispatcher.dispatch(packet); + } + } + + public Set getDispatchers() { + return Collections.unmodifiableSet(dispatchers); + } +} \ No newline at end of file diff --git a/src/main/java/org/blocksever/test/core/networking/RawPacket.java b/src/main/java/org/blocksever/test/core/networking/RawPacket.java new file mode 100644 index 0000000..3a1eb1d --- /dev/null +++ b/src/main/java/org/blocksever/test/core/networking/RawPacket.java @@ -0,0 +1,17 @@ +package org.blocksever.test.core.networking; + +/** + * Created by Exerosis. + */ +public class RawPacket { + private String testMessage; + + public RawPacket(String testMessage) { + this.testMessage = testMessage; + } + + @Override + public String toString() { + return testMessage; + } +} \ No newline at end of file diff --git a/src/main/java/org/blocksever/test/core/test/TestNetworkModule.java b/src/main/java/org/blocksever/test/core/test/TestNetworkModule.java new file mode 100644 index 0000000..5e4d5cf --- /dev/null +++ b/src/main/java/org/blocksever/test/core/test/TestNetworkModule.java @@ -0,0 +1,42 @@ +package org.blocksever.test.core.test; + +import org.blocksever.test.core.Module; +import org.blocksever.test.core.networking.NetworkManager; +import org.blocksever.test.core.networking.RawPacket; +import org.blocksever.test.core.test.networking.EventDispatcher; +import org.blocksever.test.core.test.networking.PENetworkHandler; + +/** + * Created by Exerosis. + */ +public class TestNetworkModule extends Module { + private final NetworkManager inboundManager = new NetworkManager(); + private final NetworkManager outboundManager = new NetworkManager(); + + public TestNetworkModule() { + EventDispatcher eventDispatcher = new EventDispatcher(); + PENetworkHandler peNetworkHandler = new PENetworkHandler(inboundManager); + inboundManager.registerDispatcher(eventDispatcher); + outboundManager.registerDispatcher(eventDispatcher); + + outboundManager.registerDispatcher(peNetworkHandler); + + peNetworkHandler.testDisptach(new RawPacket("MovePacket")); + peNetworkHandler.testDisptach(new RawPacket("InteractPacket")); + peNetworkHandler.testDisptach(new RawPacket("ChatPacket")); + + outboundManager.dispatch(new RawPacket("WeatherPacket")); + outboundManager.dispatch(new RawPacket("ChunkPacket")); + outboundManager.dispatch(new RawPacket("TimePacket")); + } + + @Override + protected void onEnable() { + System.out.println("Enabled network test module"); + } + + @Override + protected void onDisable() { + System.out.println("Disabled network test module"); + } +} diff --git a/src/main/java/org/blocksever/test/core/test/networking/EventDispatcher.java b/src/main/java/org/blocksever/test/core/test/networking/EventDispatcher.java new file mode 100644 index 0000000..1a62b17 --- /dev/null +++ b/src/main/java/org/blocksever/test/core/test/networking/EventDispatcher.java @@ -0,0 +1,19 @@ +package org.blocksever.test.core.test.networking; + +import org.blocksever.test.core.networking.NetworkDispatcher; +import org.blocksever.test.core.networking.RawPacket; + +/** + * Created by Exerosis. + */ +public class EventDispatcher implements NetworkDispatcher { + + public EventDispatcher() { + System.out.println("Created Event Dispatcher"); + } + + @Override + public void dispatch(RawPacket packet) { + System.out.println("Firing RawPacketEvent for packet: " + packet.toString()); + } +} \ No newline at end of file diff --git a/src/main/java/org/blocksever/test/core/test/networking/PENetworkHandler.java b/src/main/java/org/blocksever/test/core/test/networking/PENetworkHandler.java new file mode 100644 index 0000000..4a4e958 --- /dev/null +++ b/src/main/java/org/blocksever/test/core/test/networking/PENetworkHandler.java @@ -0,0 +1,26 @@ +package org.blocksever.test.core.test.networking; + +import org.blocksever.test.core.networking.NetworkDispatcher; +import org.blocksever.test.core.networking.NetworkManager; +import org.blocksever.test.core.networking.RawPacket; + +/** + * Created by Exerosis. + */ +public class PENetworkHandler implements NetworkDispatcher { + private NetworkManager manager; + + public PENetworkHandler(NetworkManager manager) { + this.manager = manager; + } + + public void testDisptach(RawPacket packet){ + System.out.println("Recived " + packet.toString() + " from PE client!"); + manager.dispatch(packet); + } + + @Override + public void dispatch(RawPacket packet) { + System.out.println("Dispatching packet, to PE client! " + packet.toString()); + } +} \ No newline at end of file