Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server Based Extensions [Hard] #21

Open
foonull opened this issue Feb 13, 2016 · 1 comment
Open

Server Based Extensions [Hard] #21

foonull opened this issue Feb 13, 2016 · 1 comment

Comments

@foonull
Copy link
Owner

foonull commented Feb 13, 2016

I am still uncertain about this feature, but it may be a good idea, and it had been brought up before.

Right now we have extensions that either depend on a mod or that can be ran globally via the user enabling them. It'd also be interesting to have a third mode where extensions only run on a selected server. This way the server can change maps and the extension would still be active.

One concern: Should MGM's server maintain a mapping of servers -> extensions? Or should game servers report that they want to use an extension? The former sounds like it may be a safer approach security wise, as well as a simpler one. Perhaps the port number should be recorded as well. If the server doesn't want to use the extension, it can change to a different port. Likewise, different ports can have different sets of extension configurations.

Do extensions have to declare that they support being server based? Maybe it's sufficient if an extension supports global or mod modes already (i.e, any extension on the database currently).

We'd need to alter our script / add a new one for adding a server extension whitelist and define a schema for it.

Logic would need to be added to the plugin handler code to handle selecting extensions based on server IP and port. Need to be able to test it locally as well by using the already available auxiliary JSON mods file.

The MD client will need to understand what extensions to download for a server before joining.

@ghost
Copy link

ghost commented Feb 24, 2016

SAPP supports manipulation of the query packets, which could be used for listing required extensions. Unfortunately, SAPP isn't open-source, so any verification of whether or not the extensions are valid will either have to be done client-side, or will have to be done via a dynamic library (DLL) file, as Lua by itself does not have socket support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant