DiscordPHP Documentation

LobbyRepository extends AbstractRepository
in package

Contains lobbies.

Everything here is done with the bot token, as a game's backend does it. What a player does in a lobby — creating or joining one by secret, leaving, linking a channel, sending and reading messages — uses the player's own OAuth2 token instead.

Tags
see
Lobby
since
10.28.0

Table of Contents

Properties

$cache  : CacheWrapper
$discrim  : string
$class  : string
Class type allowed into the collection.
$discord  : mixed
$endpoints  : array<string|int, mixed>
Endpoints for interacting with the Discord servers.
$factory  : Factory
The parts factory.
$http  : Http
The HTTP client.
$items  : array<string|int, mixed>
The items contained in the collection.
$vars  : array<string|int, mixed>
Variables that are related to the repository.

Methods

__call()  : mixed
This method checks if a method with the name "__Collection__{$name}" exists within the class. If it does, it calls that method with the provided arguments.
__construct()  : mixed
AbstractRepository constructor.
__debugInfo()  : array<string|int, mixed>
__get()  : mixed
Exposes the read-only \`discrim\` and \`cache\` properties.
addMember()  : PromiseInterface<string|int, Member>
Adds the provided user to the specified lobby.
bulkUpdateMembers()  : PromiseInterface<string|int, ExCollectionInterface<string|int, Member>|array<string|int, Member>>
Adds, updates and removes up to 25 lobby members in one request.
clear()  : void
Clears the repository.
create()  : Part
Builds a new, empty part.
createInvite()  : PromiseInterface<string|int, Invite>
Creates an invite for a lobby member to the channel linked to the lobby.
createLobby()  : PromiseInterface<string|int, Lobby>
Creates a new lobby, adding any of the specified members to it, if provided.
delete()  : PromiseInterface<string|int, Part>
Attempts to delete a part on the Discord servers.
fetch()  : PromiseInterface<string|int, Part>
Gets a part from the repository or Discord servers.
filter()  : ExCollectionInterface
Runs a filter callback over the repository and returns a new collection based on the response of the callback.
find()  : Lobby|null
first()  : Lobby|null
fresh()  : PromiseInterface<string|int, Part>
Returns a part with fresh values.
freshen()  : PromiseInterface<string|int, static>
Freshens the repository cache.
get()  : Lobby|null
getIterator()  : Traversable
Returns an iterator for the cache.
has()  : bool
Checks if the array has an object.
jsonSerialize()  : array<string|int, mixed>
keys()  : array<string|int, int>|array<string|int, string>
Get the keys of the items.
last()  : Lobby|null
modifyLobby()  : PromiseInterface<string|int, Lobby>
Modifies the specified lobby with new values, if provided.
offsetExists()  : bool
If the repository has an offset.
offsetGet()  : Part|null
Gets a part from the repository.
offsetSet()  : void
Sets a part into the repository.
offsetUnset()  : void
Unsets an index from the repository.
pull()  : Lobby|null
pushItem()  : self
Pushes a single item to the repository.
removeMember()  : PromiseInterface
Removes the provided user from the specified lobby.
save()  : PromiseInterface<string|int, Part>
Attempts to save a part to the Discord servers.
set()  : mixed
Sets a part in the repository.
toArray()  : array<string|int, mixed>
Converts the weak caches to array.
updateMessageModerationMetadata()  : PromiseInterface
Sets the moderation metadata on a lobby message, which is delivered to the players' clients.
values()  : array<string|int, mixed>
Get the values of the items.
cacheFreshen()  : PromiseInterface<string|int, static>
forgetCachedItems()  : void
Drops every cached part, before the repository is refilled from a response that lists all of them.

Properties

$class

Class type allowed into the collection.

protected string $class = \Discord\Parts\Lobby\Lobby::class
Tags
inheritDoc

$endpoints

Endpoints for interacting with the Discord servers.

protected array<string|int, mixed> $endpoints = [ //'create' => Endpoint::LOBBIES, 'get' => \Discord\Http\Endpoint::LOBBY, 'update' => \Discord\Http\Endpoint::LOBBY, 'delete' => \Discord\Http\Endpoint::LOBBY, ]

Endpoints.

Tags
inheritDoc

$items

The items contained in the collection.

protected array<string|int, mixed> $items = []

$vars

Variables that are related to the repository.

protected array<string|int, mixed> $vars = []

Variables.

Methods

__call()

This method checks if a method with the name "__Collection__{$name}" exists within the class. If it does, it calls that method with the provided arguments.

public __call(string $name, array<string|int, mixed> $arguments) : mixed

If the method does not exist, it throws a BadMethodCallException.

Previously, this class utilized parent::method to call methods from the parent class. This was changed to use the __Collection__method naming convention to avoid conflicts

Parameters
$name : string

The name of the method being called.

$arguments : array<string|int, mixed>

The arguments passed to the method.

Tags
throws
BadMethodCallException

If the method does not exist.

Return values
mixed —

The result of the called method.

__construct()

AbstractRepository constructor.

public __construct(Discord $discord[, array<string|int, mixed> $vars = [] ]) : mixed
Parameters
$discord : Discord
$vars : array<string|int, mixed> = []

An array of variables used for the endpoint.

__debugInfo()

public __debugInfo() : array<string|int, mixed>
Return values
array<string|int, mixed>

__get()

Exposes the read-only \`discrim\` and \`cache\` properties.

public __get(string $key) : mixed
Parameters
$key : string

addMember()

Adds the provided user to the specified lobby.

public addMember(Lobby|string $lobby, Member|User|string $user[, ?string $data = [] ]) : PromiseInterface<string|int, Member>

If called when the user is already a member of the lobby will update fields such as metadata on that user instead.

Parameters
$lobby : Lobby|string

The lobby or lobby id to add the member to.

$user : Member|User|string

Member, user, or user id to add to the lobby.

$data : ?string = []

['additional_name'] An additional 1-80 character display name for the member, such as an in-game character name. Null clears it; omit it to keep the current value.

Tags
since
10.59.0
Return values
PromiseInterface<string|int, Member>

bulkUpdateMembers()

Adds, updates and removes up to 25 lobby members in one request.

public bulkUpdateMembers(Lobby|string $lobby, array<string|int, array<string|int, mixed>>|array<string|int, Member> $members) : PromiseInterface<string|int, ExCollectionInterface<string|int, Member>|array<string|int, Member>>

Each entry is a Member, or an array with an id and any of metadata, flags, additional_name, and remove_member (true to remove the user rather than add or update them).

Parameters
$lobby : Lobby|string

The lobby or lobby id whose members to update.

$members : array<string|int, array<string|int, mixed>>|array<string|int, Member>

The members to add, update or remove.

Tags
since
10.59.0
Return values
PromiseInterface<string|int, ExCollectionInterface<string|int, Member>|array<string|int, Member>> —

The members that were added or updated. Removed members are not included.

create()

Builds a new, empty part.

public create([array<string|int, mixed>|object $attributes = [] ][, bool $created = false ]) : Part
Parameters
$attributes : array<string|int, mixed>|object = []

The attributes for the new part.

$created : bool = false
Tags
throws
Exception
Return values
Part —

The new part.

createInvite()

Creates an invite for a lobby member to the channel linked to the lobby.

public createInvite(Lobby|string $lobby, Member|User|string $user) : PromiseInterface<string|int, Invite>
Parameters
$lobby : Lobby|string

The lobby or lobby id whose linked channel to invite to.

$user : Member|User|string

Member, user, or user id of the lobby member to invite.

Tags
since
10.59.0
Return values
PromiseInterface<string|int, Invite> —

An invite with only its code.

createLobby()

Creates a new lobby, adding any of the specified members to it, if provided.

public createLobby([?int $data = [] ]) : PromiseInterface<string|int, Lobby>
Parameters
$data : ?int = []

['idle_timeout_seconds'] Seconds to wait before shutting down a lobby after it becomes idle. Value can be between 5 and 604800 (7 days). See LobbyHandle for more details on this behavior.

Tags
since
10.59.0
Return values
PromiseInterface<string|int, Lobby>

delete()

Attempts to delete a part on the Discord servers.

public delete(Part|string $part[, string|null $reason = null ]) : PromiseInterface<string|int, Part>
Parameters
$part : Part|string

The part to delete.

$reason : string|null = null

Reason for Audit Log (if supported).

Tags
throws
Exception
Return values
PromiseInterface<string|int, Part>

fetch()

Gets a part from the repository or Discord servers.

public fetch(string $id[, bool $fresh = false ]) : PromiseInterface<string|int, Part>
Parameters
$id : string

The ID to search for.

$fresh : bool = false

Whether we should skip checking the cache.

Tags
throws
Exception
Return values
PromiseInterface<string|int, Part>

filter()

Runs a filter callback over the repository and returns a new collection based on the response of the callback.

public filter(callable $callback) : ExCollectionInterface
Parameters
$callback : callable
Tags
todo

This method will be typed to return an ExCollectionInterface in v11

Return values
ExCollectionInterface

fresh()

Returns a part with fresh values.

public fresh(Part $part[, array<string|int, mixed> $queryparams = [] ]) : PromiseInterface<string|int, Part>
Parameters
$part : Part

The part to get fresh values.

$queryparams : array<string|int, mixed> = []

Query string params to add to the request (no validation)

Tags
throws
Exception
Return values
PromiseInterface<string|int, Part>

freshen()

Freshens the repository cache.

public freshen([array<string|int, mixed> $queryparams = [] ]) : PromiseInterface<string|int, static>
Parameters
$queryparams : array<string|int, mixed> = []

Query string params to add to the request (no validation)

Tags
throws
Exception
Return values
PromiseInterface<string|int, static>

get()

public get(string $discrim, mixed $key) : Lobby|null
Parameters
$discrim : string
$key : mixed
Return values
Lobby|null

getIterator()

Returns an iterator for the cache.

public & getIterator() : Traversable
Return values
Traversable

has()

Checks if the array has an object.

public has(string|int ...$keys) : bool

Use async $repository->cache->has()

Parameters
$keys : string|int
Return values
bool

jsonSerialize()

public jsonSerialize([bool $assoc = true ]) : array<string|int, mixed>
Parameters
$assoc : bool = true
Tags
inheritDoc
Return values
array<string|int, mixed>

keys()

Get the keys of the items.

public keys() : array<string|int, int>|array<string|int, string>
Return values
array<string|int, int>|array<string|int, string>

modifyLobby()

Modifies the specified lobby with new values, if provided.

public modifyLobby(Lobby|string $lobby[, ?int $data = [] ]) : PromiseInterface<string|int, Lobby>
Parameters
$lobby : Lobby|string

The lobby or lobby id to modify.

$data : ?int = []

['idle_timeout_seconds'] Seconds to wait before shutting down a lobby after it becomes idle. Value can be between 5 and 604800 (7 days). See LobbyHandle for more details on this behavior.

Tags
since
10.59.0
Return values
PromiseInterface<string|int, Lobby>

offsetExists()

If the repository has an offset.

public offsetExists(string|int $offset) : bool

Use async $repository->cache->has() This method is deprecated for userland code but can still be used internally within the library.

Parameters
$offset : string|int
Return values
bool

offsetGet()

Gets a part from the repository.

public offsetGet(string|int $offset) : Part|null

Use async $repository->cacheGet() or sync $repository->get() This method is deprecated for userland code but can still be used internally within the library.

Parameters
$offset : string|int
Return values
Part|null

offsetSet()

Sets a part into the repository.

public offsetSet(string|int $offset, ?Part $value) : void

Use async $repository->cache->set()

Parameters
$offset : string|int
$value : ?Part

offsetUnset()

Unsets an index from the repository.

public offsetUnset(string|int $offset) : void

Use async $repository->cache->delete()

Parameters
$offset : string|int

pull()

public pull(string|int $key[, mixed $default = = 'null' ]) : Lobby|null
Parameters
$key : string|int
$default : mixed = = 'null'
Return values
Lobby|null

pushItem()

Pushes a single item to the repository.

public pushItem(Part $item) : self

Use async $repository->cache->set() This method is deprecated for userland code but can still be used internally within the library.

Parameters
$item : Part
Return values
self

removeMember()

Removes the provided user from the specified lobby.

public removeMember(Lobby|string $lobby, Member|User|string $user) : PromiseInterface

It is safe to call this even if the user is no longer a member of the lobby, but will fail if the lobby does not exist.

Parameters
$lobby : Lobby|string

The lobby or lobby id to remove the member from.

$user : Member|User|string

Member, user, or user id to remove from the lobby.

Return values
PromiseInterface

save()

Attempts to save a part to the Discord servers.

public save(Part $part[, string|null $reason = null ]) : PromiseInterface<string|int, Part>

Use Part->save($reason) to ensure permissions are checked.

Parameters
$part : Part

The part to save.

$reason : string|null = null

Reason for Audit Log (if supported).

Tags
throws
Exception
Return values
PromiseInterface<string|int, Part>

toArray()

Converts the weak caches to array.

public toArray([bool $assoc = true ]) : array<string|int, mixed>

Use jsonSerialize

Parameters
$assoc : bool = true
Return values
array<string|int, mixed>

updateMessageModerationMetadata()

Sets the moderation metadata on a lobby message, which is delivered to the players' clients.

public updateMessageModerationMetadata(Lobby|string $lobby, Message|string $message, array<string|int, mixed> $metadata) : PromiseInterface
Parameters
$lobby : Lobby|string

The lobby or lobby id the message was sent in.

$message : Message|string

The lobby message or its id.

$metadata : array<string|int, mixed>

Up to 5 free-form string key/value pairs describing the decision, e.g. ['action' => 'hide', 'reason' => 'toxicity'].

Tags
since
10.59.0
Return values
PromiseInterface

values()

Get the values of the items.

public values() : array<string|int, mixed>
Return values
array<string|int, mixed>

cacheFreshen()

protected cacheFreshen(object $response) : PromiseInterface<string|int, static>
Parameters
$response : object
Return values
PromiseInterface<string|int, static>

forgetCachedItems()

Drops every cached part, before the repository is refilled from a response that lists all of them.

protected forgetCachedItems() : void

Parts still referenced elsewhere are kept as weak references, so they are reused if the response names them again.

Tags
since
10.60.0
On this page

Search results