From 5e4bef5b01ce4e41f6b67e6233e301f58e3a9930 Mon Sep 17 00:00:00 2001 From: zznty <94796179+zznty@users.noreply.github.com> Date: Mon, 20 Nov 2023 13:56:59 +0700 Subject: [PATCH] meh --- Kits/Kits.csproj | 2 +- LightPerms.Discord/LightPerms.Discord.csproj | 2 +- .../LightPerms.TorchCommands.csproj | 2 +- LightPerms/LightPerms.csproj | 2 +- .../LuckPerms.Torch.Api.nuspec | 1 + .../Extensions/DelegateExtensions.cs | 78 ++++ .../Extensions/EnumerableExtensions.cs | 6 +- .../Extensions/IteratorExtensions.cs | 26 +- .../Extensions/StreamExtensions.cs | 92 ++++ .../Extensions/UUIDExtensions.cs | 2 +- .../LuckPerms.Torch.Utils.csproj | 27 ++ LuckPerms.Torch.Utils/libs/api-5.4.jar | Bin 0 -> 142890 bytes .../Extensions/DelegateExtensions.cs | 19 - .../MultiplayerManagerExtensions.cs | 1 + .../Extensions/StreamExtensions.cs | 19 - .../Impl/Listeners/LpConnectionListener.cs | 1 + LuckPerms.Torch/Impl/LpContextManager.cs | 1 + LuckPerms.Torch/Impl/LpSenderFactory.cs | 1 + LuckPerms.Torch/Impl/LpTorchBootstrap.cs | 16 +- LuckPerms.Torch/Impl/LpTorchPlugin.cs | 1 + LuckPerms.Torch/LuckPerms.Torch.csproj | 4 + LuckPerms.Torch/ModApi/ModApiManager.cs | 1 + LuckPerms.Torch/manifest.xml | 2 +- LuckPerms.Torch/packages.lock.json | 8 +- Maintenance/Commands.cs | 144 ++++++ Maintenance/ConfigKeys.cs | 20 + .../Extensions/CompletableFutureExtensions.cs | 31 ++ Maintenance/LangKeys.cs | 18 + Maintenance/Maintenance.csproj | 53 +++ Maintenance/Managers/ConfigManager.cs | 38 ++ Maintenance/Managers/LanguageManager.cs | 62 +++ Maintenance/Managers/MaintenanceManager.cs | 179 +++++++ .../Managers/MaintenanceScheduleManager.cs | 181 ++++++++ Maintenance/Patches/SteamQueryPatch.cs | 361 +++++++++++++++ Maintenance/Plugin.cs | 21 + Maintenance/Resources/config.yml | 32 ++ Maintenance/Resources/translations/en.yml | 13 + Maintenance/libs/Steamworks.NET.dll | Bin 0 -> 374272 bytes Maintenance/manifest.xml | 6 + Maintenance/packages.lock.json | 438 ++++++++++++++++++ TorchPlugins.sln | 14 + heh/heh.csproj | 2 +- 42 files changed, 1863 insertions(+), 64 deletions(-) create mode 100644 LuckPerms.Torch.Utils/Extensions/DelegateExtensions.cs rename {LuckPerms.Torch => LuckPerms.Torch.Utils}/Extensions/EnumerableExtensions.cs (81%) rename {LuckPerms.Torch => LuckPerms.Torch.Utils}/Extensions/IteratorExtensions.cs (55%) create mode 100644 LuckPerms.Torch.Utils/Extensions/StreamExtensions.cs rename {LuckPerms.Torch => LuckPerms.Torch.Utils}/Extensions/UUIDExtensions.cs (84%) create mode 100644 LuckPerms.Torch.Utils/LuckPerms.Torch.Utils.csproj create mode 100644 LuckPerms.Torch.Utils/libs/api-5.4.jar delete mode 100644 LuckPerms.Torch/Extensions/DelegateExtensions.cs delete mode 100644 LuckPerms.Torch/Extensions/StreamExtensions.cs create mode 100644 Maintenance/Commands.cs create mode 100644 Maintenance/ConfigKeys.cs create mode 100644 Maintenance/Extensions/CompletableFutureExtensions.cs create mode 100644 Maintenance/LangKeys.cs create mode 100644 Maintenance/Maintenance.csproj create mode 100644 Maintenance/Managers/ConfigManager.cs create mode 100644 Maintenance/Managers/LanguageManager.cs create mode 100644 Maintenance/Managers/MaintenanceManager.cs create mode 100644 Maintenance/Managers/MaintenanceScheduleManager.cs create mode 100644 Maintenance/Patches/SteamQueryPatch.cs create mode 100644 Maintenance/Plugin.cs create mode 100644 Maintenance/Resources/config.yml create mode 100644 Maintenance/Resources/translations/en.yml create mode 100644 Maintenance/libs/Steamworks.NET.dll create mode 100644 Maintenance/manifest.xml create mode 100644 Maintenance/packages.lock.json diff --git a/Kits/Kits.csproj b/Kits/Kits.csproj index 0b04b09..04471e8 100644 --- a/Kits/Kits.csproj +++ b/Kits/Kits.csproj @@ -17,7 +17,7 @@ - + diff --git a/LightPerms.Discord/LightPerms.Discord.csproj b/LightPerms.Discord/LightPerms.Discord.csproj index f115e55..8fc9992 100644 --- a/LightPerms.Discord/LightPerms.Discord.csproj +++ b/LightPerms.Discord/LightPerms.Discord.csproj @@ -18,7 +18,7 @@ - + diff --git a/LightPerms.TorchCommands/LightPerms.TorchCommands.csproj b/LightPerms.TorchCommands/LightPerms.TorchCommands.csproj index a7f9278..e565feb 100644 --- a/LightPerms.TorchCommands/LightPerms.TorchCommands.csproj +++ b/LightPerms.TorchCommands/LightPerms.TorchCommands.csproj @@ -15,7 +15,7 @@ - + diff --git a/LightPerms/LightPerms.csproj b/LightPerms/LightPerms.csproj index 29a5170..9c1aadc 100644 --- a/LightPerms/LightPerms.csproj +++ b/LightPerms/LightPerms.csproj @@ -14,7 +14,7 @@ - + diff --git a/LuckPerms.Torch.Api/LuckPerms.Torch.Api.nuspec b/LuckPerms.Torch.Api/LuckPerms.Torch.Api.nuspec index dad4120..cd9533c 100644 --- a/LuckPerms.Torch.Api/LuckPerms.Torch.Api.nuspec +++ b/LuckPerms.Torch.Api/LuckPerms.Torch.Api.nuspec @@ -8,6 +8,7 @@ + diff --git a/LuckPerms.Torch.Utils/Extensions/DelegateExtensions.cs b/LuckPerms.Torch.Utils/Extensions/DelegateExtensions.cs new file mode 100644 index 0000000..9470c51 --- /dev/null +++ b/LuckPerms.Torch.Utils/Extensions/DelegateExtensions.cs @@ -0,0 +1,78 @@ +using System.Reflection; +using java.lang; +using java.util.concurrent; +using java.util.function; +using net.luckperms.api.@event; + +namespace LuckPerms.Torch.Utils.Extensions; + +public static class DelegateExtensions +{ + private static readonly Func AndThenDefault = + (Func)typeof(Consumer).GetMethod("andThen", + BindingFlags.Static | BindingFlags.NonPublic)!.CreateDelegate(typeof(Func)); + + private static readonly Func AndDefault = + (Func)typeof(Predicate).GetMethod("and", + BindingFlags.Static | BindingFlags.NonPublic)!.CreateDelegate(typeof(Func)); + + private static readonly Func NegateDefault = + (Func)typeof(Predicate).GetMethod("negate", + BindingFlags.Static | BindingFlags.NonPublic)!.CreateDelegate(typeof(Func)); + + private static readonly Func OrDefault = + (Func)typeof(Predicate).GetMethod("or", + BindingFlags.Static | BindingFlags.NonPublic)!.CreateDelegate(typeof(Func)); + + public static Runnable ToRunnable(this Action action) => new DelegateRunnable(action); + + public static Consumer ToConsumer(this Action action) => new DelegateConsumer(action); + + public static Supplier ToSupplier(this Func func) where T : notnull => new DelegateSupplier(func); + + public static Predicate ToPredicate(this Predicate predicate) => new DelegatePredicate(predicate); + + public static Callable ToCallable(this Func func) => new DelegateSupplier(func); + + private sealed class DelegatePredicate(Predicate predicate) : Predicate + { + public bool test(object t) => predicate((T)t); + + public Predicate and(Predicate other) => AndDefault(this, other); + + public Predicate negate() => NegateDefault(this); + + public Predicate or(Predicate other) => OrDefault(this, other); + } + + private sealed class DelegateSupplier(Func func) : Supplier, Callable where T : notnull + { + public object get() => func(); + public object call() => func(); + } + + private sealed class DelegateConsumer(Action action) : Consumer + { + public void accept(object t) + { + action((T)t); + } + + public Consumer andThen(Consumer after) => AndThenDefault(this, after); + } + + // ReSharper disable once InconsistentNaming + // lets make it an overload for convenience + public static void execute(this Executor executor, Action action) => executor.execute(action.ToRunnable()); + + public static EventSubscription subscribe(this EventBus bus, object plugin, Action action) + where TEvent : class, LuckPermsEvent => bus.subscribe(plugin, typeof(TEvent), action.ToConsumer()); + + public static EventSubscription subscribe(this EventBus bus, Action action) + where TEvent : class, LuckPermsEvent => bus.subscribe(typeof(TEvent), action.ToConsumer()); + + private sealed class DelegateRunnable(Action action) : Runnable + { + public void run() => action(); + } +} \ No newline at end of file diff --git a/LuckPerms.Torch/Extensions/EnumerableExtensions.cs b/LuckPerms.Torch.Utils/Extensions/EnumerableExtensions.cs similarity index 81% rename from LuckPerms.Torch/Extensions/EnumerableExtensions.cs rename to LuckPerms.Torch.Utils/Extensions/EnumerableExtensions.cs index 40857b4..eb4496e 100644 --- a/LuckPerms.Torch/Extensions/EnumerableExtensions.cs +++ b/LuckPerms.Torch.Utils/Extensions/EnumerableExtensions.cs @@ -1,8 +1,6 @@ -using System.Collections.Generic; -using System.Linq; -using java.util; +using java.util; -namespace LuckPerms.Torch.Extensions; +namespace LuckPerms.Torch.Utils.Extensions; public static class EnumerableExtensions { diff --git a/LuckPerms.Torch/Extensions/IteratorExtensions.cs b/LuckPerms.Torch.Utils/Extensions/IteratorExtensions.cs similarity index 55% rename from LuckPerms.Torch/Extensions/IteratorExtensions.cs rename to LuckPerms.Torch.Utils/Extensions/IteratorExtensions.cs index 115a488..3ada80a 100644 --- a/LuckPerms.Torch/Extensions/IteratorExtensions.cs +++ b/LuckPerms.Torch.Utils/Extensions/IteratorExtensions.cs @@ -1,12 +1,23 @@ -using System; -using System.Collections; -using System.Collections.Generic; +using System.Collections; using java.util; +using java.util.stream; -namespace LuckPerms.Torch.Extensions; +namespace LuckPerms.Torch.Utils.Extensions; public static class IteratorExtensions { + public static StreamEnumerable AsEnumerable(this BaseStream stream) => new(stream); + + public static IteratorEnumerator GetEnumerator(this BaseStream stream) => new(stream.iterator()); + + public struct StreamEnumerable(BaseStream stream) : IEnumerable + { + public IteratorEnumerator GetEnumerator() => new(stream.iterator()); + + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + } + public static IteratorEnumerator GetEnumerator(this Iterator iterator) => new(iterator); public static IteratorEnumerable AsEnumerable(this Iterator iterator) => new(iterator); @@ -39,11 +50,8 @@ public static class IteratorExtensions { public IteratorEnumerator GetEnumerator() => new(iterator); - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - IEnumerator IEnumerable.GetEnumerator() => null!; + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } } \ No newline at end of file diff --git a/LuckPerms.Torch.Utils/Extensions/StreamExtensions.cs b/LuckPerms.Torch.Utils/Extensions/StreamExtensions.cs new file mode 100644 index 0000000..8a30168 --- /dev/null +++ b/LuckPerms.Torch.Utils/Extensions/StreamExtensions.cs @@ -0,0 +1,92 @@ +using java.io; +using JavaIOException = java.io.IOException; +using SystemIOException = System.IO.IOException; + +namespace LuckPerms.Torch.Utils.Extensions; + +public static class StreamExtensions +{ + public static InputStream GetInputStream(this Stream stream) + { + if (!stream.CanRead) + throw new ArgumentException("Stream should be readable", nameof(stream)); + + return new WrapperInputStream(stream); + } + + private sealed class WrapperInputStream(Stream stream) : InputStream + { + public override int read() + { + try + { + return stream.ReadByte(); + } + catch (SystemIOException e) + { + throw new JavaIOException(e.Message, e); + } + } + + public override int read(byte[] b, int off, int len) + { + try + { + return stream.Read(b, off, len); + } + catch (SystemIOException e) + { + throw new JavaIOException(e.Message, e); + } + } + + public override long skip(long n) + { + if (!stream.CanSeek) return base.skip(n); + + try + { + return stream.Seek(n, SeekOrigin.Current); + } + catch (SystemIOException e) + { + throw new JavaIOException(e.Message, e); + } + } + + public override int available() + { + try + { + return (int)(stream.Length - stream.Position); + } + catch (SystemIOException e) + { + throw new JavaIOException(e.Message, e); + } + } + + public override void reset() + { + if (!stream.CanSeek) + { + base.reset(); + return; + } + + try + { + stream.Seek(0, SeekOrigin.Begin); + } + catch (SystemIOException e) + { + throw new JavaIOException(e.Message, e); + } + } + + public override void close() + { + stream.Dispose(); + } + } +} \ No newline at end of file diff --git a/LuckPerms.Torch/Extensions/UUIDExtensions.cs b/LuckPerms.Torch.Utils/Extensions/UUIDExtensions.cs similarity index 84% rename from LuckPerms.Torch/Extensions/UUIDExtensions.cs rename to LuckPerms.Torch.Utils/Extensions/UUIDExtensions.cs index a92e8d5..9b198d4 100644 --- a/LuckPerms.Torch/Extensions/UUIDExtensions.cs +++ b/LuckPerms.Torch.Utils/Extensions/UUIDExtensions.cs @@ -1,6 +1,6 @@ using java.util; -namespace LuckPerms.Torch.Extensions; +namespace LuckPerms.Torch.Utils.Extensions; public static class UuidExtensions { diff --git a/LuckPerms.Torch.Utils/LuckPerms.Torch.Utils.csproj b/LuckPerms.Torch.Utils/LuckPerms.Torch.Utils.csproj new file mode 100644 index 0000000..2fc61a6 --- /dev/null +++ b/LuckPerms.Torch.Utils/LuckPerms.Torch.Utils.csproj @@ -0,0 +1,27 @@ + + + + net48 + 12 + enable + enable + 1.0.0 + + + + $(ProjectDir)libs\ + $(LibsPath)api-5.4.jar + + + + + api + true + + + + + + + + diff --git a/LuckPerms.Torch.Utils/libs/api-5.4.jar b/LuckPerms.Torch.Utils/libs/api-5.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..a69acaf9f112458be8b5f04944e39d46461b1c8f GIT binary patch literal 142890 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 z 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%0A?nQ)o-_E`j#BH3TwR3Su3WjXLL zQ}?+YwP#H5eTJePB#Y0DT&mnagb#gZ+ChNsF4Zt2ee6G$pFnCFD=FwJdu$=(u)V!h z#JXAOL(wT?~{*qQlxo#rh~jaznHp@tEQM%mf7oUEt4rv@~U@=OofdD!e- zwU?PUN#H8R`?ZlaJHjchJRnu3l&X&DwQvvcY}h5FcV0LAJN#*T+oVo zC1_6O&>Mmd>lqFud<9KHY}=f0CaZ6?b#FM;UG^5TcadQJcM%1b-lUf zav#vRS`|3HWaPL^vjRx$+R6&tI2`icC80INyN_08Ag_t1i)IrN0C?>_lS-@`#86JA z)_W8eki7H)dAWDqV;0GMXGQ2FH{JR8i5m8C&;b2b8~1q~fI$+|5m6A#3vvU~m=i<9 zcKUp+xxPEs)#H!ZIL6Fm6TP(0+t>5U3b_CERshhH|NCSt>A&0xKVJTMcmK-8<7HD; z$^*DqA^_c~e@hYm^obvNf{^haWR=M(O7^n==5)dkbSp?WM`y0=6-8=imjj|C5Yl-2+>pNonH z=kKKDSUn7mlpkJ0RJ^e&-YuLKQ$n}xhV7wO{AJgo%4c)O9T>I)>WL&n=`N?PKyo!mV!}=&l z$h0cYvwGKsb{m&Vs5>{&5mE+@Rc#DFbRK%wyR#E88$(JF58ld!!dE@4Ie_z?WSYsq zLtC+gBWU3nFZT3$Jpr*ibT=*RO^tCIeTT7%=^3F{(jlfPj<3l3l{Ra~@|8G0;*_Hn^2M_E^5@wkle|cgN)pDm3x5GMg+n~dhV~i@*6%Jv z>I#umOlGO_h{)71z$3f^)z8!D6c-X=KA4-I9>X3*Ison8x}OEdn0jVqFv^x0+6HQf zPq{@85k?aQ-E^*FG?3_p3Uoum7y3x?ZAhtCoJ$>cNL^q~b+6hXzWIf zSA^$5ED>&JZ-ft=yWnlGm#Pg!-QzD2c1hv_g)+dIBm?yE--cKIq>E|*vk(Q~9sUBq z0bEGm8UK96k`R>?ziw}7btnSrRoFfKV8lvSdJD*~AL!ja;JhS%J@`THFBZXE;2@1U-oAq(nC_D&s}GZHkhZ__^GG?xCC? zvAtP5Z^=sk=3b+ty4%sbZl?hx5@doq;q>-X!LXNAX+Fp(NK?F*5{s%Cm3I&___#Wl z{GRIA@^C+xw8+JrV@8<7TY2KRu3AJg#S;sWH8PyqcAVgG8#kN0UhiF(FE5FnFGa=y zbDm$u;U=4|?NPQ}MQ?Z(%J)`+C!_21iaSi|7vN3LMSId#3ssOiv^jH7X2}dKsA6`V z3xq#4m5hOnrP$kUfwXHs;V1LVa0zqy_7asmvi{Ij64 zN$UNn!VC2HDlxx6=I|i{C=oz}cJ#hLnY!y7yD>l0ZqIyA8BDWY@Ag8^x|DnulpgE) zE5J=K?H>eUVlWY81HC{zlvh3Tl_=#I%@)g%Sq(rrhaXGYxT;0$`&q$8g~yaFNcjCC zplEf*V+&FGZoZ<1Z#8!Xf%8IrIir8s|H*T5S9}lw);0OmS2qOhm-$PkmsxXbG@wT zYj;dVC8U9=v^-=&3%2%m%$q_{BM{*q?)5^C6r1M|vfU#5CVnt!dho(BkI@Op&T{kL zWUY8loxK9!*_L`P5ir0$YXhopHo6InH09Ftmcksvn(?VUl{R!;7mi8tgmZF`oM7tm z^P&LyBL>76d1~XUlJ3f*euyZ1ieuq?+FDP1&POUKgx6Qt_^>X{Fir2f-!AF|nawl~ zWXxhN-J;k|gZs`U3$Qd=zk{W*FsF6PQt|z|kQdFTs)tTDlS74CKEN8-J*U-ye8W-L z%IYAH`U%?9_+nkle=?g;A7obCm`*L3@9pTYulWtOK`cTSjhx!X?y3a(Y1+68c*KIj z8dLy5>WSHi_Qu+3@8Ic|9$D)p_jGUpPs}m?GnfF^g)&Sn#Em>zy5##Kcvm~M@Eowu zRE3E> z>u+_Dck1k&Etszk;zP6{S$D%IqnvH&B{nbTz1tMfe=WB7)&DhNNpqc}+Ky7t^R3?% zWy2L(PR8x=FLB1%Trxefje%>i*Z5} z@oH>=2iIZPKe+61#Y~X7QmA~L*Zoco>7k59{q8N;h2sVJ3wN&m86i;H0azK7q=@_% z7MvKWDVTEc@*-wz%CSHv I2$Q-Ih8i5BVQ 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

bu8i)tGr!sm{c>M0sMlE= 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 abT!bS1c4kG*%0_g#Rz<4)dfa%vi|}3Q2l@a literal 0 HcmV?d00001 diff --git a/LuckPerms.Torch/Extensions/DelegateExtensions.cs b/LuckPerms.Torch/Extensions/DelegateExtensions.cs deleted file mode 100644 index 3142a38..0000000 --- a/LuckPerms.Torch/Extensions/DelegateExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using java.lang; -using java.util.concurrent; - -namespace LuckPerms.Torch.Extensions; - -public static class DelegateExtensions -{ - public static Runnable ToRunnable(this Action action) => new DelegateRunnable(action); - - // ReSharper disable once InconsistentNaming - // lets make it an overload for convenience - public static void execute(this Executor executor, Action action) => executor.execute(action.ToRunnable()); - - private sealed class DelegateRunnable(Action action) : Runnable - { - public void run() => action(); - } -} \ No newline at end of file diff --git a/LuckPerms.Torch/Extensions/MultiplayerManagerExtensions.cs b/LuckPerms.Torch/Extensions/MultiplayerManagerExtensions.cs index ca1d50b..780eb4a 100644 --- a/LuckPerms.Torch/Extensions/MultiplayerManagerExtensions.cs +++ b/LuckPerms.Torch/Extensions/MultiplayerManagerExtensions.cs @@ -1,4 +1,5 @@ using java.util; +using LuckPerms.Torch.Utils.Extensions; using Torch.API; using Torch.API.Managers; using Torch.Server.Managers; diff --git a/LuckPerms.Torch/Extensions/StreamExtensions.cs b/LuckPerms.Torch/Extensions/StreamExtensions.cs deleted file mode 100644 index 67a3895..0000000 --- a/LuckPerms.Torch/Extensions/StreamExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.IO; -using java.io; -using Torch.Utils; - -namespace LuckPerms.Torch.Extensions; - -internal static class StreamExtensions -{ - public static InputStream GetInputStream(this Stream stream) - { - if (!stream.CanRead) - throw new ArgumentException("Stream should be readable", nameof(stream)); - - var array = stream.ReadToEnd(); // TODO make it not allocate array for an entire stream content - - return new ByteArrayInputStream(array); - } -} \ No newline at end of file diff --git a/LuckPerms.Torch/Impl/Listeners/LpConnectionListener.cs b/LuckPerms.Torch/Impl/Listeners/LpConnectionListener.cs index f5e3311..832e40f 100644 --- a/LuckPerms.Torch/Impl/Listeners/LpConnectionListener.cs +++ b/LuckPerms.Torch/Impl/Listeners/LpConnectionListener.cs @@ -1,5 +1,6 @@ using LuckPerms.Torch.Extensions; using LuckPerms.Torch.PlatformApi; +using LuckPerms.Torch.Utils.Extensions; using me.lucko.luckperms.common.plugin; using me.lucko.luckperms.common.plugin.util; using Torch.API; diff --git a/LuckPerms.Torch/Impl/LpContextManager.cs b/LuckPerms.Torch/Impl/LpContextManager.cs index f10da3b..2625f7e 100644 --- a/LuckPerms.Torch/Impl/LpContextManager.cs +++ b/LuckPerms.Torch/Impl/LpContextManager.cs @@ -2,6 +2,7 @@ using java.util; using LuckPerms.Torch.Extensions; using LuckPerms.Torch.PlatformApi; +using LuckPerms.Torch.Utils.Extensions; using me.lucko.luckperms.common.config; using me.lucko.luckperms.common.context.manager; using me.lucko.luckperms.common.plugin; diff --git a/LuckPerms.Torch/Impl/LpSenderFactory.cs b/LuckPerms.Torch/Impl/LpSenderFactory.cs index fc7ac26..1d8a65a 100644 --- a/LuckPerms.Torch/Impl/LpSenderFactory.cs +++ b/LuckPerms.Torch/Impl/LpSenderFactory.cs @@ -1,5 +1,6 @@ using java.util; using LuckPerms.Torch.Extensions; +using LuckPerms.Torch.Utils.Extensions; using me.lucko.luckperms.common.locale; using me.lucko.luckperms.common.plugin; using me.lucko.luckperms.common.sender; diff --git a/LuckPerms.Torch/Impl/LpTorchBootstrap.cs b/LuckPerms.Torch/Impl/LpTorchBootstrap.cs index e6f5fdd..b0de7fb 100644 --- a/LuckPerms.Torch/Impl/LpTorchBootstrap.cs +++ b/LuckPerms.Torch/Impl/LpTorchBootstrap.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Linq; using java.io; using java.lang; @@ -7,6 +8,7 @@ using java.time; using java.util; using java.util.concurrent; using LuckPerms.Torch.Extensions; +using LuckPerms.Torch.Utils.Extensions; using me.lucko.luckperms.common.plugin.bootstrap; using me.lucko.luckperms.common.plugin.classpath; using me.lucko.luckperms.common.plugin.logging; @@ -18,6 +20,7 @@ using Torch.API; using Torch.API.Managers; using Torch.API.Plugins; using Torch.Server.Managers; +using Path = java.nio.file.Path; namespace LuckPerms.Torch.Impl; @@ -30,8 +33,9 @@ public class LpTorchBootstrap : LuckPermsBootstrap public CountDownLatch EnableLatch { get; } = new(1); private readonly ITorchServer _torch; private readonly ITorchPlugin _torchPlugin; - private readonly string _configDir; - + private readonly Path _configDir; + private readonly Path _dataDir; + public LpTorchPlugin Plugin { get; } public LpTorchBootstrap(ITorchServer torch, ITorchPlugin torchPlugin, ILogger logger, string configDir) @@ -39,13 +43,15 @@ public class LpTorchBootstrap : LuckPermsBootstrap _pluginLogger = new NLogPluginLogger(logger); _torch = torch; _torchPlugin = torchPlugin; - _configDir = configDir; + var configDirInfo = Directory.CreateDirectory(configDir); + _configDir = Paths.get(configDirInfo.FullName); + _dataDir = Paths.get(configDirInfo.CreateSubdirectory("data").FullName); Plugin = new(this, torch); } public ITorchPlugin GetTorchPlugin() => _torchPlugin; - public Path getDataDirectory() => Paths.get(_configDir, "data"); + public Path getDataDirectory() => _dataDir; public string identifyClassLoader(ClassLoader classLoader) => classLoader.toString(); @@ -56,7 +62,7 @@ public class LpTorchBootstrap : LuckPermsBootstrap public SchedulerAdapter getScheduler() => _schedulerAdapter ??= new LpSchedulerAdapter(this, _torch); - public Path getConfigDirectory() => Paths.get(_configDir); + public Path getConfigDirectory() => _configDir; public bool isPlayerOnline(UUID uuid) => _torch.CurrentSession?.Managers.GetManager().Players diff --git a/LuckPerms.Torch/Impl/LpTorchPlugin.cs b/LuckPerms.Torch/Impl/LpTorchPlugin.cs index b621f59..e423352 100644 --- a/LuckPerms.Torch/Impl/LpTorchPlugin.cs +++ b/LuckPerms.Torch/Impl/LpTorchPlugin.cs @@ -8,6 +8,7 @@ using LuckPerms.Torch.Impl.Listeners; using LuckPerms.Torch.Impl.Messaging; using LuckPerms.Torch.ModApi; using LuckPerms.Torch.PlatformHooks; +using LuckPerms.Torch.Utils.Extensions; using me.lucko.luckperms.common.api; using me.lucko.luckperms.common.calculator; using me.lucko.luckperms.common.command; diff --git a/LuckPerms.Torch/LuckPerms.Torch.csproj b/LuckPerms.Torch/LuckPerms.Torch.csproj index d99f040..5626d9f 100644 --- a/LuckPerms.Torch/LuckPerms.Torch.csproj +++ b/LuckPerms.Torch/LuckPerms.Torch.csproj @@ -259,4 +259,8 @@ + + + + \ No newline at end of file diff --git a/LuckPerms.Torch/ModApi/ModApiManager.cs b/LuckPerms.Torch/ModApi/ModApiManager.cs index 213fa89..de7b074 100644 --- a/LuckPerms.Torch/ModApi/ModApiManager.cs +++ b/LuckPerms.Torch/ModApi/ModApiManager.cs @@ -5,6 +5,7 @@ using ikvm.extensions; using ikvm.runtime; using java.lang; using LuckPerms.Torch.Extensions; +using LuckPerms.Torch.Utils.Extensions; using Torch.API; using Torch.API.Managers; using VRage.Scripting; diff --git a/LuckPerms.Torch/manifest.xml b/LuckPerms.Torch/manifest.xml index 2a54795..6c24c11 100644 --- a/LuckPerms.Torch/manifest.xml +++ b/LuckPerms.Torch/manifest.xml @@ -2,5 +2,5 @@ LuckPerms.Torch 7E4B3CC8-64FA-416E-8910-AACDF2DA5E2C - v5.4.106.4 + v5.4.106.5 \ No newline at end of file diff --git a/LuckPerms.Torch/packages.lock.json b/LuckPerms.Torch/packages.lock.json index 43d9fbf..ccfa903 100644 --- a/LuckPerms.Torch/packages.lock.json +++ b/LuckPerms.Torch/packages.lock.json @@ -49,7 +49,7 @@ "type": "Direct", "requested": "[1.0.0, )", "resolved": "1.0.0", - "contentHash": "GAf9Mv1t1/qTGHSgDqkiKAc7Xbh36+U8Ce1PuSoJZNKxHVmzbKHc3nSVz0dIBHhLE7Op8k60NfmclDRAQAppbQ==" + "contentHash": "HkuAujKa9IqPPqoA1205teUPBxuNOC9z0xZJkrMlFT0htH02X0ieZ5qh4onwyV10qVKiRBCSLkc5tA8lp1l5ig==" }, "Torch.Server.ReferenceAssemblies": { "type": "Direct", @@ -357,6 +357,12 @@ "type": "Transitive", "resolved": "4.5.0", "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" + }, + "luckperms.torch.utils": { + "type": "Project", + "dependencies": { + "IKVM": "[8.7.1, )" + } } }, ".NETFramework,Version=v4.8/win-x64": { diff --git a/Maintenance/Commands.cs b/Maintenance/Commands.cs new file mode 100644 index 0000000..c922461 --- /dev/null +++ b/Maintenance/Commands.cs @@ -0,0 +1,144 @@ +using Maintenance.Managers; +using Torch.API.Managers; +using Torch.Commands; + +namespace Maintenance; + +[Category("maintenance")] +public class Commands : CommandModule +{ + private static readonly TimeSpan MaxTime = TimeSpan.FromDays(28); + + private MaintenanceManager MaintenanceManager => + Context.Torch.CurrentSession.Managers.GetManager(); + + private MaintenanceScheduleManager MaintenanceScheduler => + Context.Torch.CurrentSession.Managers.GetManager(); + + private LanguageManager LanguageManager => + Context.Torch.Managers.GetManager(); + + [Command("on", "Set the status of the maintenance mode to enabled.")] + public void On() + { + if (MaintenanceManager.MaintenanceEnabled) + { + Context.Respond(LanguageManager[LangKeys.AlreadyEnabled]); + return; + } + + MaintenanceManager.MaintenanceEnabled = true; + + Context.Respond(LanguageManager[LangKeys.MaintenanceActivated]); + } + + [Command("off", "Set the status of the maintenance mode to disabled.")] + public void Off() + { + if (!MaintenanceManager.MaintenanceEnabled) + { + Context.Respond(LanguageManager[LangKeys.AlreadyDisabled]); + return; + } + + MaintenanceManager.MaintenanceEnabled = false; + MaintenanceScheduler.CancelTimer(null); + + Context.Respond(LanguageManager[LangKeys.MaintenanceDeactivated]); + } + + [Command("starttimer", "Will enable maintenance mode after the time is up.")] + public void StartTimer(string time) + { + var startTime = double.TryParse(time, out var seconds) ? TimeSpan.FromSeconds(seconds) : TimeSpan.Parse(time); + + if (startTime > MaxTime) + { + Context.Respond(LanguageManager[LangKeys.TimerTooLong]); + return; + } + + if (MaintenanceManager.MaintenanceEnabled) + { + Context.Respond(LanguageManager[LangKeys.AlreadyEnabled]); + return; + } + + if (MaintenanceScheduler.CurrentSchedule.StartTime.HasValue) + { + Context.Respond(LanguageManager[LangKeys.TimerAlreadyRunning]); + return; + } + + MaintenanceScheduler.ScheduleTimer(TimerType.Start, startTime); + + Context.Respond(LanguageManager.Format(LangKeys.StartTimerStarted, MaintenanceScheduler.CurrentSchedule)); + } + + [Command("endtimer", + "Will enable maintenance mode for the given time in minutes. After the time is up, it'll be disabled again.")] + public void EndTimer(string duration) + { + var endTime = double.TryParse(duration, out var seconds) ? TimeSpan.FromSeconds(seconds) : TimeSpan.Parse(duration); + + if (endTime > MaxTime) + { + Context.Respond(LanguageManager[LangKeys.TimerTooLong]); + return; + } + + if (MaintenanceScheduler.CurrentSchedule.EndTime.HasValue) + { + Context.Respond(LanguageManager[LangKeys.TimerAlreadyRunning]); + return; + } + + MaintenanceManager.MaintenanceEnabled = true; + MaintenanceScheduler.ScheduleTimer(TimerType.End, endTime); + + Context.Respond(LanguageManager.Format(LangKeys.EndTimerStarted, MaintenanceScheduler.CurrentSchedule)); + } + + [Command("schedule", "Will enable maintenance mode after the given time, then disable it according to the second parameter.")] + public void Schedule(string time, string duration) + { + var startTime = double.TryParse(time, out var startSeconds) ? TimeSpan.FromSeconds(startSeconds) : TimeSpan.Parse(time); + var endTime = double.TryParse(duration, out var endSeconds) ? TimeSpan.FromSeconds(endSeconds) : TimeSpan.Parse(duration); + + if (startTime > MaxTime || endTime > MaxTime) + { + Context.Respond(LanguageManager[LangKeys.TimerTooLong]); + return; + } + + if (MaintenanceScheduler.CurrentSchedule != MaintenanceSchedule.Default) + { + Context.Respond(LanguageManager[LangKeys.TimerAlreadyRunning]); + return; + } + + if (MaintenanceManager.MaintenanceEnabled) + { + Context.Respond(LanguageManager[LangKeys.AlreadyEnabled]); + return; + } + + MaintenanceScheduler.ScheduleMaintenance(startTime, endTime); + + Context.Respond(LanguageManager.Format(LangKeys.ScheduleTimerBroadcast, MaintenanceScheduler.CurrentSchedule)); + } + + [Command("aborttimer", "Cancels a running start-/endtimer")] + public void AbortTimer() + { + if (MaintenanceScheduler.CurrentSchedule == MaintenanceSchedule.Default) + { + Context.Respond(LanguageManager[LangKeys.TimerNotRunning]); + return; + } + + MaintenanceScheduler.CancelTimer(null); + + Context.Respond(LanguageManager[LangKeys.TimerCancelled]); + } +} \ No newline at end of file diff --git a/Maintenance/ConfigKeys.cs b/Maintenance/ConfigKeys.cs new file mode 100644 index 0000000..5082944 --- /dev/null +++ b/Maintenance/ConfigKeys.cs @@ -0,0 +1,20 @@ +namespace Maintenance; + +public static class ConfigKeys +{ + public const string MaintenanceEnabled = "maintenance-enabled"; + + public const string CommandsOnMaintenanceEnable = "commands-on-maintenance-enable"; + public const string CommandsOnMaintenanceDisable = "commands-on-maintenance-disable"; + + public const string EnableWorldMessage = "enable-world-message"; + public const string WorldMessage = "world-message"; + + public const string KickOnlinePlayers = "kick-online-players"; + + public const string Language = "language"; + + public const string ContinueEndTimerAfterRestart = "continue-endtimer-after-restart"; + + public const string TimerBroadcastForSeconds = "timer-broadcast-for-seconds"; +} \ No newline at end of file diff --git a/Maintenance/Extensions/CompletableFutureExtensions.cs b/Maintenance/Extensions/CompletableFutureExtensions.cs new file mode 100644 index 0000000..c7a90fb --- /dev/null +++ b/Maintenance/Extensions/CompletableFutureExtensions.cs @@ -0,0 +1,31 @@ +using java.util.concurrent; +using java.util.function; +using Torch.Utils; + +namespace Maintenance.Extensions; + +public static class CompletableFutureExtensions +{ + [ReflectedStaticMethod(Type = typeof(Consumer), Name = "andThen")] + private static readonly Func AndThenDefault = null!; + + public static Task ToTask(this CompletableFuture completableFuture) + { + var taskCompletionSource = new TaskCompletionSource(); + + completableFuture.thenAccept(new TaskConsumer(taskCompletionSource)); + + return taskCompletionSource.Task; + } + + private sealed class TaskConsumer(TaskCompletionSource completionSource) : Consumer + { + + public void accept(object t) + { + completionSource.SetResult((T)t); + } + + public Consumer andThen(Consumer after) => AndThenDefault(this, after); + } +} \ No newline at end of file diff --git a/Maintenance/LangKeys.cs b/Maintenance/LangKeys.cs new file mode 100644 index 0000000..8eca20a --- /dev/null +++ b/Maintenance/LangKeys.cs @@ -0,0 +1,18 @@ +namespace Maintenance; + +public static class LangKeys +{ + public const string MaintenanceActivated = "maintenanceActivated"; + public const string MaintenanceDeactivated = "maintenanceDeactivated"; + public const string AlreadyEnabled = "alreadyEnabled"; + public const string AlreadyDisabled = "alreadyDisabled"; + public const string EndTimerBroadcast = "endtimerBroadcast"; + public const string EndTimerStarted = "endtimerStarted"; + public const string StartTimerBroadcast = "starttimerBroadcast"; + public const string StartTimerStarted = "starttimerStarted"; + public const string ScheduleTimerBroadcast = "scheduletimerBroadcast"; + public const string TimerAlreadyRunning = "timerAlreadyRunning"; + public const string TimerNotRunning = "timerNotRunning"; + public const string TimerCancelled = "timerCancelled"; + public const string TimerTooLong = "timerTooLong"; +} \ No newline at end of file diff --git a/Maintenance/Maintenance.csproj b/Maintenance/Maintenance.csproj new file mode 100644 index 0000000..20356f9 --- /dev/null +++ b/Maintenance/Maintenance.csproj @@ -0,0 +1,53 @@ + + + + net48 + enable + enable + x64 + 12 + true + true + true + + + + none + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + PreserveNewest + + + + + + + + + + + libs\Steamworks.NET.dll + False + + + + diff --git a/Maintenance/Managers/ConfigManager.cs b/Maintenance/Managers/ConfigManager.cs new file mode 100644 index 0000000..bb1eb2d --- /dev/null +++ b/Maintenance/Managers/ConfigManager.cs @@ -0,0 +1,38 @@ +using System.IO; +using Microsoft.Extensions.Configuration; +using Torch.API.Managers; + +namespace Maintenance.Managers; + +public class ConfigManager(string storagePath) : IManager +{ + private IConfigurationRoot? _configurationRoot; + + public IConfiguration Configuration => _configurationRoot ?? throw new InvalidOperationException("Manager is not attached"); + + public void Attach() + { + var configPath = Path.Combine(storagePath, "config.yml"); + + if (!File.Exists(configPath)) + ExtractDefault(configPath); + + _configurationRoot = new ConfigurationBuilder() + .AddYamlFile(configPath, false, true) + .Build(); + } + + private void ExtractDefault(string path) + { + var name = path[storagePath.Length..].TrimStart(Path.GetInvalidFileNameChars()).Replace('\\', '.'); + + using var stream = typeof(ConfigManager).Assembly.GetManifestResourceStream(name)!; + using var file = File.Create(path); + + stream.CopyTo(file); + } + + public void Detach() + { + } +} \ No newline at end of file diff --git a/Maintenance/Managers/LanguageManager.cs b/Maintenance/Managers/LanguageManager.cs new file mode 100644 index 0000000..6abe047 --- /dev/null +++ b/Maintenance/Managers/LanguageManager.cs @@ -0,0 +1,62 @@ +using System.IO; +using Microsoft.Extensions.Configuration; +using SmartFormat; +using SmartFormat.Core.Settings; +using Torch.API.Managers; +using Torch.Managers; + +namespace Maintenance.Managers; + +public class LanguageManager(string storagePath) : IManager +{ + private readonly string[] _langs = { "en" }; + + public IConfiguration Language => _configurationRoot ?? throw new InvalidOperationException("Manager is not attached"); + + private IConfigurationRoot? _configurationRoot; + + [Manager.Dependency] + private readonly ConfigManager _configManager = null!; + + public SmartFormatter Formatter { get; } = Smart.CreateDefaultSmartFormat(new() + { + CaseSensitivity = CaseSensitivityType.CaseInsensitive + }); + + public string this[string key] => Language[key] ?? throw new KeyNotFoundException(key); + + public void Attach() + { + var langDirectory = Path.Combine(storagePath, "translations"); + + if (!Directory.Exists(langDirectory)) + Directory.CreateDirectory(langDirectory); + + foreach (var lang in _langs) + { + var path = Path.Combine(langDirectory, $"{lang}.yml"); + if (!File.Exists(path)) + ExtractTranslation(path); + } + + _configurationRoot = new ConfigurationBuilder() + .AddYamlFile(Path.Combine(langDirectory, $"{_configManager.Configuration.GetValue(ConfigKeys.Language)!}.yml"), false, true) + .Build(); + } + + public string Format(string key, object obj) => Formatter.Format(this[key], obj); + + private void ExtractTranslation(string path) + { + var lang = path[storagePath.Length..].TrimStart(Path.GetInvalidFileNameChars()).Replace('\\', '.'); + + using var stream = typeof(LanguageManager).Assembly.GetManifestResourceStream(lang)!; + using var file = File.Create(path); + + stream.CopyTo(file); + } + + public void Detach() + { + } +} \ No newline at end of file diff --git a/Maintenance/Managers/MaintenanceManager.cs b/Maintenance/Managers/MaintenanceManager.cs new file mode 100644 index 0000000..c4921d2 --- /dev/null +++ b/Maintenance/Managers/MaintenanceManager.cs @@ -0,0 +1,179 @@ +using java.lang; +using LuckPerms.Torch.Utils.Extensions; +using Maintenance.Extensions; +using Microsoft.Extensions.Configuration; +using net.luckperms.api; +using net.luckperms.api.model.user; +using NLog; +using Sandbox; +using Sandbox.Engine.Multiplayer; +using Torch.API; +using Torch.API.Event; +using Torch.Commands; +using Torch.Managers; +using Torch.Server.Managers; +using Torch.Utils; +using VRage.Game.ModAPI; +using VRage.Network; + +namespace Maintenance.Managers; + +public class MaintenanceManager(ITorchBase torch) : Manager(torch), IEventHandler +{ + public const string BypassPermission = "maintenance.bypass"; + + [ReflectedStaticMethod(Type = typeof(MyDedicatedServerBase))] + private static readonly Func ConvertSteamIDFrom64 = null!; + + private static readonly ILogger Log = LogManager.GetCurrentClassLogger(); + + [Dependency] + private readonly IEventManager _eventManager = null!; + + [Dependency] + private readonly ConfigManager _configManager = null!; + + [Dependency] + private readonly MultiplayerManagerDedicated _multiplayerManager = null!; + + [Dependency] + private readonly CommandManager _commandManager = null!; + + private bool _maintenanceEnabled; + private IDisposable? _disposable; + + public bool MaintenanceEnabled + { + get => _maintenanceEnabled; + set + { + if (value == _maintenanceEnabled) return; + _maintenanceEnabled = value; + + Log.Info(_maintenanceEnabled ? "Maintenance Enabled" : "Maintenance Disabled"); + + ExecuteCommandsOnModeChange(); + + if (!_maintenanceEnabled || + !_configManager.Configuration.GetValue(ConfigKeys.KickOnlinePlayers)) return; + + Torch.Invoke(() => + { + Log.Info("Kicking online players"); + foreach (var steamId in _multiplayerManager.Players.Keys) + { + if (!GetIsAllowedToJoin(steamId)) + MyMultiplayer.Static.DisconnectClient(steamId); + } + }); + } + } + + private void ExecuteCommandsOnModeChange() + { + var commandsOnEnable = + _configManager.Configuration.GetSection(ConfigKeys.CommandsOnMaintenanceEnable).GetChildren() + .Select(b => b.Value!).ToArray(); + var commandsOnDisable = + _configManager.Configuration.GetSection(ConfigKeys.CommandsOnMaintenanceDisable).GetChildren() + .Select(b => b.Value!).ToArray(); + + if (commandsOnEnable.Length <= 0 && commandsOnDisable.Length <= 0) return; + + Torch.Invoke(() => + { + switch (_maintenanceEnabled) + { + case true when commandsOnEnable.Length > 0: + { + foreach (var command in commandsOnEnable) + { + _commandManager.HandleCommandFromServer(command, + msg => Log.Info("Feedback from `{0}`: `{1}`", command, msg.Message)); + } + + break; + } + case false when commandsOnDisable.Length > 0: + { + foreach (var command in commandsOnDisable) + { + _commandManager.HandleCommandFromServer(command, + msg => Log.Info("Feedback from `{0}`: `{1}`", command, msg.Message)); + } + + break; + } + } + }); + } + + public override void Attach() + { + _eventManager.RegisterHandler(this); + _disposable = _configManager.Configuration.GetRequiredSection(ConfigKeys.MaintenanceEnabled).GetReloadToken() + .RegisterChangeCallback( + _ => MaintenanceEnabled = _configManager.Configuration.GetValue(ConfigKeys.MaintenanceEnabled), + null); + } + + public override void Detach() + { + _disposable?.Dispose(); + } + + [EventHandler] + private void OnValidateAuthTicket(ref ValidateAuthTicketEvent info) + { + if (!MaintenanceEnabled) return; + + var steamId = info.SteamID; + var response = info.SteamResponse; + + info.FutureVerdict = FutureVerdict(); + + async Task FutureVerdict() + { + if (await GetIsAllowedToJoinAsync(steamId)) return response; + + Log.Info("Rejecting {0}", steamId); + return JoinResult.TicketCanceled; + } + } + + private static async ValueTask GetIsAllowedToJoinAsync(ulong steamId) + { + try + { + var api = LuckPermsProvider.get(); + var user = await api.getUserManager().loadUser(steamId.GetUuid()).ToTask(); + + return user.getCachedData().getPermissionData().checkPermission(BypassPermission).asBoolean(); + } + catch (IllegalStateException) + { + // we dont have api initialized + } + + var stringId = steamId.ToString(); + + return MySandboxGame.ConfigDedicated.Administrators.Any( + b => b == stringId || b == ConvertSteamIDFrom64(steamId)); + } + + private bool GetIsAllowedToJoin(ulong steamId) + { + try + { + var api = LuckPermsProvider.get(); + return api.getPlayerAdapter(typeof(IPlayer)).getPermissionData(_multiplayerManager.Players[steamId]) + .checkPermission(BypassPermission).asBoolean(); + } + catch (IllegalStateException) + { + // we dont have api initialized + } + + return _multiplayerManager.GetUserPromoteLevel(steamId) == MyPromoteLevel.Owner; + } +} \ No newline at end of file diff --git a/Maintenance/Managers/MaintenanceScheduleManager.cs b/Maintenance/Managers/MaintenanceScheduleManager.cs new file mode 100644 index 0000000..ec8ca37 --- /dev/null +++ b/Maintenance/Managers/MaintenanceScheduleManager.cs @@ -0,0 +1,181 @@ +using System.IO; +using System.Text.Json; +using System.Text.Json.Serialization; +using Microsoft.Extensions.Configuration; +using Torch.API.Managers; +using Torch.Managers; + +namespace Maintenance.Managers; + +public class MaintenanceScheduleManager(string storagePath) : IManager +{ + [Manager.Dependency] + private readonly MaintenanceManager _maintenanceManager = null!; + + [Manager.Dependency] + private readonly ConfigManager _configManager = null!; + + [Manager.Dependency] + private readonly LanguageManager _languageManager = null!; + + [Manager.Dependency] + private readonly IChatManagerServer _chatManager = null!; + + private MaintenanceSchedule _currentSchedule = MaintenanceSchedule.Default; + + private readonly FileInfo _scheduleFile = new(Path.Combine(storagePath, ".schedule")); + + public MaintenanceSchedule CurrentSchedule + { + get => _currentSchedule; + private set + { + if (value != _currentSchedule) + { + using var file = _scheduleFile.Create(); + JsonSerializer.Serialize(file, value); + } + + _currentSchedule = value; + } + } + + private readonly CancellationTokenSource _cancellationTokenSource = new(); + + public void Attach() + { + Scheduler(); + + if (!_scheduleFile.Exists) return; + + using (var file = _scheduleFile.OpenRead()) + _currentSchedule = JsonSerializer.Deserialize(file)!; + + _scheduleFile.Delete(); + + if (_currentSchedule is not { StartTime: null, EndTime: not null }) return; + + if (!_configManager.Configuration.GetValue(ConfigKeys.ContinueEndTimerAfterRestart)) + CurrentSchedule = MaintenanceSchedule.Default; + + _maintenanceManager.MaintenanceEnabled = true; + } + + private async void Scheduler() + { + var token = _cancellationTokenSource.Token; + + var timerSecondsSection = _configManager.Configuration.GetSection(ConfigKeys.TimerBroadcastForSeconds); + var timerSeconds = timerSecondsSection.GetChildren().Select(b => b.Get()).ToArray(); + + using var disposable = timerSecondsSection.GetReloadToken() + .RegisterChangeCallback(_ => timerSeconds = timerSecondsSection.GetChildren().Select(b => b.Get()).ToArray(), null); + + while (!token.IsCancellationRequested) + { + await Task.Delay(2000, token); + + switch (_maintenanceManager.MaintenanceEnabled) + { + case false when _currentSchedule.StartTime.HasValue: + { + if (timerSeconds.Any(b => Math.Abs(_currentSchedule.Time.TotalSeconds - b) <= 1)) + { + _chatManager.SendMessageAsOther("Maintenance", + Format(_currentSchedule.EndTime.HasValue + ? LangKeys.ScheduleTimerBroadcast + : LangKeys.StartTimerBroadcast)); + } + + if (_currentSchedule.Time.TotalSeconds <= 1) + { + _chatManager.SendMessageAsOther("Maintenance", Format(LangKeys.MaintenanceActivated)); + _maintenanceManager.MaintenanceEnabled = true; + CurrentSchedule = CurrentSchedule with { StartTime = null }; + } + + break; + } + case true when _currentSchedule.EndTime.HasValue: + { + if (timerSeconds.Any(b => Math.Abs(_currentSchedule.Duration.TotalSeconds - b) <= 1)) + { + _chatManager.SendMessageAsOther("Maintenance", Format(LangKeys.EndTimerBroadcast)); + } + + if (_currentSchedule.Duration.TotalSeconds <= 1) + { + _chatManager.SendMessageAsOther("Maintenance", Format(LangKeys.MaintenanceDeactivated)); + _maintenanceManager.MaintenanceEnabled = false; + CurrentSchedule = CurrentSchedule with { EndTime = null }; + } + + break; + } + } + } + + string Format(string key) => _languageManager.Format(key, _currentSchedule); + } + + public void Detach() + { + _cancellationTokenSource.Cancel(); + _cancellationTokenSource.Dispose(); + } + + public void ScheduleTimer(TimerType type, TimeSpan duration) + { + if (_maintenanceManager.MaintenanceEnabled && type == TimerType.Start) + throw new InvalidOperationException("Maintenance is already enabled"); + + if (type == TimerType.Start) + CurrentSchedule = CurrentSchedule with { StartTime = DateTimeOffset.Now + duration }; + else + CurrentSchedule = CurrentSchedule with { EndTime = DateTimeOffset.Now + duration }; + } + + public void ScheduleMaintenance(TimeSpan startTime, TimeSpan endTime) + { + if (_maintenanceManager.MaintenanceEnabled) + throw new InvalidOperationException("Maintenance is already enabled"); + + var startDateTime = DateTimeOffset.Now + startTime; + + CurrentSchedule = new(startDateTime, startDateTime + endTime); + } + + public void CancelTimer(TimerType? type) + { + CurrentSchedule = type switch + { + TimerType.Start when !_currentSchedule.StartTime.HasValue => throw new InvalidOperationException( + "No start timer running"), + TimerType.Start => MaintenanceSchedule.Default, + TimerType.End when !_currentSchedule.EndTime.HasValue => throw new InvalidOperationException( + "No end timer running"), + TimerType.End => CurrentSchedule with { EndTime = null }, + _ => MaintenanceSchedule.Default + }; + } +} + +public record MaintenanceSchedule(DateTimeOffset? StartTime, DateTimeOffset? EndTime) +{ + public static MaintenanceSchedule Default => new(null, null); + + [JsonIgnore] + public TimeSpan Time => Round((StartTime ?? throw new InvalidOperationException("No start timer running")) + - DateTimeOffset.Now); + [JsonIgnore] + public TimeSpan Duration => Round((EndTime ?? throw new InvalidOperationException("No end timer running")) + - (StartTime ?? DateTimeOffset.Now)); + + private static TimeSpan Round(TimeSpan timeSpan) => TimeSpan.FromSeconds(Math.Round(timeSpan.TotalSeconds, 0)); +} + +public enum TimerType : byte +{ + Start, + End +} \ No newline at end of file diff --git a/Maintenance/Patches/SteamQueryPatch.cs b/Maintenance/Patches/SteamQueryPatch.cs new file mode 100644 index 0000000..2f9d3a4 --- /dev/null +++ b/Maintenance/Patches/SteamQueryPatch.cs @@ -0,0 +1,361 @@ +using System.Diagnostics; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using Maintenance.Managers; +using Microsoft.Extensions.Configuration; +using NLog; +using Sandbox; +using Sandbox.Engine.Multiplayer; +using Sandbox.Game.Multiplayer; +using Sandbox.Game.World; +using Steamworks; +using Torch; +using Torch.API; +using Torch.API.Managers; +using Torch.Managers.PatchManager; +using Torch.Utils; +using VRage.Game; +using VRage.GameServices; +using VRage.Library.Utils; +using VRage.Utils; + +namespace Maintenance.Patches; + +[PatchShim] +public static class SteamQueryPatch +{ + private static readonly ILogger Log = LogManager.GetCurrentClassLogger(); + + [ReflectedMethodInfo(null, "SteamServerEntryPoint", TypeName = "VRage.Steam.MySteamGameServer, VRage.Steam")] + private static readonly MethodInfo EntryPointMethod = null!; + + [ReflectedMethodInfo(typeof(SteamQueryPatch), nameof(Prefix))] + private static readonly MethodInfo PrefixMethod = null!; + +#pragma warning disable CS0618 // Type or member is obsolete + private static ITorchBase Torch => TorchBase.Instance; +#pragma warning restore CS0618 // Type or member is obsolete + + private static bool MaintenanceEnabled => + Torch.CurrentSession?.Managers.GetManager().MaintenanceEnabled is true; + + public static void Patch(PatchContext context) + { + context.GetPattern(EntryPointMethod).Prefixes.Add(PrefixMethod); + } + + private static bool Prefix(IMyGameServer __instance, object argument) + { + var socket = (Socket)argument; + RunServerAsync(__instance, socket); + + return false; + } + + private static async void RunServerAsync(IMyGameServer server, Socket socket) + { + var localEndPoint = socket.LocalEndPoint; + var zeroEndPoint = new IPEndPoint(0L, 0); + // better to calc based on mtu but i dont care + var buffer = new byte[1500]; + + while (server.Running) + { + SocketReceiveFromResult result; + try + { + result = await socket.ReceiveFromAsync(new(buffer), SocketFlags.None, zeroEndPoint); + } + catch (SocketException ex) + { + if (!server.Running) + break; + + try + { + socket.Close(); + } + catch + { + // ignored + } + + Log.Warn($"Received socket exception with error code: {ex.ErrorCode}, {ex.SocketErrorCode}", ex); + Log.Info("Attempting to create new socket."); + socket = new(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + try + { + socket.Bind(localEndPoint); + continue; + } + catch (SocketException e) + { + Log.Fatal(e, "Error binding server endpoint"); + + socket.Close(); + server.GetType().GetProperty("Running")?.SetValue(server, false); + GameServer.Shutdown(); + break; + } + } + + if (!CheckHeader(buffer.AsSpan(0, 4))) + continue; + + if (result.ReceivedBytes > 4 && MySession.Static is not null) + { + Debug.Write("byte is "); + Debug.WriteLine(buffer[4].ToString("X")); + switch (buffer[4]) + { + case 0x54: + await HandleInfoRequestAsync(socket, result.RemoteEndPoint); + continue; + // players request without challenge + case 0x55 when result.ReceivedBytes > 8 && !CheckHeader(buffer.AsSpan(5, 4)): + await HandlePlayersRequestAsync(socket, result.RemoteEndPoint); + continue; + } + } + + var remoteEndPoint = (IPEndPoint)result.RemoteEndPoint; + +#pragma warning disable CS0618 + SteamGameServer.HandleIncomingPacket(buffer, result.ReceivedBytes, (uint)remoteEndPoint.Address.Address, + (ushort)remoteEndPoint.Port); +#pragma warning restore CS0618 + + int length; + while ((length = SteamGameServer.GetNextOutgoingPacket(buffer, buffer.Length, out var addr, out var port)) > + 0) + { +#pragma warning disable CS0618 + remoteEndPoint.Address.Address = addr; +#pragma warning restore CS0618 + remoteEndPoint.Port = port; + + await socket.SendToAsync(new(buffer, 0, length), SocketFlags.None, remoteEndPoint); + } + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool CheckHeader(Span header) => + Unsafe.ReadUnaligned(ref header.GetPinnableReference()) == 0xFFFFFFFF; + + private static Task HandlePlayersRequestAsync(Socket socket, EndPoint sender) + { + if (Sync.Players is null) + return Task.CompletedTask; + + Debug.WriteLine($"players request from {sender}"); + using var ms = new MemoryStream(); + + // header + ms.WriteNoAlloc(0xFFFFFFFF); + ms.WriteByte(0x44); + + if (MaintenanceEnabled) + { + ms.WriteByte(0); // count + return SendAsync(ms, socket, sender); + } + + var players = Sync.Clients.GetClients().Where(b => !b.IsLocal).Select(b => (b.DisplayName, + (float?)(DateTime.Now - Sync.Players.TryGetIdentity((long)b.SteamUserId)?.LastLoginTime)?.TotalSeconds ?? + 0f)).ToArray(); + + var count = (byte)players.Length; + + // total + ms.WriteByte(count); + + for (byte i = 0; i < count; i++) + { + // i + ms.WriteByte(i); + + var (name, duration) = players[i]; + + // name + WriteUtf8String(ms, name); + + // score + ms.WriteNoAlloc(0U); + + // duration + ms.WriteNoAlloc(duration); + } + + return SendAsync(ms, socket, sender); + } + + private static Task HandleInfoRequestAsync(Socket socket, EndPoint sender) + { + if (Sync.Players is null) + return Task.CompletedTask; + + Debug.WriteLine($"info request from {sender}"); + using var ms = new MemoryStream(); + + var mp = MyMultiplayer.Static; + + // header + ms.WriteNoAlloc(0xFFFFFFFF); + ms.WriteByte(0x49); + + // protocol + ms.WriteByte(0x11); + + var maintenanceEnabled = MaintenanceEnabled; + + // name + WriteUtf8String(ms, mp.HostName); + + if (maintenanceEnabled) + { + var config = Torch.Managers.GetManager().Configuration; + var formatter = Torch.Managers.GetManager().Formatter; + + if (config.GetValue(ConfigKeys.EnableWorldMessage)) + { + var randomItem = config.GetSection(ConfigKeys.WorldMessage).GetChildren().Select(b => b.Value!).ToArray() + .GetRandomItem(); + var schedule = Torch.CurrentSession.Managers.GetManager().CurrentSchedule; + + // map + WriteUtf8String(ms, schedule.EndTime.HasValue ? formatter.Format(randomItem, schedule) : randomItem); + } + else + { + // map + WriteUtf8String(ms, mp.WorldName); + } + } + else + { + // map + WriteUtf8String(ms, mp.WorldName); + } + + // folder + WriteUtf8String(ms, "Space Engineers"); + + // game full name + WriteUtf8String(ms, "Space Engineers"); + + // app id + ms.WriteNoAlloc((short)0); + + // players + ms.WriteByte(maintenanceEnabled ? default : (byte)(Sync.Clients.Count - 1)); + + // max players + ms.WriteByte((byte)(maintenanceEnabled ? 0x00 : mp.MaxPlayers)); + + // bots + ms.WriteByte(0x00); + + // server type + ms.WriteByte((byte)'d'); + + // env + ms.WriteByte((byte)'w'); + + // visibility + ms.WriteByte(0x00); + + // vac + ms.WriteByte(0x01); + + // version + WriteUtf8String(ms, MyFinalBuildConstants.APP_VERSION.Version.ToString()); + + // edf (GameID SteamID Keywords Port) + ms.WriteByte(177); + + // edf port + ms.WriteNoAlloc((short)((IPEndPoint)socket.LocalEndPoint).Port); + + // edf steam id + ms.WriteNoAlloc(Sync.MyId); + + // edf keywords + var gameMode = mp.GameMode is MyGameModeEnum.Survival + ? $"S{mp.InventoryMultiplier}-{mp.BlocksInventoryMultiplier}-{mp.AssemblerMultiplier}-{mp.RefineryMultiplier}" + : "C"; + WriteUtf8String( + ms, + $"groupId{MySandboxGame.ConfigDedicated.GroupID} version{MyFinalBuildConstants.APP_VERSION} datahasheRRN1/jJ7J2ZlR7GB1D5PDzn0sQ= mods{mp.ModCount} gamemode{gameMode} view{mp.SyncDistance}"); + + // edf game id + ms.WriteNoAlloc((ulong)244850); + + return SendAsync(ms, socket, sender); + } + + private static async Task SendAsync(MemoryStream ms, Socket socket, EndPoint sender) + { + Debug.WriteLine(string.Join(" ", ms.GetBuffer().Take((int)ms.Length).Select(b => b.ToString("X")))); + + const int packetSize = 1200; + + if (ms.Length < packetSize) + { + await socket.SendToAsync(new(ms.GetBuffer(), 0, (int)ms.Length), SocketFlags.None, sender); + return; + } + + var id = (uint)MyRandom.Instance.Next(); + id &= ~(1 << 31); + + var msLength = ms.Length - 4; + for (var i = 0; i < msLength; i += packetSize) + { + var length = Math.Min(packetSize, (int)msLength - i); + + var buffer = new byte[length + 10]; + + // header + Unsafe.WriteUnaligned(ref buffer.AsSpan(0, 4).GetPinnableReference(), 0xFFFFFFFE); + + // id + Unsafe.WriteUnaligned(ref buffer.AsSpan(4, 4).GetPinnableReference(), id); + + // total + buffer[8] = (byte)Math.Ceiling((float)msLength / packetSize); + + // number + buffer[9] = (byte)(i / packetSize); + + ms.GetBuffer().AsSpan(i + 4, length).CopyTo(buffer.AsSpan(10)); + + await socket.SendToAsync(new(buffer), SocketFlags.None, sender); + } + } + + private static unsafe void WriteUtf8String(Stream stream, string str) + { + if (string.IsNullOrEmpty(str)) + { + stream.WriteByte(0x00); + return; + } + + var chars = str.AsSpan(); + Span bytes = stackalloc byte[Encoding.UTF8.GetByteCount(str)]; + + var length = Encoding.UTF8.GetBytes((char*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(chars)), + chars.Length, + (byte*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(bytes)), + bytes.Length); + + stream.WriteNoAlloc((byte*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(bytes)), 0, length); + stream.WriteByte(0x00); + } +} \ No newline at end of file diff --git a/Maintenance/Plugin.cs b/Maintenance/Plugin.cs new file mode 100644 index 0000000..d24220d --- /dev/null +++ b/Maintenance/Plugin.cs @@ -0,0 +1,21 @@ +using System.IO; +using Maintenance.Managers; +using Torch; +using Torch.API; +using Torch.API.Managers; +using Torch.API.Session; + +namespace Maintenance; + +public class Plugin : TorchPluginBase +{ + public override void Init(ITorchBase torch) + { + var storagePath = Directory.CreateDirectory(Path.Combine(StoragePath, "maintenance")).FullName; + + torch.Managers.AddManager(new ConfigManager(storagePath)); + torch.Managers.AddManager(new LanguageManager(storagePath)); + torch.Managers.GetManager().AddFactory(s => new MaintenanceManager(s.Torch)); + torch.Managers.GetManager().AddFactory(_ => new MaintenanceScheduleManager(storagePath)); + } +} \ No newline at end of file diff --git a/Maintenance/Resources/config.yml b/Maintenance/Resources/config.yml new file mode 100644 index 0000000..e1a3e9b --- /dev/null +++ b/Maintenance/Resources/config.yml @@ -0,0 +1,32 @@ +# Enables maintenance mode. +maintenance-enabled: false + +# Any extra commands inside the arrays will be executed when maintenance is enabled/disabled. +# Example: commands-on-maintenance-enable: ["say hello!", "stop"] +commands-on-maintenance-enable: [] +commands-on-maintenance-disable: [] + +# If set to true, the world name for the servers list from this pool will be chosen. +# If you put in multiple entries, one of them will be chosen randomly on every ping. +# If running an endtimer, the time left can be displayed by including {duration} in the message. +# Additionally you can set custom timestamp format with {duration:hh\\:mm\\:\\ss}. See all available formats at https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-timespan-format-strings +enable-world-message: true +world-message: +# - "[MAINTENANCE]" +# - "Back in {duration:hh\\:mm}" + +# Set this to false if you do not want players to be kicked when you enable maintenance (new connections will still be blocked). +# ... I don't know why you would want that, but you can disable it. :p +kick-online-players: true + +# Changes the language of command feedback/messages. +# If you find missing translations or want to contribute a new language file, you are very welcome to message me on my Discord server! :) +# Currently available are: en (English) +language: en + +# If enabled and the server is restarted while running an endtimer, the timer will be continued after the restart. +# If the timer ends while the server is offline, maintenance will be disabled as soon as the server starts again. +continue-endtimer-after-restart: true + +# If using the timer command: In what intervals before enabling/disabling maintenance there will be a broadcast. +timer-broadcast-for-seconds: [1200, 900, 600, 300, 120, 60, 30, 20, 10, 5, 4, 3, 2, 1] \ No newline at end of file diff --git a/Maintenance/Resources/translations/en.yml b/Maintenance/Resources/translations/en.yml new file mode 100644 index 0000000..0b0e4b5 --- /dev/null +++ b/Maintenance/Resources/translations/en.yml @@ -0,0 +1,13 @@ +maintenanceActivated: "Maintenance mode is now activated." +maintenanceDeactivated: "Maintenance mode is now deactivated." +alreadyEnabled: "Maintenance is already enabled!" +alreadyDisabled: "Maintenance is already disabled!" +endtimerBroadcast: "Maintenance mode will be disabled in {duration}." +endtimerStarted: "Started timer: Maintenance mode will be deactivated in {duration}." +starttimerBroadcast: "Maintenance mode will be enabled in {time}." +starttimerStarted: "Started timer: Maintenance mode will be activated in {time}." +scheduletimerBroadcast: "Maintenance mode will be enabled in {time} and will last for {duration}." +timerAlreadyRunning: "There is already a timer scheduled!" +timerNotRunning: "There is currently no running timer." +timerCancelled: "The current timer has been disabled." +timerTooLong: "The number has to be less than 40320 (28 days)!" \ No newline at end of file diff --git a/Maintenance/libs/Steamworks.NET.dll b/Maintenance/libs/Steamworks.NET.dll new file mode 100644 index 0000000000000000000000000000000000000000..387de02c2a5c026dd25a909db5a0a5f8df59f4fa GIT binary patch literal 374272 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 Fe*hcfz~}$~ literal 0 HcmV?d00001 diff --git a/Maintenance/manifest.xml b/Maintenance/manifest.xml new file mode 100644 index 0000000..526796c --- /dev/null +++ b/Maintenance/manifest.xml @@ -0,0 +1,6 @@ + + + Maintenance + 42AF9955-AAA7-442F-9BF4-AAC4FA4A923F + v1.0.0 + \ No newline at end of file diff --git a/Maintenance/packages.lock.json b/Maintenance/packages.lock.json new file mode 100644 index 0000000..a741a67 --- /dev/null +++ b/Maintenance/packages.lock.json @@ -0,0 +1,438 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.8": { + "Alexinea.Extensions.Configuration.Yaml": { + "type": "Direct", + "requested": "[7.0.0, )", + "resolved": "7.0.0", + "contentHash": "gIeecqFF2YeDrGxRulJvyYCRbQcvmowNnQt5qDg2FUS3bzjtwgahHFioD+yWFGxBYR/vWGbP3h6PGoCUxOzTqA==", + "dependencies": { + "Microsoft.Extensions.Configuration": "7.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "7.0.0", + "YamlDotNet": "12.1.0" + } + }, + "LuckPerms.Torch.Api": { + "type": "Direct", + "requested": "[5.4.0, )", + "resolved": "5.4.0", + "contentHash": "jwmRs6dJupqqj2V5bf1vMleQIFqKxhsaLxiNvTFFrzsgFjPJf3TDMEe68Qf62/J1Z2gQKvVbSw/LCGCn+ZOWmw==", + "dependencies": { + "IKVM.Maven.Sdk": "1.6.1", + "LuckPerms.Torch.Utils": "1.0.0", + "Torch.Loader": "1.0.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "mBMoXLsr5s1y2zOHWmKsE9veDcx8h1x/c3rz4baEdQKTeDcmQAPNbB54Pi/lhFO3K431eEq6PFbMgLaa6PHFfA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + } + }, + "Microsoft.Extensions.Configuration.FileExtensions": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "McP+Lz/EKwvtCv48z0YImw+L1gi1gy5rHhNaNIY2CrjloV+XY8gydT8DjMR6zWeL13AFK+DioVpppwAuO1Gi1w==", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.0.3, )", + "resolved": "1.0.3", + "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" + } + }, + "PolySharp": { + "type": "Direct", + "requested": "[1.8.1, )", + "resolved": "1.8.1", + "contentHash": "T60CnqUsOC8JT2O9ixmBVBoA+0n4FIkRGwK4IuuPgncsJYd5m44s/IaNMQsCzZ7nxmPHa6A9DEaXSi1/ENx8iA==" + }, + "SmartFormat": { + "type": "Direct", + "requested": "[3.3.0, )", + "resolved": "3.3.0", + "contentHash": "JN19FJuWZwW3G3euSQNTDLAr5wI8ok/VDcBfEN88cZPvzCQMPdyS9s4/fQlEuupXH+IV0wBEbodHVS51t2RIDQ==", + "dependencies": { + "System.Memory": "4.5.5", + "System.ValueTuple": "4.5.0" + } + }, + "Torch.Server.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.3.1.260-master, )", + "resolved": "1.3.1.260-master", + "contentHash": "p9fHBwPI2BZDLO2PiSPvJxHQ7lksYf/20BZ0uUxMlSnJk/AvFUpjT6CMxJWow4UuAFG+NcPEI4VhxZ5x9jhGGA==", + "dependencies": { + "NLog": "4.4.12", + "Newtonsoft.Json": "12.0.2", + "SpaceEngineersDedicated.ReferenceAssemblies": "1.203.505" + } + }, + "IKVM": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "CEgKzDhnBq5XoCt0ABREfIn6k0TqF2go7zFAiaI9cjXesPezfquVJRPPn9fl+hO90fOo7eCDnkgDn5B8DoZe1w==", + "dependencies": { + "IKVM.Image": "8.7.1", + "IKVM.MSBuild": "8.7.1", + "Mono.Posix": "7.1.0-final.1.21458.1", + "Mono.Unix": "7.1.0-final.1.21458.1", + "System.Buffers": "4.5.1", + "System.IO.Pipelines": "6.0.3", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", + "System.Text.Json": "6.0.6", + "System.ValueTuple": "4.5.0" + } + }, + "IKVM.Image": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "RqwuWeb9cwqmcTKREb71odXvv5NO5+Zvo3SSG2CW1XumqCwCkm7sFdzulTYHEQcVs8GjDUlvLIEnrb6QLsqb7w==", + "dependencies": { + "IKVM.Image.runtime.linux-arm": "8.7.1", + "IKVM.Image.runtime.linux-arm64": "8.7.1", + "IKVM.Image.runtime.linux-musl-arm": "8.7.1", + "IKVM.Image.runtime.linux-musl-arm64": "8.7.1", + "IKVM.Image.runtime.linux-musl-x64": "8.7.1", + "IKVM.Image.runtime.linux-x64": "8.7.1", + "IKVM.Image.runtime.osx-arm64": "8.7.1", + "IKVM.Image.runtime.osx-x64": "8.7.1", + "IKVM.Image.runtime.win-arm64": "8.7.1", + "IKVM.Image.runtime.win-x64": "8.7.1", + "IKVM.Image.runtime.win-x86": "8.7.1" + } + }, + "IKVM.Image.runtime.linux-arm": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "f12l6AKUfM8Q1Dv9ZbkW39Ok2URq8ar9buhvXFtCeDbXxi5euYyYfR/eehM3nSb0wTo3cyvGxqM/G5M/jI9WUg==" + }, + "IKVM.Image.runtime.linux-arm64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "o1URwAXZjfgdkS6R12ZA/l2oKhk5j9f98YjUiQfhzgt63ksVHjz3f5sRELDrsHUCAWNT2GR3ahlPHABuD3WT4A==" + }, + "IKVM.Image.runtime.linux-musl-arm": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "+3ijUii2jwsl0KeZZ3nkiwKkie0qpskLerARjrKdKQ3ylDxVaSwxtQWGJT7Eiu1YpKbyKYXOMptHE1IQqO4Zkg==" + }, + "IKVM.Image.runtime.linux-musl-arm64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "9cXMSPAa8ODf99vuce0wnFV9urYy4iVjAp+pE4ieejqp/Jk2NCtKr7NJs+Q6shs3nsOl6A2aJnxZV5FGnd/wCg==" + }, + "IKVM.Image.runtime.linux-musl-x64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "K3DO1q2kGYnnyFNZ3K27K3Q19yl5U+at4le9aA9O/Or3zpXi2c1GOFaA+hrVB7DzIrvxXGCR6qKGzM9K8goYmg==" + }, + "IKVM.Image.runtime.linux-x64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "bG9Sara5Ft7JTf8iMS9RUea4Foi05Vdr7t7VA37SeloTTxlFmNUYSafo+X1U9eOYuv8XUueveid07E+KzMTSGQ==" + }, + "IKVM.Image.runtime.osx-arm64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "vShR5pUZJIsTsc1lUzsNdBINGjPZ20RrUIunQe9W/rCW63El3uKZq2Rboa2E50YXNG3BgmMaCEUmel3nqS8DQw==" + }, + "IKVM.Image.runtime.osx-x64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "E/IFd3Eqj/6vxk1EqRBD5lpZGwI3qx/Uocqnt98UGr01HPO2ZvNs3Y2kmSmz3hA/xwDrjObCVrdYWKsfzoIwTw==" + }, + "IKVM.Image.runtime.win-arm64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "oSvRLYy3iWgdJyFkbmNr0pl4x9/1zbXvavybpOzTFa7xSg3dfAcysUi8nHgjNpd94z8udrOcKEbm8GQ5DKAdRg==" + }, + "IKVM.Image.runtime.win-x64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "Od5ynm5wVyzV85CQ5VfUmQAvbrEKjRxEIR1Id2tHugVGPnL3cviEezbokg+tkByIubIx1mAjJ4HGqtcNqTDpmA==" + }, + "IKVM.Image.runtime.win-x86": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "yBXBH2Ad8UjJ6ZhH6eqJyya8a22Et5lAUNQ0S8Vtexmay+oby3880bzvUkQ0rRKF1OceJxm6u3bLC58hnh16eQ==" + }, + "IKVM.Maven.Sdk": { + "type": "Transitive", + "resolved": "1.6.1", + "contentHash": "Gb8bB12uYQGxiFggrT540Sy/71xYQr+8JSrauG5OlKiIcQhh6k3vI7I7hLQAWdd+bzdFYO7rs/BxdPzzV+j3Fg==", + "dependencies": { + "IKVM": "8.7.1" + } + }, + "IKVM.MSBuild": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "gkSV0y7mZ25PgXw9cnTnVFhE/oa9XSxcPkXnYS2I4XQ+moKkPeuZokUJaFy/qN1hcJIL8s9UKo6kUNwjjEFLBQ==", + "dependencies": { + "IKVM.MSBuild.Tools": "8.7.1" + } + }, + "IKVM.MSBuild.Tools": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "MJzc2ymPe27pY3Cz+s6yvr67RuVnAsFKuD0hSdN2wnERpz/K2wl9ZSaJ/egRJRrfs/0R2qqYo4Eer6H9Mcc4ag==", + "dependencies": { + "IKVM.MSBuild.Tools.runtime.linux-arm": "8.7.1", + "IKVM.MSBuild.Tools.runtime.linux-arm64": "8.7.1", + "IKVM.MSBuild.Tools.runtime.linux-x64": "8.7.1", + "IKVM.MSBuild.Tools.runtime.osx-arm64": "8.7.1", + "IKVM.MSBuild.Tools.runtime.osx-x64": "8.7.1", + "IKVM.MSBuild.Tools.runtime.win-arm64": "8.7.1", + "IKVM.MSBuild.Tools.runtime.win-x64": "8.7.1" + } + }, + "IKVM.MSBuild.Tools.runtime.linux-arm": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "2X2meYtplgzEJpZEHpEdrnhbyzKlJmfkOfKMenMM1W707JQ2SsWTDHlWw7PwY3KzPKoDbqNWb69rHS9a99TnUQ==" + }, + "IKVM.MSBuild.Tools.runtime.linux-arm64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "BmhJBqbjn693fLo5G+YyXB7uDF11Ia5k1K7INk1zMYiBcfYZHJUEE29KZ5fvXgspjn6OEazgmOF/PxoxWTBmkQ==" + }, + "IKVM.MSBuild.Tools.runtime.linux-x64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "zBaGJoJ4pvf3uPNfxreHPGGhQFWUqiLyGcDurTuPGix29T8c3TeCU4z5JAJkhGf7hat/s98pSzqt9T5uAahSDg==" + }, + "IKVM.MSBuild.Tools.runtime.osx-arm64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "XCG8udNMf7WjfUth7K1x63vP/Kra+4p/WByzMHNvLoM47x2XVX8OMyw1N6SGah+cHtsKL8VKkLdlct/b2Cpxbw==" + }, + "IKVM.MSBuild.Tools.runtime.osx-x64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "boMF3LCpTrkbi2emU263gVHz/TYCgtCVhDMLXTojIaJ8guA5q/nuFufhYljpjECzxzVg3IUIX6jNBu4PEjC+HQ==" + }, + "IKVM.MSBuild.Tools.runtime.win-arm64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "TRssQQBZbeXBKDtF8yo5bLk9mXmnvN1MUucLgP+t+6araaYUohsVJieMoDiJhcVqWgStv88+BHKLCexII/NUFw==" + }, + "IKVM.MSBuild.Tools.runtime.win-x64": { + "type": "Transitive", + "resolved": "8.7.1", + "contentHash": "tS4FAjGeZ0Gvaabb6Jy74Haw20kZu9w8AP9P+h27aYJm9udKqc+XFHRlifPOnXazVbbPOW1PkUtrk4TEsLYeRw==" + }, + "LuckPerms.Torch.Utils": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "lEapa9SvIZDOaD4/vJ05Ire5Ixl3lSLhg6LlEvArVoC1rBGGriNV/9h5rFwS+fVpJOvkUWvwuX6HPO7rfspDgA==", + "dependencies": { + "IKVM": "8.7.1" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.FileProviders.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.FileProviders.Physical": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", + "dependencies": { + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.FileSystemGlobbing": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies.net48": { + "type": "Transitive", + "resolved": "1.0.3", + "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" + }, + "Mono.Posix": { + "type": "Transitive", + "resolved": "7.1.0-final.1.21458.1", + "contentHash": "xhil/0zRkA2MrkyMZXC3dPSDWOhq6YD0vYGl1VnBbjsEZfLQCu7+mJZ/ftnOd0r4qmeHVeNuW6Pt33NoxO671A==", + "dependencies": { + "Mono.Unix": "7.1.0-final.1.21458.1" + } + }, + "Mono.Unix": { + "type": "Transitive", + "resolved": "7.1.0-final.1.21458.1", + "contentHash": "Rhxz4A7By8Q0wEgDqR+mioDsYXGrcYMYPiWE9bSaUKMpG8yAGArhetEQV5Ms6KhKCLdQTlPYLBKPZYoKbAvT/g==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "12.0.2", + "contentHash": "rTK0s2EKlfHsQsH6Yx2smvcTCeyoDNgCW7FEYyV01drPlh2T243PR2DiDXqtC5N4GDm4Ma/lkxfW5a/4793vbA==" + }, + "NLog": { + "type": "Transitive", + "resolved": "4.4.12", + "contentHash": "fODew3BFT2XhAuqhGo2ZYT9OJE0ciGEBfvKXOmAAvaDsP/3ROIf083p8QUnmwKKw4jCkVW06ObX6gn/eFi2Skg==" + }, + "protobuf-net": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "kTGOK0E87473sOImOjgZOnz3kTC2aMLffoRWQLYNuBLJnwNNmjanF9IkevZ9Q7yYLeABQfcF3BpeepuMntMVNw==" + }, + "SpaceEngineersDedicated.ReferenceAssemblies": { + "type": "Transitive", + "resolved": "1.203.505", + "contentHash": "Wq4GIn2ilHyFdLdVKdVhC7iGQ+1FdVsChKY6hyQluFYSSV7oe8bDc9aTZC8XgxNMKCZoQBSVyaYHxQD+74BySQ==", + "dependencies": { + "protobuf-net": "1.0.0" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "6.0.3", + "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.6", + "contentHash": "GZ+62pLOr544jwSvyXv5ezSfzlFBTjLuPhgOS2dnKuknAA8dPNUGXLKTHf9XdsudU9JpbtweXnE4oEiKEB2T1Q==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.ValueTuple": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" + }, + "Torch.Loader": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "HkuAujKa9IqPPqoA1205teUPBxuNOC9z0xZJkrMlFT0htH02X0ieZ5qh4onwyV10qVKiRBCSLkc5tA8lp1l5ig==" + }, + "YamlDotNet": { + "type": "Transitive", + "resolved": "12.1.0", + "contentHash": "iP6tzi3DJ16wyTtEClbG8W6epvc+MvKSBdNcpllzhal40C94WzjWxF2aszcoOSjbESsWXsLY+NoRewgfo8ah6Q==" + } + } + } +} \ No newline at end of file diff --git a/TorchPlugins.sln b/TorchPlugins.sln index c9a2615..2963931 100644 --- a/TorchPlugins.sln +++ b/TorchPlugins.sln @@ -27,6 +27,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libs", "libs", "{862C7244-2 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "heh", "heh\heh.csproj", "{927CB303-E699-4716-A62E-232AE1125159}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maintenance", "Maintenance\Maintenance.csproj", "{66F3BF72-D663-44E0-B54C-5193E39839B9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LuckPerms.Torch.Utils", "LuckPerms.Torch.Utils\LuckPerms.Torch.Utils.csproj", "{615FD610-A3E6-457F-B8B9-C9D1235A4B2C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -65,6 +69,14 @@ Global {927CB303-E699-4716-A62E-232AE1125159}.Debug|Any CPU.Build.0 = Debug|Any CPU {927CB303-E699-4716-A62E-232AE1125159}.Release|Any CPU.ActiveCfg = Release|Any CPU {927CB303-E699-4716-A62E-232AE1125159}.Release|Any CPU.Build.0 = Release|Any CPU + {66F3BF72-D663-44E0-B54C-5193E39839B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {66F3BF72-D663-44E0-B54C-5193E39839B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {66F3BF72-D663-44E0-B54C-5193E39839B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {66F3BF72-D663-44E0-B54C-5193E39839B9}.Release|Any CPU.Build.0 = Release|Any CPU + {615FD610-A3E6-457F-B8B9-C9D1235A4B2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {615FD610-A3E6-457F-B8B9-C9D1235A4B2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {615FD610-A3E6-457F-B8B9-C9D1235A4B2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {615FD610-A3E6-457F-B8B9-C9D1235A4B2C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {AD9B7D1E-386A-4EF2-B475-BCB770537035} = {06CD2354-307D-4A1C-B46B-1D9EB3AAE742} @@ -75,5 +87,7 @@ Global {B1A35416-6CFB-4AE7-A2F2-818E8F7A8C13} = {557A4A51-B8ED-4CA0-866D-D18D219129F3} {8F9D910F-FFE6-4010-921F-5872ACF638BB} = {557A4A51-B8ED-4CA0-866D-D18D219129F3} {927CB303-E699-4716-A62E-232AE1125159} = {862C7244-258E-4BFD-B271-9AA2D3FBE916} + {66F3BF72-D663-44E0-B54C-5193E39839B9} = {2C911BD8-8B11-460E-AB7E-16552949A6FC} + {615FD610-A3E6-457F-B8B9-C9D1235A4B2C} = {862C7244-258E-4BFD-B271-9AA2D3FBE916} EndGlobalSection EndGlobal diff --git a/heh/heh.csproj b/heh/heh.csproj index 3954188..4025015 100644 --- a/heh/heh.csproj +++ b/heh/heh.csproj @@ -16,6 +16,6 @@ - +