Updated new server handling logic
This commit is contained in:
parent
a037697369
commit
00ab06cb62
@ -3,7 +3,7 @@ package de.sh_edraft
|
|||||||
import de.sh_edraft.config.Config
|
import de.sh_edraft.config.Config
|
||||||
import de.sh_edraft.data.DataService
|
import de.sh_edraft.data.DataService
|
||||||
import de.sh_edraft.events.OnJoinListener
|
import de.sh_edraft.events.OnJoinListener
|
||||||
import de.sh_edraft.events.OnLeaveListener
|
import de.sh_edraft.events.OnLeftListener
|
||||||
import org.bukkit.plugin.java.JavaPlugin
|
import org.bukkit.plugin.java.JavaPlugin
|
||||||
|
|
||||||
open class OntimeHandlerPlugin() : JavaPlugin() {
|
open class OntimeHandlerPlugin() : JavaPlugin() {
|
||||||
@ -21,7 +21,7 @@ open class OntimeHandlerPlugin() : JavaPlugin() {
|
|||||||
this.dataService = DataService(logger, this.config)
|
this.dataService = DataService(logger, this.config)
|
||||||
|
|
||||||
server.pluginManager.registerEvents(OnJoinListener(logger, this.dataService), this)
|
server.pluginManager.registerEvents(OnJoinListener(logger, this.dataService), this)
|
||||||
server.pluginManager.registerEvents(OnLeaveListener(logger, this.dataService), this)
|
server.pluginManager.registerEvents(OnLeftListener(logger, this.dataService), this)
|
||||||
|
|
||||||
logger.info("OntimeHandlerPlugin enabled :D")
|
logger.info("OntimeHandlerPlugin enabled :D")
|
||||||
}
|
}
|
||||||
|
@ -12,31 +12,22 @@ class DataService(
|
|||||||
private val logger: Logger,
|
private val logger: Logger,
|
||||||
private val config: Config
|
private val config: Config
|
||||||
) {
|
) {
|
||||||
private fun getUserIdByPlayerIdQuery(id: String): String {
|
|
||||||
|
private fun getUserJoinedMutation(id: String): String {
|
||||||
return JSONObject(
|
return JSONObject(
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"query": "query { users(filter: { minecraftId: \"$id\" }) { id } }"
|
"query": "mutation { userJoinedGameServer { userJoined(input: { ident: \"$id\" }) { id } } }"
|
||||||
}
|
}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
).toString()
|
).toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getUserJoinedMutation(id: Int): String {
|
private fun getUserLeftMutation(id: String): String {
|
||||||
return JSONObject(
|
return JSONObject(
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"query": "mutation { userJoinedGameServer { userJoined(input: { userId: $id gameServer: \"Minecraft\" }) { id } } }"
|
"query": "mutation { userJoinedGameServer { userLeft(input: { ident: \"$id\" }) { id } } }"
|
||||||
}
|
|
||||||
""".trimIndent()
|
|
||||||
).toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getUserLeavedMutation(id: Int): String {
|
|
||||||
return JSONObject(
|
|
||||||
"""
|
|
||||||
{
|
|
||||||
"query": "mutation { userJoinedGameServer { userLeaved (input: { userId: $id gameServer: \"Minecraft\" }) { id } } }"
|
|
||||||
}
|
}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
).toString()
|
).toString()
|
||||||
@ -53,32 +44,7 @@ class DataService(
|
|||||||
return json.getString("id");
|
return json.getString("id");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun sendJoinedPlayer(id: String) {
|
||||||
fun getUserIdByPlayerId(id: String): Int? {
|
|
||||||
val client = HttpClient.newBuilder().build();
|
|
||||||
|
|
||||||
val request = HttpRequest.newBuilder()
|
|
||||||
.uri(URI.create(this.config.ApiURL))
|
|
||||||
.POST(HttpRequest.BodyPublishers.ofString(this.getUserIdByPlayerIdQuery(id)))
|
|
||||||
.header("Authorization", "API-Key ${this.config.ApiKey}")
|
|
||||||
.header("Content-Type", "application/json")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
val response = client.send(request, HttpResponse.BodyHandlers.ofString());
|
|
||||||
try {
|
|
||||||
return JSONObject(response.body())
|
|
||||||
.getJSONObject("data")
|
|
||||||
.getJSONArray("users")
|
|
||||||
.getJSONObject(0)
|
|
||||||
.getString("id")
|
|
||||||
.toIntOrNull();
|
|
||||||
} catch (e: Exception) {
|
|
||||||
logger.severe(e.message);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
fun sendJoinedPlayer(id: Int) {
|
|
||||||
val client = HttpClient.newBuilder().build();
|
val client = HttpClient.newBuilder().build();
|
||||||
|
|
||||||
val request = HttpRequest.newBuilder()
|
val request = HttpRequest.newBuilder()
|
||||||
@ -102,12 +68,12 @@ class DataService(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sendLeavedPlayer(id: Int) {
|
fun sendLeftPlayer(id: String) {
|
||||||
val client = HttpClient.newBuilder().build();
|
val client = HttpClient.newBuilder().build();
|
||||||
|
|
||||||
val request = HttpRequest.newBuilder()
|
val request = HttpRequest.newBuilder()
|
||||||
.uri(URI.create(this.config.ApiURL))
|
.uri(URI.create(this.config.ApiURL))
|
||||||
.POST(HttpRequest.BodyPublishers.ofString(this.getUserLeavedMutation(id)))
|
.POST(HttpRequest.BodyPublishers.ofString(this.getUserLeftMutation(id)))
|
||||||
.header("Authorization", "API-Key ${this.config.ApiKey}")
|
.header("Authorization", "API-Key ${this.config.ApiKey}")
|
||||||
.header("Content-Type", "application/json")
|
.header("Content-Type", "application/json")
|
||||||
.build();
|
.build();
|
||||||
|
@ -16,7 +16,6 @@ class OnJoinListener(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
val playerId = this.dataService.getPlayerGlobalId(p.player.player!!.displayName) ?: return;
|
val playerId = this.dataService.getPlayerGlobalId(p.player.player!!.displayName) ?: return;
|
||||||
val userId = this.dataService.getUserIdByPlayerId(playerId) ?: return;
|
this.dataService.sendJoinedPlayer(playerId);
|
||||||
this.dataService.sendJoinedPlayer(userId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -8,7 +8,7 @@ import org.bukkit.event.player.PlayerKickEvent
|
|||||||
import org.bukkit.event.player.PlayerQuitEvent
|
import org.bukkit.event.player.PlayerQuitEvent
|
||||||
import java.util.logging.Logger
|
import java.util.logging.Logger
|
||||||
|
|
||||||
class OnLeaveListener(
|
class OnLeftListener(
|
||||||
private val logger: Logger,
|
private val logger: Logger,
|
||||||
private val dataService: DataService
|
private val dataService: DataService
|
||||||
) : Listener {
|
) : Listener {
|
||||||
@ -18,8 +18,7 @@ class OnLeaveListener(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
val playerId = this.dataService.getPlayerGlobalId(p.player.player!!.displayName) ?: return;
|
val playerId = this.dataService.getPlayerGlobalId(p.player.player!!.displayName) ?: return;
|
||||||
val userId = this.dataService.getUserIdByPlayerId(playerId) ?: return;
|
this.dataService.sendLeftPlayer(playerId);
|
||||||
this.dataService.sendLeavedPlayer(userId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
Loading…
Reference in New Issue
Block a user