45 lines
1.1 KiB
C#
45 lines
1.1 KiB
C#
using System.IO.Compression;
|
|
using ProtoBuf;
|
|
|
|
namespace PluginLoader.Data;
|
|
|
|
[ProtoContract]
|
|
public class SEPMPlugin : SteamPlugin
|
|
{
|
|
private const string NameFile = "name.txt";
|
|
|
|
private string dataFolder;
|
|
|
|
protected SEPMPlugin()
|
|
{
|
|
}
|
|
|
|
public override string Source => "SEPM";
|
|
protected override string HashFile => "sepm-plugin.txt";
|
|
|
|
protected override void CheckForUpdates()
|
|
{
|
|
dataFolder = Path.Combine(root, "sepm-plugin");
|
|
|
|
if (Directory.Exists(dataFolder))
|
|
base.CheckForUpdates();
|
|
else
|
|
Status = PluginStatus.PendingUpdate;
|
|
}
|
|
|
|
protected override void ApplyUpdate()
|
|
{
|
|
if (Directory.Exists(dataFolder))
|
|
Directory.Delete(dataFolder, true);
|
|
|
|
ZipFile.ExtractToDirectory(sourceFile, dataFolder);
|
|
}
|
|
|
|
protected override string GetAssemblyFile()
|
|
{
|
|
if (!Directory.Exists(dataFolder))
|
|
return null;
|
|
return Directory.EnumerateFiles(dataFolder, "*.dll")
|
|
.Where(s => !s.Equals("0Harmony.dll", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
|
}
|
|
} |