package org.starmod;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import org.starmod.api.Server;
import org.starmod.api.entity.Player;
import org.starmod.net.NetworkServer;
public class ModServer implements Server {
public static void main(String[] args) {
new ModServer();
}
private final NetworkServer networkServer;
private InetSocketAddress address;
private final Config config;
private final List<Player> players = new ArrayList<>();
public ModServer() {
this.config = ConfigFactory.load("server");
try {
String address = this.config.getString("address");
int port = this.config.getInt("port");
this.address = new InetSocketAddress(InetAddress.getByName(address), port);
} catch (UnknownHostException e) {
e.printStackTrace();
}
this.networkServer = new NetworkServer(this, this.address);
this.networkServer.run();
}
@Override
public List<Player> getPlayers() {
return players;
}
public Player getPlayer(String name) {
for (Player player : players) {
if (player.getName().equals(name))
return player;
}
return null;
}
public void addPlayer(Player player) {
players.add(player);
}
@Override
public InetSocketAddress getAddress() {
return address;
}
@Override
public void sendServerMessage(String message) {
networkServer.sendMessage(message);
}
@Override
public void shutdown() {
networkServer.shutdown();
}
public Config getConfig() {
return this.config;
}
}