Create PluginMessagePresets.kt

This commit is contained in:
bluefireoly
2020-11-02 18:36:14 +01:00
parent 24ade8b370
commit c1877300da

View File

@@ -0,0 +1,89 @@
@file:Suppress("MemberVisibilityCanBePrivate")
package net.axay.kspigot.pluginmessages
import org.bukkit.entity.Player
/**
* Sends the sending player to the given server
*/
class PluginMessageConnect(
val servername: String
) : BungeePluginMessagePlayerSpecific {
override fun sendWithPlayer(player: Player) = sendPluginMessageToBungeeCord(
player, "Connect", listOf(servername)
)
}
/**
* Responds with the amount of players currently online
* on the given server.
*/
class PluginMessagePlayerCount(
val servername: String,
private val response: (Int) -> Unit
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"PlayerCount", listOf(servername)
) {
response.invoke(it.readInt())
}
}
/**
* Responds with the amount of players currently online
* on all servers.
*/
class PluginMessagePlayerCountAllServers(
private val response: (Int) -> Unit
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"PlayerCount", listOf("ALL")
) {
response.invoke(it.readInt())
}
}
/**
* Responds with the names of all players currently online
* on the given server.
*/
class PluginMessagePlayerList(
val servername: String,
private val response: (List<String>) -> Unit
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"PlayerList", listOf(servername)
) {
response.invoke(it.readUTF().split(", "))
}
}
/**
* Responds with the names of all players currently online
* on all servers.
*/
class PluginMessagePlayerListAllServers(
val servername: String,
private val response: (List<String>) -> Unit
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"PlayerList", listOf("ALL")
) {
response.invoke(it.readUTF().split(", "))
}
}
/**
* Responds with the names of all servers in the
* BungeeCord network.
*/
class PluginMessageGetServers(
private val response: (List<String>) -> Unit
) : BungeePluginMessageRandomPlayer {
override fun send() = sendPluginMessageToBungeeCordRandomPlayer(
"GetServers"
) {
response.invoke(it.readUTF().split(", "))
}
}