UNPKG

fnbr

Version:

A library to interact with Epic Games' Fortnite HTTP and XMPP services

164 lines (163 loc) 7.56 kB
import { Collection } from '@discordjs/collection'; import ClientPartyMeta from './ClientPartyMeta'; import Party from './Party'; import PartyChat from './PartyChat'; import SentPartyInvitation from './SentPartyInvitation'; import type PartyMemberConfirmation from './PartyMemberConfirmation'; import type ClientPartyMember from './ClientPartyMember'; import type Client from '../../Client'; import type { Island, PartyData, PartyPrivacy, PartySchema } from '../../../resources/structs'; /** * Represents a party that the client is a member of */ declare class ClientParty extends Party { /** * The party patch queue */ private patchQueue; /** * The party text chat */ chat: PartyChat; /** * The party's meta */ meta: ClientPartyMeta; /** * The hidden member ids */ hiddenMemberIds: Set<string>; /** * The pending member confirmations */ pendingMemberConfirmations: Collection<string, PartyMemberConfirmation>; /** * @param client The main client * @param data The party's data */ constructor(client: Client, data: PartyData | Party); /** * Returns the client's party member */ get me(): ClientPartyMember; /** * Whether the party is private */ get isPrivate(): boolean; /** * Leaves this party * @param createNew Whether a new party should be created * @throws {EpicgamesAPIError} */ leave(createNew?: boolean): Promise<void>; /** * Sends a party patch to Epicgames' servers * @param updated The updated schema * @param deleted The deleted schema keys * @throws {PartyPermissionError} You're not the leader of this party * @throws {EpicgamesAPIError} */ sendPatch(updated: PartySchema, deleted?: (keyof PartySchema & string)[]): Promise<void>; /** * Kicks a member from this party * @param member The member that should be kicked * @throws {PartyPermissionError} The client is not the leader of the party * @throws {PartyMemberNotFoundError} The party member wasn't found * @throws {EpicgamesAPIError} */ kick(member: string): Promise<void>; /** * Sends a party invitation to a friend * @param friend The friend that will receive the invitation * @throws {FriendNotFoundError} The user is not friends with the client * @throws {PartyAlreadyJoinedError} The user is already a member of this party * @throws {PartyMaxSizeReachedError} The party reached its max size * @throws {EpicgamesAPIError} */ invite(friend: string): Promise<SentPartyInvitation>; /** * Refreshes the member positions of this party * @throws {PartyPermissionError} The client is not the leader of the party * @throws {EpicgamesAPIError} */ refreshSquadAssignments(): Promise<void>; /** * Sends a message to the party chat * @param content The message that will be sent */ sendMessage(content: string): Promise<import("./PartyMessage").default>; /** * Ban a member from this party chat * @param member The member that should be banned * @deprecated This feature has been deprecated since epic moved chatting away from xmpp */ chatBan(member: string): Promise<void>; /** * Updates this party's privacy settings * @param privacy The updated party privacy * @param sendPatch Whether the updated privacy should be sent to epic's servers * @throws {PartyPermissionError} The client is not the leader of the party * @throws {EpicgamesAPIError} */ setPrivacy(privacy: PartyPrivacy, sendPatch?: boolean): Promise<{ updated: PartySchema; deleted: ("Default:ActivityName_s" | "Default:ActivityType_s" | "Default:AllowJoinInProgress_b" | "Default:AthenaPrivateMatch_b" | "Default:AthenaSquadFill_b" | "Default:CampaignInfo_j" | "Default:CreativeDiscoverySurfaceRevisions_j" | "Default:CreativePortalCountdownStartTime_s" | "Default:CurrentRegionId_s" | "Default:CustomMatchKey_s" | "Default:FortCommonMatchmakingData_j" | "Default:FortMatchmakingMemberData_j" | "Default:GameSessionKey_s" | "Default:LFGTime_s" | "Default:MatchmakingInfoString_s" | "Default:PartyIsJoinedInProgress_b" | "Default:PartyMatchmakingInfo_j" | "Default:PartyState_s" | "Default:PlatformSessions_j" | "Default:PlaylistData_j" | "Default:PrimaryGameSessionId_s" | "Default:PrivacySettings_j" | "Default:SquadInformation_j" | "Default:RegionId_s" | "Default:SelectedIsland_j" | "Default:TileStates_j" | "Default:ZoneInstanceId_s" | "urn:epic:cfg:accepting-members_b" | "urn:epic:cfg:build-id_s" | "urn:epic:cfg:can-join_b" | "urn:epic:cfg:chat-enabled_b" | "urn:epic:cfg:invite-perm_s" | "urn:epic:cfg:join-request-action_s" | "urn:epic:cfg:party-type-id_s" | "urn:epic:cfg:presence-perm_s" | "VoiceChat:implementation_s" | "urn:epic:cfg:not-accepting-members" | "urn:epic:cfg:not-accepting-members-reason_i")[]; }>; /** * Sets this party's custom matchmaking key * @param key The custom matchmaking key * @throws {PartyPermissionError} The client is not the leader of the party * @throws {EpicgamesAPIError} */ setCustomMatchmakingKey(key?: string): Promise<void>; /** * Promotes a party member * @param member The member that should be promoted * @throws {PartyPermissionError} The client is not the leader of the party * @throws {PartyMemberNotFoundError} The party member wasn't found * @throws {EpicgamesAPIError} */ promote(member: string): Promise<void>; /** * Hides / Unhides a single party member * @param member The member that should be hidden * @param hide Whether the member should be hidden * @throws {PartyPermissionError} The client is not the leader of the party * @throws {PartyMemberNotFoundError} The party member wasn't found * @throws {EpicgamesAPIError} */ hideMember(member: string, hide?: boolean): Promise<void>; /** * Hides / Unhides all party members except for the client * @param hide Whether all members should be hidden * @throws {PartyPermissionError} The client is not the leader of the party * @throws {EpicgamesAPIError} */ hideMembers(hide?: boolean): Promise<void>; /** * Updates the party's playlist * @param mnemonic The new mnemonic (Playlist id or island code, for example: playlist_defaultduo or 1111-1111-1111) * @param regionId The new region id * @param version The new version * @param options Playlist options * @throws {PartyPermissionError} The client is not the leader of the party * @throws {EpicgamesAPIError} */ setPlaylist(mnemonic: string, regionId?: string, version?: number, options?: Omit<Island, 'linkId'>): Promise<void>; /** * Updates the squad fill status of this party * @param fill Whether fill is enable or not * @throws {PartyPermissionError} The client is not the leader of the party * @throws {EpicgamesAPIError} */ setSquadFill(fill?: boolean): Promise<void>; /** * Updates the party's max member count * @param maxSize The new party max size (1-16) * @throws {PartyPermissionError} The client is not the leader of the party * @throws {RangeError} The new max member size must be between 1 and 16 (inclusive) and more than the current member count * @throws {EpicgamesAPIError} */ setMaxSize(maxSize: number): Promise<void>; } export default ClientParty;