Example #1
0
    def _do_execute(self, command):
        if self._room.race.is_before_race:
            return

        if len(command.args) == 1:
            lvl = level.from_str(command.args[0])
            racer = self._room.race.get_racer(command.author)
            if lvl != -1 and racer:
                success = yield from self._room.race.forfeit_racer(self._room.race.get_racer(command.author))
                racer.level = lvl
                if success:
                    asyncio.ensure_future(self._room.update_leaderboard())
                    yield from self._room.write('{} has forfeit the race.'.format(command.author.mention))
Example #2
0
    def parse_submission(self, daily_number, user, args):
        lv = -1
        time = -1
        ret_str = ''
        if len(args) > 0:
            if args[0] == 'death':
                if len(args) == 2:
                    lv = level.from_str(args[1])
                    if not lv == -1:
                        ret_str = 'died on {}'.format(args[1])
                else:
                    lv = 0
                    ret_str = 'died'
            else:
                time = racetime.from_str(args[0])
                if not time == -1:
                    lv = 18
                    ret_str = 'finished in {}'.format(racetime.to_str(time))

        if not lv == -1: # parse succeeded
            asyncio.ensure_future(self.submit_to_daily(daily_number, user, lv, time))
            return ret_str
        else:
            return ''