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);
     }
 }
Beispiel #5
0
 public void LogDebug(string message)
 {
     unsafe
     {
         var messagePtr = MemoryUtils.StringToHGlobalUtf8(message ?? "null");
         library.Shared.Core_LogDebug(corePointer, messagePtr);
         Marshal.FreeHGlobal(messagePtr);
     }
 }
Beispiel #6
0
 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);
     }
 }
Beispiel #8
0
 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);
     }
 }
Beispiel #12
0
 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);
     }
 }
Beispiel #14
0
 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);
     }
 }
Beispiel #17
0
 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);
     }
 }
Beispiel #19
0
 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);
     }
 }
Beispiel #20
0
 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);
     }
 }
Beispiel #23
0
 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));
     }
 }
Beispiel #24
0
 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);
     }
 }
Beispiel #25
0
 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);
     }
 }
Beispiel #28
0
 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);
     }
 }
Beispiel #30
0
 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);
     }
 }