import mpserver

_imports = []
_parents = []
_version = 1

def _Sys_Create(self):
  self._persist = 1
  self.accounts = {}
  self.avatars = []
  self.conntectedAccounts = {}

def _Sys_Boot(self, bootArgs):
  mpserver.MudServer(mudWorld, int(bootArgs["Port"]), 50, GetObj("_world"), "avatar_parse", mpserver.TelnetClient)

def _Sys_Load(self):
  for avatar in self.avatars:
    DelObj(avatar)
  self.avatars = []
  self.connectedAccounts = {}

def _Sys_ClientConnect(self, client):
  for avatar in self.avatars:
    if avatar.client.ipAddr == client.ipAddr:
      client.avatarObj.Avatar_Send("Someone is already connected from this address.")
  client.avatarObj.Avatar_Connect()
  self.avatars.append(client.avatarObj)

def _Sys_ClientDisconnect(self, client):
  client.avatarObj.Avatar_Disconnect()
  self.HandleDisconnect(client.avatarObj)

def _Sys_ClientLinkdeath(self, client):
  client.avatarObj.Avatar_Linkdeath()
  self.HandleDisconnect(client.avatarObj)

def HandleDisconnect(self, avatar):
  if avatar.account != None:
    avatar.account.Account_Logout()
  DelObj(avatar)
  self.avatars.remove(avatar)