MrBot.Net/MRBot/IsxEq2/Extensions/LavishScriptObjectExtensions.cs
2023-12-08 15:20:12 -06:00

194 lines
7.6 KiB
C#

using System;
using LavishScriptAPI;
using LavishScriptAPI.Interfaces;
namespace MRBot.IsxEq2.Extensions
{
internal static class LavishScriptObjectExtensions
{
public static string GetString(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : lavishScriptObject.GetValue<string>();
}
}
public static string GetString(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : lavishScriptObject.GetValue<string>();
}
}
public static Int64 GetInt64(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? -1 : lavishScriptObject.GetValue<Int64>();
}
}
public static UInt64 GetUInt64(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? 0 : lavishScriptObject.GetValue<UInt64>();
}
}
public static Int64 GetInt64(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? -1 : lavishScriptObject.GetValue<Int64>();
}
}
public static float GetFloat(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? -1 : lavishScriptObject.GetValue<float>();
}
}
public static float GetFloat(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? -1 : lavishScriptObject.GetValue<float>();
}
}
public static double GetDouble(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? -1 : lavishScriptObject.GetValue<double>();
}
}
public static double GetDouble(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? -1 : lavishScriptObject.GetValue<double>();
}
}
public static int GetInt(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? -1 : lavishScriptObject.GetValue<int>();
}
}
public static int GetInt(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? -1 : lavishScriptObject.GetValue<int>();
}
}
public static bool GetBool(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? false : lavishScriptObject.GetValue<bool>();
}
}
public static bool GetBool(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? false : lavishScriptObject.GetValue<bool>();
}
}
public static Int64? GetNullableInt64(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (Int64?)lavishScriptObject.GetValue<Int64>();
}
}
public static Int64? GetNullableInt64(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (Int64?)lavishScriptObject.GetValue<Int64>();
}
}
public static float? GetNullableFloat(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (float?)lavishScriptObject.GetValue<float>();
}
}
public static float? GetNullableFloat(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (float?)lavishScriptObject.GetValue<float>();
}
}
public static double? GetNullableDouble(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (double?)lavishScriptObject.GetValue<double>();
}
}
public static double? GetNullableDouble(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (double?)lavishScriptObject.GetValue<double>();
}
}
public static int? GetNullableInt(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (int?)lavishScriptObject.GetValue<int>();
}
}
public static int? GetNullableInt(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (int?)lavishScriptObject.GetValue<int>();
}
}
public static bool? GetNullableBool(this ILSObject obj, string member)
{
using (var lavishScriptObject = obj.GetMember(member))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (bool?)lavishScriptObject.GetValue<bool>();
}
}
public static bool? GetNullableBool(this ILSObject obj, string member, params string[] args)
{
using (var lavishScriptObject = obj.GetMember(member, args))
{
return LavishScriptObject.IsNullOrInvalid(lavishScriptObject) ? null : (bool?)lavishScriptObject.GetValue<bool>();
}
}
}
}