summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/util')
-rw-r--r--src/main/kotlin/io/dico/parcels2/util/FunctionHelper.kt53
-rw-r--r--src/main/kotlin/io/dico/parcels2/util/MainThreadDispatcher.kt31
-rw-r--r--src/main/kotlin/io/dico/parcels2/util/PluginScheduler.kt20
-rw-r--r--src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt9
-rw-r--r--src/main/kotlin/io/dico/parcels2/util/ext/Material.kt (renamed from src/main/kotlin/io/dico/parcels2/util/MaterialExtensions.kt)2
-rw-r--r--src/main/kotlin/io/dico/parcels2/util/ext/Math.kt (renamed from src/main/kotlin/io/dico/parcels2/util/NumberExtensions.kt)2
-rw-r--r--src/main/kotlin/io/dico/parcels2/util/ext/Misc.kt (renamed from src/main/kotlin/io/dico/parcels2/util/MiscExtensions.kt)2
-rw-r--r--src/main/kotlin/io/dico/parcels2/util/ext/Player.kt (renamed from src/main/kotlin/io/dico/parcels2/util/PlayerExtensions.kt)3
8 files changed, 57 insertions, 65 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/util/FunctionHelper.kt b/src/main/kotlin/io/dico/parcels2/util/FunctionHelper.kt
deleted file mode 100644
index ea16652..0000000
--- a/src/main/kotlin/io/dico/parcels2/util/FunctionHelper.kt
+++ /dev/null
@@ -1,53 +0,0 @@
-package io.dico.parcels2.util
-
-import io.dico.parcels2.ParcelsPlugin
-import kotlinx.coroutines.experimental.*
-import org.bukkit.scheduler.BukkitTask
-import kotlin.coroutines.experimental.CoroutineContext
-
-@Suppress("NOTHING_TO_INLINE")
-class FunctionHelper(val plugin: ParcelsPlugin) {
- val mainThreadDispatcher: MainThreadDispatcher = MainThreadDispatcherImpl()
-
- fun <T> deferLazilyOnMainThread(block: suspend CoroutineScope.() -> T): Deferred<T> {
- return async(context = mainThreadDispatcher, start = CoroutineStart.LAZY, block = block)
- }
-
- fun <T> deferUndispatchedOnMainThread(block: suspend CoroutineScope.() -> T): Deferred<T> {
- return async(context = mainThreadDispatcher, start = CoroutineStart.UNDISPATCHED, block = block)
- }
-
- fun launchLazilyOnMainThread(block: suspend CoroutineScope.() -> Unit): Job {
- return launch(context = mainThreadDispatcher, start = CoroutineStart.LAZY, block = block)
- }
-
- inline fun schedule(noinline task: () -> Unit) = schedule(0, task)
-
- fun schedule(delay: Int, task: () -> Unit): BukkitTask {
- return plugin.server.scheduler.runTaskLater(plugin, task, delay.toLong())
- }
-
- fun scheduleRepeating(delay: Int, interval: Int, task: () -> Unit): BukkitTask {
- return plugin.server.scheduler.runTaskTimer(plugin, task, delay.toLong(), interval.toLong())
- }
-
- abstract class MainThreadDispatcher : CoroutineDispatcher() {
- abstract val mainThread: Thread
- abstract fun runOnMainThread(task: Runnable)
- }
-
- private inner class MainThreadDispatcherImpl : MainThreadDispatcher() {
- override val mainThread: Thread = Thread.currentThread()
-
- override fun dispatch(context: CoroutineContext, block: Runnable) {
- runOnMainThread(block)
- }
-
- @Suppress("OVERRIDE_BY_INLINE")
- override inline fun runOnMainThread(task: Runnable) {
- if (Thread.currentThread() === mainThread) task.run()
- else plugin.server.scheduler.runTaskLater(plugin, task, 0)
- }
- }
-
-}
diff --git a/src/main/kotlin/io/dico/parcels2/util/MainThreadDispatcher.kt b/src/main/kotlin/io/dico/parcels2/util/MainThreadDispatcher.kt
new file mode 100644
index 0000000..b1d18ab
--- /dev/null
+++ b/src/main/kotlin/io/dico/parcels2/util/MainThreadDispatcher.kt
@@ -0,0 +1,31 @@
+package io.dico.parcels2.util
+
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.Runnable
+import org.bukkit.plugin.Plugin
+import kotlin.coroutines.CoroutineContext
+
+abstract class MainThreadDispatcher : CoroutineDispatcher() {
+ abstract val mainThread: Thread
+ abstract fun runOnMainThread(task: Runnable)
+}
+
+@Suppress("FunctionName")
+fun MainThreadDispatcher(plugin: Plugin): MainThreadDispatcher {
+ return object : MainThreadDispatcher() {
+ override val mainThread: Thread = Thread.currentThread()
+
+ override fun dispatch(context: CoroutineContext, block: Runnable) {
+ doDispatch(block)
+ }
+
+ override fun runOnMainThread(task: Runnable) {
+ doDispatch(task)
+ }
+
+ private fun doDispatch(task: Runnable) {
+ if (Thread.currentThread() === mainThread) task.run()
+ else plugin.server.scheduler.runTaskLater(plugin, task, 0)
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/kotlin/io/dico/parcels2/util/PluginScheduler.kt b/src/main/kotlin/io/dico/parcels2/util/PluginScheduler.kt
new file mode 100644
index 0000000..f29ba2b
--- /dev/null
+++ b/src/main/kotlin/io/dico/parcels2/util/PluginScheduler.kt
@@ -0,0 +1,20 @@
+package io.dico.parcels2.util
+
+import org.bukkit.plugin.Plugin
+import org.bukkit.scheduler.BukkitTask
+
+interface PluginScheduler {
+ val plugin: Plugin
+
+ fun schedule(delay: Int, task: () -> Unit): BukkitTask {
+ return plugin.server.scheduler.runTaskLater(plugin, task, delay.toLong())
+ }
+
+ fun scheduleRepeating(delay: Int, interval: Int, task: () -> Unit): BukkitTask {
+ return plugin.server.scheduler.runTaskTimer(plugin, task, delay.toLong(), interval.toLong())
+ }
+}
+
+@Suppress("NOTHING_TO_INLINE")
+inline fun PluginScheduler.schedule(noinline task: () -> Unit) = schedule(0, task)
+
diff --git a/src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt b/src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt
index bca2428..268c1b9 100644
--- a/src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt
+++ b/src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt
@@ -1,16 +1,11 @@
package io.dico.parcels2.util
+import io.dico.parcels2.util.ext.isValid
import org.bukkit.Bukkit
import java.nio.ByteBuffer
import java.util.UUID
-@Suppress("UsePropertyAccessSyntax")
-fun getPlayerNameOrDefault(uuid: UUID?, ifUnknown: String? = null): String {
- return uuid
- ?.let { getPlayerName(it) }
- ?: ifUnknown
- ?: ":unknown_name:"
-}
+const val PLAYER_NAME_PLACEHOLDER = ":unknown_name:"
fun getPlayerName(uuid: UUID): String? {
return Bukkit.getOfflinePlayer(uuid)?.takeIf { it.isValid }?.name
diff --git a/src/main/kotlin/io/dico/parcels2/util/MaterialExtensions.kt b/src/main/kotlin/io/dico/parcels2/util/ext/Material.kt
index fadd722..c375cb2 100644
--- a/src/main/kotlin/io/dico/parcels2/util/MaterialExtensions.kt
+++ b/src/main/kotlin/io/dico/parcels2/util/ext/Material.kt
@@ -1,4 +1,4 @@
-package io.dico.parcels2.util
+package io.dico.parcels2.util.ext
import org.bukkit.Material
import org.bukkit.Material.*
diff --git a/src/main/kotlin/io/dico/parcels2/util/NumberExtensions.kt b/src/main/kotlin/io/dico/parcels2/util/ext/Math.kt
index 214a797..32540fd 100644
--- a/src/main/kotlin/io/dico/parcels2/util/NumberExtensions.kt
+++ b/src/main/kotlin/io/dico/parcels2/util/ext/Math.kt
@@ -1,4 +1,4 @@
-package io.dico.parcels2.util
+package io.dico.parcels2.util.ext
fun Double.floor(): Int {
val down = toInt()
diff --git a/src/main/kotlin/io/dico/parcels2/util/MiscExtensions.kt b/src/main/kotlin/io/dico/parcels2/util/ext/Misc.kt
index 24f9401..d7feabf 100644
--- a/src/main/kotlin/io/dico/parcels2/util/MiscExtensions.kt
+++ b/src/main/kotlin/io/dico/parcels2/util/ext/Misc.kt
@@ -1,4 +1,4 @@
-package io.dico.parcels2.util
+package io.dico.parcels2.util.ext
import io.dico.parcels2.logger
import java.io.File
diff --git a/src/main/kotlin/io/dico/parcels2/util/PlayerExtensions.kt b/src/main/kotlin/io/dico/parcels2/util/ext/Player.kt
index 9604365..38402f0 100644
--- a/src/main/kotlin/io/dico/parcels2/util/PlayerExtensions.kt
+++ b/src/main/kotlin/io/dico/parcels2/util/ext/Player.kt
@@ -1,8 +1,7 @@
-package io.dico.parcels2.util
+package io.dico.parcels2.util.ext
import io.dico.dicore.Formatting
import io.dico.parcels2.ParcelsPlugin
-import io.dico.parcels2.PlayerProfile
import io.dico.parcels2.logger
import org.bukkit.OfflinePlayer
import org.bukkit.entity.Player