import mploader
import re

from const_commands import *

_imports = ["lib_commandparser"]
_parents = []
_version = 1

def OOC_quit(avatar, command, args):
  avatar.Disconnect()
  return True

def OOC_mccp(avatar, command, args):
  avatar.Send("MCCP is #t+COLOR blue#t-%s#t+/COLOR#t-\r\n" % str(avatar.useMCCP))
  avatar.Send("MCCP2 is %s\r\n" % str(avatar.useMCCP2))
  return True

def OOC_commands(avatar, command, args):
  commands = lib_commandparser.GenerateCommands(avatar)
  commandStrs = ["Priority\tCommand\t\tArgs\r\n"]
  extendStrs = ["%d\t%s\t\t%s\r\n" % (command[0], str(command[1]), command[2]) for command in commands]
  commandStrs.extend(extendStrs)
  avatar.Send("".join(commandStrs))
  return True
  
def OOC_fixprompt(avatar, command, args):
  avatar.usePrompt = True
  avatar.promptCallback = None
  avatar.Send("Done.\r\n")
  return True

def IC_chat(avatar, command, args):
  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 chats, \"#fc%s#ad\"\r\n" % (avatar.account.name, args[0]))
  avatar.Send("You chat, \"#fc%s#fd\"\r\n" % args[0])
  return True
  
def IC_who(avatar, command, args):
  avatar.Send("#fRPlayers Online#ad\r\n")
  for accountName in worldObj.connectedAccounts.keys():
    avatar.Send("%s\r\n" % accountName)
  return True

#For testing purposes.
def OOC_generror(avatar, command, args):
  1 / 0


exportCommands = [(1, "@quit", "", COMMANDMODE_WORD, False, OOC_quit, {}),
                  (1, "@mccp", "", COMMANDMODE_WORD, False, OOC_mccp, {}),
                  (1, "@commands", "", COMMANDMODE_WORD, False, OOC_commands, {}),
                  (1, "@fixprompt", "", COMMANDMODE_WORD, False, OOC_fixprompt, {}),
                  (1, "@generror", "", COMMANDMODE_WORD, False, OOC_generror, {}),
                  (1, "chat", "%some_text", COMMANDMODE_WORD, False, IC_chat, {}),
                  (1, "who", "", COMMANDMODE_WORD, False, IC_who, {})]