From 25163296c59dfc2fba7762b257dc33b1c431178b Mon Sep 17 00:00:00 2001 From: "Crom (Thibaut CHARLES)" Date: Tue, 21 Apr 2015 23:45:52 +0200 Subject: [PATCH] Json parsing --- nwn2ai_onmoduleload/nwn2ai_onmoduleload.cs | 24 +++++++++++++++++-- .../nwn2ai_onmoduleload.csproj | 3 +++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/nwn2ai_onmoduleload/nwn2ai_onmoduleload.cs b/nwn2ai_onmoduleload/nwn2ai_onmoduleload.cs index 5997880..5306a9e 100644 --- a/nwn2ai_onmoduleload/nwn2ai_onmoduleload.cs +++ b/nwn2ai_onmoduleload/nwn2ai_onmoduleload.cs @@ -25,6 +25,7 @@ using System.Threading; using System.IO; using System.Net; using System.Net.Sockets; +using Newtonsoft.Json; namespace CLRScript { @@ -69,10 +70,29 @@ namespace CLRScript public void Heartbeat() { - ActionSpeakString("hb", TALKVOLUME_TALK); + ActionSpeakString("hb", TALKVOLUME_SHOUT); DelayCommand(0.5f, Heartbeat); //Process queued requests + Debug("Proc cmds"); + + while(sockBufferIn.Count>0){ + Tuple req = sockBufferIn.Dequeue(); + + var json = JsonConvert.DeserializeObject(req.Item1); + switch ((string)json.action) { + case "bind": { + Debug("Bind request to '"+json.target+"'"); + if (!sockClients.ContainsKey(json.target)) { + sockClients.Add(json.target, req.Item2); + //Reply ok + } + else { + //Reply Already binded + } + }break; + } + } } @@ -99,7 +119,7 @@ namespace CLRScript sockClient.Receive(rawData, rawData.Length, 0); string data = Encoding.UTF8.GetString(rawData); - Debug("Queued "+data); + //Debug("Queued "+data); sockBufferIn.Enqueue(new Tuple(data, sockClient)); } else diff --git a/nwn2ai_onmoduleload/nwn2ai_onmoduleload.csproj b/nwn2ai_onmoduleload/nwn2ai_onmoduleload.csproj index 2a47f02..d03ac2e 100644 --- a/nwn2ai_onmoduleload/nwn2ai_onmoduleload.csproj +++ b/nwn2ai_onmoduleload/nwn2ai_onmoduleload.csproj @@ -32,6 +32,9 @@ 4 + + False + ..\CLRScriptSDK\NWNScriptJITIntrinsics.dll