Public Repository for the Magicbane Shadowbane Emulator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
3.5 KiB

// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.db.handlers;
import engine.Enum;
import engine.gameManager.DbManager;
import engine.objects.Petition;
import org.pmw.tinylog.Logger;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class dbPetitionHandler extends dbHandlerBase {
public dbPetitionHandler() {
}
public void CREATE_PETITION_TABLE() {
try (Connection connection = DbManager.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("CREATE TABLE IF NOT EXISTS dyn_petition " +
" (petitionNumber INT AUTO_INCREMENT NOT NULL," +
" petitionTime DATETIME," +
" primaryType VARCHAR(50)," +
" subType VARCHAR(50)," +
" message VARCHAR(255)," +
" accountID INT," +
" accountName VARCHAR(255)," +
" characterID INT," +
" characterName VARCHAR(255)," +
" location VARCHAR(255), " +
" PRIMARY KEY (petitionNumber))" +
" ENGINE = innodb ROW_FORMAT = DEFAULT;")) {
preparedStatement.executeUpdate();
} catch (SQLException e) {
Logger.error(e);
}
}
public void WRITE_PETITION_TO_TABLE(Petition petition) {
try (Connection connection = DbManager.getConnection();
//check that table exists
PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO `dyn_petition` (`petitionTime`, `primaryType`, `subType`, `accountID`, `accountName`, `characterID`, `characterName`, `location`, `message`)" +
" VALUES (?,?,?,?,?,?,?,?,?);")) {
preparedStatement.setTimestamp(1, new java.sql.Timestamp(System.currentTimeMillis()));
preparedStatement.setString(2, Enum.PetitionType.values()[petition.primaryType].name());
preparedStatement.setString(3, Enum.PetitionSubType.values()[petition.subType].name());
preparedStatement.setInt(4, petition.reportAccount.getObjectUUID());
preparedStatement.setString(5, petition.reportAccount.getUname());
preparedStatement.setInt(6, petition.reportPlayer.getObjectUUID());
preparedStatement.setString(7, petition.reportPlayer.getFirstName());
preparedStatement.setString(8, petition.playerLocation.toString());
String messageCleaned = petition.message.substring(0, Math.min(petition.message.length(), 255));
preparedStatement.setString(9, messageCleaned);
preparedStatement.executeUpdate();
} catch (SQLException e) {
Logger.error("CREATE PETITION FAILED: " + e);
}
}
}