コード例 #1
0
 def parseResponse(self):
     ignorePattern = PatternManager.getOrCompilePattern("traderIgnoringUs")
     if ignorePattern.search(self.responseText):
         raise Error.Error("That player has you on his/her ignore list.", Error.USER_IS_IGNORING)
     
     roninPattern = PatternManager.getOrCompilePattern("traderIsInRoninHC")
     if roninPattern.search(self.responseText):
         raise Error.Error("That player is in Ronin or HC and cannot receive trade offers.", Error.USER_IN_HARDCORE_RONIN)
     
     itemsPattern = PatternManager.getOrCompilePattern("traderHasNotEnoughItems")
     if itemsPattern.search(self.responseText):
         raise Error.Error("You don't have enough of one or more of the items you're trying to trade.", Error.NOT_ENOUGH_ITEMS)
     
     meatPattern = PatternManager.getOrCompilePattern("traderHasNotEnoughMeat")
     if meatPattern.search(self.responseText):
         raise Error.Error("You don't have as much meat as you're trying to trade.", Error.NOT_ENOUGH_MEAT)
     
     chatBannedPattern = PatternManager.getOrCompilePattern("traderBannedFromChat")
     if chatBannedPattern.search(self.responseText):
         raise Error.Error("You are banned from chat and consequently cannot trade.", Error.BANNED_FROM_CHAT)
     
     successPattern = PatternManager.getOrCompilePattern("tradeSentSuccessfully")
     if successPattern.search(self.responseText):
         Report.trace("request", "Trade offer sent successfully.")
     else:
         raise Error.Error("Other error sending trade offer.", Error.ERROR)
コード例 #2
0
    def parseResponse(self):
        noMeatPattern = PatternManager.getOrCompilePattern(
            'traderHasNotEnoughMeat')
        if noMeatPattern.search(self.responseText):
            raise Error.Error(
                "You don't have as much meat as you're promising.",
                Error.NOT_ENOUGH_MEAT)

        noItemsPattern = PatternManager.getOrCompilePattern(
            'traderHasNotEnoughItems')
        if noItemsPattern.search(self.responseText):
            raise Error.Error(
                "You don't have as many items as you're promising.",
                Error.NOT_ENOUGH_ITEMS)

        #Not testing for an offer being cancelled due to a bug in KoL - space reserved

        successPattern = PatternManager.getOrCompilePattern(
            'tradeResponseSentSuccessfully')
        if successPattern.search(self.responseText):
            Report.trace(
                "request", "Response to trade " +
                str(self.requestData['whichoffer']) + ' sent successfully.')
        else:
            raise Error.Error(
                "Unknown error sending response to trade " +
                str(self.requestData['whichoffer']), Error.REQUEST_GENERIC)
コード例 #3
0
 def parseResponse(self):
     successPattern = PatternManager.getOrCompilePattern(
         'tradeCancelledSuccessfully')
     if successPattern.search(self.responseText):
         Report.trace(
             'request',
             "Trade offer " + str(self.requestData['whichoffer']) +
             " cancelled successfully.")
     else:
         raise Error.Error(
             "Unknown error declining trade offer for trade " +
             str(self.requestData['whichoffer']), Error.REQUEST_GENERIC)
コード例 #4
0
 def parseResponse(self):
     # First parse for errors
     notEnoughPattern = PatternManager.getOrCompilePattern("dontHaveEnoughOfItem")
     if notEnoughPattern.search(self.responseText):
         raise Error.Error("You don't have that many of that item.", Error.ITEM_NOT_FOUND)
     
     dontHaveItemPattern = PatternManager.getOrCompilePattern("dontHaveThatItem")
     if dontHaveItemPattern.search(self.responseText):
         raise Error.Error("You don't have that item.", Error.ITEM_NOT_FOUND)
         
     # Check if responseText matches the success pattern. If not, raise error.
     itemAddedSuccessfully = PatternManager.getOrCompilePattern("itemAddedSuccessfully")
     if itemAddedSuccessfully.search(self.responseText):
          Report.trace('request', 'Item appears to have been added')
     else:
         raise Error.Error("Something went wrong with the adding.", Error.ITEM_NOT_FOUND)
コード例 #5
0
    def parseResponse(self):
        # First parse for errors
        notEnoughPattern = PatternManager.getOrCompilePattern(
            "dontHaveThatManyInStore")
        if notEnoughPattern.search(self.responseText):
            raise Error.Error("You either don't have that item, or not enough",
                              Error.ITEM_NOT_FOUND)

        # Check if responseText matches the success pattern. If not, raise error.
        itemTakenSuccessfully = PatternManager.getOrCompilePattern(
            "itemTakenSuccessfully")
        if itemTakenSuccessfully.search(self.responseText):
            Report.trace('request', 'Item appears to have been taken')
        else:
            raise Error.Error(
                "Something went wrong with the taking of the item.",
                Error.ITEM_NOT_FOUND)
コード例 #6
0
ファイル: ItemDatabase.py プロジェクト: krubottom/pykollib
def discoverMissingItems(session):
    from pykollib.request.InventoryRequest import InventoryRequest
    from pykollib.request.ItemInformationRequest import ItemInformationRequest
    invRequest = InventoryRequest(session)
    invRequest.ignoreItemDatabase = True
    invData = invRequest.doRequest()
    for item in invData["items"]:
        if item["id"] not in __itemsById:
            try:
                itemRequest = ItemInformationRequest(session, item["id"])
                itemData = itemRequest.doRequest()
                item = itemData["item"]
                addItem(item)
                Report.trace("itemdatabase",
                             "Discovered new item: %s" % item["name"])

                context = {"item": item}
                FilterManager.executeFiltersForEvent("discoveredNewItem",
                                                     context,
                                                     session=session,
                                                     item=item)
            except:
                pass
コード例 #7
0
def init():
    """
    Initializes the QkillDatabase. This method should be called before the
    database is ever accessed as it ensures that the database is populated
    with all of the data it needs.
    """
    global __isInitialized
    if __isInitialized == True:
        return

    Report.trace("questdatabase", "Initializing the quest database.")
    returnCode = FilterManager.executeFiltersForEvent(
        "preInitializeQuestDatabase")
    if returnCode == FilterManager.FINISHED:
        Report.trace("questdatabase", "Quest database initialized.")
        __isInitialized = True
        return

    for quest in Quests.quests:
        addQuest(quest)

    FilterManager.executeFiltersForEvent("postInitializeQuestDatabase")
    __isInitialized = True
    Report.trace("questdatabase", "Quest database initialized.")
コード例 #8
0
def init():
    """
    Initializes the SkillDatabase. This method should be called before the
    database is ever accessed as it ensures that the database is populated
    with all of the data it needs.
    """
    global __isInitialized
    if __isInitialized == True:
        return

    Report.trace("skilldatabase", "Initializing the skill database.")
    returnCode = FilterManager.executeFiltersForEvent(
        "preInitializeSkillDatabase")
    if returnCode == FilterManager.FINISHED:
        Report.trace("skilldatabase", "Skill database initialized.")
        __isInitialized = True
        return

    for skill in Skills.skills:
        addSkill(skill)

    FilterManager.executeFiltersForEvent("postInitializeSkillDatabase")
    __isInitialized = True
    Report.trace("skilldatabase", "Skill database initialized.")
コード例 #9
0
ファイル: ItemDatabase.py プロジェクト: krubottom/pykollib
def init():
    """
    Initializes the ItemDatabase. This method should be called before the
    database is ever accessed as it ensures that the database is populated
    with all of the data it needs.
    """
    global __isInitialized
    if __isInitialized == True:
        return

    Report.trace("itemdatabase", "Initializing the item database.")
    returnCode = FilterManager.executeFiltersForEvent(
        "preInitializeItemDatabase")
    if returnCode == FilterManager.FINISHED:
        Report.trace("itemdatabase", "Item database initialized.")
        __isInitialized = True
        return

    for item in Items.items:
        addItem(item)

    FilterManager.executeFiltersForEvent("postInitializeItemDatabase")
    __isInitialized = True
    Report.trace("itemdatabase", "Item database initialized.")