NAME

Net::Async::Matrix::Room::State - represents the state events in a matrix room

DESCRIPTION

Instances of this class represent all of the known state events in a Net::Async::Matrix::Room at some instant in time. These objects are mutable so a "live" state object obtained from a room will change to keep track of newly received state events.

METHODS

get_event

$event = $state->get_event( $type, $state_key )

Returns a HASH reference containing the raw event stored for the given type name and optional state key.

get_events

$events = $state->get_events( $type )

Returns a multi-level HASH reference mapping all of the known state keys for a given event type name to their raw stored events. Typically this is useful for m.room.member events as the state keys will be user IDs.

CONVENIENCE ACCESSORS

The following accessors all fetch single values out of certain events, as they are commonly used.

name

$name = $state->name

Returns the name field of the m.room.name event, if it exists.

join_rule

$join_rule = $state->join_rule

Returns the join_rule field of the m.room.join_rules event, if it exists.

topic

$topic = $state->topic

Returns the topic field of the m.room.topic event, if it exists.

aliases

@aliases = $state->aliases

Returns a list of the room alias from all the m.room.aliases events, in no particular order.

members

@members = $state->members

Returns a list of Member instances representing all of the members of the room from the m.room.member events whose membership state is not leave.

all_members

@members = $state->members

Similar to "members" but even includes members in leave state. This is not normally what you want.

member

$member = $state->member( $user_id )

Returns a Member instance representing a room member of the given user ID, or undef if none exists.

member_level

$level = $state->member_level( $user_id )

Returns a number indicating the power level that the given user ID would have according to room state, taken from the m.room.power_levels event. This takes into account the users_default field, if no specific level exists for the given user ID.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>