reaper-arcade-hub 2.0.5 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/styles.css +14 -13
- package/js/app.js +26 -34
- package/main/css/styles.css +14 -13
- package/main/js/app.js +26 -34
- package/package.json +2 -2
- package/verify/css/styles.css +14 -13
package/css/styles.css
CHANGED
|
@@ -936,13 +936,13 @@ body {
|
|
|
936
936
|
|
|
937
937
|
.game-player-modal {
|
|
938
938
|
display: none;
|
|
939
|
-
position: fixed;
|
|
940
|
-
inset: 0;
|
|
941
|
-
width: 100vw;
|
|
942
|
-
height: 100vh;
|
|
943
|
-
background: #000;
|
|
944
|
-
z-index:
|
|
945
|
-
flex-direction: column;
|
|
939
|
+
position: fixed !important;
|
|
940
|
+
inset: 0 !important;
|
|
941
|
+
width: 100vw !important;
|
|
942
|
+
height: 100vh !important;
|
|
943
|
+
background: #000 !important;
|
|
944
|
+
z-index: 9999999 !important;
|
|
945
|
+
flex-direction: column !important;
|
|
946
946
|
}
|
|
947
947
|
|
|
948
948
|
.player-toolbar {
|
|
@@ -953,6 +953,7 @@ body {
|
|
|
953
953
|
align-items: center;
|
|
954
954
|
justify-content: space-between;
|
|
955
955
|
padding: 0 1.25rem;
|
|
956
|
+
z-index: 10;
|
|
956
957
|
}
|
|
957
958
|
|
|
958
959
|
.player-frame-wrapper {
|
|
@@ -968,12 +969,12 @@ body {
|
|
|
968
969
|
}
|
|
969
970
|
|
|
970
971
|
.player-iframe {
|
|
971
|
-
width: 100
|
|
972
|
-
height: 100
|
|
973
|
-
border: none;
|
|
974
|
-
display: block;
|
|
975
|
-
background: #000;
|
|
976
|
-
outline: none;
|
|
972
|
+
width: 100% !important;
|
|
973
|
+
height: 100% !important;
|
|
974
|
+
border: none !important;
|
|
975
|
+
display: block !important;
|
|
976
|
+
background: #000 !important;
|
|
977
|
+
outline: none !important;
|
|
977
978
|
}
|
|
978
979
|
|
|
979
980
|
.reaper-watermark {
|
package/js/app.js
CHANGED
|
@@ -49,25 +49,25 @@ class ReaperHubApp {
|
|
|
49
49
|
// 4. Validate Gateway Key Verification Session with HWID Check
|
|
50
50
|
const isAuthed = this.checkGatewayAuthentication();
|
|
51
51
|
const gateModal = document.getElementById('key-gate-modal');
|
|
52
|
-
if (!this.currentUser.username) {
|
|
53
|
-
const stored = localStorage.getItem('reaper_username');
|
|
54
|
-
if (stored) {
|
|
55
|
-
this.currentUser.username = stored;
|
|
56
|
-
} else {
|
|
57
|
-
const newName = typeof getRandomUsername === 'function' ? getRandomUsername() : "Reaper_" + Math.floor(Math.random() * 9999);
|
|
58
|
-
this.currentUser.username = newName;
|
|
59
|
-
localStorage.setItem('reaper_username', newName);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
this.playtimeSeconds = parseInt(localStorage.getItem('reaper_playtime_' + this.currentUser.username) || '0', 10);
|
|
63
|
-
|
|
64
52
|
if (!isAuthed) {
|
|
65
|
-
if (gateModal) gateModal.style.display = '
|
|
66
|
-
this.currentUser.isGuest =
|
|
67
|
-
this.currentUser.
|
|
53
|
+
if (gateModal) gateModal.style.display = 'flex';
|
|
54
|
+
this.currentUser.isGuest = true;
|
|
55
|
+
this.currentUser.username = "";
|
|
56
|
+
this.currentUser.rank = "guest";
|
|
68
57
|
} else {
|
|
69
58
|
if (gateModal) gateModal.style.display = 'none';
|
|
70
59
|
this.currentUser.isGuest = false;
|
|
60
|
+
if (!this.currentUser.username) {
|
|
61
|
+
const stored = localStorage.getItem('reaper_username');
|
|
62
|
+
if (stored) {
|
|
63
|
+
this.currentUser.username = stored;
|
|
64
|
+
} else {
|
|
65
|
+
const newName = typeof getRandomUsername === 'function' ? getRandomUsername() : "Reaper_" + Math.floor(Math.random() * 9999);
|
|
66
|
+
this.currentUser.username = newName;
|
|
67
|
+
localStorage.setItem('reaper_username', newName);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
this.playtimeSeconds = parseInt(localStorage.getItem('reaper_playtime_' + this.currentUser.username) || '0', 10);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
// 6. Role check
|
|
@@ -1897,9 +1897,9 @@ class ReaperHubApp {
|
|
|
1897
1897
|
const cleanId = String(gameId).trim();
|
|
1898
1898
|
const game = this.games.find(g => String(g.id) === cleanId || Number(g.id) === Number(cleanId)) ||
|
|
1899
1899
|
this.games.find(g => g.name && String(g.name).toLowerCase() === cleanId.toLowerCase()) ||
|
|
1900
|
-
this.games.find(g => g.url && String(g.url).toLowerCase().includes(cleanId.toLowerCase()))
|
|
1900
|
+
this.games.find(g => g.url && String(g.url).toLowerCase().includes(cleanId.toLowerCase())) ||
|
|
1901
|
+
this.games[0];
|
|
1901
1902
|
if (!game) {
|
|
1902
|
-
console.warn("[REAPER] Game not found for identifier:", gameId);
|
|
1903
1903
|
this.showToast("Could not find requested game.");
|
|
1904
1904
|
return;
|
|
1905
1905
|
}
|
|
@@ -1919,9 +1919,10 @@ class ReaperHubApp {
|
|
|
1919
1919
|
|
|
1920
1920
|
if (modal && iframe) {
|
|
1921
1921
|
if (nameEl) nameEl.textContent = game.name;
|
|
1922
|
-
if (statusBadge) statusBadge.textContent = '
|
|
1922
|
+
if (statusBadge) statusBadge.textContent = 'ONLINE (60 FPS)';
|
|
1923
1923
|
|
|
1924
|
-
modal.style.display
|
|
1924
|
+
modal.style.setProperty('display', 'flex', 'important');
|
|
1925
|
+
modal.style.setProperty('z-index', '9999999', 'important');
|
|
1925
1926
|
document.body.style.overflow = 'hidden';
|
|
1926
1927
|
|
|
1927
1928
|
this.isPlayingGame = true;
|
|
@@ -1933,21 +1934,12 @@ class ReaperHubApp {
|
|
|
1933
1934
|
iframe.removeAttribute('srcdoc');
|
|
1934
1935
|
iframe.src = `https://raw.githack.com/gn-math/html/main/${filename}`;
|
|
1935
1936
|
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
if (statusBadge) statusBadge.textContent = 'ONLINE (60 FPS)';
|
|
1943
|
-
return;
|
|
1944
|
-
}
|
|
1945
|
-
}
|
|
1946
|
-
} catch (err) {
|
|
1947
|
-
console.warn("Direct fetch fallback:", err);
|
|
1948
|
-
}
|
|
1949
|
-
|
|
1950
|
-
if (statusBadge) statusBadge.textContent = 'ONLINE';
|
|
1937
|
+
setTimeout(() => {
|
|
1938
|
+
try {
|
|
1939
|
+
iframe.focus();
|
|
1940
|
+
if (iframe.contentWindow) iframe.contentWindow.focus();
|
|
1941
|
+
} catch (e) {}
|
|
1942
|
+
}, 300);
|
|
1951
1943
|
}
|
|
1952
1944
|
}
|
|
1953
1945
|
|
package/main/css/styles.css
CHANGED
|
@@ -936,13 +936,13 @@ body {
|
|
|
936
936
|
|
|
937
937
|
.game-player-modal {
|
|
938
938
|
display: none;
|
|
939
|
-
position: fixed;
|
|
940
|
-
inset: 0;
|
|
941
|
-
width: 100vw;
|
|
942
|
-
height: 100vh;
|
|
943
|
-
background: #000;
|
|
944
|
-
z-index:
|
|
945
|
-
flex-direction: column;
|
|
939
|
+
position: fixed !important;
|
|
940
|
+
inset: 0 !important;
|
|
941
|
+
width: 100vw !important;
|
|
942
|
+
height: 100vh !important;
|
|
943
|
+
background: #000 !important;
|
|
944
|
+
z-index: 9999999 !important;
|
|
945
|
+
flex-direction: column !important;
|
|
946
946
|
}
|
|
947
947
|
|
|
948
948
|
.player-toolbar {
|
|
@@ -953,6 +953,7 @@ body {
|
|
|
953
953
|
align-items: center;
|
|
954
954
|
justify-content: space-between;
|
|
955
955
|
padding: 0 1.25rem;
|
|
956
|
+
z-index: 10;
|
|
956
957
|
}
|
|
957
958
|
|
|
958
959
|
.player-frame-wrapper {
|
|
@@ -968,12 +969,12 @@ body {
|
|
|
968
969
|
}
|
|
969
970
|
|
|
970
971
|
.player-iframe {
|
|
971
|
-
width: 100
|
|
972
|
-
height: 100
|
|
973
|
-
border: none;
|
|
974
|
-
display: block;
|
|
975
|
-
background: #000;
|
|
976
|
-
outline: none;
|
|
972
|
+
width: 100% !important;
|
|
973
|
+
height: 100% !important;
|
|
974
|
+
border: none !important;
|
|
975
|
+
display: block !important;
|
|
976
|
+
background: #000 !important;
|
|
977
|
+
outline: none !important;
|
|
977
978
|
}
|
|
978
979
|
|
|
979
980
|
.reaper-watermark {
|
package/main/js/app.js
CHANGED
|
@@ -49,25 +49,25 @@ class ReaperHubApp {
|
|
|
49
49
|
// 4. Validate Gateway Key Verification Session with HWID Check
|
|
50
50
|
const isAuthed = this.checkGatewayAuthentication();
|
|
51
51
|
const gateModal = document.getElementById('key-gate-modal');
|
|
52
|
-
if (!this.currentUser.username) {
|
|
53
|
-
const stored = localStorage.getItem('reaper_username');
|
|
54
|
-
if (stored) {
|
|
55
|
-
this.currentUser.username = stored;
|
|
56
|
-
} else {
|
|
57
|
-
const newName = typeof getRandomUsername === 'function' ? getRandomUsername() : "Reaper_" + Math.floor(Math.random() * 9999);
|
|
58
|
-
this.currentUser.username = newName;
|
|
59
|
-
localStorage.setItem('reaper_username', newName);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
this.playtimeSeconds = parseInt(localStorage.getItem('reaper_playtime_' + this.currentUser.username) || '0', 10);
|
|
63
|
-
|
|
64
52
|
if (!isAuthed) {
|
|
65
|
-
if (gateModal) gateModal.style.display = '
|
|
66
|
-
this.currentUser.isGuest =
|
|
67
|
-
this.currentUser.
|
|
53
|
+
if (gateModal) gateModal.style.display = 'flex';
|
|
54
|
+
this.currentUser.isGuest = true;
|
|
55
|
+
this.currentUser.username = "";
|
|
56
|
+
this.currentUser.rank = "guest";
|
|
68
57
|
} else {
|
|
69
58
|
if (gateModal) gateModal.style.display = 'none';
|
|
70
59
|
this.currentUser.isGuest = false;
|
|
60
|
+
if (!this.currentUser.username) {
|
|
61
|
+
const stored = localStorage.getItem('reaper_username');
|
|
62
|
+
if (stored) {
|
|
63
|
+
this.currentUser.username = stored;
|
|
64
|
+
} else {
|
|
65
|
+
const newName = typeof getRandomUsername === 'function' ? getRandomUsername() : "Reaper_" + Math.floor(Math.random() * 9999);
|
|
66
|
+
this.currentUser.username = newName;
|
|
67
|
+
localStorage.setItem('reaper_username', newName);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
this.playtimeSeconds = parseInt(localStorage.getItem('reaper_playtime_' + this.currentUser.username) || '0', 10);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
// 6. Role check
|
|
@@ -1897,9 +1897,9 @@ class ReaperHubApp {
|
|
|
1897
1897
|
const cleanId = String(gameId).trim();
|
|
1898
1898
|
const game = this.games.find(g => String(g.id) === cleanId || Number(g.id) === Number(cleanId)) ||
|
|
1899
1899
|
this.games.find(g => g.name && String(g.name).toLowerCase() === cleanId.toLowerCase()) ||
|
|
1900
|
-
this.games.find(g => g.url && String(g.url).toLowerCase().includes(cleanId.toLowerCase()))
|
|
1900
|
+
this.games.find(g => g.url && String(g.url).toLowerCase().includes(cleanId.toLowerCase())) ||
|
|
1901
|
+
this.games[0];
|
|
1901
1902
|
if (!game) {
|
|
1902
|
-
console.warn("[REAPER] Game not found for identifier:", gameId);
|
|
1903
1903
|
this.showToast("Could not find requested game.");
|
|
1904
1904
|
return;
|
|
1905
1905
|
}
|
|
@@ -1919,9 +1919,10 @@ class ReaperHubApp {
|
|
|
1919
1919
|
|
|
1920
1920
|
if (modal && iframe) {
|
|
1921
1921
|
if (nameEl) nameEl.textContent = game.name;
|
|
1922
|
-
if (statusBadge) statusBadge.textContent = '
|
|
1922
|
+
if (statusBadge) statusBadge.textContent = 'ONLINE (60 FPS)';
|
|
1923
1923
|
|
|
1924
|
-
modal.style.display
|
|
1924
|
+
modal.style.setProperty('display', 'flex', 'important');
|
|
1925
|
+
modal.style.setProperty('z-index', '9999999', 'important');
|
|
1925
1926
|
document.body.style.overflow = 'hidden';
|
|
1926
1927
|
|
|
1927
1928
|
this.isPlayingGame = true;
|
|
@@ -1933,21 +1934,12 @@ class ReaperHubApp {
|
|
|
1933
1934
|
iframe.removeAttribute('srcdoc');
|
|
1934
1935
|
iframe.src = `https://raw.githack.com/gn-math/html/main/${filename}`;
|
|
1935
1936
|
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
if (statusBadge) statusBadge.textContent = 'ONLINE (60 FPS)';
|
|
1943
|
-
return;
|
|
1944
|
-
}
|
|
1945
|
-
}
|
|
1946
|
-
} catch (err) {
|
|
1947
|
-
console.warn("Direct fetch fallback:", err);
|
|
1948
|
-
}
|
|
1949
|
-
|
|
1950
|
-
if (statusBadge) statusBadge.textContent = 'ONLINE';
|
|
1937
|
+
setTimeout(() => {
|
|
1938
|
+
try {
|
|
1939
|
+
iframe.focus();
|
|
1940
|
+
if (iframe.contentWindow) iframe.contentWindow.focus();
|
|
1941
|
+
} catch (e) {}
|
|
1942
|
+
}, 300);
|
|
1951
1943
|
}
|
|
1952
1944
|
}
|
|
1953
1945
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reaper-arcade-hub",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "Reaper Hub -
|
|
3
|
+
"version": "2.0.7",
|
|
4
|
+
"description": "Reaper Hub - Strict HWID Key Gatekeeper, 788 High-Speed Games, Security Shield, Realtime Chat & DMs, Playtime Leaderboard & Working Game Launcher",
|
|
5
5
|
"main": "main/index.html",
|
|
6
6
|
"unpkg": "main/index.html",
|
|
7
7
|
"jsdelivr": "main/index.html",
|
package/verify/css/styles.css
CHANGED
|
@@ -936,13 +936,13 @@ body {
|
|
|
936
936
|
|
|
937
937
|
.game-player-modal {
|
|
938
938
|
display: none;
|
|
939
|
-
position: fixed;
|
|
940
|
-
inset: 0;
|
|
941
|
-
width: 100vw;
|
|
942
|
-
height: 100vh;
|
|
943
|
-
background: #000;
|
|
944
|
-
z-index:
|
|
945
|
-
flex-direction: column;
|
|
939
|
+
position: fixed !important;
|
|
940
|
+
inset: 0 !important;
|
|
941
|
+
width: 100vw !important;
|
|
942
|
+
height: 100vh !important;
|
|
943
|
+
background: #000 !important;
|
|
944
|
+
z-index: 9999999 !important;
|
|
945
|
+
flex-direction: column !important;
|
|
946
946
|
}
|
|
947
947
|
|
|
948
948
|
.player-toolbar {
|
|
@@ -953,6 +953,7 @@ body {
|
|
|
953
953
|
align-items: center;
|
|
954
954
|
justify-content: space-between;
|
|
955
955
|
padding: 0 1.25rem;
|
|
956
|
+
z-index: 10;
|
|
956
957
|
}
|
|
957
958
|
|
|
958
959
|
.player-frame-wrapper {
|
|
@@ -968,12 +969,12 @@ body {
|
|
|
968
969
|
}
|
|
969
970
|
|
|
970
971
|
.player-iframe {
|
|
971
|
-
width: 100
|
|
972
|
-
height: 100
|
|
973
|
-
border: none;
|
|
974
|
-
display: block;
|
|
975
|
-
background: #000;
|
|
976
|
-
outline: none;
|
|
972
|
+
width: 100% !important;
|
|
973
|
+
height: 100% !important;
|
|
974
|
+
border: none !important;
|
|
975
|
+
display: block !important;
|
|
976
|
+
background: #000 !important;
|
|
977
|
+
outline: none !important;
|
|
977
978
|
}
|
|
978
979
|
|
|
979
980
|
.reaper-watermark {
|