☰

Minefun Smart Block Place 🧱

Hα»— trợ Δ‘αΊ·t block nhanh (giα»― chuα»™t để auto place)

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ скрипт, трябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ инсталирано Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚ΠΎ Tampermonkey, Greasemonkey ΠΈΠ»ΠΈ Violentmonkey.

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ скрипт, трябва Π΄Π° инсталиратС Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Tampermonkey .

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ скрипт, трябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ инсталирано Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚ΠΎ Tampermonkey ΠΈΠ»ΠΈ Violentmonkey.

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ скрипт, трябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ инсталирано Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚ΠΎ Tampermonkey ΠΈΠ»ΠΈ Userscripts.

Π—Π° Π΄Π° инсталиратС скрипта, трябва Π΄Π° инсталиратС Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚ΠΎ Tampermonkey.

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ скрипт, трябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ инсталиран скриптов ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€.

(Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ°ΠΌ скриптов ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€, искам Π΄Π° Π³ΠΎ инсталирам!)

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ стил, трябва Π΄Π° инсталиратС Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚ΠΎ Stylus.

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ стил, трябва Π΄Π° инсталиратС Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚ΠΎ Stylus.

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ стил, трябва Π΄Π° инсталиратС Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚ΠΎ Stylus.

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ стил, трябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ инсталиран ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° потрСбитСлски стиловС.

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ стил, трябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ инсталиран ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° потрСбитСлски стиловС.

Π—Π° Π΄Π° инсталиратС Ρ‚ΠΎΠ·ΠΈ стил, трябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ инсталиран ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° потрСбитСлски стиловС.

(Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ°ΠΌ инсталиран ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° стиловСтС, искам Π΄Π° Π³ΠΎ инсталирам!)

// ==UserScript==
// @name         Minefun Smart Block Place 🧱
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Hα»— trợ Δ‘αΊ·t block nhanh (giα»― chuα»™t để auto place)
// @author       You
// @match        *://minefun.io/*
// @match        *://*.minefun.io/*
// @grant        none
// ==/UserScript==

(function(){

'use strict';

let on=false,scale=1,placing=false;

/* ===== BUTTON ===== */
const btn=document.createElement("div");
btn.innerHTML="🧱";
btn.style.position="fixed";
btn.style.top="150px";
btn.style.left="100px";
btn.style.width="60px";
btn.style.height="60px";
btn.style.background="#8b5a2b";
btn.style.borderRadius="12px";
btn.style.display="flex";
btn.style.alignItems="center";
btn.style.justifyContent="center";
btn.style.fontSize="30px";
btn.style.cursor="pointer";
btn.style.zIndex="999999";
btn.style.boxShadow="0 0 15px #000";

document.body.appendChild(btn);

/* ===== DRAG ===== */
let dragging=false,offsetX=0,offsetY=0;

btn.onmousedown=e=>{
dragging=true;
offsetX=e.offsetX;
offsetY=e.offsetY
};

document.onmouseup=()=>{
dragging=false;
placing=false;
};

document.onmousemove=e=>{
if(dragging){
btn.style.left=e.clientX-offsetX+"px";
btn.style.top=e.clientY-offsetY+"px"
}
};

/* ===== TOGGLE ===== */
btn.onclick=()=>{
on=!on;
btn.style.background=on?"#4CAF50":"#8b5a2b";
};

/* ===== AUTO PLACE (HOLD CLICK) ===== */
document.addEventListener("mousedown",e=>{
if(!on) return;
if(e.button!==0) return; // chuα»™t trΓ‘i

placing=true;

let interval=setInterval(()=>{
if(!placing) return clearInterval(interval);

/* giαΊ£ lαΊ­p click liΓͺn tα»₯c (Δ‘αΊ·t block nhanh hΖ‘n) */
document.dispatchEvent(new MouseEvent("mousedown",{bubbles:true}));
document.dispatchEvent(new MouseEvent("mouseup",{bubbles:true}));

},1); // tα»‘c Δ‘α»™ Δ‘αΊ·t block

});

document.addEventListener("mouseup",()=>{
placing=false;
});

/* ===== RESIZE +/- ===== */
document.addEventListener("keydown",e=>{
if(e.key==="+"){
scale+=0.1;
btn.style.transform="scale("+scale+")"
}
if(e.key==="-"&&scale>0.5){
scale-=0.1;
btn.style.transform="scale("+scale+")"
}
});

})();