ID:1323024
 
Applies to:
Status: Open

Issue hasn't been assigned a status value.
I am requesting that a new client connection type is added / supported to describe when a client is connecting with "byondexe" client instead of the standard pager / seeker client.

One use case would be to send pager/seeker clients to a web page to download a resource pack so that the server doesn't have to serve it at an instance (the client gets the resource in the front). You wouldn't be able to both advertise your game on the hub AND require an up-front resource to both custom-client users AND pager/seeker users. This is because seeker just downloads resources automagically.

I'm sure there's other use cases.

client/New()
world.log << "New client connecting..."

var/sleeps = 10
while(!connection && sleeps > 0)
sleeps--
sleep(1)

if(!sleeps)
world.log << "Couldn't figure out connection type, aborted user."
world.log << " key: [src.key]"
world.log << " address: [src.address]"
world.log << " computer_id: [src.computer_id]"
return 0

if(connection == "telnet")
world.log << "Disconnecting [src] / [src.address] / [src.computer_id] for connecting via TELNET."
return 0
if(connection == "cgi")
world.log << "Disconnecting [src] / [src.address] / [src.computer_id] for connecting via CGI."
return 0
if(connection == "seeker")
src << link("http://www.gamewebsite.com/downloads/")
return 0
//world = world.Export() connection from another server

world.log << " connection type = [src.connection]"//should be byondexe


Edit: I just realized that the client would already have the resources by the time it reached client.New() if it were a pager/seeker client... Perhaps you'd have to delegate this in world.IsBanned(), which raises the question: Would client.connection be available at that point?
computer id isn't returned via telnet

but this is a pretty cool idea lol.

not sure about cgi.

++
computer_id isn't accessible from DMCGI either, nor does it need to be -- DMCGI is no longer developed actively or supported.
+1
This might be useful but it won't be backwards-compatible with existing standalones if added. The standalone setup basically just runs DS in a neat little wrapper. There is currently no message that tells the server that the client is a standalone.
Do you think we can sneak this in sometime soon? It will be necessary for games that need to host many parts of its world on separate map servers.
++