/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package me.vaqxine.NetworkManager.utils;
import java.util.concurrent.ConcurrentHashMap;
import me.vaqxine.NetworkManager.NetworkManager;
import net.minecraft.server.v1_7_R4.MinecraftServer;
import org.bukkit.entity.Player;
import com.google.gson.Gson;
/**
*
* @author devan_000
*/
public class StatusUtils {
private static volatile NetworkManager plugin = NetworkManager.getPlugin();
private static volatile Gson gson = new Gson();
public static String getStatus() {
ConcurrentHashMap<String, Object> json = new ConcurrentHashMap<>();
ConcurrentHashMap<String, Object> players = new ConcurrentHashMap<>();
try {
final Player[] onlinePlayers = plugin.getServer().getOnlinePlayers();
for (Player playerObject : onlinePlayers) {
ConcurrentHashMap<String, Object> playerBuilder = new ConcurrentHashMap<>();
playerBuilder.put("uuid", playerObject.getUniqueId());
playerBuilder.put("health_level", playerObject.getHealth());
playerBuilder.put("food_level", playerObject.getFoodLevel());
playerBuilder.put("xp_level", playerObject.getLevel());
playerBuilder.put("air_level", playerObject.getRemainingAir());
playerBuilder.put("max_health", playerObject.getMaxHealth());
playerBuilder.put("max_air", playerObject.getMaximumAir());
playerBuilder.put("world", playerObject.getWorld().getName());
playerBuilder.put("gamemode", playerObject.getGameMode());
players.put(playerObject.getName(), playerBuilder);
}
json.put("players", players);
json.put("online", plugin.getServer().getOnlinePlayers().length);
json.put("max", plugin.getServer().getMaxPlayers());
json.put("version", plugin.getServer().getVersion());
json.put("tps", String.valueOf(Math.min(Math.round(MinecraftServer.getServer().recentTps[0] * 100.00) / 100.00, 20.00)));
return gson.toJson(json);
} finally {
json = null;
players = null;
}
}
public static String getBasicStatus() {
ConcurrentHashMap<String, Object> json = new ConcurrentHashMap<>();
json.put("online", plugin.getServer().getOnlinePlayers().length);
json.put("max", plugin.getServer().getMaxPlayers());
json.put("version", plugin.getServer().getVersion());
json.put("tps", String.valueOf(Math.min(Math.round(MinecraftServer.getServer().recentTps[0] * 100.00) / 100.00, 20.00)));
return gson.toJson(json);
}
}