text: from otp.avatar.Avatar import teleportNotify
  from toontown.toonbase import ToontownGlobals
  import copy
  from toontown.chat import ToonChatGarbler
  
  class FriendHandle:
  
      def __init__(self, doId, name, style, petId, isAPet = False):
          self.doId = doId
          self.style = style
          self.commonChatFlags = 0
          self.whitelistChatFlags = 0
          self.petId = petId
          self.isAPet = isAPet
          self.chatGarbler = ToonChatGarbler.ToonChatGarbler()
          self.name = name
  
      def getDoId(self):
          return self.doId
  
      def getPetId(self):
          return self.petId
  
      def hasPet(self):
          return self.getPetId() != 0
  
      def isPet(self):
          return self.isAPet
  
      def getName(self):
          return self.name
  
      def getFont(self):
          return ToontownGlobals.getToonFont()
  
      def getStyle(self):
          return self.style
  
      def uniqueName(self, idString):
          return idString + '-' + str(self.getDoId())
  
      def d_battleSOS(self, requesterId):
          base.localAvatar.sendUpdate('battleSOS', [requesterId], sendToId=self.doId)
  
      def d_teleportQuery(self, requesterId):
          teleportNotify.debug('sending d_teleportQuery(%s)' % (requesterId,))
          base.localAvatar.sendUpdate('teleportQuery', [requesterId], sendToId=self.doId)
  
      def d_teleportResponse(self, avId, available, shardId, hoodId, zoneId):
          teleportNotify.debug('sending teleportResponse%s' % ((avId,
            available,
            shardId,
            hoodId,
            zoneId),))
          base.localAvatar.sendUpdate('teleportResponse', [avId,
           available,
           shardId,
           hoodId,
           zoneId], sendToId=self.doId)
  
      def d_teleportGiveup(self, requesterId):
          teleportNotify.debug('sending d_teleportGiveup(%s)' % (requesterId,))
          base.localAvatar.sendUpdate('teleportGiveup', [requesterId], sendToId=self.doId)
  
      def isUnderstandable(self):
          if self.commonChatFlags & base.localAvatar.commonChatFlags & ToontownGlobals.CommonChat:
              understandable = 1
          elif self.commonChatFlags & ToontownGlobals.SuperChat:
              understandable = 1
          elif base.localAvatar.commonChatFlags & ToontownGlobals.SuperChat:
              understandable = 1
          elif base.cr.getFriendFlags(self.doId) & ToontownGlobals.FriendChat:
              understandable = 1
          elif self.whitelistChatFlags & base.localAvatar.whitelistChatFlags:
              understandable = 1
          else:
              understandable = 0
          return understandable
  
      def scrubTalk(self, message, mods):
          scrubbed = 0
          text = copy.copy(message)
          for mod in mods:
              index = mod[0]
              length = mod[1] - mod[0] + 1
              newText = text[0:index] + length * '\x07' + text[index + length:]
              text = newText
  
          words = text.split(' ')
          newwords = []
          for word in words:
              if word == '':
                  newwords.append(word)
              elif word[0] == '\x07':
                  newwords.append('\x01WLDisplay\x01' + self.chatGarbler.garbleSingle(self, word) + '\x02')
                  scrubbed = 1
              elif base.whiteList.isWord(word):
                  newwords.append(word)
              else:
                  newwords.append('\x01WLDisplay\x01' + word + '\x02')
                  scrubbed = 1
  
          newText = ' '.join(newwords)
          return (newText, scrubbed)
  
      def replaceBadWords(self, text):
          words = text.split(' ')
          newwords = []
          for word in words:
              if word == '':
                  newwords.append(word)
              elif word[0] == '\x07':
                  newwords.append('\x01WLRed\x01' + self.chatGarbler.garbleSingle(self, word) + '\x02')
              elif base.whiteList.isWord(word):
                  newwords.append(word)
              else:
                  newwords.append('\x01WLRed\x01' + word + '\x02')
  
          newText = ' '.join(newwords)
          return newText
  
      def setCommonAndWhitelistChatFlags(self, commonChatFlags, whitelistChatFlags):
          self.commonChatFlags = commonChatFlags
          self.whitelistChatFlags = whitelistChatFlags
  