djs-selfbot-v13 3.7.1 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -820,6 +820,134 @@ class Application extends Base {
820
820
  toJSON() {
821
821
  return super.toJSON({ createdTimestamp: true });
822
822
  }
823
+
824
+ /**
825
+ * Edits this application
826
+ * @param {ApplicationEditData} data The data to edit the application with
827
+ * @returns {Promise<Application>}
828
+ * @example
829
+ * // Edit the application
830
+ * application.edit({
831
+ * name: 'My New Bot Name',
832
+ * description: 'A cool bot description',
833
+ * tags: ['utility', 'moderation']
834
+ * })
835
+ * .then(app => console.log(`Updated: ${app.name}`))
836
+ * .catch(console.error);
837
+ */
838
+ edit(data) {
839
+ return this.client.developers.edit(this.id, data);
840
+ }
841
+
842
+ /**
843
+ * Sets the avatar of this application
844
+ * @param {?(BufferResolvable|Base64Resolvable)} avatar The new avatar
845
+ * @returns {Promise<Application>}
846
+ * @example
847
+ * // Set application avatar
848
+ * application.setAvatar('./avatar.png')
849
+ * .then(app => console.log(`Updated avatar for ${app.name}`))
850
+ * .catch(console.error);
851
+ */
852
+ setAvatar(avatar) {
853
+ return this.client.developers.setAvatar(this.id, avatar);
854
+ }
855
+
856
+ /**
857
+ * Sets the name of this application
858
+ * @param {string} name The new name
859
+ * @returns {Promise<Application>}
860
+ * @example
861
+ * // Set application name
862
+ * application.setName('My Cool Bot')
863
+ * .then(app => console.log(`Renamed to ${app.name}`))
864
+ * .catch(console.error);
865
+ */
866
+ setName(name) {
867
+ return this.client.developers.setName(this.id, name);
868
+ }
869
+
870
+ /**
871
+ * Sets the description of this application
872
+ * @param {string} description The new description
873
+ * @returns {Promise<Application>}
874
+ * @example
875
+ * // Set application description
876
+ * application.setDescription('A helpful utility bot')
877
+ * .then(app => console.log(`Updated description for ${app.name}`))
878
+ * .catch(console.error);
879
+ */
880
+ setDescription(description) {
881
+ return this.client.developers.setDescription(this.id, description);
882
+ }
883
+
884
+ /**
885
+ * Sets the tags of this application (max 5 tags)
886
+ * @param {string[]} tags Array of tags (max 5)
887
+ * @returns {Promise<Application>}
888
+ * @example
889
+ * // Set application tags
890
+ * application.setTags(['utility', 'moderation', 'fun'])
891
+ * .then(app => console.log(`Updated tags for ${app.name}`))
892
+ * .catch(console.error);
893
+ */
894
+ setTags(tags) {
895
+ return this.client.developers.setTags(this.id, tags);
896
+ }
897
+
898
+ /**
899
+ * Adds a tag to this application
900
+ * @param {string} tag The tag to add
901
+ * @returns {Promise<Application>}
902
+ * @example
903
+ * // Add a tag to application
904
+ * application.addTag('music')
905
+ * .then(app => console.log(`Added tag to ${app.name}`))
906
+ * .catch(console.error);
907
+ */
908
+ addTag(tag) {
909
+ return this.client.developers.addTag(this.id, tag);
910
+ }
911
+
912
+ /**
913
+ * Removes a tag from this application
914
+ * @param {string} tag The tag to remove
915
+ * @returns {Promise<Application>}
916
+ * @example
917
+ * // Remove a tag from application
918
+ * application.delTag('music')
919
+ * .then(app => console.log(`Removed tag from ${app.name}`))
920
+ * .catch(console.error);
921
+ */
922
+ delTag(tag) {
923
+ return this.client.developers.delTag(this.id, tag);
924
+ }
925
+
926
+ /**
927
+ * Enables intents for this bot application
928
+ * @returns {Promise<Application>}
929
+ * @example
930
+ * // Enable intents for bot
931
+ * application.enableIntents()
932
+ * .then(app => console.log(`Enabled intents for ${app.name}`))
933
+ * .catch(console.error);
934
+ */
935
+ enableIntents() {
936
+ return this.client.developers.enableIntents(this.id);
937
+ }
938
+
939
+ /**
940
+ * Disables intents for this bot application
941
+ * @returns {Promise<Application>}
942
+ * @example
943
+ * // Disable intents for bot
944
+ * application.disableIntents()
945
+ * .then(app => console.log(`Disabled intents for ${app.name}`))
946
+ * .catch(console.error);
947
+ */
948
+ disableIntents() {
949
+ return this.client.developers.disableIntents(this.id);
950
+ }
823
951
  }
824
952
 
825
953
  module.exports = Application;
@@ -385,6 +385,32 @@ class TextBasedChannel {
385
385
  return Util.createPromiseInteraction(this.client, nonce, 5000);
386
386
  }
387
387
 
388
+ /**
389
+ * Search messages in this channel by user
390
+ * @param {number} limit Number of messages to return
391
+ * @param {UserResolvable} user User whose messages to search for
392
+ * @returns {Promise<Object[]|false>} Array of messages or false if failed
393
+ * @example
394
+ * // Search for messages from a user
395
+ * channel.search(10, user)
396
+ * .then(messages => console.log(`Found ${messages.length} messages`))
397
+ * .catch(console.error);
398
+ */
399
+ async search(limit, user) {
400
+ const userId = this.client.users.resolveId(user);
401
+ if (!userId) throw new Error('INVALID_TYPE', 'user', 'UserResolvable');
402
+
403
+ const res = await fetch(`https://ptb.discord.com/api/v9/${this.guild ? `guilds/${this.guild.id}` : `channels/${this.id}`}/messages/search?author_id=${userId}&channel_id=${this.id}&sort_by=timestamp&sort_order=desc&offset=0`, {
404
+ method: 'GET',
405
+ headers: { authorization: this.client.token }
406
+ });
407
+
408
+ if (!res.ok) return false;
409
+
410
+ const data = await res.json();
411
+ return data.messages.splice(0, limit);
412
+ }
413
+
388
414
  /**
389
415
  * Sends a typing indicator in the channel.
390
416
  * @returns {Promise<{ message_send_cooldown_ms: number, thread_create_cooldown_ms: number }|void>} Resolves upon the typing status being sent
@@ -511,6 +537,7 @@ class TextBasedChannel {
511
537
  'searchInteractionUserApps',
512
538
  'lastMessage',
513
539
  'lastPinAt',
540
+ 'search',
514
541
  'sendTyping',
515
542
  'createMessageCollector',
516
543
  'awaitMessages',
@@ -216,7 +216,9 @@ export class RichPresence extends Activity {
216
216
  public setType(type?: ActivityType): this;
217
217
  public setApplicationId(id?: Snowflake): this;
218
218
  public setDetails(details?: string): this;
219
+ public setDetailsURL(url?: string): this;
219
220
  public setState(state?: string): this;
221
+ public setStateURL(url?: string): this;
220
222
  public setParty(party?: { max: number; current: number; id?: string }): this;
221
223
  public setStartTimestamp(timestamp: Date | number | null): this;
222
224
  public setEndTimestamp(timestamp: Date | number | null): this;
@@ -424,6 +426,15 @@ export abstract class Application extends Base {
424
426
  public iconURL(options?: StaticImageURLOptions): string | null;
425
427
  public toJSON(): unknown;
426
428
  public toString(): string | null;
429
+ public edit(data: ApplicationEditData): Promise<Application>;
430
+ public setAvatar(avatar: BufferResolvable | Base64Resolvable | null): Promise<Application>;
431
+ public setName(name: string): Promise<Application>;
432
+ public setDescription(description: string): Promise<Application>;
433
+ public setTags(tags: string[]): Promise<Application>;
434
+ public addTag(tag: string): Promise<Application>;
435
+ public delTag(tag: string): Promise<Application>;
436
+ public enableIntents(): Promise<Application>;
437
+ public disableIntents(): Promise<Application>;
427
438
  }
428
439
 
429
440
  export class ApplicationCommand<PermissionsFetchType = {}> extends Base {
@@ -860,6 +871,8 @@ export class Client<Ready extends boolean = boolean> extends BaseClient {
860
871
  public sessions: SessionManager;
861
872
  public presences: PresenceManager;
862
873
  public billing: BillingManager;
874
+ public developers: DeveloperManager;
875
+ public quests: QuestManager;
863
876
  public settings: ClientUserSettingManager;
864
877
  public readonly sessionId: If<Ready, string, undefined>;
865
878
  public destroy(): void;
@@ -980,7 +993,13 @@ export class ClientUser extends User {
980
993
  public stopRinging(channel: ChannelResolvable): Promise<void>;
981
994
  public fetchBurstCredit(): Promise<number>;
982
995
  public setPronouns(pronouns?: string | null): Promise<this>;
996
+ public setClan(guild?: GuildIDResolve): Promise<this>;
997
+ public deleteClan(): Promise<this>;
983
998
  public setGlobalName(globalName?: string | null): Promise<this>;
999
+ public addWidget(type: WidgetType, gameId: string, comment?: string | null, tags?: string[]): Promise<any>;
1000
+ public delWidget(type: WidgetType, gameId?: string): Promise<any>;
1001
+ public widgetsList(): Promise<WidgetsResponse>;
1002
+ public setNameStyle(fontName: FontName | number, effectName: EffectName | number, color1: number | string, color2?: number | string | null): Promise<this>;
984
1003
  }
985
1004
 
986
1005
  export class Options extends null {
@@ -1584,6 +1603,7 @@ export class Guild extends AnonymousGuild {
1584
1603
  public safetyAlertsChannelId: Snowflake | null;
1585
1604
  public scheduledEvents: GuildScheduledEventManager;
1586
1605
  public settings: GuildSettingManager;
1606
+ public profile: GuildProfile;
1587
1607
  public readonly shard: WebSocketShard;
1588
1608
  public shardId: number;
1589
1609
  public stageInstances: StageInstanceManager;
@@ -1662,6 +1682,8 @@ export class Guild extends AnonymousGuild {
1662
1682
  ): Promise<this>;
1663
1683
  public topEmojis(): Promise<Collection<number, GuildEmoji>>;
1664
1684
  public setVanityCode(code?: string): Promise<this>;
1685
+ public mute(options?: GuildMuteOptions): Promise<any>;
1686
+ public unmute(): Promise<any>;
1665
1687
  }
1666
1688
 
1667
1689
  export class GuildAuditLogs<T extends GuildAuditLogsResolvable = 'ALL'> {
@@ -2637,6 +2659,45 @@ export class BillingManager extends BaseManager {
2637
2659
  public fetchCurrentSubscription(): Promise<Collection<Snowflake, object>>;
2638
2660
  }
2639
2661
 
2662
+ export class DeveloperManager extends BaseManager {
2663
+ constructor(client: Client);
2664
+ public get(withTeamApplications?: boolean): Promise<Collection<Snowflake, Application>>;
2665
+ public list(withTeamApplications?: boolean): Promise<Collection<Snowflake, Application>>;
2666
+ public fetch(applicationId: Snowflake): Promise<Application>;
2667
+ public edit(applicationId: Snowflake, data: ApplicationEditData): Promise<Application>;
2668
+ public setAvatar(applicationId: Snowflake, avatar: BufferResolvable | Base64Resolvable | null): Promise<Application>;
2669
+ public setName(applicationId: Snowflake, name: string): Promise<Application>;
2670
+ public setDescription(applicationId: Snowflake, description: string): Promise<Application>;
2671
+ public setTags(applicationId: Snowflake, tags: string[]): Promise<Application>;
2672
+ public addTag(applicationId: Snowflake, tag: string): Promise<Application>;
2673
+ public delTag(applicationId: Snowflake, tag: string): Promise<Application>;
2674
+ public enableIntents(applicationId: Snowflake): Promise<Application>;
2675
+ public disableIntents(applicationId: Snowflake): Promise<Application>;
2676
+ }
2677
+
2678
+ export class QuestManager extends BaseManager {
2679
+ constructor(client: Client);
2680
+ public cache: Collection<string, Quest>;
2681
+ public get(): Promise<QuestData>;
2682
+ public orbs(): Promise<OrbsData>;
2683
+ public getQuest(id: string): Quest | undefined;
2684
+ public list(): Quest[];
2685
+ public getExpired(date?: Date): Quest[];
2686
+ public getCompleted(): Quest[];
2687
+ public getClaimable(): Quest[];
2688
+ public filterQuestsValid(): Quest[];
2689
+ public hasQuest(id: string): boolean;
2690
+ public getApplicationData(ids: string[]): Promise<ApplicationData[]>;
2691
+ public acceptQuest(questId: string, options?: QuestEnrollOptions): Promise<Quest | undefined>;
2692
+ public videoProgress(questId: string, timestamp: number): Promise<any>;
2693
+ public heartbeat(questId: string, applicationId: string, terminal?: boolean): Promise<any>;
2694
+ public doingQuest(quest: Quest): Promise<void>;
2695
+ public autoCompleteAll(): Promise<void>;
2696
+ public readonly size: number;
2697
+ public clear(): void;
2698
+ public [Symbol.iterator](): IterableIterator<Quest>;
2699
+ }
2700
+
2640
2701
  export class Session extends Base {
2641
2702
  constructor(client: Client);
2642
2703
  public id?: string;
@@ -2653,6 +2714,32 @@ export interface SessionClientInfo {
2653
2714
  os?: string;
2654
2715
  }
2655
2716
 
2717
+ export class GuildProfile extends Base {
2718
+ private constructor(guild: Guild);
2719
+ public guild: Guild;
2720
+ public bio: string | null;
2721
+ public pronouns: string | null;
2722
+ public accentColor: number | null;
2723
+ public banner: string | null;
2724
+ public themeColors: number[] | null;
2725
+ public popoutAnimationParticleType: number | null;
2726
+ public emojiId: Snowflake | null;
2727
+ public guildId: Snowflake;
2728
+ public badge: string | null;
2729
+ public tag: string | null;
2730
+ public bannerURL(options?: StaticImageURLOptions): string | null;
2731
+ public edit(data: GuildProfileEditData): Promise<GuildProfile>;
2732
+ public setBio(bio: string | null): Promise<GuildProfile>;
2733
+ public setPronouns(pronouns: string | null): Promise<GuildProfile>;
2734
+ public setAccentColor(color: ColorResolvable | null): Promise<GuildProfile>;
2735
+ public setBanner(banner: BufferResolvable | Base64Resolvable | null): Promise<GuildProfile>;
2736
+ public setThemeColors(colors: ColorResolvable[] | null): Promise<GuildProfile>;
2737
+ public setPopoutAnimationParticleType(type: number | null): Promise<GuildProfile>;
2738
+ public setEmojiId(emojiId: Snowflake | null): Promise<GuildProfile>;
2739
+ public setBadge(badge: string | null): Promise<GuildProfile>;
2740
+ public setTag(tag: string | null): Promise<GuildProfile>;
2741
+ }
2742
+
2656
2743
  export class GuildBoost extends Base {
2657
2744
  constructor(client: Client, data: object);
2658
2745
  public id: Snowflake;
@@ -3739,6 +3826,117 @@ export interface Collectibles {
3739
3826
  nameplate: NameplateData | null;
3740
3827
  }
3741
3828
 
3829
+ export type WidgetType = 'favorite_games' | 'current_games' | 'played_games' | 'want_to_play_games';
3830
+
3831
+ export interface WidgetGameData {
3832
+ game_id: string;
3833
+ comment?: string | null;
3834
+ tags?: string[];
3835
+ }
3836
+
3837
+ export interface WidgetData {
3838
+ id: string;
3839
+ data: {
3840
+ type: WidgetType;
3841
+ games: WidgetGameData[];
3842
+ };
3843
+ }
3844
+
3845
+ export interface WidgetsResponse {
3846
+ widgets: WidgetData[];
3847
+ }
3848
+
3849
+ export interface QuestEnrollOptions {
3850
+ location?: number;
3851
+ isTargeted?: boolean;
3852
+ metadataRaw?: any;
3853
+ }
3854
+
3855
+ export interface QuestTaskConfig {
3856
+ tasks?: {
3857
+ WATCH_VIDEO?: { target: number };
3858
+ WATCH_VIDEO_ON_MOBILE?: { target: number };
3859
+ PLAY_ON_DESKTOP?: { target: number };
3860
+ STREAM_ON_DESKTOP?: { target: number };
3861
+ PLAY_ACTIVITY?: { target: number };
3862
+ };
3863
+ }
3864
+
3865
+ export interface QuestUserStatus {
3866
+ enrolled_at?: string;
3867
+ completed_at?: string;
3868
+ claimed_at?: string;
3869
+ progress?: {
3870
+ WATCH_VIDEO?: { value: number };
3871
+ WATCH_VIDEO_ON_MOBILE?: { value: number };
3872
+ PLAY_ON_DESKTOP?: { value: number };
3873
+ STREAM_ON_DESKTOP?: { value: number };
3874
+ PLAY_ACTIVITY?: { value: number };
3875
+ };
3876
+ }
3877
+
3878
+ export interface QuestConfig {
3879
+ expires_at?: string;
3880
+ messages?: {
3881
+ quest_name?: string;
3882
+ };
3883
+ application?: {
3884
+ id: string;
3885
+ name: string;
3886
+ };
3887
+ task_config: QuestTaskConfig;
3888
+ task_config_v2?: QuestTaskConfig;
3889
+ }
3890
+
3891
+ export interface QuestRawData {
3892
+ id: string;
3893
+ config: QuestConfig;
3894
+ user_status?: QuestUserStatus;
3895
+ }
3896
+
3897
+ export class Quest {
3898
+ constructor(data: QuestRawData);
3899
+ public id: string;
3900
+ public config: QuestConfig;
3901
+ public userStatus?: QuestUserStatus;
3902
+ public isExpired(date?: Date): boolean;
3903
+ public isCompleted(): boolean;
3904
+ public hasClaimedRewards(): boolean;
3905
+ public isEnrolledQuest(): boolean;
3906
+ public updateUserStatus(status: Partial<QuestUserStatus>): void;
3907
+ }
3908
+
3909
+ export interface QuestData {
3910
+ quests?: QuestRawData[];
3911
+ }
3912
+
3913
+ export interface OrbsData {
3914
+ balance?: number;
3915
+ }
3916
+
3917
+ export interface ApplicationData {
3918
+ id: string;
3919
+ name: string;
3920
+ icon: string;
3921
+ description: string;
3922
+ executables: {
3923
+ os: string;
3924
+ name: string;
3925
+ is_launcher: boolean;
3926
+ }[];
3927
+ }
3928
+
3929
+ export type FontName = 'Sans' | 'Tempo' | 'Sakura' | 'JellyBean' | 'Modern' | 'Medieval' | '8Bit' | 'Vampire';
3930
+
3931
+ export type EffectName = 'Solid' | 'Gradient' | 'Neon' | 'Toon' | 'Pop';
3932
+
3933
+ export interface GuildMuteOptions {
3934
+ muted?: boolean;
3935
+ suppressRoles?: boolean;
3936
+ suppressEveryone?: boolean;
3937
+ muteScheduledEvents?: boolean;
3938
+ }
3939
+
3742
3940
  export class User extends PartialTextBasedChannel(Base) {
3743
3941
  protected constructor(client: Client, data: RawUserData);
3744
3942
  private _equals(user: APIUser): boolean;
@@ -6045,6 +6243,17 @@ export interface ClientUserEditData {
6045
6243
  bio?: string;
6046
6244
  }
6047
6245
 
6246
+ export interface ApplicationEditData {
6247
+ name?: string;
6248
+ description?: string;
6249
+ icon?: BufferResolvable | Base64Resolvable | null;
6250
+ tags?: string[];
6251
+ interactionsEndpointUrl?: string | null;
6252
+ roleConnectionsVerificationUrl?: string | null;
6253
+ termsOfServiceUrl?: string | null;
6254
+ privacyPolicyUrl?: string | null;
6255
+ }
6256
+
6048
6257
  export interface CloseEvent {
6049
6258
  wasClean: boolean;
6050
6259
  code: number;
@@ -6927,6 +7136,18 @@ export interface GuildMemberEditData {
6927
7136
  bio?: string | null;
6928
7137
  }
6929
7138
 
7139
+ export interface GuildProfileEditData {
7140
+ bio?: string | null;
7141
+ pronouns?: string | null;
7142
+ accentColor?: ColorResolvable | null;
7143
+ banner?: BufferResolvable | Base64Resolvable | null;
7144
+ themeColors?: ColorResolvable[] | null;
7145
+ popoutAnimationParticleType?: number | null;
7146
+ emojiId?: Snowflake | null;
7147
+ badge?: string | null;
7148
+ tag?: string | null;
7149
+ }
7150
+
6930
7151
  export type GuildMemberFlagsString =
6931
7152
  | 'DID_REJOIN'
6932
7153
  | 'COMPLETED_ONBOARDING'