ID:2353255
 
Code:
//Code under Login()
if(Boots.Find(client.key) | Boots.Find(client.ckey) | Boots.Find(client.computer_id) | Boots.Find(client.address))
world << output("<font color = grey>[src] has been kicked due to being booted from the server.</font>", "Log")
del src
return

//Ban version
if(Bans.Find(client.key) | Bans.Find(client.computer_id) | Bans.Find(client.address))
for(var/mob/O in world) if(Staff.Find(O.key)) O << output("<font color = grey>[src] has tried to login but is currently banned. Reason: [banReason].</font>", "Log")
del src
return

//Variables used
var
list/Boots = list()
list/Bans = list()


Problem description:
So, I'm working on Ban and Boot system (Booting : Just simple kicks the player from the server and doesn't allow them to login into the next round.)

But, it isn't working in the login like Ban is, which should kick the player if the key, computer id, or c-address is found in the list. When I have it there, any information under it doesn't register either which is a bit frustrating since I see nothing wrong with it unless I'm blind.
The problem is that you're using return, return stops the proc and anything under it will not happen.
In response to Chico1
The issue still occurs anyway. And I guess there isn't a need for return when it deletes the client anyway.
Nevermind, found the issue. Very odd one though, I want the Boots/Kicks to reset every round. So I put it under my newRound() proc. Which starts the round immediately when the server opens and it simply resets the list to N/A (null). And that caused the issue.
    newRound()
adminReset = FALSE
if(!Boots) world << output("<font color = grey><font size = -1>Boots have been deleted.</font></font>") ; Boots = null


I used to have it as if(Boots) so if there was any boots it would reset. This is really confusing but apparently it works.
irrelevant to the problem:
del should be avoided. You could istead use mob/Logout()

instead of actually deleting src, you call for mob to disconnect

//Code under Login()
if(Boots.Find(client.key) | Boots.Find(client.ckey) | Boots.Find(client.computer_id) | Boots.Find(client.address))
world << output("<font color = grey>[src] has been kicked due to being booted from the server.</font>", "Log")
src.Logout()


del expression in general is bad habit, and should be avoided when possible. When something is deleted it sets every reference to the object to null. This combined with how the net protocol works with DM makes it very unoptimal.

As of return usage
every proc in DM returns a value. It can be set by either changing " . " value. because . is always returned.
A return inside an expression loop stops the whole process if it comes to that. in this case, it wouldn't matter but it's bad habit.
return expression is used as to change a return value of a procedure:

mob/proc/test(value = 240)
return value

if(usr)
usr << test() //Outputs 240
usr << test(123) // Outputs 123