From 6fd771e0cf8540301113f1cd1943fd4ca215bd6a Mon Sep 17 00:00:00 2001 From: linmeideli <2558527373@qq.com> Date: Tue, 6 Oct 2026 19:11:21 +0800 Subject: [PATCH] Update Plugins --- .gitignore | 1 + build.sh | 94 ++++++++++++ marketplace/Empostor.Plugin.Code.dll | Bin 23040 -> 22528 bytes .../Empostor.Plugins.DiscordWebhook.dll | Bin 45568 -> 49152 bytes .../Empostor.Plugins.FriendCodeValidator.dll | Bin 149504 -> 149504 bytes marketplace/Empostor.Plugins.Maintenance.dll | Bin 0 -> 19968 bytes marketplace/Empostor.Plugins.Monitor.dll | Bin 16896 -> 16896 bytes .../Empostor.Plugins.PlayerChannel.dll | Bin 15872 -> 15872 bytes marketplace/Empostor.Plugins.PlayerLog.dll | Bin 28672 -> 28160 bytes marketplace/Empostor.Plugins.Privacy.dll | Bin 18944 -> 18944 bytes marketplace/Empostor.Plugins.QqVerify.dll | Bin 17920 -> 17920 bytes marketplace/Empostor.Plugins.Titles.dll | Bin 23552 -> 23552 bytes marketplace/plugins.json | 25 +++- .../Empostor.Plugins.Maintenance.csproj | 13 ++ .../MaintenanceAdminExtension.cs | 78 ++++++++++ .../MaintenanceListener.cs | 102 +++++++++++++ .../MaintenancePlugin.cs | 24 +++ .../MaintenanceStartup.cs | 22 +++ .../MaintenanceStore.cs | 65 ++++++++ .../packages.lock.json | 140 ++++++++++++++++++ src/Empostor.sln | 15 ++ 21 files changed, 573 insertions(+), 6 deletions(-) create mode 100644 build.sh create mode 100644 marketplace/Empostor.Plugins.Maintenance.dll create mode 100644 src/Empostor.Plugins.Maintenance/Empostor.Plugins.Maintenance.csproj create mode 100644 src/Empostor.Plugins.Maintenance/MaintenanceAdminExtension.cs create mode 100644 src/Empostor.Plugins.Maintenance/MaintenanceListener.cs create mode 100644 src/Empostor.Plugins.Maintenance/MaintenancePlugin.cs create mode 100644 src/Empostor.Plugins.Maintenance/MaintenanceStartup.cs create mode 100644 src/Empostor.Plugins.Maintenance/MaintenanceStore.cs create mode 100644 src/Empostor.Plugins.Maintenance/packages.lock.json diff --git a/.gitignore b/.gitignore index 02a1e37..36fd0be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /.vscode /.claude /build +/release /.vs /tools diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..62fcb10 --- /dev/null +++ b/build.sh @@ -0,0 +1,94 @@ +#!/usr/bin/env bash +# Builds every server RID, packs the NuGet packages and collects the results in ./release. +# +# Server archives follow the build.cake naming so the artifacts match what CI publishes: +# Empostor-Server__.zip (win-x64) +# Empostor-Server__.tar.gz (linux-*, osx-x64) +# +# Note: Git Bash here has no `zip` binary, only `unzip`, so the win-x64 zip is produced by the +# small dotnet helper in tools/zipdir. tar handles the .tar.gz side natively. +set -euo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +OUT="$ROOT/release" +SERVER_PROJ="$ROOT/src/Empostor.Server/Empostor.Server.csproj" +API_PROJ="$ROOT/src/Empostor.Api/Empostor.Api.csproj" +SERVER_BIN="$ROOT/src/Empostor.Server/bin/Release/net8.0" +API_BIN="$ROOT/src/Empostor.Api/bin/Release" + +# Version comes from the props file, the same source build.cake reads. +VERSION="$(sed -n 's:.*\(.*\).*:\1:p' "$ROOT/src/Directory.Build.props" | head -1)" +if [ -z "$VERSION" ]; then + echo "error: could not read VersionPrefix from src/Directory.Build.props" >&2 + exit 1 +fi + +# Windows is the only zip target; everything else is tar.gz. +RIDS_ZIP="win-x64" +RIDS_TGZ="linux-x64 linux-arm64 linux-arm osx-x64" + +echo "==> Version $VERSION" +echo "==> Output $OUT" +rm -rf "$OUT" +mkdir -p "$OUT" + +# ---------------------------------------------------------------- server +for rid in $RIDS_ZIP $RIDS_TGZ; do + echo "==> Publishing server ($rid)" + dotnet publish "$SERVER_PROJ" -c Release -r "$rid" --nologo -v minimal +done + +# ---------------------------------------------------------------- api +echo "==> Packing Empostor.Api" +dotnet pack "$API_PROJ" -c Release --nologo -v minimal + +# ---------------------------------------------------------------- collect +# Build the zip helper once up front: `dotnet run` swallows --nologo/-v as its own options, so +# the app arguments only survive when they follow a bare `--`. +echo "==> Building zip helper" +dotnet build "$ROOT/tools/zipdir/zipdir.csproj" -c Release --nologo -v quiet + +# The publish step leaves a zip behind from an earlier build.cake run; use only the RID folders. +for rid in $RIDS_ZIP; do + dir="$SERVER_BIN/$rid/publish" + if [ ! -d "$dir" ]; then + echo "error: missing publish output $dir" >&2 + exit 1 + fi + echo "==> Zipping server ($rid)" + dotnet "$ROOT/tools/zipdir/bin/Release/net8.0/zipdir.dll" \ + "$dir" "$OUT/Empostor-Server_${VERSION}_${rid}.zip" +done + +for rid in $RIDS_TGZ; do + dir="$SERVER_BIN/$rid/publish" + if [ ! -d "$dir" ]; then + echo "error: missing publish output $dir" >&2 + exit 1 + fi + echo "==> Tarball server ($rid)" + # -C publishes the folder's contents, so the archive has no wrapping directory. + tar -czf "$OUT/Empostor-Server_${VERSION}_${rid}.tar.gz" -C "$dir" . +done + +# Only the release build (no -dev / -ci suffix) is collected; the others are stale local output. +echo "==> Collecting NuGet packages" +shopt -s nullglob +found=0 +for pkg in "$API_BIN"/Empostor.Api.*.nupkg "$API_BIN"/Empostor.Api.*.snupkg; do + name="$(basename "$pkg")" + case "$name" in + *-dev.nupkg|*-dev.snupkg|*-ci.*.nupkg|*-ci.*.snupkg) continue ;; + esac + cp -f "$pkg" "$OUT/" + found=1 +done +shopt -u nullglob +if [ "$found" -eq 0 ]; then + echo "error: no release NuGet package found in $API_BIN" >&2 + exit 1 +fi + +echo +echo "==> Done. Contents of release/:" +ls -lh "$OUT" diff --git a/marketplace/Empostor.Plugin.Code.dll b/marketplace/Empostor.Plugin.Code.dll index 9e7b6c1bd6da6e4c21b3c1883f7e89f4cbf71bcf..68840a087d6e52f3e010c5d1c06d79f24d7d10ad 100644 GIT binary patch literal 22528 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�k6a7jW|aE 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 G1OEqQh-C8s literal 23040 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 X|LZjHFW7%W=vj2v|NHy@od*67ssSiH literal 45568 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 diff --git a/marketplace/Empostor.Plugins.FriendCodeValidator.dll b/marketplace/Empostor.Plugins.FriendCodeValidator.dll index 72f0859ea0de0b256dff6c3ef472b960a0ab659f..0f9d6b6d96482c4ee68f4ed1774b32526f373529 100644 GIT binary patch delta 269 zcmZpez}YZ?b3zA8U3>E5#-6P`j62vE8QWdi8MnK#Gd(vFc)LEmM}77(m)`7Wirry% z+qc_TF>PYfvq()$Gd4E0G)*$JG)XkIG*2=}GB!*$HZU}`G&46dH#Rp)G)OZ^V_=A5 zWQd%;z=la>x`Qp#3KpY+qYtOQv1JMn2xpD#R_hD$p5?l4`RyYucGG?Am?kPfMZ2Y- zq9FAtyAO$_8lB93I+Hbc`(HaIW>$X-hE#?`hBO9aAT(vL1mYwHLm+Je6b13kfqVlX lHU^3&14#oQ4H7p4%7Cyj5E}v28UW2OVMyEV@4~c^833)XPf-8> delta 269 zcmZpez}YZ?b3zA;TlMjSjXhg?7GgtswAeAXVoD7sR0g^^Qo&`|WjKO5PzYEhwW&kH2Rkr{D diff --git a/marketplace/Empostor.Plugins.Maintenance.dll b/marketplace/Empostor.Plugins.Maintenance.dll new file mode 100644 index 0000000000000000000000000000000000000000..07f54211fb882c957ad27d01a34df86a2d8ca3d4 GIT binary patch literal 19968 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 QJPV+#8H35@>$aLK02tayH~;_u diff --git a/marketplace/Empostor.Plugins.PlayerChannel.dll b/marketplace/Empostor.Plugins.PlayerChannel.dll index d945794620af746c39e548ffb7b4982b7bec6fa7..f70a5caadfac454d1b3847b9142132db54d648d5 100644 GIT binary patch delta 243 zcmZpuX{edd!Lo%b_w>e|1rm&mn{_4QMFg}~MsYT$n>bFL7S?od5yzFyb994PH7rsS z(~ONxElraQElmB5)IN!(l(13TQRaMIn~uaIm9GD zpr6h4OaGZu?yCP(2$e2vY4hU*_V{x=m$MQa!eBjx^0?@wZ?| zWk_U5V=x9nQwB>QPGT?w(k4Jr5Z@fgHvnQ|plC9XGyu{daWkL{2pa>j5m2oG&e|Mh1rm%5n{_4QMFax=%rZX9ChNM+WYWS7XXee`JV!T(RU$U#(j^x!>t12dMF=LtP1^FKkWQ0nGd7)@ z-kFrfl9CA31wrA(b%h1D6;wc6WCgXXtaL$lSpioUUPT3q0?Ojzg5WDC<^7)X+&e## zmgV)2_mBPTlsWgD^PJ~A=Q+=L&huktLdPXHl0ig1yx)6|=$m-*Yn8zF2csws&wMCM z4+Ni_^-Zn)$ywd~sZ4Cpv3EO(y|LazI&EiTJCiYIC>=|sV{12d#rE2L$;Ps>(3!64 z&Q_v!&7fa|-?-mv?F5|>E76*W`oIY&?oU37XAJKncoS6!t}DBl!S>7R1R(hQGHAzP z7Ulo)PnTpCUWcJ~BO^zM=I4|!!+kwMR0?!-jHuh=eUN7?XSzrSK(8;T*O*Nn$bvqx z698q>SJ!S(@`@4dXmm18FDS9?2oMwRU3eF~R$;gro#cQGLAI41!JBmr;9c-qMYOtr z6!h3f6^Cup$xrK75G}))XyXMxApKE&@`xY9p*zqpI09>Zdc2w_q#GlMGvB-^P7non z%v6uX>Tw=FLX+oJHu>p#RKyQT?^1qs)SBf!5dS}f*K8FuDTCFU46A8+;XW7H<%;P?K3Bv2l+WLTY2E(RhP!6 zKzAxW6>y}AEzu8hmm$bhd>ZqaQPg0S+lGkF?6c41hG$G@SgAt!N;UwF^BLwzvkgRM zI`rBz0Om03!ilU6%z|4(cFdDPXq%Z?%sRtkbutT`3E5|Qtj!a3A=V3}FfKl7cVl42 z4Jg&>s+|rD+UM&gJKN-0<0R!->ty6P#koqJQ=Mz&InB9Qp3|M%`8kR)@y$CY7abOp zAJy$TSk<6Unx`;(4#@af4B`Ou_UrasJnI^aIg{qu^YUo@`9JUn$ptOiufG;-~K&=0bS(rF`J2LBlG5`ma=z(Wk}vmt6P0}9hBn}UQfk(XPU zJ$1Uu&R4k5M&3jBd~+t%`)%%2U4uEtc@#zQ=5e|&Db~&2KdtU3MK^ly>W|FzM4g#X|NkJqI46$&T7>9SF{J{8qdON=lP0OiaN7QiI;mWpm)#B@2FI|Mz+HAO zGF_Tu#YH*VC%OHHZKtsDFQI3mjenDC?}OJlR#+z}IRbe);@W%4cB0zM(#i3qFfyt+ z|AzW;Oc>yXy&TUtQh$9^iz73;GwB1{{~v|6SkzHGKT34=9TIy;@JqS zXd7!Ee9Sy&IfUcLY4!0INb;z{bs7>-Ws^q8N+O$QoAWL);uxa(IYt~>_<_Z$e$Kq_ z8qN<{)mmsd6hpPThRJgdVZrg8G%rF%%e11PZj?*n>wwNdiW7S{$3X>h>iJ;DvF6v? zSg}GO)4qTi7Xr-JtC7*$f!P?Akn;z$6xD204b88#TtVb|b4na*R%l-Jyi4L(sY1HF z2{4WoDirVHf*EST!1G`bmdrZ?t`P(bbXGA00i(oY2m(f_#}EXJGLIn$7-5eg2pHua zLy!yfLs($ss+ng;^118BVnUA8rLhk0aZ&mw3!Z;3GIDlEK_H>*DZdh!--m z&fp|(*7-Ob%{o6XAZA_IXCv9;>E|?!r^zYO4Cx2C5!1ey)n6F}9!Ihb#VU}3ny08z zc=b|l*Dc>Jc>FRv<}FYXajawY^VHbkK_DZULDp{?BWTy>HgnS42WF-RRpW@XdQ}fD z;fCG%b*PWBNXBvNFDR^!b;GTXA>t->wUbUy6q_YFcUe3 zBbi;UeoPvlZ}P?dOG{%9_~gee<+Y<)z`QDKVF#B&1U=!Bcm;GHLIf4c zBv@vT$Z$yfLJ`99sAD1Zm>WgKPETin>lAL{05f7h-eHgq5my3OvcRuqNM|e8em_MPC`WP0jeZWeUL}2_(or7}Blu*Nuo`>kkYE+$SW0r(| zHc_RnCM|L~21v(Fvf&^h)YKe82r_{+03+j*nW@LKP!zAkD1;<;nvy$J{=w2fh@nUZ zos<4Hp_;0U!vs1qp^JHKC8Etz+Q#LOshH1KLN`owZ7KAMA#Mr5EhKJn=d3l+E#$cc zqcqViQT-G-P12C0zNTmADIe8R!#d?7Z<&~i^W>NYnF_%IGC;mzpm06;ev=|UjtJ13u>H}($A|kH|P`cdOns z{Ykh&jrU|-9nP3X(;*t3j>(AWC(6V8*SsK;jH-W^{`3Y3T{}%}RW(J>TDNhz1 zHHBSwNEc5sBaS$#$Nu;asEGY>zz3^7GoflDB;~lwv+5M8k@Lot*G;znYJ!>tA53h~ z1TpD|{aGl4GdRtk^Q)8I6w7D&c`eiAyeNB;7(6$Ow@e0(TimnU?#2ru4^ilwe<(^b z8*AOjajMaGm0%DtG6uJxB`=<^rO%ggZLeU#_=3rema`H}xN{wsNk$>(g1nr>Ac{W* zmVGN4F`P#j{cE5Y6tQ(Zo-hJ)?FlZrO{D&vQS<^8{>13#7}XC>g*kN%YSwLn^Hh=u zjWFM|{{}*HFnowfvvHU?!GI6AXdPFTx#geEobE!Lf4fB&Jg6;c-0S0z+`R%Eb!v3u9#-8pL3`u_Apb3yQPiN7=HuL2;5IJ`@z^D54`MPEkZp z{grYi<0YK8R(SpAx8v9(hB9{ml-Bp3qWI2yaohOfX^+GUisy|lURhLJ67`>~!VYR` z#9tb4BUZK;ro9GzSN>Lu9TH2L`(=rz>#Ljx;50X8c_8JIu*7)+T+4YLF#ZLI7e-)X zW*c;l&VX?4Fnz0WXr?$kci_L6ef~vMtsCW%_?LjHIj_@Fcn4Dh>skCRut$&xeNi$- za74wkYGk22uT*TlEXR5#RQw*+(wMoF4VVR~oB_xs8t+f#9?h`lLx6KAvH)5=bs10b z)0O>~^=25dCe6c>7ma!I47sJKKB+N_mn(kqdQnv5p7>!Wuf^yAp?4A2Ui~1<_Lacw zF_>nZ)Z7mAFVdJTVOJ(&K!?Om?AqN`)gmtj@>UiO-|IX+!K(C_!vd%Akfe`Y-_ zxTkCn?eJM`uZE}0agMBzxx5Sv{UC>1ybeRufSV5{?6076v71n6|1GfR>T+W0VhTFy zv4I!Sb_m$_0XXk)*7+(hp8F@OFTi=rz8_@NP&?3orIs4Y3d)Lty;iO>G3OqQuyEH_8fi08Itq#%I zqB$k-t!mbJqu@0HOKX@D4K0DS<-sMDQTn6)R*6Y^8QWi0!Tg1Q)$~-wVCfWkC;aX3 z40@;{TQP&?)&8zLL=TtTT{45(gTE^`=?!?yq*u^KlfEnd3`37ePYdVTz!}jq=*Q8Q z;GfOnrC|7Rw6(6B6(`CX$!}agX$pNrO21z7yYdB8R?hvpN-X?M$*VO>DCFy_HR+a` z6J_U6hyU@CmGr2!uEM0F`VGF7bf3=nQ`U*H)pUGPXZdRSTBH*i&Xs7nv#cKN{xw>h zL1)2Z3uq4XFQ74a(xiVX8}OMl8Il~|z1Z$@{No=E=>6dvO3xLFub$3`FlFJ?$z@Yf z_7ZMq{exbf5R3m*@sKrM zPAW7DDI-gpMz1S*(cet3PWqL976pQ@`Zb#A|1IDl>qWpDElXGYS@d?r?;&%!`5s`_ zWd0kFoJFezFBKRUcpc!T(ZkUfQF>$4Fg0>&Ui6#v%SolCN&d=8z%)t`htbKvXO%HN z-8U2Xa^GygPQhUd@CP-9abu>rgxY=c&1#D3O@LWiES&Rz&!;tj|Dv@6ZWjDM1^SIY{i9}Q46de+ z)jSuu0i1n8y&U|l?{(zZ11|Loi>a$zYF(JAkGa&>gu20{9w==`*^P?QK5yP^;?Cm? z!t17*Uq)^*4dNSmuRVi4rON0!-|eQ4zUoqMl-&s%pK_@$mfUFu=r=C)n*YmYh~~*I z|6{bR>g#3+ZFi}oH4mGm^i7xgb;V<58O=CT+M}OX-!sG1=~BCcKQznf>n>GV_N-Y! zFSyj4>Jw&!DzG(yowT6(S7ww}xzxk{*UU=Fy3|VlTjnJCl1uIP|H-VP7hS5~Z&=k- zGe>E;&mXcTQ@cwo@JFl~y3?he_t#jp^kbL0*gw;nLW|B)_3o{jV@;(aiozH*SkvgM zLVcI+@-4Hb)6ZP$0ioUy>SgWmnw2Pf)1@k+t=0@G!M>R2Wofu9`)+zU6-;Db#us%&k!&UfoiMYnnPiiT8px? zsM@7Aq3kT0=~9WZ*KyBwmP-wk^;>ajQk3*)F0IK?*I09@Pf^t9|CBY4{==mXmECSN z(VtxElht1YwSc!(h>29qyVOi8T4j+x?2B( zbsp_#R%NSv!N4lI*QK^WvV~5#)F+Jcz#6&{yFb?QvQZUSODk}4Wap57fijNvn43~Nw zk{45hP|C7PXqj8KUz;Degpvhim(rkH){3%A>Gp!M?R1x0R*$mn^h`n7W%Qg|_FILl=H754$%T}Z2D$~8WQjH{PMck+f^UK4S}`Tqsq!SO+(AJs72it~X+zs047hSiec z&xC&stVJ(A094vu3-Dn|yI2FOBlGia8Ty?kZ)?$}>EI z|J4}%gLtw~@=G6}R-yd80i9aliEH7#*YSP}C&fA~NY6zyd_Kr)RV`qM<^onAKQmk| zuti{-z)b=#7MK9kCYb`!~8@KUVcD9n-^s6WIBFKJpSB*LPIEN{{P)te=nTyiz`{ z|JL^|Y(S5+<=Qpiv}k)Eb5!rFva~ksS7l||5A;XME462JUUe_l{xMRfU8}L4AE4H3 z?FUp@RzXL#f%3V)pYop#xVhqWx?j5%Ego~>TV?I^IDCS$oBmwwYVCFXv*8X+Gj1&3 zCUBP)G>%nWrLC2|M2r*VpVET*>gYY%T;o;qt6IBwDWczHz7E@-seKZq_tgAQYc__X zKh~BT2TGpTj_PwNU((u)Cf{p--;chjZ8G-z-q9{L)|YDfQM7C6-Oz914&b>+R4=8u z{&sqsR@cq~e`ATJC5#90K}9#MEt#(;j4uN(rCX~^N*VuHvrykIwxx{U1-9xbW1uDr z_+t4d0KZ^;Lho}+hpX-dXSC`G!0*=n0IycqNl4m={O}yD(G&p zZAxR`_conZdaduM@qcP6=vyM6G8!sB3C^(qV#fGq^ETgO!oQw+ushPUSE?%jxiqM8 zAA{P)FvH(i3|}w(JKs_LLGwwB^}V$(LI3Y3z3RIL?P}WFw7%+9ly+9V?yJQtJ4kmM z-zxuuZ=c>8wEX+@n`_Dd-!7fvzeZx|Z91!Lu0N|S@JRT}=vNC?^;&I(c84}aZ_{o4LhJvyF3&v@v8HHl8wGGS2b!;Dhm_zAOB`QFSA(_G}Dq!0rs)%e@}* ze?&+f9CatoMK3^Vyxj1l@w`X<|IF9yMfx7~zahNbHXh}V`lm@<_MZ28)W7)@`d;EI z{vv%3`M<{(hvRtX%YL@7ACLO4KSdk&o_$ggvyh=xmA@CyF4Bz)?weMkC@2l4?0`DF}!9Vk;ybS^*}^K zn;APlnQgas?@sou8Av75*|xrn)RZ!jTHs1`Bo25YA|ZU15M+&=-j&)tcW&OxX9*5GH1 zY-wT1hQwZv*Lq;kcCr^_RCge>W+0hx@)bH0yOXQoUG`s|JCU=-9!h7&vDH8nSl5i3 zBzJUxopy9QsRcbsYU1d)5+d-vqvNSs=&EWL&v^ZB7PeTls7RpLb9q5A97l9<|ZwOFGHEA}0HIZ6cfK%GwTBf!)1Bjsw4L8cGf^XKP|$ zDA}FJ>;c}=%OS>^C4wEsHV!f`1GGJr$>Om&ndsY?9vJRO?zNp^FqC%}6uNu?wWYHQ z!IEw+>;cA(AMXcGU{R641V0q2UO?-H(!D#pnhSdto?127u8Ru=Ca6YX&c%iJq5}S6 z>RR8jVDXXy7I4sci4SH1Id-tHJr&N_cpd| zr1gnRKaUvoG1!S(y>x!BC$PpI7)Z(}Wg5>nIRYbCFe#{~*UfL#ZYTPvrLT`Rrq9PDZ%y|l8Sh9Yv-td4 zk%)(+gP-8;k)lo{&!lsKok|PIwbnREga_AC4Z_|udJ0a<6^T@KOFEO-l|-SvcW@xd zY<72BCQqxzyRr#Ksd1b47|5YWOzUiCZz8J%xYe~tS&lsnb)Bg`&O<6?uiVqqvpUhc z2j;I!B?nMa5IGad#C*rNpbPUH>`o`SnJnN6eyCP+(wi6c6(5M5zA zebkoW1hLWC){n988cg&iWe_{;w4D*Eb?=~^K{jY?8B8^HC7t~#h+t?pC-)7dkUl&X zyO-0rsL%Iav=xx3sit)SZ&z*&kjkEWq-u`X&125`ImR$Z*&&Q2NGRm=Pd$SS*@}*2 zCL^3)UL`gs(%>Ty`UUAu>`5Z__NLO^9QepiyOE}nj-v9pklJ|7wqp1?jfi z?cT(I;BGe9jMa^0+GK9CkCGjU-hNCP>Plvd=uBauD7PUc{X;;h<`_}g-eX~oWw8`= zGo59ytsg50sh(g7kX3_vI9!-Jv^$kvoyaJ?o0D*78pQf+b}&aMCnu@f8SYFtC{@!M z!?JG(Q*CW>Ah{deKvrw+fnG*8rnlO7@I=O#IFi-C?`z58>n}TpP_#C=b7=Q&$!j^D zw+!Z`S~8jB-kk%(GN6TQr;Jw$#kCY%^l^6 zJl|`29XhZz>142APAqIo?~>$$!oT+ySk7Tv%{OQ zie&P9b7&p`s4u@FEUjIHPh%WRCLOw*CSbrfnM5H zv6pGgO;XzFB+|Y8vT=|Z-!hc75g1MqKYr_gJ;nZM!?NmR2JCTs+PFt8y}f%>+Q5!5 zzc)k?ZxKl?qU~5(oWuZS?JS@@*mJ(D-A*@B@t!k%g`b*7bAW_2P>_5ili+$CBA|3bS=qHcRnGM&$m%BsATyr_yzScuh= zJK5H2r&YU*v`IlOyzN-myI9|)_J^kqr?pAm1trtH!)@sg zyMkUcCwIA9OKNjB0r}k~wYeF5jcxBqVd3_+q11+hgfm>gkY1=$120pp2YQoogzy5P z8-LlQk1PQKNETI|$^_~_`J`lx4s?=KvzySoxY16kR+588-- z><;BCsp}KzJ}lLFFL)~xj--VP74eYru1@v>PClQ=mL3XtlJo8!=&3TJ8a)XP7j08J z^n!vS28UH{X>g<>Z!UP-&uzKeL2PHJu~$KPxMQ?7mDr7KayHeQVQJ3#1-CeSc2+ks z?(E2T5$!I4jU21Ig~^rk+;`_qj+aqe?u@&uK|pgt%&26_3tdLcR`V=_1b(0uc`OBX z50a-KMXq8OLoBy!jSJkybvRZbhe(fB595l)omjHI7FNt9B&;n?YHuo=+7ICsD;M?j zWbt>ayw2uU(MFEM3`x4ruyb%kNrUzlDo%xN(w5wZ6fv|H01vH1r6M!jaLjw? zG{fXx%}Bg>IIp`NUOXE-E(hg$Y=p22pg}pPWQb1yXwC);S$4fW1f*ynkqaATZEf7R zlh=)L#cC%bhH#^3N=5Nz`wG#xHZd$Af;&v!W%Tny^r+RV3&(=qY%Y(xB+e4p`hY*) z66#9qPp-pZ6?qgh8y$jDl@i*MyRy6^X~Qi+syCIzGR#BiV9VW>28n4cfxppllN&)# zCR;!{_FkN3koF1}R+od?E{288#c-D7tBtLgoUj7t%B-M8HoF@=m8!_iVQQMog@d4* zlYA-aB^L$nKs;ZKg3u?-GiQ7wFKXR=WGr8T| zg-ww%InEa-D=Or)ELTRHu!>65x>v+1A~;Z8M!wG+VntH9@h|4Okx;}`W2{&*K74`A zLo36HD>aYqN+$+0{WgLSSO3E~O8mjO7TY8aH>J-FA30&W$8m+@P62Z$zi@FXqkaad z^x#mII_&+)4aoypFFtr{Cea{>Y~%#}kSx&A27*F9jLj1xdoMND{7`ejV0E*$uJskevm#qb4tJ!Zfy#qhQYd{IhtjE7|pogbL2LH5j zuCWWULy+acsQ)i5)-|UP$`7_!y%jH(JtAG9=KCtI!{Y)ggKTtqAs8=`~lYu z=u@BcD2@KwC_@NWW}t=jvL89}(2L0`9db++k6$ln<#V3)G&_a}AC{K66*V(I<@2id~GBzi#9CgK>jqEmqMETH_VaXUkaS+POW(%zNk_lYcUP! zqMoTd0!<~HoOle;avAIAB|sLC$@VFGNRhmUIP+ixrh1+lA5(~&Na2XKu^qD#7%Luk zUPO5QrzAGc&d>F;RHEj1@t)?WVMcZ7CTQXe08xE+l(XrCJ;OLmgJzU5=?2l1&Yztsy>|*?2 zHGl`255p4h(H>wDT@727<{8XZYOt8}a5yXyDS>-~mM$_8(7G029g(qpW|O9AGsqv( zK=>`V=08k)yM6i$GD6z4Ab#=}9UBQxpBAiuzeeB1f4-0w1*yBF71E=l*G5b6$3mhl zQMd$(4u{?DjKLBkItCrgRUIGG@C(1_SWp>vLja0rpdUAcLKuLtn;;wH+Jd07x{|v^ zI&r%h)AevgI6wxv7a2S1#}AgrzJM-I_v1IafYbecIB2?GH^c1wHVmkR?s6x%*&2*5 zq8oqeM+;O0F#38$CE@G*GWIhFHIBg=?xMuOD(Ju$P;2y>3j8Eo73Lln>oZ8_XjvOY zDcj6-xdQlxr3ILs<4R$`4;$ulz_8XpZH4X%aM$y-XJ~$SvnCJ`!`uRSU{C^;6V%SY zcc3(7K!6Qu0?rLYM%)%27Q>2K;PHZhYf4xe44YgptaA%FXLub7VH!dAqEgF$QB(Yfj#XWTaf~LSTLKnFf#)rL6^$t2M|59UFJUi6 z_QC~fWcQU|CZL~z=w;C@AyOltrm-;L3KVe+T!s!uQUxX=aJa>Az_lb?rc4ks#(n^2 z!kn=mAZJ8IkaNP}GW6Sv0kn>4I&#e>)eQ*3p<66ij~~2l30gixF?Za8kGLN-mh0cJ za&tH`q7ck(#6QA5GJ+pl8<^=~d_R(>S#+$7jb4w55gA)_4#LsvNW4Ljqi`CX~ktvqGLL z-Vpgr_?wma8Ef!sY$)gA=rnk%=A$AsqIXZfixL_3NjkD}g_4tB% z+^rs8QIGr8<3aT}rXCNg$8q)ej(R+<9#5*r57grs^>|i2o(oAFi{p57ko(1ex7Fia zc_3dS3v<6 z5Q<@v@bCnn$MDbq>*fLEsT7dekCu355z;*8e8rTS;^YKc=BXat7aam4dYP<-(P7n} zG4(i%K42oCM-V|01PmaP@njMrjNFfcun{MI>%KT4HSlu0^{r!8mXcy?6lX zM3-rF(dkXd8&mXIS3SO%R{sIMRz~>a0%$|N7Cl9ys@=OAlio)J>c!ou#2dMTF8?UroJtB_xgY1byvm9qrfuCi9bb-+uHC*3o*-_HC(jAI6ry$Fbe>NFKreY9dE?A8q8lv)$hL z;qC57ZBHk&7~A)eZXE2}>3y%zHRk$u*BEs8oWY~z#>#!aJ^$^@(q&&kr@YrcF&^`% z;-~jNt595gd&^lnFwlWdWoU1v7r~j7kIdaV@6|!gc-Iu``yXnY2Q+aQex^EFTp)7^ zhq;M-mRpbaMMsGKRRWwjj4uM*io)b=+Lz z{SM(gDOHOl&x^v>S`hesEsj_Y^r!<@8;)FjFz45qvcz`F@e*H4z=14(*b@QzstlzjULKdg`dBAYLpAI zA+*6QWpJ%gcv++l#BA5)qSv#7FMBdLV6uIKuu~m9S?sl1wraa^pIP!GVyF1dxk>1PBr(fFvL&7=~nkkt8RanII{K zCZewPZdbN;YqwZ0z3Fakb*rtlqP^LbZLPX3+l$g}-EDW>w!6J7-HN~O^StNGoRHAE z{p0t?es*x4^W5I&ectDN-s{Z7_G{lq1`!4De)CPD$MNLXDuI6(j6fWn@%bn{8a_4i zac#q?nVtJH*~EZj?{iXpiSAT?znx3$Nhh4a{zRrfv365OqR;M0Hh3;x_(!Dkm*;n>iV$jb-;kAlrb%9dY=g@wB zv2QvB>H8~)?q5fw3HN^v-l10w2hkn60}BJg@HU_)tBE2oZww>T0&^!jVTkaUp&pCW z<8ppPs^$`vHwNhgD31SPSvY1!OnrC~_pzxTVG}lV&EaykeG~dDkgP!k^QM?be5}b} z*;4>2&uMj9Wsx;6N=o}&1>!sfwhCqIOI*X3!EjxrB3!u`TFw<#p(?Y=Ji^c3St>R= zR$Z5zidr(sX@J8O?2~?kBLGFFlGB;bj4>5fxOIr?j2;_dH|wU4t5}(Wd?hcgPr5`6!&lBo&$ajDCcDmF64C5`@Y~774^?1diM{ z4Z8`d_7b3kDp6-x%{yGLD$Y^6P;uvB7TV3Qp&F_hS6gq+cAkYOxxiub!t|+uXYswEc4ky;e`)7iYu;%f87%dvV^Em_4Ci zrP|o`|F!EEXW4~pPjY?o+Q6B3Azfz%D)^u1FDmGxpDjYds@zij%-Nn#u1S+remHG~ zLT|ZDrcmZ*ZliAn%V1}H3F^{38eEhUf07r2iF`Z`Gvj^yNTI$7e4Mz<6aF$P=P`xH zTz4ld6W3-GS0$Ii$GGOai1Nv0z$va7HsatfrP&>ks!@XN+Z7D)oHv$23hBBqTsC6a6hC=SgFQe{b9lWwDr zA~u$;i1S~lEUwvDvm)~*S*|wLEpu}6YVfemm()>s?zKrQVG-T#08C=(iX^uJ%)Q86 zTjpY&4Z|fcjA22*K*JS75HK)LBJ^S7=nNi^%#PHQR*=S*{C1ILKzw6 z8a!8S)3ccOBf~M~8BV2vXd-e@(UXW1BBuKC-G~_$nHXg;ADgwwYaz4ea2#t5UjOh6 z@Op=5kh2!gXn@xoMuIk$2S!YuK~03_2-j!YSS2FZ6~#d$cLGn8VX-}@W3x0BNy9pE z-QLA+xJuVE4%fQ4;M``VlZ0b+uAg}DmOYjoKt&PL7={Z0x4LuYK`^rz7Lg=$>Qp&| ziR*XEbIzhmVp+#6-|R1srN%7}9j+32uG1_$BODu}YDeH&uW`KW)&+PWRu!o%=lsK1 zA+TfFy>1=zPzN?_JA&61OnaD zI_Ng99+pTwl}RLLUGfIhjs|gj?nEu{AeP+^b?!stRiO_vUOlP?j6Q!2yIFcbTEdcK z8EhX#Qu%d|0A{vNbXbx^p4A;qj@8-2I{l)|M9KrMjaXpZ zK%Pxd%0a3A+dnLg8|NxvVTwJ-=DtsL6>huN7qDT#x-Tem4U{2v>s((D#me=I5cuI@*QQ5Z+DU9vso-QLt;~=_4B41 znu4+aPSgR1Jio@a$dHId>So1BB39&9ZcP*~Qt^5T@uD&Ds{6xpq0C?!eb6INRQ(5f)#bubkDG@9o3fEkJ+-v-(~!ZQ0NhHxIC z4%ovWB1^stV`$b<5ZtUukjUBCvN64xwe^?Go>rCRJydxh9&q;ax}tVb0V@e*Y@h?8c+?lgHFZw3>P%D4gTnzRDOGhBGN~$g2UL?42zz1O2olT?400a42T^hJph{Qw z2FPqIWi{e;rFgx8y?z(iwUJ@wo5@O8OjZG?4Dmt}gixZ8Z~SDRnf83+i-wu+HC^U@ zBoDz)?Eh-2)fOCkKRAheA?NNw-ys%I3wR>w$x>fWV&aswxd~5ri8lJ9rfy>-nx@>1 z&_pqsg0s{87%ONX%4grrEq6|Eq}~IRYMoE|a2ZK1|4|>GPZ*y5^Lf7gUbcWnz_);! zC6?fr$C<}dYZ2UiAD-De0cx}FXK3-ogIOHclYb5pPv;+DE_oLS`#1pEf59-XjR=@Z zPSGKeG>0`y5dIk$K;qE7=$F#=(7 zMnjF8X-*}=;Z9Rt-+T!5d0FP*_~DbYjl8INoT#e7a#n(iFt20b2sZ&)e5FrQ@)ioW zfoI>t3WoDE;~!=m9p>G0q1$+zKF_khQhGmQ{38ngJ>w??*N;qrU$ymW%wCO%s+lG- z%zV?n7h38ZbOz1GIQHfh-*sf%H!0g|VWKYK<0w?AV*p3&R%l?Zz%UK?j95-t5Up>F z>(kuRwC>>G<^>Sflw9Bl&sIE*Vub4wj-t3RW3fB<4f8!2H^hdsq)^zf+;AGsP9Imw z`)0fHKpn++YmYbv>1jOOIDQg^#;$u$gClpwzJ;LH`8IQZ12BgBd*)tjp2wXBhO_y6 z?l$J$G?qJNwmf1Y0Qrd$DV*=S4qx9f-*ndqK65NaTM&D%@6_y;{3v>(KBNd_74lzQ zf%|8-NFAAl`%^a_x4=O!ul|y8H?JOK{DhlV(|o>d_4&qpe_ky|y~s7sH)&u=RlP=G z31#v=_Hs^GBB+SV!V)+|w1*{Lis-7lNzR(Qi@?!@U%&WL@_tyzJ^)Z$cf$nY2Mgk> z&KFO8I_VS7J72tVjJPBoJXe7&bEQ0?? zt2#v_A3_PZavi%e6Vie!<&B!mt(b3P2H#bgyd%Ld#vyKE8P60KlKs(g(+yeu=HkgK z)7-g+T+-mP6=w0m$WLC9{374Rm&XiRK*&|kU;PN&4iv#{-nm)lG`9g=g;uIP#JF@bngOg(P z2+L(b8(zxAR2}S@bG2)D95LFGCmC)Ffgd==!Zx3BP=S> zZ{o+fimPBzuW-x3(o?WRKb&7~=`+qLTa#4aCaH)_QY{p-F)R5cQJ?b`l#@@h>RjUe z7QZaKZ$v*G#d|(*Z16QKF|@kl%GH|tNp3OthZZ(8HY{jd(1bwnEpIR2OEpBZjuNfH z^sp1}Ssghi)4wmv8uy^V_rv(CtsS&#x%%9E))iaZupyz%pgSXwt?spXzsE1kMcOqp zK3Wt8pMIw;;Eg|AqMPu>K9LY6I)rx$?;ze!<89#m0lbl?TwXrEE_ZRbCgscUEW%qg z_rFWnCNh_ritdh^bdSKVg?GnG>19-7(lwFy6`ORd==xHVejH(VLf{t#UM>8P;5AbA z27%uTv$dBhwnZcK_tAT!CVf|HsOh{|UfKS{r+X42~?LZ$HVHjCjCvCB&$7~OB8y?$i#A}H z(kmv@FGM;IEp4V_rQF6}i?@4RW*^xy?t-#QigCVo*ai4_{be3g;wH_4rB(Q<&~S zHP8)0Jtx$B%rk`=8mV8XS47rC142bGq*qWgIYPZ5wJ)F?T|Gj@%giQ9Rje>)()@6X zsnOTqEW@rZHS-44RkHaNuUM z66dJf0CV(C;T#7(k3I^$5GP142x#$?;(At=0(6G0H3RgFOYM)IgYQ3bsj0>1%n+%=$DK683|bLdD@T#r z=u}0SRYZqfs;Z{SDyElQ>iXDptAsAQm}|d{ibAzklzLt2f$%)5lwNeHn@bj0W%Q;? z-BY>DiqU-Rjkw&$D_g8M?RKeu53aY$=`NSDgPW{L^mUi|Sa6$FL4nz-+y{fZtV&wq zQm+PktSahtsqWwbtD3&K(x$Ycg%WL|M70a>SZKUr`kL=+CUF^j)F8 zN~Z(wx291s_TEHarJo3Okx;K`m)G14S*=Um7XOGfomRNiZ=w%cGq6+Qa(B|B(TA-B zz3fu8C68J&>EDFnJ~Alte{UFlMT zkX=GsTN_Q8@r{dam-7cTXy%E_UHw5m?o z%*JPj7SqRFswEiI7E>9{KwRIUPy=M2cBySvLud(Y#yN*&FP1F`Ev1Va6!o3b6`^Ic zJx{F$^^j0srk_{;*1C+IbgBQYULU%QdU#7HBiy9rG$7P5nxSn8EvE!dAVkM#YhZh5 z1s!&&_v%|hms4@Gk{t|mhgQ)}m%1IAEp(4d-D_k*YiK|AiEJelutRGpfl~ofvjT@g zt#sI>!n8fKj`m-wWb*@CLhETEcKodQMQwYijSjoiYLvT*zU5NOjqRZgR4qGJHHU1Z zi-l78xsmFHI!43vptX^ASA14zisTsnE(r7XtROB@tSDgP}a3IFMwbw9wKF%7l)N-j{J$0HqXHYoNypn6uQOdNtH^K< z{;@tG&RpL3bc}zr_33IAPXmVd{u$xcKCis|FA!0KhV861Y@g zi@-L4R}0)BFa@Yl2C#w-3j83TDfnb+(mLV^Itd7CdPn>cS_+80yv`ZkrgLTw3Fi*L zMKmO3C()UrPJG69s%Se-ulJRA(tE(srd}%ZH3P$`#RNV^`V#P34OlxJvyn+uRKG~>6eH8g=T8i@z?1E{U0j-lTPcG zVr4z8^BQ_uPhh2)1PftpsrDE+E!r9AJfeTKqEu_sc10_+Gy0`vQ?#GzydLk+mc%Qx zJ2bZQ0!r0sFVGz&WpuChqtYheZw40we!c80J)*rCd!3$e;elu;J%{+1bXM<}+^%Ux zv~;@`Gt9F60&mo6jQN%C)7DB`W*XbdPH18M@%R_DrN&h2S#5(vDW;z`VOhUw@~e<0 zYJQ@%7(b8ytJY@xd(khoNA!Ej|4Z9pqyn10!)V3TO3L^cZeTLTQ^k|?M^Nu%y%Y9L z+#__vYxQEfHrPpL>G7IH;D4nktQ|D!s+Ix&e9CY>k2j@2x{|2~xvTh6+&(>5Ly{>d~af6W){3e&P zv$DsyMKYliYq?49qSp9*#$B|iYCGLU+iN=MPUE^T`~2~WCyaZIc=4Bvlk{1{{2o{^ z=?Oq9a1VAUVeKToy-^aFDi-b+3nytt#k2tTOBsE_c&zv=-7hvL(Uq0k=_Gxp2z>G6 zB%QKm2Y!k;pM_?3czNIq^^~j$oYoFhUKtoNzGm$UJS3WrO1+OtjlZOm#8cl`IDt#joTR3z7l0PO*s2XejRv3f6aUqeSOj76*!0VR;&r$f_lT+S$YaM=WScC z2BYj4Jz+GLZ4MsPd&6CT;hHp{UE)BWN8DNZaLHð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 diff --git a/marketplace/Empostor.Plugins.Privacy.dll b/marketplace/Empostor.Plugins.Privacy.dll index afa37564f0da79872aa16644a90826b069504ab2..97ac9f5bfba9c6c16f0468aa069ebc78bedc1e41 100644 GIT binary patch delta 970 zcmZuvT}TvB6h3!!w{>;>Su@Q-S0x>BZD)3N9JgZqtu1Uz)HT8%*fkfEVr8=j3;cOV zOeEdzmQoQB6-7@uMv3^A(u+Y@1VVwLVvuFgYt)(DsVtn~oO{0SJLkK1nA;m7y&*C( z5bZxa^)fiLo2&*OoghIDSj0ZI8o51%+j9dy{~~Q}Ak#>lIzE**qE#KXFc*!ujlTxVK&_Du>-x9WE-P9# zJr*;@@J4wprjwAzv?~o$e!*xc16(hIKt5 z@>JTD1ZKF3Rij2a~x>qc|9-*K9|8!#r<@ zIG)EXl|wC9GU>I#yQnFZd+&r=eyTPg2Ceu!_u{F!gq za<<+opgLe(R8Q6}NQmzU?^WDw%SZgc_Eg11+6w zG_E`P?oLAsm1dbQ&MN*L@NLCN$v-#u< zM>&qDe;;Lrw=k{YP;~ih7u98$udow^gJzbKM_)HpLwM=1+#XL8M(Q%j>z%l7ov_Ahp&nc1bjuX zV|anb)rJ>H!4hH)LqN6#Gl#3f7onnrfMLa64tzM{liwZW8D`BPCmq@#K~DP%xrFa# delta 894 zcmZuvZAepL6h7}&m(H)vk4z0CO`SNM+wSfh)m(lg8m84O5YFZD#@Vm_{H*jww zQoSnZ)NBV(`l0|L`$CJi4=WUvY!v;9<8jlZd&)_V@U|e^us|*e(HU{^o;u=^6-f$j z4-uJJ7u4j_KwNH7N}l)n-%63^eXPdnXnoooksdp>aA%U}7|(u!-eomjj2_tdU#$oO z(K)y`W|W&#%Zo8xjMZaHtc5x7a_k^OIXiBcrB9JpPU8Vc(E_M|aCKu%CFO1MO#D|R z19@^&Adw4v!#$cTJgUi#SHccx2NyU%0xOPbbofFOz_x-Ti6P}AbU_asBi$;`7F09L zEcD^kLO~Z2b?aqVVb-j|wG%vK+e5}mtsZx3ZA^*hv=)4*os9|gcayahTZ^~gWYINj zE1spu!hO1laLz5c9loA!r4N+2P@=;$y?x!@)A~Ams&`_cq3NIAQG*d@4Dad0yGAp9 zHohkGoG-v-euB^)Qw9DoE#f<2IQ*eHSi7ry-rUTo?mMbJrE>kXH*3TQ>DIv}dCB68 z)QAof?-JYwmm~=;i$fC3E~mw96iY3FTXKtLUNlIhMuC@mtr<)&r+0n?R@cDM00t=h z^c(ui2&_Jgaxz6eMM5hDJ}Jvl1zwI^Iq@j3c53ckdH1vNFZi>pr)ZUY^=p+RYq6?f zKEK`5?&_{(H(F@>pXU^g*)my&{J>^s!@HX0g!0~qdXXk<0-h!*fEx^yC3*$QmhkKa rFcWrCf{yH z0RoxpIE{`UV0P@4X}n%9zwypw4x4HPsNg|gs31u7E$!%bvqQT+|2{+gVUbeUDI-YwXL1ZVNp0fBS zGbA#YGMF%=GMF)>F&F{q6d*JM(w0CO5X&6MP6G1M7>pT`87zP-kjfMwP6o=E07)Yt Q&jKiG#$dAfx}zow0P8MG$N&HU diff --git a/marketplace/Empostor.Plugins.Titles.dll b/marketplace/Empostor.Plugins.Titles.dll index 08fc19c0dc543fb76dcb8d346b4e6be4322ce3bd..b8432bc7820563406c3b764e63eb7776ed4b0a0d 100644 GIT binary patch delta 244 zcmZqJ!Pu~aaY6^nhwVNmH}-I7GcsebE8CqG?TQ=ECF{ISvHwIe>V9^ zV1R(U9Ir&i*#__St!fH0moM*~>=IP202SPQ94ZJ@on{iXVSg&q94Ssewt1Ux2hC*h zw_r$RNMuN3Fa|Ltno0)883An?^QdT_q^W-Oi z0RmQ{n-a?Fp1H4DaV}?4%eQrtU4qILpn~FAP(hIDB~R}EJU;vWQ^R|HiJNZ+&1CUU zW=Lc(WiVk#WiVq%V=w~JDL`ljq%DCmAeK3hodo2iF&Hx>GgtswAeAXVoD7sR0g^^Q Qo&`|WjKO5{;c#0P0QCP;z5oCK diff --git a/marketplace/plugins.json b/marketplace/plugins.json index 217ec76..5560e06 100644 --- a/marketplace/plugins.json +++ b/marketplace/plugins.json @@ -7,7 +7,7 @@ "versions": [ { "version": "1.0.0", - "empostor_version": "2.0.0", + "empostor_version": "2.0.1", "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/master/marketplace/Empostor.Plugin.Chat.dll" } ] @@ -20,7 +20,7 @@ "versions": [ { "version": "1.0.0", - "empostor_version": "2.0.0", + "empostor_version": "2.0.1", "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/master/marketplace/Empostor.Plugin.Code.dll" } ] @@ -33,7 +33,7 @@ "versions": [ { "version": "1.0.0", - "empostor_version": "2.0.0", + "empostor_version": "2.0.1", "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/master/marketplace/Empostor.Plugins.Welcome.dll" } ] @@ -59,7 +59,7 @@ "versions": [ { "version": "1.0.0", - "empostor_version": "2.0.0", + "empostor_version": "2.0.1", "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/master/marketplace/Empostor.Plugins.FixedCode.dll" } ] @@ -150,7 +150,7 @@ "versions": [ { "version": "2.2.0", - "empostor_version": "2.0.0", + "empostor_version": "2.0.1", "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/main/marketplace/Reactor.Empostor.dll" } ] @@ -176,7 +176,7 @@ "versions": [ { "version": "2.0.0", - "empostor_version": "2.0.0", + "empostor_version": "2.0.1", "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/main/marketplace/Empostor.Plugins.DiscordWebhook.dll" } ] @@ -232,5 +232,18 @@ "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/main/marketplace/Empostor.Plugins.Privacy.dll" } ] + }, + { + "id": "cn.hayashiume.maintenance", + "name": "Maintenance Server", + "description": "Maintian server to refuse plater connect to the server", + "author": "Empostor", + "versions": [ + { + "version": "1.0.0", + "empostor_version": "2.0.1", + "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/main/marketplace/Empostor.Plugins.Maintenance.dll" + } + ] } ] diff --git a/src/Empostor.Plugins.Maintenance/Empostor.Plugins.Maintenance.csproj b/src/Empostor.Plugins.Maintenance/Empostor.Plugins.Maintenance.csproj new file mode 100644 index 0000000..0ae947b --- /dev/null +++ b/src/Empostor.Plugins.Maintenance/Empostor.Plugins.Maintenance.csproj @@ -0,0 +1,13 @@ + + + net8.0 + Empostor.Plugins.Maintenance + enable + + + + + + + + diff --git a/src/Empostor.Plugins.Maintenance/MaintenanceAdminExtension.cs b/src/Empostor.Plugins.Maintenance/MaintenanceAdminExtension.cs new file mode 100644 index 0000000..d5f39e8 --- /dev/null +++ b/src/Empostor.Plugins.Maintenance/MaintenanceAdminExtension.cs @@ -0,0 +1,78 @@ +using System; +using System.Threading.Tasks; +using Empostor.Api.Admin; + +namespace Empostor.Plugins.Maintenance; + +public sealed class MaintenanceAdminExtension : IAdminExtension +{ + private readonly MaintenanceStore _store; + private readonly MaintenanceListener _listener; + + public MaintenanceAdminExtension(MaintenanceStore store, MaintenanceListener listener) + { + _store = store; + _listener = listener; + } + + public string Id => "maintenance"; + + public string Title => "Maintenance"; + + public string Icon => "shield"; + + public void Build(AdminPanelBuilder b) + { + b.RegisterText( + _store.Enabled + ? "Maintenance mode: ON — every player is turned away." + : "Maintenance mode: OFF — the server is accepting players.", + _store.Enabled ? "warning" : "default"); + + b.RegisterButton(button => + { + button.Label = _store.Enabled ? "Turn maintenance OFF" : "Turn maintenance ON"; + button.Icon = _store.Enabled ? "refresh" : "shield"; + button.Style = _store.Enabled ? "primary" : "danger"; + button.OnClick(async ctx => await ToggleAsync(ctx)); + }); + + b.RegisterDivider(); + + b.RegisterTextbox(textbox => + { + textbox.Label = "Kick message (Chinese)"; + textbox.Value = _store.MessageZh; + textbox.Multiline = true; + textbox.OnSubmit(async ctx => await SaveMessageAsync(ctx, zh: ctx.Value, en: null)); + }); + + b.RegisterTextbox(textbox => + { + textbox.Label = "Kick message (English)"; + textbox.Value = _store.MessageEn; + textbox.Multiline = true; + textbox.OnSubmit(async ctx => await SaveMessageAsync(ctx, zh: null, en: ctx.Value)); + }); + } + + private async ValueTask ToggleAsync(AdminActionContext ctx) + { + var enabled = !_store.Enabled; + await _listener.SetAsync(enabled); + + return AdminActionResult.Ok(enabled + ? "Maintenance mode ON. Everyone in a lobby was disconnected; new players are refused." + : "Maintenance mode OFF. The server is accepting players again."); + } + + private async ValueTask SaveMessageAsync(AdminActionContext ctx, string? zh, string? en) + { + _store.SetMessages( + string.IsNullOrWhiteSpace(zh) ? _store.MessageZh : zh.Trim(), + string.IsNullOrWhiteSpace(en) ? _store.MessageEn : en.Trim()); + + await _store.SaveAsync(); + return AdminActionResult.Ok("Kick message saved."); + } +} diff --git a/src/Empostor.Plugins.Maintenance/MaintenanceListener.cs b/src/Empostor.Plugins.Maintenance/MaintenanceListener.cs new file mode 100644 index 0000000..a73f2bb --- /dev/null +++ b/src/Empostor.Plugins.Maintenance/MaintenanceListener.cs @@ -0,0 +1,102 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Empostor.Api.Events; +using Empostor.Api.Events.Client; +using Empostor.Api.Games; +using Empostor.Api.Games.Managers; +using Empostor.Api.Innersloth; +using Empostor.Api.Net; +using Microsoft.Extensions.Logging; + +namespace Empostor.Plugins.Maintenance; + +/// +/// While maintenance mode is on, every player is turned away: the ones already in a lobby are +/// disconnected, and anyone connecting, creating a lobby or trying to join is rejected with the +/// same message. +/// +public sealed class MaintenanceListener : IEventListener +{ + private readonly ILogger _logger; + private readonly MaintenanceStore _store; + private readonly IGameManager _games; + + public MaintenanceListener( + ILogger logger, + MaintenanceStore store, + IGameManager games) + { + _logger = logger; + _store = store; + _games = games; + } + + /// Turns maintenance on or off, disconnecting everyone currently in a lobby when on. + public async ValueTask SetAsync(bool enabled) + { + _store.SetEnabled(enabled); + await _store.SaveAsync(); + + if (!enabled) + { + _logger.LogInformation("MaintenanceMode disabled, the server is accepting players again"); + return; + } + + _logger.LogWarning("MaintenanceMode enabled, disconnecting every player currently in a lobby"); + await KickAllAsync(); + } + + private async ValueTask KickAllAsync() + { + foreach (var game in _games.Games.ToList()) + { + foreach (var player in game.Players.ToList()) + { + var client = player.Client; + if (client == null) + { + continue; + } + + try + { + await client.DisconnectAsync(DisconnectReason.Custom, _store.MessageFor(client.Language)); + } + catch (Exception ex) + { + _logger.LogWarning(ex, "Maintenance failed to disconnect client {Id}", client.Id); + } + } + } + } + + [EventListener] + public async ValueTask OnClientConnected(IClientConnectedEvent e) + { + // A client that never reaches a lobby would otherwise sit connected forever. + if (_store.Enabled) + { + await e.Client.DisconnectAsync(DisconnectReason.Custom, _store.MessageFor(e.Client.Language)); + } + } + + [EventListener] + public async ValueTask OnGameCreating(IGameCreationEvent e) + { + if (_store.Enabled && e.Client != null) + { + await e.Client.DisconnectAsync(DisconnectReason.Custom, _store.MessageFor(e.Client.Language)); + } + } + + [EventListener] + public void OnPlayerJoining(IGamePlayerJoiningEvent e) + { + if (_store.Enabled) + { + e.JoinResult = GameJoinResult.CreateCustomError(_store.MessageFor(e.Player.Client.Language)); + } + } +} diff --git a/src/Empostor.Plugins.Maintenance/MaintenancePlugin.cs b/src/Empostor.Plugins.Maintenance/MaintenancePlugin.cs new file mode 100644 index 0000000..f06848e --- /dev/null +++ b/src/Empostor.Plugins.Maintenance/MaintenancePlugin.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Empostor.Api.Plugins; +using Microsoft.Extensions.Logging; + +namespace Empostor.Plugins.Maintenance; + +[EmpostorPlugin("cn.hayashiume.maintenance")] +public sealed class MaintenancePlugin : PluginBase +{ + private readonly ILogger _logger; + + public MaintenancePlugin(ILogger logger) + { + _logger = logger; + } + + public override ValueTask EnableAsync() + { + _logger.LogInformation("[Maintenance] Plugin enabled. Use the admin panel (Plugins → Maintenance) to toggle maintenance mode."); + return default; + } + + public override ValueTask DisableAsync() => default; +} diff --git a/src/Empostor.Plugins.Maintenance/MaintenanceStartup.cs b/src/Empostor.Plugins.Maintenance/MaintenanceStartup.cs new file mode 100644 index 0000000..1015945 --- /dev/null +++ b/src/Empostor.Plugins.Maintenance/MaintenanceStartup.cs @@ -0,0 +1,22 @@ +using Empostor.Api.Admin; +using Empostor.Api.Events; +using Empostor.Api.Plugins; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +namespace Empostor.Plugins.Maintenance; + +public sealed class MaintenanceStartup : IPluginStartup +{ + public void ConfigureHost(IHostBuilder host) { } + + public void ConfigureServices(IServiceCollection services) + { + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(sp => sp.GetRequiredService()); + services.AddSingleton(sp => new MaintenanceAdminExtension( + sp.GetRequiredService(), + sp.GetRequiredService())); + } +} diff --git a/src/Empostor.Plugins.Maintenance/MaintenanceStore.cs b/src/Empostor.Plugins.Maintenance/MaintenanceStore.cs new file mode 100644 index 0000000..39c48aa --- /dev/null +++ b/src/Empostor.Plugins.Maintenance/MaintenanceStore.cs @@ -0,0 +1,65 @@ +using System.Threading.Tasks; +using Empostor.Api.Innersloth; +using Empostor.Api.Service; +using Microsoft.Extensions.Logging; + +namespace Empostor.Plugins.Maintenance; + +public sealed class MaintenanceConfig +{ + public bool Enabled { get; set; } + + public string MessageZh { get; set; } = "服务器正在维护中,请联系管理员获取支持。"; + + public string MessageEn { get; set; } = "The server is under maintenance. Please contact the administrator for support."; +} + +/// +/// Holds the maintenance flag and the two kick messages. Persisted so a restart does not +/// silently drop the server back into service while an operator is mid-update. +/// +public sealed class MaintenanceStore : JsonDataStore +{ + public MaintenanceStore(ILogger logger) + : base(logger) + { + Load(); + } + + public bool Enabled { get; private set; } + + public string MessageZh { get; private set; } = new MaintenanceConfig().MessageZh; + + public string MessageEn { get; private set; } = new MaintenanceConfig().MessageEn; + + /// The message shown to a client speaking the given language. + public string MessageFor(Language language) => language switch + { + Language.SChinese or Language.TChinese => MessageZh, + _ => MessageEn, + }; + + public void SetEnabled(bool enabled) => Enabled = enabled; + + public void SetMessages(string zh, string en) + { + MessageZh = zh; + MessageEn = en; + } + + public new async ValueTask SaveAsync() => await base.SaveAsync(); + + protected override MaintenanceConfig GetSnapshot() => new() + { + Enabled = Enabled, + MessageZh = MessageZh, + MessageEn = MessageEn, + }; + + protected override void ApplySnapshot(MaintenanceConfig data) + { + Enabled = data.Enabled; + MessageZh = data.MessageZh; + MessageEn = data.MessageEn; + } +} diff --git a/src/Empostor.Plugins.Maintenance/packages.lock.json b/src/Empostor.Plugins.Maintenance/packages.lock.json new file mode 100644 index 0000000..5763b34 --- /dev/null +++ b/src/Empostor.Plugins.Maintenance/packages.lock.json @@ -0,0 +1,140 @@ +{ + "version": 1, + "dependencies": { + "net8.0": { + "BouncyCastle.Cryptography": { + "type": "Transitive", + "resolved": "2.6.1", + "contentHash": "vZsG2YILhthgRqO+ZVgRff4ZFKKTl0v7kqaVBLCtRvpREhfBP33pcWrdA3PRYgWuFL1RxiUFvjMUHTdBZlJcoA==" + }, + "Empostor.Hazel": { + "type": "Transitive", + "resolved": "1.0.2", + "contentHash": "cblWCgvLcQ2xK6ztV04RVrghVEnJpCWe4N6G3LCNaJhuUq367a1/bbtQxUWAflqvgSvGwY3g3SClhh9eWTCBDA==", + "dependencies": { + "BouncyCastle.Cryptography": "2.6.1", + "Empostor.Hazel.Abstractions": "1.0.2", + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6", + "Microsoft.Extensions.ObjectPool": "8.0.1", + "Serilog": "4.3.1" + } + }, + "Empostor.Hazel.Abstractions": { + "type": "Transitive", + "resolved": "1.0.2", + "contentHash": "uJqGMASOGj+ELffmIMqubyvJ/FHjOXA1RtQdS38s1LRhP+Eu4zJMTTndr12+Q3vS0kHggFFyuExFmNxWyzWmig==" + }, + "Microsoft.AspNetCore.Http.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "Nxs7Z1q3f1STfLYKJSVXCs1iBl+Ya6E8o4Oy1bCxJ/rNI44E/0f6tbsrVqAWfB7jlnJfyaAtIalBVxPKUPQb4Q==", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.2.0", + "System.Text.Encodings.Web": "4.5.0" + } + }, + "Microsoft.AspNetCore.Http.Features": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "ziFz5zH8f33En4dX81LW84I6XrYXKf9jg6aM39cM+LffN9KJahViKZ61dGMSO2gd3e+qe5yBRwsesvyqlZaSMg==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "9.0.6", + "contentHash": "0Zn6nR/6g+90MxskZyOOMPQvnPnrrGu6bytPwkV+azDcTtCSuQ1+GJUrg8Klmnrjk1i6zMpw2lXijl+tw7Q3kA==" + }, + "Microsoft.Extensions.Diagnostics.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "JHYCQG7HmugNYUhOl368g+NMxYE/N/AiclCYRNlgCY9eVyiBkOHMwK4x60RYMxv9EL3+rmj1mqHvdCiPpC+D4Q==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0" + } + }, + "Microsoft.Extensions.FileProviders.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.Hosting.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AG7HWwVRdCHlaA++1oKDxLsXIBxmDpMPb3VoyOoAghEWnkUvEAdYQUwnV4jJbAaa/nMYNiEh5ByoLauZBEiovg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "arDBqTgFCyS0EvRV7O3MZturChstm50OJ0y9bDJvAcmEPJm0FFpFyjU/JLYyStNGGey081DvnQYlncNX5SJJGA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" + } + }, + "Microsoft.Extensions.ObjectPool": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "X21b8D6z58EG34OMLH955750mFaEaGs5xLGe9Vyi3059Cgb3sk+p2k/JlQXaieEBRrk+SVlFzDei3Q6PdVzJOA==" + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + }, + "Serilog": { + "type": "Transitive", + "resolved": "4.3.1", + "contentHash": "savYe7h5yRlkqBVOwP8cIRDOdqKiPmYCU4W87JH38sBmcKD5EBoXvQIw6bNEvZ/pTe1gsiye3VFCzBsoppGkXQ==" + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==" + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==" + }, + "empostor.api": { + "type": "Project", + "dependencies": { + "Empostor.Hazel": "[1.0.2, )", + "Microsoft.AspNetCore.Http.Abstractions": "[2.2.0, )", + "Microsoft.Extensions.Hosting.Abstractions": "[8.0.0, )", + "Microsoft.Extensions.Logging.Abstractions": "[8.0.0, )" + } + } + } + } +} \ No newline at end of file diff --git a/src/Empostor.sln b/src/Empostor.sln index 5bcb53d..332780a 100644 --- a/src/Empostor.sln +++ b/src/Empostor.sln @@ -47,6 +47,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Empostor.Plugins.Monitor", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Empostor.Plugins.Privacy", "Empostor.Plugins.Privacy\Empostor.Plugins.Privacy.csproj", "{959879FE-2FE0-4FD8-A706-0FA1B3138F45}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Empostor.Plugins.Maintenance", "Empostor.Plugins.Maintenance\Empostor.Plugins.Maintenance.csproj", "{79F25D71-B209-4B6B-89FF-54999A93D9E2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -309,6 +311,18 @@ Global {959879FE-2FE0-4FD8-A706-0FA1B3138F45}.Release|x64.Build.0 = Release|Any CPU {959879FE-2FE0-4FD8-A706-0FA1B3138F45}.Release|x86.ActiveCfg = Release|Any CPU {959879FE-2FE0-4FD8-A706-0FA1B3138F45}.Release|x86.Build.0 = Release|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Debug|x64.ActiveCfg = Debug|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Debug|x64.Build.0 = Debug|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Debug|x86.ActiveCfg = Debug|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Debug|x86.Build.0 = Debug|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Release|Any CPU.Build.0 = Release|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Release|x64.ActiveCfg = Release|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Release|x64.Build.0 = Release|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Release|x86.ActiveCfg = Release|Any CPU + {79F25D71-B209-4B6B-89FF-54999A93D9E2}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -332,6 +346,7 @@ Global {135D8F7F-C330-444E-94D4-D2D3944F688A} = {E0009DCB-32A6-45C4-A06C-7F62D4091A29} {B50665B5-AEDB-4F56-B54A-542863EDB009} = {E0009DCB-32A6-45C4-A06C-7F62D4091A29} {959879FE-2FE0-4FD8-A706-0FA1B3138F45} = {E0009DCB-32A6-45C4-A06C-7F62D4091A29} + {79F25D71-B209-4B6B-89FF-54999A93D9E2} = {E0009DCB-32A6-45C4-A06C-7F62D4091A29} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DAF5625C-7E46-4DCC-AF2C-11D20D965454}