package handling.cashshop; import database.DatabaseConnection; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.LinkedList; import java.util.List; import tools.HexTool; import tools.data.MaplePacketLittleEndianWriter; import tools.packet.PacketHelper; public class CSMenuItem { private static final List<CSMenuItem> pictureItems = new LinkedList<>(); public static void loadFromDb() { Connection con = DatabaseConnection.getConnection(); try { try (ResultSet rs = con.prepareStatement("SELECT * FROM cs_picture").executeQuery()) { while (rs.next()) { pictureItems.add(new CSMenuItem( rs.getInt("category"), rs.getInt("subcategory"), rs.getInt("parent"), rs.getString("image"), rs.getInt("sn"), rs.getInt("itemid"), rs.getByte("flag"), rs.getInt("originalPrice"), rs.getInt("salePrice"), rs.getInt("quantity"), rs.getInt("duration"), rs.getInt("likes"))); } } } catch (SQLException ex) { } } private int c, sc, p, i, sn, id, op, sp, qty, dur, likes; private final String img; private final byte flag; private CSMenuItem(int c, int sc, int p, String img, int sn, int id, byte flag, int op, int sp, int qty, int dur, int likes) { this.c = c; this.sc = sc; this.p = p; this.img = img; this.sn = sn; this.id = id; this.flag = flag; this.op = op; this.sp = sp; this.qty = qty; this.dur = dur; this.likes = likes; } public static void writeData(CSMenuItem csmi, MaplePacketLittleEndianWriter mplew) { mplew.writeInt(csmi.c); mplew.writeInt(csmi.sc); mplew.writeInt(csmi.p); mplew.writeMapleAsciiString(csmi.img); // TODO add check if cat != 4 write empty string mplew.writeInt(csmi.sn); mplew.writeInt(csmi.id); mplew.writeInt(1); mplew.writeInt(csmi.flag); mplew.writeInt(0); mplew.writeInt(0); // this one changes mplew.writeInt(csmi.op); mplew.write(HexTool.getByteArrayFromHexString("00 80 22 D6 94 EF C4 01")); // 1/1/2005 mplew.writeLong(PacketHelper.MAX_TIME); mplew.write(HexTool.getByteArrayFromHexString("00 80 22 D6 94 EF C4 01")); // 1/1/2005 mplew.writeLong(PacketHelper.MAX_TIME); mplew.writeInt(csmi.sp); mplew.writeInt(0); mplew.writeInt(csmi.qty); mplew.writeInt(csmi.dur); mplew.write(HexTool.getByteArrayFromHexString("01 00 01 00 01 00 00 00 01 00 02 00 00 00")); // flags maybe mplew.writeInt(csmi.likes); mplew.writeZeroBytes(20); } }