35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
# Forge Server Phone
|
|
|
|
## Overview
|
|
The phone addon is the server-side bridge for contacts, SMS messages, and email.
|
|
Phone runtime state is owned by the extension. SQF stores preserve the
|
|
event-facing API and synchronize client UI state.
|
|
|
|
## Dependencies
|
|
- `forge_server_main`
|
|
- `forge_server_common` at runtime for online player lookup
|
|
- `forge_server_actor` at runtime for contact and player lookups
|
|
- `forge_server_extension` at runtime for phone extension calls
|
|
- `forge_client_phone` for response RPCs
|
|
|
|
## Main Components
|
|
- `fnc_initPhoneStore.sqf` coordinates the phone facade.
|
|
- `fnc_initContactStore.sqf` manages contacts.
|
|
- `fnc_initMessageStore.sqf` manages SMS messages and threads.
|
|
- `fnc_initEmailStore.sqf` manages email messages.
|
|
- `fnc_initPlayer.sqf` initializes phone data for a player.
|
|
|
|
## Persistent Extension Tables
|
|
- `phone_user`: owner row for an initialized phone profile
|
|
- `phone_contact`: per-owner contact rows keyed by owner UID and contact UID
|
|
- `phone_message`: shared message records
|
|
- `phone_message_index`: per-owner message visibility and read state
|
|
- `phone_email`: shared email records
|
|
- `phone_email_index`: per-owner email visibility and read state
|
|
- `phone_sequence`: global sequence state for generated message and email IDs
|
|
|
|
## Event Surface
|
|
The addon handles client requests to initialize phone state, add/remove/refresh
|
|
contacts, send/read/delete messages, send/read/delete emails, and remove phone
|
|
state.
|