40 private static final Logger logger = LogManager.getLogger(
VoteService.class);
41 private static final String CONNECTION_STRING =
"jdbc:mysql://173.82.152.23:3306/osroyjs_vote";
42 private static final String USER =
"osroyjs_exo1";
43 private static final String PASS =
"3AXbU=W7IfzX";
44 private static final Item REWARD =
new Item(7478, 1);
46 public static void claimReward(
Player player) {
47 if (!player.databaseRequest.elapsed(1, TimeUnit.MINUTES)) {
48 player.dialogueFactory.
sendStatement(
"You can only check our database once every 1 minute!").
execute();
53 player.dialogueFactory.
sendStatement(
"Please clear up some inventory spaces before doing this!").
execute();
57 boolean found =
false;
59 player.databaseRequest.reset();
61 try (Connection connection = DriverManager.getConnection(CONNECTION_STRING, USER, PASS);
62 PreparedStatement sta = connection.prepareStatement(
"SELECT * FROM fx_votes WHERE username = ? AND claimed=0 AND callback_date IS NOT NULL", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE)) {
64 sta.setString(1, player.
getName().replace(
" ",
"_"));
66 try (ResultSet rs = sta.executeQuery()) {
68 String timestamp = rs.getTimestamp(
"callback_date").toString();
69 String ipAddress = rs.getString(
"ip_address");
70 int siteId = rs.getInt(
"site_id");
73 player.inventory.
add(REWARD);
74 player.totalVotes += 1;
75 logger.info(String.format(
"[Vote] Vote claimed by %s. (sid: %d, ip: %s, time: %s)", player.
getName(), siteId, ipAddress, timestamp));
76 rs.updateInt(
"claimed", 1);
86 World.
sendMessage(
"<col=CF2192>Tarnish: <col=" + player.right.getColor() +
">" + player.
getName() +
" </col>has just voted! They have voted a total of <col=CF2192>" + player.totalVotes +
" </col>times.");
88 }
catch (SQLException ex) {
89 logger.error(String.format(
"Error claiming vote for player=%s", player.
getName()), ex);
static void activate(Player player, AchievementKey achievement)
final DialogueFactory sendStatement(String... lines)
final DialogueFactory execute()