def func(self): "Implementing the function" caller = self.caller args = self.args if not args: caller.msg("Usage: @boot[/switches] <player> [:reason]") return if ':' in args: args, reason = [a.strip() for a in args.split(':', 1)] else: args, reason = args, "" boot_list = [] if 'sid' in self.switches: # Boot a particular session id. sessions = SESSIONS.get_sessions(True) for sess in sessions: # Find the session with the matching session id. if sess.sessid == int(args): boot_list.append(sess) break else: # Boot by player object pobj = search.player_search(args) if not pobj: caller.msg("Player %s was not found." % args) return pobj = pobj[0] if not pobj.access(caller, 'boot'): string = "You don't have the permission to boot %s." % ( pobj.key, ) caller.msg(string) return # we have a bootable object with a connected user matches = SESSIONS.sessions_from_player(pobj) for match in matches: boot_list.append(match) if not boot_list: caller.msg( "No matching sessions found. The Player does not seem to be online." ) return # Carry out the booting of the sessions in the boot list. feedback = None if not 'quiet' in self.switches: feedback = "You have been disconnected by %s.\n" % caller.name if reason: feedback += "\nReason given: %s" % reason for session in boot_list: session.msg(feedback) session.player.disconnect_session_from_player(session)
def func(self): """Implementing the function""" caller = self.caller args = self.args if not args: caller.msg("Usage: @boot[/switches] <player> [:reason]") return if ':' in args: args, reason = [a.strip() for a in args.split(':', 1)] else: args, reason = args, "" boot_list = [] if 'sid' in self.switches: # Boot a particular session id. sessions = SESSIONS.get_sessions(True) for sess in sessions: # Find the session with the matching session id. if sess.sessid == int(args): boot_list.append(sess) break else: # Boot by player object pobj = search.player_search(args) if not pobj: caller.msg("Player %s was not found." % args) return pobj = pobj[0] if not pobj.access(caller, 'boot'): string = "You don't have the permission to boot %s." % (pobj.key, ) caller.msg(string) return # we have a bootable object with a connected user matches = SESSIONS.sessions_from_player(pobj) for match in matches: boot_list.append(match) if not boot_list: caller.msg("No matching sessions found. The Player does not seem to be online.") return # Carry out the booting of the sessions in the boot list. feedback = None if 'quiet' not in self.switches: feedback = "You have been disconnected by %s.\n" % caller.name if reason: feedback += "\nReason given: %s" % reason for session in boot_list: session.msg(feedback) session.player.disconnect_session_from_player(session)
def func(self): """Implements the command.""" caller = self.caller args = self.args if hasattr(caller, 'player'): caller = caller.player if not args: self.msg("Usage: @delplayer <player/user name or #id> [: reason]") return reason = "" if ':' in args: args, reason = [arg.strip() for arg in args.split(':', 1)] # We use player_search since we want to be sure to find also players # that lack characters. players = search.player_search(args) if not players: self.msg('Could not find a player by that name.') return if len(players) > 1: string = "There were multiple matches:\n" string += "\n".join(" %s %s" % (player.id, player.key) for player in players) self.msg(string) return # one single match player = players.pop() if not player.access(caller, 'delete'): string = "You don't have the permissions to delete that player." self.msg(string) return uname = player.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 player.msg(string) player.delete() self.msg("Player %s was successfully deleted." % uname)