Untitled
unknown
csharp
3 years ago
3.6 kB
10
Indexable
using System;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using Rage;
using DiscordRPC;
using System.Reflection;
namespace PanosCommon.Utils
{
internal static class AlternateAuthentification
{
readonly static string licensesFile = "https://raw.githubusercontent.com/Panos1221/Licenses/main/FireCallouts.txt";
internal static bool Authentified = false;
[Obfuscation(Exclude = false, Feature = "-rename")]
[STAThread()]
[Rage.Attributes.ConsoleCommand("Try verifying your license", Name = "PanosCommonVerifyLicense")]
internal static void Initialize()
{
try
{
string id = "724743398862618715";
DiscordRpcClient client = new DiscordRpcClient(id);
client.OnReady += Client_OnReady;
client.Initialize();
}
catch(Exception ex)
{
Game.LogTrivial($"[PanosCommon] Exception: {ex}");
}
}
private static void Client_OnReady(object sender, DiscordRPC.Message.ReadyMessage args)
{
Game.LogTrivial($"Inside Client_OnReady");
var id = args.User.ID;
string encryptedID;
using (SHA256 sha256Hash = SHA256.Create())
{
// ComputeHash - returns byte array
byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(Convert.ToString(id)));
// Convert byte array to a string
StringBuilder builder = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
builder.Append(bytes[i].ToString("x2"));
}
encryptedID = builder.ToString();
}
Game.LogTrivial($"[PanosCommon] User ID: {id} Encrypted ID: {encryptedID}");
string result = WebDownloader.DownloadString(licensesFile, out bool success, true);
if (success)
{
Game.LogTrivial($"[PanosCommon] Web request result: {result}");
var premiumUsers = result.Split('\n');
if (premiumUsers.Any(userID => userID == encryptedID))
{
Game.LogTrivial("[PanosCommon] You are successfully verified to use Fire Callouts. Thank you for your support!");
Authentified = true;
EntryPoint.beta = true;
}
else
{
Game.LogTrivial("[PanosCommon] You do not have a valid license for Fire Callouts. Make sure to check your membership status at https://www.patreon.com/panos1221. The plugin will unload now");
//Game.UnloadActivePlugin();
}
}
else
{
Game.LogTrivial("[PanosCommon] An error occured while checking for donor status. Make sure you're connected to the Internet and Discord (the application) is running. The plugin will unload now");
//Game.UnloadActivePlugin();
}
}
[Obfuscation(Exclude = false, Feature = "-rename")]
[Rage.Attributes.ConsoleCommand()]
public static void CheckFireCalloutsLicenseStatus()
{
string validity = Authentified ? "Valid" : "Invalid";
Game.LogTrivial($"[PanosCommon] License status: {validity}");
}
}
}Editor is loading...