NAME
AnyEvent::XMPP::Ext::MUC::Room - Room class
SYNOPSIS
DESCRIPTION
This module represents a room handle for a MUC.
METHODS
- new (%args)
- get_user ($nick)
-
This method returns the user with the
$nickin the room. - get_me
-
This method returns the AnyEvent::XMPP::Ext::MUC::User object of yourself in the room. If will return undef if we are not in the room anymore.
- get_user_jid ($jid)
-
This method looks whether a user with the JID
$jidexists in the room. That means whether the node and domain part of the JID match the rooms node and domain part, and the resource part of the JID matches a joined nick. - get_users
-
This method returns the list of occupants as AnyEvent::XMPP::Ext::MUC::User objects.
- make_instant ($cb)
-
If you just created a room you can create an instant room with this method instead of going through room configuration for a reserved room.
If you want to create a reserved room instead don't forget to unset the
create_instantargument of thejoin_roommethod of AnyEvent::XMPP::Ext::MUC!See also the
request_configurationmethod below for the reserved room config.$cbis the callback that will be called when the instant room creation is finished. If successful the first argument will be this room object ($self), if unsuccessful the first argument will be undef and the second will be a AnyEvent::XMPP::Error::IQ object. - request_configuration ($cb)
-
This method requests the room configuration. When the configuration form or an error arrives
$cbwill be called. The first argument to the callback will be a AnyEvent::XMPP::Ext::DataForm with the room configuration form or undef in case of an error. The second argument will be a AnyEvent::XMPP::Error::MUC error object if an error occurred or undef if no error occurred.If you made an answer form you can send it via the
send_configurationmethod below.Here is an example:
$room->request_configuration (sub { my ($form, $err) = @_; $form or return; my $af = AnyEvent::XMPP::Ext::DataForm->new; $af->make_answer_form ($form); $af->set_field_value ('muc#roomconfig_maxusers', 20); $af->clear_empty_fields; $roomhdl->send_configuration ($af, sub { # ... }); }); send_configuration ($answer_form, $cb)-
This method sends the answer form to a configuration request to the room.
$answer_formshould be a AnyEvent::XMPP::Ext::DataForm object containig the answer form with the changed configuration.The first argument of
$cbwill be a true value if the configuration change was successful. The second argument of$cbwill be aAnyEvent::XMPP::Error::IQobject if the configuration change was not successful. - make_message (%args)
-
This method constructs a AnyEvent::XMPP::Ext::MUC::Message with a connection to this room.
%argsare further arguments for the constructor of AnyEvent::XMPP::Ext::MUC::Message. The defaulttoargument for the message is the room and thetypewill be 'groupchat'. - send_part ($msg, $cb, $timeout)
-
This lets you part the room,
$msgis an optional part message and can be undef if no custom message should be generated.$cbis called when we successfully left the room or after$timeoutseconds. The default for$timeoutis 60.The first argument to the call of
$cbwill be undef if we successfully parted, or a true value when the timeout hit. Even if we timeout we consider ourself parted (and a 'leave' event is generated). - users
-
Returns a list of AnyEvent::XMPP::Ext::MUC::User objects which are in this room.
- jid
-
Returns the bare JID of this room.
- nick_jid
-
Returns the full JID of yourself in the room.
- is_connected
-
Returns true if this room is still connected (but maybe not joined (yet)).
- connection
-
If the room is still joined this method will return the connection on which the room is connected.
- is_joined
-
Returns true if this room is still joined (and connected).
- change_nick ($newnick)
-
This method lets you change your nickname in this room.
- change_subject ($newsubject)
-
This methods changes the subject of the room.
AUTHOR
Robin Redeker, <elmex at ta-sa.org>, JID: <elmex at jabber.org>
COPYRIGHT & LICENSE
Copyright 2007, 2008 Robin Redeker, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.