_imports = []
_parents = []
_version = 1

def _Sys_Create(self, name, hashVal, salt, email):
  self.name = name
  self.hashVal = hashVal
  self.salt = salt
  self.email = email
  settings = {}
  settings["useMXP"] = False
  settings["useMXPSound"] = False
  settings["useMSP"] = False
  settings["useANSI"] = False
  self.settings = settings
  worldObj.accounts[self.name] = self
  self.permissions = {}

def Login(self, avatar):
  connectedAccounts = worldObj.connectedAccounts
  if connectedAccounts.has_key(self.name):
    avatar.Send("Someone else was logged in with this account.  Booting them!\r\n")
    bootAvatar = worldObj.connectedAccounts[self.name]
    bootAvatar.Send("Someone else has logged in with this account.\r\n")
    #Here we would copy relevant game data, such as the entity this avatar was controlling, to the
    #new avatar.
    bootAvatar.account = None
    bootAvatar.Disconnect()
  worldObj.connectedAccounts[self.name] = avatar
  #Temporary hack to announce login.
  for otherAvatar in worldObj.avatars:
    if (otherAvatar == avatar) or (otherAvatar.account == None) or not(worldObj.connectedAccounts.has_key(otherAvatar.account.name)):
      continue
    otherAvatar.Send("%s has logged in.\r\n" % self.name)

def Logout(self):
  connectedAccounts = worldObj.connectedAccounts
  if connectedAccounts.has_key(self.name):
    connectedAccounts[self.name].account = None
    del connectedAccounts[self.name]
  #Temporary hack to announce logout.
  for otherAvatar in worldObj.avatars:
    if (otherAvatar.account == None) or not(worldObj.connectedAccounts.has_key(otherAvatar.account.name)):
      continue
    otherAvatar.Send("%s has logged out.\r\n" % self.name)

def _Sys_Destroy(self):
  if worldObj.connectedAccounts.has_key(self.name):
    avatar = worldObj.connectedAccounts[self.name]
    avatar.Send("This account has been deleted.\r\n")
    self.Logout()
  if self in worldObj.accounts:
    worldObj.accounts.remove(self)