Improve code style

This commit is contained in:
Jakob K
2021-05-12 14:17:44 +02:00
parent 3e9b243d3d
commit cf48510756
69 changed files with 144 additions and 609 deletions

View File

@@ -9,40 +9,29 @@ import java.io.DataInputStream
internal class BungeePluginMessageResponseCallback(
val subChannel: String,
val timeoutSeconds: Int,
val onResponse: (message: DataInputStream) -> Unit
val onResponse: (message: DataInputStream) -> Unit,
) {
init {
BungeePluginMessageReceiver.registered += this
taskRunLater(20L * timeoutSeconds) {
BungeePluginMessageReceiver.registered -= this
}
}
}
private object BungeePluginMessageReceiver : PluginMessageListener {
val registered = ArrayList<BungeePluginMessageResponseCallback>()
override fun onPluginMessageReceived(channel: String, player: Player, message: ByteArray) {
if (channel != "BungeeCord") return
val msgbytes = ByteArrayInputStream(message)
val msgin = DataInputStream(msgbytes)
val subChannel = msgin.readUTF()
val callback = registered.find { it.subChannel == subChannel }
if (callback != null) {
registered -= callback
callback.onResponse.invoke(msgin)
}
}
}

View File

@@ -8,7 +8,7 @@ import org.bukkit.entity.Player
* Sends the sending player to the given server
*/
class PluginMessageConnect(
val servername: String
val servername: String,
) : BungeePluginMessagePlayerSpecific {
override fun sendWithPlayer(player: Player) = sendPluginMessageToBungeeCord(
player, "Connect", listOf(servername)
@@ -21,7 +21,7 @@ class PluginMessageConnect(
*/
class PluginMessagePlayerCount(
val servername: String,
private val response: (Int) -> Unit
private val response: (Int) -> Unit,
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"PlayerCount", listOf(servername)
@@ -35,7 +35,7 @@ class PluginMessagePlayerCount(
* on all servers.
*/
class PluginMessagePlayerCountAllServers(
private val response: (Int) -> Unit
private val response: (Int) -> Unit,
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"PlayerCount", listOf("ALL")
@@ -50,7 +50,7 @@ class PluginMessagePlayerCountAllServers(
*/
class PluginMessagePlayerList(
val servername: String,
private val response: (List<String>) -> Unit
private val response: (List<String>) -> Unit,
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"PlayerList", listOf(servername)
@@ -65,7 +65,7 @@ class PluginMessagePlayerList(
*/
class PluginMessagePlayerListAllServers(
val servername: String,
private val response: (List<String>) -> Unit
private val response: (List<String>) -> Unit,
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"PlayerList", listOf("ALL")
@@ -79,7 +79,7 @@ class PluginMessagePlayerListAllServers(
* BungeeCord network.
*/
class PluginMessageGetServers(
private val response: (List<String>) -> Unit
private val response: (List<String>) -> Unit,
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"GetServers"

View File

@@ -19,7 +19,7 @@ fun sendPluginMessageToBungeeCordRandomPlayer(
subChannel: String,
content: List<String>? = null,
responseTimeout: Int = 20,
onResponse: ((message: DataInputStream) -> Unit)? = null
onResponse: ((message: DataInputStream) -> Unit)? = null,
): Boolean {
val randomPlayer = onlinePlayers.randomOrNull()
return if (randomPlayer != null) {
@@ -43,20 +43,17 @@ fun sendPluginMessageToBungeeCord(
subChannel: String,
content: List<String>? = null,
responseTimeout: Int = 20,
onResponse: ((message: DataInputStream) -> Unit)? = null
onResponse: ((message: DataInputStream) -> Unit)? = null,
) {
val msgbytes = ByteArrayOutputStream()
val msgout = DataOutputStream(msgbytes)
try {
msgout.writeUTF(subChannel)
if (content != null)
for (messagePart in content)
msgout.writeUTF(messagePart)
} catch (e: IOException) {
e.printStackTrace()
}
@@ -65,5 +62,4 @@ fun sendPluginMessageToBungeeCord(
BungeePluginMessageResponseCallback(subChannel, responseTimeout, onResponse)
player.sendPluginMessage(KSpigotMainInstance, "BungeeCord", msgbytes.toByteArray())
}