public async Task <string> RequestOAuth2Token(string appId) { GCHandle handle; bool resultSuccess = false; string data = null; var semaphore = new SemaphoreSlim(0, 1); unsafe { void ResolveTask(bool success, string token) { resultSuccess = success; data = token; semaphore.Release(); } DiscordOAuth2TokenResultModuleDelegate resolveTask = ResolveTask; handle = GCHandle.Alloc(resolveTask); var appIdPtr = MemoryUtils.StringToHGlobalUtf8(appId); core.Library.Client.Core_Discord_GetOAuth2Token(core.NativePointer, appIdPtr, resolveTask); Marshal.FreeHGlobal(appIdPtr); } await semaphore.WaitAsync(); handle.Free(); semaphore.Dispose(); if (!resultSuccess) { throw new Exception("Failed to request OAuth2 token"); } return(data); }
public async Task <HttpResponse> Get(string url) { CheckIfEntityExists(); GCHandle handle; HttpResponse?data = null; var semaphore = new SemaphoreSlim(0, 1); unsafe { void ResolveTask(int statusCode, string body, IntPtr headerKeys, IntPtr headerValues, int headerSize) { data = GetHttpResponse(statusCode, body, headerKeys, headerValues, headerSize); semaphore.Release(); } HttpResponseModuleDelegate resolveTask = ResolveTask; handle = GCHandle.Alloc(resolveTask); var urlPtr = MemoryUtils.StringToHGlobalUtf8(url); Core.Library.Client.HttpClient_Get(NativePointer, urlPtr, resolveTask); Marshal.FreeHGlobal(urlPtr); } await semaphore.WaitAsync(); handle.Free(); semaphore.Dispose(); return(data.Value); }
public void AddGxtText(uint key, string value) { unsafe { var valuePtr = MemoryUtils.StringToHGlobalUtf8(value); Library.Client.Core_AddGXTText(NativePointer, Resource.NativePointer, key, valuePtr); Marshal.FreeHGlobal(valuePtr); } }
public void SetConfigFlag(string flagName, bool value) { unsafe { var flagNamePtr = MemoryUtils.StringToHGlobalUtf8(flagName); Library.Client.Core_SetConfigFlag(NativePointer, flagNamePtr, (byte)(value ? 1 : 0)); Marshal.FreeHGlobal(flagNamePtr); } }
public void LogDebug(string message) { unsafe { var messagePtr = MemoryUtils.StringToHGlobalUtf8(message ?? "null"); library.Shared.Core_LogDebug(corePointer, messagePtr); Marshal.FreeHGlobal(messagePtr); } }
public void Get(string key, out MValueConst value) { unsafe { var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); value = new MValueConst(core, core.Library.Client.LocalStorage_GetKey(nativePointer, stringPtr)); Marshal.FreeHGlobal(stringPtr); } }
public void SetMinimapComponentPosition(string name, char alignX, char alignY, float posX, float posY, float sizeX, float sizeY) { unsafe { var namePtr = MemoryUtils.StringToHGlobalUtf8(name); Library.Client.Core_SetMinimapComponentPosition(NativePointer, namePtr, (byte)alignX, (byte)alignY, posX, posY, sizeX, sizeY); Marshal.FreeHGlobal(namePtr); } }
public void LogColored(string message) { unsafe { var messagePtr = MemoryUtils.StringToHGlobalUtf8(message); Library.Shared.Core_LogColored(NativePointer, messagePtr); Marshal.FreeHGlobal(messagePtr); } }
public void RemoveIpl(string iplName) { unsafe { var iplNamePtr = MemoryUtils.StringToHGlobalUtf8(iplName); Library.Client.Core_RemoveIpl(NativePointer, iplNamePtr); Marshal.FreeHGlobal(iplNamePtr); } }
public void GetMetaData(string key, out MValueConst value) { unsafe { var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); value = new MValueConst(Core, Core.Library.Shared.BaseObject_GetMetaData(BaseObjectNativePointer, stringPtr)); Marshal.FreeHGlobal(stringPtr); } }
public bool BeginScaleformMovieMethodMinimap(string methodName) { unsafe { var methodNamePtr = MemoryUtils.StringToHGlobalUtf8(methodName); var result = Library.Client.Core_BeginScaleformMovieMethodMinimap(NativePointer, methodNamePtr); Marshal.FreeHGlobal(methodNamePtr); return(result == 1); } }
public void AddPseudoClass(string name) { unsafe { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(name); Core.Library.Client.RmlElement_AddPseudoClass(RmlElementNativePointer, strPtr); Marshal.FreeHGlobal(strPtr); } }
public void AddSubProtocol(string subProtocol) { unsafe { CheckIfEntityExists(); var valuePtr = MemoryUtils.StringToHGlobalUtf8(subProtocol); Core.Library.Client.WebSocketClient_AddSubProtocol(WebSocketClientNativePointer, valuePtr); Marshal.FreeHGlobal(valuePtr); } }
public void GetSyncedMetaData(string key, out MValueConst value) { CheckIfEntityExists(); unsafe { var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); value = new MValueConst(Core, Core.Library.Shared.Entity_GetSyncedMetaData(EntityNativePointer, stringPtr)); Marshal.FreeHGlobal(stringPtr); } }
public bool GetConfigFlag(string flagName) { unsafe { var flagNamePtr = MemoryUtils.StringToHGlobalUtf8(flagName); var result = Library.Client.Core_GetConfigFlag(NativePointer, flagNamePtr) == 1; Marshal.FreeHGlobal(flagNamePtr); return(result); } }
public bool UnloadYtyp(string ytypName) { unsafe { var ytypNamePtr = MemoryUtils.StringToHGlobalUtf8(ytypName); var result = Library.Client.Core_UnloadYtyp(NativePointer, ytypNamePtr); Marshal.FreeHGlobal(ytypNamePtr); return(result == 1); } }
public void CreateMValueString(out MValueConst mValue, string value) { unsafe { var valuePtr = MemoryUtils.StringToHGlobalUtf8(value); mValue = new MValueConst(this, MValueConst.Type.String, Library.Shared.Core_CreateMValueString(NativePointer, valuePtr)); Marshal.FreeHGlobal(valuePtr); } }
public bool IsTextureExistInArchetype(uint modelHash, string targetTextureName) { unsafe { var targetTextureNamePtr = MemoryUtils.StringToHGlobalUtf8(targetTextureName); var result = Library.Client.Core_IsTextureExistInArchetype(NativePointer, modelHash, targetTextureNamePtr) == 1; Marshal.FreeHGlobal(targetTextureNamePtr); return(result); } }
public bool RemovePseudoClass(string className) { unsafe { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(className); var result = Core.Library.Client.RmlElement_RemovePseudoClass(RmlElementNativePointer, strPtr); Marshal.FreeHGlobal(strPtr); return(result == 1); } }
public bool HasStreamSyncedMetaData(string key) { CheckIfEntityExists(); unsafe { var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); var result = Core.Library.Shared.Entity_HasStreamSyncedMetaData(EntityNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); return(result == 1); } }
public void LoadRmlFont(string path, string name, bool italic = false, bool bold = false) { unsafe { var pathPtr = MemoryUtils.StringToHGlobalUtf8(path); var namePtr = MemoryUtils.StringToHGlobalUtf8(name); Library.Client.Core_LoadRmlFont(NativePointer, Resource.NativePointer, pathPtr, namePtr, (byte)(italic ? 1 : 0), (byte)(bold ? 1 : 0)); Marshal.FreeHGlobal(pathPtr); Marshal.FreeHGlobal(namePtr); } }
public bool Send(string message) { unsafe { CheckIfEntityExists(); var messagePtr = MemoryUtils.StringToHGlobalUtf8(message); var result = Core.Library.Client.WebSocketClient_Send_String(WebSocketClientNativePointer, messagePtr) == 1; Marshal.FreeHGlobal(messagePtr); return(result); } }
public IRmlElement CreateTextNode(string text) { unsafe { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(text); var ptr = Core.Library.Client.RmlDocument_CreateTextNode(RmlDocumentNativePointer, strPtr); Marshal.FreeHGlobal(strPtr); return(Core.RmlElementPool.Create(Core, ptr)); } }
public float GetPropertyAbsoluteValue(string key) { unsafe { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(key); var result = Core.Library.Client.RmlElement_GetPropertyAbsoluteValue(RmlElementNativePointer, strPtr); Marshal.FreeHGlobal(strPtr); return(result); } }
public bool HasProperty(string key) { unsafe { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(key); var result = Core.Library.Client.RmlElement_HasProperty(RmlElementNativePointer, strPtr); Marshal.FreeHGlobal(strPtr); return(result == 1); } }
public void SetExport(string key, object value) { unsafe { var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); core.CreateMValue(out var mValue, value); core.Library.Shared.Resource_SetExport(core.NativePointer, NativePointer, stringPtr, mValue.nativePointer); Marshal.FreeHGlobal(stringPtr); mValue.Dispose(); } }
public void SetExtraHeader(string key, string value) { unsafe { CheckIfEntityExists(); var keyPtr = MemoryUtils.StringToHGlobalUtf8(key); var valuePtr = MemoryUtils.StringToHGlobalUtf8(value); Core.Library.Client.HttpClient_SetExtraHeader(HttpClientNativePointer, keyPtr, valuePtr); Marshal.FreeHGlobal(keyPtr); Marshal.FreeHGlobal(valuePtr); } }
public string GetProperty(string key) { unsafe { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(key); var size = 0; var result = Core.Library.Client.RmlElement_GetProperty(RmlElementNativePointer, strPtr, &size); Marshal.FreeHGlobal(strPtr); return(Core.PtrToStringUtf8AndFree(result, size)); } }
public void SetExtraHeader(string name, string value) { unsafe { CheckIfEntityExists(); var namePtr = MemoryUtils.StringToHGlobalUtf8(name); var valuePtr = MemoryUtils.StringToHGlobalUtf8(value); Core.Library.Client.WebSocketClient_SetExtraHeader(WebSocketClientNativePointer, namePtr, valuePtr); Marshal.FreeHGlobal(namePtr); Marshal.FreeHGlobal(valuePtr); } }
public void SetProperty(string key, string value) { unsafe { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(key); var strPtr2 = MemoryUtils.StringToHGlobalUtf8(value); Core.Library.Client.RmlElement_SetProperty(RmlElementNativePointer, strPtr, strPtr2); Marshal.FreeHGlobal(strPtr); Marshal.FreeHGlobal(strPtr2); } }