117 lines
2.9 KiB
Java
117 lines
2.9 KiB
Java
package xyz.etztech.serverapi;
|
|
|
|
|
|
import org.bukkit.OfflinePlayer;
|
|
import org.bukkit.World;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
import xyz.etztech.serverapi.commands.MainCommand;
|
|
import xyz.etztech.serverapi.tps.TPS;
|
|
import xyz.etztech.serverapi.web.IProvider;
|
|
import xyz.etztech.serverapi.web.Web;
|
|
import xyz.etztech.serverapi.web.api.*;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
import java.util.logging.Logger;
|
|
|
|
public class ServerAPI extends JavaPlugin implements IProvider {
|
|
|
|
private static ServerAPI instance;
|
|
private static TPS tps;
|
|
private Web web = new Web(this);
|
|
private final Logger log = Logger.getLogger( "Minecraft" );
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
instance = this;
|
|
web = new Web(this);
|
|
saveDefaultConfig();
|
|
reloadConfig();
|
|
|
|
if (isEnabled()) {
|
|
new MainCommand(this);
|
|
|
|
tps = new TPS();
|
|
getServer().getScheduler().scheduleSyncRepeatingTask(this, tps, 1000, 50);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
web.stop();
|
|
}
|
|
|
|
@Override
|
|
public void reloadConfig() {
|
|
super.reloadConfig();
|
|
web.stop();
|
|
web.start(
|
|
getConfig().getInt("port", 8080),
|
|
getConfig().getString("password", "")
|
|
);
|
|
}
|
|
|
|
public void log(String message) {
|
|
log.info( "[ServerAPI]: " + message );
|
|
}
|
|
|
|
public static ServerAPI getInstance() {
|
|
return instance;
|
|
}
|
|
|
|
public static TPS getTPS() {
|
|
return tps;
|
|
}
|
|
|
|
@Override
|
|
public TPSAPI TPS() {
|
|
return new TPSAPI(tps.getHistory());
|
|
}
|
|
|
|
@Override
|
|
public WorldAPI world(String name) {
|
|
for (World world : getServer().getWorlds()) {
|
|
if (world.getName().equalsIgnoreCase(name)) {
|
|
return WorldAPI.fromMinecraft(world);
|
|
}
|
|
}
|
|
return new WorldAPI("unknown", 0, WorldAPI.WEATHER_UNKNOWN);
|
|
}
|
|
|
|
@Override
|
|
public List<WorldAPI> worlds() {
|
|
List<WorldAPI> worldAPIS = new ArrayList<>();
|
|
for (World world : getServer().getWorlds()) {
|
|
worldAPIS.add(WorldAPI.fromMinecraft(world));
|
|
}
|
|
return worldAPIS;
|
|
}
|
|
|
|
@Override
|
|
public Set<PlayerAPI> players() {
|
|
Set<PlayerAPI> players = new HashSet<>();
|
|
for (Player player : getServer().getOnlinePlayers()) {
|
|
players.add(PlayerAPI.fromMinecraft(player));
|
|
}
|
|
return players;
|
|
}
|
|
|
|
@Override
|
|
public Set<PlayerAPI> bans() {
|
|
Set<PlayerAPI> players = new HashSet<>();
|
|
for (OfflinePlayer player : getServer().getBannedPlayers()) {
|
|
players.add(PlayerAPI.fromMinecraft(player));
|
|
}
|
|
return players;
|
|
}
|
|
|
|
@Override
|
|
public QueryAPI query() {
|
|
return QueryAPI.fromMinecraft(getServer());
|
|
}
|
|
}
|
|
|