From 15d8dde8a183fc3a9feacb598df380edfb4c5833 Mon Sep 17 00:00:00 2001 From: Olaf Gladis Date: Thu, 27 Nov 2014 19:47:10 +0100 Subject: [PATCH 1/3] a newly registered player has now always 0 points --- bomber/engine.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bomber/engine.py b/bomber/engine.py index 6c199aa..c77794e 100644 --- a/bomber/engine.py +++ b/bomber/engine.py @@ -541,8 +541,9 @@ def player_register(self, client, username): def player_unregister(self, position): old_player = None - for old_player in self.players: - if old_player.id == position: + for player in self.players: + if player.id == position: + old_player = player break np = [p for p in self.players if p.id != position] if len(self.players) > len(np): From 49abaf8830d3ebdb6ee73ae55caa79acba6585c8 Mon Sep 17 00:00:00 2001 From: Olaf Gladis Date: Sat, 29 Nov 2014 15:33:36 +0100 Subject: [PATCH 2/3] password enabled --- bomber/engine.py | 11 +++++++---- bomber/network.py | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bomber/engine.py b/bomber/engine.py index c77794e..de3d8cb 100644 --- a/bomber/engine.py +++ b/bomber/engine.py @@ -230,7 +230,7 @@ def __init__(self, position, client, name="Hans", color=None, password="", id=No "7": (0x80, 0, 0x80), # purple "8": (255, 255, 0), # yellow }[color] - self.password = hashpassword(password) + self.password = password self.speed = 100. self.bombamount = 10 self.explosion_radius = 10 @@ -514,7 +514,7 @@ def key_down(self, key, code): elif code.lower() == "b": self.players[0].do_bomb() - def player_register(self, client, username): + def player_register(self, client, username, password="", **kw): try: if username in self.users: position = self.users[username] @@ -524,7 +524,7 @@ def player_register(self, client, username): except StopIteration as e: return False - old_player = self.player_unregister(position) + old_player = self.player_unregister(position, password) player = Player( position=self.spawnpoints[position], client=client, @@ -532,6 +532,7 @@ def player_register(self, client, username): id=position, map=self, name=username, + password=password, ) if old_player: player.points = old_player.points @@ -539,12 +540,14 @@ def player_register(self, client, username): self.on_update_player(player) return position - def player_unregister(self, position): + def player_unregister(self, position, password): old_player = None for player in self.players: if player.id == position: old_player = player break + if old_player: + assert old_player.password == password np = [p for p in self.players if p.id != position] if len(self.players) > len(np): self.players = np diff --git a/bomber/network.py b/bomber/network.py index f5632da..77a21e7 100644 --- a/bomber/network.py +++ b/bomber/network.py @@ -18,7 +18,8 @@ def inform(self, msg_type, args): def handle_msg(self, msg): if self.state == "pending" and msg["type"] == "connect": - self.position = self.level.player_register(self, msg["username"]) + # print(repr(msg)) + self.position = self.level.player_register(self, **msg) self.state = "connected" else: self.on_message(msg) From b6ab54971b68f7eff5af7f40995217c32ec539d6 Mon Sep 17 00:00:00 2001 From: Olaf Gladis Date: Fri, 30 Jan 2015 18:07:01 +0100 Subject: [PATCH 3/3] Update README.md --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 6f62261..5b5f337 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,13 @@ pip3 install https://github.com/hwmrocker/pygameui/archive/master.zip pip3 install docopt msgpack-python ``` +### Arch users should install at least + +``` +sudo pacman -S hgsvn +sudo pacman -S python-pip +``` + Via vagrant -----------