From 49215e791e14f79dfd43d4d13dda6eb3f5f3011e Mon Sep 17 00:00:00 2001 From: Maximiliano Jabase Date: Tue, 9 Sep 2025 13:09:57 -0300 Subject: [PATCH 1/4] add cooldowns to prevent multiple restarts --- plugins/server-refresh.smx | Bin 9232 -> 8473 bytes scripting/server-refresh.sp | 82 +++++++++++++++++++++++++----------- 2 files changed, 58 insertions(+), 24 deletions(-) diff --git a/plugins/server-refresh.smx b/plugins/server-refresh.smx index af7ba09ca8f2ab7c619db5b1f9526e1cc4e2d371..3083c945d540840e177bb1a0ed3d8f1c6393d2d3 100644 GIT binary patch literal 8473 zcmYk8by!qwx5kGCkyN@tx7VN##}x+vuu*&{ z0RZTd0RT@?Ed34uh(kGQ2^d82H&h-yip_NZfKZgPqXb2=+5z}% zt$eKje4c*Ru1+>S|AN1jHwxUXe4YI5{slLbdHec0{crBS7R<8d|_pteg1EFxUh)`1%ueAX2kv+o{5ng7C4Sb{ONQ zum5&Lk_$rQv7yQsHOsOzf{-g3$5;Z800ulN(tl7^!lOWg+A*?m6EuKrJS=SiVHS>6+R=n&MHj9Sfb=nH`ecs;AYZYeav1Q6f2*TTMeRsI02(#I{%%tc{S-8g4duh& zwJ)H12}z`M93lXvVnds-p{O%0$yPn3+_#1`bPk+(%_?trq@$5i?ZF9WQx}<)jSG-D?VX8_+;0~A2UN;~Zlnv> zo%I?@F(1%4(NvUo4hMJZdkh;pjD!OQNsR(IB_GKG{ zy93kRB;QGe(d7Sl=yBOfP=bnT%hPE6?r0PammLwKOWT^uF>TjTJIzlG>9OY)+q2@M zfDF3iP738T>(cKnx#+@bb!+>wc^p80ZAseL5{56ou`QrzTT+)cF#6)No@}0c>*%Oy zyMkJPK6%D@MUiZH2OExWwac~4l)?K#x1M@4t@q!*g7ds2cG)2NN31l1hc}j5z zwl|{6`yeiZzM6|irF8y5?w;;@ZpaXqLl5Y55ly33$N1KlgsSRi^AEmh{f=7w79la< zg`iZvfngc7Mp-uVt4q^T_3uJr%Amif7IV(8=EzejJ=of7(xnPZ`JboQG_VbAGJ7l9 zGvcsiYKm8us{FtoBjG7p-pY2zv9N|oSC9DVtL1Yu+vLvc`zb-4&$ur4zp|+~hV#M1 zd+OCMv(+z^Y(JTms>8BrlbjCvlx&?Lw$2>PI^NjgLS^YvrKJPFU*1uIV)9Dc!@p${ zp;&FcNf{^H%qlJPB22#dd=R{c%E zC1Bwae*;zh-BQ>eN|Uf1Vwvs7wFfgUod?y^dvS{TSU|@@ru#ZBGP00;=Bt@fok^?j z+Zm2_gmyNBywnc5D>5kt(Q^$P-yTSpWM;1QxjcTI4wK=p`w+Wuz*>s*FgH)9H}`9q zSi!mYQ+su$xoX^gy1k>fwQ>2krW7e@ZvK?d+ha;-Rt~VP451QZNPSUU&)Pst9th%=BML$-5}^9mu1yo zhm5L_S@@!9#-_D2PtkDNfS(FlLnbX0`;G-2WgPNs;-V_=}ehvKsaK#xli82jm8)zZvAn3g8U|)u%lGZCPU^K6M)Ne5FvvAp$G|@7w zT1N916<>_N)U^r)z2C@qAhE%nQ^l&~qh;|+ixme-^>OArkiWlZW~PmFM9T)U)Q)_5 z`gp}|a)qexLkK)phUJqOEXk5R62DrBn+qMnE}^Qha?0-xWggX=hUvBXyyPdW)hY{* z)>35&80`(RPrskgq!lepG_@0&nx@uW;0WfP&j01ypSr=4KDph|MY_r{+Y(=*a4S_|n9p)j(HtuO`>h9=d6WFd|3pZrdQ!+Ih1 z2G30v^+nx18|Y0IGqe^icXdr3Br3){K0Pik?$&1Z^?|dl=;$H04*>;DM;8m;otKxp zQ(GMGGBJ)|@Tw#SZ?n4I3lZnZd|ug}w=QEBSO|&JdYuJA>cy*5YkG|@8slFI2mQti z{g^=y!nX^w&TPsWye+ZwYpcw9HW`Q4s-O7jEIo~ba(>702 zH<84u)4@u5zl*J1&kfzwR?i;+us>q(!VT~7wAg@PiF^;^pH?=_GnXOrTgP3~JI7sR zlSV7|ZQ(Azxjy>W9r!0|Y4$XUY7C(?>GNvGS1MuVui4On_~~xe405pgQ1GOoG{>wX za*cY@cE%J-vq|1dynHQmEiaDsJ=b`VPqyO7i}!7zp=+H~*Cjp6@E2bc{I_c>=ve6c zywZO5P1NJ&=+|(}sFvFq$1~2DN|x)5jexk!)ruY4%ir;vV3#)8X^a1B!|&dw%N@8< zrA=g{XjHuleD0^`>?MuDxG7BRM*96nt9tEvkq2I_g5OFhlk0 zKYDX|WijMxGokla*UJ_S3{=YqdWmmTppOdG;%S5qz>OD`MqG3&ZbXo$2GcYC&ULv@ zlxM(cxf4-3B~jaZd$`D=2Fjg)ioaY~#pmlT@^z(8@8bhs5Ja#@%~tJqDJ1?dk9?}I zQDXAJJ^DA9v}`}P^XsK|--zjw$>s*Eq53yC?4!S=BN6NCV(_i@S>k%LqC$QAI);Bc zQ|l5vF452{-(}D*BceIP=+K8)^$n)ab>M#4m(S>!m!5&cHaPU07!`QQ=AoooO7J+H zw*gz6=N~WIicI7ik2AExm%2FQ)AOk`pd4L>11EUwZT1o+FM@Y$(F)Q1j<9r6+?v4s zo?OD&yc?gE6Y}{hyEa#URcv6pIoEPKvDg<;2}mCO)K4 z!5as^@zoMkP+EERMI|;S7V@SL+qsX#uSIy%)E77qq-)Sd#br`DCnDJskxH9cwe!f4uhY zJ#XpBSXNWMrWO1wAZ?v1XtNs+HZZBh8|gO2aN}Sks#5R@TUVXj4%5542^(LCo$jdl zP%GfkA})GcKiSOCo-GiW&;O2HGJ4!r-I82Y;Dj~fi`kfh)0FfG|8FI3O}sMbtL~<>R3G}4Hj~1C*66yIltn_yXEa-k8p1S^?fmG z*BXAHQtelYv0p(tJ|t7ol4Dd>yh)8+AGbJe5rlJmBNiMp$-D=ZO<*xt6wb zcn?7<7xrFBu>V!hSEaX%-Ey&w1(I+QfA-~iC}w7=Yl$jj#vP**_$?;9pyzADhSXG` z0wl4VHTe0HjPKS_HppMaP7cnBJ_P&bU!gB^ifFR^-^?W}vt%&_sgkJA^g|qtM;BKX zUmS&2D8~sLi|~*ZMb<)?6KT>Mcz@!ZSG`(&7Sxu1UAGl(o)D3re?6>u8^jOCk~uvx zH{k0B2N#h@(muDw0hedupW}jiLz!0PAw8;b#jWg8Au;QsV*WBbdtYityjNf2>z)OJ znjE-#q;!x>Fy}Arnl*kb6(Yu{nHMzQ01I*7{ezw%2a{J1>}p!TE@c zuGdVDe#0a_PvV@py;sg1oP220qe=AS=fY;|@2G+E#JUzy?7x#diKTbn1_Wv>8b#@k zI>?9cx-7jqwR(pHWD~+@`Qw^qiT7fCW{8ooucwLoVlN=XCc=kXlnnt$QFqssp>xIj zOE2{$AL-SE$M__h59WW*>BIe~P6tFX&L2WUsD>=zTw9`@hE%5_J++^&UDosl8>oiH zL~A#kfHfsF7VNE2xAt^qCI^Q<)_r{Fi;e(hvHRlk3zTLN8Vh^-x8!C$1uhdjOtqy) zZ0-8fKQn42_M!3%gzfYt+^P%G?W=DVBo3&HkMP>1H5LpGiogw0^taUsM)_Wf z<1^5G_Wq^deMpO?crLd>j~>wh$E9{`PV7#eH!MWSha}zAoi=mpS0!+k?#tbTvpiv@ z(h9%IR*qmTa@_V*lB4beUlA$fiw&BYDCc_KYDHC&7C#j7;b6=8gf=ifu zzDbUsZ@%a$oN^3hWTO6Vtl(lo6I59%F_pFGP#%Tk`=ri$l-;nslovMyfA~zdk^QI0 zK_D~@O{z=yx${c)DpjHqi{vNVYuE|g8(m)OEX+m?RUr!c=gd=-tug+=6S^v=FP6>3 z%{QH;`})D9=+0$6hPq*D1GlCeiKCNdcI}_#O@N92!-WlU(!H5z9I zAr(O7^$>>R=gIxCo&WM1_&mTE|#{E z)T~eOOXsdW_G=?N_BfY;J+Q9V3EFjLNVwGX)L&s321SK~PfKE)+R$}ttjKp^^v3vl=yI?sE74#WjZ%$iLxu`%nBUZA>cwEj8$$aKLbO|Y`oVVlX zJ`A<`Cn{RdlQ)6uEhdH!8F~%Czsz#oy)fdUNjEgy2 zM;P5^i0`a>hxQhvk7JG5ysAi%8!nNA!zU5%(=GL)Ldm50s?i5-8T6wKGAk9^fW#9H z8&tXw1Mq-|p5BjSvMAsK=rfF=Rr=42tW5a^dU{o{SxTPiWZ{cCJ$DjQ<{;ZV@1%8V zCe>519X7BM@Mx2NPtcTUrOynwj7fo8$WN1w#9VNUx4g!4e{RYV^(a-e!nxh1Q7?gI zKKv0`JlX~1#=<$J+ObEAMKW*&;QJ}!PLz0eFe;>acc63W-UySiJ=4yYvx4@>oy{^N zS=~mITT-kC%$;X_@Wf)2SV2R;Jn{UW_~QdMs3kcTrQYEBlMH{%bVrx}u+A0wroQ8h z1kBfm2X^l($Lb)=r#P0r>$0TS{0@Z0oj&nreK4w*@OoFT7TFwQa_#{%!ym@GmLF9( zlfmks>Wwf4*KzIdg_b_4`ObYRt=J~Na8JpUzBC)}dU)Dc$#19A#-2A;*8ObVpJa1r z>3JSJwKCt~Lc>mH-c_^Ed+qyxakFTz$1nq?VQQ6b?+v?dRRn3GlvzX-utB;Moj6~) zpu`gAfkTx%6!GwuR`czG1J?D!9t2A6qD}|a0TLBIq6=oMQ;?Kso~c2!f#v7qCe=ow zIrn2gB9q5Y>wPm`+A@R+5!eiBq<37>P-cV>=I@(US6cZ*EG*Hzwcgk@>3Ikq&_S&D&59s0T;$m5dq~CX`2z3+u8|x^$t11I0oN2PX~Cz(c6bi}d`7|1oFVl1 ze2SMZRqt`-?l7lLVsSNPXYd}1*Ok6U$TQaDuceKJKPaFJmFPbf5o$i*p|9a~e;`U7 zZQ~^(y{i;AMOaMXU`E8OTL3d>9f2a%*@E|LB&}*^dxsFSI{_dr_)(h$W3_b%?}5TM zY2D7R9v-n}!vO5j#hKSEe8hWDr4vqw&XNZ57d<+hyZELRD4lTvr4xvJd07He3K;N3 z18sSSi!vb=8O@%j7wj&Epv4y2xbHB;R@SCezwF1 zI|tX9G|0vfndABso2tE(_oM@3U@n-10_e$S2Y0>ekGz0y{Q#?b4G`rs{B@PBJ_;ra zGX9bc&jtQxE9z$e#IsPk?V3%jR&}yRv^Wy1A>3{f_?t5gat7*aj@!(2roZ^WdtT{Q zI4=YP=%Mfs)R`=zc}DpcxQ={h0c4Oxa#9vVI)Aog1t%zd$ez8;nOtZW4ou zio5UgGCFH=>CA=lW*3W(c)J~{Qczv&vwJP zAeh&&C%Tgus-Tlh*y$nUI>LtAO&UtkV3)|dS#V^NfcRK==n@@Bh9F%*6RX`Bn4ei_ zEOljh9V~+|AChZhuiN@?h6j`ioOE%b9SSiTV|Z;^z0=Ts8_eXdka!ei<^P#cxZc^E ztsj6O?LS0pVHU5eoiTl05J~=A!62uol(^FSI%dzqQmT?IHJ&jK1GB;IrLrewsK<8n znlR8X=adEE{P`oM#mDn|eW#93}+r;N*7%OAHCHP60_ADg}*Pr+Fz& zA{pnES*GL>CB=kb`i9URp_Ds38${}!t+>+7`!5ighqA=K`x8k+-_sqQze`g%vpKX( zOe&@YMidh+^nP}Wpj-B!O-Abot4)Lp6aM@Ft2G(*r@_(bHD}Lk>>Au4t)J22x0CpS z!EBk2F}5hZm5j5vGyJM~O!OPt6=M5U^H6z4gH)dB;1y*ockhF{;lvdM4t?(lz43%U zMJ##mNuKG%>tUU-^f0rDtDiM_aF?#8@T@wIxKZTa5cN)@Kjhiv!TNC3*EG&{C_V62 z(Qfd%(RXTh#i*rkVVGhx(T**MVi<3|0_JHW;^Q*mu$pJp0K-@}>D`Fm0SKXB;5tjo z7+5#JP}%)y-3YkM`_TJWdYfnp5#x<}0))LlAS<-u_TsciLW%znKV^|=Q|(B}x9s0c zVs%?|1BRf!ZN&hCsg2D(Ex4xaWAR?85$56%}K>wxZ&ux z3bngin@SN6Y=&Gme3p_#!>;PfF z?1|aKl}^}u{+akr92&na!pH#jke3EdZiF$~Al*PS!K>f;aQG)p?ySbHc^+hUkmM0@ ze=rhc!f#l(*E*`EC3)4%q~Wrs-j^HdvZW4HM4$I6h~DpVK|_^H3Ih4xgN*eC2@WyV zX@taul^O)t19sWwrWN3JQg7Pu4j7TMU>xuA_bS#4@7+yMdq$&DYIO1UYHg8~ECPEO9a-X} z68YXoIx5!7dM6!+!*W5EMeOXtwmXT{iTx)vv!rzKyhd&8RV*8X!vw~3@#Dq^#D{N= zk4J0F=;GlPZI4wf4HP^gAN^hkf8I%KNbKhW(X!IoLMHP*tt8B+ES6_nn4q3=6>~gz zb8I;#qNQSuG&zYldUFgOYb#IeSMJP7K6oSg&Re*Gr9qFsTpe{Nq<45VOM?;rmxjdZ z438w07p{A1uYa&Kl=Fu%)8Rd8il2zT?@rMQOg5ZJ)}f?}N1#(#7O;>AGJeTTRK$z~ zsf$nJ1tgC#{o!5hoAIDJ1~B(Ph3-ghXz9dUHiDjFdgqSGeac9Er6@o6W}7~<0;9;f zIc6o5M$7#j1DSCT&lW$Yz~WUUKM5;oKGSV_<4BI7zvEo8cf+xqOj1?m{A={PF>FEG z{M+{(#~R^RcWk@fnl}g%f_PSz8$|wdd1<(VikCvViY6^pxMLpMUR1tWpADr#MCiqh zt0t{>SOYZmnPy%@cZQFVn8|LR<3Z!?#VZFJvF~2W4{^~RybdN2o#{cUVjlcaiXSb> z4=f6Wa5GHS(Q^zZ=F%h?t{8W=>gJQ*V=zs#j|C0J6gxBu0dv0XZb;Id$6VYYD8_;` zMU{pvbFW0%vPFLmUy9n7i+&op6fJ8+I6hAr%aP&U3&N1bjrAHiB<=Q%0iWuWD-Q!- m7XR`hT}o7#v7!zv8qo=Ek^dB4Ff>CAL#V(I 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 61) { - // restart - ExecuteRestart(g_iHourlyRestartType, g_iHourlyRestartWait); + // if there is nobody in the server or it should be ignored + if (GetConnectedPlayerCount() == 0 || g_iHourlyRestartIgnorePlayers == 1) + { + // update last restart time + g_iLastHourlyRestart = iCurrentTime; + // restart + ExecuteRestart(g_iHourlyRestartType, g_iHourlyRestartWait); + } } } } + return Plugin_Continue; } // timer function for restarting daily @@ -270,13 +286,23 @@ public Action Timer_DailyRestart(Handle hTimer) // check the daily restart time if (StrEqual(sTime, g_sDailyRestartTime)) { - // if there is nobody in the server or it should be ignored - if (GetConnectedPlayerCount() == 0 || g_iDailyRestartIgnorePlayers == 1) + // get current timestamp for cooldown check + int iCurrentTime = GetTime(); + + // check cooldown (prevent multiple restarts in same minute) + if (iCurrentTime - g_iLastDailyRestart >= 61) { - ExecuteRestart(g_iDailyRestartType, g_iDailyRestartWait); + // if there is nobody in the server or it should be ignored + if (GetConnectedPlayerCount() == 0 || g_iDailyRestartIgnorePlayers == 1) + { + // update last restart time + g_iLastDailyRestart = iCurrentTime; + ExecuteRestart(g_iDailyRestartType, g_iDailyRestartWait); + } } } } + return Plugin_Continue; } // timer function for restarting weekly @@ -315,21 +341,31 @@ public Action Timer_WeeklyRestart(Handle hTimer) // check the weekly restart day if (StringToInt(sTime) == iTime) { - // get the current minute - FormatTime(sTime, sizeof(sTime), "%M"); + // get the current time for hour and minute check + FormatTime(sTime, sizeof(sTime), "%H%M"); - // check the weekly restart hour time + // check the weekly restart time if (StrEqual(sTime, g_sWeeklyRestartTime)) { - // if there is nobody in the server or it should be ignored - if (GetConnectedPlayerCount() == 0 || g_iWeeklyRestartIgnorePlayers == 1) + // get current timestamp for cooldown check + int iCurrentTime = GetTime(); + + // check cooldown (prevent multiple restarts in same minute) + if (iCurrentTime - g_iLastWeeklyRestart >= 61) { - // restart - ExecuteRestart(g_iWeeklyRestartType, g_iWeeklyRestartWait); + // if there is nobody in the server or it should be ignored + if (GetConnectedPlayerCount() == 0 || g_iWeeklyRestartIgnorePlayers == 1) + { + // update last restart time + g_iLastWeeklyRestart = iCurrentTime; + // restart + ExecuteRestart(g_iWeeklyRestartType, g_iWeeklyRestartWait); + } } } } } + return Plugin_Continue; } // function for restarting @@ -412,7 +448,7 @@ public Action Timer_Restart(Handle hTimer, int iType) } // stock for converting a string to lower case -stock char StringToLower(char[] sFormat) +stock void StringToLower(char[] sFormat) { for (int i = 0; i < strlen(sFormat); i++) { @@ -420,8 +456,6 @@ stock char StringToLower(char[] sFormat) sFormat[i] = CharToLower(sFormat[i]); } } - - return sFormat; } // stock for getting the number of players connected in the server @@ -453,5 +487,5 @@ public Plugin myinfo = name = "Titan 2 - Server Refresh", description = "All inclusive server restart features in one plugin, ensures your server is always refreshed and prepared for the next load.", author = "myst", - version = "2.0", + version = "2.1", } \ No newline at end of file From a888ad96b2a1b0bd8d8d4ce4f43499d5e8027456 Mon Sep 17 00:00:00 2001 From: Maximiliano Jabase Date: Tue, 9 Sep 2025 13:20:01 -0300 Subject: [PATCH 2/4] add admin command to display restart schedules --- plugins/server-refresh.smx | Bin 8473 -> 10353 bytes scripting/server-refresh.sp | 126 ++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) diff --git a/plugins/server-refresh.smx b/plugins/server-refresh.smx index 3083c945d540840e177bb1a0ed3d8f1c6393d2d3..d833dbbe6f82435318dd2a1b9bc120244fd2a84f 100644 GIT binary patch literal 10353 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 Ovm<+UhX)prvHpLwbz-;x delta 8324 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%0Ax{4tj@c>Yy|C_V=@Eo< zfT8^7hNbg`rR3mXNpb)c?EOhF`Zj6hHaR{zzAwVao#x<`E7QoG5<{%at5$-2X4DK6 z&$~=d&30bT-5h<-bVNpjA@)wAHN1jNXg94rLy}x7&-+kc&34)Fxcy*AA<(9flT*}w zJH9Hu@3?w~oFSIqw3V}xZG(7-$c!O&%xs_Z;MLL5NVO$HEP$|XeW+xsr{WX)o}JzvHj(>zC2lThp)Bp(9Q~N9gwy`3Bb!k%9W`5&`7v<#>Igd8S{C1@ z+L4{O|4RIgw`e(Ay`f;4rX)EEaUJBll859HnGwI6APUEXr+cxzuH$%tav z*{+d!PZebmj%r>?scPEvG+|D;9J>*Dmc4e=NU~V42fw2^(2*LbF5w{5_SS zt9CBYTMvt6igPq@Agai*K?I!reP=_O;VkO>7D+W4s4cECWRr6#&XFnpbLc|+U77gj z;S2H72Bg!|gwbp{-rYbfS^Q|P;REun4^hw){W8@d@bjWyUgV4MO4Dy?0}6-rgPIjT UhgE;j Date: Tue, 9 Sep 2025 13:27:25 -0300 Subject: [PATCH 3/4] Update README.md --- README.md | 63 +++++++++---------------------------------------------- 1 file changed, 10 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index d323511..3cebb0e 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,12 @@ -Server Refresh ---- -The server refresh module of Titan. All inclusive server restart features in one plugin, ensures your server is always refreshed and prepared for the next load. +# Server Refresh - Fork -### Features ---- -- Set an Individual Custom Restart Message for - - Map Restart - - Server Restart - -- Set Restart Map or Server Individually for - - Empty - - Every Hour - - Every Day - - Every Week - -- Add a Wait Time before Restarting for (only useful for notifying players about a restart, if player counts are ignored then this is useless) - - Empty - - Every Hour - - Every Day - - Every Week - -- Set Ignore Player Counts for - - Empty - - Every Hour - - Every Day - - Every Week - -### ConVars ---- -Please note that all time ConVars are in string. +This is a fork of [Titan 2 - Server Refresh](https://github.com/TitanTF/Server-Refresh) by myst. -| ConVar | Description | Default Value | 0 = | 1 = | Minimum Value | Max Value | -|-----------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------------|-------|--------|---------------|-----------| -| `sm_restart_message` | Change the message that appears before the server is restarted | "The server will be restarting in {0} seconds." | | | | | -| `sm_restart_map_message` | Change the message that appears before the map is restarted | "The map will be refresh in {0} seconds." | | | | | -| `sm_restart_empty` | Enable restart when empty | 1 | No | Yes | | | -| `sm_restart_empty_wait` | The amount of time to wait after a server is emptied before restarting in seconds | 30 | | | | | -| `sm_restart_empty_type` | The type of restart when empty | 0 | Map | Server | | | -| `sm_restart_hourly` | Enable hourly restart | 1 | No | Yes | | | -| `sm_restart_hourly_wait` | The amount of time to wait after an hourly restart is here in seconds | 30 | | | | | -| `sm_restart_hourly_time` | At what minute should the restart happen in 2 digits | "00" | | | 00 | 60 | -| `sm_restart_hourly_type` | The type of restart done hourly | 0 | Map | Server | | | -| `sm_restart_hourly_ignoreplayers` | Ignore players on hourly restart | 0 | No | Yes | | | -| `sm_restart_daily` | Enable daily restart | 1 | No | Yes | | | -| `sm_restart_daily_wait` | The amount of time to wait after an daily restart is here in seconds | 30 | | | | | -| `sm_restart_daily_time` | At what hour and minute should the restart happen in 4 digits | "0500" | | | "0000" | "2359" | -| `sm_restart_daily_type` | The type of restart done daily | 0 | Map | Server | | | -| `sm_restart_daily_ignoreplayers` | Ignore players on daily restart | 0 | No | Yes | | | -| `sm_restart_weekly` | Enable weekly restart | 0 | No | Yes | | | -| `sm_restart_weekly_wait` | The amount of time to wait after an weekly restart is here in seconds | 30 | | | | | -| `sm_restart_weekly_day` | On which day should the restart happen in 3 letters | "sun" | | | | | -| `sm_restart_weekly_time` | At what hour and minute should the restart happen in 4 digits | "0500" | | | "0000" | "2359" | -| `sm_restart_weekly_type` | The type of restart done weekly | 1 | Map | Server | | | -| `sm_restart_weekly_ignoreplayers` | Ignore players on weekly restart | 0 | No | Yes | | | +## Changes: + +- **Fixed critical multiple restart bug**: Added cooldown mechanism to prevent servers from restarting 10-15 times when scheduled time arrives +- **Fixed variable assignment bugs**: Corrected WeeklyRestartDay variable handling in OnCvarChanged function +- **Fixed StringToLower bug**: Applied string conversion to correct variable for weekly restart day +- **Added schedule display command**: New `sm_restart_schedule` admin command shows complete configuration overview + +The original plugin had an issue where timers running every second would trigger multiple restarts during the target minute. This fork implements a 61-second cooldown between restart attempts to ensure only one restart occurs per scheduled time. \ No newline at end of file From 92cb5ee776d80266cbec5bb113f2d6b28d23a4db Mon Sep 17 00:00:00 2001 From: Maximiliano Jabase Date: Tue, 9 Sep 2025 17:28:38 -0300 Subject: [PATCH 4/4] Update README.md --- README.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 53 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3cebb0e..d323511 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,55 @@ -# Server Refresh - Fork +Server Refresh +--- +The server refresh module of Titan. All inclusive server restart features in one plugin, ensures your server is always refreshed and prepared for the next load. -This is a fork of [Titan 2 - Server Refresh](https://github.com/TitanTF/Server-Refresh) by myst. +### Features +--- +- Set an Individual Custom Restart Message for + - Map Restart + - Server Restart + +- Set Restart Map or Server Individually for + - Empty + - Every Hour + - Every Day + - Every Week + +- Add a Wait Time before Restarting for (only useful for notifying players about a restart, if player counts are ignored then this is useless) + - Empty + - Every Hour + - Every Day + - Every Week + +- Set Ignore Player Counts for + - Empty + - Every Hour + - Every Day + - Every Week + +### ConVars +--- +Please note that all time ConVars are in string. -## Changes: - -- **Fixed critical multiple restart bug**: Added cooldown mechanism to prevent servers from restarting 10-15 times when scheduled time arrives -- **Fixed variable assignment bugs**: Corrected WeeklyRestartDay variable handling in OnCvarChanged function -- **Fixed StringToLower bug**: Applied string conversion to correct variable for weekly restart day -- **Added schedule display command**: New `sm_restart_schedule` admin command shows complete configuration overview - -The original plugin had an issue where timers running every second would trigger multiple restarts during the target minute. This fork implements a 61-second cooldown between restart attempts to ensure only one restart occurs per scheduled time. \ No newline at end of file +| ConVar | Description | Default Value | 0 = | 1 = | Minimum Value | Max Value | +|-----------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------------|-------|--------|---------------|-----------| +| `sm_restart_message` | Change the message that appears before the server is restarted | "The server will be restarting in {0} seconds." | | | | | +| `sm_restart_map_message` | Change the message that appears before the map is restarted | "The map will be refresh in {0} seconds." | | | | | +| `sm_restart_empty` | Enable restart when empty | 1 | No | Yes | | | +| `sm_restart_empty_wait` | The amount of time to wait after a server is emptied before restarting in seconds | 30 | | | | | +| `sm_restart_empty_type` | The type of restart when empty | 0 | Map | Server | | | +| `sm_restart_hourly` | Enable hourly restart | 1 | No | Yes | | | +| `sm_restart_hourly_wait` | The amount of time to wait after an hourly restart is here in seconds | 30 | | | | | +| `sm_restart_hourly_time` | At what minute should the restart happen in 2 digits | "00" | | | 00 | 60 | +| `sm_restart_hourly_type` | The type of restart done hourly | 0 | Map | Server | | | +| `sm_restart_hourly_ignoreplayers` | Ignore players on hourly restart | 0 | No | Yes | | | +| `sm_restart_daily` | Enable daily restart | 1 | No | Yes | | | +| `sm_restart_daily_wait` | The amount of time to wait after an daily restart is here in seconds | 30 | | | | | +| `sm_restart_daily_time` | At what hour and minute should the restart happen in 4 digits | "0500" | | | "0000" | "2359" | +| `sm_restart_daily_type` | The type of restart done daily | 0 | Map | Server | | | +| `sm_restart_daily_ignoreplayers` | Ignore players on daily restart | 0 | No | Yes | | | +| `sm_restart_weekly` | Enable weekly restart | 0 | No | Yes | | | +| `sm_restart_weekly_wait` | The amount of time to wait after an weekly restart is here in seconds | 30 | | | | | +| `sm_restart_weekly_day` | On which day should the restart happen in 3 letters | "sun" | | | | | +| `sm_restart_weekly_time` | At what hour and minute should the restart happen in 4 digits | "0500" | | | "0000" | "2359" | +| `sm_restart_weekly_type` | The type of restart done weekly | 1 | Map | Server | | | +| `sm_restart_weekly_ignoreplayers` | Ignore players on weekly restart | 0 | No | Yes | | |