kiafumi/src/main/java/moe/oko/Kiafumi/model/ServerManager.java

48 lines
1.6 KiB
Java
Raw Normal View History

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;
}
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) {
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);
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;
}
}
}