|
44 | 44 | use Discord\Voice\Region; |
45 | 45 | use Discord\Voice\VoiceClient; |
46 | 46 | use Discord\WebSockets\Event; |
| 47 | +use Discord\WebSockets\Events\Data\GuildMembersChunkData; |
47 | 48 | use Discord\WebSockets\Events\GuildCreate; |
48 | 49 | use Discord\WebSockets\Payload; |
49 | 50 | use Discord\WebSockets\Handlers; |
@@ -908,29 +909,32 @@ protected function handleDispatch(object $data): void |
908 | 909 | /** |
909 | 910 | * Handles `GUILD_MEMBERS_CHUNK` packets. |
910 | 911 | * |
911 | | - * @param object $data Packet data. |
| 912 | + * @param Payload $data Packet data. |
912 | 913 | * @throws \Exception |
913 | 914 | */ |
914 | 915 | protected function handleGuildMembersChunk(Payload $data): void |
915 | 916 | { |
916 | | - if (! $guild = $this->guilds->get('id', $data->d->guild_id)) { |
917 | | - $this->logger->warning('not chunking member, Guild is not cached.', ['guild_id' => $data->d->guild_id]); |
| 917 | + /** @var GuildMembersChunkData $d */ |
| 918 | + $d = $data->d; |
| 919 | + |
| 920 | + if (! $guild = $this->guilds->get('id', $d->guild_id)) { |
| 921 | + $this->logger->warning('not chunking member, Guild is not cached.', ['guild_id' => $d->guild_id]); |
918 | 922 |
|
919 | 923 | return; |
920 | 924 | } |
921 | 925 |
|
922 | | - $this->logger->debug('received guild member chunk', ['guild_id' => $data->d->guild_id, 'guild_name' => $guild->name, 'chunk_count' => count($data->d->members), 'member_collection' => $guild->members->count(), 'member_count' => $guild->member_count, 'progress' => [$data->d->chunk_index + 1, $data->d->chunk_count]]); |
| 926 | + $this->logger->debug('received guild member chunk', ['guild_id' => $d->guild_id, 'guild_name' => $guild->name, 'chunk_count' => count($d->members), 'member_collection' => $guild->members->count(), 'member_count' => $guild->member_count, 'progress' => [$d->chunk_index + 1, $d->chunk_count]]); |
923 | 927 |
|
924 | 928 | $count = $skipped = 0; |
925 | 929 | $await = []; |
926 | | - foreach ($data->d->members as $member) { |
| 930 | + foreach ($d->members as $member) { |
927 | 931 | $userId = $member->user->id; |
928 | 932 | if ($guild->members->offsetExists($userId)) { |
929 | 933 | continue; |
930 | 934 | } |
931 | 935 |
|
932 | 936 | $member = (array) $member; |
933 | | - $member['guild_id'] = $data->d->guild_id; |
| 937 | + $member['guild_id'] = $d->guild_id; |
934 | 938 | $member['status'] = 'offline'; |
935 | 939 | $await[] = $guild->members->cache->set($userId, $this->factory->part(Member::class, $member, true)); |
936 | 940 |
|
|
0 commit comments