Core/src/main/java/eu/univento/core/api/map/MapDatabase.java

72 lines
2.9 KiB
Java

package eu.univento.core.api.map;
import eu.univento.cloud.commons.server.ServerType;
import eu.univento.core.Core;
import org.bukkit.Material;
import java.sql.SQLException;
import java.util.ArrayList;
/**
* @author joethei
* @version 0.1
*/
public class MapDatabase {
public static Map getMap(String name) {
final Map[] map = new Map[1];
Core.getCommons().getDatabaseManager().getAsyncMySQL().query("SELECT * FROM maps WHERE name='" + name + "' INNER JOIN builder ON map.builder = builder.id;", resultSet -> {
try {
map[0] = new Map(resultSet.getString("map.name"), resultSet.getString("builder.name"), Material.valueOf(resultSet.getString("map.material")), resultSet.getString("map.link"));
} catch (SQLException e) {
e.printStackTrace();
}
});
return map[0];
}
public static ArrayList<Map> getAllMaps(String builderName) {
ArrayList<Map> maps = new ArrayList<>();
Core.getCommons().getDatabaseManager().getAsyncMySQL().query("SELECT * FROM maps WHERE builder.name='" + builderName + "' INNER JOIN builder ON map.builder = builder.id;", resultSet -> {
try {
while(resultSet.next()) {
maps.add(new Map(resultSet.getString("map.name"), resultSet.getString("builder.name"), Material.valueOf(resultSet.getString("map.material")), resultSet.getString("map.link")));
}
} catch (SQLException e) {
e.printStackTrace();
}
});
return maps;
}
public static ArrayList<Map> getAllMaps(ServerType serverType) {
ArrayList<Map> maps = new ArrayList<>();
Core.getCommons().getDatabaseManager().getAsyncMySQL().query("SELECT * FROM maps WHERE type='" + serverType.getID() + "' INNER JOIN builder ON map.builder = builder.id;", resultSet -> {
try {
while(resultSet.next()) {
maps.add(new Map(resultSet.getString("map.name"), resultSet.getString("builder.name"), Material.valueOf(resultSet.getString("map.material")), resultSet.getString("map.link")));
}
} catch (SQLException e) {
e.printStackTrace();
}
});
return maps;
}
public static ArrayList<Map> getAllMaps() {
ArrayList<Map> maps = new ArrayList<>();
Core.getCommons().getDatabaseManager().getAsyncMySQL().query("SELECT * FROM maps INNER JOIN builder ON map.builder = builder.id;", resultSet -> {
try {
while(resultSet.next()) {
maps.add(new Map(resultSet.getString("map.name"), resultSet.getString("builder.name"), Material.valueOf(resultSet.getString("map.material")), resultSet.getString("map.link")));
}
} catch (SQLException e) {
e.printStackTrace();
}
});
return maps;
}
}