81 lines
1.8 KiB
C#
81 lines
1.8 KiB
C#
using System;
|
|
using System.Text;
|
|
using Viveport.Internal;
|
|
|
|
namespace Viveport
|
|
{
|
|
public class User
|
|
{
|
|
private static Viveport.Internal.StatusCallback isReadyIl2cppCallback;
|
|
|
|
private const int MaxIdLength = 256;
|
|
|
|
private const int MaxNameLength = 256;
|
|
|
|
private const int MaxUrlLength = 512;
|
|
|
|
[MonoPInvokeCallback(typeof(Viveport.Internal.StatusCallback))]
|
|
private static void IsReadyIl2cppCallback(int errorCode)
|
|
{
|
|
isReadyIl2cppCallback(errorCode);
|
|
}
|
|
|
|
public static int IsReady(StatusCallback callback)
|
|
{
|
|
if (callback == null)
|
|
{
|
|
throw new InvalidOperationException("callback == null");
|
|
}
|
|
isReadyIl2cppCallback = callback.Invoke;
|
|
Api.InternalStatusCallbacks.Add(IsReadyIl2cppCallback);
|
|
if (IntPtr.Size == 8)
|
|
{
|
|
return Viveport.Internal.User.IsReady_64(IsReadyIl2cppCallback);
|
|
}
|
|
return Viveport.Internal.User.IsReady(IsReadyIl2cppCallback);
|
|
}
|
|
|
|
public static string GetUserId()
|
|
{
|
|
StringBuilder stringBuilder = new StringBuilder(256);
|
|
if (IntPtr.Size == 8)
|
|
{
|
|
Viveport.Internal.User.GetUserID_64(stringBuilder, 256);
|
|
}
|
|
else
|
|
{
|
|
Viveport.Internal.User.GetUserID(stringBuilder, 256);
|
|
}
|
|
return stringBuilder.ToString();
|
|
}
|
|
|
|
public static string GetUserName()
|
|
{
|
|
StringBuilder stringBuilder = new StringBuilder(256);
|
|
if (IntPtr.Size == 8)
|
|
{
|
|
Viveport.Internal.User.GetUserName_64(stringBuilder, 256);
|
|
}
|
|
else
|
|
{
|
|
Viveport.Internal.User.GetUserName(stringBuilder, 256);
|
|
}
|
|
return stringBuilder.ToString();
|
|
}
|
|
|
|
public static string GetUserAvatarUrl()
|
|
{
|
|
StringBuilder stringBuilder = new StringBuilder(512);
|
|
if (IntPtr.Size == 8)
|
|
{
|
|
Viveport.Internal.User.GetUserAvatarUrl_64(stringBuilder, 512);
|
|
}
|
|
else
|
|
{
|
|
Viveport.Internal.User.GetUserAvatarUrl(stringBuilder, 512);
|
|
}
|
|
return stringBuilder.ToString();
|
|
}
|
|
}
|
|
}
|