diff --git a/discord/state.py b/discord/state.py index f38361601..dc12d54ed 100644 --- a/discord/state.py +++ b/discord/state.py @@ -133,7 +133,7 @@ class ConnectionState: try: return self._users[user_id] except KeyError: - self._users[user_id] = user = User(state=weakref.proxy(self), data=data) + self._users[user_id] = user = User(state=self, data=data) return user def get_user(self, id): @@ -144,7 +144,7 @@ class ConnectionState: try: return self._emojis[emoji_id] except KeyError: - self._emojis[emoji_id] = emoji = Emoji(guild=guild, state=weakref.proxy(self), data=data) + self._emojis[emoji_id] = emoji = Emoji(guild=guild, state=self, data=data) return emoji @property @@ -180,7 +180,7 @@ class ConnectionState: self._private_channels_by_user[channel.recipient.id] = channel def add_dm_channel(self, data): - channel = DMChannel(me=self.user, state=weakref.proxy(self), data=data) + channel = DMChannel(me=self.user, state=self, data=data) self._add_private_channel(channel) return channel @@ -193,7 +193,7 @@ class ConnectionState: return utils.find(lambda m: m.id == msg_id, self.messages) def _add_guild_from_data(self, guild): - guild = Guild(data=guild, state=weakref.proxy(self)) + guild = Guild(data=guild, state=self) self._add_guild(guild) return guild @@ -252,7 +252,7 @@ class ConnectionState: def parse_ready(self, data): self._ready_state = ReadyState(launch=asyncio.Event(), guilds=[]) - self.user = ClientUser(state=weakref.proxy(self), data=data['user']) + self.user = ClientUser(state=self, data=data['user']) guilds = self._ready_state.guilds for guild_data in data['guilds']: @@ -266,11 +266,11 @@ class ConnectionState: except KeyError: continue else: - self.user._relationships[r_id] = Relationship(state=weakref.proxy(self), data=relationship) + self.user._relationships[r_id] = Relationship(state=self, data=relationship) for pm in data.get('private_channels', []): factory, _ = _channel_factory(pm['type']) - self._add_private_channel(factory(me=self.user, data=pm, state=weakref.proxy(self))) + self._add_private_channel(factory(me=self.user, data=pm, state=self)) self.dispatch('connect') compat.create_task(self._delay_ready(), loop=self.loop) @@ -280,7 +280,7 @@ class ConnectionState: def parse_message_create(self, data): channel = self.get_channel(int(data['channel_id'])) - message = Message(channel=channel, data=data, state=weakref.proxy(self)) + message = Message(channel=channel, data=data, state=self) self.dispatch('message', message) self.messages.append(message) @@ -355,7 +355,7 @@ class ConnectionState: # skip these useless cases. return - member = Member(guild=guild, data=data, state=weakref.proxy(self)) + member = Member(guild=guild, data=data, state=self) guild._add_member(member) old_member = member._copy() @@ -363,7 +363,7 @@ class ConnectionState: self.dispatch('member_update', old_member, member) def parse_user_update(self, data): - self.user = ClientUser(state=weakref.proxy(self), data=data) + self.user = ClientUser(state=self, data=data) def parse_channel_delete(self, data): guild = self._get_guild(utils._get_as_snowflake(data, 'guild_id')) @@ -407,13 +407,13 @@ class ConnectionState: factory, ch_type = _channel_factory(data['type']) channel = None if ch_type in (ChannelType.group, ChannelType.private): - channel = factory(me=self.user, data=data, state=weakref.proxy(self)) + channel = factory(me=self.user, data=data, state=self) self._add_private_channel(channel) else: guild_id = utils._get_as_snowflake(data, 'guild_id') guild = self._get_guild(guild_id) if guild is not None: - channel = factory(guild=guild, state=weakref.proxy(self), data=data) + channel = factory(guild=guild, state=self, data=data) guild._add_channel(channel) else: log.warning('CHANNEL_CREATE referencing an unknown guild ID: %s. Discarding.', guild_id) @@ -448,7 +448,7 @@ class ConnectionState: log.warning('GUILD_MEMBER_ADD referencing an unknown guild ID: %s. Discarding.', data['guild_id']) return - member = Member(guild=guild, data=data, state=weakref.proxy(self)) + member = Member(guild=guild, data=data, state=self) guild._add_member(member) guild._member_count += 1 self.dispatch('member_join', member) @@ -621,7 +621,7 @@ class ConnectionState: return role_data = data['role'] - role = Role(guild=guild, data=role_data, state=weakref.proxy(self)) + role = Role(guild=guild, data=role_data, state=self) guild._add_role(role) self.dispatch('guild_role_create', role) @@ -656,7 +656,7 @@ class ConnectionState: guild = self._get_guild(int(data['guild_id'])) members = data.get('members', []) for member in members: - m = Member(guild=guild, data=member, state=weakref.proxy(self)) + m = Member(guild=guild, data=member, state=self) existing = guild.get_member(m.id) if existing is None or existing.joined_at is None: guild._add_member(m) @@ -701,7 +701,7 @@ class ConnectionState: def parse_relationship_add(self, data): key = int(data['id']) old = self.user.get_relationship(key) - new = Relationship(state=weakref.proxy(self), data=data) + new = Relationship(state=self, data=data) self.user._relationships[key] = new if old is not None: self.dispatch('relationship_update', old, new) @@ -752,7 +752,7 @@ class ConnectionState: return channel def create_message(self, *, channel, data): - return Message(state=weakref.proxy(self), channel=channel, data=data) + return Message(state=self, channel=channel, data=data) def receive_chunk(self, guild_id): future = compat.create_future(self.loop) @@ -821,7 +821,7 @@ class AutoShardedConnectionState(ConnectionState): if not hasattr(self, '_ready_state'): self._ready_state = ReadyState(launch=asyncio.Event(), guilds=[]) - self.user = ClientUser(state=weakref.proxy(self), data=data['user']) + self.user = ClientUser(state=self, data=data['user']) guilds = self._ready_state.guilds for guild_data in data['guilds']: @@ -831,7 +831,7 @@ class AutoShardedConnectionState(ConnectionState): for pm in data.get('private_channels', []): factory, _ = _channel_factory(pm['type']) - self._add_private_channel(factory(me=self.user, data=pm, state=weakref.proxy(self))) + self._add_private_channel(factory(me=self.user, data=pm, state=self)) self.dispatch('connect') if self._ready_task is None: