Files
fivem-mcp/app/Mcp/Prompts/ConvertLanguage.php
T
Adrian Mejias d3d1f5fdb3 Add FiveM resources and templates for documentation and code snippets
- Introduced a new code snippets resource for common FiveM patterns in Lua and JavaScript.
- Added a framework comparison document outlining Standalone, ESX, and QBCore features.
- Created search results view for FiveM documentation queries.
- Developed client and server template scripts for ESX and QBCore frameworks.
- Implemented NUI templates including HTML, CSS, and JavaScript for user interfaces.
- Established routes for documentation and console commands.
- Added tests for various features including documentation routes and tool functionalities.
- Configured Vite for asset management with Laravel.
- Updated .gitignore files for storage and framework directories.
2026-02-28 21:53:04 -06:00

61 lines
1.9 KiB
PHP

<?php
namespace App\Mcp\Prompts;
use Illuminate\Contracts\JsonSchema\JsonSchema;
use Laravel\Mcp\Request;
use Laravel\Mcp\Response;
use Laravel\Mcp\Server\Attributes\Description;
use Laravel\Mcp\Server\Prompt;
#[Description('Convert code between Lua and JavaScript')]
class ConvertLanguage extends Prompt
{
public function handle(Request $request): Response
{
$code = $request->get('code', '');
$from = $request->get('from', 'lua');
$to = $request->get('to', 'js');
$parts = [sprintf("Convert this FiveM code from %s to %s:\n\n", $from, $to)];
if ($code) {
$parts[] = sprintf("```%s\n%s\n```\n\n", $from, $code);
}
$parts[] = sprintf(
"%s\n%s\n%s\n%s\n%s\n%s\n%s\n\n%s\n%s\n%s\n%s\n%s\n%s",
"Please:",
"1. Convert the code while maintaining functionality",
"2. Use idiomatic patterns for the target language",
"3. Update native function calls to match language syntax",
"4. Adjust event handlers and callbacks",
"5. Explain major differences in the conversion",
"6. Ensure FiveM compatibility in the target language",
"Key differences to consider:",
"- Array/table indexing (0 vs 1-based)",
"- String formatting",
"- Event registration syntax",
"- Async patterns",
"- Native return values"
);
return Response::prompt(implode('', $parts));
}
public function schema(JsonSchema $schema): array
{
return [
'code' => $schema->string()
->description('Code to convert')
->required(),
'from' => $schema->enum(['lua', 'js'])
->description('Source language')
->default('lua'),
'to' => $schema->enum(['lua', 'js'])
->description('Target language')
->default('js'),
];
}
}