diff options
author | Dico <dico.karssiens@gmail.com> | 2018-09-27 07:03:02 +0100 |
---|---|---|
committer | Dico <dico.karssiens@gmail.com> | 2018-09-27 07:03:02 +0100 |
commit | 842e52bd92f0c67aa1906b899ce600ecb3b26bda (patch) | |
tree | f0e03e66ba0dfeb8d3aee58a09acd6889f5ee20e /src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelProviderImpl.kt | |
parent | 307b7aee4af34e47139259db7049a85c682b7be2 (diff) |
Fixes n tweaks
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelProviderImpl.kt')
-rw-r--r-- | src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelProviderImpl.kt | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelProviderImpl.kt b/src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelProviderImpl.kt index ff2fcd4..1edf849 100644 --- a/src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelProviderImpl.kt +++ b/src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelProviderImpl.kt @@ -58,8 +58,10 @@ class ParcelProviderImpl(val plugin: ParcelsPlugin) : ParcelProvider { if (worldExists) Bukkit.getWorld(worldName)!! else WorldCreator(worldName).generator(generator).createWorld().also { logger.info("Creating world $worldName") } - parcelWorld = ParcelWorldImpl(bukkitWorld, generator, worldOptions.runtime, plugin.storage, - plugin.globalPrivileges, ::DefaultParcelContainer, plugin, plugin.workDispatcher) + parcelWorld = ParcelWorldImpl( + bukkitWorld, generator, worldOptions.runtime, plugin.storage, + plugin.globalPrivileges, ::DefaultParcelContainer, plugin, plugin.jobDispatcher + ) if (!worldExists) { val time = DateTime.now() @@ -95,11 +97,18 @@ class ParcelProviderImpl(val plugin: ParcelsPlugin) : ParcelProvider { logger.info("Loading all parcel data...") val channel = plugin.storage.transmitAllParcelData() - do { - val pair = channel.receiveOrNull() ?: break - val parcel = getParcelById(pair.first) ?: continue - pair.second?.let { parcel.copyDataIgnoringDatabase(it) } - } while (true) + while (true) { + val (id, data) = channel.receiveOrNull() ?: break + val parcel = getParcelById(id) ?: continue + data?.let { parcel.copyDataIgnoringDatabase(it) } + } + + val channel2 = plugin.storage.transmitAllGlobalPrivileges() + while (true) { + val (profile, data) = channel2.receiveOrNull() ?: break + val key = profile as? PrivilegeKey ?: continue + (plugin.globalPrivileges[key] as PrivilegesHolder).copyPrivilegesFrom(data) + } logger.info("Loading data completed") _dataIsLoaded = true |