36public final class DonationService {
37 private static final Logger logger = LogManager.getLogger(DonationService.class);
38 private static final String USER =
"osroyjs_exo1";
39 private static final String PASS =
"3AXbU=W7IfzX";
40 private static final String CONNECTION_STRING =
"jdbc:mysql://173.82.152.23:3306/osroyjs_store_2";
42 private DonationService() {
46 public static void claimDonation(
Player player) {
47 if (!player.databaseRequest.elapsed(1, TimeUnit.MINUTES)) {
48 player.dialogueFactory.
sendNpcChat(5523,
"You can only check our database once every 1 minute!").
execute();
52 if (!player.inventory.
isEmpty()) {
58 boolean claimed =
false;
59 player.databaseRequest.reset();
61 try(Connection connection = DriverManager.getConnection(CONNECTION_STRING, USER, PASS);
62 PreparedStatement sta = connection.prepareStatement(
"SELECT * FROM payments WHERE player_name = ? AND status='Completed' AND claimed=0", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE)) {
63 sta.setString(1, player.
getName().replace(
"_",
" "));
65 ResultSet rs = sta.executeQuery();
69 final int itemNumber = rs.getInt(
"item_number");
70 final int quantity = rs.getInt(
"quantity");
75 if (player.inventory.
add(
new Item(
DonatorBond.BOND_10.item, quantity))) {
82 if (player.inventory.
add(
new Item(
DonatorBond.BOND_50.item, quantity))) {
89 if (player.inventory.
add(
new Item(
DonatorBond.BOND_100.item, quantity))) {
96 if (player.inventory.
add(
new Item(
DonatorBond.BOND_200.item, quantity))) {
103 if (player.inventory.
add(
new Item(
DonatorBond.BOND_500.item, quantity))) {
110 rs.updateInt(
"claimed", 1);
117 player.dialogueFactory.
sendNpcChat(5523,
"There is no donation reward for you to claim!").
execute();
122 }
catch (SQLException ex) {
123 logger.error(String.format(
"Failed to claim donation for player=%s", player.
getName()), ex);
final DialogueFactory sendStatement(String... lines)
final DialogueFactory sendNpcChat(int id, String... lines)
final DialogueFactory execute()