diff --git a/evennia/commands/default/player.py b/evennia/commands/default/player.py index e1b3ae31f2..ebe7a35d7c 100644 --- a/evennia/commands/default/player.py +++ b/evennia/commands/default/player.py @@ -216,12 +216,15 @@ class CmdIC(COMMAND_DEFAULT_CLASS): return if not new_character: # search for a matching character - new_character = search.object_search(self.args) - if new_character: - new_character = new_character[0] - else: + new_character = [char for char in search.object_search(self.args) if char.access(player, "puppet")] + if not new_character: self.msg("That is not a valid character choice.") return + if len(new_character) > 1: + self.msg("Multiple characters with the same name:\n %s" % ", ".join(new_character)) + return + else: + new_character = new_character[0] try: player.puppet_object(session, new_character) player.db._last_puppet = new_character diff --git a/evennia/players/players.py b/evennia/players/players.py index 24c21abfc4..63d99c1bf6 100644 --- a/evennia/players/players.py +++ b/evennia/players/players.py @@ -815,11 +815,9 @@ class DefaultPlayer(with_metaclass(TypeclassBase, PlayerDB)): if target and not is_iter(target): # single target - just show it return target.return_appearance(self) - elif not target: - return "|rNo such character.|n" else: # list of targets - make list to disconnect from db - characters = list(target) + characters = list(target) if target else [] sessions = self.sessions.all() is_su = self.is_superuser