public static final void UseScriptedNPCItem(final SeekableLittleEndianAccessor slea, final MapleClient c, final MapleCharacter chr) {
        slea.skip(4);
        final byte slot = (byte) slea.readShort();
        final int itemId = slea.readInt();
        final IItem toUse = chr.getInventory(MapleInventoryType.USE).getItem(slot);

        if (toUse != null && toUse.getQuantity() >= 1 && toUse.getItemId() == itemId) {
            switch (toUse.getItemId()) {
                case 2430007: // Blank Compass
                {
                    final MapleInventory inventory = chr.getInventory(MapleInventoryType.SETUP);
                    MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, slot, (byte) 1, false);

                    if (inventory.countById(3994102) >= 20 // Compass Letter "North"
                            && inventory.countById(3994103) >= 20 // Compass Letter "South"
                            && inventory.countById(3994104) >= 20 // Compass Letter "East"
                            && inventory.countById(3994105) >= 20) { // Compass Letter "West"
                        MapleInventoryManipulator.addById(c, 2430008, (short) 1); // Gold Compass
                        MapleInventoryManipulator.removeById(c, MapleInventoryType.SETUP, 3994102, 20, false, false);
                        MapleInventoryManipulator.removeById(c, MapleInventoryType.SETUP, 3994103, 20, false, false);
                        MapleInventoryManipulator.removeById(c, MapleInventoryType.SETUP, 3994104, 20, false, false);
                        MapleInventoryManipulator.removeById(c, MapleInventoryType.SETUP, 3994105, 20, false, false);
                    } else {
                        MapleInventoryManipulator.addById(c, 2430007, (short) 1); // Blank Compass
                    }
                    NPCScriptManager.getInstance().start(c, 2084001);
                    break;
                }
                /*
                case 2430008: // Gold Compass
                {
                chr.saveLocation(SavedLocationType.RICHIE);
                MapleMap map;
                boolean warped = false;

                for (int i = 390001000; i <= 390001004; i++) {
                map = c.getChannelServer().getMapFactory().getMap(i);

                if (map.getCharactersSize() == 0) {
                chr.changeMap(map, map.getPortal(0));
                warped = true;
                break;
                }
                }
                if (warped) { // Removal of gold compass
                MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, 2430008, 1, false, false);
                } else { // Or mabe some other message.
                c.getPlayer().dropMessage(5, "All maps are currently in use, please try again later.");
                }
                break;
                }*/
            }
        }
        c.getSession().write(MaplePacketCreator.enableActions());
    }