enigma
enigma copied to clipboard
[feature request] `enigma-server` rework
Overhaul enigma-server
, moving a lot of load away from enigma-swing
and making it easier to create enigma clients.
This rework has a few major goals:
-
[ ] streamline working with mappings over a server. Mappings will be entirely controlled by the host, with the client having two options to get the files:
- [ ] request an export of the current mappings on the server
- [ ] request an export of changes made by the client
-
[ ] make joining a server a one-step process: put in the address, put in the password, and you're set up. This means the server has to send some additional data to the client on join. Goals:
- [ ] entirely remove the need for the client to have a jar when joining. the host will have one master jar that all clients receive information about.
- [ ] send the client the jar index (+ the mappings index, when that's implemented)
- [ ] send the source index
- [ ] send the client a class tree to construct a file chooser from, to avoid the client simply being sent the full jar
-
[ ] move decompilation server-side. the host handles decompilation for all users.
- [ ] implement a "view-only" mode for
enigma-swing
, whereenigma-swing
will still decompile each class and give the user a view-only version of the class until the server sends the true version - [ ] move all decompilation-related things out of
enigma-swing
so that they're available for all clients - [ ] implement a configurable "do it yourself mode", where instead of decompiling classes itself the server returns a response telling clients to do it. in this mode, the behaviour will be similar to the current behaviour. this is useful when the host is a slower computer
- [ ] implement a "view-only" mode for
This plan is very early, and will definitely see changes before it begins being implemented! Please comment with any concerns or improvement ideas <3