fnbr
Version:
A library to interact with Epic Games' Fortnite HTTP and XMPP services
164 lines (163 loc) • 7.56 kB
TypeScript
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;