Pryaxis / orion-core

The next generation Terraria Server API.
https://pryaxis.github.io/orion-core
GNU General Public License v3.0
31 stars 12 forks source link

TShock 4 -> 5 Feature Map #40

Open hakusaro opened 8 years ago

hakusaro commented 8 years ago

This is a project I discussed with @tylerjwatson. Effectively, I'm going through the entire TShock 4 codebase and identifying key features, commands, subsystems, etc. and dividing them up in a table to determine where they should go in TShock 5 and Orion.

Because the wiki doesn't have any way to send notifications to Slack, I'm creating an issue here to track my progress as I work to enumerate through features. In addition, I plan on asking for input directly when something comes into question (should feature X or Y be in Orion or in TShock 5?).

Very spare, but I hope to make significant progress in the next week or so to help guide implementation of features in Orion that need to be done before TShock 5 can start being designed around Orion.

TShock 4 Feature In Orion? Service def. in Orion? In TShock 5? Status / Comment
Rest API ✔︎ ✔︎ Not complete. See https://github.com/NyxStudios/Orion/issues/6. Many routes will be added in both TShock 5 and Orion, but the core implementation will be in Orion. TShock will add routes as necessary (and the services it implements will too).
Log system ✔︎ Not started. Presumably logging will be handled by an Orion service and TShock will deliver its messages to that service. See https://github.com/NyxStudios/Orion/issues/19. Almost all log related config options should be removed from TShock, except maybe a binary "send logs to Orion log service" option.
Bans ✔︎ ✔︎ To be determined. Not sure if this is supposed to be in AAA or not. If in AAA, not sure if it's supposed to handle user facing entry points or if another plugin should be exposing AAA.
Warps ✔︎ Not migrated. Warp subsystem likely handled entirely in TShock 5, but could be removed and split into another plugin.
Regions ✔︎ Not migrated. Region subsystem likely handled entirely in TShock 5, but could be removed and split into another plugin.
Backups ? ? ? Not sure if this subsystem should be in TShock 5, but will likely remain in TShock 5.
Groups ✔︎ ✔︎ Not completed. Should be implemented in AAA, but unclear if user facing entry points should be in Orion or if TShock should implement them (commands, for example).
Users ✔︎ ✔︎ Not completed. Should be implemented in AAA, but unclear if user facing entry points should be in Orion or if TShock should implement them (commands, for example).
Item bans ✔︎ Not migrated. Item bans subsystem likely handled entirely in TShock 5, but could be removed and split into another plugin.
Projectile bans ✔︎ Not migrated. Projectile ban subsystem likely handled entirely in TShock 5, but could be removed and split into another plugin.
Tile bans ✔︎ Not migrated. Tile ban subsystem likely handled entirely in TShock 5, but could be removed and split into another plugin.
Remembered position manager ✔︎ Not migrated. Remembered pos manager likely handled in TShock 5, but should probably be moved into another plugin.
Server side characters ✔︎ Not migrated. SSC likely handled in TShock 5. Could be a separate plugin, but also really hard to do and really easy to screw up.
Stat tracker ✔︎ Not started. Likely handled in Orion as a service. To be completely removed in TShock 5.
GeoIP ✔︎ Not migrated. Likely handled in TShock 5. Could be a separate plugin, but recent rewrites by Enerdy actually have it working.
Database ? ? Not clear as to where plugins can store arbitrary data.
Whitelist ✔︎ Not migrated. Likely handled in TShock 5.
Config ? ? ? Unclear where arbitrary config files are read/written and how this correlates in TShock 5.
Misc random config file settings in TShock ✔︎ Not migrated. Most will make it into TShock 5 or be split out into plugins.
QuiCM commented 8 years ago

In relations to your Bans feature, see #41

hakusaro commented 8 years ago

I'm moving the entire table to Github issues because the wiki software sucks and has a compulsory sidebar and doesn't like handling big tables properly.

hakusaro commented 8 years ago

I've taken care of what I consider to be almost all of the core features, but I don't know. I'd say everyone is open to edit this table and add suggestions as they see fit.

@tylerjwatson, if you can answer the database/config questions, that would be great.