Manajemen Multi-Client
Spawn / hapus / iterasi client dari skrip. Sebagian besar skrip jalan dengan parent getClient() implisit, tapi global multi-client berguna buat skrip orkestrasi (buka halaman Scripts, jalanin sekali, drive setiap bot).
addClient() -- bot baru, device id random
addClient("deviceId") -- bot baru, device id spesifik
addClient("email", "password") -- attach akun yang sudah ada
removeClient("emailOrDeviceId") -- detach + disconnect
getClient("emailOrDeviceId") -- by identity
getClient() -- parent skrip
getClients() -- semua yang udah dibuat
for i, client in pairs(getClients()) do
-- kerjaan per-bot
end
Globals
getClient(key?)
| Field | Type |
|---|---|
| Signature | (key: string?) → Client? |
| Returns | Client? — nil kalau gak ada parent yang ke-bind (misal global executor tanpa parent eksplisit), atau key lookup-nya gak match bot manapun |
| Common errors | "getClient: expected string or nil" (di-pass yang bukan string), "client not found: <key>" (key keliatannya valid tapi gak ada bot yang match) |
| Async | yes |
Return parent client (bot yang :scripting():execute()-nya jalanin skrip ini). key opsional — pass email / bot id / device id buat lookup bot tetangga.
local me = getClient()
getClients()
| Field | Type |
|---|---|
| Signature | () → {Client} |
| Returns | {Client} — tabel 1-indexed semua bot yang ke-spawn pas dipanggil |
| Async | yes |
for i, client in ipairs(getClients()) do
print(i, client.id, client.username)
end
addClient() / addClient(deviceId) / addClient(email, password)
| Field | Type |
|---|---|
| Signature | (...) → Client? |
| Returns | Client? — nil kalau manager nolak buat bot (auth gagal, kapasitas, dst) |
| Common errors | "addClient: expected (), (deviceId), or (email, password)" (bentuk single-arg salah), "addClient: too many args" (lebih dari 2 arg) |
| Async | yes |
Tiga bentuk panggilan:
| Call | Auth |
|---|---|
addClient() | Android device baru, device id random |
addClient("deviceId") | Android device baru, device id spesifik |
addClient("email", "password") | Attach akun email/password yang udah ada |
local fresh = addClient() -- device id random
local exact = addClient("PWORLDSANDROID-1234567890ABCD") -- device spesifik
removeClient(emailOrId)
| Field | Type |
|---|---|
| Signature | (emailOrId: string) → boolean |
| Returns | boolean — true kalau ada bot yang match terus ke-detach + disconnect; false kalau key gak match apapun |
| Async | yes |
Terima bentuk identity yang sama kayak getClient(key) (email, bot id, atau device id).
Jalanin sesuatu di setiap bot
Pasangin sama runThread buat dispatch paralel:
for _, b in ipairs(getClients()) do
runThread(function()
b:warp("MYWORLD")
end)
end