- 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.
61 lines
1.9 KiB
PHP
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'),
|
|
];
|
|
}
|
|
}
|