code from snapshot release, add new splashes
This commit is contained in:
parent
2601a560bb
commit
776e131e8d
|
|
@ -1,5 +1,7 @@
|
|||
#region Usings
|
||||
#if !BASICLAUNCHER
|
||||
using NLog;
|
||||
#endif
|
||||
using Novetus.Core;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
|
|
|
|||
|
|
@ -43,166 +43,16 @@
|
|||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.7.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.1.0\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.AppContext, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Console.4.3.0\lib\net46\System.Console.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Diagnostics.Tracing, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
<Reference Include="System.IO.Compression.ZipFile, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.FileSystem.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Linq, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Linq.Expressions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Reflection, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Extensions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.InteropServices, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Text.Encodings.Web, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encodings.Web.7.0.0\lib\net462\System.Text.Encodings.Web.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Json, Version=7.0.0.3, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Json.7.0.3\lib\net462\System.Text.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.RegularExpressions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
|
|
@ -211,11 +61,6 @@
|
|||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="LocalPaths.cs" />
|
||||
|
|
@ -243,7 +88,6 @@
|
|||
</Compile>
|
||||
<None Include="app.config" />
|
||||
<None Include="app.manifest" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#region Usings
|
||||
#if !BASICLAUNCHER
|
||||
using NLog;
|
||||
#endif
|
||||
using Novetus.Core;
|
||||
using System;
|
||||
using System.IO;
|
||||
|
|
@ -24,11 +26,6 @@ namespace Novetus.Bootstrapper
|
|||
Directory.CreateDirectory(GlobalPaths.LogDir);
|
||||
}
|
||||
|
||||
var config = new NLog.Config.LoggingConfiguration();
|
||||
var logfile = new NLog.Targets.FileTarget("logfile") { FileName = GlobalPaths.LogDir + "\\Bootstrapper-log-" + DateTime.Today.ToString("MM-dd-yyyy") + ".log" };
|
||||
config.AddRuleForAllLevels(logfile);
|
||||
LogManager.Configuration = config;
|
||||
|
||||
Application.Run(new NovetusLaunchForm());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
using NLog;
|
||||
#if !BASICLAUNCHER
|
||||
using NLog;
|
||||
#endif
|
||||
using Novetus.Core;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
|
|
|
|||
|
|
@ -1,58 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="7.0.0" targetFramework="net48" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net48" />
|
||||
<package id="NETStandard.Library" version="1.6.1" targetFramework="net48" />
|
||||
<package id="NLog" version="5.1.0" targetFramework="net48" />
|
||||
<package id="System.AppContext" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Collections" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Console" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Globalization" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.IO" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Linq" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Memory" version="4.5.5" targetFramework="net48" />
|
||||
<package id="System.Net.Http" version="4.3.4" targetFramework="net48" />
|
||||
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
|
||||
<package id="System.ObjectModel" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Reflection" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Runtime" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Text.Encodings.Web" version="7.0.0" targetFramework="net48" />
|
||||
<package id="System.Text.Json" version="7.0.3" targetFramework="net48" />
|
||||
<package id="System.Text.RegularExpressions" version="4.3.1" targetFramework="net48" />
|
||||
<package id="System.Threading" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
|
||||
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net48" />
|
||||
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net48" />
|
||||
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net48" />
|
||||
</packages>
|
||||
|
|
@ -5,76 +5,21 @@ using System.Security.Cryptography;
|
|||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text.RegularExpressions;
|
||||
#endregion
|
||||
|
||||
|
||||
//https://github.com/davcs86/csharp-uhwid
|
||||
//merged into one class
|
||||
//using only cpu id.
|
||||
namespace Novetus.Core
|
||||
{
|
||||
#region UHWIDEngine
|
||||
public static class UHWIDEngine
|
||||
{
|
||||
public static string SimpleUid { get; private set; }
|
||||
|
||||
public static string AdvancedUid { get; private set; }
|
||||
|
||||
static UHWIDEngine()
|
||||
{
|
||||
var volumeSerial = DiskId.GetDiskId();
|
||||
var cpuId = CpuId.GetCpuId();
|
||||
var windowsId = WindowsId.GetWindowsId();
|
||||
SimpleUid = volumeSerial + cpuId;
|
||||
AdvancedUid = SimpleUid + windowsId;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DiskId
|
||||
internal class DiskId
|
||||
{
|
||||
public static string GetDiskId()
|
||||
{
|
||||
return GetDiskId("");
|
||||
}
|
||||
private static string GetDiskId(string diskLetter)
|
||||
{
|
||||
//Find first drive
|
||||
if (string.IsNullOrEmpty(diskLetter))
|
||||
{
|
||||
foreach (var compDrive in DriveInfo.GetDrives())
|
||||
{
|
||||
if (compDrive.IsReady)
|
||||
{
|
||||
diskLetter = compDrive.RootDirectory.ToString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(diskLetter) && diskLetter.EndsWith(":\\"))
|
||||
{
|
||||
//C:\ -> C
|
||||
diskLetter = diskLetter.Substring(0, diskLetter.Length - 2);
|
||||
}
|
||||
var disk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + diskLetter + @":""");
|
||||
disk.Get();
|
||||
|
||||
var volumeSerial = disk["VolumeSerialNumber"].ToString();
|
||||
disk.Dispose();
|
||||
|
||||
return volumeSerial;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region CpuId
|
||||
internal static class CpuId
|
||||
{
|
||||
|
||||
[DllImport("user32", EntryPoint = "CallWindowProcW", CharSet = CharSet.Unicode, SetLastError = true,
|
||||
ExactSpelling = true)]
|
||||
ExactSpelling = true)]
|
||||
private static extern IntPtr CallWindowProcW([In] byte[] bytes, IntPtr hWnd, int msg, [In, Out] byte[] wParam,
|
||||
IntPtr lParam);
|
||||
IntPtr lParam);
|
||||
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
[DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
|
||||
|
|
@ -82,6 +27,16 @@ namespace Novetus.Core
|
|||
|
||||
const int PAGE_EXECUTE_READWRITE = 0x40;
|
||||
|
||||
public static string AdvancedUid { get; private set; }
|
||||
|
||||
static UHWIDEngine()
|
||||
{
|
||||
var cpuId = GetCpuId();
|
||||
Regex rx = new Regex(@"[A-Za-z.]");
|
||||
var ver = rx.Replace(GlobalVars.ProgramInformation.Version, "");
|
||||
AdvancedUid = SecurityFuncs.Encode(cpuId + ver);
|
||||
}
|
||||
|
||||
public static string GetCpuId()
|
||||
{
|
||||
var sn = new byte[8];
|
||||
|
|
@ -145,36 +100,4 @@ namespace Novetus.Core
|
|||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region WindowsId
|
||||
internal class WindowsId
|
||||
{
|
||||
public static string GetWindowsId()
|
||||
{
|
||||
var windowsInfo = "";
|
||||
var managClass = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_OperatingSystem");
|
||||
|
||||
var managCollec = managClass.Get();
|
||||
|
||||
var is64Bits = !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"));
|
||||
|
||||
foreach (var o in managCollec)
|
||||
{
|
||||
var managObj = (ManagementObject)o;
|
||||
windowsInfo = managObj.Properties["Caption"].Value + Environment.UserName + (string)managObj.Properties["Version"].Value;
|
||||
break;
|
||||
}
|
||||
windowsInfo = windowsInfo.Replace(" ", "");
|
||||
windowsInfo = windowsInfo.Replace("Windows", "");
|
||||
windowsInfo = windowsInfo.Replace("windows", "");
|
||||
windowsInfo += (is64Bits) ? " 64bit" : " 32bit";
|
||||
|
||||
//md5 hash of the windows version
|
||||
var md5Hasher = MD5.Create();
|
||||
var wi = md5Hasher.ComputeHash(Encoding.Default.GetBytes(windowsInfo));
|
||||
var wiHex = BitConverter.ToString(wi).Replace("-", "");
|
||||
return wiHex;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
|
@ -13,7 +13,9 @@ using System.Windows.Forms;
|
|||
using System.Xml.Serialization;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
#if !BASICLAUNCHER
|
||||
using System.Text.Json;
|
||||
#endif
|
||||
#endregion
|
||||
|
||||
namespace Novetus.Core
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net;
|
||||
#if !BASICLAUNCHER
|
||||
using NLog;
|
||||
#endif
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Runtime.InteropServices;
|
||||
|
|
@ -504,9 +506,10 @@ namespace Novetus.Core
|
|||
return Task.Delay(milliseconds);
|
||||
#endif
|
||||
}
|
||||
|
||||
public static void LogPrint(string text, int type = 1)
|
||||
{
|
||||
//TODO, remove nlog support for bootstrapper completely. this is a temp fix.
|
||||
#if !BASICLAUNCHER
|
||||
Logger log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
switch (type)
|
||||
|
|
@ -521,6 +524,7 @@ namespace Novetus.Core
|
|||
log.Info(text);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
public static void LogExceptions(Exception ex)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,14 @@
|
|||
EDGE Snapshot v23.8574.19965.1
|
||||
|
||||
Enhancements:
|
||||
- Added proper metatable protection on all affected clients. (2006S-2010L)
|
||||
----------------------------------------------------------------------------
|
||||
EDGE Snapshot v23.8700.30967.1
|
||||
Notes:
|
||||
- Novetus' license has switched to the GPL 3.0.
|
||||
- 💙
|
||||
|
||||
Enhancements:
|
||||
- Improved tripcode generation to fix various issues.
|
||||
|
||||
Fixes:
|
||||
- Fixed tripcodes not working
|
||||
|
|
|
|||
|
|
@ -465,3 +465,45 @@ _G.CSServer=CSServer
|
|||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -465,3 +465,45 @@ _G.CSServer=CSServer
|
|||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -523,3 +523,45 @@ _G.CSServer=CSServer
|
|||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -523,3 +523,45 @@ _G.CSServer=CSServer
|
|||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -578,4 +578,46 @@ end
|
|||
_G.CSServer=CSServer
|
||||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -579,3 +579,45 @@ _G.CSServer=CSServer
|
|||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -697,4 +697,46 @@ end
|
|||
_G.CSServer=CSServer
|
||||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -791,4 +791,46 @@ end
|
|||
_G.CSServer=CSServer
|
||||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -791,4 +791,46 @@ end
|
|||
_G.CSServer=CSServer
|
||||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -797,4 +797,46 @@ end
|
|||
_G.CSServer=CSServer
|
||||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -798,4 +798,46 @@ end
|
|||
_G.CSServer=CSServer
|
||||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
_G.CSStudio=CSStudio
|
||||
|
||||
-- credit to KeyboardCombination
|
||||
local succ = pcall(function() --check if the metatables are already read only lol
|
||||
local canChange = getmetatable(game.Close);
|
||||
canChange.__metatable = canChange.__metatable
|
||||
end)
|
||||
|
||||
if not succ then
|
||||
return;
|
||||
end
|
||||
|
||||
function readonlytable(table)
|
||||
return setmetatable({}, {
|
||||
__index = table,
|
||||
__newindex = function(table, key, value)
|
||||
error("Attempt to modify read-only table")
|
||||
end,
|
||||
__metatable = false
|
||||
});
|
||||
end
|
||||
|
||||
function readonlytablechildren(table)
|
||||
for i,v in pairs(table) do
|
||||
if type(v)=="table" and table[i]~=_G._G then
|
||||
readonlytablechildren(table[i])
|
||||
table[i] = readonlytable(table[i])
|
||||
end
|
||||
if type(v)=="userdata" then
|
||||
local mt = getmetatable(table[i])
|
||||
if mt~=nil and mt~=false then
|
||||
mt.__metatable=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
_G.rawset=nil
|
||||
readonlytablechildren(_G)
|
||||
_G._G = readonlytable(_G)
|
||||
mt = getmetatable(game.Changed)
|
||||
mt.__metatable=false
|
||||
mt = getmetatable("curse you roblox")
|
||||
mt.__metatable=false
|
||||
|
|
@ -10,5 +10,5 @@ ExtendedVersionNumber=True
|
|||
//ExtendedVersionTemplate=%version% Snapshot v23.%build%.%revision%.%extended-revision%
|
||||
ExtendedVersionTemplate=EDGE Snapshot v23.%build%.%revision%.%extended-revision%
|
||||
ExtendedVersionRevision=1
|
||||
InitialBootup=True
|
||||
InitialBootup=False
|
||||
IsLite=False
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
Happy New Year!|Have a happy %year%!|1/1
|
||||
RIP Erik Cassel|Erik Cassel, was a co-founder, administrator%newline%and former VP of Engineering of Roblox.|2/11
|
||||
Blueheart Forever.|Dedicated to Pepper and Sophie.|4/14
|
||||
smoke weed every day|blaze it|4/20
|
||||
Happy Birthday, Bitl!|Bitl is the developer of Novetus and RBXLegacy.|6/10
|
||||
Happy Pride Month!|6/1-6/30-6/7-6/15
|
||||
|
|
|
|||
|
|
@ -270,4 +270,6 @@ Supports USB C!
|
|||
NOW. UNDER. MILITARY. COMMAND.
|
||||
ONE MILLION DOLLARS!
|
||||
It's the new wave of the future!
|
||||
In the face of extermination, say "FUCK YOU"!|Dedicated to Pepper
|
||||
In the face of extermination, say "FUCK YOU"!|Dedicated to Pepper
|
||||
roblox for steam deck when|Just fuckin play novetus
|
||||
you're still standing here, despite everything|Dedicated to Pepper
|
||||
Loading…
Reference in New Issue