From 87bb638270fc7a5741a030a3987a3e5bb3eeb0dd Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Mon, 19 Apr 2021 04:18:40 +0000 Subject: [PATCH] Add !help command --- README.md | 10 +++++++--- game.py | 23 ++++++++++++++++++++--- print_help.py | 16 ++++++++-------- 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 3e732cc..5db7dc6 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,11 @@ Use prefix (in this case, "1") to call to attention before giving command. (EX. ### Public Commands -These can be ran by anyone, all bots will reply +These can be ran by anyone, all bots will reply. + +`!help` - prints this whole help message to console + +`!help [command]` - replies in-game explaining command `!ping` - replies with "pong" @@ -86,7 +90,7 @@ These can be ran by anyone, all bots will reply ### Bot-specific Commands -These will only run for the bot they are addressed to +These will only run for the bot they are addressed to. `1respawn` - respawns the bot if it's dead @@ -132,7 +136,7 @@ These will only run for the bot they are addressed to ### Authorized Commands -These dangerous commands can only be ran by the bot owner +These dangerous commands can only be ran by the bot owner. `1print [expression]` - replies with Python eval(expression) diff --git a/game.py b/game.py index ebe2520..cb92b70 100644 --- a/game.py +++ b/game.py @@ -25,6 +25,7 @@ from protocol.packets import ( ) from protocol.types import Slot +import print_help import utils importlib.reload(utils) @@ -492,7 +493,23 @@ class Game: try: ## ### Public Commands - ## These can be ran by anyone, all bots will reply + ## These can be ran by anyone, all bots will reply. + + ## !help - prints this whole help message to console + ## !help [command] - replies in-game explaining command + if command == 'help': + if data: + for line in print_help.HELP_LINES: + if line[1:].startswith(data) or line[1:].startswith(data[1:]): + reply = 'command ' + line + break + else: # for + reply = 'command not found' + else: + for line in print_help.HELP_LINES: + print(line) + reply = 'check console' + ## !ping - replies with "pong" if command == 'ping': @@ -653,7 +670,7 @@ class Game: ################# Specific commands ########################## ## ### Bot-specific Commands - ## These will only run for the bot they are addressed to + ## These will only run for the bot they are addressed to. if for_me: pass @@ -897,7 +914,7 @@ class Game: ################# Authorized commands ########################## ## ### Authorized Commands - ## These dangerous commands can only be ran by the bot owner + ## These dangerous commands can only be ran by the bot owner. if authed: diff --git a/print_help.py b/print_help.py index 33eeedf..6a1c2f7 100644 --- a/print_help.py +++ b/print_help.py @@ -6,11 +6,11 @@ with open('game.py', 'r') as f: HELP_LINES.append(line.strip()[3:]) -for line in HELP_LINES: - if ' - ' in line: - command, doc = line.split(' - ') - print('`{}` - {}\n'.format(command, doc)) - else: - print(line) - print() - +if __name__ == '__main__': + for line in HELP_LINES: + if ' - ' in line: + command, doc = line.split(' - ') + print('`{}` - {}\n'.format(command, doc)) + else: + print(line) + print()