diff --git a/services/modpack-version-checker/blueprint-extension/build.sh b/services/modpack-version-checker/blueprint-extension/build.sh
index 8d7669c..80f741d 100755
--- a/services/modpack-version-checker/blueprint-extension/build.sh
+++ b/services/modpack-version-checker/blueprint-extension/build.sh
@@ -28,7 +28,7 @@ fi
echo "Using extension directory: $EXT_DIR"
# ===========================================
-# 1. CONSOLE WIDGET INJECTION
+# 1. CONSOLE WIDGET INJECTION (Right Column)
# ===========================================
echo ""
echo "--- Console Widget ---"
@@ -40,14 +40,20 @@ else
echo "⚠ wrapper.tsx not found, skipping console widget"
fi
-# Inject into ServerConsoleContainer.tsx
-if ! grep -q "ModpackVersionCard" resources/scripts/components/server/console/ServerConsoleContainer.tsx 2>/dev/null; then
- sed -i '1i import ModpackVersionCard from "@/components/server/ModpackVersionCard";' resources/scripts/components/server/console/ServerConsoleContainer.tsx
- # Place after ServerDetailsBlock for consistent positioning
- sed -i '/' resources/scripts/components/server/console/ServerConsoleContainer.tsx
- echo "✓ Injected ModpackVersionCard into ServerConsoleContainer.tsx"
+# Inject into AfterInformation.tsx (right column, after stats)
+AFTER_INFO="resources/scripts/blueprint/components/Server/Terminal/AfterInformation.tsx"
+if [ -f "$AFTER_INFO" ]; then
+ if ! grep -q "ModpackVersionCard" "$AFTER_INFO" 2>/dev/null; then
+ # Add import after the blueprint/import comment
+ sed -i '/\/\* blueprint\/import \*\//a import ModpackVersionCard from "@/components/server/ModpackVersionCard";' "$AFTER_INFO"
+ # Add component inside the fragment after blueprint/react comment
+ sed -i 's|{/\* blueprint/react \*/}|{/* blueprint/react */}\n |' "$AFTER_INFO"
+ echo "✓ Injected ModpackVersionCard into AfterInformation.tsx"
+ else
+ echo "○ ModpackVersionCard already present in AfterInformation.tsx"
+ fi
else
- echo "○ ModpackVersionCard already present in ServerConsoleContainer.tsx"
+ echo "⚠ AfterInformation.tsx not found, skipping injection"
fi
# ===========================================
diff --git a/services/modpack-version-checker/blueprint-extension/views/server/wrapper.tsx b/services/modpack-version-checker/blueprint-extension/views/server/wrapper.tsx
index 68a5cbc..4d7620d 100644
--- a/services/modpack-version-checker/blueprint-extension/views/server/wrapper.tsx
+++ b/services/modpack-version-checker/blueprint-extension/views/server/wrapper.tsx
@@ -1,6 +1,8 @@
import React, { useState } from 'react';
import { ServerContext } from '@/state/server';
import http from '@/api/http';
+import { faCube } from '@fortawesome/free-solid-svg-icons';
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
interface VersionData {
success: boolean;
@@ -24,12 +26,10 @@ const ModpackVersionCard: React.FC = () => {
setStatus('loading');
try {
- // Updated to match Batch 1 route optimization
const response = await http.post(`/api/client/extensions/modpackchecker/servers/${uuid}/check`);
setData(response.data);
setStatus(response.data.success ? 'success' : 'error');
} catch (error: any) {
- // Handle 429 Rate Limit responses with user-friendly message
if (error.response?.status === 429) {
setData({
success: false,
@@ -45,121 +45,65 @@ const ModpackVersionCard: React.FC = () => {
}
};
- const getPlatformIcon = (platform?: string) => {
- switch (platform) {
- case 'curseforge':
- return '🔥';
- case 'modrinth':
- return '🌿';
- case 'technic':
- return '⚙️';
- case 'ftb':
- return '📦';
- default:
- return '❓';
- }
- };
-
- const getStatusColor = (status?: string) => {
- switch (status) {
- case 'up_to_date':
- return '#4ECDC4'; // Frost
- case 'update_available':
- return '#FF6B35'; // Fire
- case 'error':
- return '#ef4444';
- default:
- return '#888';
- }
- };
-
+ // Match StatBlock styling from Pterodactyl
return (
-
-
-
- Modpack Version
-
+
+
+
+
+ Modpack
+
{status === 'idle' && (
)}
{status === 'success' && (
)}
-
- {status === 'loading' && (
-
-
- Checking version...
-
-
- )}
-
- {status === 'success' && data?.success && (
-
-
-
{getPlatformIcon(data.platform)}
-
{data.modpack_name}
-
- ({data.platform})
+
+ {status === 'idle' && (
+
Click to check
+ )}
+ {status === 'loading' && (
+
Checking...
+ )}
+ {status === 'success' && data?.success && (
+
+
+ {data.modpack_name || data.modpack_id}
+
+
+ {data.status === 'update_available' ? `→ ${data.latest_version}` : 'Up to date'}
-
-
- Latest:
- {data.latest_version}
-
-
-
- )}
-
- {(status === 'error' || (status === 'success' && !data?.success)) && (
-
- {data?.error || data?.message || 'Unknown error'}
-
- )}
-
-
+ )}
+ {(status === 'error' || (status === 'success' && !data?.success)) && (
+
+ {data?.error || data?.message || 'Error'}
+
+ )}
+
);
};