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

@@ -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;
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();
try (PreparedStatement ps2 = con.prepareStatement("SELECT * FROM bbs_replies WHERE threadid = ?")) {
if (threadRS.getInt("replycount") >= 0) {
ps2.setInt(1, !bIsThreadIdLocal ? threadid : threadRS.getInt("threadid"));
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) {
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);

File diff suppressed because it is too large Load Diff

View File

@@ -52,22 +52,30 @@ 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);
} else {
EventInstanceManager eim = map.getEventInstance();

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 :(
c.getPlayer().setShop(null);
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;
}