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>