57 lines
1.9 KiB
Java
57 lines
1.9 KiB
Java
|
package xyz.etztech.minecraftmanager.listeners;
|
||
|
|
||
|
import com.google.gson.JsonArray;
|
||
|
import com.google.gson.JsonElement;
|
||
|
import com.google.gson.JsonObject;
|
||
|
import org.bukkit.entity.Player;
|
||
|
import org.bukkit.event.EventHandler;
|
||
|
import org.bukkit.event.EventPriority;
|
||
|
import org.bukkit.event.Listener;
|
||
|
import org.bukkit.event.player.PlayerLoginEvent;
|
||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||
|
import xyz.etztech.minecraftmanager.MCMAPI;
|
||
|
import xyz.etztech.minecraftmanager.MCMUtil;
|
||
|
import xyz.etztech.minecraftmanager.MinecraftManager;
|
||
|
import xyz.etztech.minecraftmanager.MinecraftManagerThread;
|
||
|
|
||
|
import java.util.HashMap;
|
||
|
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();
|
||
|
MCMAPI.postLogin(player.getName(), player.getUniqueId().toString(), event.getAddress().getHostAddress());
|
||
|
MCMUtil.log(MCMUtil.globalLog, player.getName() + " logged in.");
|
||
|
|
||
|
// Check for guests
|
||
|
if (player.hasPermission("minecraftmanager.guest")) {
|
||
|
Map<String, String> filters = new HashMap<>();
|
||
|
filters.put("username__iexact", player.getName());
|
||
|
JsonArray query = MCMAPI.queryModel("application", filters);
|
||
|
if (query.size() == 1) {
|
||
|
JsonElement element = query.get(0).getAsJsonObject().get("accepted");
|
||
|
boolean accepted = !element.isJsonNull() && element.getAsBoolean();
|
||
|
if (accepted) {
|
||
|
MinecraftManagerThread.action(player.getName(), true);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@EventHandler
|
||
|
public void onLogout(PlayerQuitEvent event) {
|
||
|
Player player = event.getPlayer();
|
||
|
MCMUtil.log(MCMUtil.globalLog, player.getName() + " logged out.");
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|