2022-03-26 05:04:24 +00:00
|
|
|
package moe.oko.Kiafumi.model;
|
|
|
|
|
|
|
|
import moe.oko.Kiafumi.Kiafumi;
|
|
|
|
import net.dv8tion.jda.api.entities.Guild;
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import static moe.oko.Kiafumi.Kiafumi.error;
|
|
|
|
import static moe.oko.Kiafumi.Kiafumi.info;
|
|
|
|
|
|
|
|
public class ServerManager {
|
|
|
|
private HashMap<String, Server> servers = new HashMap<>();
|
|
|
|
|
|
|
|
public ServerManager() {
|
|
|
|
List<Server> loadedServers = Kiafumi.instance.database.loadServerInformation();
|
|
|
|
if(loadedServers == null) {
|
|
|
|
error("Failed to load servers properly. Null val on database.");
|
|
|
|
return;
|
|
|
|
}
|
2022-03-27 05:53:00 +00:00
|
|
|
HashMap<String, Server> serverHashMap = new HashMap<>();
|
|
|
|
for(Server s : loadedServers) {
|
|
|
|
info("Loading " + s + " into memory from db.");
|
|
|
|
serverHashMap.put(s.getId(), s);
|
|
|
|
}
|
|
|
|
info("Successfully loaded " + serverHashMap.size() + " servers.");
|
|
|
|
servers = serverHashMap;
|
2022-03-26 05:04:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public Server getOrCreateServer(String id) {
|
2022-03-27 05:53:00 +00:00
|
|
|
if(servers.get(id) == null) { createNewDefaultServer(Kiafumi.JDA.getGuildById(id)); }
|
|
|
|
return servers.get(id);
|
2022-03-26 05:04:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public boolean createNewDefaultServer(Guild guild) {
|
|
|
|
info("Started default server creation for " + guild.getId());
|
|
|
|
Server server = new Server(guild.getId());
|
|
|
|
if(Kiafumi.instance.getDatabase().createServerInformation(guild)) {
|
|
|
|
info("New defaults persistent for " + server);
|
2022-03-27 05:53:00 +00:00
|
|
|
servers.put(server.getId(), server);
|
2022-03-26 05:04:24 +00:00
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
error("Failed to create new defaults for " + guild.getId());
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|