Hey guys!
I haven't had much time to work on Promodeus the past week and a half; nevertheless, I think showing what is done so far could be beneficial.
I've been testing what I have in a local test environment that mimics parts of Rust (kinda). So, I haven't tested this on an actual server yet. I hope that changes soon.
I really just want to showcase to developers right now, and as such, I'm posting some screenshots with some example code. I'll explain them below. Additionally, I'm posting a dependency graph of Promodeus up to this point (essentially what is done and implemented). I left off implementing and integrating hooks.
This folder has the screenshots and graph:
https://www.dropbox.com/sh/xpjaogftgor1173/CN0dNGY2t2
All of these examples are in an example mod for channels. I commented the code.
Additional Comments:
CreatingAPromodeusMod.png : (2 of 3)
I'm showcasing basic features like creating a basic mod instance, registering commands, setting up your datastore, and hooking events.
The DataStore (PromodeusModData) has three organizational layers, Data (as you see in the screenshot), SharedData, and AdminSettings.
CreatingCommandable.png (3 of 3)
Here, I'm showing how a slash command works with Promodeus. Basically, you specify your command class with the [Commandable] Attribute and also your methods with [Command], with various modifiers. The user privilege you see is Promodeus's user privilege system (which include custom privs), although the basic privs are initially inherited from rust's.
Also, it shows how working with Promodeus's DataStore is simple. If you notice, (dynamic data) is PromodeusModData.Data. That is where all internal data is stored. Channel is a separate class that defines a channel and such, and in this example, is persistent data that is stored.
CreatingADynamicCommand.png (1 of 3)
This is a fun one, as it allows mods to create dynamic slash commands. That is, create commands who's identifiers are conditional (changeable), and so are the actions.
DependencyGraph.xps
Probably the worst way to show what's done so far, but I can't find the energy to put something better together. It's a complete mess, as it shows all the nitty gritty details. I think it's organized from left to right based on the height of the node in coupling tree (left = highest, right = leafs/bases).
This is by no means a full demonstration of what Promodeus is capable of at this point. If you look at the dependency graph, you can see there is much more implemented. If I have time tomorrow, I'll put something together.
As always, I'm looking for developers who can help out, as there is still quite a bit to do, and with future plans, there's A LOT MORE. Thanks for checking this out.