// ==UserScript==
// @name Bypass DevTools Detection, Unlock Functionality, and Auto Check-in
// @namespace http://tampermonkey.net/
// @version 1.9
// @description Bỏ qua phát hiện DevTools, mở khóa các chức năng và tự động điểm danh trên https://loulxgame.com/
// @author hieuck
// @match https://loulxgame.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=loulxgame.com
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_registerMenuCommand
// @grant GM_unregisterMenuCommand
// ==/UserScript==
(function() {
'use strict';
// Toggle states
let isDevToolsDetectionBypassed = GM_getValue('isDevToolsDetectionBypassed', true);
let isAutoCheckInEnabled = GM_getValue('isAutoCheckInEnabled', true);
let isRightClickEnabled = GM_getValue('isRightClickEnabled', true);
let isAbsoluteRightClickEnabled = GM_getValue('isAbsoluteRightClickEnabled', true);
let isKeyboardShortcutsEnabled = GM_getValue('isKeyboardShortcutsEnabled', true);
// Hàm hiển thị thông báo
function showNotification(message) {
const notification = document.createElement('div');
notification.innerHTML = message;
notification.style.position = 'fixed';
notification.style.bottom = '20px';
notification.style.right = '20px';
notification.style.backgroundColor = 'black';
notification.style.color = 'white';
notification.style.padding = '10px';
notification.style.zIndex = '1000';
document.body.appendChild(notification);
setTimeout(() => {
notification.remove();
}, 2000);
}
const menu = {
ids: [], // Lưu trữ ID của các menu
register() {
// Xóa các lệnh trước đó
this.ids.forEach(id => GM_unregisterMenuCommand(id));
this.ids = []; // Đặt lại danh sách ID menu
// Đăng ký các lệnh với trạng thái hiện tại
this.ids.push(GM_registerMenuCommand(`${isDevToolsDetectionBypassed ? '✔️' : '❌'} Bật/Tắt Bỏ Qua Phát Hiện DevTools`, () => {
isDevToolsDetectionBypassed = !isDevToolsDetectionBypassed;
GM_setValue('isDevToolsDetectionBypassed', isDevToolsDetectionBypassed);
showNotification(`Bỏ Qua Phát Hiện DevTools đã ${isDevToolsDetectionBypassed ? 'bật' : 'tắt'}`);
this.register(); // Cập nhật menu
}));
this.ids.push(GM_registerMenuCommand(`${isAutoCheckInEnabled ? '✔️' : '❌'} Bật/Tắt Tự Động Điểm Danh`, () => {
isAutoCheckInEnabled = !isAutoCheckInEnabled;
GM_setValue('isAutoCheckInEnabled', isAutoCheckInEnabled);
showNotification(`Tự Động Điểm Danh đã ${isAutoCheckInEnabled ? 'bật' : 'tắt'}`);
this.register(); // Cập nhật menu
}));
this.ids.push(GM_registerMenuCommand(`${isAbsoluteRightClickEnabled ? '✔️' : '❌'} Bật/Tắt Chuột Phải Tuyệt Đối`, () => {
isAbsoluteRightClickEnabled = !isAbsoluteRightClickEnabled; // Toggle trạng thái
GM_setValue('isAbsoluteRightClickEnabled', isAbsoluteRightClickEnabled); // Lưu trạng thái
showNotification(`Chế độ Chuột Phải Tuyệt Đối đã ${isAbsoluteRightClickEnabled ? 'bật' : 'tắt'}`); // Thông báo người dùng
this.register(); // Cập nhật menu
location.reload(); // Tải lại trang để áp dụng thay đổi
}));
this.ids.push(GM_registerMenuCommand(`${isKeyboardShortcutsEnabled ? '✔️' : '❌'} Bật/Tắt Phím Chức Năng`, () => {
isKeyboardShortcutsEnabled = !isKeyboardShortcutsEnabled;
GM_setValue('isKeyboardShortcutsEnabled', isKeyboardShortcutsEnabled);
showNotification(`Phím Chức Năng đã ${isKeyboardShortcutsEnabled ? 'bật' : 'tắt'}`);
this.register(); // Cập nhật menu
location.reload();
}));
}
};
menu.register(); // Đăng ký menu ban đầu
// Bỏ qua hạn chế chuột phải
if (isRightClickEnabled) {
document.addEventListener('contextmenu', function(event) {
event.stopPropagation(); // Ngăn chặn hành động mặc định
event.preventDefault(); // Bổ sung để ngăn hoàn toàn việc hiển thị menu mặc định
}, true);
}
// Chế độ Chuột Phải Tuyệt Đối
function enableAbsoluteRightClickMode() {
const css = document.createElement('style');
css.type = 'text/css';
css.innerText = `* {
-webkit-user-select: text !important;
-moz-user-select: text !important;
-ms-user-select: text !important;
user-select: text !important;
}`;
document.head.appendChild(css);
const eventsToDisable = [
'contextmenu', 'selectstart', 'dragstart', 'mousedown', 'cut', 'copy', 'paste'
];
eventsToDisable.forEach(event => {
document.addEventListener(event, function(e) {
e.stopPropagation();
}, true);
});
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.key === '`') { // Ctrl + `
if (confirm('Activate Absolute Right Click Mode!')) {
enableAbsoluteRightClick();
}
}
});
function enableAbsoluteRightClick() {
eventsToDisable.forEach(event => {
document.addEventListener(event, function(e) {
e.stopPropagation();
}, true);
});
}
}
// Kiểm tra trạng thái chế độ chuột phải tuyệt đối
if (isAbsoluteRightClickEnabled) {
enableAbsoluteRightClickMode();
}
// Bỏ qua hạn chế phím tắt
if (isKeyboardShortcutsEnabled) {
document.addEventListener('keydown', function(event) {
// Danh sách các phím tắt bị vô hiệu hóa
const disabledKeys = [
{ keyCode: 123 }, // F12
{ ctrlKey: true, shiftKey: true, keyCode: 73 }, // Ctrl+Shift+I
{ ctrlKey: true, shiftKey: true, keyCode: 74 }, // Ctrl+Shift+J
{ ctrlKey: true, shiftKey: true, keyCode: 67 }, // Ctrl+Shift+C
{ ctrlKey: true, keyCode: 85 }, // Ctrl+U
{ ctrlKey: true, keyCode: 83 }, // Ctrl+S
{ ctrlKey: true, keyCode: 80 }, // Ctrl+P
{ ctrlKey: true, keyCode: 65 }, // Ctrl+A
{ ctrlKey: true, keyCode: 67 }, // Ctrl+C
{ ctrlKey: true, keyCode: 86 }, // Ctrl+V
{ ctrlKey: true, shiftKey: true, keyCode: 86 } // Ctrl+Shift+V
];
// Kiểm tra nếu phím được nhấn là một trong các phím bị vô hiệu hóa
for (const key of disabledKeys) {
if (Object.keys(key).every(prop => event[prop] === key[prop])) {
event.stopPropagation(); // Ngăn chặn hành động mặc định
return true; // Trả về true để cho phép phím tắt
}
}
});
}
// Hàm kiểm tra xem người dùng đã điểm danh hay chưa
function hasCheckedIn() {
const checkinMessage = document.querySelector('.checkin-details-link'); // Thay thế bằng lớp thực tế
return checkinMessage && checkinMessage.textContent.includes('Hôm nay đã điểm danh');
}
// Hàm kiểm tra xem người dùng đã đăng nhập hay chưa
function isLoggedIn() {
const userElement = document.querySelector('.display-name'); // Lớp chứa tên hiển thị của người dùng
return userElement !== null; // Kiểm tra xem phần tử có tồn tại không
}
// Đợi cho đến khi trang được tải hoàn toàn
window.addEventListener('load', function() {
// Kiểm tra xem đã điểm danh hay chưa
if (hasCheckedIn()) {
showNotification('Người dùng đã điểm danh.');
return; // Dừng lại nếu đã điểm danh
}
// Kiểm tra xem người dùng đã đăng nhập hay chưa
if (!isLoggedIn()) {
showNotification('Người dùng chưa đăng nhập.');
return; // Dừng lại nếu chưa đăng nhập
}
// Chọn nút "Điểm danh"
const checkInButton = document.querySelector('a.initiate-checkin');
// Nhấp vào nút nếu tồn tại
if (checkInButton) {
checkInButton.click(); // Nhấp vào nút
showNotification('Nút điểm danh đã được nhấn');
} else {
showNotification('Không tìm thấy nút điểm danh');
}
});
})();