def updateEmoteList(self):
        idList = EmoteGlobals.emotes.keys()
        idList.sort()
        for emoteId in idList:
            if EmoteGlobals.getEmotePrereqs(emoteId):
                for prereq in EmoteGlobals.getEmotePrereqs(emoteId):
                    if not prereq.avIsReady(localAvatar):
                        emoteId in self.structure and self.removeEmote(emoteId)
                    elif prereq.avIsReady(localAvatar):
                        emoteId not in self.structure and self.addEmote(
                            emoteId)

        self.createSpeedChatObject(self.structure)
 def updateEmoteList(self):
     idList = EmoteGlobals.emotes.keys()
     idList.sort()
     for emoteId in idList:
         if EmoteGlobals.getEmotePrereqs(emoteId):
             for prereq in EmoteGlobals.getEmotePrereqs(emoteId):
                 if not prereq.avIsReady(localAvatar) and emoteId in self.structure:
                     self.removeEmote(emoteId)
                     continue
                 if prereq.avIsReady(localAvatar) and emoteId not in self.structure:
                     self.addEmote(emoteId)
                     continue
             
     
     self.createSpeedChatObject(self.structure)
    def setEmote(self, emoteId):
        if emoteId not in EmoteGlobals.emotes:

            # Log potential hacking
            self.air.logPotentialHacker(
                message='Avatar attempted to use invalid emote',
                accountId=self.air.getAccountIdFromSender(),
                emoteId=emoteId)

            return

        prereqs = EmoteGlobals.getEmotePrereqs(emoteId)
        if prereqs:

            fault = False
            for prereq in prereqs:
                if not prereq.avIsReadyAI(self):
                    fault = True
                    break

            if fault:

                # Log potential hacking
                self.air.logPotentialHacker(
                    message=
                    'Avatar attempted to use emote that does not meet requirements',
                    accountId=self.air.getAccountIdFromSender(),
                    emoteId=emoteId)

                return

        self.sendUpdate('playEmote', [emoteId])
    def handleEmoteMsg(self, emoteId):
        sendText = True
        for prereq in EmoteGlobals.getEmotePrereqs(emoteId):
            if not prereq.avIsReady(localAvatar):
                return

        if emoteId in OTPLocalizer.Emotes:
            sendText = localAvatar.requestEmote(emoteId)
        if sendText:
            if emoteId == EmoteGlobals.EMOTE_VALENTINES:
                emoteId = random.choice([
                    EmoteGlobals.EMOTE_VALENTINES_A,
                    EmoteGlobals.EMOTE_VALENTINES_B,
                    EmoteGlobals.EMOTE_VALENTINES_D,
                    EmoteGlobals.EMOTE_VALENTINES_E
                ])
                self.sendChatByMode(SPEEDCHAT_NORMAL, emoteId)
            else:
                self.sendChatByMode(SPEEDCHAT_EMOTE, emoteId)
        self.hide()
 def handleEmoteMsg(self, emoteId):
     sendText = True
     for prereq in EmoteGlobals.getEmotePrereqs(emoteId):
         if not prereq.avIsReady(localAvatar):
             return None
             continue
     
     if emoteId in OTPLocalizer.Emotes:
         sendText = localAvatar.requestEmote(emoteId)
     
     if sendText:
         if emoteId == EmoteGlobals.EMOTE_VALENTINES:
             emoteId = random.choice([
                 EmoteGlobals.EMOTE_VALENTINES_A,
                 EmoteGlobals.EMOTE_VALENTINES_B,
                 EmoteGlobals.EMOTE_VALENTINES_D,
                 EmoteGlobals.EMOTE_VALENTINES_E])
             self.sendChatByMode(1, emoteId)
         else:
             self.sendChatByMode(2, emoteId)
     
     self.hide()