refactor: use try-with-resources for wedding ring db operations

This commit is contained in:
P0nk
2021-04-04 23:48:56 +02:00
parent cb518863b0
commit f1ff0cb55f

View File

@@ -21,13 +21,8 @@
*/ */
package net.server.channel.handlers; package net.server.channel.handlers;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import client.MapleClient;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient;
import client.MapleRing; import client.MapleRing;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.Item; import client.inventory.Item;
@@ -35,16 +30,21 @@ import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.processor.npc.DueyProcessor; import client.processor.npc.DueyProcessor;
import net.AbstractMaplePacketHandler; import net.AbstractMaplePacketHandler;
import net.server.world.World;
import net.server.channel.Channel; import net.server.channel.Channel;
import server.MapleItemInformationProvider; import net.server.world.World;
import scripting.event.EventInstanceManager; import scripting.event.EventInstanceManager;
import server.MapleItemInformationProvider;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.Pair;
import tools.MaplePacketCreator; import tools.MaplePacketCreator;
import tools.Pair;
import tools.data.input.SeekableLittleEndianAccessor; import tools.data.input.SeekableLittleEndianAccessor;
import tools.packets.Wedding; import tools.packets.Wedding;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/** /**
* @author Jvlaple * @author Jvlaple
* @author Ronan - major overhaul on Ring handling mechanics * @author Ronan - major overhaul on Ring handling mechanics
@@ -131,47 +131,41 @@ public final class RingActionHandler extends AbstractMaplePacketHandler {
} }
private static void eraseEngagementOffline(int characterId) { private static void eraseEngagementOffline(int characterId) {
try { try (Connection con = DatabaseConnection.getConnection()) {
Connection con = DatabaseConnection.getConnection();
eraseEngagementOffline(characterId, con); eraseEngagementOffline(characterId, con);
con.close(); } catch (SQLException sqle) {
} catch(SQLException sqle) {
sqle.printStackTrace(); sqle.printStackTrace();
} }
} }
private static void eraseEngagementOffline(int characterId, Connection con) throws SQLException { private static void eraseEngagementOffline(int characterId, Connection con) throws SQLException {
PreparedStatement ps = con.prepareStatement("UPDATE characters SET marriageItemId=-1, partnerId=-1 WHERE id=?"); try (PreparedStatement ps = con.prepareStatement("UPDATE characters SET marriageItemId=-1, partnerId=-1 WHERE id=?")) {
ps.setInt(1, characterId); ps.setInt(1, characterId);
ps.executeUpdate(); ps.executeUpdate();
}
ps.close();
} }
private static void breakEngagementOffline(int characterId) { private static void breakEngagementOffline(int characterId) {
try { try (Connection con = DatabaseConnection.getConnection();
Connection con = DatabaseConnection.getConnection(); PreparedStatement ps = con.prepareStatement("SELECT marriageItemId FROM characters WHERE id=?")) {
PreparedStatement ps = con.prepareStatement("SELECT marriageItemId FROM characters WHERE id=?");
ps.setInt(1, characterId); ps.setInt(1, characterId);
ResultSet rs = ps.executeQuery();
if (rs.next()) { try (ResultSet rs = ps.executeQuery()) {
int marriageItemId = rs.getInt("marriageItemId"); if (rs.next()) {
int marriageItemId = rs.getInt("marriageItemId");
if (marriageItemId > 0) {
PreparedStatement ps2 = con.prepareStatement("UPDATE inventoryitems SET expiration=0 WHERE itemid=? AND characterid=?"); if (marriageItemId > 0) {
ps2.setInt(1, marriageItemId); try (PreparedStatement ps2 = con.prepareStatement("UPDATE inventoryitems SET expiration=0 WHERE itemid=? AND characterid=?")) {
ps2.setInt(2, characterId); ps2.setInt(1, marriageItemId);
ps2.setInt(2, characterId);
ps2.executeUpdate();
ps2.close(); ps2.executeUpdate();
}
}
} }
} }
rs.close();
ps.close();
eraseEngagementOffline(characterId, con); eraseEngagementOffline(characterId, con);
con.close();
} catch (SQLException ex) { } catch (SQLException ex) {
System.out.println("Error updating offline breakup " + ex.getMessage()); System.out.println("Error updating offline breakup " + ex.getMessage());
} }