MinecraftManagerPlugin/src/main/java/xyz/etztech/minecraftmanager/listeners/SessionListener.java

80 lines
2.7 KiB
Java
Raw Normal View History

2018-09-12 15:55:10 +00:00
package xyz.etztech.minecraftmanager.listeners;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
2018-09-12 15:55:10 +00:00
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import xyz.etztech.core.web.CoreWeb;
import xyz.etztech.core.web.ICallback;
import xyz.etztech.minecraftmanager.*;
import xyz.etztech.minecraftmanager.objects.MinecraftManagerThread;
import xyz.etztech.minecraftmanager.objects.ModelResponse;
2018-09-12 15:55:10 +00:00
import java.util.Map;
public class SessionListener implements Listener {
private MinecraftManager plugin;
public SessionListener(MinecraftManager minecraftManager) {
this.plugin = minecraftManager;
}
@EventHandler
public void onLogin(PlayerLoginEvent event) {
Player player = event.getPlayer();
String djangoUrl = MCMAPI.getDjangoUrl() + "plugin/login/";
Map<String, String> data = MCMAPI.setup();
data.put("username", player.getName());
data.put("uuid", player.getUniqueId().toString());
data.put("ip", event.getAddress().getHostAddress());
CoreWeb.asyncPost(plugin, djangoUrl, data);
}
@EventHandler
public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
2018-12-07 23:07:54 +00:00
MCMUtil.log(MCMUtil.globalLogger, player.getName() + " logged in.");
2018-09-12 15:55:10 +00:00
// Check for guests
if (player.hasPermission("minecraftmanager.guest")) {
Map<String, String> filters = MCMAPI.setup();
2018-09-12 15:55:10 +00:00
filters.put("username__iexact", player.getName());
CoreWeb.asyncGetCallback(plugin, MCMAPI.getModelUrl("application"), filters, new JoinCallback(player.getName()));
2018-09-12 15:55:10 +00:00
}
}
private class JoinCallback implements ICallback {
private String name;
JoinCallback(String name) {
this.name = name;
}
@Override
public void invoke(String s) {
ModelResponse response = new ModelResponse(s);
JsonArray query = response.getResults();
if (query.size() == 1) {
JsonElement element = query.get(0).getAsJsonObject().get("accepted");
boolean accepted = !element.isJsonNull() && element.getAsBoolean();
if (accepted) {
MinecraftManagerThread.action(name, true);
}
}
}
}
2018-09-12 15:55:10 +00:00
@EventHandler
public void onLogout(PlayerQuitEvent event) {
Player player = event.getPlayer();
2018-12-07 23:07:54 +00:00
MCMUtil.log(MCMUtil.globalLogger, player.getName() + " logged out.");
2018-09-12 15:55:10 +00:00
}
}