Curse added: /shake id, /unshake id.
				
					
				
			Randomises word order in IC and OOC chat.
This commit is contained in:
		
							parent
							
								
									34d6f6fa54
								
							
						
					
					
						commit
						c8142f3f53
					
				@ -403,6 +403,8 @@ class AOProtocol(asyncio.Protocol):
 | 
			
		||||
            if pos not in ('def', 'pro', 'hld', 'hlp', 'jud', 'wit'):
 | 
			
		||||
                return
 | 
			
		||||
        msg = text[:256]
 | 
			
		||||
        if self.client.shaken:
 | 
			
		||||
            msg = self.client.shake_message(msg)
 | 
			
		||||
        if self.client.disemvowel:
 | 
			
		||||
            msg = self.client.disemvowel_message(msg)
 | 
			
		||||
        self.client.pos = pos
 | 
			
		||||
@ -463,6 +465,8 @@ class AOProtocol(asyncio.Protocol):
 | 
			
		||||
            except (ClientError, AreaError, ArgumentError, ServerError) as ex:
 | 
			
		||||
                self.client.send_host_message(ex)
 | 
			
		||||
        else:
 | 
			
		||||
            if self.client.shaken:
 | 
			
		||||
                args[1] = self.client.shake_message(args[1])
 | 
			
		||||
            if self.client.disemvowel:
 | 
			
		||||
                args[1] = self.client.disemvowel_message(args[1])
 | 
			
		||||
            self.client.area.send_command('CT', self.client.name, args[1])
 | 
			
		||||
 | 
			
		||||
@ -47,6 +47,7 @@ class ClientManager:
 | 
			
		||||
            self.is_cm = False
 | 
			
		||||
            self.evi_list = []
 | 
			
		||||
            self.disemvowel = False
 | 
			
		||||
            self.shaken = False
 | 
			
		||||
            self.muted_global = False
 | 
			
		||||
            self.muted_adverts = False
 | 
			
		||||
            self.is_muted = False
 | 
			
		||||
@ -334,6 +335,13 @@ class ClientManager:
 | 
			
		||||
        def disemvowel_message(self, message):
 | 
			
		||||
            message = re.sub("[aeiou]", "", message, flags=re.IGNORECASE)
 | 
			
		||||
            return re.sub(r"\s+", " ", message)
 | 
			
		||||
        
 | 
			
		||||
        def shake_message(self, message):
 | 
			
		||||
            import random
 | 
			
		||||
            parts = message.split()
 | 
			
		||||
            random.shuffle(parts)
 | 
			
		||||
            return ' '.join(parts)
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
    def __init__(self, server):
 | 
			
		||||
        self.clients = set()
 | 
			
		||||
 | 
			
		||||
@ -855,7 +855,7 @@ def ooc_cmd_undisemvowel(client, arg):
 | 
			
		||||
    try:
 | 
			
		||||
        targets = client.server.client_manager.get_targets(client, TargetType.ID, int(arg), False)
 | 
			
		||||
    except:
 | 
			
		||||
        raise ArgumentError('You must specify a target. Use /disemvowel <id>.')
 | 
			
		||||
        raise ArgumentError('You must specify a target. Use /undisemvowel <id>.')
 | 
			
		||||
    if targets:
 | 
			
		||||
        for c in targets:
 | 
			
		||||
            logger.log_server('Undisemvowelling {}.'.format(c.get_ip()), client)
 | 
			
		||||
@ -865,6 +865,42 @@ def ooc_cmd_undisemvowel(client, arg):
 | 
			
		||||
    else:
 | 
			
		||||
        client.send_host_message('No targets found.')
 | 
			
		||||
 | 
			
		||||
def ooc_cmd_shake(client, arg):
 | 
			
		||||
    if not client.is_mod:
 | 
			
		||||
        raise ClientError('You must be authorized to do that.')
 | 
			
		||||
    elif len(arg) == 0:
 | 
			
		||||
        raise ArgumentError('You must specify a target.')
 | 
			
		||||
    try:
 | 
			
		||||
        targets = client.server.client_manager.get_targets(client, TargetType.ID, int(arg), False)
 | 
			
		||||
    except:
 | 
			
		||||
        raise ArgumentError('You must specify a target. Use /shake <id>.')
 | 
			
		||||
    if targets:
 | 
			
		||||
        for c in targets:
 | 
			
		||||
            logger.log_server('Shaking {}.'.format(c.get_ip()), client)
 | 
			
		||||
            logger.log_mod('Shaking {}.'.format(c.get_ip()), client)
 | 
			
		||||
            c.shaken = True
 | 
			
		||||
        client.send_host_message('Shook {} existing client(s).'.format(len(targets)))
 | 
			
		||||
    else:
 | 
			
		||||
        client.send_host_message('No targets found.')
 | 
			
		||||
 | 
			
		||||
def ooc_cmd_unshake(client, arg):
 | 
			
		||||
    if not client.is_mod:
 | 
			
		||||
        raise ClientError('You must be authorized to do that.')
 | 
			
		||||
    elif len(arg) == 0:
 | 
			
		||||
        raise ArgumentError('You must specify a target.')
 | 
			
		||||
    try:
 | 
			
		||||
        targets = client.server.client_manager.get_targets(client, TargetType.ID, int(arg), False)
 | 
			
		||||
    except:
 | 
			
		||||
        raise ArgumentError('You must specify a target. Use /unshake <id>.')
 | 
			
		||||
    if targets:
 | 
			
		||||
        for c in targets:
 | 
			
		||||
            logger.log_server('Unshaking {}.'.format(c.get_ip()), client)
 | 
			
		||||
            logger.log_mod('Unshaking {}.'.format(c.get_ip()), client)
 | 
			
		||||
            c.shaken = False
 | 
			
		||||
        client.send_host_message('Unshook {} existing client(s).'.format(len(targets)))
 | 
			
		||||
    else:
 | 
			
		||||
        client.send_host_message('No targets found.')
 | 
			
		||||
 | 
			
		||||
def ooc_cmd_blockdj(client, arg):
 | 
			
		||||
    if not client.is_mod:
 | 
			
		||||
        raise ClientError('You must be authorized to do that.')
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user