reaper-arcade-hub 2.0.4 → 2.0.5
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/js/app.js +19 -12
- package/main/js/app.js +19 -12
- package/package.json +2 -2
package/js/app.js
CHANGED
|
@@ -765,13 +765,14 @@ class ReaperHubApp {
|
|
|
765
765
|
const container = document.getElementById('admin-users-directory');
|
|
766
766
|
if (!container) return;
|
|
767
767
|
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
768
|
+
const validUsers = (this.leaderboardData || []).filter(u => u && u.username && u.username.toLowerCase() !== 'user' && u.username.toLowerCase() !== 'anon');
|
|
769
|
+
|
|
770
|
+
if (validUsers.length === 0) {
|
|
771
|
+
container.innerHTML = `<div style="text-align: center; color: #88aacc; padding: 1.5rem; font-size: 0.82rem;">No other users active yet.</div>`;
|
|
772
|
+
return;
|
|
772
773
|
}
|
|
773
774
|
|
|
774
|
-
container.innerHTML =
|
|
775
|
+
container.innerHTML = validUsers.map(u => {
|
|
775
776
|
const isSelf = u.username === this.currentUser.username;
|
|
776
777
|
const currentRank = (u.rank || 'member').toLowerCase();
|
|
777
778
|
const timeStr = this.formatPlaytime(u.seconds || 0);
|
|
@@ -779,7 +780,7 @@ class ReaperHubApp {
|
|
|
779
780
|
return `
|
|
780
781
|
<div style="display: flex; justify-content: space-between; align-items: center; background: #041022; padding: 0.45rem 0.75rem; border-radius: 6px; border: 1px solid var(--blue-border); font-size: 0.8rem;">
|
|
781
782
|
<div>
|
|
782
|
-
<strong style="color: #fff;" class="${currentRank === 'owner' ? 'owner-animated-name' : ''}">${this.escapeHtml(u.username
|
|
783
|
+
<strong style="color: #fff;" class="${currentRank === 'owner' ? 'owner-animated-name' : ''}">${this.escapeHtml(u.username)}</strong>
|
|
783
784
|
<span class="rank-pill rank-${currentRank}">${currentRank.toUpperCase()}</span>
|
|
784
785
|
<span style="color: #88ccff; margin-left: 0.5rem;">Playtime: ${timeStr}</span>
|
|
785
786
|
</div>
|
|
@@ -1143,7 +1144,8 @@ class ReaperHubApp {
|
|
|
1143
1144
|
window.reaperFirebase.db.ref("reaperPlaytime").on("value", (snap) => {
|
|
1144
1145
|
const val = snap.val();
|
|
1145
1146
|
if (val) {
|
|
1146
|
-
|
|
1147
|
+
const raw = Object.values(val);
|
|
1148
|
+
this.leaderboardData = raw.filter(u => u && u.username && u.username.toLowerCase() !== 'user' && u.username.toLowerCase() !== 'anon' && (u.seconds || 0) > 0);
|
|
1147
1149
|
this.leaderboardData.sort((a, b) => (b.seconds || 0) - (a.seconds || 0));
|
|
1148
1150
|
} else {
|
|
1149
1151
|
this.leaderboardData = [
|
|
@@ -1176,13 +1178,18 @@ class ReaperHubApp {
|
|
|
1176
1178
|
const container = document.getElementById('leaderboard-rows-container');
|
|
1177
1179
|
if (!container) return;
|
|
1178
1180
|
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1181
|
+
const validUsers = (this.leaderboardData || []).filter(u => u && u.username && u.username.toLowerCase() !== 'user' && u.username.toLowerCase() !== 'anon');
|
|
1182
|
+
|
|
1183
|
+
if (validUsers.length === 0) {
|
|
1184
|
+
container.innerHTML = `
|
|
1185
|
+
<div style="text-align: center; color: #88aacc; padding: 2rem; font-size: 0.85rem;">
|
|
1186
|
+
No active leaderboard entries yet. Play games to earn your ranking!
|
|
1187
|
+
</div>
|
|
1188
|
+
`;
|
|
1189
|
+
return;
|
|
1183
1190
|
}
|
|
1184
1191
|
|
|
1185
|
-
container.innerHTML =
|
|
1192
|
+
container.innerHTML = validUsers.slice(0, 20).map((player, idx) => {
|
|
1186
1193
|
const rankNum = idx + 1;
|
|
1187
1194
|
const timeStr = this.formatPlaytime(player.seconds || 0);
|
|
1188
1195
|
const isSelf = player.username === this.currentUser.username;
|
package/main/js/app.js
CHANGED
|
@@ -765,13 +765,14 @@ class ReaperHubApp {
|
|
|
765
765
|
const container = document.getElementById('admin-users-directory');
|
|
766
766
|
if (!container) return;
|
|
767
767
|
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
768
|
+
const validUsers = (this.leaderboardData || []).filter(u => u && u.username && u.username.toLowerCase() !== 'user' && u.username.toLowerCase() !== 'anon');
|
|
769
|
+
|
|
770
|
+
if (validUsers.length === 0) {
|
|
771
|
+
container.innerHTML = `<div style="text-align: center; color: #88aacc; padding: 1.5rem; font-size: 0.82rem;">No other users active yet.</div>`;
|
|
772
|
+
return;
|
|
772
773
|
}
|
|
773
774
|
|
|
774
|
-
container.innerHTML =
|
|
775
|
+
container.innerHTML = validUsers.map(u => {
|
|
775
776
|
const isSelf = u.username === this.currentUser.username;
|
|
776
777
|
const currentRank = (u.rank || 'member').toLowerCase();
|
|
777
778
|
const timeStr = this.formatPlaytime(u.seconds || 0);
|
|
@@ -779,7 +780,7 @@ class ReaperHubApp {
|
|
|
779
780
|
return `
|
|
780
781
|
<div style="display: flex; justify-content: space-between; align-items: center; background: #041022; padding: 0.45rem 0.75rem; border-radius: 6px; border: 1px solid var(--blue-border); font-size: 0.8rem;">
|
|
781
782
|
<div>
|
|
782
|
-
<strong style="color: #fff;" class="${currentRank === 'owner' ? 'owner-animated-name' : ''}">${this.escapeHtml(u.username
|
|
783
|
+
<strong style="color: #fff;" class="${currentRank === 'owner' ? 'owner-animated-name' : ''}">${this.escapeHtml(u.username)}</strong>
|
|
783
784
|
<span class="rank-pill rank-${currentRank}">${currentRank.toUpperCase()}</span>
|
|
784
785
|
<span style="color: #88ccff; margin-left: 0.5rem;">Playtime: ${timeStr}</span>
|
|
785
786
|
</div>
|
|
@@ -1143,7 +1144,8 @@ class ReaperHubApp {
|
|
|
1143
1144
|
window.reaperFirebase.db.ref("reaperPlaytime").on("value", (snap) => {
|
|
1144
1145
|
const val = snap.val();
|
|
1145
1146
|
if (val) {
|
|
1146
|
-
|
|
1147
|
+
const raw = Object.values(val);
|
|
1148
|
+
this.leaderboardData = raw.filter(u => u && u.username && u.username.toLowerCase() !== 'user' && u.username.toLowerCase() !== 'anon' && (u.seconds || 0) > 0);
|
|
1147
1149
|
this.leaderboardData.sort((a, b) => (b.seconds || 0) - (a.seconds || 0));
|
|
1148
1150
|
} else {
|
|
1149
1151
|
this.leaderboardData = [
|
|
@@ -1176,13 +1178,18 @@ class ReaperHubApp {
|
|
|
1176
1178
|
const container = document.getElementById('leaderboard-rows-container');
|
|
1177
1179
|
if (!container) return;
|
|
1178
1180
|
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1181
|
+
const validUsers = (this.leaderboardData || []).filter(u => u && u.username && u.username.toLowerCase() !== 'user' && u.username.toLowerCase() !== 'anon');
|
|
1182
|
+
|
|
1183
|
+
if (validUsers.length === 0) {
|
|
1184
|
+
container.innerHTML = `
|
|
1185
|
+
<div style="text-align: center; color: #88aacc; padding: 2rem; font-size: 0.85rem;">
|
|
1186
|
+
No active leaderboard entries yet. Play games to earn your ranking!
|
|
1187
|
+
</div>
|
|
1188
|
+
`;
|
|
1189
|
+
return;
|
|
1183
1190
|
}
|
|
1184
1191
|
|
|
1185
|
-
container.innerHTML =
|
|
1192
|
+
container.innerHTML = validUsers.slice(0, 20).map((player, idx) => {
|
|
1186
1193
|
const rankNum = idx + 1;
|
|
1187
1194
|
const timeStr = this.formatPlaytime(player.seconds || 0);
|
|
1188
1195
|
const isSelf = player.username === this.currentUser.username;
|
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.5",
|
|
4
|
+
"description": "Reaper Hub - Cleaned Admin Directory & Leaderboard, 788 Games, Security Shield, Gateway Key System, Realtime Chat & Working Game Engine",
|
|
5
5
|
"main": "main/index.html",
|
|
6
6
|
"unpkg": "main/index.html",
|
|
7
7
|
"jsdelivr": "main/index.html",
|