Merge pull request #6 from truongdatnhan/eclipse
Moving checking null for storage to when loading character
This commit is contained in:
@@ -7405,6 +7405,15 @@ public class Character extends AbstractCharacterObject {
|
|||||||
|
|
||||||
ret.buddylist.loadFromDb(charid);
|
ret.buddylist.loadFromDb(charid);
|
||||||
ret.storage = wserv.getAccountStorage(ret.accountid);
|
ret.storage = wserv.getAccountStorage(ret.accountid);
|
||||||
|
/*
|
||||||
|
* Bugs when player first time into server
|
||||||
|
* The storage won't exist so nothing to load
|
||||||
|
* and must wait until next login
|
||||||
|
*/
|
||||||
|
if(ret.storage == null) {
|
||||||
|
wserv.loadAccountStorage(ret.accountid);
|
||||||
|
ret.storage = wserv.getAccountStorage(ret.accountid);
|
||||||
|
}
|
||||||
|
|
||||||
int startHp = ret.hp, startMp = ret.mp;
|
int startHp = ret.hp, startMp = ret.mp;
|
||||||
ret.reapplyLocalStats();
|
ret.reapplyLocalStats();
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public class FaceCommand extends Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Character victim = c.getChannelServer().getPlayerStorage().getCharacterByName(params[0]);
|
Character victim = c.getChannelServer().getPlayerStorage().getCharacterByName(params[0]);
|
||||||
if (victim == null) {
|
if (victim != null) {
|
||||||
victim.setFace(itemId);
|
victim.setFace(itemId);
|
||||||
victim.updateSingleStat(Stat.FACE, itemId);
|
victim.updateSingleStat(Stat.FACE, itemId);
|
||||||
victim.equipChanged();
|
victim.equipChanged();
|
||||||
|
|||||||
@@ -538,7 +538,8 @@ public class InventoryManipulator {
|
|||||||
|
|
||||||
itemChanged = true;
|
itemChanged = true;
|
||||||
}
|
}
|
||||||
if (dst == -6) { // unequip the overall
|
switch (dst) {
|
||||||
|
case -6: // unequip the overall
|
||||||
Item top = eqpdInv.getItem((short) -5);
|
Item top = eqpdInv.getItem((short) -5);
|
||||||
if (top != null && ItemConstants.isOverall(top.getItemId())) {
|
if (top != null && ItemConstants.isOverall(top.getItemId())) {
|
||||||
if (eqpInv.isFull()) {
|
if (eqpInv.isFull()) {
|
||||||
@@ -548,7 +549,8 @@ public class InventoryManipulator {
|
|||||||
}
|
}
|
||||||
unequip(c, (byte) -5, eqpInv.getNextFreeSlot());
|
unequip(c, (byte) -5, eqpInv.getNextFreeSlot());
|
||||||
}
|
}
|
||||||
} else if (dst == -5) {
|
break;
|
||||||
|
case -5:
|
||||||
final Item bottom = eqpdInv.getItem((short) -6);
|
final Item bottom = eqpdInv.getItem((short) -6);
|
||||||
if (bottom != null && ItemConstants.isOverall(source.getItemId())) {
|
if (bottom != null && ItemConstants.isOverall(source.getItemId())) {
|
||||||
if (eqpInv.isFull()) {
|
if (eqpInv.isFull()) {
|
||||||
@@ -558,7 +560,8 @@ public class InventoryManipulator {
|
|||||||
}
|
}
|
||||||
unequip(c, (byte) -6, eqpInv.getNextFreeSlot());
|
unequip(c, (byte) -6, eqpInv.getNextFreeSlot());
|
||||||
}
|
}
|
||||||
} else if (dst == -10) {// check if weapon is two-handed
|
break;
|
||||||
|
case -10: // check if weapon is two-handed
|
||||||
Item weapon = eqpdInv.getItem((short) -11);
|
Item weapon = eqpdInv.getItem((short) -11);
|
||||||
if (weapon != null && ii.isTwoHanded(weapon.getItemId())) {
|
if (weapon != null && ii.isTwoHanded(weapon.getItemId())) {
|
||||||
if (eqpInv.isFull()) {
|
if (eqpInv.isFull()) {
|
||||||
@@ -568,7 +571,8 @@ public class InventoryManipulator {
|
|||||||
}
|
}
|
||||||
unequip(c, (byte) -11, eqpInv.getNextFreeSlot());
|
unequip(c, (byte) -11, eqpInv.getNextFreeSlot());
|
||||||
}
|
}
|
||||||
} else if (dst == -11) {
|
break;
|
||||||
|
case -11:
|
||||||
Item shield = eqpdInv.getItem((short) -10);
|
Item shield = eqpdInv.getItem((short) -10);
|
||||||
if (shield != null && ii.isTwoHanded(source.getItemId())) {
|
if (shield != null && ii.isTwoHanded(source.getItemId())) {
|
||||||
if (eqpInv.isFull()) {
|
if (eqpInv.isFull()) {
|
||||||
@@ -578,11 +582,12 @@ public class InventoryManipulator {
|
|||||||
}
|
}
|
||||||
unequip(c, (byte) -10, eqpInv.getNextFreeSlot());
|
unequip(c, (byte) -10, eqpInv.getNextFreeSlot());
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
if (dst == -18) {
|
case -18:
|
||||||
if (chr.getMount() != null) {
|
if (chr.getMount() != null) {
|
||||||
chr.getMount().setItemId(source.getItemId());
|
chr.getMount().setItemId(source.getItemId());
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//1112413, 1112414, 1112405 (Lilin's Ring)
|
//1112413, 1112414, 1112405 (Lilin's Ring)
|
||||||
|
|||||||
@@ -60,7 +60,8 @@ public class StorageProcessor {
|
|||||||
|
|
||||||
if (c.tryacquireClient()) {
|
if (c.tryacquireClient()) {
|
||||||
try {
|
try {
|
||||||
if (mode == 4) { // take out
|
switch (mode) {
|
||||||
|
case 4: { // take out
|
||||||
byte type = p.readByte();
|
byte type = p.readByte();
|
||||||
byte slot = p.readByte();
|
byte slot = p.readByte();
|
||||||
if (slot < 0 || slot > storage.getSlots()) { // removal starts at zero
|
if (slot < 0 || slot > storage.getSlots()) { // removal starts at zero
|
||||||
@@ -104,14 +105,17 @@ public class StorageProcessor {
|
|||||||
c.sendPacket(PacketCreator.getStorageError((byte) 0x0A));
|
c.sendPacket(PacketCreator.getStorageError((byte) 0x0A));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (mode == 5) { // store
|
break;
|
||||||
|
}
|
||||||
|
case 5: { // store
|
||||||
short slot = p.readShort();
|
short slot = p.readShort();
|
||||||
int itemId = p.readInt();
|
int itemId = p.readInt();
|
||||||
short quantity = p.readShort();
|
short quantity = p.readShort();
|
||||||
InventoryType invType = ItemConstants.getInventoryType(itemId);
|
InventoryType invType = ItemConstants.getInventoryType(itemId);
|
||||||
Inventory inv = chr.getInventory(invType);
|
Inventory inv = chr.getInventory(invType);
|
||||||
if (slot < 1 || slot > inv.getSlotLimit()) { //player inv starts at one
|
if (slot < 1 || slot > inv.getSlotLimit()) { // player inv starts at one
|
||||||
AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit with storage.");
|
AutobanFactory.PACKET_EDIT.alert(c.getPlayer(),
|
||||||
|
c.getPlayer().getName() + " tried to packet edit with storage.");
|
||||||
log.warn("Chr {} tried to store item at slot {}", c.getPlayer().getName(), slot);
|
log.warn("Chr {} tried to store item at slot {}", c.getPlayer().getName(), slot);
|
||||||
c.disconnect(true, false);
|
c.disconnect(true, false);
|
||||||
return;
|
return;
|
||||||
@@ -124,7 +128,6 @@ public class StorageProcessor {
|
|||||||
c.sendPacket(PacketCreator.getStorageError((byte) 0x11));
|
c.sendPacket(PacketCreator.getStorageError((byte) 0x11));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int storeFee = storage.getStoreFee();
|
int storeFee = storage.getStoreFee();
|
||||||
if (chr.getMeso() < storeFee) {
|
if (chr.getMeso() < storeFee) {
|
||||||
c.sendPacket(PacketCreator.getStorageError((byte) 0x0B));
|
c.sendPacket(PacketCreator.getStorageError((byte) 0x0B));
|
||||||
@@ -134,7 +137,8 @@ public class StorageProcessor {
|
|||||||
inv.lockInventory(); // thanks imbee for pointing a dupe within storage
|
inv.lockInventory(); // thanks imbee for pointing a dupe within storage
|
||||||
try {
|
try {
|
||||||
item = inv.getItem(slot);
|
item = inv.getItem(slot);
|
||||||
if (item != null && item.getItemId() == itemId && (item.getQuantity() >= quantity || ItemConstants.isRechargeable(itemId))) {
|
if (item != null && item.getItemId() == itemId
|
||||||
|
&& (item.getQuantity() >= quantity || ItemConstants.isRechargeable(itemId))) {
|
||||||
if (ItemId.isWeddingRing(itemId) || ItemId.isWeddingToken(itemId)) {
|
if (ItemId.isWeddingRing(itemId) || ItemId.isWeddingToken(itemId)) {
|
||||||
c.sendPacket(PacketCreator.enableActions());
|
c.sendPacket(PacketCreator.enableActions());
|
||||||
return;
|
return;
|
||||||
@@ -167,12 +171,15 @@ public class StorageProcessor {
|
|||||||
log.debug("Chr {} stored {}x {} ({})", c.getPlayer().getName(), item.getQuantity(), itemName, item.getItemId());
|
log.debug("Chr {} stored {}x {} ({})", c.getPlayer().getName(), item.getQuantity(), itemName, item.getItemId());
|
||||||
storage.sendStored(c, ItemConstants.getInventoryType(itemId));
|
storage.sendStored(c, ItemConstants.getInventoryType(itemId));
|
||||||
}
|
}
|
||||||
} else if (mode == 6) { // arrange items
|
break;
|
||||||
|
}
|
||||||
|
case 6: // arrange items
|
||||||
if (YamlConfig.config.server.USE_STORAGE_ITEM_SORT) {
|
if (YamlConfig.config.server.USE_STORAGE_ITEM_SORT) {
|
||||||
storage.arrangeItems(c);
|
storage.arrangeItems(c);
|
||||||
}
|
}
|
||||||
c.sendPacket(PacketCreator.enableActions());
|
c.sendPacket(PacketCreator.enableActions());
|
||||||
} else if (mode == 7) { // meso
|
break;
|
||||||
|
case 7: { // meso
|
||||||
int meso = p.readInt();
|
int meso = p.readInt();
|
||||||
int storageMesos = storage.getMeso();
|
int storageMesos = storage.getMeso();
|
||||||
int playerMesos = chr.getMeso();
|
int playerMesos = chr.getMeso();
|
||||||
@@ -199,8 +206,11 @@ public class StorageProcessor {
|
|||||||
c.sendPacket(PacketCreator.enableActions());
|
c.sendPacket(PacketCreator.enableActions());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else if (mode == 8) {// close... unless the player decides to enter cash shop!
|
break;
|
||||||
|
}
|
||||||
|
case 8: // close... unless the player decides to enter cash shop!
|
||||||
storage.close();
|
storage.close();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
c.releaseClient();
|
c.releaseClient();
|
||||||
|
|||||||
@@ -418,7 +418,8 @@ public class AssignAPProcessor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int newVal = 0;
|
int newVal = 0;
|
||||||
if (type.equals(Stat.STR)) {
|
switch (type) {
|
||||||
|
case STR:
|
||||||
newVal = statUpdate[0] + gain;
|
newVal = statUpdate[0] + gain;
|
||||||
if (newVal > YamlConfig.config.server.MAX_AP) {
|
if (newVal > YamlConfig.config.server.MAX_AP) {
|
||||||
statGain[0] += (gain - (newVal - YamlConfig.config.server.MAX_AP));
|
statGain[0] += (gain - (newVal - YamlConfig.config.server.MAX_AP));
|
||||||
@@ -427,7 +428,8 @@ public class AssignAPProcessor {
|
|||||||
statGain[0] += gain;
|
statGain[0] += gain;
|
||||||
statUpdate[0] = newVal;
|
statUpdate[0] = newVal;
|
||||||
}
|
}
|
||||||
} else if (type.equals(Stat.INT)) {
|
break;
|
||||||
|
case INT:
|
||||||
newVal = statUpdate[3] + gain;
|
newVal = statUpdate[3] + gain;
|
||||||
if (newVal > YamlConfig.config.server.MAX_AP) {
|
if (newVal > YamlConfig.config.server.MAX_AP) {
|
||||||
statGain[3] += (gain - (newVal - YamlConfig.config.server.MAX_AP));
|
statGain[3] += (gain - (newVal - YamlConfig.config.server.MAX_AP));
|
||||||
@@ -436,7 +438,8 @@ public class AssignAPProcessor {
|
|||||||
statGain[3] += gain;
|
statGain[3] += gain;
|
||||||
statUpdate[3] = newVal;
|
statUpdate[3] = newVal;
|
||||||
}
|
}
|
||||||
} else if (type.equals(Stat.LUK)) {
|
break;
|
||||||
|
case LUK:
|
||||||
newVal = statUpdate[2] + gain;
|
newVal = statUpdate[2] + gain;
|
||||||
if (newVal > YamlConfig.config.server.MAX_AP) {
|
if (newVal > YamlConfig.config.server.MAX_AP) {
|
||||||
statGain[2] += (gain - (newVal - YamlConfig.config.server.MAX_AP));
|
statGain[2] += (gain - (newVal - YamlConfig.config.server.MAX_AP));
|
||||||
@@ -445,7 +448,8 @@ public class AssignAPProcessor {
|
|||||||
statGain[2] += gain;
|
statGain[2] += gain;
|
||||||
statUpdate[2] = newVal;
|
statUpdate[2] = newVal;
|
||||||
}
|
}
|
||||||
} else if (type.equals(Stat.DEX)) {
|
break;
|
||||||
|
case DEX:
|
||||||
newVal = statUpdate[1] + gain;
|
newVal = statUpdate[1] + gain;
|
||||||
if (newVal > YamlConfig.config.server.MAX_AP) {
|
if (newVal > YamlConfig.config.server.MAX_AP) {
|
||||||
statGain[1] += (gain - (newVal - YamlConfig.config.server.MAX_AP));
|
statGain[1] += (gain - (newVal - YamlConfig.config.server.MAX_AP));
|
||||||
@@ -454,6 +458,7 @@ public class AssignAPProcessor {
|
|||||||
statGain[1] += gain;
|
statGain[1] += gain;
|
||||||
statUpdate[1] = newVal;
|
statUpdate[1] = newVal;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newVal > YamlConfig.config.server.MAX_AP) {
|
if (newVal > YamlConfig.config.server.MAX_AP) {
|
||||||
|
|||||||
@@ -1934,13 +1934,7 @@ public class Server {
|
|||||||
new Thread(() -> System.exit(0)).start();
|
new Thread(() -> System.exit(0)).start();
|
||||||
} else {
|
} else {
|
||||||
log.info("Restarting the server...");
|
log.info("Restarting the server...");
|
||||||
try {
|
|
||||||
instance.finalize();//FUU I CAN AND IT'S FREE
|
|
||||||
} catch (Throwable ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
instance = null;
|
instance = null;
|
||||||
System.gc();
|
|
||||||
getInstance().init();//DID I DO EVERYTHING?! D:
|
getInstance().init();//DID I DO EVERYTHING?! D:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -303,28 +303,24 @@ public final class BBSOperationHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
try (Connection con = DatabaseConnection.getConnection()) {
|
try (Connection con = DatabaseConnection.getConnection()) {
|
||||||
// TODO clean up this block and use try-with-resources
|
// TODO clean up this block and use try-with-resources
|
||||||
PreparedStatement ps2;
|
|
||||||
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM bbs_threads WHERE guildid = ? AND " + (bIsThreadIdLocal ? "local" : "") + "threadid = ?")) {
|
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM bbs_threads WHERE guildid = ? AND " + (bIsThreadIdLocal ? "local" : "") + "threadid = ?")) {
|
||||||
ps.setInt(1, mc.getGuildId());
|
ps.setInt(1, mc.getGuildId());
|
||||||
ps.setInt(2, threadid);
|
ps.setInt(2, threadid);
|
||||||
ResultSet threadRS = ps.executeQuery();
|
ResultSet threadRS = ps.executeQuery();
|
||||||
if (!threadRS.next()) {
|
if (!threadRS.next()) {
|
||||||
threadRS.close();
|
|
||||||
ps.close();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ResultSet repliesRS = null;
|
ResultSet repliesRS = null;
|
||||||
ps2 = null;
|
try (PreparedStatement ps2 = con.prepareStatement("SELECT * FROM bbs_replies WHERE threadid = ?")) {
|
||||||
if (threadRS.getInt("replycount") >= 0) {
|
if (threadRS.getInt("replycount") >= 0) {
|
||||||
ps2 = con.prepareStatement("SELECT * FROM bbs_replies WHERE threadid = ?");
|
|
||||||
ps2.setInt(1, !bIsThreadIdLocal ? threadid : threadRS.getInt("threadid"));
|
ps2.setInt(1, !bIsThreadIdLocal ? threadid : threadRS.getInt("threadid"));
|
||||||
repliesRS = ps2.executeQuery();
|
repliesRS = ps2.executeQuery();
|
||||||
}
|
}
|
||||||
client.sendPacket(GuildPackets.showThread(bIsThreadIdLocal ? threadid : threadRS.getInt("localthreadid"), threadRS, repliesRS));
|
client.sendPacket(GuildPackets.showThread(bIsThreadIdLocal ? threadid : threadRS.getInt("localthreadid"), threadRS, repliesRS));
|
||||||
repliesRS.close();
|
|
||||||
}
|
}
|
||||||
if (ps2 != null) {
|
/* repliesRS.close();
|
||||||
ps2.close();
|
* Don't need because ResultSet will be closed
|
||||||
|
* when associated Statement close*/
|
||||||
}
|
}
|
||||||
} catch (SQLException se) {
|
} catch (SQLException se) {
|
||||||
log.error("Error displaying thread", se);
|
log.error("Error displaying thread", se);
|
||||||
|
|||||||
@@ -61,7 +61,8 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
if (p.available() > 0) {
|
if (p.available() > 0) {
|
||||||
byte op = p.readByte();
|
byte op = p.readByte();
|
||||||
if (op == 2) { //put item up for sale
|
switch (op) {
|
||||||
|
case 2: { //put item up for sale
|
||||||
byte itemtype = p.readByte();
|
byte itemtype = p.readByte();
|
||||||
int itemid = p.readInt();
|
int itemid = p.readInt();
|
||||||
p.readShort();
|
p.readShort();
|
||||||
@@ -72,7 +73,7 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
} else {
|
} else {
|
||||||
stars = p.readShort();
|
stars = p.readShort();
|
||||||
}
|
}
|
||||||
p.readString(); //another useless thing (owner)
|
p.readString(); // another useless thing (owner)
|
||||||
if (itemtype == 1) {
|
if (itemtype == 1) {
|
||||||
p.skip(32);
|
p.skip(32);
|
||||||
} else {
|
} else {
|
||||||
@@ -108,26 +109,19 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
InventoryType invType = ItemConstants.getInventoryType(itemid);
|
InventoryType invType = ItemConstants.getInventoryType(itemid);
|
||||||
Item i = c.getPlayer().getInventory(invType).getItem(slot).copy();
|
Item i = c.getPlayer().getInventory(invType).getItem(slot).copy();
|
||||||
if (i != null && c.getPlayer().getMeso() >= 5000) {
|
if (i != null && c.getPlayer().getMeso() >= 5000) {
|
||||||
Connection con = null;
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
try {
|
PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE seller = ?");) {
|
||||||
con = DatabaseConnection.getConnection();
|
|
||||||
|
|
||||||
PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE seller = ?");
|
|
||||||
ps.setInt(1, c.getPlayer().getId());
|
ps.setInt(1, c.getPlayer().getId());
|
||||||
ResultSet rs = ps.executeQuery();
|
ResultSet rs = ps.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
if (rs.getInt(1) > 10) { //They have more than 10 items up for sale already!
|
if (rs.getInt(1) > 10) { // They have more than 10 items up for sale already!
|
||||||
c.getPlayer().dropMessage(1, "You already have 10 items up for auction!");
|
c.getPlayer().dropMessage(1, "You already have 10 items up for auction!");
|
||||||
c.sendPacket(getMTS(1, 0, 0));
|
c.sendPacket(getMTS(1, 0, 0));
|
||||||
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
||||||
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
int year;
|
int year;
|
||||||
int month;
|
int month;
|
||||||
@@ -164,61 +158,62 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
if (!i.getInventoryType().equals(InventoryType.EQUIP)) {
|
if (!i.getInventoryType().equals(InventoryType.EQUIP)) {
|
||||||
Item item = i;
|
Item item = i;
|
||||||
ps = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, owner, sellername, sell_ends) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
try (PreparedStatement pse = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, owner, sellername, sell_ends) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
|
||||||
ps.setInt(1, 1);
|
pse.setInt(1, 1);
|
||||||
ps.setInt(2, invType.getType());
|
pse.setInt(2, invType.getType());
|
||||||
ps.setInt(3, item.getItemId());
|
pse.setInt(3, item.getItemId());
|
||||||
ps.setInt(4, quantity);
|
pse.setInt(4, quantity);
|
||||||
ps.setLong(5, item.getExpiration());
|
pse.setLong(5, item.getExpiration());
|
||||||
ps.setString(6, item.getGiftFrom());
|
pse.setString(6, item.getGiftFrom());
|
||||||
ps.setInt(7, c.getPlayer().getId());
|
pse.setInt(7, c.getPlayer().getId());
|
||||||
ps.setInt(8, price);
|
pse.setInt(8, price);
|
||||||
ps.setString(9, item.getOwner());
|
pse.setString(9, item.getOwner());
|
||||||
ps.setString(10, c.getPlayer().getName());
|
pse.setString(10, c.getPlayer().getName());
|
||||||
ps.setString(11, date);
|
pse.setString(11, date);
|
||||||
|
pse.executeUpdate();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Equip equip = (Equip) i;
|
Equip equip = (Equip) i;
|
||||||
ps = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, upgradeslots, level, str, dex, `int`, luk, hp, mp, watk, matk, wdef, mdef, acc, avoid, hands, speed, jump, locked, owner, sellername, sell_ends, vicious, flag, itemexp, itemlevel, ringid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
try (PreparedStatement pse = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, upgradeslots, level, str, dex, `int`, luk, hp, mp, watk, matk, wdef, mdef, acc, avoid, hands, speed, jump, locked, owner, sellername, sell_ends, vicious, flag, itemexp, itemlevel, ringid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
|
||||||
ps.setInt(1, 1);
|
pse.setInt(1, 1);
|
||||||
ps.setInt(2, invType.getType());
|
pse.setInt(2, invType.getType());
|
||||||
ps.setInt(3, equip.getItemId());
|
pse.setInt(3, equip.getItemId());
|
||||||
ps.setInt(4, quantity);
|
pse.setInt(4, quantity);
|
||||||
ps.setLong(5, equip.getExpiration());
|
pse.setLong(5, equip.getExpiration());
|
||||||
ps.setString(6, equip.getGiftFrom());
|
pse.setString(6, equip.getGiftFrom());
|
||||||
ps.setInt(7, c.getPlayer().getId());
|
pse.setInt(7, c.getPlayer().getId());
|
||||||
ps.setInt(8, price);
|
pse.setInt(8, price);
|
||||||
ps.setInt(9, equip.getUpgradeSlots());
|
pse.setInt(9, equip.getUpgradeSlots());
|
||||||
ps.setInt(10, equip.getLevel());
|
pse.setInt(10, equip.getLevel());
|
||||||
ps.setInt(11, equip.getStr());
|
pse.setInt(11, equip.getStr());
|
||||||
ps.setInt(12, equip.getDex());
|
pse.setInt(12, equip.getDex());
|
||||||
ps.setInt(13, equip.getInt());
|
pse.setInt(13, equip.getInt());
|
||||||
ps.setInt(14, equip.getLuk());
|
pse.setInt(14, equip.getLuk());
|
||||||
ps.setInt(15, equip.getHp());
|
pse.setInt(15, equip.getHp());
|
||||||
ps.setInt(16, equip.getMp());
|
pse.setInt(16, equip.getMp());
|
||||||
ps.setInt(17, equip.getWatk());
|
pse.setInt(17, equip.getWatk());
|
||||||
ps.setInt(18, equip.getMatk());
|
pse.setInt(18, equip.getMatk());
|
||||||
ps.setInt(19, equip.getWdef());
|
pse.setInt(19, equip.getWdef());
|
||||||
ps.setInt(20, equip.getMdef());
|
pse.setInt(20, equip.getMdef());
|
||||||
ps.setInt(21, equip.getAcc());
|
pse.setInt(21, equip.getAcc());
|
||||||
ps.setInt(22, equip.getAvoid());
|
pse.setInt(22, equip.getAvoid());
|
||||||
ps.setInt(23, equip.getHands());
|
pse.setInt(23, equip.getHands());
|
||||||
ps.setInt(24, equip.getSpeed());
|
pse.setInt(24, equip.getSpeed());
|
||||||
ps.setInt(25, equip.getJump());
|
pse.setInt(25, equip.getJump());
|
||||||
ps.setInt(26, 0);
|
pse.setInt(26, 0);
|
||||||
ps.setString(27, equip.getOwner());
|
pse.setString(27, equip.getOwner());
|
||||||
ps.setString(28, c.getPlayer().getName());
|
pse.setString(28, c.getPlayer().getName());
|
||||||
ps.setString(29, date);
|
pse.setString(29, date);
|
||||||
ps.setInt(30, equip.getVicious());
|
pse.setInt(30, equip.getVicious());
|
||||||
ps.setInt(31, equip.getFlag());
|
pse.setInt(31, equip.getFlag());
|
||||||
ps.setInt(32, equip.getItemExp());
|
pse.setInt(32, equip.getItemExp());
|
||||||
ps.setByte(33, equip.getItemLevel()); // thanks Jefe for noticing missing itemlevel labels
|
pse.setByte(33, equip.getItemLevel()); // thanks Jefe for noticing missing itemlevel labels
|
||||||
ps.setInt(34, equip.getRingId());
|
pse.setInt(34, equip.getRingId());
|
||||||
|
pse.executeUpdate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ps.executeUpdate();
|
|
||||||
ps.close();
|
|
||||||
InventoryManipulator.removeFromSlot(c, invType, slot, quantity, false);
|
InventoryManipulator.removeFromSlot(c, invType, slot, quantity, false);
|
||||||
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -229,14 +224,18 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
||||||
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
||||||
}
|
}
|
||||||
} else if (op == 3) { //send offer for wanted item
|
break;
|
||||||
} else if (op == 4) { //list wanted item
|
}
|
||||||
|
case 3: //send offer for wanted item
|
||||||
|
break;
|
||||||
|
case 4: //list wanted item
|
||||||
p.readInt();
|
p.readInt();
|
||||||
p.readInt();
|
p.readInt();
|
||||||
p.readInt();
|
p.readInt();
|
||||||
p.readShort();
|
p.readShort();
|
||||||
p.readString();
|
p.readString();
|
||||||
} else if (op == 5) { //change page
|
break;
|
||||||
|
case 5: { //change page
|
||||||
int tab = p.readInt();
|
int tab = p.readInt();
|
||||||
int type = p.readInt();
|
int type = p.readInt();
|
||||||
int page = p.readInt();
|
int page = p.readInt();
|
||||||
@@ -254,7 +253,9 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
c.enableCSActions();
|
c.enableCSActions();
|
||||||
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
||||||
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
||||||
} else if (op == 6) { //search
|
break;
|
||||||
|
}
|
||||||
|
case 6: { //search
|
||||||
int tab = p.readInt();
|
int tab = p.readInt();
|
||||||
int type = p.readInt();
|
int type = p.readInt();
|
||||||
p.readInt();
|
p.readInt();
|
||||||
@@ -270,45 +271,46 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
c.sendPacket(PacketCreator.showMTSCash(c.getPlayer()));
|
c.sendPacket(PacketCreator.showMTSCash(c.getPlayer()));
|
||||||
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
||||||
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
||||||
} else if (op == 7) { //cancel sale
|
break;
|
||||||
int id = p.readInt(); //id of the item
|
}
|
||||||
Connection con = null;
|
case 7: { //cancel sale
|
||||||
try {
|
int id = p.readInt(); // id of the item
|
||||||
con = DatabaseConnection.getConnection();
|
try (Connection con = DatabaseConnection.getConnection()) {
|
||||||
PreparedStatement ps = con.prepareStatement("UPDATE mts_items SET transfer = 1 WHERE id = ? AND seller = ?");
|
try (PreparedStatement ps = con.prepareStatement("UPDATE mts_items SET transfer = 1 WHERE id = ? AND seller = ?")) {
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, id);
|
||||||
ps.setInt(2, c.getPlayer().getId());
|
ps.setInt(2, c.getPlayer().getId());
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
ps.close();
|
}
|
||||||
ps = con.prepareStatement("DELETE FROM mts_cart WHERE itemid = ?");
|
|
||||||
|
try (PreparedStatement ps = con.prepareStatement("DELETE FROM mts_cart WHERE itemid = ?")) {
|
||||||
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();
|
||||||
}
|
}
|
||||||
c.enableCSActions();
|
c.enableCSActions();
|
||||||
c.sendPacket(getMTS(c.getPlayer().getCurrentTab(), c.getPlayer().getCurrentType(), c.getPlayer().getCurrentPage()));
|
c.sendPacket(getMTS(c.getPlayer().getCurrentTab(), c.getPlayer().getCurrentType(),
|
||||||
|
c.getPlayer().getCurrentPage()));
|
||||||
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
||||||
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
||||||
} else if (op == 8) { //transfer item from transfer inv.
|
break;
|
||||||
int id = p.readInt(); //id of the item
|
}
|
||||||
Connection con = null;
|
case 8: { // transfer item from transfer inv.
|
||||||
PreparedStatement ps;
|
int id = p.readInt(); // id of the item
|
||||||
ResultSet rs;
|
try (Connection con = DatabaseConnection.getConnection()) {
|
||||||
try {
|
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE seller = ? AND transfer = 1 AND id= ? ORDER BY id DESC")) {
|
||||||
con = DatabaseConnection.getConnection();
|
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_items WHERE seller = ? AND transfer = 1 AND id= ? ORDER BY id DESC");
|
|
||||||
ps.setInt(1, c.getPlayer().getId());
|
ps.setInt(1, c.getPlayer().getId());
|
||||||
ps.setInt(2, id);
|
ps.setInt(2, id);
|
||||||
rs = ps.executeQuery();
|
ResultSet rs = ps.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
Item i;
|
Item i;
|
||||||
if (rs.getInt("type") != 1) {
|
if (rs.getInt("type") != 1) {
|
||||||
Item ii = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity"));
|
Item ii = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity"));
|
||||||
ii.setOwner(rs.getString("owner"));
|
ii.setOwner(rs.getString("owner"));
|
||||||
ii.setPosition(c.getPlayer().getInventory(ItemConstants.getInventoryType(rs.getInt("itemid"))).getNextFreeSlot());
|
ii.setPosition(
|
||||||
|
c.getPlayer().getInventory(ItemConstants.getInventoryType(rs.getInt("itemid")))
|
||||||
|
.getNextFreeSlot());
|
||||||
i = ii.copy();
|
i = ii.copy();
|
||||||
} else {
|
} else {
|
||||||
Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1);
|
Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1);
|
||||||
@@ -338,10 +340,13 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
equip.setFlag((short) rs.getInt("flag"));
|
equip.setFlag((short) rs.getInt("flag"));
|
||||||
equip.setExpiration(rs.getLong("expiration"));
|
equip.setExpiration(rs.getLong("expiration"));
|
||||||
equip.setGiftFrom(rs.getString("giftFrom"));
|
equip.setGiftFrom(rs.getString("giftFrom"));
|
||||||
equip.setPosition(c.getPlayer().getInventory(ItemConstants.getInventoryType(rs.getInt("itemid"))).getNextFreeSlot());
|
equip.setPosition(
|
||||||
|
c.getPlayer().getInventory(ItemConstants.getInventoryType(rs.getInt("itemid")))
|
||||||
|
.getNextFreeSlot());
|
||||||
i = equip.copy();
|
i = equip.copy();
|
||||||
}
|
}
|
||||||
try (PreparedStatement pse = con.prepareStatement("DELETE FROM mts_items WHERE id = ? AND seller = ? AND transfer = 1")) {
|
try (PreparedStatement pse = con.prepareStatement(
|
||||||
|
"DELETE FROM mts_items WHERE id = ? AND seller = ? AND transfer = 1")) {
|
||||||
pse.setInt(1, id);
|
pse.setInt(1, id);
|
||||||
pse.setInt(2, c.getPlayer().getId());
|
pse.setInt(2, c.getPlayer().getId());
|
||||||
pse.executeUpdate();
|
pse.executeUpdate();
|
||||||
@@ -349,23 +354,23 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
InventoryManipulator.addFromDrop(c, i, false);
|
InventoryManipulator.addFromDrop(c, i, false);
|
||||||
c.enableCSActions();
|
c.enableCSActions();
|
||||||
c.sendPacket(getCart(c.getPlayer().getId()));
|
c.sendPacket(getCart(c.getPlayer().getId()));
|
||||||
c.sendPacket(getMTS(c.getPlayer().getCurrentTab(), c.getPlayer().getCurrentType(), c.getPlayer().getCurrentPage()));
|
c.sendPacket(getMTS(c.getPlayer().getCurrentTab(), c.getPlayer().getCurrentType(),
|
||||||
|
c.getPlayer().getCurrentPage()));
|
||||||
c.sendPacket(PacketCreator.MTSConfirmTransfer(i.getQuantity(), i.getPosition()));
|
c.sendPacket(PacketCreator.MTSConfirmTransfer(i.getQuantity(), i.getPosition()));
|
||||||
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
||||||
}
|
}
|
||||||
rs.close();
|
// rs.close(); Closing statement will also close related resultset
|
||||||
ps.close();
|
}
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
log.error("MTS Transfer error", e);
|
log.error("MTS Transfer error", e);
|
||||||
}
|
}
|
||||||
} else if (op == 9) { //add to cart
|
break;
|
||||||
int id = p.readInt(); //id of the item
|
}
|
||||||
Connection con;
|
case 9: { //add to cart
|
||||||
try {
|
int id = p.readInt(); // id of the item
|
||||||
con = DatabaseConnection.getConnection();
|
try (Connection con = DatabaseConnection.getConnection()) {
|
||||||
try (PreparedStatement ps1 = con.prepareStatement("SELECT id FROM mts_items WHERE id = ? AND seller <> ?")) {
|
try (PreparedStatement ps1 = con.prepareStatement("SELECT id FROM mts_items WHERE id = ? AND seller <> ?")) {
|
||||||
ps1.setInt(1, id); //Dummy query, prevents adding to cart self owned items
|
ps1.setInt(1, id); // Dummy query, prevents adding to cart self owned items
|
||||||
ps1.setInt(2, c.getPlayer().getId());
|
ps1.setInt(2, c.getPlayer().getId());
|
||||||
try (ResultSet rs1 = ps1.executeQuery()) {
|
try (ResultSet rs1 = ps1.executeQuery()) {
|
||||||
if (rs1.next()) {
|
if (rs1.next()) {
|
||||||
@@ -384,7 +389,6 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -393,17 +397,16 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
c.sendPacket(PacketCreator.enableActions());
|
c.sendPacket(PacketCreator.enableActions());
|
||||||
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
||||||
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
||||||
} else if (op == 10) { //delete from cart
|
break;
|
||||||
int id = p.readInt(); //id of the item
|
}
|
||||||
Connection con = null;
|
case 10: { //delete from cart
|
||||||
try {
|
int id = p.readInt(); // id of the item
|
||||||
con = DatabaseConnection.getConnection();
|
try (Connection con = DatabaseConnection.getConnection()) {
|
||||||
try (PreparedStatement ps = con.prepareStatement("DELETE FROM mts_cart WHERE itemid = ? AND cid = ?")) {
|
try (PreparedStatement ps = con.prepareStatement("DELETE FROM mts_cart WHERE itemid = ? AND cid = ?")) {
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, id);
|
||||||
ps.setInt(2, c.getPlayer().getId());
|
ps.setInt(2, c.getPlayer().getId());
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
}
|
}
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -411,22 +414,23 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
c.enableCSActions();
|
c.enableCSActions();
|
||||||
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
||||||
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
|
||||||
} else if (op == 12) { //put item up for auction
|
break;
|
||||||
} else if (op == 13) { //cancel wanted cart thing
|
}
|
||||||
} else if (op == 14) { //buy auction item now
|
case 12: //put item up for auction
|
||||||
} else if (op == 16) { //buy
|
break;
|
||||||
int id = p.readInt(); //id of the item
|
case 13: //cancel wanted cart thing
|
||||||
Connection con = null;
|
break;
|
||||||
PreparedStatement ps;
|
case 14: //buy auction item now
|
||||||
ResultSet rs;
|
break;
|
||||||
try {
|
case 16: { //buy
|
||||||
con = DatabaseConnection.getConnection();
|
int id = p.readInt(); // id of the item
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_items WHERE id = ? ORDER BY id DESC");
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
|
PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE id = ? ORDER BY id DESC")) {
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, id);
|
||||||
rs = ps.executeQuery();
|
ResultSet rs = ps.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
int price = rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1); //taxes
|
int price = rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1); // taxes
|
||||||
if (c.getPlayer().getCashShop().getCash(4) >= price) { //FIX
|
if (c.getPlayer().getCashShop().getCash(4) >= price) { // FIX
|
||||||
boolean alwaysnull = true;
|
boolean alwaysnull = true;
|
||||||
for (Channel cserv : Server.getInstance().getAllChannels()) {
|
for (Channel cserv : Server.getInstance().getAllChannels()) {
|
||||||
Character victim = cserv.getPlayerStorage().getCharacterById(rs.getInt("seller"));
|
Character victim = cserv.getPlayerStorage().getCharacterById(rs.getInt("seller"));
|
||||||
@@ -436,10 +440,9 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (alwaysnull) {
|
if (alwaysnull) {
|
||||||
ResultSet rse;
|
|
||||||
try (PreparedStatement pse = con.prepareStatement("SELECT accountid FROM characters WHERE id = ?")) {
|
try (PreparedStatement pse = con.prepareStatement("SELECT accountid FROM characters WHERE id = ?")) {
|
||||||
pse.setInt(1, rs.getInt("seller"));
|
pse.setInt(1, rs.getInt("seller"));
|
||||||
rse = pse.executeQuery();
|
ResultSet rse = pse.executeQuery();
|
||||||
if (rse.next()) {
|
if (rse.next()) {
|
||||||
try (PreparedStatement psee = con.prepareStatement("UPDATE accounts SET nxPrepaid = nxPrepaid + ? WHERE id = ?")) {
|
try (PreparedStatement psee = con.prepareStatement("UPDATE accounts SET nxPrepaid = nxPrepaid + ? WHERE id = ?")) {
|
||||||
psee.setInt(1, rs.getInt("price"));
|
psee.setInt(1, rs.getInt("price"));
|
||||||
@@ -448,20 +451,19 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rse.close();
|
|
||||||
}
|
}
|
||||||
PreparedStatement pse = con.prepareStatement("UPDATE mts_items SET seller = ?, transfer = 1 WHERE id = ?");
|
try (PreparedStatement pse = con.prepareStatement("UPDATE mts_items SET seller = ?, transfer = 1 WHERE id = ?")) {
|
||||||
pse.setInt(1, c.getPlayer().getId());
|
pse.setInt(1, c.getPlayer().getId());
|
||||||
pse.setInt(2, id);
|
pse.setInt(2, id);
|
||||||
pse.executeUpdate();
|
pse.executeUpdate();
|
||||||
pse.close();
|
}
|
||||||
pse = con.prepareStatement("DELETE FROM mts_cart WHERE itemid = ?");
|
try (PreparedStatement pse = con.prepareStatement("DELETE FROM mts_cart WHERE itemid = ?")) {
|
||||||
pse.setInt(1, id);
|
pse.setInt(1, id);
|
||||||
pse.executeUpdate();
|
pse.executeUpdate();
|
||||||
pse.close();
|
}
|
||||||
c.getPlayer().getCashShop().gainCash(4, -price);
|
c.getPlayer().getCashShop().gainCash(4, -price);
|
||||||
c.enableCSActions();
|
c.enableCSActions();
|
||||||
c.sendPacket(getMTS(c.getPlayer().getCurrentTab(), c.getPlayer().getCurrentType(), c.getPlayer().getCurrentPage()));
|
c.sendPacket(getMTS(c.getPlayer().getCurrentTab(), c.getPlayer().getCurrentType(),c.getPlayer().getCurrentPage()));
|
||||||
c.sendPacket(PacketCreator.MTSConfirmBuy());
|
c.sendPacket(PacketCreator.MTSConfirmBuy());
|
||||||
c.sendPacket(PacketCreator.showMTSCash(c.getPlayer()));
|
c.sendPacket(PacketCreator.showMTSCash(c.getPlayer()));
|
||||||
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
|
||||||
@@ -471,23 +473,18 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
c.sendPacket(PacketCreator.MTSFailBuy());
|
c.sendPacket(PacketCreator.MTSFailBuy());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
c.sendPacket(PacketCreator.MTSFailBuy());
|
c.sendPacket(PacketCreator.MTSFailBuy());
|
||||||
}
|
}
|
||||||
} else if (op == 17) { //buy from cart
|
break;
|
||||||
int id = p.readInt(); //id of the item
|
}
|
||||||
Connection con = null;
|
case 17: { //buy from cart
|
||||||
PreparedStatement ps;
|
int id = p.readInt(); // id of the item
|
||||||
ResultSet rs;
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
try {
|
PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE id = ? ORDER BY id DESC")) {
|
||||||
con = DatabaseConnection.getConnection();
|
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_items WHERE id = ? ORDER BY id DESC");
|
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, id);
|
||||||
rs = ps.executeQuery();
|
ResultSet rs = ps.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
int price = rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1);
|
int price = rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1);
|
||||||
if (c.getPlayer().getCashShop().getCash(4) >= price) {
|
if (c.getPlayer().getCashShop().getCash(4) >= price) {
|
||||||
@@ -496,10 +493,9 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
if (victim != null) {
|
if (victim != null) {
|
||||||
victim.getCashShop().gainCash(4, rs.getInt("price"));
|
victim.getCashShop().gainCash(4, rs.getInt("price"));
|
||||||
} else {
|
} else {
|
||||||
ResultSet rse;
|
|
||||||
try (PreparedStatement pse = con.prepareStatement("SELECT accountid FROM characters WHERE id = ?")) {
|
try (PreparedStatement pse = con.prepareStatement("SELECT accountid FROM characters WHERE id = ?")) {
|
||||||
pse.setInt(1, rs.getInt("seller"));
|
pse.setInt(1, rs.getInt("seller"));
|
||||||
rse = pse.executeQuery();
|
ResultSet rse = pse.executeQuery();
|
||||||
if (rse.next()) {
|
if (rse.next()) {
|
||||||
try (PreparedStatement psee = con.prepareStatement("UPDATE accounts SET nxPrepaid = nxPrepaid + ? WHERE id = ?")) {
|
try (PreparedStatement psee = con.prepareStatement("UPDATE accounts SET nxPrepaid = nxPrepaid + ? WHERE id = ?")) {
|
||||||
psee.setInt(1, rs.getInt("price"));
|
psee.setInt(1, rs.getInt("price"));
|
||||||
@@ -508,18 +504,17 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rse.close();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PreparedStatement pse = con.prepareStatement("UPDATE mts_items SET seller = ?, transfer = 1 WHERE id = ?");
|
try (PreparedStatement pse = con.prepareStatement("UPDATE mts_items SET seller = ?, transfer = 1 WHERE id = ?")) {
|
||||||
pse.setInt(1, c.getPlayer().getId());
|
pse.setInt(1, c.getPlayer().getId());
|
||||||
pse.setInt(2, id);
|
pse.setInt(2, id);
|
||||||
pse.executeUpdate();
|
pse.executeUpdate();
|
||||||
pse.close();
|
}
|
||||||
pse = con.prepareStatement("DELETE FROM mts_cart WHERE itemid = ?");
|
try (PreparedStatement pse = con.prepareStatement("DELETE FROM mts_cart WHERE itemid = ?")) {
|
||||||
pse.setInt(1, id);
|
pse.setInt(1, id);
|
||||||
pse.executeUpdate();
|
pse.executeUpdate();
|
||||||
pse.close();
|
}
|
||||||
c.getPlayer().getCashShop().gainCash(4, -price);
|
c.getPlayer().getCashShop().gainCash(4, -price);
|
||||||
c.sendPacket(getCart(c.getPlayer().getId()));
|
c.sendPacket(getCart(c.getPlayer().getId()));
|
||||||
c.enableCSActions();
|
c.enableCSActions();
|
||||||
@@ -531,15 +526,15 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
c.sendPacket(PacketCreator.MTSFailBuy());
|
c.sendPacket(PacketCreator.MTSFailBuy());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
c.sendPacket(PacketCreator.MTSFailBuy());
|
c.sendPacket(PacketCreator.MTSFailBuy());
|
||||||
}
|
}
|
||||||
} else {
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
log.warn("Unhandled OP (MTS): {}, packet: {}", op, p);
|
log.warn("Unhandled OP (MTS): {}, packet: {}", op, p);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
c.sendPacket(PacketCreator.showMTSCash(c.getPlayer()));
|
c.sendPacket(PacketCreator.showMTSCash(c.getPlayer()));
|
||||||
@@ -548,14 +543,10 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
public List<MTSItemInfo> getNotYetSold(int cid) {
|
public List<MTSItemInfo> getNotYetSold(int cid) {
|
||||||
List<MTSItemInfo> items = new ArrayList<>();
|
List<MTSItemInfo> items = new ArrayList<>();
|
||||||
Connection con = null;
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
PreparedStatement ps;
|
PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE seller = ? AND transfer = 0 ORDER BY id DESC")) {
|
||||||
ResultSet rs;
|
|
||||||
try {
|
|
||||||
con = DatabaseConnection.getConnection();
|
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_items WHERE seller = ? AND transfer = 0 ORDER BY id DESC");
|
|
||||||
ps.setInt(1, cid);
|
ps.setInt(1, cid);
|
||||||
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"), (byte) 0, (short) rs.getInt("quantity"));
|
Item i = new Item(rs.getInt("itemid"), (byte) 0, (short) rs.getInt("quantity"));
|
||||||
@@ -592,9 +583,6 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -603,15 +591,11 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
public Packet getCart(int cid) {
|
public Packet getCart(int cid) {
|
||||||
List<MTSItemInfo> items = new ArrayList<>();
|
List<MTSItemInfo> items = new ArrayList<>();
|
||||||
Connection con = null;
|
|
||||||
PreparedStatement ps;
|
|
||||||
ResultSet rs;
|
|
||||||
int pages = 0;
|
int pages = 0;
|
||||||
try {
|
try (Connection con = DatabaseConnection.getConnection()) {
|
||||||
con = DatabaseConnection.getConnection();
|
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_cart WHERE cid = ? ORDER BY id DESC")) {
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_cart WHERE cid = ? ORDER BY id DESC");
|
|
||||||
ps.setInt(1, cid);
|
ps.setInt(1, cid);
|
||||||
rs = ps.executeQuery();
|
ResultSet rs = ps.executeQuery();
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
try (PreparedStatement pse = con.prepareStatement("SELECT * FROM mts_items WHERE id = ?")) {
|
try (PreparedStatement pse = con.prepareStatement("SELECT * FROM mts_items WHERE id = ?")) {
|
||||||
pse.setInt(1, rs.getInt("itemid"));
|
pse.setInt(1, rs.getInt("itemid"));
|
||||||
@@ -620,7 +604,8 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
if (rse.getInt("type") != 1) {
|
if (rse.getInt("type") != 1) {
|
||||||
Item i = new Item(rse.getInt("itemid"), (short) 0, (short) rse.getInt("quantity"));
|
Item i = new Item(rse.getInt("itemid"), (short) 0, (short) rse.getInt("quantity"));
|
||||||
i.setOwner(rse.getString("owner"));
|
i.setOwner(rse.getString("owner"));
|
||||||
items.add(new MTSItemInfo(i, rse.getInt("price"), rse.getInt("id"), rse.getInt("seller"), rse.getString("sellername"), rse.getString("sell_ends")));
|
items.add(new MTSItemInfo(i, rse.getInt("price"), rse.getInt("id"),
|
||||||
|
rse.getInt("seller"), rse.getString("sellername"), rse.getString("sell_ends")));
|
||||||
} else {
|
} else {
|
||||||
Equip equip = new Equip(rse.getInt("itemid"), (byte) rse.getInt("position"), -1);
|
Equip equip = new Equip(rse.getInt("itemid"), (byte) rse.getInt("position"), -1);
|
||||||
equip.setOwner(rse.getString("owner"));
|
equip.setOwner(rse.getString("owner"));
|
||||||
@@ -649,25 +634,23 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
equip.setFlag((short) rs.getInt("flag"));
|
equip.setFlag((short) rs.getInt("flag"));
|
||||||
equip.setExpiration(rs.getLong("expiration"));
|
equip.setExpiration(rs.getLong("expiration"));
|
||||||
equip.setGiftFrom(rs.getString("giftFrom"));
|
equip.setGiftFrom(rs.getString("giftFrom"));
|
||||||
items.add(new MTSItemInfo(equip, rse.getInt("price"), rse.getInt("id"), rse.getInt("seller"), rse.getString("sellername"), rse.getString("sell_ends")));
|
items.add(new MTSItemInfo(equip, rse.getInt("price"), rse.getInt("id"),
|
||||||
|
rse.getInt("seller"), rse.getString("sellername"), rse.getString("sell_ends")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
try (PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_cart WHERE cid = ?")) {
|
||||||
ps = con.prepareStatement("SELECT COUNT(*) FROM mts_cart WHERE cid = ?");
|
|
||||||
ps.setInt(1, cid);
|
ps.setInt(1, cid);
|
||||||
rs = ps.executeQuery();
|
ResultSet rs = ps.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
pages = rs.getInt(1) / 16;
|
pages = rs.getInt(1) / 16;
|
||||||
if (rs.getInt(1) % 16 > 0) {
|
if (rs.getInt(1) % 16 > 0) {
|
||||||
pages += 1;
|
pages += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -676,14 +659,10 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
public List<MTSItemInfo> getTransfer(int cid) {
|
public List<MTSItemInfo> getTransfer(int cid) {
|
||||||
List<MTSItemInfo> items = new ArrayList<>();
|
List<MTSItemInfo> items = new ArrayList<>();
|
||||||
Connection con = null;
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
PreparedStatement ps;
|
PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE transfer = 1 AND seller = ? ORDER BY id DESC")) {
|
||||||
ResultSet rs;
|
|
||||||
try {
|
|
||||||
con = DatabaseConnection.getConnection();
|
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_items WHERE transfer = 1 AND seller = ? ORDER BY id DESC");
|
|
||||||
ps.setInt(1, cid);
|
ps.setInt(1, cid);
|
||||||
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"));
|
||||||
@@ -720,9 +699,6 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -731,17 +707,15 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
private static Packet getMTS(int tab, int type, int page) {
|
private static Packet getMTS(int tab, int type, int page) {
|
||||||
List<MTSItemInfo> items = new ArrayList<>();
|
List<MTSItemInfo> items = new ArrayList<>();
|
||||||
Connection con = null;
|
|
||||||
PreparedStatement ps;
|
|
||||||
ResultSet rs;
|
|
||||||
int pages = 0;
|
int pages = 0;
|
||||||
try {
|
try (Connection con = DatabaseConnection.getConnection()) {
|
||||||
con = DatabaseConnection.getConnection();
|
String sql;
|
||||||
if (type != 0) {
|
if (type != 0) {
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_items WHERE tab = ? AND type = ? AND transfer = 0 ORDER BY id DESC LIMIT ?, 16");
|
sql = "SELECT * FROM mts_items WHERE tab = ? AND type = ? AND transfer = 0 ORDER BY id DESC LIMIT ?, 16";
|
||||||
} else {
|
} else {
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_items WHERE tab = ? AND transfer = 0 ORDER BY id DESC LIMIT ?, 16");
|
sql = "SELECT * FROM mts_items WHERE tab = ? AND transfer = 0 ORDER BY id DESC LIMIT ?, 16";
|
||||||
}
|
}
|
||||||
|
try (PreparedStatement ps = con.prepareStatement(sql)) {
|
||||||
ps.setInt(1, tab);
|
ps.setInt(1, tab);
|
||||||
if (type != 0) {
|
if (type != 0) {
|
||||||
ps.setInt(2, type);
|
ps.setInt(2, type);
|
||||||
@@ -749,12 +723,13 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
} else {
|
} else {
|
||||||
ps.setInt(2, page * 16);
|
ps.setInt(2, page * 16);
|
||||||
}
|
}
|
||||||
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"));
|
||||||
i.setOwner(rs.getString("owner"));
|
i.setOwner(rs.getString("owner"));
|
||||||
items.add(new MTSItemInfo(i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
items.add(new MTSItemInfo(i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"),
|
||||||
|
rs.getString("sellername"), rs.getString("sell_ends")));
|
||||||
} else {
|
} else {
|
||||||
Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1);
|
Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1);
|
||||||
equip.setOwner(rs.getString("owner"));
|
equip.setOwner(rs.getString("owner"));
|
||||||
@@ -786,23 +761,20 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
try (PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE tab = ? " + (type != 0 ? "AND type = ?" : "") + "AND transfer = 0")) {
|
||||||
ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE tab = ? " + (type != 0 ? "AND type = ?" : "") + "AND transfer = 0");
|
|
||||||
ps.setInt(1, tab);
|
ps.setInt(1, tab);
|
||||||
if (type != 0) {
|
if (type != 0) {
|
||||||
ps.setInt(2, type);
|
ps.setInt(2, type);
|
||||||
}
|
}
|
||||||
rs = ps.executeQuery();
|
ResultSet rs = ps.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
pages = rs.getInt(1) / 16;
|
pages = rs.getInt(1) / 16;
|
||||||
if (rs.getInt(1) % 16 > 0) {
|
if (rs.getInt(1) % 16 > 0) {
|
||||||
pages++;
|
pages++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
|
||||||
con.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -830,17 +802,15 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
} else {
|
} else {
|
||||||
listaitems = " AND sellername LIKE CONCAT('%','" + search + "', '%')";
|
listaitems = " AND sellername LIKE CONCAT('%','" + search + "', '%')";
|
||||||
}
|
}
|
||||||
Connection con = null;
|
|
||||||
PreparedStatement ps;
|
|
||||||
ResultSet rs;
|
|
||||||
int pages = 0;
|
int pages = 0;
|
||||||
try {
|
try (Connection con = DatabaseConnection.getConnection()){
|
||||||
con = DatabaseConnection.getConnection();
|
String sql;
|
||||||
if (type != 0) {
|
if (type != 0) {
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_items WHERE tab = ? " + listaitems + " AND type = ? AND transfer = 0 ORDER BY id DESC LIMIT ?, 16");
|
sql = "SELECT * FROM mts_items WHERE tab = ? " + listaitems + " AND type = ? AND transfer = 0 ORDER BY id DESC LIMIT ?, 16";
|
||||||
} else {
|
} else {
|
||||||
ps = con.prepareStatement("SELECT * FROM mts_items WHERE tab = ? " + listaitems + " AND transfer = 0 ORDER BY id DESC LIMIT ?, 16");
|
sql = "SELECT * FROM mts_items WHERE tab = ? " + listaitems + " AND transfer = 0 ORDER BY id DESC LIMIT ?, 16";
|
||||||
}
|
}
|
||||||
|
try (PreparedStatement ps = con.prepareStatement(sql)) {
|
||||||
ps.setInt(1, tab);
|
ps.setInt(1, tab);
|
||||||
if (type != 0) {
|
if (type != 0) {
|
||||||
ps.setInt(2, type);
|
ps.setInt(2, type);
|
||||||
@@ -848,7 +818,7 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
} else {
|
} else {
|
||||||
ps.setInt(2, page * 16);
|
ps.setInt(2, page * 16);
|
||||||
}
|
}
|
||||||
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"));
|
||||||
@@ -885,25 +855,22 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
|
||||||
if (type == 0) {
|
if (type == 0) {
|
||||||
ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE tab = ? " + listaitems + " AND transfer = 0");
|
try (PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE tab = ? " + listaitems + " AND transfer = 0")) {
|
||||||
ps.setInt(1, tab);
|
ps.setInt(1, tab);
|
||||||
if (type != 0) {
|
if (type != 0) {
|
||||||
ps.setInt(2, type);
|
ps.setInt(2, type);
|
||||||
}
|
}
|
||||||
rs = ps.executeQuery();
|
ResultSet rs = ps.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
pages = rs.getInt(1) / 16;
|
pages = rs.getInt(1) / 16;
|
||||||
if (rs.getInt(1) % 16 > 0) {
|
if (rs.getInt(1) % 16 > 0) {
|
||||||
pages++;
|
pages++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
}
|
}
|
||||||
con.close();
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,20 +52,28 @@ public final class MobDamageMobFriendlyHandler extends AbstractPacketHandler {
|
|||||||
int damage = Randomizer.nextInt(((monster.getMaxHp() / 13 + monster.getPADamage() * 10)) * 2 + 500) / 10; // Formula planned by Beng.
|
int damage = Randomizer.nextInt(((monster.getMaxHp() / 13 + monster.getPADamage() * 10)) * 2 + 500) / 10; // Formula planned by Beng.
|
||||||
|
|
||||||
if (monster.getHp() - damage < 1) { // friendly dies
|
if (monster.getHp() - damage < 1) { // friendly dies
|
||||||
if (monster.getId() == MobId.WATCH_HOG) {
|
switch (monster.getId()) {
|
||||||
|
case MobId.WATCH_HOG:
|
||||||
map.broadcastMessage(PacketCreator.serverNotice(6, "The Watch Hog has been injured by the aliens. Better luck next time..."));
|
map.broadcastMessage(PacketCreator.serverNotice(6, "The Watch Hog has been injured by the aliens. Better luck next time..."));
|
||||||
} else if (monster.getId() == MobId.MOON_BUNNY) { //moon bunny
|
break;
|
||||||
|
case MobId.MOON_BUNNY: //moon bunny
|
||||||
map.broadcastMessage(PacketCreator.serverNotice(6, "The Moon Bunny went home because he was sick."));
|
map.broadcastMessage(PacketCreator.serverNotice(6, "The Moon Bunny went home because he was sick."));
|
||||||
} else if (monster.getId() == MobId.TYLUS) { //tylus
|
break;
|
||||||
|
case MobId.TYLUS: //tylus
|
||||||
map.broadcastMessage(PacketCreator.serverNotice(6, "Tylus has fallen by the overwhelming forces of the ambush."));
|
map.broadcastMessage(PacketCreator.serverNotice(6, "Tylus has fallen by the overwhelming forces of the ambush."));
|
||||||
} else if (monster.getId() == MobId.JULIET) { //juliet
|
break;
|
||||||
|
case MobId.JULIET: //juliet
|
||||||
map.broadcastMessage(PacketCreator.serverNotice(6, "Juliet has fainted in the middle of the combat."));
|
map.broadcastMessage(PacketCreator.serverNotice(6, "Juliet has fainted in the middle of the combat."));
|
||||||
} else if (monster.getId() == MobId.ROMEO) { //romeo
|
break;
|
||||||
|
case MobId.ROMEO: //romeo
|
||||||
map.broadcastMessage(PacketCreator.serverNotice(6, "Romeo has fainted in the middle of the combat."));
|
map.broadcastMessage(PacketCreator.serverNotice(6, "Romeo has fainted in the middle of the combat."));
|
||||||
} else if (monster.getId() == MobId.GIANT_SNOWMAN_LV1_EASY || monster.getId() == MobId.GIANT_SNOWMAN_LV1_MEDIUM || monster.getId() == MobId.GIANT_SNOWMAN_LV1_HARD) {
|
break;
|
||||||
|
case MobId.GIANT_SNOWMAN_LV1_EASY, MobId.GIANT_SNOWMAN_LV1_MEDIUM, MobId.GIANT_SNOWMAN_LV1_HARD:
|
||||||
map.broadcastMessage(PacketCreator.serverNotice(6, "The Snowman has melted on the heat of the battle."));
|
map.broadcastMessage(PacketCreator.serverNotice(6, "The Snowman has melted on the heat of the battle."));
|
||||||
} else if (monster.getId() == MobId.DELLI) { //delli
|
break;
|
||||||
|
case MobId.DELLI: //delli
|
||||||
map.broadcastMessage(PacketCreator.serverNotice(6, "Delli vanished after the ambush, sheets still laying on the ground..."));
|
map.broadcastMessage(PacketCreator.serverNotice(6, "Delli vanished after the ambush, sheets still laying on the ground..."));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
map.killFriendlies(monster);
|
map.killFriendlies(monster);
|
||||||
|
|||||||
@@ -38,27 +38,38 @@ public final class NPCShopHandler extends AbstractPacketHandler {
|
|||||||
@Override
|
@Override
|
||||||
public void handlePacket(InPacket p, Client c) {
|
public void handlePacket(InPacket p, Client c) {
|
||||||
byte bmode = p.readByte();
|
byte bmode = p.readByte();
|
||||||
if (bmode == 0) { // mode 0 = buy :)
|
switch (bmode) {
|
||||||
|
case 0: { // mode 0 = buy :)
|
||||||
short slot = p.readShort();// slot
|
short slot = p.readShort();// slot
|
||||||
int itemId = p.readInt();
|
int itemId = p.readInt();
|
||||||
short quantity = p.readShort();
|
short quantity = p.readShort();
|
||||||
if (quantity < 1) {
|
if (quantity < 1) {
|
||||||
AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit a npc shop.");
|
AutobanFactory.PACKET_EDIT.alert(c.getPlayer(),
|
||||||
|
c.getPlayer().getName() + " tried to packet edit a npc shop.");
|
||||||
log.warn("Chr {} tried to buy quantity {} of itemid {}", c.getPlayer().getName(), quantity, itemId);
|
log.warn("Chr {} tried to buy quantity {} of itemid {}", c.getPlayer().getName(), quantity, itemId);
|
||||||
c.disconnect(true, false);
|
c.disconnect(true, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
c.getPlayer().getShop().buy(c, slot, itemId, quantity);
|
c.getPlayer().getShop().buy(c, slot, itemId, quantity);
|
||||||
} else if (bmode == 1) { // sell ;)
|
break;
|
||||||
|
}
|
||||||
|
case 1: { // sell ;)
|
||||||
short slot = p.readShort();
|
short slot = p.readShort();
|
||||||
int itemId = p.readInt();
|
int itemId = p.readInt();
|
||||||
short quantity = p.readShort();
|
short quantity = p.readShort();
|
||||||
c.getPlayer().getShop().sell(c, ItemConstants.getInventoryType(itemId), slot, quantity);
|
c.getPlayer().getShop().sell(c, ItemConstants.getInventoryType(itemId), slot, quantity);
|
||||||
} else if (bmode == 2) { // recharge ;)
|
break;
|
||||||
|
}
|
||||||
|
case 2: { // recharge ;)
|
||||||
|
|
||||||
byte slot = (byte) p.readShort();
|
byte slot = (byte) p.readShort();
|
||||||
c.getPlayer().getShop().recharge(c, slot);
|
c.getPlayer().getShop().recharge(c, slot);
|
||||||
} else if (bmode == 3) { // leaving :(
|
break;
|
||||||
c.getPlayer().setShop(null);
|
|
||||||
}
|
}
|
||||||
|
case 3: // leaving :(
|
||||||
|
c.getPlayer().setShop(null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,25 +73,27 @@ public final class QuestActionHandler extends AbstractPacketHandler {
|
|||||||
Character player = c.getPlayer();
|
Character player = c.getPlayer();
|
||||||
Quest quest = Quest.getInstance(questid);
|
Quest quest = Quest.getInstance(questid);
|
||||||
|
|
||||||
if (action == 0) { // Restore lost item, Credits Darter ( Rajan )
|
switch (action) {
|
||||||
|
case 0: // Restore lost item, Credits Darter ( Rajan )
|
||||||
p.readInt();
|
p.readInt();
|
||||||
int itemid = p.readInt();
|
int itemid = p.readInt();
|
||||||
quest.restoreLostItem(player, itemid);
|
quest.restoreLostItem(player, itemid);
|
||||||
} else if (action == 1) { //Start Quest
|
break;
|
||||||
|
case 1: { // Start Quest
|
||||||
int npc = p.readInt();
|
int npc = p.readInt();
|
||||||
if (!isNpcNearby(p, player, quest, npc)) {
|
if (!isNpcNearby(p, player, quest, npc)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (quest.canStart(player, npc)) {
|
if (quest.canStart(player, npc)) {
|
||||||
quest.start(player, npc);
|
quest.start(player, npc);
|
||||||
}
|
}
|
||||||
} else if (action == 2) { // Complete Quest
|
break;
|
||||||
|
}
|
||||||
|
case 2: { // Complete Quest
|
||||||
int npc = p.readInt();
|
int npc = p.readInt();
|
||||||
if (!isNpcNearby(p, player, quest, npc)) {
|
if (!isNpcNearby(p, player, quest, npc)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (quest.canComplete(player, npc)) {
|
if (quest.canComplete(player, npc)) {
|
||||||
if (p.available() >= 2) {
|
if (p.available() >= 2) {
|
||||||
int selection = p.readShort();
|
int selection = p.readShort();
|
||||||
@@ -100,26 +102,31 @@ public final class QuestActionHandler extends AbstractPacketHandler {
|
|||||||
quest.complete(player, npc);
|
quest.complete(player, npc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (action == 3) {// forfeit quest
|
break;
|
||||||
|
}
|
||||||
|
case 3: // forfeit quest
|
||||||
quest.forfeit(player);
|
quest.forfeit(player);
|
||||||
} else if (action == 4) { // scripted start quest
|
break;
|
||||||
|
case 4: { // scripted start quest
|
||||||
int npc = p.readInt();
|
int npc = p.readInt();
|
||||||
if (!isNpcNearby(p, player, quest, npc)) {
|
if (!isNpcNearby(p, player, quest, npc)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (quest.canStart(player, npc)) {
|
if (quest.canStart(player, npc)) {
|
||||||
QuestScriptManager.getInstance().start(c, questid, npc);
|
QuestScriptManager.getInstance().start(c, questid, npc);
|
||||||
}
|
}
|
||||||
} else if (action == 5) { // scripted end quests
|
break;
|
||||||
|
}
|
||||||
|
case 5: { // scripted end quests
|
||||||
int npc = p.readInt();
|
int npc = p.readInt();
|
||||||
if (!isNpcNearby(p, player, quest, npc)) {
|
if (!isNpcNearby(p, player, quest, npc)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (quest.canComplete(player, npc)) {
|
if (quest.canComplete(player, npc)) {
|
||||||
QuestScriptManager.getInstance().end(c, questid, npc);
|
QuestScriptManager.getInstance().end(c, questid, npc);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,13 +86,17 @@ public final class CreateCharHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int status;
|
int status;
|
||||||
if (job == 0) { // Knights of Cygnus
|
switch (job) {
|
||||||
|
case 0: // Knights of Cygnus
|
||||||
status = NoblesseCreator.createCharacter(c, name, face, hair + haircolor, skincolor, top, bottom, shoes, weapon, gender);
|
status = NoblesseCreator.createCharacter(c, name, face, hair + haircolor, skincolor, top, bottom, shoes, weapon, gender);
|
||||||
} else if (job == 1) { // Adventurer
|
break;
|
||||||
|
case 1: // Adventurer
|
||||||
status = BeginnerCreator.createCharacter(c, name, face, hair + haircolor, skincolor, top, bottom, shoes, weapon, gender);
|
status = BeginnerCreator.createCharacter(c, name, face, hair + haircolor, skincolor, top, bottom, shoes, weapon, gender);
|
||||||
} else if (job == 2) { // Aran
|
break;
|
||||||
|
case 2: // Aran
|
||||||
status = LegendCreator.createCharacter(c, name, face, hair + haircolor, skincolor, top, bottom, shoes, weapon, gender);
|
status = LegendCreator.createCharacter(c, name, face, hair + haircolor, skincolor, top, bottom, shoes, weapon, gender);
|
||||||
} else {
|
break;
|
||||||
|
default:
|
||||||
c.sendPacket(PacketCreator.deleteCharResponse(0, 9));
|
c.sendPacket(PacketCreator.deleteCharResponse(0, 9));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,21 +72,22 @@ public class MapScriptMethods extends AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startExplorerExperience() {
|
public void startExplorerExperience() {
|
||||||
if (c.getPlayer().getMapId() == 1020100) //Swordman
|
switch (c.getPlayer().getMapId()) {
|
||||||
{
|
case 1020100: //Swordman
|
||||||
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/swordman/Scene" + c.getPlayer().getGender()));
|
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/swordman/Scene" + c.getPlayer().getGender()));
|
||||||
} else if (c.getPlayer().getMapId() == 1020200) //Magician
|
break;
|
||||||
{
|
case 1020200: //Magician
|
||||||
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/magician/Scene" + c.getPlayer().getGender()));
|
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/magician/Scene" + c.getPlayer().getGender()));
|
||||||
} else if (c.getPlayer().getMapId() == 1020300) //Archer
|
break;
|
||||||
{
|
case 1020300: //Archer
|
||||||
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/archer/Scene" + c.getPlayer().getGender()));
|
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/archer/Scene" + c.getPlayer().getGender()));
|
||||||
} else if (c.getPlayer().getMapId() == 1020400) //Rogue
|
break;
|
||||||
{
|
case 1020400: //Rogue
|
||||||
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/rogue/Scene" + c.getPlayer().getGender()));
|
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/rogue/Scene" + c.getPlayer().getGender()));
|
||||||
} else if (c.getPlayer().getMapId() == 1020500) //Pirate
|
break;
|
||||||
{
|
case 1020500: //Pirate
|
||||||
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/pirate/Scene" + c.getPlayer().getGender()));
|
c.sendPacket(PacketCreator.showIntro("Effect/Direction3.img/pirate/Scene" + c.getPlayer().getGender()));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,16 +104,20 @@ public class CashShop {
|
|||||||
|
|
||||||
if (ItemConstants.EXPIRING_ITEMS) {
|
if (ItemConstants.EXPIRING_ITEMS) {
|
||||||
if (period == 1) {
|
if (period == 1) {
|
||||||
if (itemId == ItemId.EXP_COUPON_2X_4H || itemId == ItemId.DROP_COUPON_2X_4H) { // 4 Hour 2X coupons, the period is 1, but we don't want them to last a day.
|
switch (itemId) {
|
||||||
|
case ItemId.DROP_COUPON_2X_4H, ItemId.EXP_COUPON_2X_4H: // 4 Hour 2X coupons, the period is 1, but we don't want them to last a day.
|
||||||
item.setExpiration(Server.getInstance().getCurrentTime() + HOURS.toMillis(4));
|
item.setExpiration(Server.getInstance().getCurrentTime() + HOURS.toMillis(4));
|
||||||
/*
|
/*
|
||||||
} else if(itemId == 5211047 || itemId == 5360014) { // 3 Hour 2X coupons, unused as of now
|
} else if(itemId == 5211047 || itemId == 5360014) { // 3 Hour 2X coupons, unused as of now
|
||||||
item.setExpiration(Server.getInstance().getCurrentTime() + HOURS.toMillis(3));
|
item.setExpiration(Server.getInstance().getCurrentTime() + HOURS.toMillis(3));
|
||||||
*/
|
*/
|
||||||
} else if (itemId == ItemId.EXP_COUPON_3X_2H) { // 2 Hour 3X coupons.
|
break;
|
||||||
|
case ItemId.EXP_COUPON_3X_2H:
|
||||||
item.setExpiration(Server.getInstance().getCurrentTime() + HOURS.toMillis(2));
|
item.setExpiration(Server.getInstance().getCurrentTime() + HOURS.toMillis(2));
|
||||||
} else {
|
break;
|
||||||
|
default:
|
||||||
item.setExpiration(Server.getInstance().getCurrentTime() + DAYS.toMillis(1));
|
item.setExpiration(Server.getInstance().getCurrentTime() + DAYS.toMillis(1));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
item.setExpiration(Server.getInstance().getCurrentTime() + DAYS.toMillis(period));
|
item.setExpiration(Server.getInstance().getCurrentTime() + DAYS.toMillis(period));
|
||||||
@@ -264,12 +268,16 @@ public class CashShop {
|
|||||||
this.characterId = characterId;
|
this.characterId = characterId;
|
||||||
|
|
||||||
if (!YamlConfig.config.server.USE_JOINT_CASHSHOP_INVENTORY) {
|
if (!YamlConfig.config.server.USE_JOINT_CASHSHOP_INVENTORY) {
|
||||||
if (jobType == 0) {
|
switch (jobType) {
|
||||||
|
case 0:
|
||||||
factory = ItemFactory.CASH_EXPLORER;
|
factory = ItemFactory.CASH_EXPLORER;
|
||||||
} else if (jobType == 1) {
|
break;
|
||||||
|
case 1:
|
||||||
factory = ItemFactory.CASH_CYGNUS;
|
factory = ItemFactory.CASH_CYGNUS;
|
||||||
} else if (jobType == 2) {
|
break;
|
||||||
|
case 2:
|
||||||
factory = ItemFactory.CASH_ARAN;
|
factory = ItemFactory.CASH_ARAN;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
factory = ItemFactory.CASH_OVERALL;
|
factory = ItemFactory.CASH_OVERALL;
|
||||||
|
|||||||
@@ -26,12 +26,9 @@ import provider.Data;
|
|||||||
import provider.DataProvider;
|
import provider.DataProvider;
|
||||||
import provider.DataProviderFactory;
|
import provider.DataProviderFactory;
|
||||||
import provider.DataTool;
|
import provider.DataTool;
|
||||||
import provider.wz.WZDirectoryEntry;
|
|
||||||
import provider.wz.WZFileEntry;
|
|
||||||
import provider.wz.WZFiles;
|
import provider.wz.WZFiles;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.DirectoryStream;
|
import java.nio.file.DirectoryStream;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
|||||||
@@ -128,12 +128,16 @@ public class Snowball {
|
|||||||
|
|
||||||
if (this.hits == 0) {
|
if (this.hits == 0) {
|
||||||
this.position += 1;
|
this.position += 1;
|
||||||
if (this.position == 45) {
|
switch (this.position) {
|
||||||
|
case 45:
|
||||||
map.getSnowball(team == 0 ? 1 : 0).message(1);
|
map.getSnowball(team == 0 ? 1 : 0).message(1);
|
||||||
} else if (this.position == 290) {
|
break;
|
||||||
|
case 290:
|
||||||
map.getSnowball(team == 0 ? 1 : 0).message(2);
|
map.getSnowball(team == 0 ? 1 : 0).message(2);
|
||||||
} else if (this.position == 560) {
|
break;
|
||||||
|
case 560:
|
||||||
map.getSnowball(team == 0 ? 1 : 0).message(3);
|
map.getSnowball(team == 0 ? 1 : 0).message(3);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.hits = 3;
|
this.hits = 3;
|
||||||
|
|||||||
@@ -43,14 +43,16 @@ public abstract class GachaponItems {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final int[] getItems(int tier) {
|
public final int[] getItems(int tier) {
|
||||||
if (tier == 0) {
|
switch (tier) {
|
||||||
|
case 0:
|
||||||
return commonItems;
|
return commonItems;
|
||||||
} else if (tier == 1) {
|
case 1:
|
||||||
return uncommonItems;
|
return uncommonItems;
|
||||||
} else if (tier == 2) {
|
case 2:
|
||||||
return rareItems;
|
return rareItems;
|
||||||
}
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -249,16 +249,14 @@ public class AriantColiseum {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ExpeditionType getExpeditionType() {
|
private ExpeditionType getExpeditionType() {
|
||||||
ExpeditionType type;
|
switch (map.getId()) {
|
||||||
if (map.getId() == MapId.ARPQ_ARENA_1) {
|
case MapId.ARPQ_ARENA_1:
|
||||||
type = ExpeditionType.ARIANT;
|
return ExpeditionType.ARIANT;
|
||||||
} else if (map.getId() == MapId.ARPQ_ARENA_2) {
|
case MapId.ARPQ_ARENA_2:
|
||||||
type = ExpeditionType.ARIANT1;
|
return ExpeditionType.ARIANT1;
|
||||||
} else {
|
default:
|
||||||
type = ExpeditionType.ARIANT2;
|
return ExpeditionType.ARIANT2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return type;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enterKingsRoom() {
|
private void enterKingsRoom() {
|
||||||
|
|||||||
@@ -70,48 +70,47 @@ public class PartyQuest {
|
|||||||
synchronized (participants) {
|
synchronized (participants) {
|
||||||
participants.remove(chr);
|
participants.remove(chr);
|
||||||
chr.setPartyQuest(null);
|
chr.setPartyQuest(null);
|
||||||
if (participants.isEmpty()) {
|
|
||||||
super.finalize();
|
|
||||||
}
|
|
||||||
//System.gc();
|
//System.gc();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getExp(String PQ, int level) {
|
public static int getExp(String PQ, int level) {
|
||||||
if (PQ.equals("HenesysPQ")) {
|
switch (PQ) {
|
||||||
|
case "HenesysPQ":
|
||||||
return 1250 * level / 5;
|
return 1250 * level / 5;
|
||||||
} else if (PQ.equals("KerningPQFinal")) {
|
case "KerningPQFinal":
|
||||||
return 500 * level / 5;
|
return 500 * level / 5;
|
||||||
} else if (PQ.equals("KerningPQ4th")) {
|
case "KerningPQ4th":
|
||||||
return 400 * level / 5;
|
return 400 * level / 5;
|
||||||
} else if (PQ.equals("KerningPQ3rd")) {
|
case "KerningPQ3rd":
|
||||||
return 300 * level / 5;
|
return 300 * level / 5;
|
||||||
} else if (PQ.equals("KerningPQ2nd")) {
|
case "KerningPQ2nd":
|
||||||
return 200 * level / 5;
|
return 200 * level / 5;
|
||||||
} else if (PQ.equals("KerningPQ1st")) {
|
case "KerningPQ1st":
|
||||||
return 100 * level / 5;
|
return 100 * level / 5;
|
||||||
} else if (PQ.equals("LudiMazePQ")) {
|
case "LudiMazePQ":
|
||||||
return 2000 * level / 5;
|
return 2000 * level / 5;
|
||||||
} else if (PQ.equals("LudiPQ1st")) {
|
case "LudiPQ1st":
|
||||||
return 100 * level / 5;
|
return 100 * level / 5;
|
||||||
} else if (PQ.equals("LudiPQ2nd")) {
|
case "LudiPQ2nd":
|
||||||
return 250 * level / 5;
|
return 250 * level / 5;
|
||||||
} else if (PQ.equals("LudiPQ3rd")) {
|
case "LudiPQ3rd":
|
||||||
return 350 * level / 5;
|
return 350 * level / 5;
|
||||||
} else if (PQ.equals("LudiPQ4th")) {
|
case "LudiPQ4th":
|
||||||
return 350 * level / 5;
|
return 350 * level / 5;
|
||||||
} else if (PQ.equals("LudiPQ5th")) {
|
case "LudiPQ5th":
|
||||||
return 400 * level / 5;
|
return 400 * level / 5;
|
||||||
} else if (PQ.equals("LudiPQ6th")) {
|
case "LudiPQ6th":
|
||||||
return 450 * level / 5;
|
return 450 * level / 5;
|
||||||
} else if (PQ.equals("LudiPQ7th")) {
|
case "LudiPQ7th":
|
||||||
return 500 * level / 5;
|
return 500 * level / 5;
|
||||||
} else if (PQ.equals("LudiPQ8th")) {
|
case "LudiPQ8th":
|
||||||
return 650 * level / 5;
|
return 650 * level / 5;
|
||||||
} else if (PQ.equals("LudiPQLast")) {
|
case "LudiPQLast":
|
||||||
return 800 * level / 5;
|
return 800 * level / 5;
|
||||||
}
|
default:
|
||||||
log.warn("Unhandled PartyQuest: {}", PQ);
|
log.warn("Unhandled PartyQuest: {}", PQ);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,12 +111,15 @@ public class Quest {
|
|||||||
if (startReqData != null) {
|
if (startReqData != null) {
|
||||||
for (Data startReq : startReqData.getChildren()) {
|
for (Data startReq : startReqData.getChildren()) {
|
||||||
QuestRequirementType type = QuestRequirementType.getByWZName(startReq.getName());
|
QuestRequirementType type = QuestRequirementType.getByWZName(startReq.getName());
|
||||||
if (type.equals(QuestRequirementType.INTERVAL)) {
|
switch (type) {
|
||||||
|
case INTERVAL:
|
||||||
repeatable = true;
|
repeatable = true;
|
||||||
} else if (type.equals(QuestRequirementType.MOB)) {
|
break;
|
||||||
|
case MOB:
|
||||||
for (Data mob : startReq.getChildren()) {
|
for (Data mob : startReq.getChildren()) {
|
||||||
relevantMobs.add(DataTool.getInt(mob.getChildByPath("id")));
|
relevantMobs.add(DataTool.getInt(mob.getChildByPath("id")));
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
AbstractQuestRequirement req = this.getRequirement(type, startReq);
|
AbstractQuestRequirement req = this.getRequirement(type, startReq);
|
||||||
|
|||||||
@@ -52,41 +52,42 @@ public enum QuestActionType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static QuestActionType getByWZName(String name) {
|
public static QuestActionType getByWZName(String name) {
|
||||||
if (name.equals("exp")) {
|
switch (name) {
|
||||||
|
case "exp":
|
||||||
return EXP;
|
return EXP;
|
||||||
} else if (name.equals("money")) {
|
case "money":
|
||||||
return MESO;
|
return MESO;
|
||||||
} else if (name.equals("item")) {
|
case "item":
|
||||||
return ITEM;
|
return ITEM;
|
||||||
} else if (name.equals("skill")) {
|
case "skill":
|
||||||
return SKILL;
|
return SKILL;
|
||||||
} else if (name.equals("nextQuest")) {
|
case "nextQuest":
|
||||||
return NEXTQUEST;
|
return NEXTQUEST;
|
||||||
} else if (name.equals("pop")) {
|
case "pop":
|
||||||
return FAME;
|
return FAME;
|
||||||
} else if (name.equals("buffItemID")) {
|
case "buffItemID":
|
||||||
return BUFF;
|
return BUFF;
|
||||||
} else if (name.equals("petskill")) {
|
case "petskill":
|
||||||
return PETSKILL;
|
return PETSKILL;
|
||||||
} else if (name.equals("no")) {
|
case "no":
|
||||||
return NO;
|
return NO;
|
||||||
} else if (name.equals("yes")) {
|
case "yes":
|
||||||
return YES;
|
return YES;
|
||||||
} else if (name.equals("npc")) {
|
case "npc":
|
||||||
return NPC;
|
return NPC;
|
||||||
} else if (name.equals("lvmin")) {
|
case "lvmin":
|
||||||
return MIN_LEVEL;
|
return MIN_LEVEL;
|
||||||
} else if (name.equals("normalAutoStart")) {
|
case "normalAutoStart":
|
||||||
return NORMAL_AUTO_START;
|
return NORMAL_AUTO_START;
|
||||||
} else if (name.equals("pettameness")) {
|
case "pettameness":
|
||||||
return PETTAMENESS;
|
return PETTAMENESS;
|
||||||
} else if (name.equals("petspeed")) {
|
case "petspeed":
|
||||||
return PETSPEED;
|
return PETSPEED;
|
||||||
} else if (name.equals("info")) {
|
case "info":
|
||||||
return INFO;
|
return INFO;
|
||||||
} else if (name.equals("0")) {
|
case "0":
|
||||||
return ZERO;
|
return ZERO;
|
||||||
} else {
|
default:
|
||||||
return UNDEFINED;
|
return UNDEFINED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,57 +62,58 @@ public enum QuestRequirementType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static QuestRequirementType getByWZName(String name) {
|
public static QuestRequirementType getByWZName(String name) {
|
||||||
if (name.equals("job")) {
|
switch (name) {
|
||||||
|
case "job":
|
||||||
return JOB;
|
return JOB;
|
||||||
} else if (name.equals("quest")) {
|
case "quest":
|
||||||
return QUEST;
|
return QUEST;
|
||||||
} else if (name.equals("item")) {
|
case "item":
|
||||||
return ITEM;
|
return ITEM;
|
||||||
} else if (name.equals("lvmin")) {
|
case "lvmin":
|
||||||
return MIN_LEVEL;
|
return MIN_LEVEL;
|
||||||
} else if (name.equals("lvmax")) {
|
case "lvmax":
|
||||||
return MAX_LEVEL;
|
return MAX_LEVEL;
|
||||||
} else if (name.equals("end")) {
|
case "end":
|
||||||
return END_DATE;
|
return END_DATE;
|
||||||
} else if (name.equals("mob")) {
|
case "mob":
|
||||||
return MOB;
|
return MOB;
|
||||||
} else if (name.equals("npc")) {
|
case "npc":
|
||||||
return NPC;
|
return NPC;
|
||||||
} else if (name.equals("fieldEnter")) {
|
case "fieldEnter":
|
||||||
return FIELD_ENTER;
|
return FIELD_ENTER;
|
||||||
} else if (name.equals("interval")) {
|
case "interval":
|
||||||
return INTERVAL;
|
return INTERVAL;
|
||||||
} else if (name.equals("startscript")) {
|
case "startscript":
|
||||||
return SCRIPT;
|
return SCRIPT;
|
||||||
} else if (name.equals("endscript")) {
|
case "endscript":
|
||||||
return SCRIPT;
|
return SCRIPT;
|
||||||
} else if (name.equals("pet")) {
|
case "pet":
|
||||||
return PET;
|
return PET;
|
||||||
} else if (name.equals("pettamenessmin")) {
|
case "pettamenessmin":
|
||||||
return MIN_PET_TAMENESS;
|
return MIN_PET_TAMENESS;
|
||||||
} else if (name.equals("mbmin")) {
|
case "mbmin":
|
||||||
return MONSTER_BOOK;
|
return MONSTER_BOOK;
|
||||||
} else if (name.equals("normalAutoStart")) {
|
case "normalAutoStart":
|
||||||
return NORMAL_AUTO_START;
|
return NORMAL_AUTO_START;
|
||||||
} else if (name.equals("infoNumber")) {
|
case "infoNumber":
|
||||||
return INFO_NUMBER;
|
return INFO_NUMBER;
|
||||||
} else if (name.equals("infoex")) {
|
case "infoex":
|
||||||
return INFO_EX;
|
return INFO_EX;
|
||||||
} else if (name.equals("questComplete")) {
|
case "questComplete":
|
||||||
return COMPLETED_QUEST;
|
return COMPLETED_QUEST;
|
||||||
} else if (name.equals("start")) {
|
case "start":
|
||||||
return START;
|
return START;
|
||||||
/*} else if(name.equals("end")) { already coded
|
/* case "end":already coded
|
||||||
return END;*/
|
return END;*/
|
||||||
} else if (name.equals("daybyday")) {
|
case "daybyday":
|
||||||
return DAY_BY_DAY;
|
return DAY_BY_DAY;
|
||||||
} else if (name.equals("money")) {
|
case "money":
|
||||||
return MESO;
|
return MESO;
|
||||||
} else if (name.equals("buff")) {
|
case "buff":
|
||||||
return BUFF;
|
return BUFF;
|
||||||
} else if (name.equals("exceptbuff")) {
|
case "exceptbuff":
|
||||||
return EXCEPT_BUFF;
|
return EXCEPT_BUFF;
|
||||||
} else {
|
default:
|
||||||
return UNDEFINED;
|
return UNDEFINED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package tools.mapletools;
|
|||||||
import provider.wz.WZFiles;
|
import provider.wz.WZFiles;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
|||||||
Reference in New Issue
Block a user