Mineplex/GOD DAMN COSMETICS/thank/ThankRepository.java

63 lines
1.9 KiB
Java
Raw Normal View History

package mineplex.core.thank;
import mineplex.core.database.MinecraftRepository;
import mineplex.database.routines.AddThank;
import mineplex.database.routines.ClaimThank;
import mineplex.serverdata.database.DBPool;
import mineplex.serverdata.database.RepositoryBase;
import mineplex.serverdata.database.column.ColumnInt;
import org.bukkit.plugin.java.JavaPlugin;
import java.sql.SQLException;
public class ThankRepository extends RepositoryBase
{
private static final String GET_THANK_DATA = "SELECT SUM(thankAmount) FROM accountThankTransactions WHERE receiverId = ? AND claimed = FALSE";
public ThankRepository()
{
super(DBPool.getAccount());
}
public boolean thank(int receiverAccountId, int senderAccountId, int thankAmount, String reason, boolean ignoreCooldown)
{
AddThank addThank = new AddThank();
addThank.setInReceiverAccountId(receiverAccountId);
addThank.setInSenderAccountId(senderAccountId);
addThank.setInThankAmount(thankAmount);
addThank.setInReason(reason);
addThank.setInIgnoreCooldown(ignoreCooldown ? (byte) 1 : 0);
addThank.execute(jooq().configuration());
return addThank.getSuccess() == 1;
}
public ClaimThankResult claimThank(int accountId)
{
ClaimThank claimThank = new ClaimThank();
claimThank.setInAccountId(accountId);
claimThank.execute(jooq().configuration());
return new ClaimThankResult(claimThank.getAmountClaimed(), claimThank.getUniqueThank());
}
/**
* Get ThankData for an accountId. This is used to reload ThankData when a player is thanked on live servers
* @param accountId The account id of the player
* @return {@link ThankData} for that player
*/
public ThankData getThankData(int accountId) throws SQLException
{
ThankData thankData = new ThankData(0);
executeQuery(GET_THANK_DATA, resultSet ->
{
if (resultSet != null && resultSet.next())
{
thankData.setThankToClaim(resultSet.getInt(1));
}
}, new ColumnInt("receiverId", accountId));
return thankData;
}
}