Пример #1
0
 def on_login(self, name):
     self.printable_name = name.encode('ascii', 'replace')
     print '%s (IP %s, ID %s) entered the game!' % (self.printable_name, 
         self.address[0], self.player_id)
     self.protocol.irc_say('* %s entered the game' % self.name)
     if self.user_types is None:
         self.user_types = AttributeSet()
         self.rights = AttributeSet()
         if self.protocol.everyone_is_admin:
             self.on_user_login('admin', False)
Пример #2
0
 def on_login(self, name: str) -> None:
     self.printable_name = escape_control_codes(name)
     if len(self.printable_name) > 15:
         self.kick(silent=True)
     log.info('{name} (IP {ip}, ID {pid}) entered the game!',
              name=self.printable_name,
              ip=self.address[0],
              pid=self.player_id)
     self.protocol.irc_say('* %s (IP %s, ID %s) entered the game!' %
                           (self.name, self.address[0], self.player_id))
     if self.user_types is None:
         self.user_types = AttributeSet()
         self.rights = AttributeSet()
         if self.protocol.everyone_is_admin:
             self.on_user_login('admin', False)
Пример #3
0
 def __init__(self, server, config):
     self.aliases = {}
     self.admin = True
     self.user_types = AttributeSet(['admin', 'irc'])
     self.rights = AttributeSet()
     for user_type in self.user_types:
         self.rights.update(commands.get_rights(user_type))
     self.server = server
     self.nickname = config.get('nickname',
                                'piqueserver%s' % random.randrange(0, 99))
     self.username = config.get('username', 'piqueserver')
     self.realname = config.get('realname', server.name)
     self.channel = config.get('channel', "#piqueserver.bots").lower()
     self.commandprefix = config.get('commandprefix', '.')
     self.chatprefix = config.get('chatprefix', '')
     self.password = config.get('password', '') or None
Пример #4
0
 def __init__(self, server, config):
     self.aliases = {}
     self.admin = True
     self.user_types = AttributeSet(['admin', 'moderator', 'guard', 'irc'])
     self.rights = AttributeSet()
     for user_type in self.user_types:
         self.rights.update(commands.rights.get(user_type, ()))
     self.server = server
     self.nickname = config.get('nickname', 
         'pyspades%s' % random.randrange(0, 99)).encode('ascii')
     self.username = config.get('username', 'pyspades').encode('ascii')
     self.realname = config.get('realname', server.name).encode('ascii')
     self.channel = config.get('channel', "#pyspades.bots").encode(
         'ascii').lower()
     self.commandprefix = config.get('commandprefix', '.').encode('ascii')
     self.chatprefix = config.get('chatprefix', '').encode('ascii')
     self.password = config.get('password', '').encode('ascii') or None
Пример #5
0
    def test_set(self):
        atset = AttributeSet(["test", "set", "name"])
        self.assertTrue(atset.test)
        self.assertTrue(atset.set)
        self.assertTrue(atset.name)
        self.assertFalse(atset.wrong)

        self.assertFalse(atset.new)
        atset.new = False
        self.assertFalse(atset.new)
        atset.new = True
        self.assertTrue(atset.new)
        atset.new = 0
        self.assertFalse(atset.new)
Пример #6
0
 def reload_passes(self):
     self.users = config.get('users', {})
     self.usergroups = config.get('usergroups', {})
     self.defaultcommands = config.get('defaultcommands', {})
     for password in self.passwords.get('admin', []):
         if not password:
             self.everyone_is_admin = True
     commands.rights.update(config.get('rights', {}))
     for connection in self.connections.values():
         connection.rights = AttributeSet()
         name = connection.username
         if name is None:
             continue
         if name in self.users.keys():
             connection.on_user_login(name, True)
         else:
             connection.username = None
             connection.send_chat(
                 'You have been logged out. Your account name has changed or been deleted.'
             )
Пример #7
0
 def privmsg(self, user, channel, msg):
     if (user in self.owners or user in self.admins or
         user in self.moderators or user in self.guards or user in self.voices):
         if user in self.owners:
             prefix = '~'
             user_type = 'admin'
         elif user in self.admins:
             prefix = '&'
             user_type = 'admin'
         elif user in self.moderators:
             prefix = '@'
             user_type = 'moderator'
         elif user in self.guards:
             prefix = '%'
             user_type = 'guard'
         else:
             prefix = '+'
             user_type = 'none'
         alias = self.factory.aliases.get(user, user)
         if msg.startswith(self.factory.commandprefix) and (
             user in self.owners or user in self.admins or
             user in self.moderators or user in self.guards):
             self.unaliased_name = user
             self.name = prefix + alias
             input = msg[len(self.factory.commandprefix):]
             rights = self.rights
             self.rights = AttributeSet()
             self.rights.update(commands.rights.get(user_type, ()))
             self.rights.update(commands.rights.get('irc', ()))
             result = commands.handle_input(self, input)
             self.rights = rights
             if result is not None:
                 self.send("%s: %s" % (user, result))
         elif msg.startswith(self.factory.chatprefix):
             max_len = MAX_IRC_CHAT_SIZE - len(self.protocol.server_prefix) - 1
             msg = msg[len(self.factory.chatprefix):].strip()
             message = ("<%s> %s" % (prefix + alias, msg))[:max_len]
             message = message.decode('cp1252')
             print message.encode('ascii', 'replace')
             self.factory.server.send_chat(encode(message))
Пример #8
0
 def __init__(self, protocol):
     self.protocol = protocol
     self.user_types = AttributeSet(['admin', 'console'])
     self.rights = AttributeSet()
     for user_type in self.user_types:
         self.rights.update(commands.get_rights(user_type))