Files
Liberium-1.8-Source-Code/Server.Helper/Methods.cs
T

125 lines
2.9 KiB
C#
Raw Normal View History

2026-08-27 11:21:58 -06:00
using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Security.Cryptography;
using System.Windows.Forms;
using Toolbelt.Drawing;
namespace Server.Helper;
internal class Methods
{
public static byte[] getIcon(string hash, object[] list)
{
for (int i = 1; i < list.Length; i += 2)
{
if ((string)list[i] == hash)
{
return (byte[])list[i - 1];
}
}
return null;
}
public static string Shuffle(string str)
{
char[] array = str.ToCharArray();
Random random = new Random();
int num = array.Length;
while (num > 1)
{
num--;
int num2 = random.Next(num + 1);
char c = array[num2];
array[num2] = array[num];
array[num] = c;
}
return new string(array);
}
public static string GetPublicIpAsync()
{
try
{
using WebClient webClient = new WebClient();
return webClient.DownloadString("http://icanhazip.com").Replace("\n", "");
}
catch
{
}
return "127.0.0.1";
}
public static string GetIcon(string path)
{
try
{
string text = Path.GetTempFileName() + ".ico";
using (FileStream stream = new FileStream(text, FileMode.Create))
{
IconExtractor.Extract1stIconTo(path, stream);
}
return text;
}
catch
{
}
return "";
}
public static string GetChecksum(string file)
{
using FileStream inputStream = File.OpenRead(file);
return BitConverter.ToString(new SHA256Managed().ComputeHash(inputStream)).Replace("-", string.Empty);
}
public static void AppendLogs(string client, string message, Color color)
{
DataGridViewRow Item = new DataGridViewRow();
Item.DefaultCellStyle = new DataGridViewCellStyle
{
Alignment = DataGridViewContentAlignment.MiddleLeft,
ForeColor = color,
SelectionForeColor = Color.White,
Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel),
WrapMode = DataGridViewTriState.False
};
Item.Cells.Add(new DataGridViewTextBoxCell
{
Value = client
});
Item.Cells.Add(new DataGridViewTextBoxCell
{
Value = DateTime.Now.ToString("HH:mm:ss")
});
Item.Cells.Add(new DataGridViewTextBoxCell
{
Value = message
});
Program.form.GridLogs.Invoke((MethodInvoker)delegate
{
Program.form.GridLogs.Rows.Insert(0, Item);
});
}
public static string BytesToString(long byteCount)
{
string[] array = new string[7] { "B", "KB", "MB", "GB", "TB", "PB", "EB" };
if (byteCount == 0L)
{
return "0" + array[0];
}
long num = Math.Abs(byteCount);
int num2 = Convert.ToInt32(Math.Floor(Math.Log(num, 1024.0)));
double num3 = Math.Round((double)num / Math.Pow(1024.0, num2), 1);
return (double)Math.Sign(byteCount) * num3 + " " + array[num2];
}
public static Bitmap ByteArrayToBitmap(byte[] byteArray)
{
using MemoryStream stream = new MemoryStream(byteArray);
return new Bitmap(stream);
}
}