
import scripting.npc.NPCScriptManager;


public final class EnterMTSHandler extends AbstractMaplePacketHandler {
    @Override
    public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
        MapleCharacter chr = c.getPlayer();
        NPCScriptManager.getInstance().start(c, 9010000, chr);/*  添加后注释掉后面的内容
        if(!chr.isAlive() && YamlConfig.config.server.USE_BUYBACK_SYSTEM) {
            BuybackProcessor.processBuyback(c);
            c.announce(MaplePacketCreator.enableActions());
        } else {
            if (!YamlConfig.config.server.USE_MTS) {
                c.announce(MaplePacketCreator.enableActions());
                return;
            }

            if(chr.getEventInstance() != null) {
                c.announce(MaplePacketCreator.serverNotice(5, "当在活动时，进入现金商店或MTS将无法进入."));
                c.announce(MaplePacketCreator.enableActions());
                return;
            }
            
            if(MapleMiniDungeonInfo.isDungeonMap(chr.getMapId())) {
                c.announce(MaplePacketCreator.serverNotice(5, "当在迷你地牢内更换频道或进入现金商店或MTS时，将被禁止。"));
                c.announce(MaplePacketCreator.enableActions());
                return;
            }
            
            if (FieldLimit.CANNOTMIGRATE.check(chr.getMap().getFieldLimit())) {
                chr.dropMessage(1, "在这张地图上你不能这么做.");
                c.announce(MaplePacketCreator.enableActions());
                return;
            }

            if (!chr.isAlive()) {
                c.announce(MaplePacketCreator.enableActions());
                return;
            }
            if (chr.getLevel() < 10) {
                c.announce(MaplePacketCreator.blockedMessage2(5));
                c.announce(MaplePacketCreator.enableActions());
                return;
            }

            chr.closePlayerInteractions();
            chr.closePartySearchInteractions();
            
            chr.unregisterChairBuff();
            Server.getInstance().getPlayerBuffStorage().addBuffsToStorage(chr.getId(), chr.getAllBuffs());
            Server.getInstance().getPlayerBuffStorage().addDiseasesToStorage(chr.getId(), chr.getAllDiseases());
            chr.setAwayFromChannelWorld();
            chr.notifyMapTransferToPartner(-1);
            chr.removeIncomingInvites();
            chr.cancelAllBuffs(true);
            chr.cancelAllDebuffs();
            chr.cancelBuffExpireTask();
            chr.cancelDiseaseExpireTask();
            chr.cancelSkillCooldownTask();
            chr.cancelExpirationTask();

            chr.forfeitExpirableQuests();
            chr.cancelQuestExpirationTask();

            chr.saveCharToDB();
            
            c.getChannelServer().removePlayer(chr);
            chr.getMap().removePlayer(c.getPlayer());
            try {
                c.announce(MaplePacketCreator.openCashShop(c, true));
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            chr.getCashShop().open(true);// xD
            c.enableCSActions();
            c.announce(MaplePacketCreator.MTSWantedListingOver(0, 0));
            c.announce(MaplePacketCreator.showMTSCash(c.getPlayer()));
            List<MTSItemInfo> items = new ArrayList<>();
            int pages = 0;
            try {
                Connection con = DatabaseConnection.getConnection();
                PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE tab = 1 AND transfer = 0 ORDER BY id DESC LIMIT 16, 16");
                ResultSet rs = ps.executeQuery();
                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") + 100 + (int) (rs.getInt("price") * 0.1), 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"));
                        equip.setQuantity((short) 1);
                        equip.setAcc((short) rs.getInt("acc"));
                        equip.setAvoid((short) rs.getInt("avoid"));
                        equip.setDex((short) rs.getInt("dex"));
                        equip.setHands((short) rs.getInt("hands"));
                        equip.setHp((short) rs.getInt("hp"));
                        equip.setInt((short) rs.getInt("int"));
                        equip.setJump((short) rs.getInt("jump"));
                        equip.setVicious((short) rs.getInt("vicious"));
                        equip.setFlag((short) rs.getInt("flag"));
                        equip.setLuk((short) rs.getInt("luk"));
                        equip.setMatk((short) rs.getInt("matk"));
                        equip.setMdef((short) rs.getInt("mdef"));
                        equip.setMp((short) rs.getInt("mp"));
                        equip.setSpeed((short) rs.getInt("speed"));
                        equip.setStr((short) rs.getInt("str"));
                        equip.setWatk((short) rs.getInt("watk"));
                        equip.setWdef((short) rs.getInt("wdef"));
                        equip.setUpgradeSlots((byte) rs.getInt("upgradeslots"));
                        equip.setLevel((byte) rs.getInt("level"));
                        equip.setItemLevel(rs.getByte("itemlevel"));
                        equip.setItemExp(rs.getInt("itemexp"));
                        equip.setRingId(rs.getInt("ringid"));
                        equip.setExpiration(rs.getLong("expiration"));
                        equip.setGiftFrom(rs.getString("giftFrom"));
                        
                        items.add(new MTSItemInfo((Item) equip, rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends")));
                    }
                }
                rs.close();
                ps.close();

                ps = con.prepareStatement("SELECT COUNT(*) FROM mts_items");
                rs = ps.executeQuery();
                if (rs.next()) {
                    pages = (int) Math.ceil(rs.getInt(1) / 16);
                }
                rs.close();
                ps.close();
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            c.announce(MaplePacketCreator.sendMTS(items, 1, 0, 0, pages));
            c.announce(MaplePacketCreator.transferInventory(getTransfer(chr.getId())));
            c.announce(MaplePacketCreator.notYetSoldInv(getNotYetSold(chr.getId())));
        }    */
    }
