//////////////////////////////////////////////////////////////////////
//                                                                  //
//     Documentation for remote administration                      //
//                                                                  //
// Time-stamp: <2001-06-16 03:28:04 hogsett>
//////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////
//                               NOTE                               //
// In this installion document I make the assumption that Starsiege //
// has been installed in "C:\Dynamix\Starsiege\".  If it has been   //
// installed in a location other than "C:\Dynamix\Starsiege\"       //
// replace that path below with the actual path to where Starsiege  //
// is installed on your computer.                                   //
//////////////////////////////////////////////////////////////////////

The BoP standard Library ( BoPStdlib ) catagorizes players into two
groups, admins and everyone else.  To be an admin requires "logging
in" to the server.  Logging in to the server consists of sending your
admin password to the server by using the key binding described in the
"Bindings.txt" file.  The key binding to log in is control-l.  When
this key combination is pressed, the password is sent to the server.
The server uses this password and your name to decide if you are an
admin by consulting the BoP_Admins.cs file installed on the server.
If your name AND your password matches entries in the BoP_Admins.cs
file, then you will become an admin in the server.

Entries in the BoP_Admins.cs file consist of two lines, a name and
password pair.  One line is the admin's name and the other their
password. The following is an example of what a BoP_Admins.cs file may
look like:

$Admins::name[0] = "John";
$Admins::password[0] = "babtist";

$Admins::name[1] = "Thomas";
$Admins::password[1] = "doubt";

The example above lists entries for two admins, a player named "John",
and one named "Thomas".  Each player has a password associated with
their name.  In the example above "John" has the password "babtist"
and "Thomas" has the password "doubt".  The " is not part of either
their name or password.  The QUOTE ( " ) CAN NOT BE USED IN A
PASSWORD.

It is necessary for the name and password sent to the server to
EXACTLY match that which is listed, otherwise they will not be seen as
an admin when they attempt to log in.

Adding an entry for a new admin is simple, copy the last entry in the
list, add 1 to the index number, and enter their name and password.
For example an entry for another admin may look like : 

$Admins::name[2] = "Peter";
$Admins::password[2] = "betrayal";

You can't skip entries in the list.  Like the ban list, if you have an 
entry for index 0, index 2 and index 3, it will ignore all entries following
the missing entry, in this case it would ignore indices 2 and 3.

There is no automated to way to add someone to the admin list from the 
comfort of your cockpit.  You have to edit the file manually.

PLEASE NOTE:  When hosting a non-dedicated server the host automatically
              becomes an Admin regardless of the contents of the Admin
              list.

Administators have the following priveleges : 

        Kick           - They can kick all players except other admins.
	Ban            - They can ban all players except other admins.
        EndMission     - They can end the mission.
	CycleCD        - They can cause the server to select a new, random 
                         cd track selection
        ToggleScanAuth - Toggle scanner authorization between requiring 
                         authorization, based on the configuration settings,
                         and not requiring authorization (that is it is allowed
                         for all players)

In order to enable remote administration it is necessay to add key
bindings to the game for those players requiring admin priveleges.
Please see "Bindings.txt" for instructions for adding the key bindings.

Please NOTE: 
             1) Banning a player is permanent until the server host manually 
                removes the ban rules from the ban list ( see BANNING.txt ).
    
             2) As stated above the host of a non-dedicated server is
                automatically an admin, therefore it is impossible for 
                a player to ban or kick the host of the non-dedicated server.

             3) Having admin priveleges in a server requires an entry in the 
                admin list on THAT server.  If you have the key bindings but 
                are not in THAT server's admin list you will be denied admin 
                priveleges (and the server will alert the other players of 
                your failed attempt).

A Quick Note Regarding Kick, Ban and Omnipotent Power:

Having administrator priveleges in a server is just that, a privelege.
Do not abuse the power it gives you.  Being able to kick and ban 
players makes you omnipotent over those who are not admins.  Kick and
ban could be abused as extremely powerful weapons.  If you abuse that 
power you may be removed as an admin from that server and will probably
piss off many players as well as your squad mates for giving their squad
a bad reputation.  Also if you ban too eagerly you may piss off the server
host since he or she will have to manually remove any entries you made
maliciously or in error.  

Kick is intended for use as a defense against "reppiks" type players,
that is those people who are consistently rude and disrespectful to,
or of, others.  Ban is intended for use as a last resort for "reppiks"
like players who continue to be rude, despite repeatedly being kicked
from the server.  Use these powers with discretion.
