From a7af4efb9ecf7fa7119775921d76c6e249506f6f Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 12 Aug 2014 18:37:34 +0100 Subject: [PATCH] Allow passing of ship class for the !range command. --- dropbot/bot.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/dropbot/bot.py b/dropbot/bot.py index 93fcb3b..c31285d 100644 --- a/dropbot/bot.py +++ b/dropbot/bot.py @@ -7,7 +7,7 @@ from humanize import intcomma import pkgutil from json import loads as base_loads from random import choice -from dropbot.map import Map +from dropbot.map import Map, base_range market_systems = [ @@ -241,20 +241,31 @@ class DropBot(ClientXMPP): return '\n'.join(results) def cmd_range(self, args, msg): - if len(args) != 1: - return '!range ' + if len(args) == 0 or len(args) > 2: + return '!range ' + system = args[0] + if len(args) == 2: + ship_class = args[1].lower() + else: + ship_class = 'blackops' + + if ship_class not in base_range.keys(): + return 'Unknown class {}, please use one of: {}'.format( + ship_class, + ', '.join(base_range.keys()) + ) system_id = self.map.get_system_id(system) if not system_id: return 'Unknown system %s' % system res = {} - systems = self.map.neighbors_jump(system_id, ship_class='blackops') + systems = self.map.neighbors_jump(system_id, ship_class=ship_class) for sys, range in systems: if sys['region'] in res: res[sys['region']] += 1 else: res[sys['region']] = 1 - return '{} systems in JDC5 Blops range of {}:\n'.format(len(systems), self.map.get_system_name(system_id)) + '\n'.join(['{} - {}'.format(x, y) for x, y in res.items()]) \ No newline at end of file + return '{} systems in JDC5 {} range of {}:\n'.format(len(systems), ship_class, self.map.get_system_name(system_id)) + '\n'.join(['{} - {}'.format(x, y) for x, y in res.items()])