PlayerDB.txt: Difference between revisions
No edit summary |
No edit summary |
||
| Line 17: | Line 17: | ||
!Data Type | !Data Type | ||
!Remarks | !Remarks | ||
!Added | |||
|- | |- | ||
|1 | |1 | ||
| Line 51: | Line 52: | ||
*'''<code>b</code>''' = player is banned. | *'''<code>b</code>''' = player is banned. | ||
*'''<code>x</code>''' = player is exempt from all bans. | *'''<code>x</code>''' = player is exempt from all bans. | ||
* | *Anything else (usually empty string) = player is neither banned nor exempt. | ||
|- | |- | ||
|7 | |7 | ||
| Line 82: | Line 83: | ||
|String | |String | ||
|Only read if UnbanDate was set. May be blank. Escaped. | |Only read if UnbanDate was set. May be blank. Escaped. | ||
|- | |||
|13 | |||
|LastFailedLoginDate | |||
|DateTime | |||
|Date of most recent failed attempt to log in (usually failed name verification). | |||
|- | |||
|14 | |||
|LastFailedLoginIP | |||
|IPAddress | |||
|IP from which player most recently tried (and failed) to log in. | |||
|- | |||
|15 | |||
|UNUSED | |||
| | |||
|Skip this column. | |||
|- | |||
|16 | |||
|FirstLoginDate | |||
|DateTime | |||
|May be "never" for players whose records were imported. | |||
|- | |||
|17 | |||
|LastLoginDate | |||
|DateTime | |||
|May be "never" for players whose records were imported. | |||
|- | |||
|18 | |||
|TotalTime | |||
|TimeSpan | |||
|May be 0 for players whose records were imported. | |||
|- | |||
|19 | |||
|BlocksBuilt | |||
|Int32 | |||
| | |||
|- | |||
|20 | |||
|BlocksDeleted | |||
|Int32 | |||
| | |||
|- | |||
|21 | |||
|TimesVisited | |||
|Int32 | |||
|May be 0 for players whose records were imported. | |||
|- | |||
|22 | |||
|MessagesWritten | |||
|Int32 | |||
| | |||
|- | |||
|23 | |||
|UNUSED | |||
| | |||
|Skip this column. | |||
|- | |||
|24 | |||
|UNUSED | |||
| | |||
|Skip this column. | |||
|} | |} | ||
Revision as of 03:54, 22 August 2013
Header
Encoding
Numbers: All numbers are nonnegative integers, written out with decimal digits. Empty Int32/Int64 fields are interpreted as 0.
Dates: Dates are saved as number of seconds since UTC Unix Timestamp. Value of "0" and empty DateTime fields are interpreted as "never" (DateTime.MinValue).
IP Addresses: IPs are serialized in dotted decimal notation (e.g. "192.168.1.1"). Only IPv4 addresses are used — no IPv6. Empty string, any invalid value, or "255.255.255.255" are interpreted as "unknown" address.
Strings: Strings are encoded as ASCII. Escaped characters are ,, \n, and \r — they are replaced with \xFF, \xFE, and \xFD respectively. There is no limit on string length. Parsing ends at the nearest comma.
Columns
(Note that order in this list starts with 1, not 0)
| Order | Name | Data Type | Remarks | Added |
|---|---|---|---|---|
| 1 | Name | String | Invalid values cause whole record to be skipped. Regex used to verify validity:
| |
| 2 | LastIP | IPAddress | May be blank ("none") for players whose records were imported. | |
| 3 | Rank | String | Full rank name. Saved as "RankName#UUID", where UUID is rank's universally unique identifier. fCraft can parse rank name without ID as well. If parsing fails, default rank is assigned to player. Not escaped. | |
| 4 | RankChangeDate | DateTime | Defaults to "never" (empty string) for players who have never been ranked. | |
| 5 | RankChangedBy | String | Defaults to empty string for players who have never been ranked. Name of a player (usually). Does not have to be a valid player name though. Escaped. | |
| 6 | BanStatus | Enum | One character enum. Defaults to empty string, meaning neither banned nor exempt.
| |
| 7 | BanDate | DateTime | Defaults to "never" (empty string) for players who have never been banned. | |
| 8 | BannedBy | String | Only read if BanDate was set. Defaults to empty string for players who have never been banned. Name of a player (usually). Does not have to be a valid player name though. Escaped. | |
| 9 | UnbanDate | DateTime | Defaults to "never" (empty string) for players who have never been banned. | |
| 10 | UnbannedBy | String | Only read if UnbanDate was set. Defaults to empty string for players who have never been unbanned. Name of a player (usually). Does not have to be a valid player name though. Escaped. | |
| 11 | BanReason | String | Only read if BanDate was set. May be blank. Escaped. | |
| 12 | UnbanReason | String | Only read if UnbanDate was set. May be blank. Escaped. | |
| 13 | LastFailedLoginDate | DateTime | Date of most recent failed attempt to log in (usually failed name verification). | |
| 14 | LastFailedLoginIP | IPAddress | IP from which player most recently tried (and failed) to log in. | |
| 15 | UNUSED | Skip this column. | ||
| 16 | FirstLoginDate | DateTime | May be "never" for players whose records were imported. | |
| 17 | LastLoginDate | DateTime | May be "never" for players whose records were imported. | |
| 18 | TotalTime | TimeSpan | May be 0 for players whose records were imported. | |
| 19 | BlocksBuilt | Int32 | ||
| 20 | BlocksDeleted | Int32 | ||
| 21 | TimesVisited | Int32 | May be 0 for players whose records were imported. | |
| 22 | MessagesWritten | Int32 | ||
| 23 | UNUSED | Skip this column. | ||
| 24 | UNUSED | Skip this column. |