Mineplex2018-withcommit/Plugins/Mineplex.Core/src/mineplex
cnr 857cf6ad30 Add PlayerKeyValueRepository and BukkitFuture
PlayerKeyValueRepository<V> is a key/value store whose keys are Strings
and whose value type is parameterized by V. Each repository is backed by
a MySQL table in the Accounts database.

Access to PlayerKeyValueRepository's values is restricted via
CompletableFuture to enforce async database access.

BukkitFuture contains helpful utilities for producing, transforming, and
terminating CompletableFutures with actions on the main thread. A
typical PlayerKeyValueRepository action may look similar to the
following, where we retrieve all key/value pairs for a player and
perform an action with the result on the main thread:

    PlayerKeyValueRepository<String> repo = [...]; // init repo
    UUID uuid = [...]; // a player's UUID

    repo.getAll(uuid).thenCompose(BukkitFuture.accept(values -> {
        // this will be run on the main thread!
        // `values` is of type `Map<String,String>`
    }));
2016-05-25 08:35:05 -05:00
..
core Add PlayerKeyValueRepository and BukkitFuture 2016-05-25 08:35:05 -05:00