package com.songoda.ultimatemoderation.database; import com.songoda.core.database.DataManagerAbstract; import com.songoda.core.database.DatabaseConnector; import com.songoda.ultimatemoderation.punish.AppliedPunishment; import com.songoda.ultimatemoderation.punish.PunishmentNote; import com.songoda.ultimatemoderation.punish.PunishmentType; import com.songoda.ultimatemoderation.punish.template.Template; import com.songoda.ultimatemoderation.tickets.Ticket; import com.songoda.ultimatemoderation.tickets.TicketResponse; import com.songoda.ultimatemoderation.tickets.TicketStatus; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.plugin.Plugin; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.UUID; import java.util.function.Consumer; public class DataManager extends DataManagerAbstract { public DataManager(DatabaseConnector databaseConnector, Plugin plugin) { super(databaseConnector, plugin); } public void createTemplate(Template template) { this.runAsync(() -> { try (Connection connection = this.databaseConnector.getConnection()) { String createTemplate = "INSERT INTO " + this.getTablePrefix() + "templates (punishment_type, duration, reason, name, creator) VALUES (?, ?, ?, ?, ?)"; PreparedStatement statement = connection.prepareStatement(createTemplate); statement.setString(1, template.getPunishmentType().name()); statement.setLong(2, template.getDuration()); statement.setString(3, template.getReason()); statement.setString(4, template.getName()); statement.setString(5, template.getCreator().toString()); statement.executeUpdate(); int templateId = this.lastInsertedId(connection, "templates"); template.setId(templateId); } catch (Exception ex) { ex.printStackTrace(); } }); } public void deleteTemplate(Template template) { this.runAsync(() -> { try (Connection connection = this.databaseConnector.getConnection()) { String deleteTemplate = "DELETE FROM " + this.getTablePrefix() + "templates WHERE id = ?"; PreparedStatement statement = connection.prepareStatement(deleteTemplate); statement.setLong(1, template.getId()); statement.executeUpdate(); } catch (Exception ex) { ex.printStackTrace(); } }); } public void getTemplates(Consumer> callback) { List