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))
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 ''