Hiven Swarm Events¶
Warning
This documentation page is not finished and due to Hiven being not stable yet, changes will and can occur
INIT_STATE
¶
Source Code ·
Docs · on_init()
The user logged successfully into the account, and the data will now be sent back to initialise the client-side.
Expected json-data
"op": 0,
"d": {
"user": {
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
},
"settings": {
"user_id": str,
"theme": None,
"room_overrides": {
// room preferences mapped to their id
"id": {
"notification_preference": int
}
},
"onboarded": unknown,
"enable_desktop_notifications": unknown
},
"relationships": {
"id": {
"user_id": str,
"user": {
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
},
"type": int,
"last_updated_at": str
},
},
"read_state": {
"id": {
"message_id": str,
"mention_count": int
},
},
"private_rooms": [{
"default_permission_override": None,
"description": str,
"emoji": object,
"house_id": None,
"id": str,
"last_message_id": str,
"name": str,
"owner_id": str,
"permission_overrides": None,
"position": None,
"recipients": [{
// User Object
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
} ... ],
"type": int
} ... ],
"presences": {
"id": {
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
}
},
"house_memberships": [{
"id": {
"user_id": str,
"user": {
// User Object
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
},
"roles": [],
"last_permission_update": str,
"joined_at": str,
"house_id": str,
}
} ... ],
"house_ids": [
// list of house_ids
"house_id",
...
]
}
}
USER_UPDATE
¶
Source Code ·
Docs · on_user_update()
Expected json-data
"op": 0,
"d": {
// User Object
"bio": str,
"bot": bool,
"email_verified": bool,
"header": str,
"icon": str,
"id": str,
"location": str,
"name": str,
"user_flags": int,
"username": str
}
PRESENCE_UPDATE
¶
Expected json-data
"op": 0,
"d": {
// User Object
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
}
RELATIONSHIP_UPDATE
¶
Source Code ·
Docs · on_relationship_update()
Expected json-data
"op": 0,
"d": {
"user": {
// User Object
"website": str,
"username": str,
"user_flags": int,
"name": str,
"location": str,
"id": str,
"icon": str,
"bio": str
},
"type": int,
"recipient_id": str,
"id": str
}
MESSAGE_CREATE
¶
Source Code ·
Docs · on_message_create()
Expected json-data
"op": 0,
"d": {
"timestamp": int,
"room_id": str,
"mentions": [{
// Mention object aka. user object
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str,
"bot": bool
} ... ],
"member": {
// Member Object
"user_id": str,
"user": {
// User Object
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
},
"roles": [{
// Role Object
"position": int,
"name": str,
"level": int,
"id": str,
"deny": bits,
"color": str,
"allow": bits
} ... ],
"last_permission_update": str,
"joined_at": str,
"house_id": str
},
"id": str,
"house_id": str,
"exploding_age": int,
"exploding": bool,
"device_id": str,
"content": str,
"bucket": int,
"author_id": str,
"author": {
// User Object
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
}
"attachment": {
// Attachment Object
"media_url": str,
"filename": str,
"dimensions": {
"width": int,
"type": str,
"height": int
}
}
}
MESSAGE_DELETE
¶
Source Code ·
Docs · on_message_delete()
Expected json-data
"op": 0,
"d": {
"room_id": str,
"message_id": str,
"house_id": str
}
MESSAGE_UPDATE
¶
Source Code ·
Docs · on_message_update()
Expected json-data
"op": 0,
"d": {
"type": int,
"timestamp": str,
"room_id": str,
"metadata": unknown,
"mentions": [{
// Mention object aka. user object
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
}, ...],
"id": str,
"house_id": str,
"exploding_age": int,
"exploding": bool,
"embed": {
// Embed Object
},
"edited_at": str,
"device_id": str,
"content": str,
"bucket": int,
"author_id": str,
"attachment": {
// Attachment Object
"media_url": str,
"filename": str,
"dimensions": {
"width": int,
"type": str,
"height": int
}
}
}
ROOM_CREATE
¶
Source Code ·
Docs · on_room_create()
Expected json-data
"op": 0,
"d": {
"house_id": str,
"id": str,
"name": str,
"position": int,
"type": int
}
ROOM_UPDATE
¶
Source Code ·
Docs · on_room_update)
Expected json-data
"op": 0,
"d": {
"house_id": str,
"id": str,
"name": str,
"position": int,
"type": int
}
ROOM_DELETE
¶
Source Code ·
Docs · on_room_update)
Expected json-data
"op": 0,
"d": {
"house_id": str,
"id": str
}
HOUSE_JOIN
¶
Source Code ·
Docs · on_house_join()
Expected json-data
"op": 0,
"d": {
"rooms": [{
// Room Object
"type": int,
"recipients": None,
"position": int,
"permission_overrides": bits,
"owner_id": str,
"name": str,
"last_message_id": str,
"id": str,
"house_id": str,
"emoji": object,
"description": str,
"default_permission_override": int
}, ...],
"roles": [{
// Role Object
"position": int,
"name": str,
"level": int,
"id": str,
"deny": bits,
"color": str,
"allow": bits
}],
"owner_id": str,
"name": str,
"members": [{
// Member Object
"user_id": str,
"user": {
// User Object
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
},
"roles": [
"position": int,
"name": str,
"level": int,
"id": str,
"deny": bits,
"color": str,
"allow": bits
],
"last_permission_update": str,
"joined_at": str,
"house_id": str
}],
"id": str,
"icon": str,
"entities": [{
// Entity Object
"type": int,
"resource_pointers": [{
// Resource Pointer
"resource_type": str,
"resource_id": str
} ... ],
"position": int,
"name": str,
"id": str
} ... ],
"default_permissions": int,
"banner": str
}
HOUSE_LEAVE
¶
Source Code ·
Docs · on_house_remove()
Expected json-data
"op": 0,
"d": {
"id": str,
"house_id": str
}
HOUSE_MEMBER_JOIN
¶
Source Code ·
Docs · on_house_member_join()
Expected json-data
"op": 0,
"d": {
"house_id": str,
"joined_at": timestamp,
"roles": [{
// Role Object
"position": int,
"name": str,
"level": int,
"id": str,
"deny": bits,
"color": str,
"allow": bits
} ... ],
"length": int
"user": {
"id": str,
"name": str,
"user_flags": str,
"username": str,
}
}
HOUSE_MEMBER_LEAVE
¶
Source Code ·
Docs · on_house_member_leave()
Expected json-data
"op": 0,
"d": {
house_id: str,
id: str,
joined_at: str,
last_permission_update: str,
presence: str,
roles: [{
// Role Object
"position": int,
"name": str,
"level": int,
"id": str,
"deny": bits,
"color": str,
"allow": bits
} ... ],
user: {
bot: bool,
id: str,
name: str,
user_flags: str,
username: str,
},
user_id: str
}
HOUSE_MEMBER_ENTER
¶
House member went online. Triggers in every house the client, and the user is in the event!
Expected json-data
"op": 0,
"d": {
"user_id": str,
"user": {
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"bot": bool,
},
"roles": [{
// Role Object
"position": int,
"name": str,
"level": int,
"id": str,
"deny": bits,
"color": str,
"allow": bits
} ... ],
"presence": str,
"last_permission_update": null or str,
"joined_at": str,
"id": str,
"house_id": str
}
HOUSE_MEMBER_EXIT
¶
Source Code ·
Docs · on_house_member_offline()
House user went offline. Triggers in every house the client, and the user is in the event
Expected json-data
"op": 0,
"d": {
"id": str,
"house_id": str
}
HOUSE_MEMBER_UPDATE
¶
Source Code ·
Docs · on_member_update()
Expected json-data
"op": 0,
"d": {
"user_id": str,
"user": {
// User Object
"website": str,
"username": str,
"user_flags": int,
"name": str,
"location": str,
"id": str,
"icon": str,
"header": str,
"email_verified": bool,
"bot": bool,
"bio": str
},
"roles": [{
// Role Object
"position": int,
"name": str,
"level": int,
"id": str,
"deny": bits,
"color": str,
"allow": bits
} ... ],
"presence": str,
"last_permission_update": unknown,
"joined_at": str,
"id": str,
"house_id": str
}
HOUSE_MEMBERS_CHUNK
¶
Source Code ·
Docs · on_house_member_chunk()
Chunked House Member Update
Expected json-data
"op": 0,
"d": {
"members": [{
"id": {
"user_id": str,
"user": {
"username": str,
"user_flags": str,
"name": str,
"id": strstr
"icon": str,
"header": str,
"presence": str
},
"roles": [{
// Role Object
"position": int,
"name": str,
"level": int,
"id": str,
"deny": bits,
"color": str,
"allow": bits
} ... ],
"last_permission_update": str,
"joined_at": str,
"house_id": str
}
} ... ],
"house_id": str
}
HOUSE_ENTITIES_UPDATE
¶
Source Code ·
Docs · on_house_entity_update()
Expected json-data
"op": 0
"d": {
"house_id": str,
"entities": [{
"type": int,
"resource_pointers": [{
// Resource Pointer
"resource_type": str,
"resource_id": str
} ... ],
"position": int,
"name": str,
"id": str
} ... ]
}
BATCH_HOUSE_MEMBER_UPDATE
¶
Source Code ·
Docs · on_batch_house_member_update()
Expected json-data
"op": 0,
"d": {
"house_id": str,
"batch_type": [],
"batch_size": int,
"data": {
// Collection of Members that are mapped to their id
"id": {
// Member Object
"user_id": str,
"user": {
// User Object
"username": str,
"user_flags": str,
"name": str,
"id": str,
"icon": str,
"header": str,
"presence": str
},
"roles": [{
// Role Object
"position": int,
"name": str,
"level": int,
"id": str,
"deny": bits,
"color": str,
"allow": bits
} ... ],
"last_permission_update": str,
"joined_at": str,
"house_id": str
}
}
}
HOUSE_ENTITY_UPDATE
¶
Source Code ·
Docs · on_house_entity_update()
Expected json-data
"op": 0,
"d": {
"entities": {
// Entity Object
"type": int,
"resource_pointers": [{
// Resource Pointer
"resource_type": str,
"resource_id": str
} ... ],
"position": int,
"name": str,
"id": str
},
"house_id": str
}
HOUSE_DOWN
¶
Source Code · Docs
on_house_down
/ on_house_delete
· on_house_down()
· on_house_delete()
HOUSE_DOWN
represents two types of events:
- House Deletion - A House was entirely deleted.
- House Downtime - The data of a house failed to load, and the server has issues recovering it.
If the given variable unavailable
is True
, the house with that id is currently down but not deleted.
Expected json-data
"op": 0,
"d": {
"unavailable": bool,
"house_id": str
}
TYPING_START
¶
Source Code ·
Docs · on_typing_start()
Expected json-data
Hiven separates the TYPING_START
event into two classifications:
House Typing:
"op": 0,
"d": {
"timestamp": int,
"room_id": str,
"house_id": str,
"author_id": str
}
Private Room Typing:
"op": 0,
"d": {
"author_id": int,
"recipient_ids": [ "user_id", ... ]
"room_id": str,
"timestamp": int
}
CALL_CREATE
¶
Expected json-data
"op": 0,
"d": {
"join_token": str,
"recipients": ["user_id", ...],
"ringing":["user_id", ...],
"room_id": str,
"rtc_states": [],
"uuid": str,
}
CALL_UPDATE
¶
Expected json-data
"op": 0,
"d": {
"join_token": str,
"recipients": ["user_id", ...],
"ringing":["user_id", ...],
"room_id": str,
"rtc_states": [
{
// Voice status
"deafened": bool,
"joined_at": int, // Unix Timestamp
"muted": bool,
"room_id": str,
"video": bool
}
],
"uuid": str,
}
CALL_DELETE
¶
Expected json-data
"op": 0,
"d": {
"room_id": str
}