class-studys 5.0.0 → 6.0.0

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.
Files changed (2) hide show
  1. package/index.html +100 -8
  2. package/package.json +1 -1
package/index.html CHANGED
@@ -749,6 +749,7 @@ body[data-anim='off'] *, body[data-anim='off'] *::before, body[data-anim='off']
749
749
  }
750
750
  </style>
751
751
 
752
+ <base target="_blank">
752
753
  <base target="_blank">
753
754
  </head>
754
755
  <body data-bg="aurora">
@@ -1103,7 +1104,83 @@ const DEFAULT_GAMES = [
1103
1104
  desc: 'run from cop ',
1104
1105
  tags: ['endless','cop'], color: '#fb7185',
1105
1106
  },
1106
-
1107
+ {
1108
+ id: 'Bacon May Die', name: 'Bacon May Die',
1109
+ url: 'https://unpkg.com/schooluk-bacon-may-die@1.0.0/index.html',
1110
+ cover: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRG8Ra7wjHyaMeLnHp70ql98oi25b33UsPI63N-Jwbapw&s=10',
1111
+ desc: 'brawler — fight your way through.',
1112
+ tags: ['brawler','action'], color: '#fb7185',
1113
+ },
1114
+ {
1115
+ id: 'paper-fly', name: 'Paper Fly',
1116
+ url: 'https://unpkg.com/papergmfly@1.0.0/index.html',
1117
+ cover: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQQFa7pNRwbmpuk0rwFYmYYjwAdFMI6qH18R1rO_rd8XQ&s=10',
1118
+ desc: 'fold, flick and fly.',
1119
+ tags: ['arcade','2D'], color: '#22d3ee',
1120
+ },
1121
+ {
1122
+ id: 'slope-505', name: 'Slope 505',
1123
+ url: 'https://unpkg.com/sloeplus@1.0.0/index.html',
1124
+ cover: 'https://play-lh.googleusercontent.com/Ev5gkPTONr-1k1r7erT0iiW-pUZoGUH_6FVQdD91e9ghSAqZRMTaFVGQW5Z6PLOfFgxZnJhdEBE2z-TgfZ1bsg',
1125
+ desc: 'the rolling ball, remade.',
1126
+ tags: ['slope','3D'], color: '#fb7185',
1127
+ },
1128
+ {
1129
+ id: 'boat-game', name: 'Boat Game',
1130
+ url: 'https://unpkg.com/boateman@1.0.0/index.html',
1131
+ cover: 'https://play-lh.googleusercontent.com/k80-V4CxUpsoNUTiZCasfAF4yTxy428anUQiM_AieHnLRMq2qmCPIHIYWT8dYATGyo1eTjZLZEa3aa3b4kyingA',
1132
+ desc: 'captain your boat.',
1133
+ tags: ['boat','arcade'], color: '#3b82f6',
1134
+ },
1135
+ {
1136
+ id: '1v1-lol', name: '1v1.lol',
1137
+ url: 'https://unpkg.com/edcube-1v1-lol@5.0.0/index.html',
1138
+ cover: 'https://play-lh.googleusercontent.com/NAE7nd8mxERLlT-eIM68aEQi1RthPUzVd8KN_C-RPmvDgBLJ-C_kBHrBQFYPi8wQwr_nkxGUadoS0xStbU_jc7s=w240-h480-rw',
1139
+ desc: 'build and battle, 1v1.',
1140
+ tags: ['shooter','multiplayer'], color: '#22d3ee',
1141
+ },
1142
+ {
1143
+ id: 'crossy-road', name: 'Crossy Road',
1144
+ url: 'https://unpkg.com/edcube-crossy-road@5.0.0/index.html',
1145
+ cover: 'https://play-lh.googleusercontent.com/LX__Y8tKCvkvEgboZtQfDsvYiNFa6kwWSpqObipZI2MLK5rFVd5tEU8xgMNoMj1ICOf9TO7PFoFmiKGeIpf1=w240-h480-rw',
1146
+ desc: 'cross the road, dodge the traffic.',
1147
+ tags: ['arcade','crossing'], color: '#facc15',
1148
+ },
1149
+ {
1150
+ id: 'basketball-stars', name: 'Basketball Stars',
1151
+ url: 'https://unpkg.com/edcube-basketball-stars@5.0.0/index.html',
1152
+ cover: 'https://m.media-amazon.com/images/I/81BL1Hx2KuL.png',
1153
+ desc: 'sink threes and take the crown.',
1154
+ tags: ['sports','basketball'], color: '#ff6b1a',
1155
+ },
1156
+ {
1157
+ id: 'bitlife', name: 'Bitlife',
1158
+ url: 'https://unpkg.com/edcube-bitlife@5.0.0/index.html',
1159
+ cover: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRZdo5cBqkv1uAcfCofpC-WAViocRNLlysohwHMV2Lqzw&s=10',
1160
+ desc: 'live a whole life, one tap at a time.',
1161
+ tags: ['sim','life'], color: '#34d399',
1162
+ },
1163
+ {
1164
+ id: 'tag', name: 'Tag',
1165
+ url: 'https://unpkg.com/edcube-tag@1.0.0/index.html',
1166
+ cover: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSFwGQ9vG6ZifxDpWHtuu8oSzYqll79xZ9rW_KwPwzCdA&s',
1167
+ desc: "don't get caught.",
1168
+ tags: ['platformer','2D'], color: '#facc15',
1169
+ },
1170
+ {
1171
+ id: 'block-blast', name: 'Block Blast',
1172
+ url: 'https://unpkg.com/edcube-block-blast@5.0.0/index.html',
1173
+ cover: 'https://imgs.crazygames.com/block-puzzle-master_1x1/20250924025352/block-puzzle-master_1x1-cover?format=auto&quality=70&metadata=none',
1174
+ desc: 'blast blocks, clear lines.',
1175
+ tags: ['puzzle'], color: '#a855f7',
1176
+ },
1177
+ {
1178
+ id: 'cut-the-rope', name: 'Cut the Rope',
1179
+ url: 'https://unpkg.com/edcube-cut-the-rope@5.0.0/index.html',
1180
+ cover: 'https://play-lh.googleusercontent.com/2bTmHHM7DBMVe7fLh16Em-J-tVBMFGL2HJCxPAMNF7gAYIfU6EZoYG1__lQ0cvFMEyp3GU9CGijZzEB1qJHF',
1181
+ desc: 'feed the monster, cut the rope.',
1182
+ tags: ['puzzle'], color: '#34d399',
1183
+ },
1107
1184
  ];
1108
1185
 
1109
1186
  const DEMO_MOVIES = [
@@ -1132,7 +1209,7 @@ const DEMO_MOVIES = [
1132
1209
 
1133
1210
  // ── persistence ──
1134
1211
  const K = {
1135
- games: 'emby.games.v1', movies: 'emby.movies.v1',
1212
+ games: 'emby.games.v1', movies: 'emby.movies.v2',
1136
1213
  prefs: 'emby.prefs.v1', profile: 'emby.profile.v1',
1137
1214
  last: 'emby.last.v1', overrides: 'emby.overrides.v1',
1138
1215
  };
@@ -1965,6 +2042,7 @@ const DEMO_MOVIES = [
1965
2042
  const total = 3000;
1966
2043
  const start = performance.now();
1967
2044
  let line = -1;
2045
+ let finished = false;
1968
2046
  const step = () => {
1969
2047
  const p = Math.min(1, (performance.now() - start) / total);
1970
2048
  fill.style.width = Math.round(p * 100) + '%';
@@ -1977,16 +2055,21 @@ const DEMO_MOVIES = [
1977
2055
  else finishBoot();
1978
2056
  };
1979
2057
  const finishBoot = () => {
2058
+ if (finished) return;
2059
+ finished = true;
1980
2060
  fill.style.width = '100%';
1981
2061
  typeEl.textContent = 'ready. pull up.';
1982
2062
  setTimeout(() => {
1983
- $('boot').classList.add('done');
1984
- setTimeout(() => $('boot').remove(), 600);
2063
+ const b = $('boot');
2064
+ if (b) { b.classList.add('done'); setTimeout(() => b.remove(), 600); }
1985
2065
  confetti(26);
1986
2066
  }, 320);
1987
2067
  };
2068
+ // failsafe: hard-exit the splash no matter what after 3.5s
2069
+ setTimeout(finishBoot, 3500);
1988
2070
  if (!state.prefs.anim) { typeEl.textContent = 'ready.'; finishBoot(); return; }
1989
2071
  requestAnimationFrame(step);
2072
+ $('boot-skip').addEventListener('click', () => { finishBoot(); const b = $('boot'); if (b) setTimeout(() => b.remove(), 300); });
1990
2073
  }
1991
2074
 
1992
2075
  // ═══════════ init ═══════════
@@ -2044,13 +2127,22 @@ const DEMO_MOVIES = [
2044
2127
  runBoot();
2045
2128
  }
2046
2129
 
2047
- // keep it all in-page: block view-source shortcuts & right-click menu
2130
+ // keep it all in-page: block view-source, devtools & right-click menu
2048
2131
  document.addEventListener('contextmenu', (e) => { e.preventDefault(); });
2132
+ window.addEventListener('contextmenu', (e) => { e.preventDefault(); return false; });
2133
+ document.oncontextmenu = () => false;
2049
2134
  window.addEventListener('keydown', (e) => {
2050
2135
  const k = (e.key || '').toLowerCase();
2051
- if ((e.ctrlKey || e.metaKey) && (k === 'u' || k === 's')) e.preventDefault();
2052
- if (e.key === 'F12') e.preventDefault();
2053
- });
2136
+ const combo = e.ctrlKey || e.metaKey;
2137
+ if (combo && (k === 'u' || k === 's' || k === 'p')) { e.preventDefault(); e.stopPropagation(); return false; }
2138
+ if (combo && e.shiftKey && (k === 'i' || k === 'j' || k === 'c' || k === 'k' || k === 'u')) { e.preventDefault(); e.stopPropagation(); return false; }
2139
+ if (e.key === 'F12') { e.preventDefault(); e.stopPropagation(); return false; }
2140
+ }, true);
2141
+ // if someone opens a view-source: tab, bounce them back to the real page
2142
+ if (location.protocol === 'view-source:') { /* noop guard */ }
2143
+ if (document.documentElement && location.href.startsWith('view-source:')) {
2144
+ location.replace(location.href.replace('view-source:', ''));
2145
+ }
2054
2146
 
2055
2147
  document.addEventListener('DOMContentLoaded', init);
2056
2148
  })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "class-studys",
3
- "version": "5.0.0",
3
+ "version": "6.0.0",
4
4
  "description": "IGNITE OS — Advanced proxy-enabled gaming platform with comprehensive filter bypass system",
5
5
  "main": "index.html",
6
6
  "files": [