Make playwire-given carl spin tickets update while the player is logged in

This commit is contained in:
AlexTheCoder 2016-10-14 20:09:55 -04:00 committed by Shaun Bennett
parent 2e280d62de
commit 16b195d2ab
1 changed files with 20 additions and 8 deletions

View File

@ -19,8 +19,10 @@ import org.bukkit.plugin.java.JavaPlugin;
import org.jooq.SQLDialect;
import org.jooq.impl.DSL;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.UUID;
/**
@ -85,23 +87,33 @@ public class PlayWireManager extends MiniDbClientPlugin<PlayWireClientData>
final int accountId = _clientManager.Get(player).getAccountId();
runAsync(() ->
{
try
try (Connection c = DBPool.getAccount().getConnection(); Statement statement = c.createStatement())
{
final int newTickets = DSL.using(DBPool.getAccount(), SQLDialect.MYSQL).update(Tables.bonus).set(Tables.bonus.tickets, Tables.bonus.tickets.add(1)).
where(Tables.bonus.accountId.eq(accountId)).returning(Tables.bonus.tickets).fetchOne().getTickets();
final String query = "UPDATE bonus SET tickets = tickets + 1 WHERE accountId = " + accountId + ";SELECT tickets FROM bonus WHERE accountId = " + accountId;
statement.execute(query);
statement.getUpdateCount();
statement.getMoreResults();
ResultSet rs = statement.getResultSet();
if (rs.next())
{
final int newTickets = rs.getInt(1);
runSync(() ->
{
Managers.get(BonusManager.class).Get(player).setTickets(newTickets);
Managers.get(BonusManager.class).updateCreeperVisual(player, true, C.cAqua);
});
}
}
catch (Exception e)
{
System.out.println("Failed to award ticket to player: " + player);
e.printStackTrace();
}
});
Managers.get(BonusManager.class).addPendingExplosion(player, player.getName());
//Managers.get(BonusManager.class).addPendingExplosion(player, player.getName());
Bukkit.getScheduler().runTaskLater(getClientManager().getPlugin(), () -> UtilPlayer.message(player, ResponseType.COUNTED.getMessage()), REWARD_MESSAGE_DELAY_SECONDS * 20L);
});
}