ID:112273
 
Not a bug
BYOND Version:481
Operating System:Windows XP Pro
Web Browser:Firefox 6.0
Applies to:Dream Daemon
Status: Not a bug

This is not a bug. It may be an incorrect use of syntax or a limitation in the software. For further discussion on the matter, please consult the BYOND Developer forums.
Descriptive Problem Summary:

When hosting a world on Dream Dameon, the same rule that applies to Dreamseeker is no longer followed.
"This proc may be overridden. If it is, calling ..() is necessary to open the port. If ..() is not called, it will not open."


The reason this has been bothering me a bit, is because I have a special check to see if someone is allowed to host, if they are, it will open the port for them. However, if they are not, I would like for them to stay in Single-Player-Mode.

With Dream Daemon, the port opens automatically, the only work-around to closing it, being to del(world). However, there is no way to differentiate between the two (DD & DS), and no way to know where OpenPort is being called from, therefor it will shutdown the world if he tried it from DreamSeeker instead of denying it to be opened as intended.
This is not a bug. DD didn't call OpenPort() at all in the past; the behavior for blocking it is only meant for when you call OpenPort() outright or when it's handled in DS. If you want to block hosting in DD, you can check if world.port is nonzero in world/New().