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)
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)
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
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
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)
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.' )
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))
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))