- // ==UserScript==
- // @name [GC] 🎸 Missing Instruments
- // @namespace https://www.grundos.cafe/
- // @version 2.1
- // @description Lists all the instruments you need to play with your pet.
- // @match https://www.grundos.cafe/instruments/?pet_name=*
- // @license MIT
- // @author AshyAsh
- // @grant none
- // ==/UserScript==
-
- (function() {
- 'use strict';
-
- // List of instruments with images and links
- const instrumentData = {
- "Accordion": ["https://grundoscafe.b-cdn.net/items/mus_accordian.gif", "/search/items/?item_name=Accordion"],
- "Afoxé": ["https://grundoscafe.b-cdn.net/items/mus_afoxe.gif", "/search/items/?item_name=Afoxé"],
- "Agogô": ["https://grundoscafe.b-cdn.net/items/mus_agogo.gif", "/search/items/?item_name=Agogô"],
- "Air Faerie Guitar": ["https://grundoscafe.b-cdn.net/items/inst_guitar_faerie.gif", "/search/items/?item_name=Air Faerie Guitar"],
- "A Smatter of Mayo": ["https://grundoscafe.b-cdn.net/items/foo_smattering_mayo.gif", "/search/items/?item_name=A Smatter of Mayo"],
- "Baby Drum": ["https://grundoscafe.b-cdn.net/items/inst_baby_drum.gif", "/search/items/?item_name=Baby Drum"],
- "Baby Whistle": ["https://grundoscafe.b-cdn.net/items/inst_baby_whistle.gif", "/search/items/?item_name=Baby Whistle"],
- "Bagpipes": ["https://grundoscafe.b-cdn.net/items/inst_bagpipes.gif", "/search/items/?item_name=Bagpipes"],
- "Bass Guitar": ["https://grundoscafe.b-cdn.net/items/mus_bass.gif", "/search/items/?item_name=Bass Guitar"],
- "Berimbau": ["https://grundoscafe.b-cdn.net/items/mus_berimbau.gif", "/search/items/?item_name=Berimbau"],
- "Berrante": ["https://grundoscafe.b-cdn.net/items/mus_berro.gif", "/search/items/?item_name=Berrante"],
- "Blueberry Jelly Bass": ["https://grundoscafe.b-cdn.net/items/inst_jelly_bass.gif", "/search/items/?item_name=Blueberry Jelly Bass"],
- "Blue Kazoo": ["https://grundoscafe.b-cdn.net/items/inst_kazoo_blue.gif", "/search/items/?item_name=Blue Kazoo"],
- "Blue Moehawk Guitar": ["https://grundoscafe.b-cdn.net/items/moehawk_guitar2.gif", "/search/items/?item_name=Blue Moehawk Guitar"],
- "Bongo Drums": ["https://grundoscafe.b-cdn.net/items/toy_bongo.gif", "/search/items/?item_name=Bongo Drums"],
- "Bruce Maracas": ["https://grundoscafe.b-cdn.net/items/inst_bruce_maracas.gif", "/search/items/?item_name=Bruce Maracas"],
- "Castanets": ["https://grundoscafe.b-cdn.net/items/imus_castanets.gif", "/search/items/?item_name=Castanets"],
- "Cavaquinho": ["https://grundoscafe.b-cdn.net/items/mus_cavaco.gif", "/search/items/?item_name=Cavaquinho"],
- "Cello": ["https://grundoscafe.b-cdn.net/items/mus_cello.gif", "/search/items/?item_name=Cello"],
- "Clarinet": ["https://grundoscafe.b-cdn.net/items/toy_clarinet.gif", "/search/items/?item_name=Clarinet"],
- "Colourful Xylophone": ["https://grundoscafe.b-cdn.net/items/toy_xylophone.gif", "/search/items/?item_name=Colourful Xylophone"],
- "Double Neck Guitar": ["https://grundoscafe.b-cdn.net/items/inst_doubleneck_guitar.gif", "/search/items/?item_name=Double Neck Guitar"],
- "Earth Faerie Recorder": ["https://grundoscafe.b-cdn.net/items/inst_recorder_faerie.gif", "/search/items/?item_name=Earth Faerie Recorder"],
- "Faerie Saxophone": ["https://grundoscafe.b-cdn.net/items/inst_saxaphone_faerie.gif", "/search/items/?item_name=Faerie Saxophone"],
- "Fire Bass": ["https://grundoscafe.b-cdn.net/items/mus_fire_bass.gif", "/search/items/?item_name=Fire Bass"],
- "Fire Violin": ["https://grundoscafe.b-cdn.net/items/fire_violin.gif", "/search/items/?item_name=Fire Violin"],
- "Flower Bass": ["https://grundoscafe.b-cdn.net/items/inst_flowerbass.gif", "/search/items/?item_name=Flower Bass"],
- "Flower Cello": ["https://grundoscafe.b-cdn.net/items/inst_flower_cello.gif", "/search/items/?item_name=Flower Cello"],
- "Flower Trumpet": ["https://grundoscafe.b-cdn.net/items/inst_flowertrumpet.gif", "/search/items/?item_name=Flower Trumpet"],
- "Flute": ["https://grundoscafe.b-cdn.net/items/toy_flute.gif", "/search/items/?item_name=Flute"],
- "French Horn": ["https://grundoscafe.b-cdn.net/items/mus_frenchhorn.gif", "/search/items/?item_name=French Horn"],
- "Ghostkerchief Banjo": ["https://grundoscafe.b-cdn.net/items/inst_ghostkerchief_banjo.gif", "/search/items/?item_name=Ghostkerchief Banjo"],
- "Gloomy Drums": ["https://grundoscafe.b-cdn.net/items/inst_gloomy_drums.gif", "/search/items/?item_name=Gloomy Drums"],
- "Gloomy Guitar": ["https://grundoscafe.b-cdn.net/items/inst_gloomy_guitar.gif", "/search/items/?item_name=Gloomy Guitar"],
- "Gloomy Harp": ["https://grundoscafe.b-cdn.net/items/inst_gloomy_harp.gif", "/search/items/?item_name=Gloomy Harp"],
- "Grand Piano": ["https://grundoscafe.b-cdn.net/items/mus_grandpiano.gif", "/search/items/?item_name=Grand Piano"],
- "Grape Jelly Bongos": ["https://grundoscafe.b-cdn.net/items/inst_jelly_bongos.gif", "/search/items/?item_name=Grape Jelly Bongos"],
- "Gruundo Guitar": ["https://grundoscafe.b-cdn.net/items/gif_band_guitar.gif", "/search/items/?item_name=Gruundo Guitar"],
- "Guitarra Portuguesa": ["https://grundoscafe.b-cdn.net/items/mus_guitarralisboa.gif", "/search/items/?item_name=Guitarra Portuguesa"],
- "Harmonica": ["https://grundoscafe.b-cdn.net/items/toy_harmonica.gif", "/search/items/?item_name=Harmonica"],
- "Harp": ["https://grundoscafe.b-cdn.net/items/mus_harp.gif", "/search/items/?item_name=Harp"],
- "Heart Drums": ["https://grundoscafe.b-cdn.net/items/inst_valentinedrums.gif", "/search/items/?item_name=Heart Drums"],
- "Ice Accordion": ["https://grundoscafe.b-cdn.net/items/ice_accordion.gif", "/search/items/?item_name=Ice Accordion"],
- "Ice Harp": ["https://grundoscafe.b-cdn.net/items/ice_harp.gif", "/search/items/?item_name=Ice Harp"],
- "Jelly Triangle": ["https://grundoscafe.b-cdn.net/items/inst_jelly_triangle.gif", "/search/items/?item_name=Jelly Triangle"],
- "Jelly Xylophone": ["https://grundoscafe.b-cdn.net/items/inst_jelly_xylophone.gif", "/search/items/?item_name=Jelly Xylophone"],
- "Kau Bell": ["https://grundoscafe.b-cdn.net/items/imus_cowbell.gif", "/search/items/?item_name=Kau Bell"],
- "Light Faerie Harp": ["https://grundoscafe.b-cdn.net/items/inst_harp_faerie.gif", "/search/items/?item_name=Light Faerie Harp"],
- "Maccy Synth": ["https://grundoscafe.b-cdn.net/items/toy_synth.gif", "/search/items/?item_name=Maccy Synth"],
- "Mandolin": ["https://grundoscafe.b-cdn.net/items/inst_mandolin.gif", "/search/items/?item_name=Mandolin"],
- "Mystery Island Drum": ["https://grundoscafe.b-cdn.net/items/tiki_native_drum.gif", "/search/items/?item_name=Mystery Island Drum"],
- "Mystic Guitar": ["https://grundoscafe.b-cdn.net/items/inst_acoustic_guit.gif", "/search/items/?item_name=Mystic Guitar"],
- "Oboe": ["https://grundoscafe.b-cdn.net/items/toy_oboe.gif", "/search/items/?item_name=Oboe"],
- "Orange Jelly Guitar": ["https://grundoscafe.b-cdn.net/items/inst_jelly_guitar.gif", "/search/items/?item_name=Orange Jelly Guitar"],
- "Piano": ["https://grundoscafe.b-cdn.net/items/toy_piano.gif", "/search/items/?item_name=Piano"],
- "Pink Ukulele": ["https://grundoscafe.b-cdn.net/items/pink_ukulele.gif", "/search/items/?item_name=Pink Ukulele"],
- "Pink Violin": ["https://grundoscafe.b-cdn.net/items/inst_pink_violin.gif", "/search/items/?item_name=Pink Violin"],
- "Plushie Banjo": ["https://grundoscafe.b-cdn.net/items/inst_banjo_plushie.gif", "/search/items/?item_name=Plushie Banjo"],
- "Plushie Drum": ["https://grundoscafe.b-cdn.net/items/inst_drum_plushie.gif", "/search/items/?item_name=Plushie Drum"],
- "Plushie Trumpet": ["https://grundoscafe.b-cdn.net/items/inst_trumpet_plushie.gif", "/search/items/?item_name=Plushie Trumpet"],
- "Rainbow Guitar": ["https://grundoscafe.b-cdn.net/items/inst_rainbow_guitar.gif", "/search/items/?item_name=Rainbow Guitar"],
- "Recorder": ["https://grundoscafe.b-cdn.net/items/toy_recorder.gif", "/search/items/?item_name=Recorder"],
- "Red Moehawk Guitar": ["https://grundoscafe.b-cdn.net/items/moehawk_guitar1.gif", "/search/items/?item_name=Red Moehawk Guitar"],
- "Saxophone": ["https://grundoscafe.b-cdn.net/items/toy_saxaphone.gif", "/search/items/?item_name=Saxophone"],
- "Spirited Fiddle": ["https://grundoscafe.b-cdn.net/items/mus_fiddle.gif", "/search/items/?item_name=Spirited Fiddle"],
- "Stone Trumpet": ["https://grundoscafe.b-cdn.net/items/inst_stone_trumpet.gif", "/search/items/?item_name=Stone Trumpet"],
- "Trombone": ["https://grundoscafe.b-cdn.net/items/toy_trombone.gif", "/search/items/?item_name=Trombone"],
- "Trumpet": ["https://grundoscafe.b-cdn.net/items/toy_trumpet.gif", "/search/items/?item_name=Trumpet"],
- "Valentine Guitar": ["https://grundoscafe.b-cdn.net/items/inst_valentineguitar.gif", "/search/items/?item_name=Valentine Guitar"],
- "Valentine Kazoo": ["https://grundoscafe.b-cdn.net/items/inst_valentinekazoo.gif", "/search/items/?item_name=Valentine Kazoo"],
- "Valentine Piano": ["https://grundoscafe.b-cdn.net/items/inst_valentinepiano.gif", "/search/items/?item_name=Valentine Piano"],
- "Viola Caipira": ["https://grundoscafe.b-cdn.net/items/mus_violacaipira.gif", "/search/items/?item_name=Viola Caipira"],
- "Violin": ["https://grundoscafe.b-cdn.net/items/toy_violin.gif", "/search/items/?item_name=Violin"],
- "Wadjet Saxophone": ["https://grundoscafe.b-cdn.net/items/mus_wadjet_saxophone.gif", "/search/items/?item_name=Wadjet Saxophone"],
- "Wock Til You Drop Guitar": ["https://grundoscafe.b-cdn.net/items/special_wock_guitar.gif", "/search/items/?item_name=Wock Til You Drop Guitar"],
- "Wooden Washboard": ["https://grundoscafe.b-cdn.net/items/mus_washboard.gif", "/search/items/?item_name=Wooden Washboard"],
- }
-
-
- // Find all displayed instruments and missing instruments
- const displayedInstruments = Array.from(document.querySelectorAll('.instrument-name')).map(el => el.textContent.trim());
- const missingInstruments = Object.keys(instrumentData).filter(instrument => !displayedInstruments.includes(instrument));
-
- // Highlight completed instruments
- document.querySelectorAll('.instrument-item').forEach(item => {
- const skillLevelElement = item.querySelector('.instrument-skill-level');
- if (skillLevelElement && skillLevelElement.textContent.trim() === 'Skill Level: 100%') {
- item.style.border = '3px solid #32CD32'; // Apply LimeGreen border
- }
- });
-
- // Add search links for needed instruments
- document.querySelectorAll('.instrument-item').forEach(item => {
- const nameElement = item.querySelector('.instrument-name');
- const instrumentName = nameElement?.textContent.trim();
-
- const isNeeded = !item.classList.contains('completed');
-
- if (isNeeded && instrumentName) {
- const linksHTML = `
- <div id="${instrumentName.replace(/\s+/g, '-')}-links" class="searchhelp" style="display: block; unicode-bidi: isolate;">
- <a href="/market/wizard/?query=${encodeURIComponent(instrumentName)}&submit" title="Search the Shop Wizard" target="_blank">
- <img title="Search the Shop Wizard" alt="Shop Wizard Search" class="search-helper-sw" src="https://grundoscafe.b-cdn.net/searchicons/wiz.png">
- </a>
- <a href="/safetydeposit/?page=1&query=${encodeURIComponent(instrumentName)}&exact=1" target="_blank">
- <img class="search-helper-sdb" title="Search Safety Deposit Box" src="https://grundoscafe.b-cdn.net/searchicons/sdb.png">
- </a>
- <a href="/island/tradingpost/browse/?query=${encodeURIComponent(instrumentName)}" title="Search Trading Post" target="_blank">
- <img class="search-helper-trading-post" src="https://grundoscafe.b-cdn.net/searchicons/trade.png">
- </a>
- <a href="/wishlist/search/?query=${encodeURIComponent(instrumentName)}" title="Search Wishlists" target="_blank">
- <img class="search-helper-wish-witch" src="https://grundoscafe.b-cdn.net/searchicons/wish.png">
- </a>
- <a href="/auctions/genie/?type=process_genie&query=${encodeURIComponent(instrumentName)}&criteria=exact" title="Search Auctions" target="_blank">
- <img class="search-helper-auctions" src="https://grundoscafe.b-cdn.net/searchicons/auction.png">
- </a>
- <a href="javascript:void(0);" title="Add Item To Wishlist" onclick="submitWish('${instrumentName}');">
- <img class="search-helper-wish-witch-add" src="https://grundoscafe.b-cdn.net/searchicons/wish_add_green.png">
- </a>
- <a href="/search/items/?item_name=${encodeURIComponent(instrumentName)}" title="View Item Details in Item Search" target="_blank">
- <img class="search-helper-item-search" src="https://grundoscafe.b-cdn.net/searchicons/search.png">
- </a>
- <a href="/viewshop/?shop_id=84" title="Check Shop" target="_blank">
- <img class="search-helper-shop sh-shop-84" src="https://grundoscafe.b-cdn.net/searchicons/shop.png">
- </a>
- <a href="https://virtupets.net/search?q=${encodeURIComponent(instrumentName)}" target="_blank">
- <img src="https://virtupets.net/assets/images/vp.png" alt="Virtupets" style="width: 20px;">
- </a>
- </div>
- `;
-
- nameElement.insertAdjacentHTML('afterend', linksHTML);
- }
- });
-
- // Display missing instruments
- if (missingInstruments.length > 0) {
- const missingContainer = document.createElement('div');
- missingContainer.className = 'missing-instruments-grid';
- missingContainer.style.display = 'grid';
- missingContainer.style.gridTemplateColumns = 'repeat(auto-fill, minmax(120px, 1fr))';
- missingContainer.style.gap = '8px';
- missingContainer.style.marginTop = '20px';
- missingContainer.style.padding = '15px';
- missingContainer.style.backgroundColor = '#f9f9f9';
- missingContainer.style.border = '1px solid #ccc';
- missingContainer.style.borderRadius = '8px';
-
- const title = document.createElement('h2');
- title.textContent = "Missing Instruments";
- title.style.textAlign = 'center';
- title.style.gridColumn = 'span 4';
- missingContainer.appendChild(title);
-
- missingInstruments.forEach(instrument => {
- const cardLink = document.createElement('a');
- cardLink.href = instrumentData[instrument][1];
- cardLink.target = "_blank";
- cardLink.style.textDecoration = 'none';
- cardLink.style.color = 'inherit';
-
- const card = document.createElement('div');
- card.style.display = 'flex';
- card.style.flexDirection = 'column';
- card.style.alignItems = 'center';
- card.style.textAlign = 'center';
- card.style.padding = '10px';
- card.style.border = '1px solid #ccc';
- card.style.borderRadius = '8px';
- card.style.backgroundColor = '#fff';
-
- const image = document.createElement('img');
- image.src = instrumentData[instrument][0];
- image.alt = instrument;
- image.style.width = '60px';
- image.style.height = '60px';
- image.style.marginBottom = '20px';
-
- const name = document.createElement('div');
- name.textContent = instrument;
- name.style.fontWeight = 'bold';
- name.style.paddingBottom = '5px';
-
- const links = document.createElement('div');
- links.id = `${instrument.replace(/\s+/g, '-')}-links`;
- links.className = 'searchhelp';
- links.style.display = 'block';
- links.style.unicodeBidi = 'isolate';
- links.innerHTML = `
- <a href="/market/wizard/?query=${encodeURIComponent(instrument)}&submit" title="Search the Shop Wizard" target="_blank">
- <img title="Search the Shop Wizard" alt="Shop Wizard Search" class="search-helper-sw" src="https://grundoscafe.b-cdn.net/searchicons/wiz.png">
- </a>
- <a href="/safetydeposit/?page=1&query=${encodeURIComponent(instrument)}&exact=1" target="_blank">
- <img class="search-helper-sdb" title="Search Safety Deposit Box" src="https://grundoscafe.b-cdn.net/searchicons/sdb.png">
- </a>
- <a href="/island/tradingpost/browse/?query=${encodeURIComponent(instrument)}" title="Search Trading Post" target="_blank">
- <img class="search-helper-trading-post" src="https://grundoscafe.b-cdn.net/searchicons/trade.png">
- </a>
- <a href="/wishlist/search/?query=${encodeURIComponent(instrument)}" title="Search Wishlists" target="_blank">
- <img class="search-helper-wish-witch" src="https://grundoscafe.b-cdn.net/searchicons/wish.png">
- </a>
- <a href="/auctions/genie/?type=process_genie&query=${encodeURIComponent(instrument)}&criteria=exact" title="Search Auctions" target="_blank">
- <img class="search-helper-auctions" src="https://grundoscafe.b-cdn.net/searchicons/auction.png">
- </a>
- <a href="javascript:void(0);" title="Add Item To Wishlist" onclick="submitWish('${instrument}');">
- <img class="search-helper-wish-witch-add" src="https://grundoscafe.b-cdn.net/searchicons/wish_add_green.png">
- </a>
- <a href="/search/items/?item_name=${encodeURIComponent(instrument)}" title="View Item Details in Item Search" target="_blank">
- <img class="search-helper-item-search" src="https://grundoscafe.b-cdn.net/searchicons/search.png">
- </a>
- <a href="/viewshop/?shop_id=84" title="Check Shop" target="_blank">
- <img class="search-helper-shop sh-shop-84" src="https://grundoscafe.b-cdn.net/searchicons/shop.png">
- </a>
- <a href="https://virtupets.net/search?q=${encodeURIComponent(instrument)}" target="_blank">
- <img src="https://virtupets.net/assets/images/vp.png" alt="Virtupets" style="width: 20px;">
- </a>
- `;
-
- card.appendChild(image);
- card.appendChild(name);
- card.appendChild(links);
- cardLink.appendChild(card);
- missingContainer.appendChild(cardLink);
- });
-
- const instrumentsGrid = document.querySelector('.instruments-grid');
- if (instrumentsGrid) {
- instrumentsGrid.parentNode.insertBefore(missingContainer, instrumentsGrid.nextSibling);
- }
- }
- })();