495 lines
12 KiB
TypeScript
495 lines
12 KiB
TypeScript
type readyjson={
|
|
op:0;
|
|
t:"READY";
|
|
s:number;
|
|
d:{
|
|
v:number;
|
|
user:mainuserjson;
|
|
user_settings:{
|
|
index: number,
|
|
afk_timeout: number,
|
|
allow_accessibility_detection: boolean,
|
|
animate_emoji: boolean,
|
|
animate_stickers: number,
|
|
contact_sync_enabled: boolean,
|
|
convert_emoticons: boolean,
|
|
custom_status: string,
|
|
default_guilds_restricted: boolean,
|
|
detect_platform_accounts: boolean,
|
|
developer_mode: boolean,
|
|
disable_games_tab: boolean,
|
|
enable_tts_command: boolean,
|
|
explicit_content_filter: 0,
|
|
friend_discovery_flags: 0,
|
|
friend_source_flags: {
|
|
all: boolean
|
|
},//might be missing things here
|
|
gateway_connected: boolean,
|
|
gif_auto_play: boolean,
|
|
guild_folders: [],//need an example of this not empty
|
|
guild_positions: [],//need an example of this not empty
|
|
inline_attachment_media: boolean,
|
|
inline_embed_media: boolean,
|
|
locale: string,
|
|
message_display_compact: boolean,
|
|
native_phone_integration_enabled: boolean,
|
|
render_embeds: boolean,
|
|
render_reactions: boolean,
|
|
restricted_guilds: [],//need an example of this not empty
|
|
show_current_game: boolean,
|
|
status: string,
|
|
stream_notifications_enabled: boolean,
|
|
theme: string,
|
|
timezone_offset: number,
|
|
view_nsfw_guilds: boolean
|
|
};
|
|
guilds:guildjson[];
|
|
relationships:{
|
|
id:string,
|
|
type:0|1|2|3|4,
|
|
nickname:string|null,
|
|
user:userjson
|
|
}[];
|
|
read_state:{
|
|
entries:{
|
|
id: string,
|
|
channel_id: string,
|
|
last_message_id: string,
|
|
last_pin_timestamp: string,
|
|
mention_count: number //in theory, the server doesn't actually send this as far as I'm aware
|
|
}[],
|
|
partial: boolean,
|
|
version: number
|
|
};
|
|
user_guild_settings:{
|
|
entries:{
|
|
channel_overrides: unknown[],//will have to find example
|
|
message_notifications: number,
|
|
flags: number,
|
|
hide_muted_channels: boolean,
|
|
mobile_push: boolean,
|
|
mute_config: null,
|
|
mute_scheduled_events: boolean,
|
|
muted: boolean,
|
|
notify_highlights: number,
|
|
suppress_everyone: boolean,
|
|
suppress_roles: boolean,
|
|
version: number,
|
|
guild_id: string
|
|
}[],
|
|
partial: boolean,
|
|
version: number
|
|
};
|
|
private_channels:dirrectjson[];
|
|
session_id:string;
|
|
country_code:string;
|
|
users:userjson[];
|
|
merged_members:memberjson[];
|
|
sessions:{
|
|
active: boolean,
|
|
activities: [],//will need to find example of this
|
|
client_info: {
|
|
version: number
|
|
},
|
|
session_id: string,
|
|
status: string
|
|
}[];
|
|
resume_gateway_url:string;
|
|
consents:{
|
|
personalization: {
|
|
consented: boolean
|
|
}
|
|
};
|
|
experiments: [],//not sure if I need to do this :P
|
|
guild_join_requests: [],//need to get examples
|
|
connected_accounts: [],//need to get examples
|
|
guild_experiments: [],//need to get examples
|
|
geo_ordered_rtc_regions: [],//need to get examples
|
|
api_code_version: number,
|
|
friend_suggestion_count: number,
|
|
analytics_token: string,
|
|
tutorial: boolean,
|
|
session_type: string,
|
|
auth_session_id_hash: string,
|
|
notification_settings: {
|
|
flags: number
|
|
}
|
|
}
|
|
}
|
|
type mainuserjson= userjson & {
|
|
flags: number,
|
|
mfa_enabled?: boolean,
|
|
email?: string,
|
|
phone?: string,
|
|
verified: boolean,
|
|
nsfw_allowed: boolean,
|
|
premium: boolean,
|
|
purchased_flags: number,
|
|
premium_usage_flags: number,
|
|
disabled: boolean
|
|
}
|
|
type userjson={
|
|
username: string,
|
|
discriminator: string,
|
|
id: string,
|
|
public_flags: number,
|
|
avatar: string|null,
|
|
accent_color: number,
|
|
banner?: string,
|
|
bio: string,
|
|
bot: boolean,
|
|
premium_since: string,
|
|
premium_type: number,
|
|
theme_colors: string,
|
|
pronouns: string,
|
|
badge_ids: string[],
|
|
}
|
|
type memberjson= {
|
|
index?:number,
|
|
id: string,
|
|
user: userjson|null,
|
|
guild_id: string,
|
|
guild: {
|
|
id: string
|
|
}|null,
|
|
nick?: string,
|
|
roles: string[],
|
|
joined_at: string,
|
|
premium_since: string,
|
|
deaf: boolean,
|
|
mute: boolean,
|
|
pending: boolean,
|
|
last_message_id?: boolean//What???
|
|
}
|
|
type emojijson={
|
|
name:string,
|
|
id?:string,
|
|
animated?:boolean
|
|
}
|
|
|
|
type guildjson={
|
|
application_command_counts: {[key:string]:number},
|
|
channels: channeljson[],
|
|
data_mode: string,
|
|
emojis: emojijson[],
|
|
guild_scheduled_events: [],
|
|
id: string,
|
|
large: boolean,
|
|
lazy: boolean,
|
|
member_count: number,
|
|
premium_subscription_count: number,
|
|
properties: {
|
|
name: string,
|
|
description: string,
|
|
icon: string,
|
|
splash: string,
|
|
banner: string,
|
|
features: string[],
|
|
preferred_locale: string,
|
|
owner_id: string,
|
|
application_id: string,
|
|
afk_channel_id: string,
|
|
afk_timeout: number,
|
|
system_channel_id: string,
|
|
verification_level: number,
|
|
explicit_content_filter: number,
|
|
default_message_notifications: number,
|
|
mfa_level: number,
|
|
vanity_url_code: number,
|
|
premium_tier: number,
|
|
premium_progress_bar_enabled: boolean,
|
|
system_channel_flags: number,
|
|
discovery_splash: string,
|
|
rules_channel_id: string,
|
|
public_updates_channel_id: string,
|
|
max_video_channel_users: number,
|
|
max_members: number,
|
|
nsfw_level: number,
|
|
hub_type: null,
|
|
home_header: null,
|
|
id: string,
|
|
latest_onboarding_question_id: string,
|
|
max_stage_video_channel_users: number,
|
|
nsfw: boolean,
|
|
safety_alerts_channel_id: string
|
|
},
|
|
roles: rolesjson[],
|
|
stage_instances: [],
|
|
stickers: [],
|
|
threads: [],
|
|
version: string,
|
|
guild_hashes: {},
|
|
joined_at: string
|
|
}
|
|
type channeljson={
|
|
id: string,
|
|
created_at: string,
|
|
name: string,
|
|
icon: string,
|
|
type: number,
|
|
last_message_id: string,
|
|
guild_id: string,
|
|
parent_id: string,
|
|
last_pin_timestamp: string,
|
|
default_auto_archive_duration: number,
|
|
permission_overwrites: {
|
|
id:string,
|
|
allow:string,
|
|
deny:string,
|
|
}[],
|
|
video_quality_mode: null,
|
|
nsfw: boolean,
|
|
topic: string,
|
|
retention_policy_id: string,
|
|
flags: number,
|
|
default_thread_rate_limit_per_user: number,
|
|
position: number
|
|
}
|
|
type rolesjson={
|
|
id: string,
|
|
guild_id: string,
|
|
color: number,
|
|
hoist: boolean,
|
|
managed: boolean,
|
|
mentionable: boolean,
|
|
name: string,
|
|
permissions: string,
|
|
position: number,
|
|
icon: string,
|
|
unicode_emoji: string,
|
|
flags: number
|
|
}
|
|
type dirrectjson={
|
|
id: string,
|
|
flags: number,
|
|
last_message_id: string,
|
|
type: number,
|
|
recipients: userjson[],
|
|
is_spam: boolean
|
|
}
|
|
type messagejson={
|
|
id: string,
|
|
channel_id: string,
|
|
guild_id: string,
|
|
author: userjson,
|
|
member?: memberjson,
|
|
content: string,
|
|
timestamp: string,
|
|
edited_timestamp: string,
|
|
tts: boolean,
|
|
mention_everyone: boolean,
|
|
mentions: [], //need examples to fix
|
|
mention_roles: [], //need examples to fix
|
|
attachments: filejson[],
|
|
embeds: embedjson[],
|
|
reactions: {
|
|
count:number,
|
|
emoji:emojijson,//very likely needs expanding
|
|
me:boolean,
|
|
}[],
|
|
nonce: string,
|
|
pinned: boolean,
|
|
type: number
|
|
}
|
|
type filejson={
|
|
id:string,
|
|
filename:string,
|
|
content_type:string,
|
|
width?:number,
|
|
height?:number,
|
|
proxy_url:string|undefined,
|
|
url:string,
|
|
size:number
|
|
};
|
|
type embedjson={
|
|
type:string|null,
|
|
color?:number,
|
|
author:{
|
|
icon_url?:string,
|
|
name?:string,
|
|
url?:string,
|
|
title?:string,
|
|
},
|
|
title?:string,
|
|
url?:string,
|
|
description?:string,
|
|
fields?:{
|
|
name:string,
|
|
value:string,
|
|
inline:boolean,
|
|
}[],
|
|
footer?:{
|
|
icon_url?:string,
|
|
text?:string,
|
|
thumbnail?:string,
|
|
},
|
|
timestamp?:string,
|
|
thumbnail:{
|
|
proxy_url:string,
|
|
url:string,
|
|
width:number,
|
|
height:number
|
|
},
|
|
provider:{
|
|
name:string,
|
|
},
|
|
video?:{
|
|
url: string,
|
|
width?: number|null,
|
|
height?: number|null,
|
|
proxy_url?: string
|
|
},
|
|
invite?:{
|
|
url:string,
|
|
code:string
|
|
}
|
|
}
|
|
type invitejson={
|
|
code: string,
|
|
temporary: boolean,
|
|
uses: number,
|
|
max_use: number,
|
|
max_age: number,
|
|
created_at: string,
|
|
expires_at: string,
|
|
guild_id: string,
|
|
channel_id: string,
|
|
inviter_id: string,
|
|
target_user_id: string|null,
|
|
target_user_type: string|null,
|
|
vanity_url: string|null,
|
|
flags: number,
|
|
guild: {
|
|
id: string,
|
|
afk_channel_id: string|null,
|
|
afk_timeout: number,
|
|
banner: string|null,
|
|
default_message_notifications: number,
|
|
description: string|null,
|
|
discovery_splash: string|null,
|
|
explicit_content_filter: number,
|
|
features: [],
|
|
primary_category_id: string|null,
|
|
icon: string|null,
|
|
large: boolean,
|
|
max_members: number,
|
|
max_presences: number,
|
|
max_video_channel_users: number,
|
|
member_count: number,
|
|
presence_count: number,
|
|
template_id: string|null,
|
|
mfa_level: number,
|
|
name: string,
|
|
owner_id: string,
|
|
preferred_locale: string,
|
|
premium_subscription_count: number,
|
|
premium_tier: number,
|
|
public_updates_channel_id: string|null,
|
|
rules_channel_id: string|null,
|
|
region: string|null,
|
|
splash: string|null,
|
|
system_channel_id: string|null,
|
|
system_channel_flags: number,
|
|
verification_level: number,
|
|
welcome_screen: {
|
|
enabled: boolean,
|
|
description: string,
|
|
welcome_channels: string[]
|
|
},
|
|
widget_channel_id: string|null,
|
|
widget_enabled: boolean,
|
|
nsfw_level: number,
|
|
nsfw: boolean,
|
|
parent: string|null,
|
|
premium_progress_bar_enabled: boolean
|
|
},
|
|
channel: channeljson,
|
|
inviter: userjson
|
|
}
|
|
type presencejson={
|
|
status: string,
|
|
since: number|null,
|
|
activities: any[],//bit more complicated but not now
|
|
afk: boolean,
|
|
user?:userjson,
|
|
}
|
|
type messageCreateJson={
|
|
op:0,
|
|
d:{
|
|
guild_id?:string,
|
|
channel_id?:string,
|
|
}&messagejson,
|
|
s:number,
|
|
t:"MESSAGE_CREATE"
|
|
}
|
|
type wsjson={
|
|
op:0,
|
|
d:any,
|
|
s:number,
|
|
t:"TYPING_START"|"USER_UPDATE"|"CHANNEL_UPDATE"|"CHANNEL_CREATE"|"CHANNEL_DELETE"|"GUILD_DELETE"|"GUILD_CREATE"|"MESSAGE_REACTION_REMOVE_ALL"|"MESSAGE_REACTION_REMOVE_EMOJI"
|
|
}|{
|
|
op:0,
|
|
t:"GUILD_MEMBERS_CHUNK",
|
|
d:memberChunk,
|
|
s:number
|
|
}|{
|
|
op:0,
|
|
d:{
|
|
id:string,
|
|
guild_id?:string,
|
|
channel_id:string
|
|
},
|
|
s:number,
|
|
t:"MESSAGE_DELETE"
|
|
}|{
|
|
op:0,
|
|
d:{
|
|
guild_id?:string,
|
|
channel_id:string
|
|
}&messagejson,
|
|
s:number,
|
|
t:"MESSAGE_UPDATE"
|
|
}|messageCreateJson|readyjson|{
|
|
op:11,
|
|
s:undefined,
|
|
d:{}
|
|
}|{
|
|
op:10,
|
|
s:undefined,
|
|
d:{
|
|
heartbeat_interval:number
|
|
}
|
|
}|{
|
|
op: 0,
|
|
t: "MESSAGE_REACTION_ADD",
|
|
d: {
|
|
user_id: string,
|
|
channel_id: string,
|
|
message_id: string,
|
|
guild_id?: string,
|
|
emoji: emojijson,
|
|
member?: memberjson
|
|
},
|
|
s: number
|
|
}|{
|
|
op: 0,
|
|
t: "MESSAGE_REACTION_REMOVE",
|
|
d: {
|
|
user_id: string,
|
|
channel_id: string,
|
|
message_id: string,
|
|
guild_id: string,
|
|
emoji: emojijson
|
|
},
|
|
"s": 3
|
|
}
|
|
type memberChunk={
|
|
guild_id: string,
|
|
nonce: string,
|
|
members: memberjson[],
|
|
presences: presencejson[],
|
|
chunk_index: number,
|
|
chunk_count: number,
|
|
not_found: string[]
|
|
}
|
|
export{readyjson,dirrectjson,channeljson,guildjson,rolesjson,userjson,memberjson,mainuserjson,messagejson,filejson,embedjson,emojijson,presencejson,wsjson,messageCreateJson,memberChunk,invitejson};
|