Fixed issue with @delplayer not working correctly.

This commit is contained in:
Kelketek 2013-12-23 12:59:06 -06:00
parent 932f215adf
commit 7b5128d0a9

View file

@ -282,7 +282,7 @@ class CmdDelPlayer(MuxCommand):
caller = caller.player caller = caller.player
if not args: if not args:
self.msg("Usage: @delplayer[/delobj] <player/user name or #id> [: reason]") self.msg("Usage: @delplayer <player/user name or #id> [: reason]")
return return
reason = "" reason = ""
@ -291,66 +291,36 @@ class CmdDelPlayer(MuxCommand):
# We use player_search since we want to be sure to find also players # We use player_search since we want to be sure to find also players
# that lack characters. # that lack characters.
players = caller.search_player(args, quiet=True) players = search.player_search(args)
if not players: if not players:
# try to find a user instead of a Player self.msg('Could not find a player by that name.')
try: return
user = User.objects.get(id=args)
except Exception:
try:
user = User.objects.get(username__iexact=args)
except Exception:
string = "No Player nor User found matching '%s'." % args
self.msg(string)
return
if user and not user.access(caller, 'delete'): if len(players) > 1:
string = "You don't have the permissions to delete this player." string = "There were multiple matches:"
self.msg(string) for player in players:
return string += "\n %s %s" % (player.id, player.key)
return
string = "" # one single match
name = user.username
user.delete() player = players.pop()
if user:
name = user.name if not player.access(caller, 'delete'):
user.delete() string = "You don't have the permissions to delete that player."
string = "Player %s was deleted." % name
else:
string += "The User %s was deleted. It had no Player associated with it." % name
self.msg(string) self.msg(string)
return return
elif utils.is_iter(players): uname = player.username
string = "There were multiple matches:" # boot the player then delete
for user in players: self.msg("Informing and disconnecting player ...")
string += "\n %s %s" % (user.id, user.key) string = "\nYour account '%s' is being *permanently* deleted.\n" % uname
return if reason:
else: string += " Reason given:\n '%s'" % reason
# one single match player.msg(string)
player.delete()
user = players self.msg("Player %s was successfully deleted." % uname)
user = user.user
if not user.access(caller, 'delete'):
string = "You don't have the permissions to delete that player."
self.msg(string)
return
uname = user.username
# boot the player then delete
self.msg("Informing and disconnecting player ...")
string = "\nYour account '%s' is being *permanently* deleted.\n" % uname
if reason:
string += " Reason given:\n '%s'" % reason
user.unpuppet_all()
for session in SESSIONS.sessions_from_player(user):
user.msg(string, sessid=session.sessid)
user.disconnect_session_from_player(session.sessid)
user.delete()
user.delete()
self.msg("Player %s was successfully deleted." % uname)
class CmdEmit(MuxCommand): class CmdEmit(MuxCommand):