doc/old/quick-n-dirty

"Quick and dirty" plugin version

This version is a quick approach to get the basic database and lock-down functionality up, to provide basic protection against name-changing for legacy-plugin setups.

Prerequisites

  • You do need to set up database access in the bukkit.yml configuration, sqlite will probably not work.
  • If you have more than 10000, 20000, past-players, uuid-lookup for past players will take "forever", currently you would have to run the task without interruption by restarting, so it might not be feasible, if you have a too big server (see below).
  • No guarantees for offline-mode! The database will not be updated with players joining in offline mode. You might still use offline mode for building the database from server data.

Build the database

Installing the plugin is not enough!
You do need to force TrustCore to build a database first. The basic steps to take are:

  • Import past player names (offline player.dat files, PermissionsEx, WorldGuard, takes a short while).
  • Run the uuid-fetching for the imported names (takes very long).

Naturally the database will be updated on the fly, for previously unknown players joining the server.

Fetch player names

Command: trustcore fetch legacynames
Permission: trustcore.command.fetch.legacynames
Running the command will import player.dat names as well as names from PermissionsEx (if you have not yet migrated that) and WorldGuard regions. The fetching is run asynchronously where possible, where not feasible it will be split into smaller tasks to keep the impact somewhat low.

Fetch UUIDs

Command: trustcore fetch uuids
Permission: trustcore.command.fetch.uuids
You do need to have fetched the legacy names first. Running this command will then start the (slow) UUID-lookup. TrustCore will post status and progress messages. This is run asynchronously and should not tax the primary thread much.

Data migration commands

TrustCore allows to migrate some external plugins data.

Migrate PermissionsEx

While it can be handy to do this efficiently with the already created local database, PermissionsEx now seems to contain a feature to convert "pre-UUID" permission files.
Because as of late, PermissionsEx would only update internals for players who join the server, however that is a big risk with name-changing. For this reason TrustCore allows to "forcibly" migrate PermissionsEx data to UUID use. This has been tested with permissions.yml file use only, it has not been tested with the latest versions of PEX!
Command: trustcore migrate permissionsex
Permission: trustcore.command.migrate.permissionsex
You do need to have run the UUID-fetching beforehand. Running this command will then alter the PEX data to use UUIDs for all name+UUID combinations that are stored in the local database.

Other features/commands

TrustCore supports tab-completion with all commands.

Find player-names

Currently a convenience command is built in to find players names by a prefix or by full text search (no extra info like UUIDs are returned, just matching names):
Command(1): trustcore find name PART
Command(2): trustcore find name PREFIX*
Permission: trustcore.command.find.name
This will run a database search for names matching the input. With a * suffix (PREFIX*), it will only return names starting with the given prefix, otherwise (PART) it'll look for names containing the given letters. The lookup is run asynchronously and should not tax the primary thread much.

Why quick and dirty?

It's horrible enough! Timing constraints and the situation of uncertainties around the Bukkit project put a stop to implement more complicated features, however the basic lock-down functionality should be operable.