Clean up code, replace switch and try-with-resource where possible.

This commit is contained in:
Đạt Nhân Trương
2022-08-07 21:51:10 +07:00
parent f983b4dccf
commit 0ef3e69638
22 changed files with 609 additions and 589 deletions

View File

@@ -61,7 +61,7 @@ public class FaceCommand extends Command {
}
Character victim = c.getChannelServer().getPlayerStorage().getCharacterByName(params[0]);
if (victim == null) {
if (victim != null) {
victim.setFace(itemId);
victim.updateSingleStat(Stat.FACE, itemId);
victim.equipChanged();

View File

@@ -538,7 +538,8 @@ public class InventoryManipulator {
itemChanged = true;
}
if (dst == -6) { // unequip the overall
switch (dst) {
case -6: // unequip the overall
Item top = eqpdInv.getItem((short) -5);
if (top != null && ItemConstants.isOverall(top.getItemId())) {
if (eqpInv.isFull()) {
@@ -548,7 +549,8 @@ public class InventoryManipulator {
}
unequip(c, (byte) -5, eqpInv.getNextFreeSlot());
}
} else if (dst == -5) {
break;
case -5:
final Item bottom = eqpdInv.getItem((short) -6);
if (bottom != null && ItemConstants.isOverall(source.getItemId())) {
if (eqpInv.isFull()) {
@@ -558,7 +560,8 @@ public class InventoryManipulator {
}
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);
if (weapon != null && ii.isTwoHanded(weapon.getItemId())) {
if (eqpInv.isFull()) {
@@ -568,7 +571,8 @@ public class InventoryManipulator {
}
unequip(c, (byte) -11, eqpInv.getNextFreeSlot());
}
} else if (dst == -11) {
break;
case -11:
Item shield = eqpdInv.getItem((short) -10);
if (shield != null && ii.isTwoHanded(source.getItemId())) {
if (eqpInv.isFull()) {
@@ -578,11 +582,12 @@ public class InventoryManipulator {
}
unequip(c, (byte) -10, eqpInv.getNextFreeSlot());
}
}
if (dst == -18) {
break;
case -18:
if (chr.getMount() != null) {
chr.getMount().setItemId(source.getItemId());
}
break;
}
//1112413, 1112414, 1112405 (Lilin's Ring)

View File

@@ -60,7 +60,8 @@ public class StorageProcessor {
if (c.tryacquireClient()) {
try {
if (mode == 4) { // take out
switch (mode) {
case 4: { // take out
byte type = p.readByte();
byte slot = p.readByte();
if (slot < 0 || slot > storage.getSlots()) { // removal starts at zero
@@ -104,14 +105,17 @@ public class StorageProcessor {
c.sendPacket(PacketCreator.getStorageError((byte) 0x0A));
}
}
} else if (mode == 5) { // store
break;
}
case 5: { // store
short slot = p.readShort();
int itemId = p.readInt();
short quantity = p.readShort();
InventoryType invType = ItemConstants.getInventoryType(itemId);
Inventory inv = chr.getInventory(invType);
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);
c.disconnect(true, false);
return;
@@ -124,7 +128,6 @@ public class StorageProcessor {
c.sendPacket(PacketCreator.getStorageError((byte) 0x11));
return;
}
int storeFee = storage.getStoreFee();
if (chr.getMeso() < storeFee) {
c.sendPacket(PacketCreator.getStorageError((byte) 0x0B));
@@ -134,7 +137,8 @@ public class StorageProcessor {
inv.lockInventory(); // thanks imbee for pointing a dupe within storage
try {
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)) {
c.sendPacket(PacketCreator.enableActions());
return;
@@ -167,12 +171,15 @@ public class StorageProcessor {
log.debug("Chr {} stored {}x {} ({})", c.getPlayer().getName(), item.getQuantity(), itemName, item.getItemId());
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) {
storage.arrangeItems(c);
}
c.sendPacket(PacketCreator.enableActions());
} else if (mode == 7) { // meso
break;
case 7: { // meso
int meso = p.readInt();
int storageMesos = storage.getMeso();
int playerMesos = chr.getMeso();
@@ -199,8 +206,11 @@ public class StorageProcessor {
c.sendPacket(PacketCreator.enableActions());
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();
break;
}
} finally {
c.releaseClient();

View File

@@ -418,7 +418,8 @@ public class AssignAPProcessor {
}
int newVal = 0;
if (type.equals(Stat.STR)) {
switch (type) {
case STR:
newVal = statUpdate[0] + gain;
if (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;
statUpdate[0] = newVal;
}
} else if (type.equals(Stat.INT)) {
break;
case INT:
newVal = statUpdate[3] + gain;
if (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;
statUpdate[3] = newVal;
}
} else if (type.equals(Stat.LUK)) {
break;
case LUK:
newVal = statUpdate[2] + gain;
if (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;
statUpdate[2] = newVal;
}
} else if (type.equals(Stat.DEX)) {
break;
case DEX:
newVal = statUpdate[1] + gain;
if (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;
statUpdate[1] = newVal;
}
break;
}
if (newVal > YamlConfig.config.server.MAX_AP) {

View File

@@ -1934,13 +1934,7 @@ public class Server {
new Thread(() -> System.exit(0)).start();
} else {
log.info("Restarting the server...");
try {
instance.finalize();//FUU I CAN AND IT'S FREE
} catch (Throwable ex) {
ex.printStackTrace();
}
instance = null;
System.gc();
getInstance().init();//DID I DO EVERYTHING?! D:
}
}

View File

@@ -303,28 +303,24 @@ public final class BBSOperationHandler extends AbstractPacketHandler {
try (Connection con = DatabaseConnection.getConnection()) {
// 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 = ?")) {
ps.setInt(1, mc.getGuildId());
ps.setInt(2, threadid);
ResultSet threadRS = ps.executeQuery();
if (!threadRS.next()) {
threadRS.close();
ps.close();
return;
}
ResultSet repliesRS = null;
ps2 = null;
try (PreparedStatement ps2 = con.prepareStatement("SELECT * FROM bbs_replies WHERE threadid = ?")) {
if (threadRS.getInt("replycount") >= 0) {
ps2 = con.prepareStatement("SELECT * FROM bbs_replies WHERE threadid = ?");
ps2.setInt(1, !bIsThreadIdLocal ? threadid : threadRS.getInt("threadid"));
repliesRS = ps2.executeQuery();
}
client.sendPacket(GuildPackets.showThread(bIsThreadIdLocal ? threadid : threadRS.getInt("localthreadid"), threadRS, repliesRS));
repliesRS.close();
}
if (ps2 != null) {
ps2.close();
/* repliesRS.close();
* Don't need because ResultSet will be closed
* when associated Statement close*/
}
} catch (SQLException se) {
log.error("Error displaying thread", se);

View File

@@ -61,7 +61,8 @@ public final class MTSHandler extends AbstractPacketHandler {
}
if (p.available() > 0) {
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();
int itemid = p.readInt();
p.readShort();
@@ -108,11 +109,8 @@ public final class MTSHandler extends AbstractPacketHandler {
InventoryType invType = ItemConstants.getInventoryType(itemid);
Item i = c.getPlayer().getInventory(invType).getItem(slot).copy();
if (i != null && c.getPlayer().getMeso() >= 5000) {
Connection con = null;
try {
con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE seller = ?");
try (Connection con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE seller = ?");) {
ps.setInt(1, c.getPlayer().getId());
ResultSet rs = ps.executeQuery();
if (rs.next()) {
@@ -121,13 +119,9 @@ public final class MTSHandler extends AbstractPacketHandler {
c.sendPacket(getMTS(1, 0, 0));
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
rs.close();
ps.close();
return;
}
}
rs.close();
ps.close();
Calendar calendar = Calendar.getInstance();
int year;
int month;
@@ -164,61 +158,62 @@ public final class MTSHandler extends AbstractPacketHandler {
}
if (!i.getInventoryType().equals(InventoryType.EQUIP)) {
Item item = i;
ps = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, owner, sellername, sell_ends) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
ps.setInt(1, 1);
ps.setInt(2, invType.getType());
ps.setInt(3, item.getItemId());
ps.setInt(4, quantity);
ps.setLong(5, item.getExpiration());
ps.setString(6, item.getGiftFrom());
ps.setInt(7, c.getPlayer().getId());
ps.setInt(8, price);
ps.setString(9, item.getOwner());
ps.setString(10, c.getPlayer().getName());
ps.setString(11, date);
try (PreparedStatement pse = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, owner, sellername, sell_ends) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
pse.setInt(1, 1);
pse.setInt(2, invType.getType());
pse.setInt(3, item.getItemId());
pse.setInt(4, quantity);
pse.setLong(5, item.getExpiration());
pse.setString(6, item.getGiftFrom());
pse.setInt(7, c.getPlayer().getId());
pse.setInt(8, price);
pse.setString(9, item.getOwner());
pse.setString(10, c.getPlayer().getName());
pse.setString(11, date);
pse.executeUpdate();
}
} else {
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 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
ps.setInt(1, 1);
ps.setInt(2, invType.getType());
ps.setInt(3, equip.getItemId());
ps.setInt(4, quantity);
ps.setLong(5, equip.getExpiration());
ps.setString(6, equip.getGiftFrom());
ps.setInt(7, c.getPlayer().getId());
ps.setInt(8, price);
ps.setInt(9, equip.getUpgradeSlots());
ps.setInt(10, equip.getLevel());
ps.setInt(11, equip.getStr());
ps.setInt(12, equip.getDex());
ps.setInt(13, equip.getInt());
ps.setInt(14, equip.getLuk());
ps.setInt(15, equip.getHp());
ps.setInt(16, equip.getMp());
ps.setInt(17, equip.getWatk());
ps.setInt(18, equip.getMatk());
ps.setInt(19, equip.getWdef());
ps.setInt(20, equip.getMdef());
ps.setInt(21, equip.getAcc());
ps.setInt(22, equip.getAvoid());
ps.setInt(23, equip.getHands());
ps.setInt(24, equip.getSpeed());
ps.setInt(25, equip.getJump());
ps.setInt(26, 0);
ps.setString(27, equip.getOwner());
ps.setString(28, c.getPlayer().getName());
ps.setString(29, date);
ps.setInt(30, equip.getVicious());
ps.setInt(31, equip.getFlag());
ps.setInt(32, equip.getItemExp());
ps.setByte(33, equip.getItemLevel()); // thanks Jefe for noticing missing itemlevel labels
ps.setInt(34, equip.getRingId());
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 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
pse.setInt(1, 1);
pse.setInt(2, invType.getType());
pse.setInt(3, equip.getItemId());
pse.setInt(4, quantity);
pse.setLong(5, equip.getExpiration());
pse.setString(6, equip.getGiftFrom());
pse.setInt(7, c.getPlayer().getId());
pse.setInt(8, price);
pse.setInt(9, equip.getUpgradeSlots());
pse.setInt(10, equip.getLevel());
pse.setInt(11, equip.getStr());
pse.setInt(12, equip.getDex());
pse.setInt(13, equip.getInt());
pse.setInt(14, equip.getLuk());
pse.setInt(15, equip.getHp());
pse.setInt(16, equip.getMp());
pse.setInt(17, equip.getWatk());
pse.setInt(18, equip.getMatk());
pse.setInt(19, equip.getWdef());
pse.setInt(20, equip.getMdef());
pse.setInt(21, equip.getAcc());
pse.setInt(22, equip.getAvoid());
pse.setInt(23, equip.getHands());
pse.setInt(24, equip.getSpeed());
pse.setInt(25, equip.getJump());
pse.setInt(26, 0);
pse.setString(27, equip.getOwner());
pse.setString(28, c.getPlayer().getName());
pse.setString(29, date);
pse.setInt(30, equip.getVicious());
pse.setInt(31, equip.getFlag());
pse.setInt(32, equip.getItemExp());
pse.setByte(33, equip.getItemLevel()); // thanks Jefe for noticing missing itemlevel labels
pse.setInt(34, equip.getRingId());
pse.executeUpdate();
}
}
ps.executeUpdate();
ps.close();
InventoryManipulator.removeFromSlot(c, invType, slot, quantity, false);
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
@@ -229,14 +224,18 @@ public final class MTSHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
}
} else if (op == 3) { //send offer for wanted item
} else if (op == 4) { //list wanted item
break;
}
case 3: //send offer for wanted item
break;
case 4: //list wanted item
p.readInt();
p.readInt();
p.readInt();
p.readShort();
p.readString();
} else if (op == 5) { //change page
break;
case 5: { //change page
int tab = p.readInt();
int type = p.readInt();
int page = p.readInt();
@@ -254,7 +253,9 @@ public final class MTSHandler extends AbstractPacketHandler {
c.enableCSActions();
c.sendPacket(PacketCreator.transferInventory(getTransfer(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 type = p.readInt();
p.readInt();
@@ -270,45 +271,46 @@ public final class MTSHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.showMTSCash(c.getPlayer()));
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
} else if (op == 7) { //cancel sale
break;
}
case 7: { //cancel sale
int id = p.readInt(); // id of the item
Connection con = null;
try {
con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("UPDATE mts_items SET transfer = 1 WHERE id = ? AND seller = ?");
try (Connection con = DatabaseConnection.getConnection()) {
try (PreparedStatement ps = con.prepareStatement("UPDATE mts_items SET transfer = 1 WHERE id = ? AND seller = ?")) {
ps.setInt(1, id);
ps.setInt(2, c.getPlayer().getId());
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.executeUpdate();
ps.close();
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
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.transferInventory(getTransfer(c.getPlayer().getId())));
} else if (op == 8) { //transfer item from transfer inv.
break;
}
case 8: { // transfer item from transfer inv.
int id = p.readInt(); // id of the item
Connection con = null;
PreparedStatement ps;
ResultSet rs;
try {
con = DatabaseConnection.getConnection();
ps = con.prepareStatement("SELECT * FROM mts_items WHERE seller = ? AND transfer = 1 AND id= ? ORDER BY id DESC");
try (Connection con = DatabaseConnection.getConnection()) {
try (PreparedStatement 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(2, id);
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
if (rs.next()) {
Item i;
if (rs.getInt("type") != 1) {
Item ii = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity"));
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();
} else {
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.setExpiration(rs.getLong("expiration"));
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();
}
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(2, c.getPlayer().getId());
pse.executeUpdate();
@@ -349,21 +354,21 @@ public final class MTSHandler extends AbstractPacketHandler {
InventoryManipulator.addFromDrop(c, i, false);
c.enableCSActions();
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.transferInventory(getTransfer(c.getPlayer().getId())));
}
rs.close();
ps.close();
con.close();
// rs.close(); Closing statement will also close related resultset
}
} catch (SQLException e) {
log.error("MTS Transfer error", e);
}
} else if (op == 9) { //add to cart
break;
}
case 9: { //add to cart
int id = p.readInt(); // id of the item
Connection con;
try {
con = DatabaseConnection.getConnection();
try (Connection con = DatabaseConnection.getConnection()) {
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(2, c.getPlayer().getId());
@@ -384,7 +389,6 @@ public final class MTSHandler extends AbstractPacketHandler {
}
}
}
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
@@ -393,17 +397,16 @@ public final class MTSHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.enableActions());
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
} else if (op == 10) { //delete from cart
break;
}
case 10: { //delete from cart
int id = p.readInt(); // id of the item
Connection con = null;
try {
con = DatabaseConnection.getConnection();
try (Connection con = DatabaseConnection.getConnection()) {
try (PreparedStatement ps = con.prepareStatement("DELETE FROM mts_cart WHERE itemid = ? AND cid = ?")) {
ps.setInt(1, id);
ps.setInt(2, c.getPlayer().getId());
ps.executeUpdate();
}
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
@@ -411,19 +414,20 @@ public final class MTSHandler extends AbstractPacketHandler {
c.enableCSActions();
c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId())));
c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId())));
} else if (op == 12) { //put item up for auction
} else if (op == 13) { //cancel wanted cart thing
} else if (op == 14) { //buy auction item now
} else if (op == 16) { //buy
break;
}
case 12: //put item up for auction
break;
case 13: //cancel wanted cart thing
break;
case 14: //buy auction item now
break;
case 16: { //buy
int id = p.readInt(); // id of the item
Connection con = null;
PreparedStatement ps;
ResultSet rs;
try {
con = DatabaseConnection.getConnection();
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);
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
if (rs.next()) {
int price = rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1); // taxes
if (c.getPlayer().getCashShop().getCash(4) >= price) { // FIX
@@ -436,10 +440,9 @@ public final class MTSHandler extends AbstractPacketHandler {
}
}
if (alwaysnull) {
ResultSet rse;
try (PreparedStatement pse = con.prepareStatement("SELECT accountid FROM characters WHERE id = ?")) {
pse.setInt(1, rs.getInt("seller"));
rse = pse.executeQuery();
ResultSet rse = pse.executeQuery();
if (rse.next()) {
try (PreparedStatement psee = con.prepareStatement("UPDATE accounts SET nxPrepaid = nxPrepaid + ? WHERE id = ?")) {
psee.setInt(1, rs.getInt("price"));
@@ -448,17 +451,16 @@ 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(2, id);
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.executeUpdate();
pse.close();
}
c.getPlayer().getCashShop().gainCash(4, -price);
c.enableCSActions();
c.sendPacket(getMTS(c.getPlayer().getCurrentTab(), c.getPlayer().getCurrentType(),c.getPlayer().getCurrentPage()));
@@ -471,23 +473,18 @@ public final class MTSHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.MTSFailBuy());
}
}
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
c.sendPacket(PacketCreator.MTSFailBuy());
}
} else if (op == 17) { //buy from cart
break;
}
case 17: { //buy from cart
int id = p.readInt(); // id of the item
Connection con = null;
PreparedStatement ps;
ResultSet rs;
try {
con = DatabaseConnection.getConnection();
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);
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
if (rs.next()) {
int price = rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1);
if (c.getPlayer().getCashShop().getCash(4) >= price) {
@@ -496,10 +493,9 @@ public final class MTSHandler extends AbstractPacketHandler {
if (victim != null) {
victim.getCashShop().gainCash(4, rs.getInt("price"));
} else {
ResultSet rse;
try (PreparedStatement pse = con.prepareStatement("SELECT accountid FROM characters WHERE id = ?")) {
pse.setInt(1, rs.getInt("seller"));
rse = pse.executeQuery();
ResultSet rse = pse.executeQuery();
if (rse.next()) {
try (PreparedStatement psee = con.prepareStatement("UPDATE accounts SET nxPrepaid = nxPrepaid + ? WHERE id = ?")) {
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(2, id);
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.executeUpdate();
pse.close();
}
c.getPlayer().getCashShop().gainCash(4, -price);
c.sendPacket(getCart(c.getPlayer().getId()));
c.enableCSActions();
@@ -531,15 +526,15 @@ public final class MTSHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.MTSFailBuy());
}
}
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
c.sendPacket(PacketCreator.MTSFailBuy());
}
} else {
break;
}
default:
log.warn("Unhandled OP (MTS): {}, packet: {}", op, p);
break;
}
} else {
c.sendPacket(PacketCreator.showMTSCash(c.getPlayer()));
@@ -548,14 +543,10 @@ public final class MTSHandler extends AbstractPacketHandler {
public List<MTSItemInfo> getNotYetSold(int cid) {
List<MTSItemInfo> items = new ArrayList<>();
Connection con = null;
PreparedStatement ps;
ResultSet rs;
try {
con = DatabaseConnection.getConnection();
ps = con.prepareStatement("SELECT * FROM mts_items WHERE seller = ? AND transfer = 0 ORDER BY id DESC");
try (Connection con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE seller = ? AND transfer = 0 ORDER BY id DESC")) {
ps.setInt(1, cid);
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
while (rs.next()) {
if (rs.getInt("type") != 1) {
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")));
}
}
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
@@ -603,15 +591,11 @@ public final class MTSHandler extends AbstractPacketHandler {
public Packet getCart(int cid) {
List<MTSItemInfo> items = new ArrayList<>();
Connection con = null;
PreparedStatement ps;
ResultSet rs;
int pages = 0;
try {
con = DatabaseConnection.getConnection();
ps = con.prepareStatement("SELECT * FROM mts_cart WHERE cid = ? ORDER BY id DESC");
try (Connection con = DatabaseConnection.getConnection()) {
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_cart WHERE cid = ? ORDER BY id DESC")) {
ps.setInt(1, cid);
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
while (rs.next()) {
try (PreparedStatement pse = con.prepareStatement("SELECT * FROM mts_items WHERE id = ?")) {
pse.setInt(1, rs.getInt("itemid"));
@@ -620,7 +604,8 @@ public final class MTSHandler extends AbstractPacketHandler {
if (rse.getInt("type") != 1) {
Item i = new Item(rse.getInt("itemid"), (short) 0, (short) rse.getInt("quantity"));
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 {
Equip equip = new Equip(rse.getInt("itemid"), (byte) rse.getInt("position"), -1);
equip.setOwner(rse.getString("owner"));
@@ -649,25 +634,23 @@ public final class MTSHandler extends AbstractPacketHandler {
equip.setFlag((short) rs.getInt("flag"));
equip.setExpiration(rs.getLong("expiration"));
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();
ps = con.prepareStatement("SELECT COUNT(*) FROM mts_cart WHERE cid = ?");
}
try (PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_cart WHERE cid = ?")) {
ps.setInt(1, cid);
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
if (rs.next()) {
pages = rs.getInt(1) / 16;
if (rs.getInt(1) % 16 > 0) {
pages += 1;
}
}
rs.close();
ps.close();
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
@@ -676,14 +659,10 @@ public final class MTSHandler extends AbstractPacketHandler {
public List<MTSItemInfo> getTransfer(int cid) {
List<MTSItemInfo> items = new ArrayList<>();
Connection con = null;
PreparedStatement ps;
ResultSet rs;
try {
con = DatabaseConnection.getConnection();
ps = con.prepareStatement("SELECT * FROM mts_items WHERE transfer = 1 AND seller = ? ORDER BY id DESC");
try (Connection con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE transfer = 1 AND seller = ? ORDER BY id DESC")) {
ps.setInt(1, cid);
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
while (rs.next()) {
if (rs.getInt("type") != 1) {
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")));
}
}
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
@@ -731,17 +707,15 @@ public final class MTSHandler extends AbstractPacketHandler {
private static Packet getMTS(int tab, int type, int page) {
List<MTSItemInfo> items = new ArrayList<>();
Connection con = null;
PreparedStatement ps;
ResultSet rs;
int pages = 0;
try {
con = DatabaseConnection.getConnection();
try (Connection con = DatabaseConnection.getConnection()) {
String sql;
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 {
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);
if (type != 0) {
ps.setInt(2, type);
@@ -749,12 +723,13 @@ public final class MTSHandler extends AbstractPacketHandler {
} else {
ps.setInt(2, page * 16);
}
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
while (rs.next()) {
if (rs.getInt("type") != 1) {
Item i = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity"));
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 {
Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1);
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")));
}
}
rs.close();
ps.close();
ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE tab = ? " + (type != 0 ? "AND type = ?" : "") + "AND transfer = 0");
}
try (PreparedStatement ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items WHERE tab = ? " + (type != 0 ? "AND type = ?" : "") + "AND transfer = 0")) {
ps.setInt(1, tab);
if (type != 0) {
ps.setInt(2, type);
}
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
if (rs.next()) {
pages = rs.getInt(1) / 16;
if (rs.getInt(1) % 16 > 0) {
pages++;
}
}
rs.close();
ps.close();
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
@@ -830,17 +802,15 @@ public final class MTSHandler extends AbstractPacketHandler {
} else {
listaitems = " AND sellername LIKE CONCAT('%','" + search + "', '%')";
}
Connection con = null;
PreparedStatement ps;
ResultSet rs;
int pages = 0;
try {
con = DatabaseConnection.getConnection();
try (Connection con = DatabaseConnection.getConnection()){
String sql;
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 {
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);
if (type != 0) {
ps.setInt(2, type);
@@ -848,7 +818,7 @@ public final class MTSHandler extends AbstractPacketHandler {
} else {
ps.setInt(2, page * 16);
}
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
while (rs.next()) {
if (rs.getInt("type") != 1) {
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")));
}
}
rs.close();
ps.close();
}
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);
if (type != 0) {
ps.setInt(2, type);
}
rs = ps.executeQuery();
ResultSet rs = ps.executeQuery();
if (rs.next()) {
pages = rs.getInt(1) / 16;
if (rs.getInt(1) % 16 > 0) {
pages++;
}
}
rs.close();
ps.close();
}
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}

View File

@@ -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.
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..."));
} 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."));
} 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."));
} 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."));
} 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."));
} 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."));
} 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..."));
break;
}
map.killFriendlies(monster);

View File

@@ -38,27 +38,38 @@ public final class NPCShopHandler extends AbstractPacketHandler {
@Override
public void handlePacket(InPacket p, Client c) {
byte bmode = p.readByte();
if (bmode == 0) { // mode 0 = buy :)
switch (bmode) {
case 0: { // mode 0 = buy :)
short slot = p.readShort();// slot
int itemId = p.readInt();
short quantity = p.readShort();
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);
c.disconnect(true, false);
return;
}
c.getPlayer().getShop().buy(c, slot, itemId, quantity);
} else if (bmode == 1) { // sell ;)
break;
}
case 1: { // sell ;)
short slot = p.readShort();
int itemId = p.readInt();
short quantity = p.readShort();
c.getPlayer().getShop().sell(c, ItemConstants.getInventoryType(itemId), slot, quantity);
} else if (bmode == 2) { // recharge ;)
break;
}
case 2: { // recharge ;)
byte slot = (byte) p.readShort();
c.getPlayer().getShop().recharge(c, slot);
} else if (bmode == 3) { // leaving :(
break;
}
case 3: // leaving :(
c.getPlayer().setShop(null);
}
break;
}
}
}

View File

@@ -73,25 +73,27 @@ public final class QuestActionHandler extends AbstractPacketHandler {
Character player = c.getPlayer();
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();
int itemid = p.readInt();
quest.restoreLostItem(player, itemid);
} else if (action == 1) { //Start Quest
break;
case 1: { // Start Quest
int npc = p.readInt();
if (!isNpcNearby(p, player, quest, npc)) {
return;
}
if (quest.canStart(player, npc)) {
quest.start(player, npc);
}
} else if (action == 2) { // Complete Quest
break;
}
case 2: { // Complete Quest
int npc = p.readInt();
if (!isNpcNearby(p, player, quest, npc)) {
return;
}
if (quest.canComplete(player, npc)) {
if (p.available() >= 2) {
int selection = p.readShort();
@@ -100,26 +102,31 @@ public final class QuestActionHandler extends AbstractPacketHandler {
quest.complete(player, npc);
}
}
} else if (action == 3) {// forfeit quest
break;
}
case 3: // forfeit quest
quest.forfeit(player);
} else if (action == 4) { // scripted start quest
break;
case 4: { // scripted start quest
int npc = p.readInt();
if (!isNpcNearby(p, player, quest, npc)) {
return;
}
if (quest.canStart(player, npc)) {
QuestScriptManager.getInstance().start(c, questid, npc);
}
} else if (action == 5) { // scripted end quests
break;
}
case 5: { // scripted end quests
int npc = p.readInt();
if (!isNpcNearby(p, player, quest, npc)) {
return;
}
if (quest.canComplete(player, npc)) {
QuestScriptManager.getInstance().end(c, questid, npc);
}
break;
}
}
}
}

View File

@@ -86,13 +86,17 @@ public final class CreateCharHandler extends AbstractPacketHandler {
}
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);
} else if (job == 1) { // Adventurer
break;
case 1: // Adventurer
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);
} else {
break;
default:
c.sendPacket(PacketCreator.deleteCharResponse(0, 9));
return;
}

View File

@@ -72,21 +72,22 @@ public class MapScriptMethods extends AbstractPlayerInteraction {
}
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()));
} else if (c.getPlayer().getMapId() == 1020200) //Magician
{
break;
case 1020200: //Magician
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()));
} else if (c.getPlayer().getMapId() == 1020400) //Rogue
{
break;
case 1020400: //Rogue
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()));
break;
}
}

View File

@@ -104,16 +104,20 @@ public class CashShop {
if (ItemConstants.EXPIRING_ITEMS) {
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));
/*
} else if(itemId == 5211047 || itemId == 5360014) { // 3 Hour 2X coupons, unused as of now
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));
} else {
break;
default:
item.setExpiration(Server.getInstance().getCurrentTime() + DAYS.toMillis(1));
break;
}
} else {
item.setExpiration(Server.getInstance().getCurrentTime() + DAYS.toMillis(period));
@@ -264,12 +268,16 @@ public class CashShop {
this.characterId = characterId;
if (!YamlConfig.config.server.USE_JOINT_CASHSHOP_INVENTORY) {
if (jobType == 0) {
switch (jobType) {
case 0:
factory = ItemFactory.CASH_EXPLORER;
} else if (jobType == 1) {
break;
case 1:
factory = ItemFactory.CASH_CYGNUS;
} else if (jobType == 2) {
break;
case 2:
factory = ItemFactory.CASH_ARAN;
break;
}
} else {
factory = ItemFactory.CASH_OVERALL;

View File

@@ -26,12 +26,9 @@ import provider.Data;
import provider.DataProvider;
import provider.DataProviderFactory;
import provider.DataTool;
import provider.wz.WZDirectoryEntry;
import provider.wz.WZFileEntry;
import provider.wz.WZFiles;
import tools.DatabaseConnection;
import java.io.File;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;

View File

@@ -128,12 +128,16 @@ public class Snowball {
if (this.hits == 0) {
this.position += 1;
if (this.position == 45) {
switch (this.position) {
case 45:
map.getSnowball(team == 0 ? 1 : 0).message(1);
} else if (this.position == 290) {
break;
case 290:
map.getSnowball(team == 0 ? 1 : 0).message(2);
} else if (this.position == 560) {
break;
case 560:
map.getSnowball(team == 0 ? 1 : 0).message(3);
break;
}
this.hits = 3;

View File

@@ -43,14 +43,16 @@ public abstract class GachaponItems {
}
public final int[] getItems(int tier) {
if (tier == 0) {
switch (tier) {
case 0:
return commonItems;
} else if (tier == 1) {
case 1:
return uncommonItems;
} else if (tier == 2) {
case 2:
return rareItems;
}
default:
return null;
}
}
}

View File

@@ -249,16 +249,14 @@ public class AriantColiseum {
}
private ExpeditionType getExpeditionType() {
ExpeditionType type;
if (map.getId() == MapId.ARPQ_ARENA_1) {
type = ExpeditionType.ARIANT;
} else if (map.getId() == MapId.ARPQ_ARENA_2) {
type = ExpeditionType.ARIANT1;
} else {
type = ExpeditionType.ARIANT2;
switch (map.getId()) {
case MapId.ARPQ_ARENA_1:
return ExpeditionType.ARIANT;
case MapId.ARPQ_ARENA_2:
return ExpeditionType.ARIANT1;
default:
return ExpeditionType.ARIANT2;
}
return type;
}
private void enterKingsRoom() {

View File

@@ -70,48 +70,47 @@ public class PartyQuest {
synchronized (participants) {
participants.remove(chr);
chr.setPartyQuest(null);
if (participants.isEmpty()) {
super.finalize();
}
//System.gc();
}
}
public static int getExp(String PQ, int level) {
if (PQ.equals("HenesysPQ")) {
switch (PQ) {
case "HenesysPQ":
return 1250 * level / 5;
} else if (PQ.equals("KerningPQFinal")) {
case "KerningPQFinal":
return 500 * level / 5;
} else if (PQ.equals("KerningPQ4th")) {
case "KerningPQ4th":
return 400 * level / 5;
} else if (PQ.equals("KerningPQ3rd")) {
case "KerningPQ3rd":
return 300 * level / 5;
} else if (PQ.equals("KerningPQ2nd")) {
case "KerningPQ2nd":
return 200 * level / 5;
} else if (PQ.equals("KerningPQ1st")) {
case "KerningPQ1st":
return 100 * level / 5;
} else if (PQ.equals("LudiMazePQ")) {
case "LudiMazePQ":
return 2000 * level / 5;
} else if (PQ.equals("LudiPQ1st")) {
case "LudiPQ1st":
return 100 * level / 5;
} else if (PQ.equals("LudiPQ2nd")) {
case "LudiPQ2nd":
return 250 * level / 5;
} else if (PQ.equals("LudiPQ3rd")) {
case "LudiPQ3rd":
return 350 * level / 5;
} else if (PQ.equals("LudiPQ4th")) {
case "LudiPQ4th":
return 350 * level / 5;
} else if (PQ.equals("LudiPQ5th")) {
case "LudiPQ5th":
return 400 * level / 5;
} else if (PQ.equals("LudiPQ6th")) {
case "LudiPQ6th":
return 450 * level / 5;
} else if (PQ.equals("LudiPQ7th")) {
case "LudiPQ7th":
return 500 * level / 5;
} else if (PQ.equals("LudiPQ8th")) {
case "LudiPQ8th":
return 650 * level / 5;
} else if (PQ.equals("LudiPQLast")) {
case "LudiPQLast":
return 800 * level / 5;
}
default:
log.warn("Unhandled PartyQuest: {}", PQ);
return 0;
}
}
}

View File

@@ -111,12 +111,15 @@ public class Quest {
if (startReqData != null) {
for (Data startReq : startReqData.getChildren()) {
QuestRequirementType type = QuestRequirementType.getByWZName(startReq.getName());
if (type.equals(QuestRequirementType.INTERVAL)) {
switch (type) {
case INTERVAL:
repeatable = true;
} else if (type.equals(QuestRequirementType.MOB)) {
break;
case MOB:
for (Data mob : startReq.getChildren()) {
relevantMobs.add(DataTool.getInt(mob.getChildByPath("id")));
}
break;
}
AbstractQuestRequirement req = this.getRequirement(type, startReq);

View File

@@ -52,41 +52,42 @@ public enum QuestActionType {
}
public static QuestActionType getByWZName(String name) {
if (name.equals("exp")) {
switch (name) {
case "exp":
return EXP;
} else if (name.equals("money")) {
case "money":
return MESO;
} else if (name.equals("item")) {
case "item":
return ITEM;
} else if (name.equals("skill")) {
case "skill":
return SKILL;
} else if (name.equals("nextQuest")) {
case "nextQuest":
return NEXTQUEST;
} else if (name.equals("pop")) {
case "pop":
return FAME;
} else if (name.equals("buffItemID")) {
case "buffItemID":
return BUFF;
} else if (name.equals("petskill")) {
case "petskill":
return PETSKILL;
} else if (name.equals("no")) {
case "no":
return NO;
} else if (name.equals("yes")) {
case "yes":
return YES;
} else if (name.equals("npc")) {
case "npc":
return NPC;
} else if (name.equals("lvmin")) {
case "lvmin":
return MIN_LEVEL;
} else if (name.equals("normalAutoStart")) {
case "normalAutoStart":
return NORMAL_AUTO_START;
} else if (name.equals("pettameness")) {
case "pettameness":
return PETTAMENESS;
} else if (name.equals("petspeed")) {
case "petspeed":
return PETSPEED;
} else if (name.equals("info")) {
case "info":
return INFO;
} else if (name.equals("0")) {
case "0":
return ZERO;
} else {
default:
return UNDEFINED;
}
}

View File

@@ -62,57 +62,58 @@ public enum QuestRequirementType {
}
public static QuestRequirementType getByWZName(String name) {
if (name.equals("job")) {
switch (name) {
case "job":
return JOB;
} else if (name.equals("quest")) {
case "quest":
return QUEST;
} else if (name.equals("item")) {
case "item":
return ITEM;
} else if (name.equals("lvmin")) {
case "lvmin":
return MIN_LEVEL;
} else if (name.equals("lvmax")) {
case "lvmax":
return MAX_LEVEL;
} else if (name.equals("end")) {
case "end":
return END_DATE;
} else if (name.equals("mob")) {
case "mob":
return MOB;
} else if (name.equals("npc")) {
case "npc":
return NPC;
} else if (name.equals("fieldEnter")) {
case "fieldEnter":
return FIELD_ENTER;
} else if (name.equals("interval")) {
case "interval":
return INTERVAL;
} else if (name.equals("startscript")) {
case "startscript":
return SCRIPT;
} else if (name.equals("endscript")) {
case "endscript":
return SCRIPT;
} else if (name.equals("pet")) {
case "pet":
return PET;
} else if (name.equals("pettamenessmin")) {
case "pettamenessmin":
return MIN_PET_TAMENESS;
} else if (name.equals("mbmin")) {
case "mbmin":
return MONSTER_BOOK;
} else if (name.equals("normalAutoStart")) {
case "normalAutoStart":
return NORMAL_AUTO_START;
} else if (name.equals("infoNumber")) {
case "infoNumber":
return INFO_NUMBER;
} else if (name.equals("infoex")) {
case "infoex":
return INFO_EX;
} else if (name.equals("questComplete")) {
case "questComplete":
return COMPLETED_QUEST;
} else if (name.equals("start")) {
case "start":
return START;
/*} else if(name.equals("end")) { already coded
/* case "end":already coded
return END;*/
} else if (name.equals("daybyday")) {
case "daybyday":
return DAY_BY_DAY;
} else if (name.equals("money")) {
case "money":
return MESO;
} else if (name.equals("buff")) {
case "buff":
return BUFF;
} else if (name.equals("exceptbuff")) {
case "exceptbuff":
return EXCEPT_BUFF;
} else {
default:
return UNDEFINED;
}
}

View File

@@ -3,7 +3,6 @@ package tools.mapletools;
import provider.wz.WZFiles;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.sql.Connection;