81 lines
2.7 KiB
Java
81 lines
2.7 KiB
Java
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;
|
|
import org.bukkit.event.player.PlayerLoginEvent;
|
|
import org.bukkit.event.player.PlayerQuitEvent;
|
|
import xyz.etztech.core.web.Http;
|
|
import xyz.etztech.core.web.ICallback;
|
|
import xyz.etztech.minecraftmanager.MCMAPI;
|
|
import xyz.etztech.minecraftmanager.MCMUtil;
|
|
import xyz.etztech.minecraftmanager.MinecraftManager;
|
|
import xyz.etztech.minecraftmanager.objects.MinecraftManagerThread;
|
|
import xyz.etztech.minecraftmanager.objects.ModelResponse;
|
|
|
|
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());
|
|
Http.asyncPost(plugin, djangoUrl, data);
|
|
}
|
|
|
|
@EventHandler
|
|
public void onJoin(PlayerJoinEvent event) {
|
|
Player player = event.getPlayer();
|
|
MCMUtil.log(MCMUtil.globalLogger, player.getName() + " logged in.");
|
|
|
|
// Check for guests
|
|
if (player.hasPermission("minecraftmanager.guest")) {
|
|
Map<String, String> filters = MCMAPI.setup();
|
|
filters.put("username__iexact", player.getName());
|
|
Http.asyncGetCallback(plugin, MCMAPI.getModelUrl("application"), filters, new JoinCallback(player.getName()));
|
|
}
|
|
}
|
|
|
|
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");
|
|
if (!element.isJsonNull()) {
|
|
MinecraftManagerThread.action(name, element.getAsBoolean());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onLogout(PlayerQuitEvent event) {
|
|
Player player = event.getPlayer();
|
|
MCMUtil.log(MCMUtil.globalLogger, player.getName() + " logged out.");
|
|
}
|
|
|
|
|
|
}
|