MediaWiki:Common.js

De PokeRO Revive
Revisão de 22h24min de 2 de fevereiro de 2026 por Pokerorevive (discussão | contribs)
Ir para navegação Ir para pesquisar

Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Internet Explorer/Edge: PressioneCtrl enquanto clica Recarregar, ou Pressione Ctrl-F5
  • Opera: Pressione Ctrl-F5.
mw.hook("wikipage.content").add(function () {

    var API = "https://api.pkro.com.br";

    function roColorToHtml(text) {
        return text
            .replace(/\^([0-9A-Fa-f]{6})/g, '<span style="color:#$1">')
            .replace(/\n/g, "<br>") + "</span>";
    }

    document.querySelectorAll(".mw-item").forEach(function (el) {

        if (el.dataset.loaded) return; // evita duplicar
        el.dataset.loaded = "1";

        var id = el.dataset.id;

        fetch(API + "/item/" + id)
            .then(function (r) { return r.json(); })
            .then(function (item) {

                el.innerHTML = '<img src="' + API + item.icon + '" width="32">';

                el.addEventListener("mouseenter", function () {

                    var tip = document.createElement("div");
                    tip.className = "item-tooltip";

                    tip.innerHTML =
                        '<div style="display:flex; gap:10px;">' +
                        '<img src="' + API + item.icon + '" width="42">' +
                        '<div>' +
                        '<b>' + item.name + '</b><br>' +
                        roColorToHtml(item.description) +
                        '</div>' +
                        '</div>';

                    document.body.appendChild(tip);

var move = function (ev) {
    var x = ev.clientX + 18;
    var y = ev.clientY + 18;

    // evita sair da tela
    if (x + 320 > window.innerWidth)
        x = ev.clientX - 320;

    if (y + 180 > window.innerHeight)
        y = ev.clientY - 180;

    tip.style.left = x + "px";
    tip.style.top = y + "px";
};


                    document.addEventListener("mousemove", move);

                    el.addEventListener("mouseleave", function () {
                        tip.remove();
                        document.removeEventListener("mousemove", move);
                    }, { once: true });

                });

            })
            .catch(function (err) {
                console.error("Item API erro:", err);
                el.innerHTML = "[erro]";
            });

    });

});