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 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: 99999;
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 = 'none';
66
- this.currentUser.isGuest = false;
67
- this.currentUser.rank = localStorage.getItem('reaper_rank') || "member";
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 = 'CONNECTING...';
1922
+ if (statusBadge) statusBadge.textContent = 'ONLINE (60 FPS)';
1923
1923
 
1924
- modal.style.display = 'flex';
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
- try {
1937
- const res = await fetch(`https://raw.githubusercontent.com/gn-math/html/main/${filename}`);
1938
- if (res.ok) {
1939
- let html = await res.text();
1940
- if (html && html.length > 50) {
1941
- iframe.srcdoc = this.cleanAndOptimizeGameHTML(html);
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
 
@@ -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: 99999;
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 = 'none';
66
- this.currentUser.isGuest = false;
67
- this.currentUser.rank = localStorage.getItem('reaper_rank') || "member";
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 = 'CONNECTING...';
1922
+ if (statusBadge) statusBadge.textContent = 'ONLINE (60 FPS)';
1923
1923
 
1924
- modal.style.display = 'flex';
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
- try {
1937
- const res = await fetch(`https://raw.githubusercontent.com/gn-math/html/main/${filename}`);
1938
- if (res.ok) {
1939
- let html = await res.text();
1940
- if (html && html.length > 50) {
1941
- iframe.srcdoc = this.cleanAndOptimizeGameHTML(html);
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.5",
4
- "description": "Reaper Hub - Cleaned Admin Directory & Leaderboard, 788 Games, Security Shield, Gateway Key System, Realtime Chat & Working Game Engine",
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",
@@ -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: 99999;
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 {