Extensible Messaging and Presence Protocol (XMPP) is an open-standard communications protocol for message-oriented middleware based on XML. The protocol was originally named Jabber.
In addition to the obvious 'XMPP' or 'Jabber' branded services, there are some services which use XMPP or provide XMPP bridges or gateways to their services. Google Talk, Live journal and Ovi use XMPP, while Facebook chat allow XMPP connections to their service. There are also 3rd party gateway services between XMPP and MSN and Yahoo.
Users who are intending to use Google Talk with XMPP make sure to read up on the xmpp changes: https://www.fsf.org/blogs/sysadmin/google-backslides-on-federated-instant-messaging-on-purpose
There is a huge number of XMPP clients, many of which allow connection to multiple services, for example: iChat, Trillian, Miranda, fring, Adium, bitlbee, Pidgin and Digsby.
The Essentials XMPP extension provides a XMPP gateway to the Bukkit server.
Players who use an XMPP service are able to set their XMPP address ingame, which allows for other players to message them when they are not connected to minecraft.
If you enable XMPP spy for a user, that player will get a copy of ingame messages sent to their XMPP account, as if they were connected and ingame.
If you allow an account to issue commands from XMPP, that user will be able to use console commands (op) similar to as if they were typing directly in the console.
If you register an account to have log view, the account will be forwarded messages sent the log with the matching or higher warning level. This directly replicates what you would see looking directly at the console.
When you configure XMPP, you create a new account for the server, and associate your current accounts with the one given to the server. On most services, this is akin to adding the server to your 'friends list' or 'contact list'. While 2 of the main uses of this plugin is to allow the server admins to remotely connect to the server, it is also useful to encourage contact between users on the server.
Setting your account
Users can register their own XMPP addresses by using the "/setxmpp <address>" command. Users can register any XMPP/Jabber compatible account, either accounts set up specifically for XMPP or systems which provide jabber ids. Facebook users can find out more about their XMPP service in the site tour, but essentially it would be /setxmpp <username>@chat.facebook.com. Gmail users should simply use their gmail address.
Messaging a user
To message another user you use the "/xmpp <account> <message>" command, using the players ingame name.
Not every server which allows XMPP will enable xmppspy, enabling this feature will forward all ingame chat to the XMPP account. This will allow the user to chat as if they were ingame, by messaging the server's XMPP address.
Setting up the Essentials XMPP connector is fairly simple, you need to create an XMPP account, and provide the details for Essentials to use.
Before Essentials can communicate with users XMPP accounts you first need to set it up with an account. There are several different ways you can handle this, but it is recommended that you create an account specifically for the the server.
Since XMPP is an open protocol you can set up your own XMPP server locally, or use a service provided by your ISP/Host. As long as the server connects with one of the public XMPP nodes, you will be able to communicate with users using other XMPP services.
For the sake of simplicity it will probably be easiest to create a free account with Jabber.org.
The config file for XMPP connectivity is found in its own folder. You will find the file at /plugins/EssentialsXMPP/config.yml
xmpp: sasl-enabled: true server: 'jabber.org' port: 5222 user: 'email@example.com' password: 'password'
The above is an example of the configuration settings needed to connect to the jabber.org XMPP server. There are a few more options, but generally you wont need to set up a service name or use a none standard port. For your exact configuration settings you will need to check your XMPP provider.
You can allow XMPP users to receive server information.
log-enabled: true log-level: info log-users: - 'firstname.lastname@example.org'
The above example would allow the user with the XMPP address 'email@example.com' to receive all server log information to be forwarded to their account. The log level, is the minimum required level for which that should be forwarded to the user, values can be: info, warning, severe
You can allow XMPP users to issue commands to the server (they would need to be log users to actually see any output).
op-users: - 'firstname.lastname@example.org'
The above example would allow the user with the XMPP address 'email@example.com' to issue commands as if they were typing in the console.
Some clients may need a /say or /raw to use /commands properly, if the client intercepts this.