From 7b5436d5ddff6069dd4457d0e4be292e0ff85634 Mon Sep 17 00:00:00 2001 From: v0ey <113121361+v0ey@users.noreply.github.com> Date: Sat, 4 Oct 2025 21:18:14 +0300 Subject: [PATCH 1/3] teleport mounted entities + tpcancel --- README.md | 3 +- bin/main/lol/hub/hubtp/Config.class | Bin 0 -> 4241 bytes bin/main/lol/hub/hubtp/Ignores.class | Bin 0 -> 4643 bytes bin/main/lol/hub/hubtp/Log.class | Bin 0 -> 1393 bytes bin/main/lol/hub/hubtp/PlayerData.class | Bin 0 -> 1652 bytes bin/main/lol/hub/hubtp/Plugin$1.class | Bin 0 -> 1127 bytes .../hub/hubtp/Plugin$PassengerSnapshot.class | Bin 0 -> 1544 bytes bin/main/lol/hub/hubtp/Plugin.class | Bin 0 -> 21987 bytes bin/main/lol/hub/hubtp/Request.class | Bin 0 -> 2083 bytes bin/main/lol/hub/hubtp/RequestManager.class | Bin 0 -> 7261 bytes .../lol/hub/hubtp/commands/AcceptCmd.class | Bin 0 -> 2471 bytes bin/main/lol/hub/hubtp/commands/AskCmd.class | Bin 0 -> 5411 bytes .../lol/hub/hubtp/commands/CancelCmd.class | Bin 0 -> 2746 bytes bin/main/lol/hub/hubtp/commands/DenyCmd.class | Bin 0 -> 2378 bytes .../lol/hub/hubtp/commands/IgnoreCmd.class | Bin 0 -> 2329 bytes .../lol/hub/hubtp/commands/ToggleCmd.class | Bin 0 -> 2696 bytes .../lol/hub/hubtp/commands/TpCommand.class | Bin 0 -> 2465 bytes bin/main/lol/hub/hubtp/util/Paths.class | Bin 0 -> 758 bytes bin/main/lol/hub/hubtp/util/Players.class | Bin 0 -> 3362 bytes bin/main/plugin.yml | 66 ++++ src/main/java/lol/hub/hubtp/Config.java | 17 +- src/main/java/lol/hub/hubtp/Plugin.java | 304 +++++++++++++----- .../java/lol/hub/hubtp/RequestManager.java | 63 +++- .../lol/hub/hubtp/commands/CancelCmd.java | 53 +++ .../lol/hub/hubtp/commands/TpCommand.java | 22 +- src/main/resources/plugin.yml | 9 + 26 files changed, 436 insertions(+), 101 deletions(-) create mode 100644 bin/main/lol/hub/hubtp/Config.class create mode 100644 bin/main/lol/hub/hubtp/Ignores.class create mode 100644 bin/main/lol/hub/hubtp/Log.class create mode 100644 bin/main/lol/hub/hubtp/PlayerData.class create mode 100644 bin/main/lol/hub/hubtp/Plugin$1.class create mode 100644 bin/main/lol/hub/hubtp/Plugin$PassengerSnapshot.class create mode 100644 bin/main/lol/hub/hubtp/Plugin.class create mode 100644 bin/main/lol/hub/hubtp/Request.class create mode 100644 bin/main/lol/hub/hubtp/RequestManager.class create mode 100644 bin/main/lol/hub/hubtp/commands/AcceptCmd.class create mode 100644 bin/main/lol/hub/hubtp/commands/AskCmd.class create mode 100644 bin/main/lol/hub/hubtp/commands/CancelCmd.class create mode 100644 bin/main/lol/hub/hubtp/commands/DenyCmd.class create mode 100644 bin/main/lol/hub/hubtp/commands/IgnoreCmd.class create mode 100644 bin/main/lol/hub/hubtp/commands/ToggleCmd.class create mode 100644 bin/main/lol/hub/hubtp/commands/TpCommand.class create mode 100644 bin/main/lol/hub/hubtp/util/Paths.class create mode 100644 bin/main/lol/hub/hubtp/util/Players.class create mode 100644 bin/main/plugin.yml create mode 100644 src/main/java/lol/hub/hubtp/commands/CancelCmd.java diff --git a/README.md b/README.md index 9274089..46af32b 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,9 @@ Minecraft self-service teleport requests | `/tpa ` | `tpask` | Send request | `tpa.tpa` | | `/tpy ` | `tpaccept`, `tpyes` | Accept request | `tpa.tpy` | | `/tpn ` | `tpdeny`, `tpno` | Deny request | `tpa.tpn` | -| `/tpi []` | `tpignore` | Ignore requests per player | `tpa.tpi` | +| `/tpi ` | `tpignore` | Ignore requests per player | `tpa.tpi` | | `/tpt` | `tptoggle` | Ignore requests globally | `tpa.tpt` | +| `/tpc ` | `tpcancel` | Cancel outgoing requests | `tpa.tpc` | ## Statistics diff --git a/bin/main/lol/hub/hubtp/Config.class b/bin/main/lol/hub/hubtp/Config.class new file mode 100644 index 0000000000000000000000000000000000000000..2cb7d50a1f2cec230ec83574a495b4afa37db5c4 GIT binary patch literal 4241 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 V{y@!t#Gg4XTl8P>H~a%_{{_Cj%Lo7f literal 0 HcmV?d00001 diff --git a/bin/main/lol/hub/hubtp/Log.class b/bin/main/lol/hub/hubtp/Log.class new file mode 100644 index 0000000000000000000000000000000000000000..f7c2d412f3cfbbad6c9faa0d9c3294cb4ee501cb GIT binary patch literal 1393 zcmZ`(>r&G|6#lliv}ww%AeD=Vpth()MNtIN%HWJnK}Q&V_%AI>SWJ^nE+~)UW2iI8 z_`?VAp&ZX9kzSyk$!7PQJ>U7xIbZtc@2}qgs(7U!!7yw&mVOx2<>R;Xnqw+RF$^6U z$A)ehwyD3XAMu9Ikg*)oX}cI=a;6L=AKhN*I;e`Pr^jA}?D!!TGAHs21Kb?)vO zR3hQkoQ7fT8Lp7$*qB)hDXK`~s)ljoiKc%js13#1g|1WC>3v=gOop*?L?i6}j_*=` zS1WreW-zPZI??D3-f-*#VQQGdjj$UZWgF%-+{82`JRquMZh8bfauJuIu;UwzPg_PS zW}OoDfg>UAXsCn`pAFZRhD8m!G$_(Qq=+$hU56A=>SVn6rNLWr-XZBFJXY|CN^T44 z{DOvMJYi627+c))43n6S{vSeT^)ma4hG#N+#^cA_rJIbNv5tz)VX2i#kCS4jV_KIf zRf=Z5S7+}H*JyH|yIrDHcbvd&@Yh04I!kI0*u)F&zhQQUVz~aE5DNp?*hk;S_TcB^f4G$q!0ZAbv7=gfxI##1$xq_gH}- zNf9yRatxV`z!ut+BCtU!dZ+^|8-wL=w;#s6UW_7Pj9!Xy9}i+4D>09J#N**9p7z3w zQ}0V1FnO$EjcUr_Io7EIFKDmG?#fZg0WHx!>UGz6qQWMTqRzIvln$pKO`QHEq(kB` JyreaO>Oag04J-fv literal 0 HcmV?d00001 diff --git a/bin/main/lol/hub/hubtp/PlayerData.class b/bin/main/lol/hub/hubtp/PlayerData.class new file mode 100644 index 0000000000000000000000000000000000000000..324a3deccba38869f8406f89e423d3687da70af9 GIT binary patch literal 1652 zcmaJ?X-^YT6g{s%r!Avh1O*gC1?hr}xZqMmg^Dz(NMuRWPt*3<4h%D8783rGA0&|w zG4TiZqm1{>40HmtX=dJb&$;)Vd++q`zmq=z-l8la!Z4(py3%y3;&EEanywyjtE4)r zgkFZ!wz{t>x@t6(PrPPYb%tI;-Q^6KO8aQtu{5Jmq%+sm$Ry>TxsIkQo15hlokYxU z40G9vX*HCpyR)M?3O5|hIS4!!bCphk2;L>L&iio%NeNde=1wd!Qb;pM4eqRZQ4VBt z7vmH}*JKP}kfEPUHw|siYi+7P1UzlOB3s0GurZ0XBg?MPn_boEu#-nF}ou}LX08in7;TKO6i1* zyO?B{$#&NA5;=&asoG5;F+)!_R~B438TXNA812SYCQ107tLiqxU|5om)oosLin%X> zYDPu@3WL&xDkSF_Hh~_@3gsVpVUe7v58P>*^)=O^6XGV@)jK1q zlMsuh>DZ2?wtT3az;nEm@Pfo_*RSPLDeiK`cO6*DC}N%=UOi=CI1JxWGxp6LuK3m~ zs!`XuJy9{u9k*2sT_@;`&`to{IB4+_w`-Qxa!e}>S<+S84sQe;UoVn`y;BRduN0`5 zjN(}gujv}1Ym1^ilMG|@j5Ek(!{C?&-q`F8R(s1IL7rKv>(9;y`!E@95-n$ z`}VknQCcx#Pt#j)P0}d1`tm<9b{;Hw;D`s2Fn9@MyfY+Cy>{wlieeI8r2Gl)0p~&N z%ukw{YAWy(24#Wogb&{=3@Ttc0Asm(oy6Fl#eH#=~K+nc$H##<>hDrZ|Hwyk@iIHmhcYm$>)k^BhVtp HUWWez!ZvSm literal 0 HcmV?d00001 diff --git a/bin/main/lol/hub/hubtp/Plugin$1.class b/bin/main/lol/hub/hubtp/Plugin$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e4af996ebe510c5f52fd46c8ad48834e2111133e GIT binary patch literal 1127 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 literal 0 HcmV?d00001 diff --git a/bin/main/lol/hub/hubtp/Request.class b/bin/main/lol/hub/hubtp/Request.class new file mode 100644 index 0000000000000000000000000000000000000000..a10d37974784d0b681dd1e9d56b809febd982275 GIT binary patch literal 2083 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 x_9#Lo`-q4LsU9r& literal 0 HcmV?d00001 diff --git a/bin/main/lol/hub/hubtp/commands/AcceptCmd.class b/bin/main/lol/hub/hubtp/commands/AcceptCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..6eb64f92a0f0c683da31adfe85746b93fe817d90 GIT binary patch literal 2471 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 literal 0 HcmV?d00001 diff --git a/bin/main/lol/hub/hubtp/commands/CancelCmd.class b/bin/main/lol/hub/hubtp/commands/CancelCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..0e3ee98ff8ce04c923348794ef570671bf78caa6 GIT binary patch literal 2746 zcmbVOU2_vv7=BKhvT0aK4NzJv7^*-*N|#SRNI^?Wp^&yfYZXv*o1CUgH@jhXQ>o(* z@Y);o&O2xD3Y@{#3&$BRobk#V`wRRP4&(To-87Jf0CJI?bKdto@7MEwb)>5;T(ddD|mSM}Wg0lj-biPsN z6}wupoLt`ZO2&M3X~_yU%oq`?rX!b`6NrtvMVUZ5I(2j)A#moU)lEz&h1>I%Bd4n6 zdFjoX^R^U7=G}s6&zYX3?lod8ShReBflao35jT&*s_>Xh`y(D{t%tmh3Wj5%JrzqA%U7pPqg-~hVx71Y8)3eTo5?e z63&L~>X^VKHo93+MJjOV#gf+A_s5x4{hHS?i7A1;sLG$(if5nEip>?))SPi#5lFvC zyQywd7+g~r%m@rWrGQ_!D&u%xKn$tk`9Q~qxX!96Nw&qV^hC|aaC}YA-7>%d0bhvr-VDn_4bDBShc>G}a$gN7wSAgQ3Uo$=!2S^Ejs)t{ zR4p98y0Bo~O1KX- z5VG#gjxv%Nx9Sz-xTW@JSCl0FM;KC)*bjouzZO6nPaW98ug2SDo)x|GaCWdg_7mdw zLy@igCMXJQM;zVIc}his*oH3N_=LP}s!^v`kPH>?z|Kgq_!}{*2G$3EM*>WY%D`;Xdi72>W-4C*S!V9m(A3ST=d)0p6uV#0$^o)^NTJzhb;E z7V*M+q#`@GipzBa>1=X3GC=axjc3W(jZ4jJ`x@qy!W$3q(L;QytS&^F8!XUba<<7L zBa1<0X&HO@-O1Z7=3zJU(92UFzrD=Z9wvS-PGTQUaqpfXyv*y&#)i?4Y98iV)-2JUf{{D5Ql5y$ZxcgCN*|3!@ok&7XO>vcrdu?QlnGww}8D9m+>i>g0vIjz`$9p}%WHgZ~eXJ;Djz LXsb$Y8Nu;*^T#`#zNp|Dr2E{l3 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 bN~bZbVVy=aXw* zdEuo6B=`V63U$_wghIoEXMARN&Y8>p{`2D(fLCbxa0s=$^{N5awT~OqrJix6$knynTHn1GrcSF^74=QmiuhestcIgHNKH zN4aPL)_3lyMI$ zK9*TH&&iaIj#Vo2wnD68jo|2GLTd);;S8N3G)2?0BKJeo@qkb=x=>H&s9&?|u9p$Yta5M6fu>DV!vuJpv zi)|y4vv;CDSwqm)qd_9y@O%hCzWC=>0-N9x`JDg`|M6zo`ivs>#C~q~8l|uKalqCd zTU%xu78lqrGFreLEOEppYbJBp*LU5YsC+~9J8Fb0Jp6)^JC5D4H_mf;f!JVq%Up%W oHsDB^cNe0@d{$+(V8RxjOwcxVIQuChe%YUWY}m@5F?7(l0WrX;M*si- literal 0 HcmV?d00001 diff --git a/bin/main/lol/hub/hubtp/util/Players.class b/bin/main/lol/hub/hubtp/util/Players.class new file mode 100644 index 0000000000000000000000000000000000000000..d85da421630bc78e5ed2c8e4ff6ed061fb1da76a GIT binary patch literal 3362 zcma)8`&SfY7=Au>VPF{%LGgZ9f<;|3%4)4dK&2Ki7x2=>26h%khM9GC7Q^mY*}b%z zUF@D##~-X85bT^zKlMYW|Dk`xlRe+;;Lad%JY076{oe0=pZ9s6?|bL3f3N)xpbbAO zC=*y=+Gb*;Fev}rT%zC_X5xUUP3TTuK~$jjxHhgOOwAfj^bQ`^hg^Y*U4~`24+=z@ zng;};?RG|wA%ZFu<){!?m@+KAr!Y3CJAK-qsSDJl>>Ta4_l;3^#K;S*O8q~A zB!dm>Zm(rBViA=s)(C3I4tUMIR%XNo}CNv8uS;NY-SrY;cp&EO0k|)hf z#?XST3bs%YC15kFDz+g(Ot#Z$<|&%SVBtmWv8mp^fE<$w?qqKQeGK(l^6n`_pgt%F zUp8df(#AZ6mIAXEQa}O=D1xHu`un>&1a{u8@=C?YjVzlCtEj=kYHUYR#V$M`P|fK5 zmT{t>cV$ROh%s-Ql<7k%cB732Nb@2e7v>h{Z_|yQ8lubRh zhL{d#4Atfdwz!K$byIl(B?J~F@x3Yz;L#%S@FVIhIun z;1JbA_=mlVup@>ecuc`jftr$(x;1x1#p8H_KH4BJk!Vv#bB6?TOvO{s1S%QfkSw0J zM;M7`WxIx;E8uc%0EV}wB8y?BV}wp?+;D7bj7$lvnV_3yY zc$pV|UZ(5Ib?DZ_K`mnxh>c^cONOxdn6u?gA1pK=BI>u&)W!xg+NSLSi8;<)aN{i1 z9+h2xL&ckTi#4!kJ>JD5n_kk3e|%$j2k$9(H#B~WYbxHyS@KC1HIrDE1X0Y~k`$rH z@hpVL?nG{8^v2S5!5Px`8ge+R{pk`6nrYMp#;>h z#_dr(k@DD}qn6d=$(>N~IlkZ#8!MRv{tjaFcNT;1*Q|`G=QpKnd$f?7V~Pj332p3S zF+um+Uo57ae{ZlQe&lw|G}8u$>%t0rQj4=veP6414QFWhsutrUvdgk`r`^=@d7Up$ zKL~8Tg|NBGR&a@jYkpUDyvPx`4IE{xCyWSR8h{Eu@%4-U6@E+bQ}DAqeifC!@SzMb z-wCMZ51KBZE&O{s*>Sp<6I? zjTgG1xE(ui7uOjGt+<=Pt8fo?`bo~wC(5$07yWucJ=kT&$9}iI49eW|Iu2e?#gBiRclS#K9>X=JS)1ltF=CF>(==wUw6; zjh-2;nenpb^SX)?vx`|p*sIaZ*SV(lt(Vdr*JCOGKpuW@Z6d67qE!W zr~T*h=;g>|?kl#Y&ZB=b+tSG9G_fho0Xek#l`La@ui#Z?mMy44S^agaQIM*Q$' + aliases: [ 'tpask' ] + permission: 'tpa.tpa' + permission-message: 'Insufficient permissions, you should harass your admin because of this!' + tpy: + description: 'Accept request' + usage: '/tpy ' + aliases: [ 'tpaccept', 'tpyes' ] + permission: 'tpa.tpy' + permission-message: 'Insufficient permissions, you should harass your admin because of this!' + tpn: + description: 'Deny request' + usage: '/tpn ' + aliases: [ 'tpdeny', 'tpno' ] + permission: 'tpa.tpn' + permission-message: 'Insufficient permissions, you should harass your admin because of this!' + tpi: + description: 'Ignore requests per player' + usage: '/tpi ' + aliases: [ 'tpignore' ] + permission: 'tpa.tpi' + permission-message: 'Insufficient permissions, you should harass your admin because of this!' + tpt: + description: 'Ignore requests globally' + usage: '/tpt' + aliases: [ 'tptoggle' ] + permission: 'tpa.tpt' + permission-message: 'Insufficient permissions, you should harass your admin because of this!' + tpc: + description: 'Cancel outgoing requests' + usage: '/tpc ' + aliases: [ 'tpcancel' ] + permission: 'tpa.tpc' + permission-message: 'Insufficient permissions, you should harass your admin because of this!' + +permissions: + tpa.tpa: + description: 'Send request' + default: true + tpa.tpy: + description: 'Accept request' + default: true + tpa.tpn: + description: 'Deny request' + default: true + tpa.tpi: + description: 'Ignore requests per player' + default: true + tpa.tpt: + description: 'Ignore requests globally' + default: true + tpa.tpc: + description: 'Cancel outgoing requests' + default: true diff --git a/src/main/java/lol/hub/hubtp/Config.java b/src/main/java/lol/hub/hubtp/Config.java index 63bd41a..a80f5ec 100644 --- a/src/main/java/lol/hub/hubtp/Config.java +++ b/src/main/java/lol/hub/hubtp/Config.java @@ -17,11 +17,13 @@ public final class Config { private static boolean movementCheck; private static boolean includeLeashed; private static boolean includeLeashedInterdimensional; + private static boolean teleportMountedEntities; private static Path ignoresPath; private static boolean debug; private static synchronized void assertInitialized() { - if (!initialized) throw new IllegalStateException("Config access prior to initialization!"); + if (!initialized) + throw new IllegalStateException("Config access prior to initialization!"); } public static synchronized void load(Plugin plugin) { @@ -37,13 +39,13 @@ public static synchronized void load(Plugin plugin) { config.addDefault("movement-check", false); config.addDefault("include-leashed", true); config.addDefault("include-leashed-interdimensional", false); + config.addDefault("teleport-mounted-entities", true); config.addDefault("ignores-path", Ignores.defaultPath.apply(plugin)); config.addDefault("debug", false); config.addDefault("bStats", true); config.options().copyDefaults(true); plugin.saveConfig(); - allowMultiTargetRequest = config.getBoolean("allow-multi-target-request"); if (config.getInt("request-timeout-seconds") < 10) { @@ -80,7 +82,9 @@ public static synchronized void load(Plugin plugin) { includeLeashedInterdimensional = config.getBoolean("include-leashed-interdimensional"); - //noinspection DataFlowIssue + teleportMountedEntities = config.getBoolean("teleport-mounted-entities"); + + // noinspection DataFlowIssue if (config.getString("ignores-path") == null || config.getString("ignores-path").isBlank()) { config.set("ignores-path", Ignores.defaultPath.apply(plugin)); plugin.saveConfig(); @@ -90,7 +94,7 @@ public static synchronized void load(Plugin plugin) { config.set("ignores-path", Ignores.defaultPath.apply(plugin)); plugin.saveConfig(); } - //noinspection DataFlowIssue + // noinspection DataFlowIssue ignoresPath = Path.of(config.getString("ignores-path")); debug = config.getBoolean("debug"); @@ -148,6 +152,11 @@ public static boolean includeLeashedInterdimensional() { return includeLeashedInterdimensional; } + public static boolean teleportMountedEntities() { + assertInitialized(); + return teleportMountedEntities; + } + public static Path ignoresPath() { assertInitialized(); return ignoresPath; diff --git a/src/main/java/lol/hub/hubtp/Plugin.java b/src/main/java/lol/hub/hubtp/Plugin.java index 244ff00..fef338f 100644 --- a/src/main/java/lol/hub/hubtp/Plugin.java +++ b/src/main/java/lol/hub/hubtp/Plugin.java @@ -2,10 +2,12 @@ import com.tcoded.folialib.FoliaLib; import com.tcoded.folialib.impl.PlatformScheduler; +import io.papermc.paper.entity.TeleportFlag; import lol.hub.hubtp.commands.*; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.Location; import org.bstats.bukkit.Metrics; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -20,9 +22,14 @@ import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Deque; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.CompletableFuture; import java.util.function.Function; import java.util.stream.Collectors; @@ -48,13 +55,13 @@ public class Plugin extends JavaPlugin { /** * Maps associating command labels with their constructor functions. */ - private final Map> commandMap = Map.of( - "tpa", pCmd -> new AskCmd(this, pCmd), - "tpy", pCmd -> new AcceptCmd(this, pCmd), - "tpn", pCmd -> new DenyCmd(this, pCmd), - "tpt", pCmd -> new ToggleCmd(this, pCmd), - "tpi", pCmd -> new IgnoreCmd(this, pCmd) - ); + private final Map> commandMap = Map.ofEntries( + Map.entry("tpa", pCmd -> new AskCmd(this, pCmd)), + Map.entry("tpy", pCmd -> new AcceptCmd(this, pCmd)), + Map.entry("tpn", pCmd -> new DenyCmd(this, pCmd)), + Map.entry("tpt", pCmd -> new ToggleCmd(this, pCmd)), + Map.entry("tpi", pCmd -> new IgnoreCmd(this, pCmd)), + Map.entry("tpc", pCmd -> new CancelCmd(this, pCmd))); /** * Gets the scheduler instance from FoliaLib. @@ -75,19 +82,20 @@ public void onLoad() { */ public Set getPluginCommands() { return getServer() - .getCommandMap() - .getKnownCommands() - .values() - .stream() - .filter(org.bukkit.command.Command::isRegistered) - .filter(cmd -> cmd instanceof PluginCommand) - .map(cmd -> (PluginCommand) cmd) - .filter(cmd -> cmd.getPlugin() == this) - .collect(Collectors.toUnmodifiableSet()); + .getCommandMap() + .getKnownCommands() + .values() + .stream() + .filter(org.bukkit.command.Command::isRegistered) + .filter(cmd -> cmd instanceof PluginCommand) + .map(cmd -> (PluginCommand) cmd) + .filter(cmd -> cmd.getPlugin() == this) + .collect(Collectors.toUnmodifiableSet()); } /** - * Called when the plugin is enabled. Sets up commands, metrics, and event listeners. + * Called when the plugin is enabled. Sets up commands, metrics, and event + * listeners. */ public void onEnable() { Log.set(this.getLogger()); @@ -114,8 +122,10 @@ public void onEnable() { getServer().getPluginManager().registerEvents(new Listener() { @EventHandler public void onPlayerMove(PlayerMoveEvent event) { - if (!Config.movementCheck()) return; - if (!event.hasChangedPosition()) return; + if (!Config.movementCheck()) + return; + if (!event.hasChangedPosition()) + return; RequestManager.cancelRequestsByRequester(event.getPlayer()); } }, this); @@ -140,7 +150,8 @@ private void registerTpCommand(String label, PluginCommand pCmd, Function 0) { - // Notify players about the pending teleport - tpTarget.sendMessage(Component.text("Teleporting ", NamedTextColor.GOLD) - .append(Component.text(tpRequester.getName())) - .append(Component.text(" in ")) - .append(Component.text(tpDelay)) - .append(Component.text(" seconds..."))); - - tpRequester.sendMessage(Component.text("Teleporting in ", NamedTextColor.GOLD) - .append(Component.text(tpDelay)) - .append(Component.text(" seconds..."))); - - this.getScheduler().runLaterAsync(() -> { - if (RequestManager.isRequestActive(tpTarget, tpRequester)) { - this.executeTPMove(tpTarget, tpRequester); - } + if (tpTarget == null || tpRequester == null) { + return; + } - }, (long) tpDelay * 20L); - } else { - // Immediate teleport + int tpDelay = Config.tpDelaySeconds(); + if (tpDelay > 0) { + // Notify players about the pending teleport + tpTarget.sendMessage(Component.text("Teleporting ", NamedTextColor.GOLD) + .append(Component.text(tpRequester.getName())) + .append(Component.text(" in ")) + .append(Component.text(tpDelay)) + .append(Component.text(" seconds..."))); + + tpRequester.sendMessage(Component.text("Teleporting in ", NamedTextColor.GOLD) + .append(Component.text(tpDelay)) + .append(Component.text(" seconds..."))); + + this.getScheduler().runLaterAsync(() -> { + if (RequestManager.isRequestActive(tpTarget, tpRequester)) { this.executeTPMove(tpTarget, tpRequester); } - - } else { - // Teleportation failed due to vehicles - TextComponent msg = Component.text("Teleport failed!", NamedTextColor.RED); - tpTarget.sendMessage(msg); - tpRequester.sendMessage(msg); - } + }, (long) tpDelay * 20L); + } else { + // Immediate teleport + this.executeTPMove(tpTarget, tpRequester); } } @@ -221,33 +225,179 @@ public void executeTPMove(Player tpTarget, Player tpRequester) { // Leash handling if enabled if (Config.includeLeashed() && shouldTpLeashed(tpTarget, tpRequester)) { tpRequester.getWorld() - .getNearbyEntities(tpRequester.getLocation(), 16, 16, 16).stream() - .filter(e -> e instanceof LivingEntity) - .map(e -> (LivingEntity) e) - .filter(LivingEntity::isLeashed) - .filter(e -> e.getLeashHolder().getUniqueId().equals(tpRequester.getUniqueId())) - .forEach(entity -> - entity.teleportAsync(tpTarget.getLocation(), PlayerTeleportEvent.TeleportCause.PLUGIN)); + .getNearbyEntities(tpRequester.getLocation(), 16, 16, 16).stream() + .filter(e -> e instanceof LivingEntity) + .map(e -> (LivingEntity) e) + .filter(LivingEntity::isLeashed) + .filter(e -> e.getLeashHolder().getUniqueId().equals(tpRequester.getUniqueId())) + .forEach(entity -> entity.teleportAsync(tpTarget.getLocation(), + PlayerTeleportEvent.TeleportCause.PLUGIN)); + } + + Location destination = tpTarget.getLocation().clone(); + boolean crossWorld = !tpRequester.getWorld().equals(tpTarget.getWorld()); + + // Execute teleport asynchronously, accounting for mounts + teleportRequesterWithVehicle(tpRequester, destination, crossWorld) + .thenAccept(result -> { + if (result) { + tpTarget.sendMessage( + Component.text(tpRequester.getName()) + .append(Component.text(" teleported to you!", NamedTextColor.GOLD))); + tpRequester.sendMessage( + Component.text("Teleported to ", NamedTextColor.GOLD) + .append(Component.text(tpTarget.getName())) + .append(Component.text("!"))); + } else { + TextComponent msg = Component.text( + "Teleportation failed.", + NamedTextColor.RED); + tpTarget.sendMessage(msg); + tpRequester.sendMessage(msg); + } + }); + } + + private CompletableFuture teleportRequesterWithVehicle(Player requester, Location destination, + boolean crossWorld) { + Entity mount = requester.getVehicle(); + + if (mount == null) { + return requester.teleportAsync(destination, PlayerTeleportEvent.TeleportCause.COMMAND); + } + + if (!Config.teleportMountedEntities()) { + requester.leaveVehicle(); + return requester.teleportAsync(destination, PlayerTeleportEvent.TeleportCause.COMMAND); + } + + List passengerSnapshots = collectPassengerTree(mount); + + if (crossWorld) { + requester.leaveVehicle(); + passengerSnapshots.stream() + .map(PassengerSnapshot::entity) + .forEach(Entity::leaveVehicle); + + List> teleportFutures = new ArrayList<>(); + teleportFutures.add(mount.teleportAsync(destination.clone(), + PlayerTeleportEvent.TeleportCause.PLUGIN)); + + for (PassengerSnapshot snapshot : passengerSnapshots) { + Entity passenger = snapshot.entity(); + Location target = destination.clone(); + PlayerTeleportEvent.TeleportCause cause = passenger instanceof Player + ? PlayerTeleportEvent.TeleportCause.COMMAND + : PlayerTeleportEvent.TeleportCause.PLUGIN; + teleportFutures.add(passenger.teleportAsync(target, cause)); + } + + return combineFutures(teleportFutures) + .thenApply(success -> { + if (success) { + remountPassengers(mount, passengerSnapshots); + } + return success; + }); } - // Execute teleport asynchronously - tpRequester.teleportAsync(tpTarget.getLocation(), PlayerTeleportEvent.TeleportCause.COMMAND) - .thenAccept(result -> { - if (result) { - tpTarget.sendMessage( - Component.text(tpRequester.getName()) - .append(Component.text(" teleported to you!", NamedTextColor.GOLD))); - tpRequester.sendMessage( - Component.text("Teleported to ", NamedTextColor.GOLD) - .append(Component.text(tpTarget.getName())) - .append(Component.text("!"))); - } else { - TextComponent msg = - Component.text("Teleportation failed. Please try again later or contact an admin.", NamedTextColor.RED); - tpTarget.sendMessage(msg); - tpRequester.sendMessage(msg); + List> teleportFutures = new ArrayList<>(); + teleportFutures.add(mount.teleportAsync(destination.clone(), + PlayerTeleportEvent.TeleportCause.PLUGIN, + TeleportFlag.EntityState.RETAIN_PASSENGERS)); + + for (PassengerSnapshot snapshot : passengerSnapshots) { + Entity passenger = snapshot.entity(); + PlayerTeleportEvent.TeleportCause cause = passenger instanceof Player + ? PlayerTeleportEvent.TeleportCause.COMMAND + : PlayerTeleportEvent.TeleportCause.PLUGIN; + teleportFutures.add(passenger.teleportAsync(destination.clone(), + cause, + TeleportFlag.EntityState.RETAIN_VEHICLE)); + } + + return combineFutures(teleportFutures) + .thenApply(success -> { + if (success) { + remountPassengers(mount, passengerSnapshots); + } + return success; + }); + } + + private static void remountPassengers(Entity root, List snapshots) { + Map> parentToChildren = new HashMap<>(); + + for (PassengerSnapshot snapshot : snapshots) { + Entity parent = snapshot.vehicle(); + Entity passenger = snapshot.entity(); + + if (parent == null || !parent.isValid() || !passenger.isValid()) { + continue; + } + + parentToChildren.computeIfAbsent(parent, key -> new ArrayList<>()).add(passenger); + } + + Deque queue = new ArrayDeque<>(); + queue.add(root); + + while (!queue.isEmpty()) { + Entity current = queue.poll(); + List children = parentToChildren.get(current); + + if (children == null) { + continue; + } + + for (Entity child : children) { + if (!child.isValid() || !current.isValid()) { + continue; + } + + if (child.getVehicle() != current) { + if (child.getVehicle() != null) { + child.leaveVehicle(); + } + current.addPassenger(child); } - }); + + queue.add(child); + } + } + } + + private static List collectPassengerTree(Entity root) { + List passengers = new ArrayList<>(); + Deque queue = new ArrayDeque<>(); + + for (Entity passenger : root.getPassengers()) { + queue.add(new PassengerSnapshot(passenger, root)); + } + + while (!queue.isEmpty()) { + PassengerSnapshot snapshot = queue.poll(); + passengers.add(snapshot); + + for (Entity child : snapshot.entity().getPassengers()) { + queue.add(new PassengerSnapshot(child, snapshot.entity())); + } + } + + return passengers; + } + + private record PassengerSnapshot(Entity entity, Entity vehicle) { + } + + private static CompletableFuture combineFutures(List> futures) { + if (futures.isEmpty()) { + return CompletableFuture.completedFuture(true); + } + + CompletableFuture[] futureArray = futures.toArray(new CompletableFuture[0]); + return CompletableFuture.allOf(futureArray) + .thenApply(ignored -> futures.stream().allMatch(future -> future.getNow(false))); } /** @@ -265,9 +415,11 @@ public boolean isRequestBlock(Player player) { } /** - * Determines if teleporting between two entities should consider leashed status. + * Determines if teleporting between two entities should consider leashed + * status. */ private static boolean shouldTpLeashed(Entity playerA, Entity playerB) { - return playerA.getWorld().getEnvironment() == playerB.getWorld().getEnvironment() || Config.includeLeashedInterdimensional(); + return playerA.getWorld().getEnvironment() == playerB.getWorld().getEnvironment() + || Config.includeLeashedInterdimensional(); } } diff --git a/src/main/java/lol/hub/hubtp/RequestManager.java b/src/main/java/lol/hub/hubtp/RequestManager.java index 8e6f79f..4afa7cf 100644 --- a/src/main/java/lol/hub/hubtp/RequestManager.java +++ b/src/main/java/lol/hub/hubtp/RequestManager.java @@ -5,8 +5,12 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; + +import org.jetbrains.annotations.Nullable; public class RequestManager { private static final Map pendingRequests = new ConcurrentHashMap<>(); @@ -19,18 +23,16 @@ static void clearOldRequests(int timeoutValue) { Player requester = Bukkit.getPlayer(request.requester().uuid()); if (requester != null) { requester.sendMessage( - Component.text("Your teleport request to ", NamedTextColor.GOLD) - .append(Component.text(request.target().name())) - .append(Component.text(" timed out.")) - ); + Component.text("Your teleport request to ", NamedTextColor.GOLD) + .append(Component.text(request.target().name())) + .append(Component.text(" timed out."))); } Player target = Bukkit.getPlayer(request.target().uuid()); if (target != null) { target.sendMessage( - Component.text("The teleport request from ", NamedTextColor.GOLD) - .append(Component.text(request.requester().name())) - .append(Component.text(" timed out.")) - ); + Component.text("The teleport request from ", NamedTextColor.GOLD) + .append(Component.text(request.requester().name())) + .append(Component.text(" timed out."))); } } }); @@ -59,12 +61,15 @@ public static void cancelRequestsByTarget(Player target) { } public static void cancelRequestsByRequester(Player requester) { - for (Request request : pendingRequests.keySet()) { - if (request.requester().uuid().equals(requester.getUniqueId())) { - pendingRequests.remove(request); - // TODO: cancel info message - } - } + cancelRequestsByRequesterInternal(requester, null, false); + } + + public static List cancelAllRequestsByRequester(Player requester) { + return cancelRequestsByRequesterInternal(requester, null, true); + } + + public static List cancelRequestsByRequester(Player requester, String targetName) { + return cancelRequestsByRequesterInternal(requester, targetName, true); } public static boolean isRequestActive(Player target, Player requester) { @@ -84,4 +89,34 @@ public static boolean isRequestActiveByRequester(Player requester) { } return false; } + + private static List cancelRequestsByRequesterInternal(Player requester, @Nullable String targetName, + boolean notifyTargets) { + List toCancel = pendingRequests.keySet().stream() + .filter(request -> request.requester().uuid().equals(requester.getUniqueId())) + .filter(request -> targetName == null || request.target().name().equalsIgnoreCase(targetName)) + .collect(Collectors.toList()); + + if (toCancel.isEmpty()) { + return List.of(); + } + + Component targetMessage = Component.text(requester.getName(), NamedTextColor.GOLD) + .append(Component.text(" cancelled their teleport request.")); + + for (Request request : toCancel) { + pendingRequests.remove(request); + + if (!notifyTargets) { + continue; + } + + Player target = Bukkit.getPlayer(request.target().uuid()); + if (target != null) { + target.sendMessage(targetMessage); + } + } + + return List.copyOf(toCancel); + } } diff --git a/src/main/java/lol/hub/hubtp/commands/CancelCmd.java b/src/main/java/lol/hub/hubtp/commands/CancelCmd.java new file mode 100644 index 0000000..2788a96 --- /dev/null +++ b/src/main/java/lol/hub/hubtp/commands/CancelCmd.java @@ -0,0 +1,53 @@ +package lol.hub.hubtp.commands; + +import java.util.List; + +import lol.hub.hubtp.Plugin; +import lol.hub.hubtp.Request; +import lol.hub.hubtp.RequestManager; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.command.PluginCommand; +import org.bukkit.entity.Player; + +public class CancelCmd extends TpCommand { + public CancelCmd(Plugin plugin, PluginCommand pluginCommand) { + super(plugin, pluginCommand, 0, 1); + } + + @Override + public void run(Player commandSender, String targetName) { + if (targetName == null) { + List cancelled = RequestManager.cancelAllRequestsByRequester(commandSender); + + if (cancelled.isEmpty()) { + commandSender.sendMessage(Component.text("You have no pending teleport requests to cancel.", + NamedTextColor.RED)); + return; + } + + String suffix = cancelled.size() == 1 ? " teleport request." : " teleport requests."; + commandSender.sendMessage( + Component.text("Cancelled ", NamedTextColor.GOLD) + .append(Component.text(cancelled.size(), NamedTextColor.GOLD)) + .append(Component.text(suffix, NamedTextColor.GOLD))); + return; + } + + List cancelled = RequestManager.cancelRequestsByRequester(commandSender, targetName); + + if (cancelled.isEmpty()) { + commandSender.sendMessage( + Component.text("You have no pending teleport request to ", NamedTextColor.RED) + .append(Component.text(targetName)) + .append(Component.text("."))); + return; + } + + String resolvedTargetName = cancelled.get(0).target().name(); + commandSender.sendMessage( + Component.text("Cancelled teleport request to ", NamedTextColor.GOLD) + .append(Component.text(resolvedTargetName, NamedTextColor.GOLD)) + .append(Component.text(".", NamedTextColor.GOLD))); + } +} diff --git a/src/main/java/lol/hub/hubtp/commands/TpCommand.java b/src/main/java/lol/hub/hubtp/commands/TpCommand.java index 580f7c9..3cb3198 100644 --- a/src/main/java/lol/hub/hubtp/commands/TpCommand.java +++ b/src/main/java/lol/hub/hubtp/commands/TpCommand.java @@ -9,20 +9,30 @@ public abstract class TpCommand { public final String usage; final Plugin plugin; - private final int argumentCount; + private final int minArguments; + private final int maxArguments; - public TpCommand(Plugin plugin, String usage, int argumentCount) { + public TpCommand(Plugin plugin, String usage, int minArguments, int maxArguments) { this.plugin = plugin; this.usage = usage; - this.argumentCount = argumentCount; + this.minArguments = minArguments; + this.maxArguments = maxArguments; + } + + public TpCommand(Plugin plugin, String usage, int argumentCount) { + this(plugin, usage, argumentCount, argumentCount); } public TpCommand(Plugin plugin, PluginCommand pluginCommand, int argumentCount) { - this(plugin, pluginCommand.getUsage(), argumentCount); + this(plugin, pluginCommand.getUsage(), argumentCount, argumentCount); + } + + public TpCommand(Plugin plugin, PluginCommand pluginCommand, int minArguments, int maxArguments) { + this(plugin, pluginCommand.getUsage(), minArguments, maxArguments); } - public int getArgumentCount() { - return argumentCount; + public boolean isArgumentCountValid(int count) { + return count >= minArguments && count <= maxArguments; } public abstract void run(Player commandSender, String targetName); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 47d4506..0f760c6 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -38,6 +38,12 @@ commands: aliases: [ 'tptoggle' ] permission: 'tpa.tpt' permission-message: 'Insufficient permissions, you should harass your admin because of this!' + tpc: + description: 'Cancel outgoing requests' + usage: '/tpc ' + aliases: [ 'tpcancel' ] + permission: 'tpa.tpc' + permission-message: 'Insufficient permissions, you should harass your admin because of this!' permissions: tpa.tpa: @@ -55,3 +61,6 @@ permissions: tpa.tpt: description: 'Ignore requests globally' default: true + tpa.tpc: + description: 'Cancel outgoing requests' + default: true From c13587dfd37a6f3c5b3f4fca614c9039c9cdd106 Mon Sep 17 00:00:00 2001 From: v0ey <113121361+v0ey@users.noreply.github.com> Date: Sat, 4 Oct 2025 21:27:39 +0300 Subject: [PATCH 2/3] teleport mounted entities + tpcancel (forgot about compiled class files xd --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5222655..412b685 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /build/ /run/ /.idea/ +/bin/ From 30fff8f4b77952921074c972f218d0be342b7529 Mon Sep 17 00:00:00 2001 From: v0ey <113121361+v0ey@users.noreply.github.com> Date: Sat, 4 Oct 2025 21:28:23 +0300 Subject: [PATCH 3/3] remove compiled class files from repo --- bin/main/lol/hub/hubtp/Config.class | Bin 4241 -> 0 bytes bin/main/lol/hub/hubtp/Ignores.class | Bin 4643 -> 0 bytes bin/main/lol/hub/hubtp/Log.class | Bin 1393 -> 0 bytes bin/main/lol/hub/hubtp/PlayerData.class | Bin 1652 -> 0 bytes bin/main/lol/hub/hubtp/Plugin$1.class | Bin 1127 -> 0 bytes .../hub/hubtp/Plugin$PassengerSnapshot.class | Bin 1544 -> 0 bytes bin/main/lol/hub/hubtp/Plugin.class | Bin 21987 -> 0 bytes bin/main/lol/hub/hubtp/Request.class | Bin 2083 -> 0 bytes bin/main/lol/hub/hubtp/RequestManager.class | Bin 7261 -> 0 bytes .../lol/hub/hubtp/commands/AcceptCmd.class | Bin 2471 -> 0 bytes bin/main/lol/hub/hubtp/commands/AskCmd.class | Bin 5411 -> 0 bytes .../lol/hub/hubtp/commands/CancelCmd.class | Bin 2746 -> 0 bytes bin/main/lol/hub/hubtp/commands/DenyCmd.class | Bin 2378 -> 0 bytes .../lol/hub/hubtp/commands/IgnoreCmd.class | Bin 2329 -> 0 bytes .../lol/hub/hubtp/commands/ToggleCmd.class | Bin 2696 -> 0 bytes .../lol/hub/hubtp/commands/TpCommand.class | Bin 2465 -> 0 bytes bin/main/lol/hub/hubtp/util/Paths.class | Bin 758 -> 0 bytes bin/main/lol/hub/hubtp/util/Players.class | Bin 3362 -> 0 bytes bin/main/plugin.yml | 66 ------------------ 19 files changed, 66 deletions(-) delete mode 100644 bin/main/lol/hub/hubtp/Config.class delete mode 100644 bin/main/lol/hub/hubtp/Ignores.class delete mode 100644 bin/main/lol/hub/hubtp/Log.class delete mode 100644 bin/main/lol/hub/hubtp/PlayerData.class delete mode 100644 bin/main/lol/hub/hubtp/Plugin$1.class delete mode 100644 bin/main/lol/hub/hubtp/Plugin$PassengerSnapshot.class delete mode 100644 bin/main/lol/hub/hubtp/Plugin.class delete mode 100644 bin/main/lol/hub/hubtp/Request.class delete mode 100644 bin/main/lol/hub/hubtp/RequestManager.class delete mode 100644 bin/main/lol/hub/hubtp/commands/AcceptCmd.class delete mode 100644 bin/main/lol/hub/hubtp/commands/AskCmd.class delete mode 100644 bin/main/lol/hub/hubtp/commands/CancelCmd.class delete mode 100644 bin/main/lol/hub/hubtp/commands/DenyCmd.class delete mode 100644 bin/main/lol/hub/hubtp/commands/IgnoreCmd.class delete mode 100644 bin/main/lol/hub/hubtp/commands/ToggleCmd.class delete mode 100644 bin/main/lol/hub/hubtp/commands/TpCommand.class delete mode 100644 bin/main/lol/hub/hubtp/util/Paths.class delete mode 100644 bin/main/lol/hub/hubtp/util/Players.class delete mode 100644 bin/main/plugin.yml diff --git a/bin/main/lol/hub/hubtp/Config.class b/bin/main/lol/hub/hubtp/Config.class deleted file mode 100644 index 2cb7d50a1f2cec230ec83574a495b4afa37db5c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4241 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 V{y@!t#Gg4XTl8P>H~a%_{{_Cj%Lo7f diff --git a/bin/main/lol/hub/hubtp/Log.class b/bin/main/lol/hub/hubtp/Log.class deleted file mode 100644 index f7c2d412f3cfbbad6c9faa0d9c3294cb4ee501cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1393 zcmZ`(>r&G|6#lliv}ww%AeD=Vpth()MNtIN%HWJnK}Q&V_%AI>SWJ^nE+~)UW2iI8 z_`?VAp&ZX9kzSyk$!7PQJ>U7xIbZtc@2}qgs(7U!!7yw&mVOx2<>R;Xnqw+RF$^6U z$A)ehwyD3XAMu9Ikg*)oX}cI=a;6L=AKhN*I;e`Pr^jA}?D!!TGAHs21Kb?)vO zR3hQkoQ7fT8Lp7$*qB)hDXK`~s)ljoiKc%js13#1g|1WC>3v=gOop*?L?i6}j_*=` zS1WreW-zPZI??D3-f-*#VQQGdjj$UZWgF%-+{82`JRquMZh8bfauJuIu;UwzPg_PS zW}OoDfg>UAXsCn`pAFZRhD8m!G$_(Qq=+$hU56A=>SVn6rNLWr-XZBFJXY|CN^T44 z{DOvMJYi627+c))43n6S{vSeT^)ma4hG#N+#^cA_rJIbNv5tz)VX2i#kCS4jV_KIf zRf=Z5S7+}H*JyH|yIrDHcbvd&@Yh04I!kI0*u)F&zhQQUVz~aE5DNp?*hk;S_TcB^f4G$q!0ZAbv7=gfxI##1$xq_gH}- zNf9yRatxV`z!ut+BCtU!dZ+^|8-wL=w;#s6UW_7Pj9!Xy9}i+4D>09J#N**9p7z3w zQ}0V1FnO$EjcUr_Io7EIFKDmG?#fZg0WHx!>UGz6qQWMTqRzIvln$pKO`QHEq(kB` JyreaO>Oag04J-fv diff --git a/bin/main/lol/hub/hubtp/PlayerData.class b/bin/main/lol/hub/hubtp/PlayerData.class deleted file mode 100644 index 324a3deccba38869f8406f89e423d3687da70af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1652 zcmaJ?X-^YT6g{s%r!Avh1O*gC1?hr}xZqMmg^Dz(NMuRWPt*3<4h%D8783rGA0&|w zG4TiZqm1{>40HmtX=dJb&$;)Vd++q`zmq=z-l8la!Z4(py3%y3;&EEanywyjtE4)r zgkFZ!wz{t>x@t6(PrPPYb%tI;-Q^6KO8aQtu{5Jmq%+sm$Ry>TxsIkQo15hlokYxU z40G9vX*HCpyR)M?3O5|hIS4!!bCphk2;L>L&iio%NeNde=1wd!Qb;pM4eqRZQ4VBt z7vmH}*JKP}kfEPUHw|siYi+7P1UzlOB3s0GurZ0XBg?MPn_boEu#-nF}ou}LX08in7;TKO6i1* zyO?B{$#&NA5;=&asoG5;F+)!_R~B438TXNA812SYCQ107tLiqxU|5om)oosLin%X> zYDPu@3WL&xDkSF_Hh~_@3gsVpVUe7v58P>*^)=O^6XGV@)jK1q zlMsuh>DZ2?wtT3az;nEm@Pfo_*RSPLDeiK`cO6*DC}N%=UOi=CI1JxWGxp6LuK3m~ zs!`XuJy9{u9k*2sT_@;`&`to{IB4+_w`-Qxa!e}>S<+S84sQe;UoVn`y;BRduN0`5 zjN(}gujv}1Ym1^ilMG|@j5Ek(!{C?&-q`F8R(s1IL7rKv>(9;y`!E@95-n$ z`}VknQCcx#Pt#j)P0}d1`tm<9b{;Hw;D`s2Fn9@MyfY+Cy>{wlieeI8r2Gl)0p~&N z%ukw{YAWy(24#Wogb&{=3@Ttc0Asm(oy6Fl#eH#=~K+nc$H##<>hDrZ|Hwyk@iIHmhcYm$>)k^BhVtp HUWWez!ZvSm diff --git a/bin/main/lol/hub/hubtp/Plugin$1.class b/bin/main/lol/hub/hubtp/Plugin$1.class deleted file mode 100644 index e4af996ebe510c5f52fd46c8ad48834e2111133e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1127 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 diff --git a/bin/main/lol/hub/hubtp/Request.class b/bin/main/lol/hub/hubtp/Request.class deleted file mode 100644 index a10d37974784d0b681dd1e9d56b809febd982275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2083 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 x_9#Lo`-q4LsU9r& diff --git a/bin/main/lol/hub/hubtp/commands/AcceptCmd.class b/bin/main/lol/hub/hubtp/commands/AcceptCmd.class deleted file mode 100644 index 6eb64f92a0f0c683da31adfe85746b93fe817d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2471 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 diff --git a/bin/main/lol/hub/hubtp/commands/CancelCmd.class b/bin/main/lol/hub/hubtp/commands/CancelCmd.class deleted file mode 100644 index 0e3ee98ff8ce04c923348794ef570671bf78caa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2746 zcmbVOU2_vv7=BKhvT0aK4NzJv7^*-*N|#SRNI^?Wp^&yfYZXv*o1CUgH@jhXQ>o(* z@Y);o&O2xD3Y@{#3&$BRobk#V`wRRP4&(To-87Jf0CJI?bKdto@7MEwb)>5;T(ddD|mSM}Wg0lj-biPsN z6}wupoLt`ZO2&M3X~_yU%oq`?rX!b`6NrtvMVUZ5I(2j)A#moU)lEz&h1>I%Bd4n6 zdFjoX^R^U7=G}s6&zYX3?lod8ShReBflao35jT&*s_>Xh`y(D{t%tmh3Wj5%JrzqA%U7pPqg-~hVx71Y8)3eTo5?e z63&L~>X^VKHo93+MJjOV#gf+A_s5x4{hHS?i7A1;sLG$(if5nEip>?))SPi#5lFvC zyQywd7+g~r%m@rWrGQ_!D&u%xKn$tk`9Q~qxX!96Nw&qV^hC|aaC}YA-7>%d0bhvr-VDn_4bDBShc>G}a$gN7wSAgQ3Uo$=!2S^Ejs)t{ zR4p98y0Bo~O1KX- z5VG#gjxv%Nx9Sz-xTW@JSCl0FM;KC)*bjouzZO6nPaW98ug2SDo)x|GaCWdg_7mdw zLy@igCMXJQM;zVIc}his*oH3N_=LP}s!^v`kPH>?z|Kgq_!}{*2G$3EM*>WY%D`;Xdi72>W-4C*S!V9m(A3ST=d)0p6uV#0$^o)^NTJzhb;E z7V*M+q#`@GipzBa>1=X3GC=axjc3W(jZ4jJ`x@qy!W$3q(L;QytS&^F8!XUba<<7L zBa1<0X&HO@-O1Z7=3zJU(92UFzrD=Z9wvS-PGTQUaqpfXyv*y&#)i?4Y98iV)-2JUf{{D5Ql5y$ZxcgCN*|3!@ok&7XO>vcrdu?QlnGww}8D9m+>i>g0vIjz`$9p}%WHgZ~eXJ;Djz LXsb$Y8Nu;*^T#`#zNp|Dr2E{l3 z1Ydpdr9S%7j$^@@I=(s6KfymhUwn~g$MM|VO=L+UwVBDz-m~95=R4m$=iJAC|M(Mt zX_OU27|vFlim~2Um48t)icYm^+NHWN%k8b1YDqzqLGOSm)Mk7*!{JHGw!~G2Y$6v% z->NjqmYvNxZrNCEY;0Jf8N~2E1wOLFD-6*Yr^I9ELbrxPh%rn)v%8zpUti9$`C_BG z%H4vwTHy@woKrL_E2eA7bzqE&b*oN!?xVh6j4b6@^U`5Bz7HFu$1R!V7@sU!&&GG&M}-0`)LTP5>TmY7{DNDOWv033JL5}WS9=| z4_rQh_};+bELEImP<(%SH!dQfV2B}Ob75?3Ij&`xrA^w>aJeD)=fYTX+^Q*zMYGCF z1v1Py701;uj3kM=e0`Q-H242DXL~S$jDj@7V8@+wx;4ipA{q>gQr${24CO?7wg-l9 z(asKc#`>Tjs7LXV4E?g#A?>B{^p3_cq2LO`#g4g#LTh*huTmSBwHmie4D*T3p;{vS zS7QHyR8W8Q=~i909icm3Wo3FWh1V6(U^%&GfP{)h!yA}p=&2K-1zxY4Woq-Gr{lE} z!wjw~pgK7dF8F2sX@l3rf@zaKs;D{KAa+(guum6-wMlU%LM0#K6&iWrFT;0L++-Li ztaF$98SAbeP#2C~qS>pjxlUD=>A$5RhXra2>Ni>E)Z^57EYxn>kG8}Pv z)!F1h2pXHur~z?MMXg}Elo!pL&O?Fn3B=*9FF?FKeJTJ^3pmO7)|(e*abv-x0N&h> zeU|Hp==FMC9Oqx5Yz`91o7z=@G1|y58tGL0O&^@z!8}6~BzG(}7r~DBtp`{px9!Mx zd>5@)i$2g>dz;ho+rBB)7UfPeiVS(6BT4%`sbCkRf?v=@0~{sw`bnwdq|ynTqD$-o zJq=o4rW8Gn+~aeQ_+4FpO-Gn37}Z_at%bDnd~^ZxbEufGGhffWS} z0$R~7>MP!o|8>iH&MuVSMor1pPt*)Bxvt#t|uPR2ScU~YeYUgDPjc8WUgqXm{|Arg)@!GSdC8xa7l5}Q` zrJ@vwXYHI(oHrcPUspFH?uuCv=-w0hemXMDv>YTPaB7crHBo`q(4xjo_u;t|Lx|t}^!rWJ%)J0zf zd`{TmRsiTbW}>(tpoB{dS*fkI+`j)xv! z3p>+$ux)5mJv0dMb^qu$g1Ok=4o3$X!W9L>0+$ZVweDyYSMerW-zb-*l^2*u9DG!b zq!%T&V-y8vsztMGS6j9{E1zz`Tez-(QgUXOWYmpUKIv2DJvDDz`?$Jw3z07 z{81HSxJ3ju@SJ6S>B(_s73V+%r0#TP40kZD;9X8j{WOFE$w8RFd+a&l2=r9@V8?wg zT<@X}IH_U^)AXwNUKbAaTI^kn;(dYSluf<13ewR`U!N%fnk$R4Y&)*zNM=!SE84PS zmx3XhQ8DWeMC8tNb}S02p-4yZ0p&ah{srDqEOHDcjr(TFD`{3BpPIcKo+>Lm%gC+B ze3}Z73on2fR>IemuHA}KS2I>Q<{A!(@~76<;eGvEvzYTtmZM`Yd(?=Em&>u>Oob7) z&bUTyb$@@I7Z zg42DQczLS-Pb55JBnP^g>Jm2~I+DqlMnq^2QOCwMJS6T-wq; z_YcsAzBQ-M<@BV1hn_z7FL6#!XDuaBAPKY&mUl;^Z)d)p`R4C`9{&m8B7QKCV(4+D zYb}Ho{ZmcLmW>AYs)02lYc*Gt8dU?CZM>SL=mUnG7aY$~A21XP<&Buv+_2_&#j^Bk zRwb<09kqIl6}^fviv4p8nUbuE9Mb48u>(1V3;!E#RO5A(9ZyVzjf(JRc*PYA`LeXR zJI8%T?_*;|EjR(g@uxz6mX0E2+H5Dpu>UFVI8laOk;fW0$Df}&L)s5L2CIp2wWXq7IE&T3~KD#x{EXGbp;b12}HfqsTPPjg~o z0H+y@Mec@Ta-QL2A;H^Z<(9BjF$PRhnWv^0G-2T^LwAGMb?`P<*B!M$t3Yv2QGsj# zTfKw?er(F&b-ZEVJl$s^)fZvO#G81FiXjk+p)VPF44pV^HJQ0A-XSL9d+p)A=<(#8 zo({Z+3kIlS2R)&zdQ19_#jA_Nc<2jDiMz_0mwtmQYl1gKb%qQj=}OI74=rXf zLM0+RtpHWc(-jk=I_Djir-p|oI&l@_2Fi5bF9v900+XZ+yx9~UmF!qy>qyp8-!9yB zrz}2ZV8?XxOq-a&EVV~Khm4CL;5E`SDv~XOT!-nO%ac+J=I{w_82FT7?|S15N$Cpi z>CU-HYErn7Y>)UQwcO|U(!duChd0VgTz2E!qj0Epz5*u@n|ro!<9ESOYli#O)X$L{ zDrB1>TXll9ixDQ~^~I#8hA(L`S}@_@7DF!Ji?P1Y%Yv5rU3N5!rimTlGaO1P)CQTM zmN1-}Cw-yiCDBoFj}g|i;&y$UH{UqL1xjYC& zVBlMZ6VD{QSsDiJGaTLCm3k`58ONx6)1=WridH+Ylb#0c#*k^-v!@15r~g3qx3)(o zJ#*v7>~dbx}v z1CMZwVFi7UaRy+^I5&`g`yt+4!H4_CS4=z$GY4c= za9ty<;InnK%0pDQMT?+nI_WfY(j$}#D2Yz&M=!c*o*tke50auEBC5JEiNlz}5qLNX zpXPc%wA>?deMF@62G7?LDr_rQ+3bzRv YL~;su$-5Ol?~yG>`)}|azQ@6T0U9g;Nokzg2o%J;Z#a;vFt>^v29k72-fc~dZCtA}Tso?}?eGQ(iU z^qYpokgp!~e_!pBh1NE#WvA)4h2^;nY*lXYXI)!^ONM25w-~M!`a9_bUR^EL7!nn` zA<~FrRD*^whIpY^OM&6Eh9rjMY+SfC#1c)K)nJ+4aqN}&%F(GTG0|`v6~dBi7@B<|I}twOT`nGP8yJP4MDa`9O=5*% zqO01DuP)iw>xmy!%P{UUX$0I}`m1WMUf60nqm^!{%7}A@z@6^SLA)CahsADe5 zhDbg0wrzW^=kU&&@OJHno5p>7lf(mtxxScx3J=@urg|x}=Q@5z0 zb>Q$GHEL71b5+}J`JF!1+f`IYE^h62L?81fUG_njr)WTOSOE?viyRLAP_?F>vkAr^XlX${#?#-r@l_1i@1?rG-de#yclWm-4qq4En zn3c_3jnv9%Op+xvQu;kbs~-^~dtj>c0wbmQ17u4J2gsFX4v;U6Ck`<2E1kwLC2f@7 z5yBWHpJQ}Ci_`R(L=Mw*{$bz=XE8%7X)hTtHItlTY9`r8rc?6OLcS!Mb0M2;@{pjj zRB3);X66OXAA+aV^)uvfLV=Y6!w4)Dfu)oH5-f!a3QR&=3?Uwc5E?=JflGZ+rit3w zE)*?7QEy8Xl7=Emij&rbG9RMU2}R192~oxqeS$epv}U`M%S14lD40wHlTmq;%4H(u z7H};Dd_YuW$hqm#@5uj*j2tI^!9e19{5kE%RR#wY^-BsfAJ|8jIV_S`^fpk|EK7fJ zuH!vgFuacsLYQ@OBw_ON7Tgu7w*LHdbWxfCyiuj1Yr3HERV17HTjIA bN~bZbVVy=aXw* zdEuo6B=`V63U$_wghIoEXMARN&Y8>p{`2D(fLCbxa0s=$^{N5awT~OqrJix6$knynTHn1GrcSF^74=QmiuhestcIgHNKH zN4aPL)_3lyMI$ zK9*TH&&iaIj#Vo2wnD68jo|2GLTd);;S8N3G)2?0BKJeo@qkb=x=>H&s9&?|u9p$Yta5M6fu>DV!vuJpv zi)|y4vv;CDSwqm)qd_9y@O%hCzWC=>0-N9x`JDg`|M6zo`ivs>#C~q~8l|uKalqCd zTU%xu78lqrGFreLEOEppYbJBp*LU5YsC+~9J8Fb0Jp6)^JC5D4H_mf;f!JVq%Up%W oHsDB^cNe0@d{$+(V8RxjOwcxVIQuChe%YUWY}m@5F?7(l0WrX;M*si- diff --git a/bin/main/lol/hub/hubtp/util/Players.class b/bin/main/lol/hub/hubtp/util/Players.class deleted file mode 100644 index d85da421630bc78e5ed2c8e4ff6ed061fb1da76a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3362 zcma)8`&SfY7=Au>VPF{%LGgZ9f<;|3%4)4dK&2Ki7x2=>26h%khM9GC7Q^mY*}b%z zUF@D##~-X85bT^zKlMYW|Dk`xlRe+;;Lad%JY076{oe0=pZ9s6?|bL3f3N)xpbbAO zC=*y=+Gb*;Fev}rT%zC_X5xUUP3TTuK~$jjxHhgOOwAfj^bQ`^hg^Y*U4~`24+=z@ zng;};?RG|wA%ZFu<){!?m@+KAr!Y3CJAK-qsSDJl>>Ta4_l;3^#K;S*O8q~A zB!dm>Zm(rBViA=s)(C3I4tUMIR%XNo}CNv8uS;NY-SrY;cp&EO0k|)hf z#?XST3bs%YC15kFDz+g(Ot#Z$<|&%SVBtmWv8mp^fE<$w?qqKQeGK(l^6n`_pgt%F zUp8df(#AZ6mIAXEQa}O=D1xHu`un>&1a{u8@=C?YjVzlCtEj=kYHUYR#V$M`P|fK5 zmT{t>cV$ROh%s-Ql<7k%cB732Nb@2e7v>h{Z_|yQ8lubRh zhL{d#4Atfdwz!K$byIl(B?J~F@x3Yz;L#%S@FVIhIun z;1JbA_=mlVup@>ecuc`jftr$(x;1x1#p8H_KH4BJk!Vv#bB6?TOvO{s1S%QfkSw0J zM;M7`WxIx;E8uc%0EV}wB8y?BV}wp?+;D7bj7$lvnV_3yY zc$pV|UZ(5Ib?DZ_K`mnxh>c^cONOxdn6u?gA1pK=BI>u&)W!xg+NSLSi8;<)aN{i1 z9+h2xL&ckTi#4!kJ>JD5n_kk3e|%$j2k$9(H#B~WYbxHyS@KC1HIrDE1X0Y~k`$rH z@hpVL?nG{8^v2S5!5Px`8ge+R{pk`6nrYMp#;>h z#_dr(k@DD}qn6d=$(>N~IlkZ#8!MRv{tjaFcNT;1*Q|`G=QpKnd$f?7V~Pj332p3S zF+um+Uo57ae{ZlQe&lw|G}8u$>%t0rQj4=veP6414QFWhsutrUvdgk`r`^=@d7Up$ zKL~8Tg|NBGR&a@jYkpUDyvPx`4IE{xCyWSR8h{Eu@%4-U6@E+bQ}DAqeifC!@SzMb z-wCMZ51KBZE&O{s*>Sp<6I? zjTgG1xE(ui7uOjGt+<=Pt8fo?`bo~wC(5$07yWucJ=kT&$9}iI49eW|Iu2e?#gBiRclS#K9>X=JS)1ltF=CF>(==wUw6; zjh-2;nenpb^SX)?vx`|p*sIaZ*SV(lt(Vdr*JCOGKpuW@Z6d67qE!W zr~T*h=;g>|?kl#Y&ZB=b+tSG9G_fho0Xek#l`La@ui#Z?mMy44S^agaQIM*Q$' - aliases: [ 'tpask' ] - permission: 'tpa.tpa' - permission-message: 'Insufficient permissions, you should harass your admin because of this!' - tpy: - description: 'Accept request' - usage: '/tpy ' - aliases: [ 'tpaccept', 'tpyes' ] - permission: 'tpa.tpy' - permission-message: 'Insufficient permissions, you should harass your admin because of this!' - tpn: - description: 'Deny request' - usage: '/tpn ' - aliases: [ 'tpdeny', 'tpno' ] - permission: 'tpa.tpn' - permission-message: 'Insufficient permissions, you should harass your admin because of this!' - tpi: - description: 'Ignore requests per player' - usage: '/tpi ' - aliases: [ 'tpignore' ] - permission: 'tpa.tpi' - permission-message: 'Insufficient permissions, you should harass your admin because of this!' - tpt: - description: 'Ignore requests globally' - usage: '/tpt' - aliases: [ 'tptoggle' ] - permission: 'tpa.tpt' - permission-message: 'Insufficient permissions, you should harass your admin because of this!' - tpc: - description: 'Cancel outgoing requests' - usage: '/tpc ' - aliases: [ 'tpcancel' ] - permission: 'tpa.tpc' - permission-message: 'Insufficient permissions, you should harass your admin because of this!' - -permissions: - tpa.tpa: - description: 'Send request' - default: true - tpa.tpy: - description: 'Accept request' - default: true - tpa.tpn: - description: 'Deny request' - default: true - tpa.tpi: - description: 'Ignore requests per player' - default: true - tpa.tpt: - description: 'Ignore requests globally' - default: true - tpa.tpc: - description: 'Cancel outgoing requests' - default: true