From c95f257500642b5eb4ed42d727f2e9abd46d7700 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Wed, 13 Aug 2014 19:58:30 +0100 Subject: [PATCH] Add basic !jump command. --- dropbot/bot.py | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/dropbot/bot.py b/dropbot/bot.py index 64bb948..fe9918f 100644 --- a/dropbot/bot.py +++ b/dropbot/bot.py @@ -375,4 +375,41 @@ class DropBot(ClientXMPP): self.map.get_system_name(dest), round(ly, 2), '\n'.join(res) - ) \ No newline at end of file + ) + + def cmd_jump(self, args, msg): + if len(args) != 5: + return '!jump ' + source, dest, ship_class, jdc, jfc = args + + source = self._system_picker(source) + if isinstance(source, basestring): + return source + dest = self._system_picker(dest) + if isinstance(dest, basestring): + return dest + + if ship_class not in base_range.keys(): + return 'Unknown class {}, please use one of: {}'.format( + ship_class, + ', '.join(base_range.keys()) + ) + + try: + int(jdc) + int(jfc) + except ValueError: + return 'Invalid JDC/JFC level' + + route = self.map.route_jump(source, dest, ship_class=ship_class) + if len(route): + return '{} to {}, {} jumps ({}ly / {} isotopes):\n{}'.format( + self.map.get_system_name(source), + self.map.get_system_name(dest), + len(route), + round(self.map.route_jump_distance(route), 2), + round(self.map.route_jump_isotopes(route, int(jfc), ship_class=ship_class), 0), + ' -> '.join([self.map.get_system_name(x) for x in route]) + ) + else: + return 'No route found' \ No newline at end of file