From d2a59980b0fd6ca6b6232540c1816402709e571e Mon Sep 17 00:00:00 2001 From: Daemon Date: Fri, 19 Mar 2021 19:10:44 +0000 Subject: [PATCH 1/3] Changed use of `.Duplicate()` method to `.Cast()` --- Unify/Patches/Regions.cs | 8 ++++---- build/Unify-2021.3.5s.dll | Bin 7168 -> 7168 bytes 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Unify/Patches/Regions.cs b/Unify/Patches/Regions.cs index 9495c87..898221f 100644 --- a/Unify/Patches/Regions.cs +++ b/Unify/Patches/Regions.cs @@ -14,11 +14,11 @@ namespace Unify.Patches private static IRegionInfo[] _newRegions = new IRegionInfo[] { new DnsRegionInfo("192.241.154.115", "skeld.net", StringNames.NoTranslation, "192.241.154.115") - .Duplicate(), + .Cast(), new DnsRegionInfo("localhost", "localhost", StringNames.NoTranslation, "127.0.0.1") - .Duplicate(), + .Cast(), new DnsRegionInfo("152.228.160.91", "matux.fr", StringNames.NoTranslation, "152.228.160.91") - .Duplicate() + .Cast() }; private static IRegionInfo[] _customRegions = MergeRegions(_newRegions, LoadCustomUserRegions()); @@ -55,7 +55,7 @@ namespace Unify.Patches IRegionInfo regionInfo = new DnsRegionInfo( regionIp.Value, regionName.Value, StringNames.NoTranslation, regionIp.Value) - .Duplicate(); + .Cast(); customRegions.Add(regionInfo); } diff --git a/build/Unify-2021.3.5s.dll b/build/Unify-2021.3.5s.dll index af12d72bab1f2166d9748988d894f9c1e4cb361b..4c4e01493562e8d866d0b3f0ea986b32561bfab8 100644 GIT binary patch delta 1454 zcmY+Ee@vBC7{|ZQd(L@*7lI2Hkl%6zz5L2RC_!NcIE-{tA|$f@xFR!&0)k5O$Gs#f z8|u1yiPp6hy4;90OYfGo@rPJZW2`~8g{`@$Ej63ra=EoyJ?|0MI(PST&i8qq^E~I* zy@B#T`D+7m&97=ccr=4<2H$I@A)Cmnc9#Mfw#O*4TgXed?LP9;j7^4Hjko}^XOmWk zw-`T@G=M^Tjm*3|*miHQPkM`&0#;`>BTsP9{Zx>*jK$s@MsjB^v!L!j%aYDq`;yGB zs#HME0brE-Y?H^0y)W!~erFH3eHjhxAhtC%qUb(=SAv`kP4(-!uVlT$u25bowtdP? zCH9NT>*vDUE(o5)EdjIQ1T4Hv88R7ea~vkVqKnc(x|&rc-WNf(w23KU;d?QwESzS$ zg#~6IqIpHJxK1N77S&7>pQtI3hOH7v!%^lkG+>Mw$4r9<@MDE`tk6Lwe&Gow9>okV z;u&OcikILNTQ4(Y8n)|1|L8l~!b?9*<4DHq!r6dLPR=ik ziyWCM97^K@`3`>MJbn`o7#rCQv5FmohQl$N|suWF_+om1N9fQvdG7yb}1l^*wz z3j^YotUv@59Mz#!6r!*-a06~M1P+tKMCryue9BFJ?w+C+K8ibd8u2)$?l5bZTe6)Z zha=<6c253;R+G31AFKAezLb!3RKHfilu_BwYEG+Ryd@l!&1Vb*@t|rW!sCmoL48dE zk^I>F?9>wl-e3s~ccClgfdV@HFOe(uz@XaDj&`w z-E1I-Pf{*V_Mrmj)NzW3i-xEOtHl|rfQQ0#nY|w~Kcfkb{2i0bYigRVV_MB|HbYL( z9=u9F(Jgq?RVvf9nxkkF{Y{mq7LycDA!!+@%seBXIc$_Lxg_&bqn_D`2F(^tpXM&j zZp}TKeH60iBQw{nr4zVNZ-DMXj&L&UZZ)-tTH9SI&ncWe1nk)}H^aZmDPZ;cvnV@pH6X6%(=` zElQ{o*@%sCkzphy?58ZYMkXZ$`Y0iA$ewqXP|$WKhUlbyCh=VSP!cfCf3)}76}vkr e-Iys2dJ^qZNtNN)bwn`%fkyu3#qx!Qj!y|0*N(r@2KJ(?(@?v4V*I&9VIE{f0xdYFbaD>nY;S(2#G zpUdjoYZXwj3pmVewu}4iJD%u!?4j*oJK_a;h<%;y$hryOm7ro%XUhg|3s`T_jVeO7 z>bT0KI{l=IB)Kr#3Bi-t0+>D!npNARi;bS-K`C+evGR zM`j6!SLk&)j?YYnQfrM!x^T$~bKn`nR}5Dhb{KwX=w>?SGw6VeIzJzN6c>~-{bBN9 zr}$nr!VLvSbsOb@2b)tDk&9SrH#rnC7q{{Gb}}EJF1^(42@a~?;YU5Qt<1^4JL^xS zo7|z~sEl*^5#vl39Filf7K}QGy~0ste1LA`% zBM|uThWgkjXG?|roGc8fFr2D|cuT~S+>FWu@4<0ZBQ18I9((C&UhSydg=Xe{w3sn5 z<~hWf7cq>@%A#zXPyq@um(ei#R6P}A72QdbcpjVBvq!}-1?7s7!~3a{=f=^9N%a!> z;iChTtVNYLPK^jthQ8+TyUYyD@z5(c%bZu|IMHP>NBww~7U(>D>RVc6$`IX4m#GPL z;w*V+R9+`Pv)BqVU$m;3anv(US;E3uXi zGuP7$vz0z#w$pWHH`!t(9;7AAM<~kNPV1Nh)XIF0T6K%3Xk!gkT66HC7iCmI()tVA z$l{9t|L^wjRS;j3mr7|Zy+B9lJpDm3pc8cSRQ@g) z+iITe|9ulWYDZ|R?zT&)IWuIRq|AowEU9C@w#*y8Uh*xQy=qUW^477?&oc#?=`ERH zV1Wun8FI3HWLbHEekw&N+R9P57@__$3;7?C-aJ| fiD)_;)bn{wx~;G-laqf Date: Fri, 19 Mar 2021 19:26:51 +0000 Subject: [PATCH 2/3] Modified modded handshake disable patch Stopped reactor handshake option getting set true automatically --- Unify/Patches/Regions.cs | 3 +++ Unify/Unify.cs | 2 ++ build/Unify-2021.3.5s.dll | Bin 7168 -> 7680 bytes 3 files changed, 5 insertions(+) diff --git a/Unify/Patches/Regions.cs b/Unify/Patches/Regions.cs index 898221f..63c5024 100644 --- a/Unify/Patches/Regions.cs +++ b/Unify/Patches/Regions.cs @@ -70,6 +70,7 @@ namespace Unify.Patches [HarmonyBefore(new string[] { "gg.reactor.api" })] public static void Prefix() { + if (UnifyPlugin.HandshakeDisabled) return; if (!UnifyPlugin.NormalHandshake.Contains(ServerManager.Instance.CurrentRegion.Name)) return; PluginSingleton.Instance.ModdedHandshake.Value = false; @@ -77,6 +78,8 @@ namespace Unify.Patches public static void Postfix() { + if (UnifyPlugin.HandshakeDisabled) return; + PluginSingleton.Instance.ModdedHandshake.Value = true; } } diff --git a/Unify/Unify.cs b/Unify/Unify.cs index 0fe878a..ef7d62f 100644 --- a/Unify/Unify.cs +++ b/Unify/Unify.cs @@ -20,6 +20,8 @@ namespace Unify public static readonly ConfigFile ConfigFile = new ConfigFile(Path.Combine(Paths.ConfigPath, $"{UnifyPlugin.Id}.cfg"), true); + + public static readonly bool HandshakeDisabled = !PluginSingleton.Instance.ModdedHandshake.Value; public static readonly string[] NormalHandshake = new string[] {"North America", "Europe", "Asia", "skeld.net"}; diff --git a/build/Unify-2021.3.5s.dll b/build/Unify-2021.3.5s.dll index 4c4e01493562e8d866d0b3f0ea986b32561bfab8..ba972cac3ecd32c80e0e5b737cbaa3defc99d9f8 100644 GIT binary patch delta 2336 zcmY+Ge{ft?7018l-TU6|zND|&x5*}(CUG}O$tEc^rNOpRrgmCO1GErh7}jEkNU9BO zy0Sr}QzyHzf}j+-^PpCpj#`bDjA+Lw3=T8uj4)X1lwp*i;|xQmI#?NLQ5=LnTEF*h zD)nafbKm*ibMLw5{&<_p>dM-K4|UEz8G9WI<#jl@IvD`c6ug?)F<70uEjYOnxWxz` z<409n zeG})Z>CX-hu464gGQXIPc}DQ3*-z)`n1N< zy5tqJ6wI_@*w0y*k~v_KSeh=KGx5q*(hg|t55_yXw7HZJdKlCk+WB;)LrZCeak%Aw z4#vE~p~Ah<(*}9&o@W=jVwSw`m1(m{%cO65t=S>F;>8@NTI@9WFune(rSF5iO&7aO z9-qD3ZJ{OlgZ}WEjpoQq^USa|A-YEHEluqC+?2`n)jD9Di`g|gg0+hPZaTVd7#-Tk z`sV0bccmnv33pBTMMWo;5U16*;p1WH)@dy9p5tMEMNViRUG8bu!_QR}0aoLf4sbyo zqrMZ}+QX!JS^4;jI_>&+ik?3HL#{%Ka|-ab82=H{!*AS|RV%jhG_>MzvJ=CYE3;aR zIZ9juTxA=svQ8fU$qpWF#7msYeK28e*4?@lciSOi4A6<^Wsa@W@(=?EJ=1tbo+FPa zlfbN)5l%TL*qT#@_0BW;JNP?C@UY4mQDqNt^-(rNj^WQNZ?&AXJa3sL%_@D#fPu_k z11_q#=i28PX~04Cp8h!EyvN46*IGUjxUKRgQW&lr7Q;53!biBuqvX3Nlv(YOJD7b! z?nDw#xGj>zjpVIa6Y9Zuvp2~Qw_EE4yoGUEch}llj%s6l#ah*t<9e3X1#2C`50tT1 zn`K26*Sj+!*u7vC-1DN4<%uh^(RNh$DNW!I&bYHs`0Il8H*1-kui=6_IOOJF!e;O* zWq4GVn4?j8F{i$W6*waMn8;B*!{}B=$GysSFKZy%UT;| z7%Sz3oMY=Lc@KYdU!~{2aF)E_p5r*a{vFg5{XygylV!do5=Sqx13R@=h$rb#la6jt%ld@+LV+j>w(s_9|&5oXI0^Z?&Dwj)O{u#+ubImds bz0kCIKHK_|%m?ZBm6IKuPqvOkzjM00sa delta 2179 zcmY+FZEPGz8OQ(6%%YFwvj-K2;pO=`CUVOp!W z4P4R$Xo>KhN!kVyM?GztQWptRH6n@-v{>q!@}VguMNvQr?NFfqKf1(vXV^YDF|AUBM@5s`9)Wqwh+OWTTg*OIoAL($R8(j<(&wTfxJn z4q&bUkf<+vvuRiR{pfDh88WL;MFRxgK)TmpQ}i8G(5*AE=qrXE;Uzz>is(Pmo# z6n+W09`%CX0IiP+LxzH;r_HNVtGg{>ln159dL%gmB! zwQ1!_-)ZvX!zO>Pi=u#@=PNOmHDysGe78UqyHwpTPucZ!3sky}QA>HE$Vz%vN_UYP z6zuOLvZZBY_okXA`ny>@FvyXeQ@}|+^IY=IZTlXX{OW^yZ8^V801t3$I=64b3T_NH z0G+pQAKA#~V6@Zgmv~h51}5InbYcr}Q9p+O-;kWiBJH2%yZ38((*#)RUG#kXSXZf; z(C2i3-|LHBfD_aQ_?YZLf)yn3q0E^ihDaZ;dFOO1c5pXZaU>e@o61MnzrksI{FzoC zcj5vwei=FXe;qdRMw2tG_>voSjqJd@oMPTxQlXE~KZ&)lSw7Hntn-ANMix(NTWusZ z=G*E`dbVgwqkd|BfIl*hkJT&GW}2aIq~Wl#Jmq+Y0r}2!Fj^kbLAT)kaliqWZJ-yxBJB6cO0XA(5UeT7brd;CetZF%)*Za_i z!}2KSFl(kTM9yG@EMY5op4HEqE11TEo|1aJ;f2yjUN6)5rq?GqtdU#ghj<*fQ}e7h zj+e01-zt{($})}}#{hoj9hDRsqD0uJ78kek2w#dI_5JUQ`q-53vs)a17<>YbIM=~Y(b2UP88jfR* z7?u~v&2o<1Chw5Ab|nGo|KdFi5O)nb{F}6^R6|%?TdpJWkJRrb*kCy_rSLAIowH3C{m635QrKwfUNMdmLKAv2ZLN zz+)%QE1rO2B72p?^_iHL33oDTJQI#f(!m9@Iu9zD%q{5^WA*JwCfgBC>OhhlL~oO4 zG6PY`c-}}dnc8Dj9LM}=czIhP&!L@Mub>?!U{IY$vc5r-%7nRZF=#uOx-uJUoA97DmyrzZ2qTKANS9va(|U- GZ|py90b92K From ab57814ee34a4ac099a2e50d0c55203a114d26b8 Mon Sep 17 00:00:00 2001 From: Daemon Date: Fri, 19 Mar 2021 21:43:43 +0000 Subject: [PATCH 3/3] Added new `AddRegion()` method for external mods `AddRegion()` method allows mods to add new regions --- Unify/Patches/Regions.cs | 19 +++++++------------ Unify/Unify.cs | 21 ++++++++++++++++++++- build/Unify-2021.3.5s.dll | Bin 7680 -> 7680 bytes 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/Unify/Patches/Regions.cs b/Unify/Patches/Regions.cs index 63c5024..1dd98a8 100644 --- a/Unify/Patches/Regions.cs +++ b/Unify/Patches/Regions.cs @@ -11,6 +11,7 @@ namespace Unify.Patches { public static class RegionsPatch { + private static IRegionInfo[] _oldRegions = ServerManager.DefaultRegions; private static IRegionInfo[] _newRegions = new IRegionInfo[] { new DnsRegionInfo("192.241.154.115", "skeld.net", StringNames.NoTranslation, "192.241.154.115") @@ -20,26 +21,20 @@ namespace Unify.Patches new DnsRegionInfo("152.228.160.91", "matux.fr", StringNames.NoTranslation, "152.228.160.91") .Cast() }; - private static IRegionInfo[] _customRegions = MergeRegions(_newRegions, LoadCustomUserRegions()); - + + public static List ModRegions = new List(); + public static void Patch() { - IRegionInfo[] patchedRegions = MergeRegions(ServerManager.DefaultRegions, _customRegions); + IRegionInfo[] customRegions = UnifyPlugin.MergeRegions(_newRegions, ModRegions.ToArray()); + customRegions = UnifyPlugin.MergeRegions(customRegions, LoadCustomUserRegions()); + IRegionInfo[] patchedRegions = UnifyPlugin.MergeRegions(_oldRegions, customRegions); ServerManager.DefaultRegions = patchedRegions; ServerManager.Instance.AvailableRegions = patchedRegions; ServerManager.Instance.SaveServers(); } - private static IRegionInfo[] MergeRegions(IRegionInfo[] oldRegions, IRegionInfo[] newRegions) - { - IRegionInfo[] patchedRegions = new IRegionInfo[oldRegions.Length + newRegions.Length]; - Array.Copy(oldRegions, patchedRegions, oldRegions.Length); - Array.Copy(newRegions, 0, patchedRegions, oldRegions.Length, newRegions.Length); - - return patchedRegions; - } - private static IRegionInfo[] LoadCustomUserRegions() { List customRegions = new List(); diff --git a/Unify/Unify.cs b/Unify/Unify.cs index ef7d62f..55267ab 100644 --- a/Unify/Unify.cs +++ b/Unify/Unify.cs @@ -1,4 +1,5 @@ -using System.IO; +using System; +using System.IO; using BepInEx; using BepInEx.Configuration; using BepInEx.IL2CPP; @@ -34,5 +35,23 @@ namespace Unify Harmony.PatchAll(); } + + public static IRegionInfo[] MergeRegions(IRegionInfo[] oldRegions, IRegionInfo[] newRegions) + { + IRegionInfo[] patchedRegions = new IRegionInfo[oldRegions.Length + newRegions.Length]; + Array.Copy(oldRegions, patchedRegions, oldRegions.Length); + Array.Copy(newRegions, 0, patchedRegions, oldRegions.Length, newRegions.Length); + + return patchedRegions; + } + + public static void AddRegion(string name, string ip) + { + IRegionInfo newRegion = new DnsRegionInfo(ip, name, StringNames.NoTranslation, ip) + .Cast(); + + RegionsPatch.ModRegions.Add(newRegion); + RegionsPatch.Patch(); + } } } \ No newline at end of file diff --git a/build/Unify-2021.3.5s.dll b/build/Unify-2021.3.5s.dll index ba972cac3ecd32c80e0e5b737cbaa3defc99d9f8..18fe9cb9d5ffea18430ec5e65526a5dff83a87af 100644 GIT binary patch delta 2411 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 MXsG&-