Added ClearScript for upcoming clientside

Example code for "test.js": ```script.SendMessage('test message');```
This commit is contained in:
EntenKoeniq
2022-03-25 19:53:48 +01:00
parent 9c3aab008c
commit cfca7ad412
7 changed files with 6085 additions and 0 deletions

57
Client/JavascriptHook.cs Normal file
View File

@ -0,0 +1,57 @@
using System;
using Microsoft.ClearScript.V8;
using GTA;
namespace CoopClient
{
/// <summary>
/// Don't use this!
/// </summary>
public class JavascriptHook : Script
{
private bool LoadedEngine = false;
private static V8ScriptEngine ScriptEngine;
/// <summary>
/// Don't use this!
/// </summary>
public JavascriptHook()
{
Tick += Ontick;
}
private void Ontick(object sender, EventArgs e)
{
if (!Main.MainNetworking.IsOnServer())
{
return;
}
if (!LoadedEngine)
{
ScriptEngine = new V8ScriptEngine();
LoadedEngine = true;
ScriptEngine.AddHostObject("script", new ScriptContext());
ScriptEngine.Execute(System.IO.File.ReadAllText("scripts\\test.js"));
}
}
}
/// <summary>
/// FOR JAVASCRIPT ONLY!
/// </summary>
public class ScriptContext
{
/// <summary>
/// Don't use this!
/// </summary>
public void SendMessage(string message)
{
Main.MainChat.AddMessage("JAVASCRIPT", message);
}
}
}