From 96fccb10415a6ebd96928ef2d880fe81e1661646 Mon Sep 17 00:00:00 2001 From: dvorakmortonxd Date: Fri, 4 Sep 2026 15:49:47 +0200 Subject: [PATCH] added combat logging kill, and a refined new welcome message --- .gradle/9.6.1/checksums/checksums.lock | Bin 0 -> 17 bytes .gradle/9.6.1/checksums/md5-checksums.bin | Bin 0 -> 24547 bytes .gradle/9.6.1/checksums/sha1-checksums.bin | Bin 0 -> 30485 bytes .../executionHistory/executionHistory.bin | Bin 0 -> 87562 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .gradle/9.6.1/fileChanges/last-build.bin | Bin 0 -> 1 bytes .gradle/9.6.1/fileHashes/fileHashes.bin | Bin 0 -> 20247 bytes .gradle/9.6.1/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../9.6.1/fileHashes/resourceHashesCache.bin | Bin 0 -> 18837 bytes .gradle/9.6.1/gc.properties | 0 .../kotlin-dsl-plugin-entries.lock | Bin 0 -> 17 bytes .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .gradle/buildOutputCleanup/cache.properties | 2 + .gradle/buildOutputCleanup/outputFiles.bin | Bin 0 -> 18947 bytes .../.globals.work.bin | 1 + .../.strings.work.bin | Bin 0 -> 12306 bytes .../_.work.bin | Bin 0 -> 894 bytes .../buildfingerprint.bin | Bin 0 -> 2756 bytes .../classloaderscopes.bin | Bin 0 -> 1 bytes .../entry.bin | Bin 0 -> 79 bytes .../projectfingerprint.bin | Bin 0 -> 535 bytes .../work.bin | Bin 0 -> 424 bytes .../classloaderscopes13361634749120215098.tmp | Bin 0 -> 1 bytes .../classloaderscopes11303081905500863799.tmp | Bin 0 -> 1 bytes .../.globals.work.bin | 1 + .../.strings.work.bin | Bin 0 -> 19749 bytes .../_.work.bin | Bin 0 -> 5774 bytes .../build.work.bin | 1 + .../buildfingerprint.bin | Bin 0 -> 2862 bytes .../classloaderscopes.bin | Bin 0 -> 2334 bytes .../entry.bin | Bin 0 -> 79 bytes .../projectfingerprint.bin | Bin 0 -> 535 bytes .../work.bin | Bin 0 -> 764 bytes .../.globals.work.bin | 1 + .../.strings.work.bin | Bin 0 -> 19711 bytes .../_.work.bin | Bin 0 -> 5631 bytes .../buildfingerprint.bin | Bin 0 -> 2862 bytes .../classloaderscopes.bin | Bin 0 -> 2334 bytes .../entry.bin | Bin 0 -> 79 bytes .../projectfingerprint.bin | Bin 0 -> 535 bytes .../work.bin | Bin 0 -> 719 bytes .../classloaderscopes16220690481779945732.tmp | Bin 0 -> 1 bytes .../classloaderscopes17273679322066117525.tmp | Bin 0 -> 1 bytes .../ai52j6yn7dodllvdf53pkfm4n/candidates.bin | 1 + .../ar1d6jr1dzfkx6v3l38d47pb9/candidates.bin | 1 + .../classloaderscopes16335041072390187000.tmp | Bin 0 -> 1 bytes .../classloaderscopes16498410897654978536.tmp | Bin 0 -> 1 bytes .../configuration-cache.lock | Bin 0 -> 17 bytes .../dm175kxwzsruj0sogx306vr1b/candidates.bin | 1 + .../classloaderscopes13362262299681345635.tmp | Bin 0 -> 1 bytes .gradle/configuration-cache/gc.properties | 0 .gradle/file-system.probe | Bin 0 -> 8 bytes .gradle/vcs-1/gc.properties | 0 .idea/.gitignore | 8 ++ .idea/misc.xml | 5 + .idea/vcs.xml | 6 ++ README.md | 5 +- build.sh | 101 ++++++++++++++++++ .../dvorakmortonxd/qoltweaks/QoLtweaks.java | 8 ++ .../combatlog/CombatLogListener.java | 63 +++++++++++ .../qoltweaks/combatlog/CombatLogManager.java | 70 ++++++++++++ .../qoltweaks/listeners/JoinListener.java | 14 ++- 62 files changed, 287 insertions(+), 2 deletions(-) create mode 100644 .gradle/9.6.1/checksums/checksums.lock create mode 100644 .gradle/9.6.1/checksums/md5-checksums.bin create mode 100644 .gradle/9.6.1/checksums/sha1-checksums.bin create mode 100644 .gradle/9.6.1/executionHistory/executionHistory.bin create mode 100644 .gradle/9.6.1/executionHistory/executionHistory.lock create mode 100644 .gradle/9.6.1/fileChanges/last-build.bin create mode 100644 .gradle/9.6.1/fileHashes/fileHashes.bin create mode 100644 .gradle/9.6.1/fileHashes/fileHashes.lock create mode 100644 .gradle/9.6.1/fileHashes/resourceHashesCache.bin create mode 100644 .gradle/9.6.1/gc.properties create mode 100644 .gradle/9.6.1/kotlin-dsl-plugin-entries/kotlin-dsl-plugin-entries.lock create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 .gradle/buildOutputCleanup/cache.properties create mode 100644 .gradle/buildOutputCleanup/outputFiles.bin create mode 100644 .gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/.globals.work.bin create mode 100644 .gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/.strings.work.bin create mode 100644 .gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/_.work.bin create mode 100644 .gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/buildfingerprint.bin create mode 100644 .gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/classloaderscopes.bin create mode 100644 .gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/entry.bin create mode 100644 .gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/projectfingerprint.bin create mode 100644 .gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/work.bin create mode 100644 .gradle/configuration-cache/0a6fcc7f-203b-41cd-9bee-4149060db226/classloaderscopes13361634749120215098.tmp create mode 100644 .gradle/configuration-cache/1dae3fb7-7c9b-4252-9987-7d0bf4c8a39c/classloaderscopes11303081905500863799.tmp create mode 100644 .gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/.globals.work.bin create mode 100644 .gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/.strings.work.bin create mode 100644 .gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/_.work.bin create mode 100644 .gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/build.work.bin create mode 100644 .gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/buildfingerprint.bin create mode 100644 .gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/classloaderscopes.bin create mode 100644 .gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/entry.bin create mode 100644 .gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/projectfingerprint.bin create mode 100644 .gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/work.bin create mode 100644 .gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/.globals.work.bin create mode 100644 .gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/.strings.work.bin create mode 100644 .gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/_.work.bin create mode 100644 .gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/buildfingerprint.bin create mode 100644 .gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/classloaderscopes.bin create mode 100644 .gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/entry.bin create mode 100644 .gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/projectfingerprint.bin create mode 100644 .gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/work.bin create mode 100644 .gradle/configuration-cache/7014d45d-1419-4a4c-8a3a-ef9442bc9fb4/classloaderscopes16220690481779945732.tmp create mode 100644 .gradle/configuration-cache/9291a06f-3306-48d6-9bf2-f3df3a9ed90d/classloaderscopes17273679322066117525.tmp create mode 100644 .gradle/configuration-cache/ai52j6yn7dodllvdf53pkfm4n/candidates.bin create mode 100644 .gradle/configuration-cache/ar1d6jr1dzfkx6v3l38d47pb9/candidates.bin create mode 100644 .gradle/configuration-cache/bd41d510-ed22-45ce-940f-f06d19f20a88/classloaderscopes16335041072390187000.tmp create mode 100644 .gradle/configuration-cache/c98bcd8d-0cc5-4259-9c8e-1d8f73264445/classloaderscopes16498410897654978536.tmp create mode 100644 .gradle/configuration-cache/configuration-cache.lock create mode 100644 .gradle/configuration-cache/dm175kxwzsruj0sogx306vr1b/candidates.bin create mode 100644 .gradle/configuration-cache/fd7352ca-cea3-478e-947e-acba6f17b48b/classloaderscopes13362262299681345635.tmp create mode 100644 .gradle/configuration-cache/gc.properties create mode 100644 .gradle/file-system.probe create mode 100644 .gradle/vcs-1/gc.properties create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100755 build.sh create mode 100644 src/main/java/com/dvorakmortonxd/qoltweaks/combatlog/CombatLogListener.java create mode 100644 src/main/java/com/dvorakmortonxd/qoltweaks/combatlog/CombatLogManager.java diff --git a/.gradle/9.6.1/checksums/checksums.lock b/.gradle/9.6.1/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..65aff3f5279a5a9f6b72a36b6ccacacd0927f398 GIT binary patch literal 17 UcmZR6ns>0(#x^a00Sp+E05bFhF8}}l literal 0 HcmV?d00001 diff --git a/.gradle/9.6.1/checksums/md5-checksums.bin b/.gradle/9.6.1/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..7c299e779fe940deb77230967ca82be0818821f4 GIT binary patch literal 24547 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 L=2U*g5vcWFoS#^M literal 0 HcmV?d00001 diff --git a/.gradle/9.6.1/executionHistory/executionHistory.bin b/.gradle/9.6.1/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..04941a5aa56d5347e27045dbe2979115f67aacb3 GIT binary patch literal 87562 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 Ts5u>azBPL*Sa9S*w+jCcE1`Q& literal 0 HcmV?d00001 diff --git a/.gradle/9.6.1/executionHistory/executionHistory.lock b/.gradle/9.6.1/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..beb0bb82689630f91b84c2dfc1ab56b219f42428 GIT binary patch literal 17 UcmZQRD8FLwarR|B3=rTC05(Phm;e9( literal 0 HcmV?d00001 diff --git a/.gradle/9.6.1/fileChanges/last-build.bin b/.gradle/9.6.1/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/9.6.1/fileHashes/fileHashes.bin b/.gradle/9.6.1/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..8831819a704c5f4ba8eebb8df0b9e9d2d8ad2f2e GIT binary patch literal 20247 zcmeI3do)ye9Kf%}J4)nrTFDNzIg<3yVs#WTk=NFmA=PXlqLMsT?OG*o(o#YpuTTl0 zmDgD!A$H@e9@^4NM3G2BduM+4cWUPPcmLV*z30rGdp>hN_jiAvd&fWKnh}JG+$U-w zJ}-)&H(?73KmjNK1)u;FfC5ke3P1rU00p1`6o3Ly017|>C;$bZ02KJY6xd2mL>f&- zMQ0XoV{QOJ=*f^9%A#M|bd2(gHd)|^1U&O7K zVxFoiTQ=b2z(w3L2lF&5mFX&fC2ho6e_?*b+KHXx=;ed><_gT)C&ygRUCI6$ajWH+ zKS*+smn{sAK-@+R^T#_Bx$}F{|3G}xYRsSZPZN{(hq@4Fd1F2}c<7qgtx-#gOJV-5 zr{*pC*mJ#N%t%cFXEmCUK@xw8f-*&)0R$*}vbsSsF73$q% zBE|-i5x4Zke13ef_MR8)57howF<;oZrOwV^in?CbwU`_3lIg#f<=symrwjA%I)W7A zi?!SkXQgAlp|kI1ZM0S>;#LWmTl9MBsc*e{6me^3%pDqBn-{$;U4{522IkJ`l2cBV zVP({D8Zh5I>{+cTSKdzT--5X-_qDc5!_9HTH^0K%E#A53$M#M=if_f-!&CEMP2=DL z>NxJ0@BJmuzwS=G1mc#an0v=7_r=v~3{d+gV; zC;$bZ02F`%Pyh-*0Vn_k{<{Jz$wMzCUmCoZ+)9hwHoxY^2zk!Qm-mJqlOKwtq?>qW zkRK9+n6fyz))h32QgZ8$JKpxG-WGX@%aQF6Fo=$Z8H{!8@u(=tYu(lc*E87cP60zq zErf1psJ6Fy1qNxVChFzi=o2>=FjS0l>BfN0abx|%6JGC@-m=|3d^qw;LsY|z_se^s zd4wM`;`&^;XFi@fWyjDsbmL2dC^vXUH|)#@w5~}XwRvOeaAM=AzKMWA>=dCJ9yg7; z=B-)$EPrEd_HM--!!Hf#^-d~u<4o%L_C2rGM`WB7-=N>l@FtD3_9l}(3 z%|mW3v+nOL_JJXpI;R4Pe2sirkZ>PMA%5%VB31WJFU9h(N4i7WY9vuAk+=$ z#(@o|I|7oL{o2^p;(7XdKL{GCy>vtUNLp!F#j4XqF14&7wl42_WbAEwK0@wEE`z*x zp?OG_?Ye%wX5R{t-)GrGn>7aVjGbBf)Uyu6BD&#UeKNvDSuZJa^>mFzWZxE^;U#~r zfZUT@7%XxnG)Cat?nP2dF2{7P6)EB**eCMOs~St7U$dV&{yU zS&&2-chDG;yXj*%FxNeat<6bbZDIYavpqyqa17Zvy78w!!^hICjH?_!!j5iItmn_8 za5aM(qm*ulSD0o68B-BsOd@R$O`*%=C&{*|Yp7lJotyrbI85eeKcH>+8=o zj*5Oqc9Yi{ZHX8B5YKnYo~IezzU$O6o9HWLw{F{*JQMHRA$pPQTNe)N!|tIc;`!%g zue{vlbLg*K5Pe#9f5Yd%4eNcg=rP&lx1wk?nR|R9fB*srAbSCZ>h|vV1NGwF z(-r0y%_Tv5x&PzO;O{y0qG`;Ne^ckxwb*^S$j)Cw>c!cMN3L}A1y;2_5APog*6mR* zOv6cxPzxG)h2YqQ(S4t+R~A4@O(01>6)jQ{`u literal 0 HcmV?d00001 diff --git a/.gradle/9.6.1/gc.properties b/.gradle/9.6.1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/9.6.1/kotlin-dsl-plugin-entries/kotlin-dsl-plugin-entries.lock b/.gradle/9.6.1/kotlin-dsl-plugin-entries/kotlin-dsl-plugin-entries.lock new file mode 100644 index 0000000000000000000000000000000000000000..d68285218464790ce9553357740fd1491de0589a GIT binary patch literal 17 TcmZR+eJy0A=as2z7@zFVU&5u6J zh&~XqAR;OTC4(VCQXhpvCqNx3P?&TrrHti3)m%jVctV_}z+DC@V8#@Mj zM`OLhsr^+-m!-A1B_Q)T+Fv*IgvN6|Cd<4}`{>ZZrEtj;d1g`hLHo)xpJ(~5+b;87 z?U9DEGw)o*zh(cLKRxKZ?d+bLmH9gDyWhX)J2{nw21z6_Vhd_=or@Ik|o{4BTp?iKB>vAnN|H~o5FJG58%`#q;GPN~DV_6wd? zclF4POxfp-_FCui)$00*Z_+cg*VX(ydj9QXRQkO3mc?KwurRFuV@SJx8b(56>>S<^ zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ o0R*;7;DotRl6hFCsbt|#~)maubtqcpLn%nws5R_bK}i=G(;>SAhU z8v0l2{*9agTS`oLcFU-DLdcxnzf-HpN{tyHF`2N)eKUeG4>N1PMV1<6I|B^>l1XK+lfs;rt82F3-8YCgSV0 zw>FFC9Hv1;k=BKf4U;NBu=fkbHw~}GW5bq8frpOhJsJFUcYkFW1ybY(qO;t8C`@^; zPQ$e86nXxWpF1@oV!fqy!&Z$%DI{O3thW)Zdd*1$-xr51BSZU#MBH`>PQI4f9C*aN#DqNg?|-(PJDO2YNm|}L zME^J(iTlh0DF!#<2dYn%>--s$j4Lv$j7}eh$e$o>Mp~yXP}jyt6+LkW;RtD9jtaMr z2-j@;Z7Ax{LgRp?T@l5@v!s|yek^A zZ$Dx}2z;|;sR(XdGR+L;fEy3)z11bywTCG!FS8?+0f6sTS4Z_Bb)*7Nq_=f?zHj#a z_g_PH*>)$VwPIdyL1CJXiD^Y7sc+DfGQcrDVfk9e?t*P!D-Yzs$6#q$(J%F} z6JcjBOJNLmMz(d;q({aCnkJC89D|{O0cgn7!=)Wp!|KGZ#TT5nECOhk%D8`sUOLAr zSiBVVH{>?5eAXvIqSB4JVY#fjcye}>4MJa{4Af^zz1YJDoy>Sv6yB50KV5O7Ia&Hr zCl)sfHnPN$of&(iz?_}OS^$y_SL$;}MF?t9;+v`Ew0#cr!waB_MCLPuRC^eWKjD5s zUp(Xq8qTnUDn02k(lnRccN#|a4iHxCLEy@;<@D_+A6cWJ<*X|fNd6tD^T;N+XHtlV zX0zl&Iab+AB!7bIQsBGQs%F%-C8f4BB|4Mftcb9(B^S<^uvVYmDH@=~1JS)m!}q7U zJ25aHh~#FgVLMhkp-faMmt)gM45c5VoplMPi#zdwbMHsdd8#G6eFMAxvv z9Nakts3tWmK6$VT=)!qu>X-yPH@JV4oCUAFAM3qZlk}QR;GKCU*Am)_s{HE#DwTi^ zsCqbhn^PI50nNgKyI$k2)IQpFnyvCfq&RN^nAdc{LuoQtVo({wF(Ed>e)Lp~smHOu zCCN)sMPVETXT(DlnoU`eW;$zHy;v5lUXps%2<$&~RiM6p>&vlbBoP_YgiQnxZsEqa z_jB)i6+6Erc+B`2#%#YlN$jttx#FSv)kN;^9)?^YwJ{<5_HsAi*`*FJ>PjbBM%pxe zjzF?t)R!G3B_PwljqD272&A(>6_%l*`N@0!s>nJPy?zT!R%2M2spCFt=~C(v49Tt^ z8D)hs3o+A%`Fc(#+6~g}hoI~M8}Mi$6W6D*P`&YM?@;TCH0yN89W9C^74KJFh3=-( zy5yzs?Si%^uUj3e^PLDC`}$aF$8KAhPP=bF9=cPExZkqKzqTaME04Qh_o`j`x*J1p zoVj6`&!O$LP-iTmlq{GpPg8UV3^P`wK43sdx6crmFy(wW@o)5zZWDkDs}Ai>?B}(N zZ7yCNH%I9dh2|%e9ae(~y?9&c*sZ1M?>n(sz~`;FXsU*0OeIX!yQhyuU0T_@5}?+W z09w_rKu&qm0K@`*#Z1qABu9lRLT;Yg$pruGJhy>LLSY`%k z|NUf?xOA43dX;fUE?YnG2~>vrtCSUE<-yJVJfN@~(Xzp=zHk~C*Yz?xYgf;3_~Owd z;1Y>1Z{2Th@S-cOYyGw3sTCbcVbA%(sa+-es;fJ4RkyEvgFWXZrfvWN-Gq@IfbJjA z3qVOmL7~9AHt|#*Oje6&jsj{;RK-wRP7<}v|Lc&?au`x|HMYX@iK044qe_otfa7NB zKORRU<=CzMf??eDR@Lv6#KSn%+$%@2bFimK?)mWCD zXA@buZa8LEooSaDnY1n;;=AF7BCf??M1Sw>c(FGJ)^QkO0AZYzDxI$>iHmgBy5`k5 zR)YqZpO3*I#HZvhNsV@)l(kbhRU?$*k#{^MN|fpr;EsLQ5n;fap^^3FWfq zI+dG=$5-+Gv{0(-`jJ)j@XGbGNRDqVnpCKa|CqhTJleuM-Jan zEH2`>2KR?zH;7bwigvfj;EV|frX%%;F7B^t^$NDv6DVo2ooN*p$_lo)M=f;*ddAyGD&w|J9YY3oFsqCBF9Jkx3%S zN}Dm{%Hc5vWo>T_@?Sz)-N~oPId2-fiGz#T`l{_@jZ0w3f@U8&qGy=4Q;NvoO4J$l zlgCK#IPLAsME1AjJpiAqjVu|reVTg<$fSSGlQnHntbr3W$Na2-lHzJS>BNMN6V1!8_Vl7WM>V-wiA)MM8(Ku zLHg&u6xY2uhS>c9(1dB2=JMO;amMZt>@KldG{eST7Xg%h_W<^|Bt8?UygYfo82QwL z9*Ow}qUpv7NJmUEGo}-1_IId#QFc4U?qmStp>QN*nwkp?8r$&>5J3jDN0LkxzoE@U z)%-|&UN^PcGZHVN8Lydc?492cUzEeDl1A@4+G%?o^zb&8y4q?jsqsmV=*Daxda0LvvjB&KU43Nd$Y^m|h# za*(sNEO5?c91Sat?ZQ~Df36bOEkkkqI-0l;4DEeFZf>P6H(lH{GZ&r-)dWF@tTx`* za{P02OI|ylu$)Giu3l{5(*Pkfu?b2(;1iRIBtNvCFfT{-Xxrgolv95gcbjUdiUIBS=%a6h%# zfLT*tCrbbfPFLUQA_PYj=9a2c+c3GT$xyW;s*ZXK!$aHH3xJb0Av=HNo!}fRJMpqElvTGWI;~gDA$}u1S8XVsedz^n9)P z`?*70uFN^jTIi;+Q@_PuRGPi;+F`P6euC+6-VR~WCHSZ)n-enZb3ER9SQl0HG2}>zetLBr%9s08;jpz`LEX@X`4`;0 zn@$BlWwvL_Gl;2d)Kf|R-ZW#y40fQ0ZJI-C;9C7Wg`HYe3=$2TZE?_mYcY%Lg_54{ zA}cys)75-p{f>$0S`ndBOJL_o*$fNKl(89RqW;K3(wmO{*80&bU(W{Z-`e8RDmqVjEKB*Ux=ScAk zUmP8$E?GYRx#2^E{!)oxtgHvlet@*<(4Z^4_GiI;(fGA~cN?3b0O&FddGT`OwMl=+ zT=m)8!S);MLDn=ycqSTeb==Vc240XgNTF1kuXBrClV7b3f}8ZWgUP0T()f`_bpiAp z)t2xkQGKzU--YgG-2w)0qtg~m4%xcMz{Bep`RDuoUM?k*K+XX3sJ<*lTmyt1-bv9Y z6D^_RaILEYy*qw;&^gTW!0cBF0%r$A^pTe7sqHTf>o0P{nI-AX3cBy?A2cTHly|~7 zOhu*2+h=EuzLj%{l|d4a@(ATh;bxz6DNjupM7N;-P}_}aEcxkzcE=T{9QcGMtZON7 zQ5T)!T2L+2v|%TXD+IJD$6p?(&9W>xstT5CtUpc-2 zq8~OCDvGROLYuC@{4hf~w1w0M$a~PilZoABKrUmzt8Gf&(O0<}g_N!t&$n(A(3f(c z05SRitp|VI1)(p3U31&*)Crw8+n=B<@B;EeRN4JV;qNG>o*lO^`HJIXK>a}pj{Sn? zojP2C@dPdwt(K(x!@`_X3TAj105 zkqA}72TdK~=}RtseiDcG5n_@Sh>MgYbqikqO27HzZ3Xtm!&&Dup#vkxjBR-9^J;~3 zL%o7NGmK?*5(q72K&Il;QcgvqhvDwZb}I4E7E?kMrf`kISL{=C!%nV#^Ae8EpwCv7 z(j`UQiM0lmOJ&D`sKEmh*nt~tefg=lk*MchcDKfv{|STvmdzb6DOAxAWuAes#q|mv zD#Q6vJOMm9ld!+$!h4S*hIx+exA~?J-d=iA%R1^n=_gf?dhEGB{&Z#_CN(r6qM@fn z4T=)l*D0{jmuCkU5@9X!C^77OTR zwpizVmu{_w5B1Vs88Xgl+|KjIk^2w9zn&ac&#B{{iV13LBS7C)sS0m6`RS)3>pCLp zXg@QzXMfX!k;E25?7lgpl;8&p^_x^|}e zqu@82dxeZwFhGfRF=|j0_&(OD=-m8N?Ef~R{>ytvDAs1=be`inB5}s}iRFGB@QQF` z6f&1=zcq%tYlh{+Z^*|rR^03x<7+iJ>WKD$5(}kX?Lgw{8>&-R>4UpMEHilRzP_lv zI8oGb*mF$VBt%zwyQS@j2EL?WH4-decL z2nd$PVoZcMG`f&Jlu{uJ+&6tQH@Kw^%wWNP`bXqV)3EIx{ikBou_%BoM5#>dAw#rS z(5%FavwDG*2o`mxhkGR{YqKx7QNq#5>>4uKXfJyK>MM)x7dYQ)DxisMX(ORowV7g3 zCBat*IPGB6@8YpxjCi&aoogrMZ!%eBn+mknoyuWi@kQpW@TPNYhr&Qw_ zM$T=a?SLMp2?HbNG9GD7j9QM-*(|SEv^TCmo>Ngy>&=m86vLNy59kO)WQD(6wI?Lj z*5fh}S(qE{Fb>#}X8aUha5X#w14 zl$L7pr#x=prL$x&wjs=YzOg8A<`E+5Xno~Ta0=yZgiUh<17}NY8@3aG6g5$);c9%< zpG{S`wzUpk>z$bjp85D`ZF(8tbw$;v>T;kWDa*N5j-}@6GEFucz;*?nA}aAmxdk2D z9jv>my0S3J@6L14sb0IMJJjUme|QMMjfX;#m+Uh4o~~>_ZO-1rdCFLdvTtEBf~>pb zTHQ4`b#eeV;DfnNJmg}u`CaX&G-Fm|9 zZD^{~W*u-I7xmZ~AliQIQUw)~!_iZa=)!O%9U&%&1%cjaz`0}i5oa$B>Q%V!N}g7+ zO||(+;weGOh8xsTA)UCvTw8LUwEoKN3z7+=0@G)DH0BE4_U*e_tr-50y646|wd16e zx>KL*pg%GSw&VoCzv>$`XSq2&>dj^4nVI)I9Q0^Q0EfCED4o)>?29PUd*1{lz>Q!t z-rz{jPvKLXlJy}-caI5{)Hz;xzfI9+T01l@?$)!UT+UT_Jvg1VJeVhz>@GE2M)(Il z;i*RU^Ge|5WjqgLn!B$3L?@mSA1L=A0y^f2LU$p3M<{JmWm3~ces~F(DbfovbO!H* z5WB+zK~npi^NjLd)4s(_Tf3wcnam&?B+&HiuDN)~Th95gqQ-RF6-$HAH`lJhG+|JN zS!A8(Wh? zGWm4Br6P~EX^{6s&!Ma)hiw4~KpQHDB<`tcGEhoGT1r#odBUo8cB{nb<_5!P`gCk` zZsMX)Z`Opn_Mzcs&)Y1v?#*J9oEvH^NrEUP_02uUW>_ zM<`ze;7y$B-$`~%2xeTbYY>(b$ZQ?GA|H#9LES5CqcH6Znj6+6vm2k|BuN$=?nwGn zTrU27Km{JC9kp5equveHW4nsQHx%`jS^ixX^pShKttw?1AZA*J0~j<`9T9bZ$krJ( z^zQ~jG&9_pn_7le_Vn1;2C~?dXRL^yreXK5M1~w;HimeY`j=e~^kQ@-GXGR9$eE5` zk%`!$i7@BLk?5-*2B5h=62oJk_+SWAoA>#^eBfdTl+o0>>b>e?C%)dK zJ_5{0Q;_hUm)^)r!*7y3w2taxu4tI;x|V{#wa~L0OW&Sa@P`Y0>@u4uC1V(t^QUE` zs<$e|0!O~?zm~TApm?OLFnojiqQYeZAn0rNjkQ*wIM|Psqb?Px&T+bSjNr_+*aGHl zvU6jvNuh5n572Z4vutGuw@?O?*x756SiLKui5(7Ps4DSLAJrPs@toO`mqUGw0#9YxMozP)(Rr^SE#shrqR4c7!LAU!8L3V&EpVk^wdl3O z0&woDD^gDozgO=N#y6Z4*k?%DkcrmZMrsv`J_^{gwqj+{t`rUTr6gJZ0=&3!)Anb6&&_A9s}Yk!5F|ZAhtVKK6XAI${#hV;OYV z_Oq9(E07In$Lf=L>B6bAM(CqQ*>r)9oVr>a^j9D}@8^;hGQvw88N-dcJMTa(sjO(p ztxQ^Q=KQ+x>dC)$n-s586pCLvWgY7L!3lMn4y1~1 z5vs|aZW5BS2q^E9t0JRzY;|+od&<(>G;u&wQc2Muf}g5Rv7t9A0K$fxMC6>f%tQh4 zR(hdvR?AgPY|tq2%hoW84@V|$-m)Bd>#h-@;#sSfCC4|~QP(w5Q)%E8Q1DC)1_NUb2RNXslg~dT5yZPu7$i=CJsQr9R5s_n+-a@}N zj_}1q&tswISzaiZF9>VxKwAe{_G!NQs>0mgSsyk-cdd?cMzWH(j4f%7u)7H<2K8B0 z^9-U_<=8F)9lKe3`|=c<7`(8{?+y<9kZL*>({vU`_w}L?Syy+O1oG`lekIx9RkQ4;1{iYZ+z>>ljAL0XG|GL5 zaW{0+@AcKf#`&H)TY61Wtb1w|zj)R^ z_qPU(e}x$eM|vZlxGf^POhFXbsQ;Kx&(#810PwOfwS@QX(LEI+RDDT;S2TZ=R~7jD zWZa-?m!OutA3NF$>SizOVo`PgD)=M?-}P?LBq9M`f#?QrlayOX<&_W|+wtKDHbC>A zk<+rjCE==&kSyixk|`~dsmW8%d3NEk;>A8kJ8zn7d6Lt@d+CeQizvH7mZZ}ks4C|m zGug3OUr5!Q5UbgNol8KeL$rng)lguRZ}64t8c5ra9}0>OqyN(iyrdsz&0l2gxbx7y zCFUJ}=a=Am$0`VXRGLjUQ9v)A39xVPBCG$r&GgtFSU|XF&=zfZ4w6M#cUJiVQKDuK zjl$8YMiZ+-5F1 z)P%M$Me;m@2Di=7V4M*@$o`99$W_=sZt-&Gw<=(|LN*9lT$d-?wqQl#&6R#m75aIT z##}FwA}sjTjK3pHM5Xzsi}ox+%@X~csACih!aWRyqKb~3k+`H91t>qHKddb+yq$>* z42EP`T0P^}z@AE}Q2bmFs!tD&_)SuZ!=6Jv0IIL#QaI`fy}Z(6T5l=Sr&B=5!trAP zjk5KNHdP0#n(FP>EIq~#9)ct5thIEFOGvePuRNfQjrmDthL`VS{|JKlngzG9(Vp3V z=!9^p)Jp6xxV}YV3GGY{fVL<(pC(R*11*(^i}Lh{AiGH`nv)vP_O+r0pZkXn%~S9?3zqRX zLHk$M*8H`I1_BuXPyxNIueU9kHGnK68Rf#fU)hCvRV2(Q}6yMm+c73gBwZvlqnC z`U+mIx~mjuZpOg`px?Y)T@cg{FRHis*?gPRBiZaV__g0b2;)&4k6@0Yapoj;`)u%UAnT6foEQqwem%>U!8E7kB3E50 znuXr2j4(yCyR7_+@QgdgqW_Kr`do*0_l@w%P6?D(085MF<;wcBt7VteMo z&8_Lp7Omhpny!?9EiXg{gPWyuS?$XQ(P$QwE#)sX9ZA69`G#W9v~q%o0f6S;;$Z)h z`#U=ek58avl<7mvD~+v?2ge<}fBKVuC&m&1b8Oam7sIr6AnLg@BuV=O9#ugHPZ>n( z6Lt{14rSThl>T)i<;pGQu==79TWhowZcCC5uiD1G{nwRibN9 zs&1n|5)H|vm6WNd6V&13mE!$T_9xFVghIw4%N_zetlfZ$=UZ?jH1j^&y^v1TtC_L; z6XG-Ix2n>a&)~D@lDWsLu)HU-nl~jk;VG;BQw?t|ycSXJj^_-7;Ek zSINQSIHQw7u{*3b7(zQy1T-LtYZgGJAJlni#WrngW>YA6RR~e?@8>)qyR&g|w0)Nt z=dSm%*i+y^UE(PDMQuL3Syn6rWEevLn?cDY&CCuugV`&HW3cE#uAJb$#u8_Tq3|24zN{rqn0b z@c^X3XWl8v;^Wnr^wj$b!BVaC1{6*YsK5ct6eV`=al(>=B5JU8nvv#SrN7EA@A%nI z5H}J^Xkt_S`Os^$7dMbx^#_;ju8K=g)8txG8@Jf7;0hgSAB@r^{1s@SV*SQ(>!IJ4TQnW zSR<{hzpv5}bUnb!1c3QhRGWqWZCa(&zUz9CQIy&OCcl(aG>XgKAY;jpbs|y;+*irV zVfF%y1iLn}7kZ4m99uD>66n$&TeSgAh0Pl}5h%=jD44F?h+2%wY5}i19Xg$KxgeoY zyJwAg530)d`pN*$x_v@0H>)9ME@p9V$Cxh$79P#%019+c$&gU-bcJGR!&$4!oF-4?D%NMYlt6VH07tWX77{CEoipRBI zf>M~tVr3xrsR%X=W*_O&ROd)2GFV1T!PJCa97)>kYl=41OoYf3PZ3y5>dr$|6V_%WxinKhb_<3P}<(3tadwOz5!m^v6gTSy6Fx(zUbr zac(9x_rOS^hxiKI%S;;LCjSP!+kGyuJmKZoZBIUtbzQZW+X$m~qx+j|+&kkv9DCo1 zKm@36rqc^>vdi%X%v%KwV|f@S#V*e@OV=nREZ#24yH+*-fWawJC{W-e4R9zht{!NT z+Ro+#6jrk)(kiFtjE!?EyoVS-5IQp#CuS;sz(y8h%@yX^_`>KR`_jKEA^$EvD95@Fd7C!Sd|^G!axdFr4F z1@JpVwcqaGA?9d+eX;iK*OHHMw}?C#LhFCNGj7kJ+iJWjVv^MMKeYlsCmsO-Crh*U z5cJUML7RobEJ9V6GXq}>+Ay@IxfDT@Jw{FRLx#Qj)*eL~Vi1BB1lR+q%B<}?h`2u1xwh&G>hN^m96Mg@A2 zc!rlau&!)U6R02<3fgSSz3}yI`V?UaiRLvL{5_e_h@4PpHHfX&O~ydG>7*72KTA)B zyO2T?OXMbwleY;+E`SSy__^z2mI!j7GIDa1Qs9&yGv$r+%Xs$XFY4iuvuXXcA5TJ9 zaQ=XsBI?Td1pt6S%3-rG8 z=Pubx7qq4i_bZq^F5bn{@9nU3{x=1?e7#mZcj#uv2&|9CLxNve4_ys* zwdkWfPl_+B@G&WUH9?Mjo%l_Mw!b#2!)T^U>MIn60)O z(0M1VD)fqz`}i-RWRxPwY1a5IyTj(A9;K*YdY(B?Gs1sj|Cvk9QxOr_?9Z(vkH?I8 zW?XaopI72g_cE*3cFJ9jF%}`^C|e`+(g-&f(PWdA4ypiP<}d0NVaynY_}6mKpP7D& zCE$sy;o2GBu_l)>Z285d5lxn~T^9$`6KkLAN*Dy+V1h1}u$3_LG+hnzEO(4l%}EdRGH23W`|5&?d>k8x{i s26pn!x!d(LF4enjU@Es^!@Q*Jk7Sbd^fO$oWSoliOcTOpF literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/_.work.bin b/.gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/_.work.bin new file mode 100644 index 0000000000000000000000000000000000000000..c57505f18bbc08d4112b4a21cd5d52886fcf0dc7 GIT binary patch literal 894 zcmV-^1A+Y50Y2Cg8xLUmt8kcoR7}P|&f4lxY9_y6WN15wB-X#z&8TuV`%q3g%1Y&o zb0SWC?n1weER;u@Wui=a5iA`v{u;9P_l-DUK8sM&T{gEn5n^{A2lH&nV z?jhl zc?yj^%Q%)sEJ8mLB)H7!kht>T?O@+gdQ5X}w7foYlFG-wJ;nm(SU)Z4`ex9^&?A+o)1^Suq^F4COdDfTbV z@nJfCq8H!dTF4TQ&yOPO+%04<%=ph7iuKWg)uNQfHTGNgShF4442~1~pT!{ZW{Inh zZm70b>O%9=bu5Wb^qDuNrzuA#H-;_EwYaXy<48BBJ0jkNTS{Gak-_tyQ$^8>&bep6 zX9dl@@23paPLkD6bvu`-=oo7TcXG|Db)c>IW0GI^Z@#N)F!rUasFGeZzHC(NrKMsn zRqM8SLZOiQa)tb?6j&H{OjuoM>A;xj58cM7zMr^Xn7aF;Q19R-#=%H&Xy6IGqGk{# z3+bm+&UzfJ*-dgOCKWxt-y+Gyi(?1nFot!?H#v{_b*|4kms6lwtafc;s5{u literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/buildfingerprint.bin b/.gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/buildfingerprint.bin new file mode 100644 index 0000000000000000000000000000000000000000..eb41021886b5256d18710d046899624ec879c95a GIT binary patch literal 2756 zcmV;#3On`uVzDpp@*@!b_WWcc zNLl~zsjXu8I`NRy1wYP&i6ZmbNsq1#pxKdVvrvFv zGbOfeC6of(z0d85BHC#ay)pHJZ4Y!N{d}#&&@P5z?!hQcJ$BkTKX^%R(;O5YY#H@Y zT5Nh+f}dP|3cO_^@*1PWk|b6dz&Ra?(Gn&&%8r%WDr9lU>o}P$b^B{;eV7)z%9p3V zYPkpn-?V(4V5q`we}>+Ybah^XqGKAPqJsE^Harml-aiJ>ZH0{f-G_%aU~QxR3p6le z^q3%?QC%Ou1^B%|tD~?%m}N)I@gG9QeEMEIIyuR@FF!mdL;Tg-0ONoSwOJ%ASPIAiRxK}ceTCQCcD#~f%BB2Gryw|QuxDX?bd66J^f zI#qO@wQ8b88}K|qLNK}EMA5DE0Ab!GOO=63fds()`XN*}`@=j(`upA$HgMfx(sq`D8H^Z((!E-*E=XVV`XYrD z7f~TYNs74sg$aAV#mMqWT_}JoH{~B!;pjbWZ7J%QjIYm|_Q1m3Z$(3Ze1sosGtbt)$l`E-O-4o*s0^D9LWX zbD5~2$s%9xS~n7f3L3}Vd5}w8wX=K|&>Hry=Wz@N<7z-}k5F!jGa@gvaU&+1I%9H^ zfxtK~u2ncrgC_t;*A>Tg(awgA@Bxy#@H1MW7`@9S3{EXu2Z19#K7u)mZnAnA|JO$b z$|#1bZWcG0odS9ix~uR%H=2kGC3fd{e)WC=I>yT?LCCUVQGjQmI8U!Y2HSA5$b#aU-cWmwEQ?%-NpHFB<>vVfsd*OB{=HbVKA03!K&Ju`D z6bo3k707ug8H8SRTmtSa4EZjU1P_e>+>#{vICI?Ll;Js&UEq6N8SH1~c+UupvF(m7 zicNca1pU*hHP{e_^Zs9ci4rWAy5lSK5Y*pfd32Dy#AK{$9<;2`hINtJ`I?sKC~yO4 zeF_HUk8L$&?wF+%vB#HWc12dz4Q3?5FB>vqSGOiWEd)jR=xD@;1sQFHMMfK^O*e;e zyMu+*F~V~Ny=1okESDXkTFEp1R~B5Jab75qn>J9UPGsu-yVaPxfBDR57R`D zFTgt^GDGtYE{OHkOwcXtskW&!Z={4EZ{?6H+(%vI1gKi8c>0^eMal|JY#+2gv)~@j zEGfI=i6I-|&>nI?!E@-oJ$snDV#S8JTx>bbmS;qAPjT&^FMyG^zxfw_3WS zNH4H+%BQ4X)6U)z_|)S2oWIV)v)bpXoQh5Lr`#O@Prx{RdPf1%;BtdhEZRORbqtS# zNf=YDiaFxY>S@7THz;>?Zq7w0b9UUyXF6JC7;urt&`mQS;Mf1vgk|O_CCyn5xw~F3 zhf9xES~E%J&geQA{b9Uj%bO8R=D*y)dB5k35C52Gl@1$h#~7#;xps7CH*Nd@`70X! zwrOiU8PXfS&WP-Bc0la=3H#AvPTqL{81nSrsU+y(k~I9MPm0l?4`=<+koJ~uK^VmIGv5-+d_Cy%muE%( z$(}ulerCOagUg88l16kJ$yKHbMXnTzC6Mu*h~}2zh#00QZToTCXrDd`#J`UCXU&g zaD_&``f23ve!WlHhy!yC*{ysuK57g5Rfp!s)RNfJEdDb^H9!wh z?cy3@RVf-zv?<-S=H!UnF)O*8!KEK; z8JFA7OB6xog6?20k>6P1qP3zry9MCmG9lyF*^NY!R)~j}2`P<}Q!o0dh*8IPk<94p zRgxA!ga7TTw$f~{csEg<&`G>Mno{Hxjp?$OhDx!A#vat8bI-_4bx+_@!$c3_R#tSv zG5Oad7T>tbJO%{c6;LeL6W4&K+i^Cu3GY920Q=TCtD__ButV$Y5H|X|)mf|t~)8`akdDSuqEz6FuR<$%>43S|jJeL-=lZ#)iXV45J&|rIfD}14RngB0@ zJDTw6{mY=U;%(VPQFs;$4b-NoPu^e8R!aL@-XvOTy^T4t!(F4N<)UznexTT-5ynEjc7fdK%1XdJ)* literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/projectfingerprint.bin b/.gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/projectfingerprint.bin new file mode 100644 index 0000000000000000000000000000000000000000..de8cae4b4f9c7f2c16614a7004af58ea4cabb6c6 GIT binary patch literal 535 zcmV+y0_gpvdDkiP-(bNN85m(D(*XuO)RI-2E$z08e&kl{)JTy=un)*cPTkGi^ew!oEoyZYeC6owXq2q{>qp!hK3#;`Q zg}&;}*o2UCm{uH4uw8QHc`^a=XjcX-pBR7Rv=7jd2xE*6@}JaYMnvfZb$tFSOW*vk z>=3}R1L|Sefn{t&s&Gkk?18}03eFwbeiTlM7ZD===J4x|Z1Wbr7ulssDV1f+l=g#F zp`mO)A)Dp%vf=|Vf zj|h)6bM8tdqc${gZ~j9pM}m);)Kz&cy=Q=TPa?(tENiNB3?Cqd z11p!(R~>&EDbmf}dng~YgkXF9?1}ef1G{TY{Q>W$)W>T>Z_WDTA?;5%jZlt9|05FS zzY;h@Fx<4hu8x5xHNI>I5ylQAGONEw{d&`|IC+BL{oW$*8y-r&K3({Q56z;=psJo5 z9bLGkT5CdCNL`%6{ggbf5~~iB=VDI+gE0=EJo8O;dY&5+?6B>;pT30a#h@V1t3L5N zi}MxOo^{|~&0wq*5T)zqbFv+TVgudKAYj3ts)yU)PoP)9Z6cslDTd7k4leAY{`BX1 Z<5?5Fm(W&aa7dN2nGRQQoHrN^ygC302ZsOv literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/work.bin b/.gradle/configuration-cache/04874f85-d75a-4b9f-91ec-9f227f2a0929/work.bin new file mode 100644 index 0000000000000000000000000000000000000000..976414dd142a32065e20397181ebb0cd39b1ecbb GIT binary patch literal 424 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 z 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 MFgpK!iNQ(ZEI7WkJOBUy literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/classloaderscopes.bin b/.gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/classloaderscopes.bin new file mode 100644 index 0000000000000000000000000000000000000000..ba9450a05cbf3763fbc64add0041fd02d1b3c4f4 GIT binary patch literal 2334 zcmcImU1%Le6u#3`sg-I#>JKR7L1`6tXLfdWb~Y6sVkv4B3ROW2miajo_ukFj+ucn} zi=g;Wkor^57e(|zjja@+RZ7JN(L&KkBL#n=nAECRLBR<1O{$xl+vFy#Hx0qNT$Ua7 zocVsvoU^Ec5L$)0Dkz7di0cFSBfXQA<`1c%I5FEZJ-?ErY2h@ov-NSqDTokHd{?7PIJ zSlQ4A!8J47S{@kf+ej!svduq>H2BmH!OX=u%{aFzv+igAUfcE32)}9SiQ`Y+a{urd z^l4{ok;_XoMJDUHO|!uqMps(ER{yaPNW9th1vSz?0vBGeF4fQW-I#*#o#B1|Cc ze>iYHTN|OD{`~d$)knX*@|m6;*_Vfk-eo)Bb7I0k5n@%~c^tfmagR%21h@)8t;m6k z0RCt?zWceukN&gny_4TfY~5c)lbuWEQqMq3GAA!g5-Uty-=!XwrMgrzpp;mEfKp3X z;Hi-MN-8RuZ+#{_87_==W}}-W-tVGQPaRx$$AOx&<*Pm4SI~H8ycd+X6-+`Yr`FO4 zkJ*6eNCwh)LMr34N;IrhrN ziX$(w#MrVns8tLI_aQX0_1ewbc3t~* z*S^s=52K&aY%_68p7bspYMWsglC%LCzQ=&vHai1zyfaOl;&G6*95=^hYxcRdBJXXz zgda#7_svA(ypRJx5&9UdG&dTboz6WoBeiG4O4DsvkZm!Mw=0!Z==VjK7Y+H@%AZ#c z=Q@iUMUI)UED}Z$1-{h~g-Q}n2pW1;8$sj(o3Kt~oC7oxy@O>>GK<| zK&O|vz0?}=JS{&;fJOpHNPH!H!bA{A385BjX0me=n7KWt-`}|J-0HP={_zEy*gA2f HWL^0e!f-T2 literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/entry.bin b/.gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/entry.bin new file mode 100644 index 0000000000000000000000000000000000000000..580a4106b93c18ba0c69fcfda77b5fa65b2ab856 GIT binary patch literal 79 zcmZRq$W1OcGfvJg$xF=1NH@w($~QAAGAT_=`N_zrA6lGRRIHzySX7dkr|*(lmYS1a ikXoegnUb0qP?VpQnp{$>UznexTT-5ynEjc7fdK$@Cmfyt literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/projectfingerprint.bin b/.gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/projectfingerprint.bin new file mode 100644 index 0000000000000000000000000000000000000000..434380a8f0ed83725cabc3850e807bfb0877d78b GIT binary patch literal 535 zcmV+y0_gp)nCB8^=b8}j>-DQ$mR44gKx-c02yc)qDZ%AX)UhQyf>2S1hMTGUaIJxDOW1^x^{75qF@J6EqhQbCv|}!@pNf_g(DMJ z#cMITw)~Kc|1RI?I<{7N2F{arc>A^v&#H{79a_qY$)ZhX9c` zAZB~SfS$+J8zTtbXE}Sz_a^NI4{Sj5vQoj)YW6Ah81vW=j#LR z7d@D7R+SW{Jfnaf%GQXMr2f%4MQ*J2GJrJ-H@k!Ml60G=ryh#Awh)zzS8DKel|#()4{m$T zV@41fdAHY-$c5$+fowzuZ{1H)vFEn&-*?pa=)jWvC$ayp>JvPe6$~c^-3T~7^p3`f z;d+`1(4`o?E*+y%{Q7|M9*$6Ga1*M0b)e!a(NFNwezRMu;*EViHQ*~22=oAt|HxP~ zyt&#=RdN5Vg?A+n<)C+_EARvi6o{cY3W2%MPU=Keu;=Cp5ng}j5nHMp^u_;OHxQ}p Z;&YBlf`Es5wKvfd-UJDUw$j~F=3{t&2ZI0r literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/work.bin b/.gradle/configuration-cache/341fbea8-17c8-4ff9-abb1-8cf0a8d07b36/work.bin new file mode 100644 index 0000000000000000000000000000000000000000..6642e130558de7d1c9a902e2d80a2b90ec26f130 GIT binary patch literal 764 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 HWL^0e!f-T2 literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/entry.bin b/.gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/entry.bin new file mode 100644 index 0000000000000000000000000000000000000000..df96cfae2e3a0353e9e7f061d38b010b0d132e42 GIT binary patch literal 79 zcmV~$yA6OK5CBjZ$XtRe*x1=P0K%E@6Ye00b6eT@p0vFhO(!dVxH&#O3@Rh3MxT_h hSL6ywb8{Cg*fHjU468-GarS6h1TA%3fc9e)4- literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/projectfingerprint.bin b/.gradle/configuration-cache/4ad0b03c-7d47-4056-990b-3a93c3db11fa/projectfingerprint.bin new file mode 100644 index 0000000000000000000000000000000000000000..25a6e4c75ecb83c72ae09e88b79c9ef822e5d95e GIT binary patch literal 535 zcmV+y0_gqWjAVfP*UCu79Nctj9sq=!@QH>n|qH<;^N6!;Red=GMG? zaI$Tb5ml;XR9 z4LR#jpy~Pm!BgGTrKR;8eh8z0lNTXl82p8!Fkgk=VL=@c?iALbULuo7`l{@0mqXd& zu&1wD1K~Qskl?`52qs3;^GCgyruP6q#6V{gC4D5`=I)^JW=G3n)AirX5FDzqfn>F5 zxKfEA?ITj=4HcfeP|0UP5wl1rr|QT&>uwTn6gg`J_n#Ay0ownn2fV|K@17b(EBVZ9M=q#Ji zrM(-Y;p?UaW%GmDrM_9V|1b>ZkgvcAaA=yd?$D%s1D0x)oS-8ETka6X0c zV$)Q+=aQ(;x3p8@_^%loD%3^N86L4K>Ma8lEB*9NH`u-hRN^@5q{nWwJ|<7*0y}@N zk1G->5R(@_CldN@yjjQdmj@t!2f=9(S zbd)S>$!7o!@siTn!=!>MXp7?m$z?FxGQ~-QnIE)iW7IYiZPyeRWG2GfI(mrnS0OCS z=k|No(@xOaU*g_o&4`QU<{WR#ut<1H`m-)%AjM5YAMbF$6TihUd1z%Cs6JgqA%IZR z7rXni1U46UqUodmLHW%sfygS&f9y}dVb2IIMayK=y$9+sQ{$RC+JZ%yw(r@fEbtJm z=v}3$q){;%;s}*<&bSoIQ2nZ`I@YLx-qvjr?ObUD$kpXV7xIT*=I2)ixOBrRAwb#n4 zH~W_u$fZ`a{e-X(Mi^-<(x14RRV(?^yaC-r5Yp`wz??IL8Rdr^C0-#_n+r5zsiUJV zwFP*NF1_$?O$LvuG*@U>i&p{;EE&>1liZ!Y$0d&jwF68d(;~cp_zibRSPQG`IU3*R zwf6>NWPkqHdJ|`6TY^$UNFmii7>v%#zTT!xDtZv=xRn7tX3V0|&A^U(^H9{Or!fPc-B}A1I6edV3ZQezq)k$lQv}(w>RcL#9&x&G(!W7PxZBZtr|VW?E|B BXOjQ` literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/7014d45d-1419-4a4c-8a3a-ef9442bc9fb4/classloaderscopes16220690481779945732.tmp b/.gradle/configuration-cache/7014d45d-1419-4a4c-8a3a-ef9442bc9fb4/classloaderscopes16220690481779945732.tmp new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/9291a06f-3306-48d6-9bf2-f3df3a9ed90d/classloaderscopes17273679322066117525.tmp b/.gradle/configuration-cache/9291a06f-3306-48d6-9bf2-f3df3a9ed90d/classloaderscopes17273679322066117525.tmp new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/ai52j6yn7dodllvdf53pkfm4n/candidates.bin b/.gradle/configuration-cache/ai52j6yn7dodllvdf53pkfm4n/candidates.bin new file mode 100644 index 0000000..9c96d90 --- /dev/null +++ b/.gradle/configuration-cache/ai52j6yn7dodllvdf53pkfm4n/candidates.bin @@ -0,0 +1 @@ +04874f85-d75a-4b9f-91ec-9f227f2a092¹ \ No newline at end of file diff --git a/.gradle/configuration-cache/ar1d6jr1dzfkx6v3l38d47pb9/candidates.bin b/.gradle/configuration-cache/ar1d6jr1dzfkx6v3l38d47pb9/candidates.bin new file mode 100644 index 0000000..c62b9bb --- /dev/null +++ b/.gradle/configuration-cache/ar1d6jr1dzfkx6v3l38d47pb9/candidates.bin @@ -0,0 +1 @@ +341fbea8-17c8-4ff9-abb1-8cf0a8d07b3¶ \ No newline at end of file diff --git a/.gradle/configuration-cache/bd41d510-ed22-45ce-940f-f06d19f20a88/classloaderscopes16335041072390187000.tmp b/.gradle/configuration-cache/bd41d510-ed22-45ce-940f-f06d19f20a88/classloaderscopes16335041072390187000.tmp new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/c98bcd8d-0cc5-4259-9c8e-1d8f73264445/classloaderscopes16498410897654978536.tmp b/.gradle/configuration-cache/c98bcd8d-0cc5-4259-9c8e-1d8f73264445/classloaderscopes16498410897654978536.tmp new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/configuration-cache.lock b/.gradle/configuration-cache/configuration-cache.lock new file mode 100644 index 0000000000000000000000000000000000000000..7d34d4f0113aef2151ab16aa03ee3a5d91df4a8b GIT binary patch literal 17 TcmZSH6jI83y5&$J0~7!NF$x3p literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/dm175kxwzsruj0sogx306vr1b/candidates.bin b/.gradle/configuration-cache/dm175kxwzsruj0sogx306vr1b/candidates.bin new file mode 100644 index 0000000..03c6cb1 --- /dev/null +++ b/.gradle/configuration-cache/dm175kxwzsruj0sogx306vr1b/candidates.bin @@ -0,0 +1 @@ +4ad0b03c-7d47-4056-990b-3a93c3db11fá \ No newline at end of file diff --git a/.gradle/configuration-cache/fd7352ca-cea3-478e-947e-acba6f17b48b/classloaderscopes13362262299681345635.tmp b/.gradle/configuration-cache/fd7352ca-cea3-478e-947e-acba6f17b48b/classloaderscopes13362262299681345635.tmp new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/configuration-cache/gc.properties b/.gradle/configuration-cache/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe new file mode 100644 index 0000000000000000000000000000000000000000..462509e01916b4a35e6d32e6819ef43a6b5430f1 GIT binary patch literal 8 PcmZQzU|f(R>Msre1=0bD literal 0 HcmV?d00001 diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f3f4f83 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index dece6c5..3c73da5 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ A quality-of-life SMP plugin for Paper/Folia. - **Join messages** — friendly welcome messages, including a first-join message that lists the server's plugins, and a special announcement when the owner logs in. - **`/nopvp`** — toggle no-PvP mode. While active you cannot damage other players and other players cannot damage you (direct hits and projectiles). While enabled you also glow so everyone can see you're protected. Turning no-PvP *off* starts a **1-hour cooldown** before you can enable it again, and the state persists across restarts so relogging can't bypass it. +- **Anti-combat-logging** — whenever you hit another player or get hit by one, you're tagged as being in combat for **15 seconds** with a chat warning. Logging off while tagged kills you on the spot and announces it to the server. ## Commands @@ -27,9 +28,11 @@ Player no-PvP state and cooldown timestamps are stored in `plugins/qol-tweaks/no ## Building ```bash -./gradlew build +./build.sh ``` +This just runs `./gradlew build`, but if the pinned Java toolchain isn't installed it will automatically fall back to whatever JDK you do have (keeping the jar's bytecode compatible). You can also pass extra Gradle args, e.g. `./build.sh clean build`. + The plugin jar is output to `build/libs/`. ## License diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..ac51b7e --- /dev/null +++ b/build.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash +# +# Builds the qol-tweaks plugin jar. +# +# The build pins a Java toolchain version in build.gradle.kts. This script +# finds that version on your machine, and if it isn't installed it transparently +# falls back to the highest JDK that is (so `./build.sh` just works). +# +# Usage: ./build.sh [extra gradle args...] +set -euo pipefail + +cd "$(dirname "$0")" + +# --- 1. which Java version does the build pin? -------------------------------- +pinned="$(grep -oE 'JavaLanguageVersion\.of\([0-9]+\)' build.gradle.kts | grep -oE '[0-9]+' | head -1 || true)" +pinned="${pinned:-25}" + +# --- 2. find an installed JDK for a given version ------------------------------ +java_major() { # $1 = path to java binary; echoes its major version (e.g. 26) + "$1" -version 2>&1 | grep -oE '"([0-9]+)' | head -1 | tr -d '"' +} + +find_java_home() { # $1 = version (e.g. 25); echoes a home whose java matches, or fails + local -a candidates=() + if [[ -x /usr/libexec/java_home ]]; then + local mac_home + if mac_home="$(/usr/libexec/java_home -v "$1" 2>/dev/null)"; then + candidates+=("$mac_home") + fi + fi + [[ -n "${JAVA_HOME:-}" ]] && candidates+=("$JAVA_HOME") + + local home bin ver + for home in "${candidates[@]}"; do + bin="$home/bin/java" + [[ -x "$bin" ]] || continue + ver="$(java_major "$bin")" + if [[ -n "$ver" && "$ver" == "$1" ]]; then + echo "$home" + return 0 + fi + done + return 1 +} + +# --- 3. pick the JDK to build with -------------------------------------------- +selected="" +selected_home="" +for v in "$pinned" 26 25 24 23 22 21 20 17; do + if h="$(find_java_home "$v")"; then + selected="$v" + selected_home="$h" + break + fi +done + +if [[ -z "$selected" ]]; then + echo "error: no JDK found. Install any JDK 17+ (e.g. Java 25) and try again." >&2 + exit 1 +fi + +export JAVA_HOME="$selected_home" +export PATH="$JAVA_HOME/bin:$PATH" + +gradle_args=() +override_init="" + +if [[ "$selected" != "$pinned" ]]; then + echo "note: pinned JDK $pinned not found; building with installed JDK $selected." + override_init="${TMPDIR:-/tmp}/qol-tweaks-toolchain-$pinned-$selected.gradle" + cat > "$override_init" < + if (p.plugins.hasPlugin('java')) { + p.extensions.findByName('java').toolchain.languageVersion.set(JavaLanguageVersion.of($selected)) + p.tasks.withType(JavaCompile).configureEach { + options.release.set($pinned) + } + } +} +EOF + gradle_args+=(-I "$override_init") + # the init script is external input, so a cached configuration would be stale + gradle_args+=(--no-configuration-cache) +fi + +trap '[[ -n "$override_init" ]] && rm -f "$override_init"' EXIT + +if [[ $# -eq 0 ]]; then + gradle_args+=(build) +else + gradle_args+=("$@") +fi + +echo "Using JDK $selected at $JAVA_HOME" +./gradlew "${gradle_args[@]}" + +jar="$(ls -1 build/libs/*.jar 2>/dev/null | grep -Ev '(-sources|-javadoc)\.jar$' | head -1 || true)" +if [[ -n "$jar" ]]; then + echo + echo "Done. Plugin jar: $(pwd)/$jar" +fi diff --git a/src/main/java/com/dvorakmortonxd/qoltweaks/QoLtweaks.java b/src/main/java/com/dvorakmortonxd/qoltweaks/QoLtweaks.java index bc3c3e6..0209929 100644 --- a/src/main/java/com/dvorakmortonxd/qoltweaks/QoLtweaks.java +++ b/src/main/java/com/dvorakmortonxd/qoltweaks/QoLtweaks.java @@ -1,5 +1,7 @@ package com.dvorakmortonxd.qoltweaks; +import com.dvorakmortonxd.qoltweaks.combatlog.CombatLogListener; +import com.dvorakmortonxd.qoltweaks.combatlog.CombatLogManager; import com.dvorakmortonxd.qoltweaks.listeners.JoinListener; import com.dvorakmortonxd.qoltweaks.nopvp.NoPvPCommand; import com.dvorakmortonxd.qoltweaks.nopvp.NoPvPListener; @@ -10,14 +12,17 @@ import org.bukkit.plugin.java.JavaPlugin; public final class QoLtweaks extends JavaPlugin { private NoPvPManager noPvPManager; + private CombatLogManager combatLogManager; @Override public void onEnable() { // Plugin startup logic noPvPManager = new NoPvPManager(this); + combatLogManager = new CombatLogManager(this); getServer().getPluginManager().registerEvents(new JoinListener(), this); getServer().getPluginManager().registerEvents(new NoPvPListener(noPvPManager), this); + getServer().getPluginManager().registerEvents(new CombatLogListener(this, combatLogManager), this); PluginCommand noPvPCommand = getCommand("nopvp"); if (noPvPCommand != null) { @@ -31,5 +36,8 @@ public final class QoLtweaks extends JavaPlugin { if (noPvPManager != null) { noPvPManager.save(); } + if (combatLogManager != null) { + combatLogManager.cancelNotices(); + } } } diff --git a/src/main/java/com/dvorakmortonxd/qoltweaks/combatlog/CombatLogListener.java b/src/main/java/com/dvorakmortonxd/qoltweaks/combatlog/CombatLogListener.java new file mode 100644 index 0000000..347cb7b --- /dev/null +++ b/src/main/java/com/dvorakmortonxd/qoltweaks/combatlog/CombatLogListener.java @@ -0,0 +1,63 @@ +package com.dvorakmortonxd.qoltweaks.combatlog; + +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Projectile; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.plugin.java.JavaPlugin; + +public final class CombatLogListener implements Listener { + + private final JavaPlugin plugin; + private final CombatLogManager manager; + + public CombatLogListener(JavaPlugin plugin, CombatLogManager manager) { + this.plugin = plugin; + this.manager = manager; + } + + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { + if (!(event.getEntity() instanceof Player victim)) { + return; + } + + Player attacker = resolveAttacker(event.getDamager()); + if (attacker == null) { + return; + } + + if (attacker.getUniqueId().equals(victim.getUniqueId())) { + return; + } + + manager.tag(victim, true); + manager.tag(attacker, false); + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerQuit(PlayerQuitEvent event) { + Player player = event.getPlayer(); + if (!plugin.isEnabled() || player.isDead() || !manager.isTagged(player)) { + return; + } + + player.setHealth(0.0); + plugin.getServer().getOnlinePlayers().forEach(other -> + other.sendMessage("§c" + player.getName() + " combat-logged and died!")); + } + + private Player resolveAttacker(Entity damager) { + if (damager instanceof Player player) { + return player; + } + if (damager instanceof Projectile projectile && projectile.getShooter() instanceof Player player) { + return player; + } + return null; + } +} diff --git a/src/main/java/com/dvorakmortonxd/qoltweaks/combatlog/CombatLogManager.java b/src/main/java/com/dvorakmortonxd/qoltweaks/combatlog/CombatLogManager.java new file mode 100644 index 0000000..79710ea --- /dev/null +++ b/src/main/java/com/dvorakmortonxd/qoltweaks/combatlog/CombatLogManager.java @@ -0,0 +1,70 @@ +package com.dvorakmortonxd.qoltweaks.combatlog; + +import io.papermc.paper.threadedregions.scheduler.ScheduledTask; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; + +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; + +public final class CombatLogManager { + + public static final long TAG_MILLIS = 15 * 1000L; // 15 seconds + + private static final String VICTIM_MESSAGE = "§cYou got hit! Don't log off for 15 seconds or you'll insta-die."; + private static final String ATTACKER_MESSAGE = "§cYou hit a player! Don't log off for 15 seconds or you'll insta-die."; + private static final String SAFE_MESSAGE = "§aYou are no longer in combat."; + + private final JavaPlugin plugin; + private final Map taggedUntil = new ConcurrentHashMap<>(); + private final Map notices = new ConcurrentHashMap<>(); + + public CombatLogManager(JavaPlugin plugin) { + this.plugin = plugin; + } + + public void tag(Player player, boolean victim) { + UUID uuid = player.getUniqueId(); + boolean firstTag = !isTagged(player); + taggedUntil.put(uuid, System.currentTimeMillis() + TAG_MILLIS); + + if (firstTag) { + player.sendMessage(victim ? VICTIM_MESSAGE : ATTACKER_MESSAGE); + } + scheduleNotice(player); + } + + public boolean isTagged(Player player) { + return getRemainingMillis(player) > 0; + } + + public long getRemainingMillis(Player player) { + long until = taggedUntil.getOrDefault(player.getUniqueId(), 0L); + return Math.max(0L, until - System.currentTimeMillis()); + } + + private void scheduleNotice(Player player) { + UUID uuid = player.getUniqueId(); + ScheduledTask previous = notices.remove(uuid); + if (previous != null) { + previous.cancel(); + } + long delayTicks = (TAG_MILLIS / 1000L) * 20L; + ScheduledTask task = plugin.getServer().getGlobalRegionScheduler() + .runDelayed(plugin, scheduled -> { + notices.remove(uuid); + if (player.isOnline() && !isTagged(player)) { + player.sendMessage(SAFE_MESSAGE); + } + }, delayTicks); + notices.put(uuid, task); + } + + public void cancelNotices() { + for (ScheduledTask task : notices.values()) { + task.cancel(); + } + notices.clear(); + } +} diff --git a/src/main/java/com/dvorakmortonxd/qoltweaks/listeners/JoinListener.java b/src/main/java/com/dvorakmortonxd/qoltweaks/listeners/JoinListener.java index 4e60057..21b140a 100644 --- a/src/main/java/com/dvorakmortonxd/qoltweaks/listeners/JoinListener.java +++ b/src/main/java/com/dvorakmortonxd/qoltweaks/listeners/JoinListener.java @@ -10,8 +10,20 @@ public class JoinListener implements Listener { public void onPlayerJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); + player.sendTitle("§aWelcome to the SMP", "§7on a new world since 4th September 2026", 10, 70, 20); + if (!player.hasPlayedBefore()) { - player.sendMessage("§aWelcome to the SMP, " + player.getName() + "!\nThis is your first time here, so let me tell you whats on here, theres a 3d map of the server at https://bluemap.dvorakmortonxd.dev , theres a voicechat you can optionally install as a mod (Simple Voice Chat), theres a tree chopper plugin you can toggle with /atc, theres veinminer which you can also toggle with /veinminer toggle, theres tradecycle plugin which allows you to cycle thru villagers trades by clicking [F] in any inventory slot while trading and there is ClickVillagers which allows you to pick up villagers into your inventory when shifting and right clicking,\n thats about it, enjoy your game! :3"); + player.sendMessage("§aWelcome to the SMP, " + player.getName() + "!"); + player.sendMessage("This is your first time here, so let me tell you whats on here:"); + player.sendMessage("§7- a 3d map of the server at https://bluemap.dvorakmortonxd.dev"); + player.sendMessage("§7- a voicechat you can optionally install as a mod (Simple Voice Chat)"); + player.sendMessage("§7- a tree chopper plugin you can toggle with /atc"); + player.sendMessage("§7- veinminer, which you can also toggle with /veinminer toggle"); + player.sendMessage("§7- tradecycle, which lets you cycle thru villagers trades by pressing [F] in any inventory slot while trading"); + player.sendMessage("§7- ClickVillagers, which lets you pick up villagers into your inventory by shift-right-clicking"); + player.sendMessage("§7- a /nopvp command to toggle no-pvp mode if you want to build in peace"); + player.sendMessage("§cAbuse of /nopvp is bannable. Also, combat logging is NOT a good idea."); + player.sendMessage("§aThats about it, enjoy your game! :3"); event.setJoinMessage("§e" + player.getName() + " has joined the SMP for the first time!"); } else { if (player.getName().equals("dvorakmortonxd")) {