Jump to content

PlayerDBMergeTool

From fCraft Wiki
Revision as of 08:40, 29 July 2013 by F (talk | contribs)

PlayerDBMergeTool is a specialized command-line utility intended to merge players' stats from one server with another. It requires config.xml and PlayerDB.txt from both servers. It was originally developed to facilitate the merger of Platinum Moon with fCraft.net Freebuild communities. Source code for this utility is not included on fCraft's usual source code repository at this time.

Download

Source code: PlayerDBMergeTool_source.zip (19.9 KB)

Binaries: PlayerDBMergeTool.zip (14.5 KB)

Usage

PlayerDBMergeTool /path/to/source /path/to/target

Paths can be either absolute or relative to the working directory. If both paths are not given (e.g. if you just launch the program with no parameters), you will be prompted to type them in. Information from source (first) server's PlayerDB will be merged into records in the target (second) server's PlayerDB, and saved to PlayerDB.merged.txt file in the target (second) server's directory. A detailed list of changes will be written to mergelog.txt inside the target (second) server's directory.

Back up your PlayerDB.txt file before trying out this tool, just in case!

Example

C:\servers\minecraft> PlayerDBMergeTool PM freebuild
Loading data from PM
  Loading LegacyRankMapping... 4
  Loading Ranks... 13
  Default rank: guest#M5AsamObRbaZjMz2
  Loading PlayerDB... 31500 player records (0 skipped)
  Done loading in 374 ms (84015.7 records/sec)

Loading data from freebuild
  Loading LegacyRankMapping... 7
  Loading Ranks... 10
  Default rank: guest#ecpuWZ6BuAgbVRd6
  Loading PlayerDB... 247007 player records (0 skipped)
  Done loading in 3063 ms (80617.7 records/sec)

Looking for matching player records... 6443
  AccountType changes: 890
  BlocksBuilt changes: 2872
  BlocksDeleted changes: 2972
  BlocksDrawn changes: 288
  FirstLoginDate changes: 1893
  LastLoginDate changes: 3933
  LastSeen changes: 3932
  LastIP changes: 2346
  MessagesWritten changes: 3484
  TimesBannedOthers changes: 24
  TimesKickedOthers changes: 35
  TimesVisited changes: 6443
  TotalTime changes: 6349
  Total changes: 33115

Saving to freebuild\PlayerDB.merged.txt
  Done saving in 1597 ms (154626.4 records/sec)

License

PlayerDBMergeTool is open-source and free for all uses. fCraft code and binaries are licensed and distributed under the permissive BSD-3 License, reproduced here:

Copyright (c) 2009-2013, Matvei "fragmer" Stefarov <[email protected]>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
    list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.
3. Neither the name of fNbt nor the names of its contributors may be used to
    endorse or promote products derived from this software without specific
    prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.