merge develop into master #20

Merged
michael-bailey merged 181 commits from develop into master 2023-12-01 21:48:28 +00:00

181 Commits

Author SHA1 Message Date
michael-bailey 3dfa71a7b1 added docker files and automated build scripts 2023-11-25 20:54:05 +00:00
michael-bailey 20b1398d13 Merge branch 'feature/disconnection-fix' into develop 2023-01-25 23:31:33 +00:00
michael-bailey e0dfdd118e removed the read loop, and replaced it with a recurrent messages. 2023-01-25 23:30:52 +00:00
michael-bailey 9e4bcfeb27 accedentally ran cargo fmt instead of on one file 2023-01-25 16:46:49 +00:00
michael-bailey c8246f5c86 refactored connection initiator into spereate files 2023-01-21 10:15:50 +00:00
michael-bailey 59568570ff making moe things weak repferences 2023-01-21 10:07:41 +00:00
michael-bailey 93c7851edd fixing lints 2023-01-19 21:27:14 +00:00
michael-bailey 4381311fe3 removing strong references from scriping managers 2023-01-19 21:24:40 +00:00
michael-bailey c1616ce11f turned ref into weak ref 2023-01-18 17:20:49 +00:00
michael-bailey f81246e1fa turned some references into weak variaties, to prevent memory leaks. 2023-01-15 11:16:39 +00:00
michael-bailey c79da5c893 fixed not implemented panic, and field misnaming 2022-09-28 17:21:37 +01:00
michael-bailey 0fb618d5c1 Fixed messages being sent to sender 2022-09-28 17:21:37 +01:00
michael-bailey 42677d71b5 refactored message into foundation, added get message support for clients 2022-09-28 17:21:37 +01:00
michael-bailey db4af038d7 resolved warning in connection 2022-09-28 17:21:37 +01:00
michael-bailey d9a6719162 refactord network manager module name 2022-09-28 17:21:37 +01:00
michael-bailey 5e087604e5 refactored messages and added new message types 2022-09-28 17:21:37 +01:00
michael-bailey 7714938c6b refactord client code 2022-09-28 17:21:37 +01:00
michael-bailey 962fb5bb5c added debug messages 2022-09-28 17:21:37 +01:00
michael-bailey 89b420ee42 refixed network manager (again again) 2022-09-28 17:21:37 +01:00
michael-bailey 1541020968 added global message spport to client manager 2022-09-28 17:21:37 +01:00
michael-bailey 4717861f65 created chat manager and added it to the client manager 2022-09-28 17:21:37 +01:00
michael-bailey 12ebbc9bd5 uhh... changes and formatting 2022-09-28 17:21:37 +01:00
michael-bailey cefcb81af6 moved arg parser to folder as file 2022-09-15 17:58:46 +01:00
michael-bailey 20cacf15c2 undone previous change 2022-09-15 17:49:33 +01:00
michael-bailey d3bdc6dbb3 fixed client cargo toml 2022-09-15 17:44:43 +01:00
michael-bailey 16fc6fa243 updated client uuid version 2022-09-15 08:29:31 +01:00
michael-bailey 32ea5eec71 Merge branch 'feature/cleanup' into develop 2022-09-15 08:28:03 +01:00
michael-bailey 065e16964f cleaned up scriptable interfaces 2022-09-15 08:25:35 +01:00
michael-bailey 22fcdae11a cleaned up client actor 2022-09-15 08:24:59 +01:00
michael-bailey fa8124027c cleaned up client manager 2022-09-15 08:22:57 +01:00
michael-bailey bf711f8b95 cleaned up config manager 2022-09-15 08:19:54 +01:00
michael-bailey 1226fafe2c cleaned up rhai manager 2022-09-15 08:18:30 +01:00
michael-bailey cf29c2c50d cleaned up lua manager 2022-09-15 08:15:56 +01:00
michael-bailey 7c445e4ed3 cleaned up connection actor 2022-09-15 08:14:08 +01:00
michael-bailey f5d253eb94 cleaned up connection initator 2022-09-15 08:12:07 +01:00
michael-bailey 71fa54c221 cleaned up network listener 2022-09-15 08:11:07 +01:00
michael-bailey bb8d8aa3b4 cleaned up prelude linting errors 2022-09-15 08:09:58 +01:00
michael-bailey ecbc3aafb6 Merge branch 'feature/configuration-support' into develop 2022-09-15 08:06:01 +01:00
michael-bailey f4d2148dfa updated server and network manager to new style for setting config values 2022-09-15 08:02:10 +01:00
michael-bailey 5719bf98dd updated config manager api to use optionals. This leads to pre-configuration and easier readability and understanding. 2022-09-14 08:45:49 +01:00
michael-bailey ccbc680c0e performed cleanup of server 2022-09-14 08:27:29 +01:00
michael-bailey a31aa95d2b performed cleanup of network manager 2022-09-14 08:22:19 +01:00
michael-bailey 14a8ed4dac added config manager support to server and removed old serverConfig references 2022-09-14 08:19:08 +01:00
michael-bailey 8c167ad603 added configuration through args support to config manager and network manager. 2022-09-13 17:47:37 +01:00
michael-bailey 950ee1919b removed redundant handlers 2022-09-12 12:09:56 +01:00
michael-bailey 4e5620cf82 added config support to network manager, changed lifecycle a bit as well 2022-09-10 23:09:16 +01:00
michael-bailey a090f8a65a updated some docs 2022-09-07 16:12:16 +01:00
michael-bailey db5fd82e1a added config manager to network manager 2022-09-07 16:11:57 +01:00
michael-bailey bed482d787 ignoring config_file 2022-09-07 15:49:53 +01:00
michael-bailey 8097f3a89c fixed panic on file not existing 2022-09-07 15:41:54 +01:00
michael-bailey 81f94e2a69 removed bootstrapper and created config builder 2022-09-07 15:40:11 +01:00
michael-bailey 4bfaf1a813 created singleton config manager using once pattern. 2022-09-06 18:05:04 +01:00
michael-bailey 31d67889ff moved arg matcher funtion. 2022-09-06 18:03:23 +01:00
michael-bailey 2eaa05f1be added bootstrapper actor 2022-09-03 08:02:38 +01:00
michael-bailey dd8faef275 fixed network manager message result types 2022-09-03 08:01:56 +01:00
michael-bailey 9e91e1aa0a Created config manager with path read functionality 2022-09-01 08:38:40 +01:00
michael-bailey fe960a2018 Merge branch 'feature/lua-support' into develop 2022-07-04 08:30:27 +01:00
michael-bailey 83316268b9 added more scriptable objects 2022-07-04 08:29:17 +01:00
michael-bailey 51cea3523e made client manager and clients scriptable 2022-07-01 00:43:13 +01:00
michael-bailey ff067f8e4b way too much happened here
+ added scriptable version of the server, networkManager and clientManager

+ added lua engine creation
+also added unfinished rhai support
+ also did some restructuring
2022-06-30 08:08:48 +01:00
michael-bailey 302ad68547 Merge branch 'feature/command-line-args' into develop 2022-06-23 19:25:48 +02:00
michael-bailey 808c330a3e added port configurability
~ moved components to seperate modules
~ added builder and config to network manager
2022-06-22 23:38:44 +02:00
michael-bailey 715f6c1c4c made server configurable 2022-06-21 23:54:59 +02:00
michael-bailey 47092844c4 updated clap 2022-06-20 09:31:26 +02:00
michael-bailey 224bdbc23a Update client.rs
minor bug fixes
2022-06-17 08:54:18 +02:00
michael-bailey 306526e1c2 Merge branch 'feature/actix' into develop 2022-06-16 20:05:52 +02:00
michael-bailey a87453e6e0 added proper prelude 2022-06-16 20:05:10 +02:00
michael-bailey 7e06d90d18 renamed serverActor to server 2022-06-15 18:32:52 +02:00
michael-bailey 58df6bc7a8 renamed old files 2022-06-15 18:32:04 +02:00
michael-bailey 1d90e480be reformatted project 2022-06-15 18:20:57 +02:00
michael-bailey b45fd9a130 renamed files to match std structure 2022-06-15 18:20:38 +02:00
michael-bailey eb8a512c04 deleted old server version 2022-06-15 18:15:15 +02:00
michael-bailey d0c50366aa added basic messaging functonality 2022-06-15 18:11:30 +02:00
michael-bailey d8b0884014 added ability to get server updates 2022-06-14 17:57:01 +02:00
michael-bailey 7f77eebc77 Update actix_server.rs
+ added ClientConnection handlers
2022-06-14 17:56:47 +02:00
michael-bailey 6b6a86168e added auto connection closing to Connection 2022-06-14 17:56:00 +02:00
michael-bailey 3729aa3b02 Update Cargo.toml
+ added tokio stream
2022-06-14 17:53:08 +02:00
michael-bailey cf16991f01 updated foundation with comments and better messages 2022-06-14 17:52:56 +02:00
michael-bailey f22e00e54a added ability to add and remove clients 2022-06-11 23:20:11 +01:00
michael-bailey d7c47f3b3b implementing clients using actors 2022-06-09 08:14:00 +01:00
michael-bailey 63181ec9b5 implemented GetInfo for actix server 2022-05-30 08:57:57 +01:00
michael-bailey 7871e8d6a6 Started work on actor conversion 2022-05-20 17:48:32 +01:00
michael-bailey 0624b568f9 RIGHT I'M MOVING TO ACTIX 2022-05-09 23:15:38 +01:00
michael-bailey 44e20b6ca1 made plugin event generic 2022-05-09 23:15:21 +01:00
michael-bailey 11fbf1db00 same because vscode? 2022-05-09 23:14:32 +01:00
michael-bailey 0c919f059d updated plugin event handler. 2022-05-09 23:12:52 +01:00
michael-bailey 68475abc76 added basic plugin event propogation. 2022-05-09 23:12:52 +01:00
michael-bailey ca058849cb made responder generic 2022-05-09 23:12:52 +01:00
michael-bailey ec29b0554a made event generic 2022-05-09 23:12:52 +01:00
michael-bailey 8ce9152aa8 more module mess 2022-05-09 23:12:52 +01:00
michael-bailey 9f88a81c2a added functions for IResponder 2022-05-09 23:12:52 +01:00
michael-bailey 0f159a2d59 modified visibility 2022-05-09 23:12:52 +01:00
michael-bailey f324867f33 added back tokio to foundation 2022-05-09 23:12:52 +01:00
michael-bailey 8e834cc91d moved event system to foundation 2022-05-09 23:12:52 +01:00
michael-bailey 21b8337500 updated example with interface setting 2022-05-09 23:12:52 +01:00
michael-bailey 785ba57b40 renamed responder 2022-05-09 23:12:52 +01:00
michael-bailey 04aef9cd9f created a event result builder 2022-05-09 23:12:52 +01:00
michael-bailey fc12e8f608 added documention 2022-05-09 23:12:52 +01:00
michael-bailey 403ba73bbb renamed responder module 2022-05-09 23:12:52 +01:00
michael-bailey 05851f0aae updated event architecture 2022-05-09 23:12:52 +01:00
michael-bailey 8058c672e8 fixing linting errors 2022-05-09 23:12:52 +01:00
michael-bailey d70aa28f17 updated plugin example 2022-05-09 23:12:52 +01:00
michael-bailey dcd18c6b7c added function to get plugin entry as interface to plugin 2022-05-09 23:12:52 +01:00
michael-bailey 8ac3a51aa7 updated imports. 2022-05-09 23:12:34 +01:00
michael-bailey 447f8c3169 added basics of an event system 2022-05-09 23:12:20 +01:00
michael-bailey 3631b30867 Adjusted visibility modifiers 2022-05-09 23:12:04 +01:00
michael-bailey 8dd22730b7 Added plugin lifecycle events
added lifecycle events to the plugin entry.

This allows plugins to be in a stopped paused or running state
2022-05-09 23:11:27 +01:00
michael-bailey c3c7d2a381 Fixed plugin not functioning with tokio 2022-05-09 23:11:27 +01:00
michael-bailey 41e9ae1056 minor fix 2022-05-09 23:10:39 +01:00
michael-bailey 2595622b37 fixoing formatting and ther errors. This is a pain to look through. i'm sorry :( 2022-05-09 23:09:38 +01:00
michael-bailey c33cd7c9a1 upadted rust fmt rules for imports 2022-05-09 23:09:38 +01:00
michael-bailey ea22fa0cfe updated module definitions 2022-05-09 23:09:38 +01:00
michael-bailey cd19788959 updated plugin trait implementation 2022-05-09 23:09:38 +01:00
michael-bailey f2be134720 fixed cloning issues with plugin manager 2022-05-09 23:08:48 +01:00
michael-bailey 3ada0ce5a8 cleaned up lib folder 2022-05-09 23:08:48 +01:00
michael-bailey 9c13021a16 updated example plugin 2022-05-09 23:08:48 +01:00
michael-bailey d58a088fe8 updated plugin init process 2022-05-09 23:08:48 +01:00
michael-bailey cac3a161ef created plugin interface 2022-05-09 23:08:48 +01:00
michael-bailey 80bd281cd8 updated plagin interface 2022-05-09 23:08:48 +01:00
michael-bailey 4f8b4ba13c updated example plugin 2022-05-09 23:07:33 +01:00
michael-bailey 0dcdbf8938 modified plugin module visibility 2022-05-09 23:07:33 +01:00
michael-bailey 83c8a6c2b7 added plugin manager to server 2022-05-09 23:07:33 +01:00
michael-bailey be847e39b7 Updated example plugin 2022-05-09 23:06:54 +01:00
michael-bailey df25a3e462 added modules 2022-05-09 23:06:54 +01:00
michael-bailey 40a27e5c01 Added plugin manager to server 2022-05-09 23:06:54 +01:00
michael-bailey 9e4b7c316f created basic PluginManager 2022-05-09 23:06:54 +01:00
michael-bailey bb2e167ef1 Created plugin trait and create function type 2022-05-09 23:06:54 +01:00
michael-bailey 3e15195b0f Added libloading dependency 2022-05-09 23:06:54 +01:00
michael-bailey 5746163123 Created example plugin crate 2022-05-09 23:06:54 +01:00
michael-bailey e833fa347c added arbitrary self types 2022-05-09 23:06:54 +01:00
michael-bailey 89d673b32f moved Lua structs to separate module 2022-05-09 23:06:54 +01:00
michael-bailey 6ebdb441e1 added basic callback support to ClientManager 2022-05-09 23:06:54 +01:00
michael-bailey b29d055aa1 added client indexing to client manager 2022-05-09 23:06:54 +01:00
michael-bailey 5bf1d260ce Updated testing script 2022-05-09 23:06:54 +01:00
michael-bailey eb3c202a4e Adde fields to server to get client manager 2022-05-09 23:06:54 +01:00
michael-bailey 43cafc2c4d Made client manager Lua scriptable 2022-05-09 23:06:54 +01:00
michael-bailey 0681f2ea65 made client Lua scriptable 2022-05-09 23:06:54 +01:00
michael-bailey b33db558e7 Update client.rs
fixed stray connection
2022-05-09 23:06:54 +01:00
michael-bailey 4cf7cb5cde added basic scripting abilities to the server 2022-05-09 23:06:54 +01:00
michael-bailey 57d8cd920b Made server, Lua scriptable. 2022-05-09 23:06:54 +01:00
michael-bailey 62f4803d80 Added Lua dependency 2022-05-09 23:06:54 +01:00
michael-bailey 77bf1e0e25 Merge branch 'feature/iced-client' into develop 2022-03-02 17:06:31 +00:00
michael-bailey 90d8ead026 Update client.rs
added tokio, to protect client connections.
2022-03-01 22:57:47 +00:00
michael-bailey 2783c381e0 implemented message sending between users 2022-03-01 21:06:55 +00:00
michael-bailey e0b65fb520 Update network_manager.rs
this protects the network manager from crashing when a erroneous message is sent
2022-03-01 20:51:56 +00:00
michael-bailey 8f100c0f1c Added the ability to disconnect from the server 2022-03-01 20:12:21 +00:00
michael-bailey 01da5afb46 Update client.rs
added global broadcasting
2022-03-01 19:58:33 +00:00
michael-bailey 9f83b99bbf Update client.rs
- removed redundant fields
2022-03-01 19:43:02 +00:00
michael-bailey 8f0b502487 cleared up warnings 2022-03-01 19:35:59 +00:00
michael-bailey e3c1f12be5 Added Message Broadcasting functionality 2022-03-01 17:52:18 +00:00
michael-bailey 086210fbd9 Update client_manager.rs
bunch more changes

yes i know i'm rubbish at this plz don't say anything :(
2022-03-01 17:30:45 +00:00
michael-bailey 2c71ca56c6 Update server.rs
- removed redundant messages
2022-03-01 17:27:35 +00:00
michael-bailey 26383d4031 moved some messages around 2022-03-01 13:34:33 +00:00
michael-bailey 685f1c7f18 Update messages.rs
formatting
2022-03-01 11:44:20 +00:00
michael-bailey 7b148e9b6e Update client.rs
meant to add this earlier
2022-03-01 11:44:11 +00:00
michael-bailey 0e45c4e803 Update server.rs
- refactored server to simplify message passing
2022-03-01 11:43:35 +00:00
michael-bailey 7e920c25c1 Update client_manager.rs
+ created function to add/remove clients to the client manager.
2022-02-28 20:42:15 +00:00
michael-bailey cfe72b6c7b Update client_manager.rs
+ created function to get the number of connected clients
2022-02-28 18:13:27 +00:00
michael-bailey 2e74aa058f Update client_manager.rs
+ updated lifetime bounds.
2022-02-28 17:50:59 +00:00
michael-bailey 294edc4df3 Update client_manager.rs
- implemented handle channel method from old start method.
- added notes to possible issues.
2022-02-28 17:48:15 +00:00
michael-bailey 9512b82cd0 Update client_manager.rs
- Added type arguments to Client manager
- deprecated start method
2022-02-28 17:47:08 +00:00
michael-bailey ff85d1c28b Update client_manager.rs
swapped lock type for tokio lock
2022-02-28 17:45:57 +00:00
michael-bailey 77f4bf5f08 Stripped server of functinoality
This is temporary whilst the client manager is being tested.
2022-02-28 17:45:39 +00:00
michael-bailey 140afe1a4a Added client manager tests 2022-02-26 17:12:55 +00:00
michael-bailey d77d7f20a0 Impl IManager for ClientManager 2022-02-26 17:12:41 +00:00
michael-bailey 8197231401 Right bare with me...
This doesnt work for now but i have a system that works.

After this commit i will be resuming the smaller changes.

I needed to do this to find a new approach.

God save my mind.
2022-02-26 09:21:41 +00:00
michael-bailey ccd0cb1c5e meant to add this earlier 2022-02-25 21:17:56 +00:00
michael-bailey d904e83f14 Update network_manager.rs
Converted over to new messaging system.
2022-02-25 21:10:24 +00:00
michael-bailey bed642a31d added network Manager
tl;dr, as the title says
2022-02-19 00:53:18 +00:00
michael-bailey 8e519c5fa0 updated connection
+ added manager trait
+ updated connection to use more idomatic rust code converted enums to Strigns rather that &str
+
2022-02-19 00:52:45 +00:00
michael-bailey 31a25c2f20 exposed server as lib
+created lib output for server
+ added extra dependencies
+ added functions to retrieve the port of a server
2022-02-19 00:51:32 +00:00
michael-bailey ec2b16c10a Created connection abstraction
This abstracts a TcpStream await to use any serialisable types.
2022-02-06 14:07:52 +00:00
michael-bailey 8e78bf542c created basic ui that counts 2022-02-04 22:22:59 +00:00
michael-bailey d320f345c8 Created global message support 2022-02-01 20:51:04 +00:00
michael-bailey 14495e1b27 Moved threads to tokio async 2021-08-03 21:58:18 +01:00
michael-bailey 2f8677710a Moved threads to tokio async 2021-08-03 21:58:18 +01:00
michael-bailey 0ed2c5a290 added encryption example 2021-07-10 14:03:06 +01:00
michael-bailey 8ebfbb0a70 changed messaegs to include a type property 2021-07-10 14:02:04 +01:00
michael-bailey 614e73b788 replaced duplicate fields 2021-04-25 14:28:39 +01:00
michael-bailey 137ef3d3b1 Adding public key storage 2021-04-23 22:28:32 +00:00
michael-bailey 71b77de447 adding user update support 2021-04-22 12:56:53 +00:00