def deferred_find_item_in(client, parent, func): i = client.world.find_item_in(parent, func) if i is not None: return defer.succeed(i) d = defer.Deferred() e = OpenContainer(client, parent).deferred def second_lookup(): i = client.world.find_item_in(parent, func) if i is not None: d.callback(i) else: d.errback(NoSuchEntity()) def callback(result): reactor.callLater(1, second_lookup) return result def errback(fail): d.errback(fail) return fail e.addCallbacks(callback, errback) return d
def _source_opened2(self): client = self._client if self._destination.is_bank(client.world.player): self._destination_opened(None) else: d = OpenContainer(client, self._destination).deferred d.addCallbacks(self._destination_opened, self._failure)
def __init__(self, client, container=None): Engine.__init__(self, client) self.__failed = False self.__tries = 10 self.container = container d = OpenContainer(client, self.container).deferred d.addCallbacks(self._more, self._failure)
def __init__(self, client, ids): Engine.__init__(self, client) self._source = client.world.backpack() if self._source is None: self._failure(NoSuchEntity('No backpack')) return self.ids = ids d = OpenContainer(client, self._source).deferred d.addCallbacks(self._source_opened, self._failure)
def __init__(self, client, source, destination, func, amount): Engine.__init__(self, client) assert amount > 0 self.source = source self.destination = destination self.func = func self.amount = amount d = OpenContainer(client, destination).deferred d.addCallbacks(self._opened, self._failure)
def __init__(self, client, container, counts=(), func=None): Engine.__init__(self, client) self._source = client.world.backpack() if self._source is None: self._failure(NoSuchEntity('No backpack')) return self._destination = container self._counts = [] if isinstance(counts, dict): self._counts.extend(counts.iteritems()) else: self._counts.extend(counts) self._func = func d = OpenContainer(client, self._source).deferred d.addCallbacks(self._source_opened, self._failure)
def deferred_amount_in(client, parent, func): d = defer.Deferred() e = OpenContainer(client, parent).deferred def count(): total = 0 for i in client.world.items_in(parent): if func(i): total += i.amount d.callback(total) def callback(result): reactor.callLater(1, count) return result def errback(fail): d.errback(fail) return fail e.addCallbacks(callback, errback) return d
def __init__(self, client, container): Engine.__init__(self, client) self.container = container d = OpenContainer(client, container).deferred d.addCallbacks(self._opened, self._failure)