def silent_give_item(self, connection, item): packet = ServerUpdate() packet.reset() action = PickupAction() action.entity_id = connection.entity_id action.item_data = item packet.pickups.append(action) connection.send_packet(packet)
def on_drop(self, event): if self.is_item_illegal(event.item): pack = ServerUpdate() pack.reset() action = PickupAction() action.entity_id = self.connection.entity_id action.item_data = event.item pack.pickups.append(action) self.connection.send_packet(pack) self.remove_cheater('illegal item dropped') return False
def __init__(self, config): self.config = config base = config.base # game-related self.update_packet = ServerUpdate() self.update_packet.reset() self.connections = set() self.players = MultikeyDict() self.chunk_items = collections.defaultdict(list) self.entities = {} self.entity_ids = IDPool(1) self.update_loop = LoopingCall(self.update) self.update_loop.start(1.0 / base.update_fps, False) # server-related self.git_rev = base.get('git_rev', None) self.passwords = {} for k, v in base.passwords.iteritems(): self.passwords[k.lower()] = v self.scripts = ScriptManager() for script in base.scripts: self.load_script(script) # time self.extra_elapsed_time = 0.0 self.start_time = reactor.seconds() self.set_clock('12:00') # start listening self.listen_tcp(base.port, self)