Added ClearScript for upcoming clientside
Example code for "test.js": ```script.SendMessage('test message');```
This commit is contained in:
@ -13,6 +13,8 @@
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@ -39,6 +41,14 @@
|
||||
<DocumentationFile>bin\Release\CoopClient.xml</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ClearScript.Core, Version=7.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Libs\Release\scripts\ClearScript.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ClearScript.V8, Version=7.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Libs\Release\scripts\ClearScript.V8.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="LemonUI.SHVDN3, Version=1.5.1.0, Culture=neutral, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Libs\Release\scripts\LemonUI.SHVDN3.dll</HintPath>
|
||||
@ -81,6 +91,7 @@
|
||||
<Compile Include="Entities\EntitiesThread.cs" />
|
||||
<Compile Include="Entities\Player\Sync\OnFootSync.cs" />
|
||||
<Compile Include="Entities\Player\Sync\VehicleSync.cs" />
|
||||
<Compile Include="JavascriptHook.cs" />
|
||||
<Compile Include="Main.cs" />
|
||||
<Compile Include="Menus\MenusMain.cs" />
|
||||
<Compile Include="Menus\Sub\Servers.cs" />
|
||||
|
57
Client/JavascriptHook.cs
Normal file
57
Client/JavascriptHook.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
BIN
Libs/Release/scripts/ClearScript.Core.dll
Normal file
BIN
Libs/Release/scripts/ClearScript.Core.dll
Normal file
Binary file not shown.
4250
Libs/Release/scripts/ClearScript.Core.xml
Normal file
4250
Libs/Release/scripts/ClearScript.Core.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Libs/Release/scripts/ClearScript.V8.dll
Normal file
BIN
Libs/Release/scripts/ClearScript.V8.dll
Normal file
Binary file not shown.
1767
Libs/Release/scripts/ClearScript.V8.xml
Normal file
1767
Libs/Release/scripts/ClearScript.V8.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Libs/Release/scripts/ClearScriptV8.win-x64.dll
Normal file
BIN
Libs/Release/scripts/ClearScriptV8.win-x64.dll
Normal file
Binary file not shown.
Reference in New Issue
Block a user