From eb6667ff347402052bc4d59e2aa06f047fb91c8b Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me> Date: Sun, 21 Feb 2021 15:54:31 -0500 Subject: [PATCH] Fixed bug in help and alook where exceptions could be thrown. --- lib/aethyr/core/actions/command_action.rb | 10 ++++++++++ lib/aethyr/core/help/help_library.rb | 3 +++ lib/aethyr/core/input_handlers/admin/admin_handler.rb | 7 ------- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/aethyr/core/actions/command_action.rb b/lib/aethyr/core/actions/command_action.rb index c037006..671e022 100644 --- a/lib/aethyr/core/actions/command_action.rb +++ b/lib/aethyr/core/actions/command_action.rb @@ -7,6 +7,16 @@ module Aethyr super(**data) @player = actor end + + #Looks in player's inventory and room for name. + #Then checks at global level for GOID. + def find_object(name, event) + if event[:player].nil? + return $manager.find(name, nil) || $manager.get_object(name) + else + return $manager.find(name, event[:player]) || $manager.find(name, event[:player].container) || $manager.get_object(name) + end + end end end end diff --git a/lib/aethyr/core/help/help_library.rb b/lib/aethyr/core/help/help_library.rb index e09f115..747b32d 100644 --- a/lib/aethyr/core/help/help_library.rb +++ b/lib/aethyr/core/help/help_library.rb @@ -30,6 +30,9 @@ module Aethyr def render_topic(topic) redirected_from = "" entry = lookup_topic(topic) + + return "Topic #{topic} has no entry, try help with no arguments" if entry.nil? + while entry.redirect? do redirected_from = "→ redirected from #{topic}\n\n" if redirected_from.empty? entry = lookup_topic(entry.redirect) diff --git a/lib/aethyr/core/input_handlers/admin/admin_handler.rb b/lib/aethyr/core/input_handlers/admin/admin_handler.rb index e1a4f34..fd09973 100644 --- a/lib/aethyr/core/input_handlers/admin/admin_handler.rb +++ b/lib/aethyr/core/input_handlers/admin/admin_handler.rb @@ -24,13 +24,6 @@ module Aethyr output << "(#{output.length} lines shown.)" end - - #Looks in player's inventory and room for name. - #Then checks at global level for GOID. - def find_object(name, event) - $manager.find(name, event[:player]) || $manager.find(name, event[:player].container) || $manager.get_object(name) - end - end end end -- GitLab