diff --git a/packages/client/src/types/messages/message.ts b/packages/client/src/types/messages/message.ts index 9daee4ff..7e51e993 100644 --- a/packages/client/src/types/messages/message.ts +++ b/packages/client/src/types/messages/message.ts @@ -229,8 +229,15 @@ export class Message { if (this._sender === undefined) { const from = this.raw.fromId if (!from) { - // anon admin, return the chat - this._sender = this.chat + if (this.raw.peerId._ === 'peerUser') { + this._sender = new User( + this.client, + this._users[this.raw.peerId.userId] + ) + } else { + // anon admin, return the chat + this._sender = this.chat + } } else switch (from._) { case 'peerChannel': // forwarded channel post diff --git a/packages/dispatcher/src/filters.ts b/packages/dispatcher/src/filters.ts index 06784582..197b191a 100644 --- a/packages/dispatcher/src/filters.ts +++ b/packages/dispatcher/src/filters.ts @@ -300,7 +300,10 @@ export namespace filters { */ export const chat = ( type: T - ): UpdateFilter }> => (msg) => + ): UpdateFilter + sender: T extends 'private' | 'bot' | 'group' ? User : User | Chat + }> => (msg) => msg.chat.type === type /**