refactor: use try-with-resources for db operations in various handlers
This commit is contained in:
@@ -21,19 +21,12 @@
|
|||||||
*/
|
*/
|
||||||
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 java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import config.YamlConfig;
|
|
||||||
import client.MapleCharacter;
|
import client.MapleCharacter;
|
||||||
import client.MapleClient;
|
import client.MapleClient;
|
||||||
import client.inventory.Equip;
|
import client.inventory.Equip;
|
||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import client.processor.action.BuybackProcessor;
|
import client.processor.action.BuybackProcessor;
|
||||||
|
import config.YamlConfig;
|
||||||
import net.AbstractMaplePacketHandler;
|
import net.AbstractMaplePacketHandler;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import server.MTSItemInfo;
|
import server.MTSItemInfo;
|
||||||
@@ -43,6 +36,13 @@ import tools.DatabaseConnection;
|
|||||||
import tools.MaplePacketCreator;
|
import tools.MaplePacketCreator;
|
||||||
import tools.data.input.SeekableLittleEndianAccessor;
|
import tools.data.input.SeekableLittleEndianAccessor;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
public final class EnterMTSHandler extends AbstractMaplePacketHandler {
|
public final class EnterMTSHandler extends AbstractMaplePacketHandler {
|
||||||
@Override
|
@Override
|
||||||
@@ -120,10 +120,9 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler {
|
|||||||
c.announce(MaplePacketCreator.showMTSCash(c.getPlayer()));
|
c.announce(MaplePacketCreator.showMTSCash(c.getPlayer()));
|
||||||
List<MTSItemInfo> items = new ArrayList<>();
|
List<MTSItemInfo> items = new ArrayList<>();
|
||||||
int pages = 0;
|
int pages = 0;
|
||||||
try {
|
try (Connection con = DatabaseConnection.getConnection();) {
|
||||||
Connection con = DatabaseConnection.getConnection();
|
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE tab = 1 AND transfer = 0 ORDER BY id DESC LIMIT 16, 16");
|
||||||
PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE tab = 1 AND transfer = 0 ORDER BY id DESC LIMIT 16, 16");
|
ResultSet rs = ps.executeQuery()) {
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
if (rs.getInt("type") != 1) {
|
if (rs.getInt("type") != 1) {
|
||||||
Item i = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity"));
|
Item i = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity"));
|
||||||
@@ -161,17 +160,14 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler {
|
|||||||
items.add(new MTSItemInfo((Item) equip, rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
items.add(new MTSItemInfo((Item) equip, rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
|
||||||
|
|
||||||
ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items");
|
try (PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items");
|
||||||
rs = ps.executeQuery();
|
ResultSet rs = ps.executeQuery()) {
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
pages = (int) Math.ceil(rs.getInt(1) / 16);
|
pages = (int) Math.ceil(rs.getInt(1) / 16);
|
||||||
}
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -183,10 +179,10 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler {
|
|||||||
|
|
||||||
private List<MTSItemInfo> getNotYetSold(int cid) {
|
private List<MTSItemInfo> getNotYetSold(int cid) {
|
||||||
List<MTSItemInfo> items = new ArrayList<>();
|
List<MTSItemInfo> items = new ArrayList<>();
|
||||||
try {
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
Connection con = DatabaseConnection.getConnection();
|
PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE seller = ? AND transfer = 0 ORDER BY id DESC")) {
|
||||||
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE seller = ? AND transfer = 0 ORDER BY id DESC")) {
|
|
||||||
ps.setInt(1, cid);
|
ps.setInt(1, cid);
|
||||||
|
|
||||||
try (ResultSet rs = ps.executeQuery()) {
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
if (rs.getInt("type") != 1) {
|
if (rs.getInt("type") != 1) {
|
||||||
@@ -225,8 +221,6 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -235,10 +229,10 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler {
|
|||||||
|
|
||||||
private List<MTSItemInfo> getTransfer(int cid) {
|
private List<MTSItemInfo> getTransfer(int cid) {
|
||||||
List<MTSItemInfo> items = new ArrayList<>();
|
List<MTSItemInfo> items = new ArrayList<>();
|
||||||
try {
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
Connection con = DatabaseConnection.getConnection();
|
PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE transfer = 1 AND seller = ? ORDER BY id DESC")) {
|
||||||
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE transfer = 1 AND seller = ? ORDER BY id DESC")) {
|
|
||||||
ps.setInt(1, cid);
|
ps.setInt(1, cid);
|
||||||
|
|
||||||
try (ResultSet rs = ps.executeQuery()) {
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
if (rs.getInt("type") != 1) {
|
if (rs.getInt("type") != 1) {
|
||||||
@@ -277,8 +271,6 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,16 +21,16 @@
|
|||||||
*/
|
*/
|
||||||
package net.server.channel.handlers;
|
package net.server.channel.handlers;
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
import client.MapleClient;
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
|
|
||||||
import net.AbstractMaplePacketHandler;
|
import net.AbstractMaplePacketHandler;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.MaplePacketCreator;
|
import tools.MaplePacketCreator;
|
||||||
import tools.data.input.SeekableLittleEndianAccessor;
|
import tools.data.input.SeekableLittleEndianAccessor;
|
||||||
import client.MapleClient;
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
public final class NoteActionHandler extends AbstractMaplePacketHandler {
|
public final class NoteActionHandler extends AbstractMaplePacketHandler {
|
||||||
@Override
|
@Override
|
||||||
@@ -40,8 +40,9 @@ public final class NoteActionHandler extends AbstractMaplePacketHandler {
|
|||||||
String charname = slea.readMapleAsciiString();
|
String charname = slea.readMapleAsciiString();
|
||||||
String message = slea.readMapleAsciiString();
|
String message = slea.readMapleAsciiString();
|
||||||
try {
|
try {
|
||||||
if (c.getPlayer().getCashShop().isOpened())
|
if (c.getPlayer().getCashShop().isOpened()) {
|
||||||
c.announce(MaplePacketCreator.showCashInventory(c));
|
c.announce(MaplePacketCreator.showCashInventory(c));
|
||||||
|
}
|
||||||
|
|
||||||
c.getPlayer().sendNote(charname, message, (byte) 1);
|
c.getPlayer().sendNote(charname, message, (byte) 1);
|
||||||
c.getPlayer().getCashShop().decreaseNotes();
|
c.getPlayer().getCashShop().decreaseNotes();
|
||||||
@@ -56,21 +57,22 @@ public final class NoteActionHandler extends AbstractMaplePacketHandler {
|
|||||||
for (int i = 0; i < num; i++) {
|
for (int i = 0; i < num; i++) {
|
||||||
int id = slea.readInt();
|
int id = slea.readInt();
|
||||||
slea.readByte(); //Fame, but we read it from the database :)
|
slea.readByte(); //Fame, but we read it from the database :)
|
||||||
PreparedStatement ps;
|
|
||||||
try {
|
|
||||||
Connection con = DatabaseConnection.getConnection();
|
|
||||||
ps = con.prepareStatement("SELECT `fame` FROM notes WHERE id=? AND deleted=0");
|
|
||||||
ps.setInt(1, id);
|
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
if (rs.next())
|
|
||||||
fame += rs.getInt("fame");
|
|
||||||
rs.close();
|
|
||||||
|
|
||||||
ps = con.prepareStatement("UPDATE notes SET `deleted` = 1 WHERE id = ?");
|
try (Connection con = DatabaseConnection.getConnection()) {
|
||||||
|
try (PreparedStatement ps = con.prepareStatement("SELECT `fame` FROM notes WHERE id=? AND deleted=0")) {
|
||||||
|
ps.setInt(1, id);
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
fame += rs.getInt("fame");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try (PreparedStatement ps = con.prepareStatement("UPDATE notes SET `deleted` = 1 WHERE id = ?")) {
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, id);
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
ps.close();
|
}
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,19 +21,19 @@
|
|||||||
*/
|
*/
|
||||||
package net.server.channel.handlers;
|
package net.server.channel.handlers;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import client.MapleCharacter;
|
||||||
import java.sql.PreparedStatement;
|
import client.MapleClient;
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Timestamp;
|
|
||||||
import java.util.Calendar;
|
|
||||||
|
|
||||||
import net.AbstractMaplePacketHandler;
|
import net.AbstractMaplePacketHandler;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.MaplePacketCreator;
|
import tools.MaplePacketCreator;
|
||||||
import tools.data.input.SeekableLittleEndianAccessor;
|
import tools.data.input.SeekableLittleEndianAccessor;
|
||||||
import client.MapleCharacter;
|
|
||||||
import client.MapleClient;
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
@@ -84,10 +84,8 @@ public final class ReportHandler extends AbstractMaplePacketHandler {
|
|||||||
public void addReport(int reporterid, int victimid, int reason, String description, String chatlog) {
|
public void addReport(int reporterid, int victimid, int reason, String description, String chatlog) {
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
Timestamp currentTimestamp = new java.sql.Timestamp(calendar.getTime().getTime());
|
Timestamp currentTimestamp = new java.sql.Timestamp(calendar.getTime().getTime());
|
||||||
Connection con;
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
try {
|
PreparedStatement ps = con.prepareStatement("INSERT INTO reports (`reporttime`, `reporterid`, `victimid`, `reason`, `chatlog`, `description`) VALUES (?, ?, ?, ?, ?, ?)")) {
|
||||||
con = DatabaseConnection.getConnection();
|
|
||||||
PreparedStatement ps = con.prepareStatement("INSERT INTO reports (`reporttime`, `reporterid`, `victimid`, `reason`, `chatlog`, `description`) VALUES (?, ?, ?, ?, ?, ?)");
|
|
||||||
ps.setString(1, currentTimestamp.toGMTString().toString());
|
ps.setString(1, currentTimestamp.toGMTString().toString());
|
||||||
ps.setInt(2, reporterid);
|
ps.setInt(2, reporterid);
|
||||||
ps.setInt(3, victimid);
|
ps.setInt(3, victimid);
|
||||||
@@ -96,8 +94,6 @@ public final class ReportHandler extends AbstractMaplePacketHandler {
|
|||||||
ps.setString(6, description);
|
ps.setString(6, description);
|
||||||
ps.addBatch();
|
ps.addBatch();
|
||||||
ps.executeBatch();
|
ps.executeBatch();
|
||||||
ps.close();
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,10 +21,9 @@
|
|||||||
*/
|
*/
|
||||||
package net.server.channel.handlers;
|
package net.server.channel.handlers;
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
import client.MapleCharacter;
|
||||||
import java.sql.ResultSet;
|
import client.MapleClient;
|
||||||
import java.sql.SQLException;
|
import client.autoban.AutobanFactory;
|
||||||
|
|
||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import net.AbstractMaplePacketHandler;
|
import net.AbstractMaplePacketHandler;
|
||||||
import net.server.world.World;
|
import net.server.world.World;
|
||||||
@@ -33,10 +32,11 @@ import tools.FilePrinter;
|
|||||||
import tools.LogHelper;
|
import tools.LogHelper;
|
||||||
import tools.MaplePacketCreator;
|
import tools.MaplePacketCreator;
|
||||||
import tools.data.input.SeekableLittleEndianAccessor;
|
import tools.data.input.SeekableLittleEndianAccessor;
|
||||||
import client.MapleCharacter;
|
|
||||||
import client.MapleClient;
|
|
||||||
import client.autoban.AutobanFactory;
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -101,20 +101,18 @@ public final class WhisperHandler extends AbstractMaplePacketHandler {
|
|||||||
c.announce(MaplePacketCreator.getFindReply(victim.getName(), victim.getMap().getId(), 1));
|
c.announce(MaplePacketCreator.getFindReply(victim.getName(), victim.getMap().getId(), 1));
|
||||||
}
|
}
|
||||||
} else if (c.getPlayer().isGM()) { // not found
|
} else if (c.getPlayer().isGM()) { // not found
|
||||||
try {
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
Connection con = DatabaseConnection.getConnection();
|
PreparedStatement ps = con.prepareStatement("SELECT gm FROM characters WHERE name = ?")) {
|
||||||
PreparedStatement ps = con.prepareStatement("SELECT gm FROM characters WHERE name = ?");
|
|
||||||
ps.setString(1, recipient);
|
ps.setString(1, recipient);
|
||||||
ResultSet rs = ps.executeQuery();
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
if (rs.getInt("gm") >= c.getPlayer().gmLevel()) {
|
if (rs.getInt("gm") >= c.getPlayer().gmLevel()) {
|
||||||
c.announce(MaplePacketCreator.getWhisperReply(recipient, (byte) 0));
|
c.announce(MaplePacketCreator.getWhisperReply(recipient, (byte) 0));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
|
||||||
con.close();
|
|
||||||
byte channel = (byte) (c.getWorldServer().find(recipient) - 1);
|
byte channel = (byte) (c.getWorldServer().find(recipient) - 1);
|
||||||
if (channel > -1) {
|
if (channel > -1) {
|
||||||
c.announce(MaplePacketCreator.getFindReply(recipient, channel, 3));
|
c.announce(MaplePacketCreator.getFindReply(recipient, channel, 3));
|
||||||
|
|||||||
@@ -21,11 +21,6 @@
|
|||||||
*/
|
*/
|
||||||
package net.server.handlers.login;
|
package net.server.handlers.login;
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
|
|
||||||
import client.MapleClient;
|
import client.MapleClient;
|
||||||
import client.MapleFamily;
|
import client.MapleFamily;
|
||||||
import net.AbstractMaplePacketHandler;
|
import net.AbstractMaplePacketHandler;
|
||||||
@@ -35,6 +30,11 @@ import tools.FilePrinter;
|
|||||||
import tools.MaplePacketCreator;
|
import tools.MaplePacketCreator;
|
||||||
import tools.data.input.SeekableLittleEndianAccessor;
|
import tools.data.input.SeekableLittleEndianAccessor;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
public final class DeleteCharHandler extends AbstractMaplePacketHandler {
|
public final class DeleteCharHandler extends AbstractMaplePacketHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -47,8 +47,11 @@ public final class DeleteCharHandler extends AbstractMaplePacketHandler {
|
|||||||
PreparedStatement ps = con.prepareStatement("SELECT `world`, `guildid`, `guildrank`, `familyId` FROM characters WHERE id = ?");
|
PreparedStatement ps = con.prepareStatement("SELECT `world`, `guildid`, `guildrank`, `familyId` FROM characters WHERE id = ?");
|
||||||
PreparedStatement ps2 = con.prepareStatement("SELECT COUNT(*) as rowcount FROM worldtransfers WHERE `characterid` = ? AND completionTime IS NULL")) {
|
PreparedStatement ps2 = con.prepareStatement("SELECT COUNT(*) as rowcount FROM worldtransfers WHERE `characterid` = ? AND completionTime IS NULL")) {
|
||||||
ps.setInt(1, cid);
|
ps.setInt(1, cid);
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
if(!rs.next()) throw new SQLException("Character record does not exist.");
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (!rs.next()) {
|
||||||
|
throw new SQLException("Character record does not exist.");
|
||||||
|
}
|
||||||
int world = rs.getInt("world");
|
int world = rs.getInt("world");
|
||||||
int guildId = rs.getInt("guildid");
|
int guildId = rs.getInt("guildid");
|
||||||
int guildRank = rs.getInt("guildrank");
|
int guildRank = rs.getInt("guildrank");
|
||||||
@@ -63,14 +66,16 @@ public final class DeleteCharHandler extends AbstractMaplePacketHandler {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
}
|
||||||
|
|
||||||
ps2.setInt(1, cid);
|
ps2.setInt(1, cid);
|
||||||
rs = ps2.executeQuery();
|
try (ResultSet rs = ps2.executeQuery()) {
|
||||||
rs.next();
|
rs.next();
|
||||||
if (rs.getInt("rowcount") > 0) {
|
if (rs.getInt("rowcount") > 0) {
|
||||||
c.announce(MaplePacketCreator.deleteCharResponse(cid, 0x1A));
|
c.announce(MaplePacketCreator.deleteCharResponse(cid, 0x1A));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
c.announce(MaplePacketCreator.deleteCharResponse(cid, 0x09));
|
c.announce(MaplePacketCreator.deleteCharResponse(cid, 0x09));
|
||||||
|
|||||||
Reference in New Issue
Block a user