0ad/source/tools/XpartaMuPP
2014-10-18 14:28:46 +00:00
..
ELO.py Add the limit back to provisionality in the rating system. 2014-04-27 23:42:56 +00:00
LobbyRanking.py Adds profiles to the multiplayer lobby. Fixes #2504. 2014-09-20 15:35:26 +00:00
Makefile Multiplayer lobby based on the XmPP protocol. Special thanks to Philip, alpha123, scythetwirler, and anyone else who has helped build, debug or test the lobby. 2013-11-07 20:07:24 +00:00
mod_ipstamp.erl Use ACLs in the ipstamp module to support multiple lobby bots. 2013-12-31 00:25:33 +00:00
README Update lobby server README. 2014-05-23 15:52:29 +00:00
XpartaMuPP.py Adds compatibility for XMPP differences between platforms that can cause case inconsistencies. 2014-10-18 14:28:46 +00:00

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ Install ejabberd and the erlang compiler @@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# apt-get install ejabberd erlang-dev make

Configure it
# dpkg-reconfigure ejabberd 
set the domain name (e.g. localhost if you installed it on your development computer)
and a login / password

You should now be able to connect to this XMPP server using a normal XMPP client (e.g. Empathy).

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ Installation of the custom XMPP module @@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Go to its source directory
$ cd source/tools/XpartaMuPP

Edit mod_ipstamp.erl to set the domain on which is run the ejabberd server. (e.g. localhost)
# -define (Domain, <server domain>).

Build and install it
$ make
# make install

Tell ejabberd that you want it to load the module
In /etc/ejabberd/ejabberd.cfg, add {mod_ipstamp, []}
in the Modules list "Modules enabled in all ejabberd virtual hosts"

Restart ejabberd
# service ejabberd restart

If something goes wrong, read /var/log/ejabberd/ejabberd.log

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ Ejabberd administration @@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Go http://localhost:5280/admin and connect 
(the login looks like login@domain (e.g. adminjabber@localhost))

In "Access rules" check that "register" is set to "[{allow,all}]"

You can see the list of registered / connected users in
"Virtual Hosts" >> domain name >> "users"

You must manually add a new user for XpartaMuPP.
Enter a login (use "wfgbot" since that's what clients expect) 
and password, then press "Add user"

Alternative - Command line :
Edit /etc/ejabberd.ejabberd.cfg and change {register, [{deny,all}]} to {register, [{allow,all}]}.
Register wfgbot : # ejabberdctl register wfgbot <domain> <wfgbot password>

Create an ACL that includes the bot (name it ipbots, since that's what the ipstamp module expects)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ Run XpartaMuPP - XMPP Multiplayer Game Manager @@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
You need to have python 3 and SleekXmpp installed
$ sudo apt-get install python3 python3-sleekxmpp

If you would like to run the leaderboard database,
$ sudo apt-get install python3-sqlalchemy

Then execute the following command to setup the database.
$ python3 ./source/tools/XpartaMuPP/LobbyRanking.py

Execute the following command to run the bot with default options
$ python3 ./source/tools/XpartaMuPP/XpartaMuPP.py

or rather a similar command to run a properly configured program
$ python3 ./source/tools/XpartaMuPP/XpartaMuPP.py --domain localhost --login wfgbot --password XXXXXX --nickname WFGbot --room arena

Run python3 ./source/tools/XpartaMuPP/XpartaMuPP.py --help for the full list of options

If everything is fine you should see something along these lines in your console
<<<<
INFO     Negotiating TLS
INFO     Using SSL version: 3
INFO     Node set to: wfgbot@lobby.wildfiregames.com/CC
INFO     XpartaMuPP started
<<<<

Congratulations, you are running XpartaMuPP - the 0ad Multiplayer Game Manager.