示例#1
0
 def delete(self):
     """
     Deletes channel while also cleaning up channelhandler
     """
     super(ChannelDB, self).delete()
     from src.comms.channelhandler import CHANNELHANDLER
     CHANNELHANDLER.update()
示例#2
0
文件: models.py 项目: beckd/evennia
 def delete(self):
     """
     Deletes channel while also cleaning up channelhandler
     """
     super(ChannelDB, self).delete()
     _GA(self, "attributes").clear()
     _GA(self, "aliases").clear()
     from src.comms.channelhandler import CHANNELHANDLER
     CHANNELHANDLER.update()
示例#3
0
 def del_channel(self, channelkey):
     """
     Delete channel matching channelkey.
     Also cleans up channelhandler.
     """
     channels = self.filter(db_key__iexact=channelkey)
     if not channels:
         # no aliases allowed for deletion.
         return False
     for channel in channels:
         channel.delete()
     from src.comms.channelhandler import CHANNELHANDLER
     CHANNELHANDLER.update()
     return None
示例#4
0
    def func(self):
        "implement the function"

        if not self.args or not self.rhs:
            string = "Usage: @cboot[/quiet] <channel> = <player> [:reason]"
            self.msg(string)
            return

        channel = find_channel(self.caller, self.lhs)
        if not channel:
            return
        reason = ""
        if ":" in self.rhs:
            playername, reason = self.rhs.rsplit(":", 1)
            searchstring = playername.lstrip('*')
        else:
            searchstring = self.rhs.lstrip('*')
        player = self.caller.search(searchstring, player=True)
        if not player:
            return
        if reason:
            reason = " (reason: %s)" % reason
        if not channel.access(self.caller, "control"):
            string = "You don't control this channel."
            self.msg(string)
            return
        if not player.dbobj in channel.db_subscriptions.all():
            string = "Player %s is not connected to channel %s." % (
                player.key, channel.key)
            self.msg(string)
            return
        if not "quiet" in self.switches:
            string = "%s boots %s from channel.%s" % (self.caller, player.key,
                                                      reason)
            channel.msg(string)
        # find all player's nicks linked to this channel and delete them
        for nick in [
                nick for nick in player.character.nicks.get(
                    category="channel") or []
                if nick.db_real.lower() == channel.key
        ]:
            nick.delete()
        # disconnect player
        channel.disconnect(player)
        CHANNELHANDLER.update()
示例#5
0
    def func(self):
        "implement the function"

        if not self.args or not self.rhs:
            string = "Usage: @cboot[/quiet] <channel> = <player> [:reason]"
            self.msg(string)
            return

        channel = find_channel(self.caller, self.lhs)
        if not channel:
            return
        reason = ""
        if ":" in self.rhs:
            playername, reason = self.rhs.rsplit(":", 1)
            searchstring = playername.lstrip('*')
        else:
            searchstring = self.rhs.lstrip('*')
        player = self.caller.search(searchstring, player=True)
        if not player:
            return
        if reason:
            reason = " (reason: %s)" % reason
        if not channel.access(self.caller, "control"):
            string = "You don't control this channel."
            self.msg(string)
            return
        if not player.dbobj in channel.db_subscriptions.all():
            string = "Player %s is not connected to channel %s." % (player.key, channel.key)
            self.msg(string)
            return
        if not "quiet" in self.switches:
            string = "%s boots %s from channel.%s" % (self.caller, player.key, reason)
            channel.msg(string)
        # find all player's nicks linked to this channel and delete them
        for nick in [nick for nick in
                     player.character.nicks.get(category="channel") or []
                     if nick.db_real.lower() == channel.key]:
            nick.delete()
        # disconnect player
        channel.disconnect(player)
        CHANNELHANDLER.update()
示例#6
0
    def func(self):
        "Destroy objects cleanly."
        caller = self.caller

        if not self.args:
            self.msg("Usage: @cdestroy <channelname>")
            return
        channel = find_channel(caller, self.args)
        if not channel:
            self.msg("Could not find channel %s." % self.args)
            return
        if not channel.access(caller, 'control'):
            self.msg("You are not allowed to do that.")
            return
        channel_key = channel.key
        message = "%s is being destroyed. Make sure to change your aliases." % channel_key
        msgobj = create.create_message(caller, message, channel)
        channel.msg(msgobj)
        channel.delete()
        CHANNELHANDLER.update()
        self.msg("Channel '%s' was destroyed." % channel_key)
示例#7
0
    def func(self):
        "Destroy objects cleanly."
        caller = self.caller

        if not self.args:
            self.msg("Usage: @cdestroy <channelname>")
            return
        channel = find_channel(caller, self.args)
        if not channel:
            self.msg("Could not find channel %s." % self.args)
            return
        if not channel.access(caller, 'control'):
            self.msg("You are not allowed to do that.")
            return
        channel_key = channel.key
        message = "%s is being destroyed. Make sure to change your aliases." % channel_key
        msgobj = create.create_message(caller, message, channel)
        channel.msg(msgobj)
        channel.delete()
        CHANNELHANDLER.update()
        self.msg("Channel '%s' was destroyed." % channel_key)