Example #1
0
    def run(self):

        self.running = True

        try:
            while self.running:
                pass

        except Exception as e:
            log.server("server.start:: exception: {}".format(e))

        self.stop()
Example #2
0
    def __init__(self):
        init(sys.argv[1])
        super().__init__(("", description.get_port()), GameRequestHandler)

        self.running = False

        self.wm = None
        self.messages = SharedList()
        self.players = SharedList()

        log.server("server.GameServer.__init__:: description: {}".format(
            description.to_string()))
Example #3
0
    def handle(self):

        try:
            message = pickle.loads(self.request[0])
            socket = self.request[1]
            #log.server("server.GameRequestHandler:: recv: {}'"
            #    .format(message))

            self.server.messages.push(message)
            response = pickle.dumps(self.server.reply_message(message))

            socket.sendto(response, self.client_address)
            #log.server("server.GameRequestHandler:: send: {}"
            #    .format(response))

        except Exception as e:
            log.server(
                "server.GameRequestHandler.handler:: exception: {}".format(
                    traceback.format_exc()))
Example #4
0
    def reply_message(self, message):

        verb = message.get_verb()

        try:
            handler = eval("self.reply_{}".format(verb))

        except Exception as e:
            log.server(
                "server.GameServer.reply_message:: exception: {}".format(e))
            return Message("error", "Unhandled message class")

        try:
            return handler(message)

        except Exception as e:
            log.server(
                "server.GameServer.reply_message:: exception: {}".format(
                    traceback.format_exc()))
            return Message("error", "Message handling error")
Example #5
0
    def reply_players(self, message):
        players = message.get_data()

        self.players.acquire()
        registered = self.players.length()

        if len(players) <= description.max_players - registered:

            idss = range(registered, registered + len(players))
            for idc, ids in enumerate(idss):
                players[idc].set_ids(ids)
                players[idc].set_pos(self.wm.get_starts()[ids])

            log.server("server.GameServer.reply_players:: players: {}".format(
                players))

            [self.players.push(p) for p in players]

        else:
            players = []

        self.players.release()

        return Message("players", players)
Example #6
0
 def load_map(self):
     self.wm = WorldMap(description.get_mapname())
     log.server("server.GameServer.load_map:: map: {}".format(
         self.wm.get_name()))
Example #7
0
 def reply_world_map(self, message):
     log.server("server.GameServer.reply_world_map:: map: {}".format(
         self.wm))
     return Message("world_map", self.wm)
Example #8
0
import server, log


def main():

    game_server = server.GameServer()
    game_server.start()


if __name__ == "__main__":

    try:
        main()

    except Exception as e:
        log.server("server.main:: exception: {}".format(e))