package io.shockah.skylark;
import java.sql.SQLException;
import java.util.ArrayList;
import io.shockah.skylark.db.Server;
import io.shockah.skylark.util.ReadWriteList;
public class ServerManager {
public final App app;
public final ReadWriteList<BotManager> botManagers = new ReadWriteList<>(new ArrayList<>());
public ServerManager(App app) {
this.app = app;
}
public void readFromDatabase() {
try {
/*app.databaseManager.create(Server.class, server -> {
server.name = "esper";
server.host = "irc.eu.esper.net";
server.channelsPerConnection = 50;
server.messageDelay = 333l;
server.channelNames = Arrays.asList(new String[] {
"#skylark"
});
});*/
for (Server server : app.databaseManager.getDao(Server.class).queryForAll()) {
BotManager manager = new BotManager(this, server.name, server.host);
manager.channelsPerConnection = server.channelsPerConnection;
manager.messageDelay = server.messageDelay == null ? BotManager.DEFAULT_MESSAGE_DELAY : server.messageDelay;
manager.botName = server.botName == null ? BotManager.DEFAULT_BOT_NAME : server.botName;
botManagers.add(manager);
for (String channelName : server.channelNames) {
manager.joinChannel(channelName);
}
}
} catch (SQLException e) {
throw new UnexpectedException(e);
}
}
}