public void setString(string path, string key, string value) { SettingsRequestMessage newMessage = new SettingsRequestMessage(); SettingsRequestMessage.Types.Request.Types.Update newQuery = new SettingsRequestMessage.Types.Request.Types.Update(); newQuery.Node = new Node(); newQuery.Node.Path = path; newQuery.Node.Key = key; newQuery.Node.Value = value; SettingsRequestMessage.Types.Request request = new SettingsRequestMessage.Types.Request(); request.PluginId = plugin_id; request.Update = newQuery; newMessage.Payload.Add(request); NSCP.Core.Result res = core.settings(newMessage.ToByteArray()); if (!res.result) { log.error("Failed to set value: " + path); return; } SettingsResponseMessage response_message = SettingsResponseMessage.Parser.ParseFrom(res.data); if (response_message.Payload[0].Result.Code != PB.Common.Result.Types.StatusCodeType.StatusOk) { log.error("Failed to set value: " + path); return; } }
public bool registerKey(string path, string key, int type, string title, string description, string defaultValue, bool advanced) { SettingsRequestMessage newMessage = new SettingsRequestMessage(); SettingsRequestMessage.Types.Request.Types.Registration registration_builder = new SettingsRequestMessage.Types.Request.Types.Registration(); registration_builder.Node = new Node(); registration_builder.Node.Path = path; registration_builder.Node.Key = key; registration_builder.Info = new PB.Settings.Information(); registration_builder.Info.Title = title; registration_builder.Info.Description = description; NSCP.Core.Result res = core.settings(newMessage.ToByteArray()); if (!res.result) { log.error("Failed to describe path: " + path); return(false); } SettingsResponseMessage response_message = SettingsResponseMessage.Parser.ParseFrom(res.data); if (response_message.Payload[0].Result.Code != PB.Common.Result.Types.StatusCodeType.StatusOk) { log.error("Failed to describe path: " + path); return(false); } return(true); }
public bool reload(string context) { SettingsRequestMessage newMessage = new SettingsRequestMessage(); SettingsRequestMessage.Types.Request.Types.Control registration_builder = new SettingsRequestMessage.Types.Request.Types.Control(); registration_builder.Context = context; registration_builder.Command = PB.Settings.Command.Reload; SettingsRequestMessage.Types.Request request = new SettingsRequestMessage.Types.Request(); request.PluginId = plugin_id; request.Control = registration_builder; newMessage.Payload.Add(request); NSCP.Core.Result res = core.settings(newMessage.ToByteArray()); if (!res.result) { log.error("Failed to reload: " + context); return(false); } SettingsResponseMessage response_message = SettingsResponseMessage.Parser.ParseFrom(res.data); if (response_message.Payload[0].Result.Code != PB.Common.Result.Types.StatusCodeType.StatusOk) { log.error("Failed to reload: " + context); return(false); } return(true); }
/// <summary> /// Settings received message handler. /// </summary> /// <param name="sender">The sender of the message.</param> /// <param name="message">The message.</param> private void OnSettingsResponseMessage(ulong sender, SettingsResponseMessage message) { if (message.Settings != null) { Mod.Static.OnSettingsReceived(message.Settings); } }
public List <string> getKeys(string path) { List <string> ret = new List <string>(); SettingsRequestMessage.Builder newMessage = SettingsRequestMessage.CreateBuilder(); SettingsRequestMessage.Types.Request.Types.Query.Builder newQuery = SettingsRequestMessage.Types.Request.Types.Query.CreateBuilder(); newQuery.SetNode(Settings.Types.Node.CreateBuilder().SetPath(path).Build()); newQuery.SetRecursive(false); newQuery.SetType(Common.Types.DataType.STRING); newMessage.AddPayload(SettingsRequestMessage.Types.Request.CreateBuilder().SetPluginId(plugin_id).SetQuery(newQuery.Build()).Build()); System.IO.MemoryStream stream = new System.IO.MemoryStream(); newMessage.Build().WriteTo(stream); NSCP.Core.Result res = core.settings(stream.ToArray()); if (!res.result) { log.error("Failed to get value: " + path); return(ret); } SettingsResponseMessage response_message = SettingsResponseMessage.ParseFrom(res.data); if (response_message.GetPayload(0).Result.Code != Common.Types.Result.Types.StatusCodeType.STATUS_OK) { log.error("Failed to get value: " + path); return(ret); } foreach (string value in response_message.GetPayload(0).Query.Value.ListDataList) { ret.Add(value); } return(ret); }
public bool registerKey(string path, string key, int type, string title, string description, string defaultValue, bool advanced) { SettingsRequestMessage.Builder newMessage = SettingsRequestMessage.CreateBuilder(); SettingsRequestMessage.Types.Request.Types.Registration.Builder registration_builder = SettingsRequestMessage.Types.Request.Types.Registration.CreateBuilder(); registration_builder.SetNode(Settings.Types.Node.CreateBuilder().SetPath(path).SetKey(key).Build()); registration_builder.SetInfo(Settings.Types.Information.CreateBuilder().SetTitle(title).SetDescription(description).Build()); newMessage.AddPayload(SettingsRequestMessage.Types.Request.CreateBuilder().SetPluginId(plugin_id).SetRegistration(registration_builder.Build()).Build()); SettingsRequestMessage message = newMessage.Build(); System.IO.MemoryStream stream = new System.IO.MemoryStream(); message.WriteTo(stream); NSCP.Core.Result res = core.settings(stream.ToArray()); if (!res.result) { log.error("Failed to describe key: " + path); return(false); } SettingsResponseMessage response_message = SettingsResponseMessage.ParseFrom(res.data); if (response_message.GetPayload(0).Result.Code != Common.Types.Result.Types.StatusCodeType.STATUS_OK) { log.error("Failed to describe key: " + path); return(false); } return(true); }
public bool reload(string context) { SettingsRequestMessage.Builder newMessage = SettingsRequestMessage.CreateBuilder(); SettingsRequestMessage.Types.Request.Types.Control.Builder registration_builder = SettingsRequestMessage.Types.Request.Types.Control.CreateBuilder(); registration_builder.SetContext(context); registration_builder.SetCommand(Settings.Types.Command.RELOAD); newMessage.AddPayload(SettingsRequestMessage.Types.Request.CreateBuilder().SetPluginId(plugin_id).SetControl(registration_builder.Build()).Build()); SettingsRequestMessage message = newMessage.Build(); System.IO.MemoryStream stream = new System.IO.MemoryStream(); message.WriteTo(stream); NSCP.Core.Result res = core.settings(stream.ToArray()); if (!res.result) { log.error("Failed to save: " + context); return(false); } SettingsResponseMessage response_message = SettingsResponseMessage.ParseFrom(res.data); if (response_message.GetPayload(0).Result.Code != Common.Types.Result.Types.StatusCodeType.STATUS_OK) { log.error("Failed to save: " + context); return(false); } return(true); }
public long getInt(string path, string key, int defaultValue) { SettingsRequestMessage.Builder newMessage = SettingsRequestMessage.CreateBuilder(); SettingsRequestMessage.Types.Request.Types.Query.Builder newQuery = SettingsRequestMessage.Types.Request.Types.Query.CreateBuilder(); newQuery.SetNode(Settings.Types.Node.CreateBuilder().SetPath(path).SetKey(key).Build()); newQuery.SetDefaultValue(Common.Types.AnyDataType.CreateBuilder().SetIntData(defaultValue).Build()); newQuery.SetType(Common.Types.DataType.INT); newMessage.AddPayload(SettingsRequestMessage.Types.Request.CreateBuilder().SetPluginId(plugin_id).SetQuery(newQuery.Build()).Build()); System.IO.MemoryStream stream = new System.IO.MemoryStream(); newMessage.Build().WriteTo(stream); NSCP.Core.Result res = core.settings(stream.ToArray()); if (!res.result) { log.error("Failed to get value: " + path); return(defaultValue); } SettingsResponseMessage response_message = SettingsResponseMessage.ParseFrom(res.data); if (response_message.GetPayload(0).Result.Code != Common.Types.Result.Types.StatusCodeType.STATUS_OK) { log.error("Failed to get value: " + path); return(defaultValue); } return(response_message.GetPayload(0).Query.Value.IntData); }
/// <summary> /// Request Settings message handler. /// </summary> /// <param name="sender">The sender who requested settings.</param> /// <param name="message">The message from the requester.</param> private void OnSettingsRequestMessage(ulong sender, SettingsRequestMessage message) { if (Mod.Static.Settings == null) { return; } try { var response = new SettingsResponseMessage { Settings = Mod.Static.Settings, SteamId = sender }; Network.Send(response, sender); } catch (Exception exception) { using (Log.BeginMethod(nameof(OnSettingsRequestMessage))) { Log.Error(exception); } } }
public List <string> getKeys(string path) { List <string> ret = new List <string>(); SettingsRequestMessage newMessage = new SettingsRequestMessage(); SettingsRequestMessage.Types.Request.Types.Query newQuery = new SettingsRequestMessage.Types.Request.Types.Query(); newQuery.Node = new Node(); newQuery.Node.Path = path; newQuery.Recursive = false; SettingsRequestMessage.Types.Request request = new SettingsRequestMessage.Types.Request(); request.PluginId = plugin_id; request.Query = newQuery; newMessage.Payload.Add(request); NSCP.Core.Result res = core.settings(newMessage.ToByteArray()); if (!res.result) { log.error("Failed to get value: " + path); return(ret); } SettingsResponseMessage response_message = SettingsResponseMessage.Parser.ParseFrom(res.data); if (response_message.Payload == null || response_message.Payload.Count == 0 || response_message.Payload[0].Result == null) { log.error("Failed to get value: " + path); return(ret); } if (response_message.Payload[0].Result.Code != PB.Common.Result.Types.StatusCodeType.StatusOk) { log.error("Failed to get value: " + path); return(ret); } foreach (Node node in response_message.Payload[0].Query.Nodes) { ret.Add(node.Value); } return(ret); }
public void setBool(string path, string key, bool value) { SettingsRequestMessage.Builder newMessage = SettingsRequestMessage.CreateBuilder(); SettingsRequestMessage.Types.Request.Types.Update.Builder newQuery = SettingsRequestMessage.Types.Request.Types.Update.CreateBuilder(); newQuery.SetNode(Settings.Types.Node.CreateBuilder().SetPath(path).SetKey(key).Build()); newQuery.SetValue(Common.Types.AnyDataType.CreateBuilder().SetBoolData(value).Build()); newMessage.AddPayload(SettingsRequestMessage.Types.Request.CreateBuilder().SetPluginId(plugin_id).SetUpdate(newQuery.Build()).Build()); System.IO.MemoryStream stream = new System.IO.MemoryStream(); newMessage.Build().WriteTo(stream); NSCP.Core.Result res = core.settings(stream.ToArray()); if (!res.result) { log.error("Failed to set value: " + path); return; } SettingsResponseMessage response_message = SettingsResponseMessage.ParseFrom(res.data); if (response_message.GetPayload(0).Result.Code != Common.Types.Result.Types.StatusCodeType.STATUS_OK) { log.error("Failed to set value: " + path); return; } }
public bool registerPath(string path, string title, string description, bool advanced) { SettingsRequestMessage newMessage = new SettingsRequestMessage(); SettingsRequestMessage.Types.Request.Types.Registration registration_builder = new SettingsRequestMessage.Types.Request.Types.Registration(); registration_builder.Node = new Node(); registration_builder.Node.Path = path; registration_builder.Info = new PB.Settings.Information(); registration_builder.Info.Title = title; registration_builder.Info.Description = description; SettingsRequestMessage.Types.Request request = new SettingsRequestMessage.Types.Request(); request.PluginId = plugin_id; request.Registration = registration_builder; newMessage.Payload.Add(request); NSCP.Core.Result res = core.settings(newMessage.ToByteArray()); if (!res.result) { log.error("Failed to describe path: " + path); return(false); } SettingsResponseMessage response_message = SettingsResponseMessage.Parser.ParseFrom(res.data); if (response_message.Payload == null || response_message.Payload.Count == 0 || response_message.Payload[0].Result == null) { log.error("Failed to describe path: " + path); return(false); } if (response_message.Payload[0].Result.Code != PB.Common.Result.Types.StatusCodeType.StatusOk) { return(false); } return(true); }