const afterLoaded = () => {
  const { $ } = unsafeWindow;
  window.addEventListener("keydown", async function (l) {
    if (!0 === document.querySelector("#cMultidrop").checked && !$("input, textarea").is(":focus") && "block" != $("#advert").css("display") && "block" != $("#overlays").css("display")) {
      if (l.repeat) return void l.preventDefault();
      switch (l.keyCode) {
        case JSON.parse(localStorage.Multikey).mMultiGrowth.keyCode:
          for (let i = 0; i < Number(document.querySelector("#customMultiPelletsAmount").value); i++) {
            sendPw(3);
          }
          break;
        case k.mMultiMothercell:
          if (document.querySelector("#brMulVirus").checked) return;
          t(12, 5);
          sendPw(8);
            setTimeout(() => {
           }, 0);
          break;
        case k.mMultiVirus:
          if (document.querySelector("#brMulMtcl").checked) return;
          sendPw(12);
          sendPw(8);
            setTimeout(() => {
          sendPw(4);
           }, 0);
          break;
        case k.mShieldAntifreeze:
          t(14, 11);
          break;
        case k.mBreakShield:
          if (k.brshieldpw == "mothercell" || k.brshieldpw == "virus") {
            sendPw(6);
            sendPw(8);
            sendPw(12);
            if (k.brshieldpw == "mothercell") {
              sendPw(5);
            } else if (k.brshieldpw == "virus") {
              setTimeout(() => {
                sendPw(4);
              }, 0);
            }
          } else {
            p("Please choose any multidrop, mothercell, or virus after dropping!");
          }
          break;
        case k.mRec:
          sendPw(1)
          break;
        case k.mSpeed:
          sendPw(2)
          break;
        case k.mGrowth:
          sendPw(3);
          break;
        case k.mVirus:
          sendPw(4);
          break;
        case k.mMothercell:
          sendPw(5);
          break;
        case k.mPortal:
          sendPw(6);
          break;
        case k.mBlock:
          sendPw(9);
          break;
        case k.mFreeze:
          sendPw(8);
          break;
        case k.mAntiFreeze:
          sendPw(11);
          break;
        case k.mAntiRec:
          sendPw(12);
          break;
        case k.mShield:
          sendPw(14);
          break;
      }
    }
  });
  const e = (e, t) => {
    for (let l = 0; l < e; l++) sendPw(t);
  },
    t = (e, t) => {
      sendPw(e), sendPw(t);
    };
  $("#serverPanel .nav-tabs").append('<li id="scriptsTab" class="width-33 tab-radius" style="width: 25%;"><a href="#script" data-toggle="tab" class="tab-radius" style="width: 25%;" aria-expanded="false">Scripts</a></li>');
  $("#serverPanel .tab-content").find('.hotkey-paragraph').css({
    'text-align': 'center',
    'display': 'block',
    'width': '100%',
  });
  $("#serverPanel .nav-tabs .tab-radius").css({
    'width': '25%',
    'border-radius': '10px'
  });
  $("#serverPanel .tab-content").append(`
    <div id="script" class="tab-pane fade">
        <div style="padding: 10px;">
        <h3 style="font-size: 16px; color: #D3D3D3; margin: 0;">Multi-drop</h3>
        <div style="font-size: 14px; margin-top: 2;">
        <div style="display: flex; justify-content: space-between; width: 93%">
          <div>
            <input id="cMultidrop" type="checkbox" style="transform: scale(0.9);">
            <span id="mulon" style="color:#df901c">Enabled</span>
            </div>
            <div id="mToggle" class="multi-input randomstyle123"></div>
        </div>
        <div class="row">
            <div class="col-md-10 col-md-offset-1 stng" style="padding:0px;">
                <div class="row hotkey-row">
                    <div class="col-md-4 hotkey-col">
                        \  <p class="hotkey-paragraph">Powers</p>
                        \  Rec
                        <div id="mRec" class="multi-input"></div>
                        <br>Speed
                        <div id="mSpeed" class="multi-input"></div>
                        <br>Growth
                        <div id="mGrowth" class="multi-input"></div>
                        <br>Virus
                        <div id="mVirus" class="multi-input"></div>
                        <br>Mothercell
                        <div id="mMothercell" class="multi-input"></div>
                        <br>Portal
                        <div id="mPortal" class="multi-input"></div>
                        <br>Block
                        <div id="mBlock" class="multi-input"></div>
                        <br>Freeze
                        <div id="mFreeze" class="multi-input"></div>
                        <br>Anti Freeze
                        <div id="mAntiFreeze" class="multi-input"></div>
                        <br>Anti Rec
                        <div id="mAntiRec" class="multi-input"></div>
                        <br>Shield
                        <div id="mShield" class="multi-input"></div>
                        <br>
                    </div>
                    <div class="col-md-4 hotkey-col">
                        <p class="hotkey-paragraph">Combos</p>
                        Antifreeze Shield
                        <div id="mShieldAntifreeze" class="multi-input"></div>
                        <br>Multi Growth
                        <div id="mMultiGrowth" class="multi-input"></div>
                        <br>Multi Virus
                        <div id="mMultiVirus" class="multi-input"></div>
                        <br>Break Shield
                        <div id="mBreakShield" class="multi-input"></div>
                        <br>Multi Mothercell
                        <div id="mMultiMothercell" class="multi-input"></div>
                        <br>
                        <input id="brMulVirus" name="break" type="checkbox">
                        <span id="brshldvir">MultiVrus</span>
                        <input id="brMulMtcl" name="break" type="checkbox">
                        <span id="brshldmtcl">MultiMtcl</span>
                    </div>
                    <div class="row hotkey-row">
                        <div class="col-md-4 hotkey-col">
                            <p class="hotkey-paragraph" style="text-align: center;">Multi Growth Amount</p>
                            <input id="customMultiPelletsAmount" type="range" min="1" max="30" step="1" value="15" style="display:inline-block; width:150px; height:8px; margin-top:10px; padding:0px; outline:none;">
                            <span id="customMultiPelletsAmountValue" style="color:#df901c">15</span>

                           <div style="display: flex; flex-direction: column; align-items: flex-start; margin-top: 10px; margin-left: 5px;">
                           <p class="hotkey-paragraph" style="margin-bottom: 5px;">Fast Split</p>
                         <div style="display: flex; align-items: center; gap: 10px;">
                        <span id="mulon" style="margin: 0; padding: 0; line-height: 1;">One</span>
                        <div id="mButton" class="multi-input proplayerstyle777"></div>
                      </div>
                        </div>
                       </div>
                        </div class="col-md-4 hotkey-col">
                        <div>
                    </div>
                        <div style="display: flex; flex-direction: column; align-items: flex-start; margin-left: 3px;">
                        <p class="hotkey-paragraph" style="margin: 0; text-align: left; font-weight: bold;">Others</p>
                      </div>
                        <input id="cToggle" type="checkbox" style="transform: scale(0.9);">
                        <span id="mulon" style="color:#df901c">Quick Respawn</span>
                     <div>
                     <input id="cToggle" type="checkbox" style="transform: scale(0.9);">
                    <span id="mulon" style="color:#df901c">Animations Panel</span>
               </div>
            </div>
        </div>
    </div>
`);
  const l = document.getElementsByClassName("multi-input");
  for (const e of l)
    (e.style.backgroundColor = "#df901c"),
      (e.style.color = "#fff"),
      (e.style.cursor = "pointer"),
      (e.style.textAlign = "center"),
      (e.style.minWidth = "40px"),
      (e.style.maxWidth = "60px"),
      (e.style.height = "18px"),
      (e.style.lineHeight = "18px"),
      (e.style.verticalAlign = "middle"),
      (e.style.borderRadius = "9px"),
      (e.style.right = "5px"),
      (e.style.position = "absolute"),
      (e.style.display = "inline-block"),
      (e.style.padding = "0 5px"),
      (e.style.overflow = "hidden"),
      (e.style.opacity = "1");
  const n = document.getElementById("script").getElementsByClassName("multi-input"),
    i = "#df901c",
    s = "#fff";
  let o = null,
    r = null;
  const d = JSON.parse(localStorage.getItem("Multikey")) || {};
  for (const e of n) {
    let t = !1;
    e.addEventListener("click", function () {
      null !== o && ((o.style.backgroundColor = i), (o.style.color = s), document.removeEventListener("keydown", r), (o = null), (r = null)),
        t ?
          ((e.style.backgroundColor = i), (e.style.color = s), (t = !1)) :
          ((e.style.backgroundColor = "#ff4"),
            (e.style.color = "#444"),
            (t = !0),
            (o = e),
            (r = function (l) {
              l.stopPropagation(), l.preventDefault(), document.removeEventListener("keydown", r);
              const n = c(l.key);
              (e.innerHTML = n),
                p("Hotkey added", "green"),
                (d[e.id] = {
                  ...d[e.id],
                  key: l.key,
                  keyCode: l.keyCode
                }),
                localStorage.setItem("Multikey", JSON.stringify(d)),
                (e.style.backgroundColor = i),
                (e.style.color = s),
                (t = !1),
                (o = null),
                (r = null);
            }),
            document.addEventListener("keydown", r));
    }),
      e.addEventListener("mouseenter", function () {
        t || (e.style.backgroundColor = "#ffc266");
      }),
      e.addEventListener("contextmenu", function (l) {
        l.preventDefault(),
          o === e && (document.removeEventListener("keydown", r), (o = null), (r = null), (e.style.backgroundColor = i), (e.style.color = s), (e.innerHTML = ""), (t = !1)),
          delete d[e.id],
          "" !== e.innerHTML && p("Hotkey removed", "red"),
          localStorage.setItem("Multikey", JSON.stringify(d)),
          (e.innerHTML = "");
      }),
      e.addEventListener("mouseleave", function () {
        t || (e.style.backgroundColor = "#df901c");
      });
  }

  function c(e) {
    switch (e) {
      case "Control":
        return "CTRL";
      case "Insert":
        return "INS";
      case " ":
        return "SPACE";
      default:
        return e.toUpperCase();
    }
  }
  const toggle = e => {
    const toggleKey = document.querySelector("#mToggle").innerText;
    if (String(e.key).toLowerCase() === toggleKey.toLowerCase() && !$("input, textarea").is(":focus")) {
      $("#cMultidrop").prop("checked", !$("#cMultidrop").prop("checked"));
      $("#cMultidrop").is(":checked") ? p("Multi-drop Enabled", "green") : p("Multi-drop Disabled", "red");
    }
  }
  unsafeWindow.addEventListener("keydown", toggle);
  document.querySelector("#cMultidrop").addEventListener("change", function () {
    this.checked ? p("Multi-drop Enabled", "green") : p("Multi-drop Disabled", "red");
  });
  var u = 15;
  function a(e) {
    (document.querySelector("#customMultiPelletsAmountValue").innerHTML = e), (u = Number(e));
  }
  let m;

  function p(e, t, l) {
    "green" == t && (t = "rgb(0, 192, 0)"),
      "red" == t && (t = "rgb(255, 0, 0)"),
      "gray" == t && (t = "rgb(153, 153, 153)"),
      clearTimeout(m),
      $("#curser").text(e).show().css("color", t),
      0 !== l && (m = setTimeout(() => $("#curser").fadeOut(400), l ?? 4e3));
  }
  document.querySelector("#customMultiPelletsAmount").addEventListener("input", function () {
    a(this.value), (d.multiple = {
      ...d.multiple,
      amount: u.toString()
    }), localStorage.setItem("Multikey", JSON.stringify(d));
  });
  const y = JSON.parse(localStorage.getItem("Multikey")) || {},
    h = () => {
      const e = JSON.parse(localStorage.getItem("Multikey")) || {};
      return {
        mRec: e.mRec?.keyCode || "",
        mSpeed: e.mSpeed?.keyCode || "",
        mGrowth: e.mGrowth?.keyCode || "",
        mVirus: e.mVirus?.keyCode || "",
        mMothercell: e.mMothercell?.keyCode || "",
        mPortal: e.mPortal?.keyCode || "",
        mBlock: e.mBlock?.keyCode || "",
        mFreeze: e.mFreeze?.keyCode || "",
        mAntiFreeze: e.mAntiFreeze?.keyCode || "",
        mAntiRec: e.mAntiRec?.keyCode || "",
        mShield: e.mShield?.keyCode || "",
        mShieldAntifreeze: e.mShieldAntifreeze?.keyCode || "",
        mMultiPellets: e.mMultiPellets?.keyCode || "",
        mMultiVirus: e.mMultiVirus?.keyCode || "",
        mMultiMothercell: e.mMultiMothercell?.keyCode || "",
        mBreakShield: e.mBreakShield?.keyCode || "",
        brshieldpw: e.brshld?.power || "",
      };
    },
    k = h();
  setInterval(() => {
    const e = h();
    Object.assign(k, e);
  }, 2e3);
  const b = document.getElementById("brMulVirus"),
    v = document.getElementById("brMulMtcl");
  b.addEventListener("change", () => {
    b.checked ?
      ((v.checked = !1), (d.brshld = {
        ...d.brshld,
        power: "virus"
      }), localStorage.setItem("Multikey", JSON.stringify(d))) :
      ((v.checked = !0), (d.brshld = {
        ...d.brshld,
        power: "mothercell"
      }), localStorage.setItem("Multikey", JSON.stringify(d)));
  }),
    v.addEventListener("change", () => {
      v.checked ?
        ((b.checked = !1), (d.brshld = {
          ...d.brshld,
          power: "mothercell"
        }), localStorage.setItem("Multikey", JSON.stringify(d))) :
        ((b.checked = !0), (d.brshld = {
          ...d.brshld,
          power: "virus"
        }), localStorage.setItem("Multikey", JSON.stringify(d)));
    }),
    window.addEventListener("load", () => {
      !(function () {
        const e = document.getElementById("script").getElementsByClassName("multi-input");
        for (const t of e) {
          const e = t.id;
          if (y[e]) {
            const l = y[e].key;
            t.innerHTML = c(l);
          }
        }
        if (y.multiple && y.multiple.amount) {
          const e = parseInt(y.multiple.amount);
          a(e), (document.querySelector("#customMultiPelletsAmount").value = e);
        }
        y.brshld && y.brshld.power && ("virus" == y.brshld.power ? (b.checked = !0) : (v.checked = !0));
      })();
    });
  $("#mToggle").css("right", "215px");

  document.querySelector("#cToggle").addEventListener("change", function() {
		this.checked ? p("Quick Respawn Enabled", "green") : p("Quick Respawn Disabled", "red");
  });
 function attachChatListener() {
  const chtbox = document.querySelector("#chtbox");

  if (chtbox) {
    chtbox.addEventListener("keydown", (e) => {
      if (e.key === "Enter") {
        const inputValue = chtbox.value.trim();
        if (
          inputValue === "/f multi" ||
          inputValue.startsWith("/party") && inputValue.endsWith("/f multi") ||
          inputValue.startsWith("/pm") && inputValue.endsWith("/f multi")
        ) {
          chtbox.value = inputValue.replace(
            "/f multi",
            "Using Multi-drop Limited Edition with Version: 3.0 made by Zsu & Zyn"
          );
        }
      }
    });
  }
}
const observer = new MutationObserver(() => {
  attachChatListener();
});
observer.observe(document.body, { childList: true, subtree: true });
attachChatListener();
}
if (document.readyState === "complete" || document.readyState === "interactive") {
  setTimeout(afterLoaded, 1)
} else {
  document.addEventListener("DOMContentLoaded", afterLoaded)
};
let send, x, y;
(unsafeWindow.sendPw = (e) => {
  let t = new DataView(new ArrayBuffer(10));
  t.setUint8(0, 72), t.setInt32(1, x, !0), t.setInt32(5, y, !0), t.setUint8(9, e), send(t);
}),
  (WebSocket.prototype.send = new Proxy(WebSocket.prototype.send, {
    apply(e, t, n) {
      send = (...n) => e.call(t, ...n);
      let a = n[0];
      (a = a instanceof ArrayBuffer ? new DataView(a) : a instanceof DataView ? a : new DataView(a.buffer)), 0 === a.getUint8(0, !0) && 9 === a.byteLength && ([x, y] = [a.getInt32(1, !0), a.getInt32(5, !0)]), e.apply(t, n);
    },
  }));