From 3ed1ae27699ac7b522060df6947228a5f2a8d54b Mon Sep 17 00:00:00 2001 From: Jose Date: Sun, 18 Jan 2026 19:09:35 +0100 Subject: [PATCH] Important change: revamped all the commands to adapt them to the ECS pattern --- .../executionHistory/executionHistory.bin | Bin 21186 -> 25824 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/9.2.0/fileHashes/fileHashes.bin | Bin 19397 -> 20547 bytes .gradle/9.2.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../9.2.0/fileHashes/resourceHashesCache.bin | Bin 18565 -> 18905 bytes .../executionHistory/executionHistory.bin | Bin 102298 -> 102298 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/9.2.1/fileHashes/fileHashes.bin | Bin 29497 -> 30047 bytes .gradle/9.2.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../9.2.1/fileHashes/resourceHashesCache.bin | Bin 19449 -> 19993 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/buildOutputCleanup/cache.properties | 2 +- .gradle/buildOutputCleanup/outputFiles.bin | Bin 19001 -> 19055 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes build/docs/javadoc/allclasses-index.html | 22 +- build/docs/javadoc/allpackages-index.html | 4 +- build/docs/javadoc/element-list | 2 +- build/docs/javadoc/help-doc.html | 2 +- build/docs/javadoc/index-all.html | 147 ++-- build/docs/javadoc/index.html | 6 +- build/docs/javadoc/member-search-index.js | 2 +- .../javadoc/net/miarma/hystuff/HyStuff.html | 44 +- .../miarma/hystuff/commands/BackCommand.html | 10 +- .../hystuff/commands/DisposalCommand.html | 206 ------ .../miarma/hystuff/commands/HomeCommand.html | 10 +- .../hystuff/commands/SetHomeCommand.html | 15 +- .../hystuff/commands/package-summary.html | 10 +- .../miarma/hystuff/commands/package-tree.html | 3 +- .../miarma/hystuff/common/HomeManager.html | 219 ------ .../hystuff/common/LastPositionManager.html | 179 ----- .../net/miarma/hystuff/common/Location.html | 381 ---------- .../hystuff/component/HomeComponent.html | 280 ++++++++ .../component/LastPositionComponent.html | 280 ++++++++ .../package-summary.html | 20 +- .../{common => component}/package-tree.html | 26 +- .../hystuff/events/PlayerDeathListener.html | 12 +- .../hystuff/events/package-summary.html | 4 +- .../miarma/hystuff/events/package-tree.html | 2 +- .../net/miarma/hystuff/package-summary.html | 4 +- .../net/miarma/hystuff/package-tree.html | 2 +- build/docs/javadoc/overview-summary.html | 2 +- build/docs/javadoc/overview-tree.html | 23 +- build/docs/javadoc/package-search-index.js | 2 +- build/docs/javadoc/search.html | 2 +- build/docs/javadoc/type-search-index.js | 2 +- build/reports/problems/problems-report.html | 659 ++++++++++++++++++ build/resources/main/manifest.json | 2 +- .../stash-dir/HomeCommand.class.uniqueId1 | Bin 0 -> 4392 bytes .../stash-dir/HomeCommand.class.uniqueId2 | Bin 6776 -> 0 bytes .../stash-dir/HyStuff.class.uniqueId0 | Bin 4255 -> 4419 bytes .../stash-dir/SetHomeCommand.class.uniqueId1 | Bin 4412 -> 0 bytes .../compileJava/previous-compilation-data.bin | Bin 81660 -> 80585 bytes build/tmp/javadoc/javadoc.options | 10 +- gradle.properties | 2 +- run/auth.enc | Bin 0 -> 1407 bytes run/bans.json | 1 + run/config.json | 31 + run/config.json.bak | 23 + run/mods/Hytale_Shop/barter_shop_state.json | 3 + .../Hytale_Shop/barter_shop_state.json.bak | 3 + run/mods/Miarma_HyStuff/homes.json | 1 + run/permissions.json | 1 + run/universe/memories.json | 3 + run/universe/memories.json.bak | 3 + run/universe/worlds/default/config.json | 51 ++ run/universe/worlds/default/config.json.bak | 51 ++ .../default/resources/BlockCounter.json | 3 + .../default/resources/BlockCounter.json.bak | 3 + .../default/resources/BlockMapMarkers.json | 3 + .../resources/BlockMapMarkers.json.bak | 3 + .../default/resources/InstanceData.json | 3 + .../default/resources/InstanceData.json.bak | 3 + .../default/resources/PrefabEditSession.json | 8 + .../resources/PrefabEditSession.json.bak | 8 + .../default/resources/ReputationData.json | 3 + .../default/resources/ReputationData.json.bak | 3 + .../resources/SpawnSuppressionController.json | 3 + .../SpawnSuppressionController.json.bak | 3 + .../worlds/default/resources/Time.json | 3 + .../worlds/default/resources/Time.json.bak | 3 + run/whitelist.json | 1 + src/main/java/net/miarma/hystuff/HyStuff.java | 33 +- .../miarma/hystuff/commands/BackCommand.java | 44 +- .../hystuff/commands/DisposalCommand.java | 26 - .../miarma/hystuff/commands/HomeCommand.java | 78 ++- .../hystuff/commands/SetHomeCommand.java | 44 +- .../miarma/hystuff/common/HomeManager.java | 113 --- .../hystuff/common/LastPositionManager.java | 41 -- .../net/miarma/hystuff/common/Location.java | 51 -- .../hystuff/component/HomeComponent.java | 62 ++ .../component/LastPositionComponent.java | 71 ++ .../hystuff/events/PlayerDeathListener.java | 64 +- src/main/resources/manifest.json | 2 +- 93 files changed, 1852 insertions(+), 1599 deletions(-) delete mode 100644 build/docs/javadoc/net/miarma/hystuff/commands/DisposalCommand.html delete mode 100644 build/docs/javadoc/net/miarma/hystuff/common/HomeManager.html delete mode 100644 build/docs/javadoc/net/miarma/hystuff/common/LastPositionManager.html delete mode 100644 build/docs/javadoc/net/miarma/hystuff/common/Location.html create mode 100644 build/docs/javadoc/net/miarma/hystuff/component/HomeComponent.html create mode 100644 build/docs/javadoc/net/miarma/hystuff/component/LastPositionComponent.html rename build/docs/javadoc/net/miarma/hystuff/{common => component}/package-summary.html (74%) rename build/docs/javadoc/net/miarma/hystuff/{common => component}/package-tree.html (71%) create mode 100644 build/reports/problems/problems-report.html create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/HomeCommand.class.uniqueId1 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/HomeCommand.class.uniqueId2 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/SetHomeCommand.class.uniqueId1 create mode 100644 run/auth.enc create mode 100644 run/bans.json create mode 100644 run/config.json create mode 100644 run/config.json.bak create mode 100644 run/mods/Hytale_Shop/barter_shop_state.json create mode 100644 run/mods/Hytale_Shop/barter_shop_state.json.bak create mode 100644 run/mods/Miarma_HyStuff/homes.json create mode 100644 run/permissions.json create mode 100644 run/universe/memories.json create mode 100644 run/universe/memories.json.bak create mode 100644 run/universe/worlds/default/config.json create mode 100644 run/universe/worlds/default/config.json.bak create mode 100644 run/universe/worlds/default/resources/BlockCounter.json create mode 100644 run/universe/worlds/default/resources/BlockCounter.json.bak create mode 100644 run/universe/worlds/default/resources/BlockMapMarkers.json create mode 100644 run/universe/worlds/default/resources/BlockMapMarkers.json.bak create mode 100644 run/universe/worlds/default/resources/InstanceData.json create mode 100644 run/universe/worlds/default/resources/InstanceData.json.bak create mode 100644 run/universe/worlds/default/resources/PrefabEditSession.json create mode 100644 run/universe/worlds/default/resources/PrefabEditSession.json.bak create mode 100644 run/universe/worlds/default/resources/ReputationData.json create mode 100644 run/universe/worlds/default/resources/ReputationData.json.bak create mode 100644 run/universe/worlds/default/resources/SpawnSuppressionController.json create mode 100644 run/universe/worlds/default/resources/SpawnSuppressionController.json.bak create mode 100644 run/universe/worlds/default/resources/Time.json create mode 100644 run/universe/worlds/default/resources/Time.json.bak create mode 100644 run/whitelist.json delete mode 100644 src/main/java/net/miarma/hystuff/commands/DisposalCommand.java delete mode 100644 src/main/java/net/miarma/hystuff/common/HomeManager.java delete mode 100644 src/main/java/net/miarma/hystuff/common/LastPositionManager.java delete mode 100644 src/main/java/net/miarma/hystuff/common/Location.java create mode 100644 src/main/java/net/miarma/hystuff/component/HomeComponent.java create mode 100644 src/main/java/net/miarma/hystuff/component/LastPositionComponent.java diff --git a/.gradle/9.2.0/executionHistory/executionHistory.bin b/.gradle/9.2.0/executionHistory/executionHistory.bin index ec2bbc297f0aeaf6697ee8fc3f98626457ca92eb..7ee610bf3815cd35f31642647cd82e752f075880 100644 GIT binary patch literal 25824 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 delta 155 zcmaEGlJU?|#tG6Jjh~56bdZ=VDIu-O$dvH-)68}jRt7NeaQu%3fWn#^4PS_FbhruB zr0!$Pz`#`j#04NcyP`5XEvqCWGqEhu)I2va-!#9hvOKN4FuhP9eZ}T7`))gDW5=Zr X8JGoGZ!lp9ZRQIuW!uc;e}EYPx>`Kf diff --git a/.gradle/9.2.0/executionHistory/executionHistory.lock b/.gradle/9.2.0/executionHistory/executionHistory.lock index 7384d2924fe6ba9edf046632dd75d69e66d8b30c..fb8205a804e5de286a69e683ac82679b380b4c2f 100644 GIT binary patch literal 17 UcmZSfR`XnZNO++=0|c-G043xD9RL6T literal 17 UcmZSfR`XnZNO++=0|YPw043l982|tP diff --git a/.gradle/9.2.0/fileHashes/fileHashes.bin b/.gradle/9.2.0/fileHashes/fileHashes.bin index 5c771b522bbb43d398c9ba794a042e1fcd65c3bf..8435e7a1d72dc29f28b341fdd7da16fef7b84943 100644 GIT binary patch delta 1747 zcmX>)o$>Gj#tkMCk(v!TyrFGXx$+EP;5q+46tpBfXI;hW!U+-g7l(Ry=YDx zMBGmnCf@E==C!=KXev~E^JG^E3xNrVV(#`9R(uda-<^|7B@_gfxO_cva<$+ah@kiP z$-NQ*4u_W8-(=Ia`~(s7*$*@Jg66Tc0>|}!LXCY27hh2H#`N3OI;hE^ldnoBMBKh6 zE4IKqvKp$m5vKU}#;8uSuvHVFhJS>K|Gz%@4MV_kNr<@rT9`P?Tl;svX1INXh@TQzJ4{^3S(u|iq46fv@Lrg>$_dB6UY>p-5OF_$n7FZE$Fiaq3&bJf{+=*# zQLJisYg0q{^Ed$2MA8~l~fRL?Xl+6^VlX0 zHSqrARG?sd+eZ7Yqt4$Tg1*X=YbA@Am|t#G{2{*4z(8cPqelyKy)jT$6NnW-SYW}Q z`b7)AKeCUC{JliEK*yeefpPZ5M`qg~MlgdssE4XU-8Wur`hlhUgC}}C3=6u|2G(Ka zUjxy>0t#0&9VHXIUMi+Fb_&(MKIBrrUhgf`lD!Zu0t+#P;jP)i?GI<{ zdj{390iuI<3Z{;R>nr60y#5^xK5h5T#@7I-0O%2)jsGD!1eswv>Jfg=dg!r~UtjY= z8B@FY+-;WY!CGFl?|^9G3WRAv=(sZb_u>rAcWDdrY%({O>H)I^(2}?9z%T#-aNa}n z`-{zoW?VL!d_kuCP}QWP38xt9L0aCuKLXLh(*UH=w6KP&P1N1GaQ@{Vm6J}X2u6V| zNj1rW=wM;T)RDRSkdb6Vh;QwsuB{V!;*NuKoO$=S0HlNEPaw!$a69TD@xDxL{l2@2 zlJ}koUfZ(P`QTl!C7)_J<7Y#(aM@sLIhz}z_A$nJ)y^gJXSZqB3qvgd z`UnK1fMJ2|tiDCz(vu&*-lqQVtj>hC%p9nWiC_&3Y+C3#>J8G)P%Y5nL&XYRi=u$`yTUVElR7puS4=j&GJ|_1L`MQBDu6%?RDhv{R*Bj(>4fx8 zV(%GsJNLew1k9(vX#bob4UB&fUSDv`6$(hse|EsedGIIn!7mvbe`d{Wm?Vz(USKRs1(Sw z`-7=vPo2V1vBT`sQYR@Gr8bHHGZN4ze>on2GyvJVfCQRHu&{RSxk%vH!A)R-)Imaw%O66g&6=a)*0Ra diff --git a/.gradle/9.2.0/fileHashes/fileHashes.lock b/.gradle/9.2.0/fileHashes/fileHashes.lock index 83931e4ffa61187d9243cfab632b907c8aca47a7..146c09884af4315c9de380a07b72853132ebe231 100644 GIT binary patch literal 17 UcmZR+TGwUwaoVQM3=rT006y^rR{#J2 literal 17 UcmZR+TGwUwaoVQM3=p6K06xhDF8}}l diff --git a/.gradle/9.2.0/fileHashes/resourceHashesCache.bin b/.gradle/9.2.0/fileHashes/resourceHashesCache.bin index c4be7dcfa7674b56f6e7f583ff78572f7c4c13d6..9d9f9ab4fc5933dbead335b971803b2283ae738a 100644 GIT binary patch literal 18905 zcmeI%e@GKy9LMp~(#(`iF~hGW%05?!ZOphVC>P)L|& zx`DF^h7o9mNgEW~=EPfz5 zH`J6tI!pTr%lX=pbx{%7UrT#V+{3u^n{AV%XVacL%&s|e_FN_1PP;- z?JBF)cjwFJi+oocq5Xn9_Qu^MqlNSq+DoqOUrI=rzfSrq+N)zb=j65@b$rk3rk&my zCg3Rl3|9z100Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX?}{}qsNKfjMVBmAfMx6{xP*~@NxSpQVaj<9Q7l>R%hywhAN z>Hju;Wntr3c|=2^aKbia40cF^)03B#Z(P#v)4~aJWwh*M%)pt%_v6oZ)T(vDiPIGY zx+r~8q_5u>q;Z#p2q!N0WNK$uz17cV?7x)K>>A-jiqqlil#QCqZwu-IC)BON3B!o1 z+pVn`Sg9P-6{)H|3MY2EUanZ@OuOuZ;dgFe4{?pQg;7qfH>*(U`K{oxW|O& lcJqPe$@t8s_^dv!Vhgc+&sb@fd&cBw|EcLRcrN+(_zT927Ulo| delta 40 rcmcaPnXz>u;|3E6MyAPAB@B4}LjeN=gX2cUAL1JgZir8I^l$+Hc6|~` diff --git a/.gradle/9.2.1/executionHistory/executionHistory.bin b/.gradle/9.2.1/executionHistory/executionHistory.bin index e501941160bc54958c9bc0b59f1c2a9b6e2da0cf..e8c6822bb8a6f2b4c050fa1dca5e7efbade215a1 100644 GIT binary patch delta 6158 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 delta 6172 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 diff --git a/.gradle/9.2.1/executionHistory/executionHistory.lock b/.gradle/9.2.1/executionHistory/executionHistory.lock index 934449dcae97df667b8860e3a9b79e26180be6a1..d2bc9c28c0cb41c62cfda34a9cabe9ba5412208d 100644 GIT binary patch literal 17 UcmZQhJM&6y&Y9{61_+oA06F6Y7ytkO literal 17 UcmZQhJM&6y&Y9{61_($606DP)<^TWy diff --git a/.gradle/9.2.1/fileHashes/fileHashes.bin b/.gradle/9.2.1/fileHashes/fileHashes.bin index fadcf5ab7962c3d2e79d939af01785c56661be13..1175d78440dbdf19c2ff78f7fff35f4a3b6ab45f 100644 GIT binary patch delta 3255 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 Nb}pN;Z^vtpApiwA90&ja delta 91 zcmbO^hw6_iua)+g%qt@?*;Yo0iD~0T#UJ7u4KhSGJ9_M31^}#89_9c5 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 35077750bacee38943a5ac6624cf18b382ba02ad..965fe4ccc73ad0b9d4c2a0cbf9bf4faa2cc0d58e 100644 GIT binary patch literal 17 VcmZQJ%6#8r|L)Bu1~6cB0{}Xy1uOsn literal 17 UcmZQJ%6#8r|L)Bu1_-zc06R7Xx&QzG diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties index 890b9a1..fd3b63f 100644 --- a/.gradle/buildOutputCleanup/cache.properties +++ b/.gradle/buildOutputCleanup/cache.properties @@ -1,2 +1,2 @@ -#Sun Jan 18 17:20:38 CET 2026 +#Sun Jan 18 18:05:21 CET 2026 gradle.version=9.2.1 diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 238f54953e4974b5c2f4b628f789da3f4a0c1598..d6ac53f0681c4534dfe41e75f9d383811519d852 100644 GIT binary patch delta 113 zcmdlvh4K9q#tkMClJc!LoTvWF7i4Du1FzWsP%zn4!a!h-g!v6kWdi-FV?C;4t`GbcL6te;VgDxra delta 39 xcmV+?0NDTUlmWSv0kAX}0UVP}7%-ES7)Z1A7&8I^v9Tfe7qKvC6|+G|_yHz^4z~aR diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index c7e384c5a5680e37e54cf656bb1a20cb7383c2e9..8e3b1a12c961bdbdf62cd92d04050bfae13e7e08 100644 GIT binary patch literal 8 PcmZQzV4QvNbNB=R3UC8R literal 8 PcmZQzV4QvN#iX+U3jzbR diff --git a/build/docs/javadoc/allclasses-index.html b/build/docs/javadoc/allclasses-index.html index e6a770b..0151503 100644 --- a/build/docs/javadoc/allclasses-index.html +++ b/build/docs/javadoc/allclasses-index.html @@ -2,7 +2,7 @@ -All Classes and Interfaces (HyStuff 1.0.1 API) +All Classes and Interfaces (HyStuff 1.1.0 API) @@ -50,34 +50,28 @@ loadScripts(document, 'script');

All Classes and Interfaces

-
-
+
Classes
Class
Description
 
- +
 
- +
 
- -
 
- -
+ +
This class serves as the entrypoint for your plugin.
- -
 
- -
 
+ +
 
 
 
-
diff --git a/build/docs/javadoc/allpackages-index.html b/build/docs/javadoc/allpackages-index.html index 00b90f3..7e2ef0c 100644 --- a/build/docs/javadoc/allpackages-index.html +++ b/build/docs/javadoc/allpackages-index.html @@ -2,7 +2,7 @@ -All Packages (HyStuff 1.0.1 API) +All Packages (HyStuff 1.1.0 API) @@ -57,7 +57,7 @@ loadScripts(document, 'script');
 
 
- +
 
 
diff --git a/build/docs/javadoc/element-list b/build/docs/javadoc/element-list index a66d50c..a854426 100644 --- a/build/docs/javadoc/element-list +++ b/build/docs/javadoc/element-list @@ -1,4 +1,4 @@ net.miarma.hystuff net.miarma.hystuff.commands -net.miarma.hystuff.common +net.miarma.hystuff.component net.miarma.hystuff.events diff --git a/build/docs/javadoc/help-doc.html b/build/docs/javadoc/help-doc.html index faa6b1e..81fc4ba 100644 --- a/build/docs/javadoc/help-doc.html +++ b/build/docs/javadoc/help-doc.html @@ -2,7 +2,7 @@ -API Help (HyStuff 1.0.1 API) +API Help (HyStuff 1.1.0 API) diff --git a/build/docs/javadoc/index-all.html b/build/docs/javadoc/index-all.html index fe453a7..89419a5 100644 --- a/build/docs/javadoc/index-all.html +++ b/build/docs/javadoc/index-all.html @@ -2,7 +2,7 @@ -Index (HyStuff 1.0.1 API) +Index (HyStuff 1.1.0 API) @@ -49,12 +49,12 @@ loadScripts(document, 'script');

Index

-B C D E G H L N O P R S T W X Y Z 
All Classes and Interfaces|All Packages +B C E G H L N O P S 
All Classes and Interfaces|All Packages

B

BackCommand - Class in net.miarma.hystuff.commands
 
-
BackCommand(LastPositionManager) - Constructor for class net.miarma.hystuff.commands.BackCommand
+
BackCommand() - Constructor for class net.miarma.hystuff.commands.BackCommand
 

C

@@ -65,28 +65,21 @@ loadScripts(document, 'script');
 
canGeneratePermission() - Method in class net.miarma.hystuff.commands.SetHomeCommand
 
-
clear(UUID) - Method in class net.miarma.hystuff.common.LastPositionManager
+
clone() - Method in class net.miarma.hystuff.component.HomeComponent
+
 
+
clone() - Method in class net.miarma.hystuff.component.LastPositionComponent
+
 
+
CODEC - Static variable in class net.miarma.hystuff.component.HomeComponent
+
 
+
CODEC - Static variable in class net.miarma.hystuff.component.LastPositionComponent
 
componentType() - Method in class net.miarma.hystuff.events.PlayerDeathListener
 
-

D

-
-
DisposalCommand - Class in net.miarma.hystuff.commands
-
 
-
DisposalCommand() - Constructor for class net.miarma.hystuff.commands.DisposalCommand
-
 
-

E

-
equals(Object) - Method in record class net.miarma.hystuff.common.Location
-
-
Indicates whether some other object is "equal to" this one.
-
execute(CommandContext, Store, Ref, PlayerRef, World) - Method in class net.miarma.hystuff.commands.BackCommand
 
-
execute(CommandContext, Store, Ref, PlayerRef, World) - Method in class net.miarma.hystuff.commands.DisposalCommand
-
 
execute(CommandContext, Store, Ref, PlayerRef, World) - Method in class net.miarma.hystuff.commands.HomeCommand
 
execute(CommandContext, Store, Ref, PlayerRef, World) - Method in class net.miarma.hystuff.commands.SetHomeCommand
@@ -94,34 +87,30 @@ loadScripts(document, 'script');

G

-
get(UUID) - Method in class net.miarma.hystuff.common.LastPositionManager
-
 
-
getHome(UUID) - Method in class net.miarma.hystuff.common.HomeManager
-
 
-
getHomeCount() - Method in class net.miarma.hystuff.common.HomeManager
-
 
-
getInstance() - Static method in class net.miarma.hystuff.common.LastPositionManager
-
 
-
getInstance(Path, HytaleLogger) - Static method in class net.miarma.hystuff.common.HomeManager
-
 
getQuery() - Method in class net.miarma.hystuff.events.PlayerDeathListener
 
+
getTransform() - Method in class net.miarma.hystuff.component.HomeComponent
+
 
+
getTransform() - Method in class net.miarma.hystuff.component.LastPositionComponent
+
 
+
getWorldUuid() - Method in class net.miarma.hystuff.component.HomeComponent
+
 
+
getWorldUuid() - Method in class net.miarma.hystuff.component.LastPositionComponent
+
 

H

-
has(UUID) - Method in class net.miarma.hystuff.common.LastPositionManager
-
 
-
hashCode() - Method in record class net.miarma.hystuff.common.Location
-
-
Returns a hash code value for this object.
-
-
hasHome(UUID) - Method in class net.miarma.hystuff.common.HomeManager
+
HOME_COMPONENT_TYPE - Static variable in class net.miarma.hystuff.HyStuff
 
HomeCommand - Class in net.miarma.hystuff.commands
 
-
HomeCommand(HomeManager) - Constructor for class net.miarma.hystuff.commands.HomeCommand
+
HomeCommand() - Constructor for class net.miarma.hystuff.commands.HomeCommand
 
-
HomeManager - Class in net.miarma.hystuff.common
+
HomeComponent - Class in net.miarma.hystuff.component
+
 
+
HomeComponent() - Constructor for class net.miarma.hystuff.component.HomeComponent
+
 
+
HomeComponent(Transform, UUID) - Constructor for class net.miarma.hystuff.component.HomeComponent
 
HyStuff - Class in net.miarma.hystuff
@@ -132,14 +121,14 @@ loadScripts(document, 'script');

L

-
LastPositionManager - Class in net.miarma.hystuff.common
+
LAST_POSITION_COMPONENT_TYPE - Static variable in class net.miarma.hystuff.HyStuff
 
-
Location - Record Class in net.miarma.hystuff.common
+
LastPositionComponent - Class in net.miarma.hystuff.component
+
 
+
LastPositionComponent() - Constructor for class net.miarma.hystuff.component.LastPositionComponent
+
 
+
LastPositionComponent(Transform, UUID) - Constructor for class net.miarma.hystuff.component.LastPositionComponent
 
-
Location(String, double, double, double, float, float) - Constructor for record class net.miarma.hystuff.common.Location
-
-
Creates an instance of a Location record class.
-

N

@@ -147,7 +136,7 @@ loadScripts(document, 'script');
 
net.miarma.hystuff.commands - package net.miarma.hystuff.commands
 
-
net.miarma.hystuff.common - package net.miarma.hystuff.common
+
net.miarma.hystuff.component - package net.miarma.hystuff.component
 
net.miarma.hystuff.events - package net.miarma.hystuff.events
 
@@ -163,83 +152,33 @@ loadScripts(document, 'script');

P

-
pitch() - Method in record class net.miarma.hystuff.common.Location
-
-
Returns the value of the pitch record component.
-
PlayerDeathListener - Class in net.miarma.hystuff.events
 
-
PlayerDeathListener(LastPositionManager, HytaleLogger) - Constructor for class net.miarma.hystuff.events.PlayerDeathListener
-
 
-
-

R

-
-
removeHome(UUID) - Method in class net.miarma.hystuff.common.HomeManager
+
PlayerDeathListener() - Constructor for class net.miarma.hystuff.events.PlayerDeathListener
 

S

-
save() - Method in class net.miarma.hystuff.common.HomeManager
-
 
-
set(UUID, Location) - Method in class net.miarma.hystuff.common.LastPositionManager
-
 
-
setHome(UUID, World, Vector3d, Vector3f) - Method in class net.miarma.hystuff.common.HomeManager
-
 
SetHomeCommand - Class in net.miarma.hystuff.commands
 
-
SetHomeCommand(HomeManager) - Constructor for class net.miarma.hystuff.commands.SetHomeCommand
+
SetHomeCommand() - Constructor for class net.miarma.hystuff.commands.SetHomeCommand
+
 
+
setTransform(Transform) - Method in class net.miarma.hystuff.component.HomeComponent
+
 
+
setTransform(Transform) - Method in class net.miarma.hystuff.component.LastPositionComponent
 
setup() - Method in class net.miarma.hystuff.HyStuff
 
+
setWorldUuid(UUID) - Method in class net.miarma.hystuff.component.HomeComponent
+
 
+
setWorldUuid(UUID) - Method in class net.miarma.hystuff.component.LastPositionComponent
+
 
shutdown() - Method in class net.miarma.hystuff.HyStuff
 
start() - Method in class net.miarma.hystuff.HyStuff
 
-

T

-
-
toPosition() - Method in record class net.miarma.hystuff.common.Location
-
 
-
toRotation() - Method in record class net.miarma.hystuff.common.Location
-
 
-
toString() - Method in record class net.miarma.hystuff.common.Location
-
-
Returns a string representation of this record class.
-
-
-

W

-
-
worldName() - Method in record class net.miarma.hystuff.common.Location
-
-
Returns the value of the worldName record component.
-
-
-

X

-
-
x() - Method in record class net.miarma.hystuff.common.Location
-
-
Returns the value of the x record component.
-
-
-

Y

-
-
y() - Method in record class net.miarma.hystuff.common.Location
-
-
Returns the value of the y record component.
-
-
yaw() - Method in record class net.miarma.hystuff.common.Location
-
-
Returns the value of the yaw record component.
-
-
-

Z

-
-
z() - Method in record class net.miarma.hystuff.common.Location
-
-
Returns the value of the z record component.
-
-
-B C D E G H L N O P R S T W X Y Z 
All Classes and Interfaces|All Packages +B C E G H L N O P S 
All Classes and Interfaces|All Packages diff --git a/build/docs/javadoc/index.html b/build/docs/javadoc/index.html index 6d7f6a9..a0e724b 100644 --- a/build/docs/javadoc/index.html +++ b/build/docs/javadoc/index.html @@ -2,7 +2,7 @@ -Overview (HyStuff 1.0.1 API) +Overview (HyStuff 1.1.0 API) @@ -47,7 +47,7 @@ loadScripts(document, 'script');
-

HyStuff 1.0.1 API

+

HyStuff 1.1.0 API

Packages
@@ -58,7 +58,7 @@ loadScripts(document, 'script');
 
 
- +
 
 
diff --git a/build/docs/javadoc/member-search-index.js b/build/docs/javadoc/member-search-index.js index 55339d2..e345991 100644 --- a/build/docs/javadoc/member-search-index.js +++ b/build/docs/javadoc/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"net.miarma.hystuff.commands","c":"BackCommand","l":"BackCommand(LastPositionManager)","u":"%3Cinit%3E(net.miarma.hystuff.common.LastPositionManager)","k":"3"},{"p":"net.miarma.hystuff.commands","c":"BackCommand","l":"canGeneratePermission()"},{"p":"net.miarma.hystuff.commands","c":"HomeCommand","l":"canGeneratePermission()"},{"p":"net.miarma.hystuff.commands","c":"SetHomeCommand","l":"canGeneratePermission()"},{"p":"net.miarma.hystuff.common","c":"LastPositionManager","l":"clear(UUID)","u":"clear(java.util.UUID)"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"componentType()"},{"p":"net.miarma.hystuff.commands","c":"DisposalCommand","l":"DisposalCommand()","u":"%3Cinit%3E()","k":"3"},{"p":"net.miarma.hystuff.common","c":"Location","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"net.miarma.hystuff.commands","c":"BackCommand","l":"execute(CommandContext, Store, Ref, PlayerRef, World)","u":"execute(com.hypixel.hytale.server.core.command.system.CommandContext,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.universe.PlayerRef,com.hypixel.hytale.server.core.universe.world.World)"},{"p":"net.miarma.hystuff.commands","c":"DisposalCommand","l":"execute(CommandContext, Store, Ref, PlayerRef, World)","u":"execute(com.hypixel.hytale.server.core.command.system.CommandContext,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.universe.PlayerRef,com.hypixel.hytale.server.core.universe.world.World)"},{"p":"net.miarma.hystuff.commands","c":"HomeCommand","l":"execute(CommandContext, Store, Ref, PlayerRef, World)","u":"execute(com.hypixel.hytale.server.core.command.system.CommandContext,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.universe.PlayerRef,com.hypixel.hytale.server.core.universe.world.World)"},{"p":"net.miarma.hystuff.commands","c":"SetHomeCommand","l":"execute(CommandContext, Store, Ref, PlayerRef, World)","u":"execute(com.hypixel.hytale.server.core.command.system.CommandContext,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.universe.PlayerRef,com.hypixel.hytale.server.core.universe.world.World)"},{"p":"net.miarma.hystuff.common","c":"LastPositionManager","l":"get(UUID)","u":"get(java.util.UUID)"},{"p":"net.miarma.hystuff.common","c":"HomeManager","l":"getHome(UUID)","u":"getHome(java.util.UUID)"},{"p":"net.miarma.hystuff.common","c":"HomeManager","l":"getHomeCount()"},{"p":"net.miarma.hystuff.common","c":"LastPositionManager","l":"getInstance()","k":"6"},{"p":"net.miarma.hystuff.common","c":"HomeManager","l":"getInstance(Path, HytaleLogger)","u":"getInstance(java.nio.file.Path,com.hypixel.hytale.logger.HytaleLogger)","k":"6"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"getQuery()"},{"p":"net.miarma.hystuff.common","c":"LastPositionManager","l":"has(UUID)","u":"has(java.util.UUID)"},{"p":"net.miarma.hystuff.common","c":"Location","l":"hashCode()"},{"p":"net.miarma.hystuff.common","c":"HomeManager","l":"hasHome(UUID)","u":"hasHome(java.util.UUID)"},{"p":"net.miarma.hystuff.commands","c":"HomeCommand","l":"HomeCommand(HomeManager)","u":"%3Cinit%3E(net.miarma.hystuff.common.HomeManager)","k":"3"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"HyStuff(JavaPluginInit)","u":"%3Cinit%3E(com.hypixel.hytale.server.core.plugin.JavaPluginInit)","k":"3"},{"p":"net.miarma.hystuff.common","c":"Location","l":"Location(String, double, double, double, float, float)","u":"%3Cinit%3E(java.lang.String,double,double,double,float,float)","k":"3"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"onComponentAdded(Ref, DeathComponent, Store, CommandBuffer)","u":"onComponentAdded(com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.CommandBuffer)"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"onComponentRemoved(Ref, DeathComponent, Store, CommandBuffer)","u":"onComponentRemoved(com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.CommandBuffer)"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"onComponentSet(Ref, DeathComponent, DeathComponent, Store, CommandBuffer)","u":"onComponentSet(com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent,com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.CommandBuffer)"},{"p":"net.miarma.hystuff.common","c":"Location","l":"pitch()"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"PlayerDeathListener(LastPositionManager, HytaleLogger)","u":"%3Cinit%3E(net.miarma.hystuff.common.LastPositionManager,com.hypixel.hytale.logger.HytaleLogger)","k":"3"},{"p":"net.miarma.hystuff.common","c":"HomeManager","l":"removeHome(UUID)","u":"removeHome(java.util.UUID)"},{"p":"net.miarma.hystuff.common","c":"HomeManager","l":"save()"},{"p":"net.miarma.hystuff.common","c":"LastPositionManager","l":"set(UUID, Location)","u":"set(java.util.UUID,net.miarma.hystuff.common.Location)"},{"p":"net.miarma.hystuff.common","c":"HomeManager","l":"setHome(UUID, World, Vector3d, Vector3f)","u":"setHome(java.util.UUID,com.hypixel.hytale.server.core.universe.world.World,com.hypixel.hytale.math.vector.Vector3d,com.hypixel.hytale.math.vector.Vector3f)"},{"p":"net.miarma.hystuff.commands","c":"SetHomeCommand","l":"SetHomeCommand(HomeManager)","u":"%3Cinit%3E(net.miarma.hystuff.common.HomeManager)","k":"3"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"setup()"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"shutdown()"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"start()"},{"p":"net.miarma.hystuff.common","c":"Location","l":"toPosition()"},{"p":"net.miarma.hystuff.common","c":"Location","l":"toRotation()"},{"p":"net.miarma.hystuff.common","c":"Location","l":"toString()"},{"p":"net.miarma.hystuff.common","c":"Location","l":"worldName()"},{"p":"net.miarma.hystuff.common","c":"Location","l":"x()"},{"p":"net.miarma.hystuff.common","c":"Location","l":"y()"},{"p":"net.miarma.hystuff.common","c":"Location","l":"yaw()"},{"p":"net.miarma.hystuff.common","c":"Location","l":"z()"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"net.miarma.hystuff.commands","c":"BackCommand","l":"BackCommand()","u":"%3Cinit%3E()","k":"3"},{"p":"net.miarma.hystuff.commands","c":"BackCommand","l":"canGeneratePermission()"},{"p":"net.miarma.hystuff.commands","c":"HomeCommand","l":"canGeneratePermission()"},{"p":"net.miarma.hystuff.commands","c":"SetHomeCommand","l":"canGeneratePermission()"},{"p":"net.miarma.hystuff.component","c":"HomeComponent","l":"clone()"},{"p":"net.miarma.hystuff.component","c":"LastPositionComponent","l":"clone()"},{"p":"net.miarma.hystuff.component","c":"HomeComponent","l":"CODEC","k":"2"},{"p":"net.miarma.hystuff.component","c":"LastPositionComponent","l":"CODEC","k":"2"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"componentType()"},{"p":"net.miarma.hystuff.commands","c":"BackCommand","l":"execute(CommandContext, Store, Ref, PlayerRef, World)","u":"execute(com.hypixel.hytale.server.core.command.system.CommandContext,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.universe.PlayerRef,com.hypixel.hytale.server.core.universe.world.World)"},{"p":"net.miarma.hystuff.commands","c":"HomeCommand","l":"execute(CommandContext, Store, Ref, PlayerRef, World)","u":"execute(com.hypixel.hytale.server.core.command.system.CommandContext,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.universe.PlayerRef,com.hypixel.hytale.server.core.universe.world.World)"},{"p":"net.miarma.hystuff.commands","c":"SetHomeCommand","l":"execute(CommandContext, Store, Ref, PlayerRef, World)","u":"execute(com.hypixel.hytale.server.core.command.system.CommandContext,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.universe.PlayerRef,com.hypixel.hytale.server.core.universe.world.World)"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"getQuery()"},{"p":"net.miarma.hystuff.component","c":"HomeComponent","l":"getTransform()"},{"p":"net.miarma.hystuff.component","c":"LastPositionComponent","l":"getTransform()"},{"p":"net.miarma.hystuff.component","c":"HomeComponent","l":"getWorldUuid()"},{"p":"net.miarma.hystuff.component","c":"LastPositionComponent","l":"getWorldUuid()"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"HOME_COMPONENT_TYPE","k":"2"},{"p":"net.miarma.hystuff.commands","c":"HomeCommand","l":"HomeCommand()","u":"%3Cinit%3E()","k":"3"},{"p":"net.miarma.hystuff.component","c":"HomeComponent","l":"HomeComponent()","u":"%3Cinit%3E()","k":"3"},{"p":"net.miarma.hystuff.component","c":"HomeComponent","l":"HomeComponent(Transform, UUID)","u":"%3Cinit%3E(com.hypixel.hytale.math.vector.Transform,java.util.UUID)","k":"3"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"HyStuff(JavaPluginInit)","u":"%3Cinit%3E(com.hypixel.hytale.server.core.plugin.JavaPluginInit)","k":"3"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"LAST_POSITION_COMPONENT_TYPE","k":"2"},{"p":"net.miarma.hystuff.component","c":"LastPositionComponent","l":"LastPositionComponent()","u":"%3Cinit%3E()","k":"3"},{"p":"net.miarma.hystuff.component","c":"LastPositionComponent","l":"LastPositionComponent(Transform, UUID)","u":"%3Cinit%3E(com.hypixel.hytale.math.vector.Transform,java.util.UUID)","k":"3"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"onComponentAdded(Ref, DeathComponent, Store, CommandBuffer)","u":"onComponentAdded(com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.CommandBuffer)"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"onComponentRemoved(Ref, DeathComponent, Store, CommandBuffer)","u":"onComponentRemoved(com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.CommandBuffer)"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"onComponentSet(Ref, DeathComponent, DeathComponent, Store, CommandBuffer)","u":"onComponentSet(com.hypixel.hytale.component.Ref,com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent,com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent,com.hypixel.hytale.component.Store,com.hypixel.hytale.component.CommandBuffer)"},{"p":"net.miarma.hystuff.events","c":"PlayerDeathListener","l":"PlayerDeathListener()","u":"%3Cinit%3E()","k":"3"},{"p":"net.miarma.hystuff.commands","c":"SetHomeCommand","l":"SetHomeCommand()","u":"%3Cinit%3E()","k":"3"},{"p":"net.miarma.hystuff.component","c":"HomeComponent","l":"setTransform(Transform)","u":"setTransform(com.hypixel.hytale.math.vector.Transform)"},{"p":"net.miarma.hystuff.component","c":"LastPositionComponent","l":"setTransform(Transform)","u":"setTransform(com.hypixel.hytale.math.vector.Transform)"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"setup()"},{"p":"net.miarma.hystuff.component","c":"HomeComponent","l":"setWorldUuid(UUID)","u":"setWorldUuid(java.util.UUID)"},{"p":"net.miarma.hystuff.component","c":"LastPositionComponent","l":"setWorldUuid(UUID)","u":"setWorldUuid(java.util.UUID)"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"shutdown()"},{"p":"net.miarma.hystuff","c":"HyStuff","l":"start()"}];updateSearchResults(); \ No newline at end of file diff --git a/build/docs/javadoc/net/miarma/hystuff/HyStuff.html b/build/docs/javadoc/net/miarma/hystuff/HyStuff.html index 2e45e1c..aaa1b98 100644 --- a/build/docs/javadoc/net/miarma/hystuff/HyStuff.html +++ b/build/docs/javadoc/net/miarma/hystuff/HyStuff.html @@ -2,7 +2,7 @@ -HyStuff (HyStuff 1.0.1 API) +HyStuff (HyStuff 1.1.0 API) @@ -56,6 +56,12 @@ loadScripts(document, 'script');
  • Field Summary
  • Constructor Summary
  • Method Summary
  • +
  • Field Details +
      +
    1. HOME_COMPONENT_TYPE
    2. +
    3. LAST_POSITION_COMPONENT_TYPE
    4. +
    +
  • Constructor Details
    1. HyStuff(JavaPluginInit)
    2. @@ -101,6 +107,18 @@ event listeners.
  • Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static com.hypixel.hytale.component.ComponentType<com.hypixel.hytale.server.core.universe.world.storage.EntityStore, HomeComponent>
    + +
     
    +
    static com.hypixel.hytale.component.ComponentType<com.hypixel.hytale.server.core.universe.world.storage.EntityStore, LastPositionComponent>
    + +
     
    +

    Fields inherited from class com.hypixel.hytale.server.core.plugin.PluginBase

    METRICS_REGISTRY
    @@ -157,6 +175,30 @@ event listeners.
    • + +
    • +
      +

      Field Details

      +
        +
      • +
        +

        HOME_COMPONENT_TYPE

        +
        +
        public static com.hypixel.hytale.component.ComponentType<com.hypixel.hytale.server.core.universe.world.storage.EntityStore, HomeComponent> HOME_COMPONENT_TYPE
        +
        +
        +
      • +
      • +
        +

        LAST_POSITION_COMPONENT_TYPE

        +
        +
        public static com.hypixel.hytale.component.ComponentType<com.hypixel.hytale.server.core.universe.world.storage.EntityStore, LastPositionComponent> LAST_POSITION_COMPONENT_TYPE
        +
        +
        +
      • +
      +
      +
    • diff --git a/build/docs/javadoc/net/miarma/hystuff/commands/BackCommand.html b/build/docs/javadoc/net/miarma/hystuff/commands/BackCommand.html index 5a8857f..33c76ed 100644 --- a/build/docs/javadoc/net/miarma/hystuff/commands/BackCommand.html +++ b/build/docs/javadoc/net/miarma/hystuff/commands/BackCommand.html @@ -2,7 +2,7 @@ -BackCommand (HyStuff 1.0.1 API) +BackCommand (HyStuff 1.1.0 API) @@ -58,7 +58,7 @@ loadScripts(document, 'script');
    • Method Summary
    • Constructor Details
        -
      1. BackCommand(LastPositionManager)
      2. +
      3. BackCommand()
    • Method Details @@ -109,7 +109,7 @@ loadScripts(document, 'script');
      Constructor
      Description
      -
      BackCommand(LastPositionManager lastPositionManager)
      +
       
    • @@ -162,10 +162,10 @@ loadScripts(document, 'script');

      Constructor Details

      • -
        +

        BackCommand

        -
        public BackCommand(LastPositionManager lastPositionManager)
        +
        public BackCommand()
      • diff --git a/build/docs/javadoc/net/miarma/hystuff/commands/DisposalCommand.html b/build/docs/javadoc/net/miarma/hystuff/commands/DisposalCommand.html deleted file mode 100644 index afcf283..0000000 --- a/build/docs/javadoc/net/miarma/hystuff/commands/DisposalCommand.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - -DisposalCommand (HyStuff 1.0.1 API) - - - - - - - - - - - - - -
        - -
        -
        - -
        - -
        -

        Class DisposalCommand

        -
        -
        java.lang.Object -
        com.hypixel.hytale.server.core.command.system.AbstractCommand -
        com.hypixel.hytale.server.core.command.system.basecommands.AbstractAsyncCommand -
        com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand -
        net.miarma.hystuff.commands.DisposalCommand
        -
        -
        -
        -
        -
        -
        -
        -
        public class DisposalCommand -extends com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand
        -
        -
        -
        -
          - -
        • -
          -

          Field Summary

          -
          -

          Fields inherited from class com.hypixel.hytale.server.core.command.system.AbstractCommand

          -EMPTY_STRING_ARRAY, LOGGER
          -
          -
        • - -
        • -
          -

          Constructor Summary

          -
          Constructors
          -
          -
          Constructor
          -
          Description
          - -
           
          -
          -
          -
        • - -
        • -
          -

          Method Summary

          -
          -
          -
          -
          -
          Modifier and Type
          -
          Method
          -
          Description
          -
          protected void
          -
          execute(com.hypixel.hytale.server.core.command.system.CommandContext ctx, - com.hypixel.hytale.component.Store<com.hypixel.hytale.server.core.universe.world.storage.EntityStore> store, - com.hypixel.hytale.component.Ref<com.hypixel.hytale.server.core.universe.world.storage.EntityStore> ref, - com.hypixel.hytale.server.core.universe.PlayerRef playerRef, - com.hypixel.hytale.server.core.universe.world.World world)
          -
           
          -
          -
          -
          -
          -

          Methods inherited from class com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand

          -executeAsync
          -
          -

          Methods inherited from class com.hypixel.hytale.server.core.command.system.basecommands.AbstractAsyncCommand

          -execute, runAsync
          -
          -

          Methods inherited from class com.hypixel.hytale.server.core.command.system.AbstractCommand

          -acceptCall, addAliases, addSubCommand, addUsageVariant, canGeneratePermission, completeRegistration, countParents, generatePermissionNode, getAliases, getDescription, getFullyQualifiedName, getName, getOwner, getPermission, getPermissionGroups, getPermissionGroupsRecursive, getRequiredArguments, getSubCommands, getUsageShort, getUsageString, hasBeenRegistered, hasPermission, isVariant, matches, putRecursivePermissionGroups, requirePermission, setAllowsExtraArguments, setOwner, setPermissionGroup, setPermissionGroups, setUnavailableInSingleplayer, withDefaultArg, withDefaultArg, withFlagArg, withListDefaultArg, withListOptionalArg, withListRequiredArg, withOptionalArg, withOptionalArg, withRequiredArg, withRequiredArg
          -
          -

          Methods inherited from class Object

          -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          -
          -
        • -
        -
        -
        -
          - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            DisposalCommand

            -
            -
            public DisposalCommand()
            -
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            execute

            -
            -
            protected void execute(@NonNullDecl - com.hypixel.hytale.server.core.command.system.CommandContext ctx, - @NonNullDecl - com.hypixel.hytale.component.Store<com.hypixel.hytale.server.core.universe.world.storage.EntityStore> store, - @NonNullDecl - com.hypixel.hytale.component.Ref<com.hypixel.hytale.server.core.universe.world.storage.EntityStore> ref, - @NonNullDecl - com.hypixel.hytale.server.core.universe.PlayerRef playerRef, - @NonNullDecl - com.hypixel.hytale.server.core.universe.world.World world)
            -
            -
            Specified by:
            -
            execute in class com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand
            -
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        - - diff --git a/build/docs/javadoc/net/miarma/hystuff/commands/HomeCommand.html b/build/docs/javadoc/net/miarma/hystuff/commands/HomeCommand.html index 6f3a451..2abc825 100644 --- a/build/docs/javadoc/net/miarma/hystuff/commands/HomeCommand.html +++ b/build/docs/javadoc/net/miarma/hystuff/commands/HomeCommand.html @@ -2,7 +2,7 @@ -HomeCommand (HyStuff 1.0.1 API) +HomeCommand (HyStuff 1.1.0 API) @@ -58,7 +58,7 @@ loadScripts(document, 'script');
      • Method Summary
      • Constructor Details
          -
        1. HomeCommand(HomeManager)
        2. +
        3. HomeCommand()
      • Method Details @@ -109,7 +109,7 @@ loadScripts(document, 'script');
        Constructor
        Description
        -
        HomeCommand(HomeManager homeManager)
        +
         
    @@ -162,10 +162,10 @@ loadScripts(document, 'script');

    Constructor Details

    • -
      +

      HomeCommand

      -
      public HomeCommand(HomeManager homeManager)
      +
      public HomeCommand()
    • diff --git a/build/docs/javadoc/net/miarma/hystuff/commands/SetHomeCommand.html b/build/docs/javadoc/net/miarma/hystuff/commands/SetHomeCommand.html index 4655480..1eceaf5 100644 --- a/build/docs/javadoc/net/miarma/hystuff/commands/SetHomeCommand.html +++ b/build/docs/javadoc/net/miarma/hystuff/commands/SetHomeCommand.html @@ -2,7 +2,7 @@ -SetHomeCommand (HyStuff 1.0.1 API) +SetHomeCommand (HyStuff 1.1.0 API) @@ -58,7 +58,7 @@ loadScripts(document, 'script');
    • Method Summary
    • Constructor Details
        -
      1. SetHomeCommand(HomeManager)
      2. +
      3. SetHomeCommand()
    • Method Details @@ -109,7 +109,7 @@ loadScripts(document, 'script');
      Constructor
      Description
      - +
       
      @@ -132,7 +132,7 @@ loadScripts(document, 'script');
      execute(com.hypixel.hytale.server.core.command.system.CommandContext ctx, com.hypixel.hytale.component.Store<com.hypixel.hytale.server.core.universe.world.storage.EntityStore> store, com.hypixel.hytale.component.Ref<com.hypixel.hytale.server.core.universe.world.storage.EntityStore> ref, - com.hypixel.hytale.server.core.universe.PlayerRef playerRef, + com.hypixel.hytale.server.core.universe.PlayerRef player, com.hypixel.hytale.server.core.universe.world.World world)
       
      @@ -162,11 +162,10 @@ loadScripts(document, 'script');

      Constructor Details

      • -
        +

        SetHomeCommand

        -
        public SetHomeCommand(@Nonnull - HomeManager homeManager)
        +
        public SetHomeCommand()
      • @@ -201,7 +200,7 @@ loadScripts(document, 'script'); @Nonnull com.hypixel.hytale.component.Ref<com.hypixel.hytale.server.core.universe.world.storage.EntityStore> ref, @Nonnull - com.hypixel.hytale.server.core.universe.PlayerRef playerRef, + com.hypixel.hytale.server.core.universe.PlayerRef player, @Nonnull com.hypixel.hytale.server.core.universe.world.World world)
        diff --git a/build/docs/javadoc/net/miarma/hystuff/commands/package-summary.html b/build/docs/javadoc/net/miarma/hystuff/commands/package-summary.html index dedf523..1d11d21 100644 --- a/build/docs/javadoc/net/miarma/hystuff/commands/package-summary.html +++ b/build/docs/javadoc/net/miarma/hystuff/commands/package-summary.html @@ -2,7 +2,7 @@ -net.miarma.hystuff.commands (HyStuff 1.0.1 API) +net.miarma.hystuff.commands (HyStuff 1.1.0 API) @@ -74,7 +74,7 @@ loadScripts(document, 'script');
        Description
         
        - +
         
         
        @@ -89,12 +89,10 @@ loadScripts(document, 'script');
        Description
         
        - +
         
        - +
         
        - -
         
        diff --git a/build/docs/javadoc/net/miarma/hystuff/commands/package-tree.html b/build/docs/javadoc/net/miarma/hystuff/commands/package-tree.html index b405881..690c71b 100644 --- a/build/docs/javadoc/net/miarma/hystuff/commands/package-tree.html +++ b/build/docs/javadoc/net/miarma/hystuff/commands/package-tree.html @@ -2,7 +2,7 @@ -net.miarma.hystuff.commands Class Hierarchy (HyStuff 1.0.1 API) +net.miarma.hystuff.commands Class Hierarchy (HyStuff 1.1.0 API) @@ -68,7 +68,6 @@ loadScripts(document, 'script');
      • com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand diff --git a/build/docs/javadoc/net/miarma/hystuff/common/HomeManager.html b/build/docs/javadoc/net/miarma/hystuff/common/HomeManager.html deleted file mode 100644 index 5735c5d..0000000 --- a/build/docs/javadoc/net/miarma/hystuff/common/HomeManager.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - -HomeManager (HyStuff 1.0.1 API) - - - - - - - - - - - - - -
        - -
        -
        - -
        - -
        -

        Class HomeManager

        -
        -
        java.lang.Object -
        net.miarma.hystuff.common.HomeManager
        -
        -
        -
        -
        -
        public class HomeManager -extends Object
        -
        -
        -
        - -
        -
        -
          - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            getInstance

            -
            -
            public static HomeManager getInstance(@Nonnull - Path dataDir, - @Nonnull - com.hypixel.hytale.logger.HytaleLogger logger)
            -
            -
            -
          • -
          • -
            -

            save

            -
            -
            public void save()
            -
            -
            -
          • -
          • -
            -

            setHome

            -
            -
            public void setHome(@Nonnull - UUID playerUuid, - @Nonnull - com.hypixel.hytale.server.core.universe.world.World world, - @Nonnull - com.hypixel.hytale.math.vector.Vector3d position, - @Nonnull - com.hypixel.hytale.math.vector.Vector3f rotation)
            -
            -
            -
          • -
          • -
            -

            getHome

            -
            -
            @Nullable -public Location getHome(@Nonnull - UUID playerUuid)
            -
            -
            -
          • -
          • -
            -

            hasHome

            -
            -
            public boolean hasHome(@Nonnull - UUID playerUuid)
            -
            -
            -
          • -
          • -
            -

            removeHome

            -
            -
            public void removeHome(@Nonnull - UUID playerUuid)
            -
            -
            -
          • -
          • -
            -

            getHomeCount

            -
            -
            public int getHomeCount()
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        - - diff --git a/build/docs/javadoc/net/miarma/hystuff/common/LastPositionManager.html b/build/docs/javadoc/net/miarma/hystuff/common/LastPositionManager.html deleted file mode 100644 index 4ffdf98..0000000 --- a/build/docs/javadoc/net/miarma/hystuff/common/LastPositionManager.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - -LastPositionManager (HyStuff 1.0.1 API) - - - - - - - - - - - - - -
        - -
        -
        - -
        - -
        -

        Class LastPositionManager

        -
        -
        java.lang.Object -
        net.miarma.hystuff.common.LastPositionManager
        -
        -
        -
        -
        -
        public class LastPositionManager -extends Object
        -
        -
        -
        - -
        -
        -
          - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            getInstance

            -
            -
            public static LastPositionManager getInstance()
            -
            -
            -
          • -
          • -
            -

            set

            -
            -
            public void set(UUID uuid, - Location pos)
            -
            -
            -
          • -
          • -
            -

            get

            -
            -
            public Location get(UUID uuid)
            -
            -
            -
          • -
          • -
            -

            has

            -
            -
            public boolean has(UUID uuid)
            -
            -
            -
          • -
          • -
            -

            clear

            -
            -
            public void clear(UUID uuid)
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        - - diff --git a/build/docs/javadoc/net/miarma/hystuff/common/Location.html b/build/docs/javadoc/net/miarma/hystuff/common/Location.html deleted file mode 100644 index 024ccc4..0000000 --- a/build/docs/javadoc/net/miarma/hystuff/common/Location.html +++ /dev/null @@ -1,381 +0,0 @@ - - - - -Location (HyStuff 1.0.1 API) - - - - - - - - - - - - - -
        - -
        -
        - -
        - -
        -

        Record Class Location

        -
        -
        java.lang.Object -
        java.lang.Record -
        net.miarma.hystuff.common.Location
        -
        -
        -
        -
        -
        -
        public record Location(@Nonnull String worldName, double x, double y, double z, float yaw, float pitch) -extends Record
        -
        -
        -
        -
          - -
        • -
          -

          Constructor Summary

          -
          Constructors
          -
          -
          Constructor
          -
          Description
          -
          Location(String worldName, - double x, - double y, - double z, - float yaw, - float pitch)
          -
          -
          Creates an instance of a Location record class.
          -
          -
          -
          -
        • - -
        • -
          -

          Method Summary

          -
          -
          -
          -
          -
          Modifier and Type
          -
          Method
          -
          Description
          -
          final boolean
          - -
          -
          Indicates whether some other object is "equal to" this one.
          -
          -
          final int
          - -
          -
          Returns a hash code value for this object.
          -
          -
          float
          - -
          -
          Returns the value of the pitch record component.
          -
          -
          com.hypixel.hytale.math.vector.Vector3d
          - -
           
          -
          com.hypixel.hytale.math.vector.Vector3f
          - -
           
          -
          final String
          - -
          -
          Returns a string representation of this record class.
          -
          - - -
          -
          Returns the value of the worldName record component.
          -
          -
          double
          -
          x()
          -
          -
          Returns the value of the x record component.
          -
          -
          double
          -
          y()
          -
          -
          Returns the value of the y record component.
          -
          -
          float
          -
          yaw()
          -
          -
          Returns the value of the yaw record component.
          -
          -
          double
          -
          z()
          -
          -
          Returns the value of the z record component.
          -
          -
          -
          -
          -
          -

          Methods inherited from class Object

          -clone, finalize, getClass, notify, notifyAll, wait, wait, wait
          -
          -
        • -
        -
        -
        -
          - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            Location

            -
            -
            public Location(@Nonnull - String worldName, - double x, - double y, - double z, - float yaw, - float pitch)
            -
            Creates an instance of a Location record class.
            -
            -
            Parameters:
            -
            worldName - the value for the worldName record component
            -
            x - the value for the x record component
            -
            y - the value for the y record component
            -
            z - the value for the z record component
            -
            yaw - the value for the yaw record component
            -
            pitch - the value for the pitch record component
            -
            -
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            toPosition

            -
            -
            public com.hypixel.hytale.math.vector.Vector3d toPosition()
            -
            -
            -
          • -
          • -
            -

            toRotation

            -
            -
            public com.hypixel.hytale.math.vector.Vector3f toRotation()
            -
            -
            -
          • -
          • -
            -

            worldName

            -
            -
            @Nonnull -public String worldName()
            -
            Returns the value of the worldName record component.
            -
            -
            Returns:
            -
            the value of the worldName record component
            -
            -
            -
            -
          • -
          • -
            -

            x

            -
            -
            public double x()
            -
            Returns the value of the x record component.
            -
            -
            Returns:
            -
            the value of the x record component
            -
            -
            -
            -
          • -
          • -
            -

            y

            -
            -
            public double y()
            -
            Returns the value of the y record component.
            -
            -
            Returns:
            -
            the value of the y record component
            -
            -
            -
            -
          • -
          • -
            -

            z

            -
            -
            public double z()
            -
            Returns the value of the z record component.
            -
            -
            Returns:
            -
            the value of the z record component
            -
            -
            -
            -
          • -
          • -
            -

            yaw

            -
            -
            public float yaw()
            -
            Returns the value of the yaw record component.
            -
            -
            Returns:
            -
            the value of the yaw record component
            -
            -
            -
            -
          • -
          • -
            -

            pitch

            -
            -
            public float pitch()
            -
            Returns the value of the pitch record component.
            -
            -
            Returns:
            -
            the value of the pitch record component
            -
            -
            -
            -
          • -
          • -
            -

            toString

            -
            -
            public final String toString()
            -
            Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
            -
            -
            Specified by:
            -
            toString in class Record
            -
            Returns:
            -
            a string representation of this object
            -
            -
            -
            -
          • -
          • -
            -

            hashCode

            -
            -
            public final int hashCode()
            -
            Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
            -
            -
            Specified by:
            -
            hashCode in class Record
            -
            Returns:
            -
            a hash code value for this object
            -
            -
            -
            -
          • -
          • -
            -

            equals

            -
            -
            public final boolean equals(Object o)
            -
            Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
            -
            -
            Specified by:
            -
            equals in class Record
            -
            Parameters:
            -
            o - the object with which to compare
            -
            Returns:
            -
            true if this object is the same as the o argument; false otherwise.
            -
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        - - diff --git a/build/docs/javadoc/net/miarma/hystuff/component/HomeComponent.html b/build/docs/javadoc/net/miarma/hystuff/component/HomeComponent.html new file mode 100644 index 0000000..9659dc2 --- /dev/null +++ b/build/docs/javadoc/net/miarma/hystuff/component/HomeComponent.html @@ -0,0 +1,280 @@ + + + + +HomeComponent (HyStuff 1.1.0 API) + + + + + + + + + + + + + +
        + +
        +
        + +
        + +
        +

        Class HomeComponent

        +
        +
        java.lang.Object +
        net.miarma.hystuff.component.HomeComponent
        +
        +
        +
        +
        All Implemented Interfaces:
        +
        com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore>, Cloneable
        +
        +
        +
        +
        public class HomeComponent +extends Object +implements com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore>
        +
        +
        +
        +
          + +
        • +
          +

          Field Summary

          +
          Fields
          +
          +
          Modifier and Type
          +
          Field
          +
          Description
          +
          static final com.hypixel.hytale.codec.builder.BuilderCodec<HomeComponent>
          + +
           
          +
          +
          +

          Fields inherited from interface com.hypixel.hytale.component.Component

          +EMPTY_ARRAY
          +
          +
        • + +
        • +
          +

          Constructor Summary

          +
          Constructors
          +
          +
          Constructor
          +
          Description
          + +
           
          +
          HomeComponent(com.hypixel.hytale.math.vector.Transform transform, + UUID worldUuid)
          +
           
          +
          +
          +
        • + +
        • +
          +

          Method Summary

          +
          +
          +
          +
          +
          Modifier and Type
          +
          Method
          +
          Description
          +
          com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore>
          + +
           
          +
          com.hypixel.hytale.math.vector.Transform
          + +
           
          + + +
           
          +
          void
          +
          setTransform(com.hypixel.hytale.math.vector.Transform transform)
          +
           
          +
          void
          +
          setWorldUuid(UUID worldUuid)
          +
           
          +
          +
          +
          +
          +

          Methods inherited from class Object

          +equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          +
          +

          Methods inherited from interface com.hypixel.hytale.component.Component

          +cloneSerializable
          +
          +
        • +
        +
        +
        +
          + +
        • +
          +

          Field Details

          +
            +
          • +
            +

            CODEC

            +
            +
            public static final com.hypixel.hytale.codec.builder.BuilderCodec<HomeComponent> CODEC
            +
            +
            +
          • +
          +
          +
        • + +
        • +
          +

          Constructor Details

          +
            +
          • +
            +

            HomeComponent

            +
            +
            public HomeComponent()
            +
            +
            +
          • +
          • +
            +

            HomeComponent

            +
            +
            public HomeComponent(com.hypixel.hytale.math.vector.Transform transform, + UUID worldUuid)
            +
            +
            +
          • +
          +
          +
        • + +
        • +
          +

          Method Details

          +
            +
          • +
            +

            getTransform

            +
            +
            public com.hypixel.hytale.math.vector.Transform getTransform()
            +
            +
            +
          • +
          • +
            +

            setTransform

            +
            +
            public void setTransform(com.hypixel.hytale.math.vector.Transform transform)
            +
            +
            +
          • +
          • +
            +

            getWorldUuid

            +
            +
            public UUID getWorldUuid()
            +
            +
            +
          • +
          • +
            +

            setWorldUuid

            +
            +
            public void setWorldUuid(UUID worldUuid)
            +
            +
            +
          • +
          • +
            +

            clone

            +
            +
            @Nonnull +public com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore> clone()
            +
            +
            Specified by:
            +
            clone in interface com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore>
            +
            Overrides:
            +
            clone in class Object
            +
            +
            +
            +
          • +
          +
          +
        • +
        +
        + +
        +
        + + diff --git a/build/docs/javadoc/net/miarma/hystuff/component/LastPositionComponent.html b/build/docs/javadoc/net/miarma/hystuff/component/LastPositionComponent.html new file mode 100644 index 0000000..ce3cec1 --- /dev/null +++ b/build/docs/javadoc/net/miarma/hystuff/component/LastPositionComponent.html @@ -0,0 +1,280 @@ + + + + +LastPositionComponent (HyStuff 1.1.0 API) + + + + + + + + + + + + + +
        + +
        +
        + +
        + +
        +

        Class LastPositionComponent

        +
        +
        java.lang.Object +
        net.miarma.hystuff.component.LastPositionComponent
        +
        +
        +
        +
        All Implemented Interfaces:
        +
        com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore>, Cloneable
        +
        +
        +
        +
        public class LastPositionComponent +extends Object +implements com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore>
        +
        +
        +
        +
          + +
        • +
          +

          Field Summary

          +
          Fields
          +
          +
          Modifier and Type
          +
          Field
          +
          Description
          +
          static final com.hypixel.hytale.codec.builder.BuilderCodec<LastPositionComponent>
          + +
           
          +
          +
          +

          Fields inherited from interface com.hypixel.hytale.component.Component

          +EMPTY_ARRAY
          +
          +
        • + +
        • +
          +

          Constructor Summary

          +
          Constructors
          +
          +
          Constructor
          +
          Description
          + +
           
          +
          LastPositionComponent(com.hypixel.hytale.math.vector.Transform transform, + UUID worldUuid)
          +
           
          +
          +
          +
        • + +
        • +
          +

          Method Summary

          +
          +
          +
          +
          +
          Modifier and Type
          +
          Method
          +
          Description
          +
          com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore>
          + +
           
          +
          com.hypixel.hytale.math.vector.Transform
          + +
           
          + + +
           
          +
          void
          +
          setTransform(com.hypixel.hytale.math.vector.Transform transform)
          +
           
          +
          void
          +
          setWorldUuid(UUID worldUuid)
          +
           
          +
          +
          +
          +
          +

          Methods inherited from class Object

          +equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          +
          +

          Methods inherited from interface com.hypixel.hytale.component.Component

          +cloneSerializable
          +
          +
        • +
        +
        +
        +
          + +
        • +
          +

          Field Details

          +
            +
          • +
            +

            CODEC

            +
            +
            public static final com.hypixel.hytale.codec.builder.BuilderCodec<LastPositionComponent> CODEC
            +
            +
            +
          • +
          +
          +
        • + +
        • +
          +

          Constructor Details

          +
            +
          • +
            +

            LastPositionComponent

            +
            +
            public LastPositionComponent()
            +
            +
            +
          • +
          • +
            +

            LastPositionComponent

            +
            +
            public LastPositionComponent(com.hypixel.hytale.math.vector.Transform transform, + UUID worldUuid)
            +
            +
            +
          • +
          +
          +
        • + +
        • +
          +

          Method Details

          +
            +
          • +
            +

            getTransform

            +
            +
            public com.hypixel.hytale.math.vector.Transform getTransform()
            +
            +
            +
          • +
          • +
            +

            setTransform

            +
            +
            public void setTransform(com.hypixel.hytale.math.vector.Transform transform)
            +
            +
            +
          • +
          • +
            +

            getWorldUuid

            +
            +
            public UUID getWorldUuid()
            +
            +
            +
          • +
          • +
            +

            setWorldUuid

            +
            +
            public void setWorldUuid(UUID worldUuid)
            +
            +
            +
          • +
          • +
            +

            clone

            +
            +
            @Nonnull +public com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore> clone()
            +
            +
            Specified by:
            +
            clone in interface com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore>
            +
            Overrides:
            +
            clone in class Object
            +
            +
            +
            +
          • +
          +
          +
        • +
        +
        + +
        +
        + + diff --git a/build/docs/javadoc/net/miarma/hystuff/common/package-summary.html b/build/docs/javadoc/net/miarma/hystuff/component/package-summary.html similarity index 74% rename from build/docs/javadoc/net/miarma/hystuff/common/package-summary.html rename to build/docs/javadoc/net/miarma/hystuff/component/package-summary.html index c5a8f51..55642e3 100644 --- a/build/docs/javadoc/net/miarma/hystuff/common/package-summary.html +++ b/build/docs/javadoc/net/miarma/hystuff/component/package-summary.html @@ -2,10 +2,10 @@ -net.miarma.hystuff.common (HyStuff 1.0.1 API) +net.miarma.hystuff.component (HyStuff 1.1.0 API) - + @@ -39,7 +39,7 @@ loadScripts(document, 'script'); diff --git a/build/docs/javadoc/net/miarma/hystuff/events/package-tree.html b/build/docs/javadoc/net/miarma/hystuff/events/package-tree.html index 0e0f0b7..950d1cb 100644 --- a/build/docs/javadoc/net/miarma/hystuff/events/package-tree.html +++ b/build/docs/javadoc/net/miarma/hystuff/events/package-tree.html @@ -2,7 +2,7 @@ -net.miarma.hystuff.events Class Hierarchy (HyStuff 1.0.1 API) +net.miarma.hystuff.events Class Hierarchy (HyStuff 1.1.0 API) diff --git a/build/docs/javadoc/net/miarma/hystuff/package-summary.html b/build/docs/javadoc/net/miarma/hystuff/package-summary.html index 1069ea7..94b777c 100644 --- a/build/docs/javadoc/net/miarma/hystuff/package-summary.html +++ b/build/docs/javadoc/net/miarma/hystuff/package-summary.html @@ -2,7 +2,7 @@ -net.miarma.hystuff (HyStuff 1.0.1 API) +net.miarma.hystuff (HyStuff 1.1.0 API) @@ -74,7 +74,7 @@ loadScripts(document, 'script');
        Description
         
        - +
         
         
        diff --git a/build/docs/javadoc/net/miarma/hystuff/package-tree.html b/build/docs/javadoc/net/miarma/hystuff/package-tree.html index 0102965..be3ae25 100644 --- a/build/docs/javadoc/net/miarma/hystuff/package-tree.html +++ b/build/docs/javadoc/net/miarma/hystuff/package-tree.html @@ -2,7 +2,7 @@ -net.miarma.hystuff Class Hierarchy (HyStuff 1.0.1 API) +net.miarma.hystuff Class Hierarchy (HyStuff 1.1.0 API) diff --git a/build/docs/javadoc/overview-summary.html b/build/docs/javadoc/overview-summary.html index 0444fca..73acf93 100644 --- a/build/docs/javadoc/overview-summary.html +++ b/build/docs/javadoc/overview-summary.html @@ -2,7 +2,7 @@ -HyStuff 1.0.1 API +HyStuff 1.1.0 API diff --git a/build/docs/javadoc/overview-tree.html b/build/docs/javadoc/overview-tree.html index 05fcb9f..fa50f9a 100644 --- a/build/docs/javadoc/overview-tree.html +++ b/build/docs/javadoc/overview-tree.html @@ -2,7 +2,7 @@ -Class Hierarchy (HyStuff 1.0.1 API) +Class Hierarchy (HyStuff 1.1.0 API) @@ -53,7 +53,7 @@ loadScripts(document, 'script');
        @@ -68,7 +68,6 @@ loadScripts(document, 'script');
      • com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand @@ -77,8 +76,8 @@ loadScripts(document, 'script');
    • -
    • net.miarma.hystuff.common.HomeManager
    • -
    • net.miarma.hystuff.common.LastPositionManager
    • +
    • net.miarma.hystuff.component.HomeComponent (implements com.hypixel.hytale.component.Component<ECS_TYPE>)
    • +
    • net.miarma.hystuff.component.LastPositionComponent (implements com.hypixel.hytale.component.Component<ECS_TYPE>)
    • com.hypixel.hytale.server.core.plugin.PluginBase (implements com.hypixel.hytale.server.core.command.system.CommandOwner)
      • com.hypixel.hytale.server.core.plugin.JavaPlugin @@ -101,20 +100,6 @@ loadScripts(document, 'script');
      -
      -

      Record Class Hierarchy

      - -
      diff --git a/build/docs/javadoc/package-search-index.js b/build/docs/javadoc/package-search-index.js index 8153089..7f6f512 100644 --- a/build/docs/javadoc/package-search-index.js +++ b/build/docs/javadoc/package-search-index.js @@ -1 +1 @@ -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html","k":"18"},{"l":"net.miarma.hystuff"},{"l":"net.miarma.hystuff.commands"},{"l":"net.miarma.hystuff.common"},{"l":"net.miarma.hystuff.events"}];updateSearchResults(); \ No newline at end of file +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html","k":"18"},{"l":"net.miarma.hystuff"},{"l":"net.miarma.hystuff.commands"},{"l":"net.miarma.hystuff.component"},{"l":"net.miarma.hystuff.events"}];updateSearchResults(); \ No newline at end of file diff --git a/build/docs/javadoc/search.html b/build/docs/javadoc/search.html index efe49cf..ba73b3b 100644 --- a/build/docs/javadoc/search.html +++ b/build/docs/javadoc/search.html @@ -2,7 +2,7 @@ -Search (HyStuff 1.0.1 API) +Search (HyStuff 1.1.0 API) diff --git a/build/docs/javadoc/type-search-index.js b/build/docs/javadoc/type-search-index.js index 6b851e6..2db8cfb 100644 --- a/build/docs/javadoc/type-search-index.js +++ b/build/docs/javadoc/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html","k":"18"},{"p":"net.miarma.hystuff.commands","l":"BackCommand"},{"p":"net.miarma.hystuff.commands","l":"DisposalCommand"},{"p":"net.miarma.hystuff.commands","l":"HomeCommand"},{"p":"net.miarma.hystuff.common","l":"HomeManager"},{"p":"net.miarma.hystuff","l":"HyStuff"},{"p":"net.miarma.hystuff.common","l":"LastPositionManager"},{"p":"net.miarma.hystuff.common","l":"Location","k":"11"},{"p":"net.miarma.hystuff.events","l":"PlayerDeathListener"},{"p":"net.miarma.hystuff.commands","l":"SetHomeCommand"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html","k":"18"},{"p":"net.miarma.hystuff.commands","l":"BackCommand"},{"p":"net.miarma.hystuff.commands","l":"HomeCommand"},{"p":"net.miarma.hystuff.component","l":"HomeComponent"},{"p":"net.miarma.hystuff","l":"HyStuff"},{"p":"net.miarma.hystuff.component","l":"LastPositionComponent"},{"p":"net.miarma.hystuff.events","l":"PlayerDeathListener"},{"p":"net.miarma.hystuff.commands","l":"SetHomeCommand"}];updateSearchResults(); \ No newline at end of file diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html new file mode 100644 index 0000000..d86ba6a --- /dev/null +++ b/build/reports/problems/problems-report.html @@ -0,0 +1,659 @@ + + + + + + + + + + + + + Gradle Configuration Cache + + + +
      + +
      + Loading... +
      + + + + + + diff --git a/build/resources/main/manifest.json b/build/resources/main/manifest.json index f614fe5..e245de4 100644 --- a/build/resources/main/manifest.json +++ b/build/resources/main/manifest.json @@ -1,7 +1,7 @@ { "Group": "Miarma", "Name": "HyStuff", - "Version": "1.0.1", + "Version": "1.1.0", "Description": "Various stuff for Hytale", "Authors": [ { diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/HomeCommand.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/HomeCommand.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..9a135fb3e2be7440369f2438ef1b15cf52cf4827 GIT binary patch literal 4392 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 delta 1787 zcmZ`(YfPI}7=BJ$`t|Y^2@NGMECnsJUx7LpFjrukP%c}C%uR62&3%IcMff_~4!3!! zx6SLkaJb1S*Hyal*zaqZia%1oMdqM{E=~WN)2kU zcyJ^(5e@dKsj-j^9#lxElyL{{WbpDI&BYCIE!Z8OjP6l2bu^k_uoGO5mQ1PIP?RC+ z+W?4rOhvqaIgKHIM8^pH7b9dPc2zQ};Ul=QTfwV^f7v>J8x#a2)ablw`EShS8H!I% zl2b%YruyQ^SSl9R)(CE<TK^b>pGlO$tJpyktl(_#NJ|v-m7}PuJ(I_Ji zO$>uR5ze)7xYb%XLjHa|@2xWK#x|}PcICA&_-grCR+b;`?eNrQKNhs{3x*2w4jDUf z40DA?Uc2u4cpL;PCa-RgOUyIURN=HzYRUuC1JOW2=?$l@_uFaa*wfu z|891fd(kQ3zGvq1ihvk>G5@PLE^G6r#wVJAOta`K<-GCwRG%|C?0 z5+0Iq1S&%vnX340MhpL2>SRN_-QsPgQE`fin^3jUVEDvP^qAf>8}czKV+@51Ry8%C zCbXC~YQr$bWju@tK4bBjH5qXn<2Nl~mf%jSkEM8v)z7B*h_yQH!3h~Baf-o|RHrD6 z(dX~C;Bkhc{qdAK;nC+S>CtV&+dN(>o(E6LNaHC6nMOHV*W+4Bob0i~iDzV#;932a zWM^AY-j_-cvrvy-*+V!j;|!jsyT#901LhZHyo8te57zd}N9+TPeax3+CI1r}F5puM z7j^ox{7?B8_65J;P)uJjxcNl53Q5C3vJ`g6B=f-NXD0hAv}+@2 zAZbh32_O7fKUc>9OBY(VsX+q+(mKZJGq=gA@;S|zLAfFMD zfbMxn892U!v#{tYiVaYd3^tK+3FQm$DogM$pia4t`UA=p)RAEkTNcoqI~Eeha@I9k)>9)gAz zoW^$Q$PQejd%xO54aIl|=R}2OS1R-_L0Vz>3zHIti>XBKtrm>BY!t5H9M$83nqH`7 zROljuM|0N4l(bMiaTQM+q1R*?cB)QceFo3zJI~L!?%#6<~8Qii}(H-zjDEjW^f5FT!y3vXl0^OW?`wMcps3`fDiEzNegMu({Bcs VXje#jC%qS+nXUL7U*c<&{0m&+jn)7F diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/SetHomeCommand.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/SetHomeCommand.class.uniqueId1 deleted file mode 100644 index f6178943098245b6bcb66df88b90cbc6a1789fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4412 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 B?EL@$ literal 81660 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 diff --git a/build/tmp/javadoc/javadoc.options b/build/tmp/javadoc/javadoc.options index 24107e2..5ddb70f 100644 --- a/build/tmp/javadoc/javadoc.options +++ b/build/tmp/javadoc/javadoc.options @@ -1,16 +1,14 @@ -classpath '/home/jomaa/git/hystuff/build/classes/java/main:/home/jomaa/git/hystuff/build/resources/main:/home/jomaa/.var/app/com.hypixel.HytaleLauncher/data/Hytale/install/release/package/game/latest/Server/HytaleServer.jar' -quiet -d '/home/jomaa/git/hystuff/build/docs/javadoc' --windowtitle 'HyStuff 1.0.1 API' --doctitle 'HyStuff 1.0.1 API' +-windowtitle 'HyStuff 1.1.0 API' +-doctitle 'HyStuff 1.1.0 API' -notimestamp -Xdoclint:-missing '-quiet' -'/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/common/LastPositionManager.java' -'/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/common/Location.java' -'/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/common/HomeManager.java' +'/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/component/LastPositionComponent.java' +'/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/component/HomeComponent.java' '/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/HyStuff.java' '/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/events/PlayerDeathListener.java' '/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/commands/BackCommand.java' '/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/commands/SetHomeCommand.java' '/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/commands/HomeCommand.java' -'/home/jomaa/git/hystuff/src/main/java/net/miarma/hystuff/commands/DisposalCommand.java' diff --git a/gradle.properties b/gradle.properties index afe1e60..7505304 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # The current version of your project. Please use semantic versioning! -version=1.0.1 +version=1.1.0 # The group ID used for maven publishing. Usually the same as your package name # but not the same as your plugin group! diff --git a/run/auth.enc b/run/auth.enc new file mode 100644 index 0000000000000000000000000000000000000000..56c2725cec35224ffd5b0d7c9a68ada3e522caf0 GIT binary patch literal 1407 zcmV-_1%UcN+nn8y4si-_@Tx!3g4wyo4$UTeUk8T3e%wML0%3I?;+G=D9FD(M>sch` zsW2_Wy6zjClco4E=+uKDf8BQ9{K(rd84OYWKuBTILosr)!Cv&L-(ACcq1wZ{=4xYM zKog$q=mvDbv#+N4;`4n(_~^nUmLp$szh;+Kw!K&@|Y}e9NsB8muQ5VrQz94 zqb}xj`vKXK1-8Os zz(>Y9DkW905Z6O#NcqWC2`%R99+O~=V_{X|ftXMhz@JE3F?k<=n+hAmypyhN(Tz8L z&kcjFa{#CDlpNYx(#>nDxtb$OhLpzWM|HJ(#6YIBDe!41z4DyUEPp=E@*dZG5`s8* zt%wi5_l$p~6frcr%Lqiw__Y#J2TPQq4S%9<=iA!WloskD1sK?R_{t9K}~3^#0xaI$-v2q&G2X1Nc0=Log5k4*B8M8T5|$*cysF? zdy{a(z9~r~BMAp64`pqArV#O0dFZ}4VkM zKtCw&q0Du72Lq5O{xs(%?|Ff0zHTD5m4kIXXTe{Ru%}?1;AwZ!+4%dgLbkm|_$P$& z0ka+c%zKNqbMc!KQo~m(!_(qYa z%PV`Q-M4xbs?XUzi$fWUVpb|@+=u9KK+JaZ`ke%9{{QXhg}+W~Fwxi;&uIXvD$xqj zvDx~$5_ZK5)!<|vDe2Y64l!Y2=N%)Tko-=#p@Oi*U+KQoYz}gDSJ`Tc1S0Vj{~9ee{s>#zT^w6R_)UbuHRu^BT3He?Uy1n z&+goEgVon201Xe0=GafMTG<=ECB% z>P`ALziVd3O}@%|1cpO;2^B|A1tMWJ1dUwZ!Y=LJ{y5>zERm<>z zo9OcI(G{`MSd+&01pbW=8fVg{s+Nhc1sg6rD}2uSNkbbR{-b_v2t954bZ{66zt1$a z{4$A+P+`r?+b3>H64M3sq)GW0CmwuZ0~!g+kn NI4QQ HOME_COMPONENT_TYPE; + public static ComponentType LAST_POSITION_COMPONENT_TYPE; public HyStuff(@Nonnull JavaPluginInit init) { super(init); @@ -40,18 +40,23 @@ public class HyStuff extends JavaPlugin { @Override protected void setup() { LOGGER.atInfo().log("------ HYSTUFF PLUGIN SETUP BEGIN ------"); - this.homeManager = HomeManager.getInstance(this.getDataDirectory(), LOGGER); - this.lastPositionManager = LastPositionManager.getInstance(); - this.playerDeathListener = new PlayerDeathListener(lastPositionManager, LOGGER); + this.playerDeathListener = new PlayerDeathListener(); LOGGER.atInfo().log("------- HYSTUFF PLUGIN SETUP END -------"); } @Override protected void start() { LOGGER.atInfo().log("HyStuff plugin starting..."); - this.getCommandRegistry().registerCommand(new HomeCommand(this.homeManager)); - this.getCommandRegistry().registerCommand(new SetHomeCommand(this.homeManager)); - this.getCommandRegistry().registerCommand(new BackCommand(this.lastPositionManager)); + + HOME_COMPONENT_TYPE = this.getEntityStoreRegistry() + .registerComponent(HomeComponent.class, "hystuff:home", HomeComponent.CODEC); + LAST_POSITION_COMPONENT_TYPE = this.getEntityStoreRegistry() + .registerComponent(LastPositionComponent.class, "hystuff:last_position", LastPositionComponent.CODEC); + + this.getCommandRegistry().registerCommand(new HomeCommand()); + this.getCommandRegistry().registerCommand(new SetHomeCommand()); + this.getCommandRegistry().registerCommand(new BackCommand()); + if (this.playerDeathListener != null) { try { EntityStore.REGISTRY.registerSystem(this.playerDeathListener); @@ -60,6 +65,7 @@ public class HyStuff extends JavaPlugin { LOGGER.atWarning().log("Could not register death listener: " + e.getMessage()); } } + LOGGER.atInfo().log("HyStuff plugin started succesfully!"); LOGGER.atInfo().log("Commands registered: /home, /sethome"); } @@ -67,11 +73,6 @@ public class HyStuff extends JavaPlugin { @Override protected void shutdown() { LOGGER.atInfo().log("HyStuff plugin is shutting down..."); - if (this.homeManager != null) { - this.homeManager.save(); - LOGGER.atInfo().log("Total homes saved: %d", this.homeManager.getHomeCount()); - } - if (this.playerDeathListener != null) { EntityStore.REGISTRY.unregisterSystem(PlayerDeathListener.class); } diff --git a/src/main/java/net/miarma/hystuff/commands/BackCommand.java b/src/main/java/net/miarma/hystuff/commands/BackCommand.java index 6fa0a9d..b6b566e 100644 --- a/src/main/java/net/miarma/hystuff/commands/BackCommand.java +++ b/src/main/java/net/miarma/hystuff/commands/BackCommand.java @@ -2,26 +2,22 @@ package net.miarma.hystuff.commands; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.math.vector.Transform; import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.command.system.CommandContext; import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand; import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport; import com.hypixel.hytale.server.core.universe.PlayerRef; -import com.hypixel.hytale.server.core.universe.Universe; import com.hypixel.hytale.server.core.universe.world.World; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; -import net.miarma.hystuff.common.LastPositionManager; -import net.miarma.hystuff.common.Location; +import net.miarma.hystuff.HyStuff; +import net.miarma.hystuff.component.LastPositionComponent; import org.checkerframework.checker.nullness.compatqual.NonNullDecl; -import java.util.UUID; - public class BackCommand extends AbstractPlayerCommand { - private final LastPositionManager lastPositionManager; - public BackCommand(LastPositionManager lastPositionManager) { + public BackCommand() { super("back", "Teleports you to your last position"); - this.lastPositionManager = lastPositionManager; } @Override @@ -35,28 +31,18 @@ public class BackCommand extends AbstractPlayerCommand { @NonNullDecl Ref ref, @NonNullDecl PlayerRef playerRef, @NonNullDecl World world) { - UUID playerUuid = playerRef.getUuid(); - Location lastPosition = this.lastPositionManager.get(playerUuid); + LastPositionComponent lastComp = store.getComponent(ref, HyStuff.LAST_POSITION_COMPONENT_TYPE); - if (!this.lastPositionManager.has(playerUuid)) { - ctx.sendMessage(Message.raw("You don't have a last position to return to.")); - } else { - final World targetWorld = Universe.get().getWorld(lastPosition.worldName()) != null ? - Universe.get().getWorld(lastPosition.worldName()) : world; - - world.execute(() -> { - Teleport teleport = Teleport.createForPlayer( - targetWorld, - lastPosition.toPosition(), - lastPosition.toRotation() - ); - - store.addComponent(ref, Teleport.getComponentType(), teleport); - ctx.sendMessage(Message.raw(String.format("Teleporting to your last position at %.1f, %.1f, %.1f", - lastPosition.x(), lastPosition.y(), lastPosition.z()))); - }); - - this.lastPositionManager.clear(playerUuid); + if (lastComp == null) { + ctx.sendMessage(Message.raw("No hay posición anterior")); + return; } + + Transform lastLocation = lastComp.getTransform(); + + Teleport teleport = new Teleport(lastLocation.getPosition(), lastLocation.getRotation()); + + store.addComponent(ref, Teleport.getComponentType(), teleport); + store.removeComponent(ref, HyStuff.LAST_POSITION_COMPONENT_TYPE); } } diff --git a/src/main/java/net/miarma/hystuff/commands/DisposalCommand.java b/src/main/java/net/miarma/hystuff/commands/DisposalCommand.java deleted file mode 100644 index f7efa94..0000000 --- a/src/main/java/net/miarma/hystuff/commands/DisposalCommand.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.miarma.hystuff.commands; - -import com.hypixel.hytale.component.Ref; -import com.hypixel.hytale.component.Store; -import com.hypixel.hytale.server.core.command.system.CommandContext; -import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand; -import com.hypixel.hytale.server.core.universe.PlayerRef; -import com.hypixel.hytale.server.core.universe.world.World; -import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; -import org.checkerframework.checker.nullness.compatqual.NonNullDecl; - -public class DisposalCommand extends AbstractPlayerCommand { - - public DisposalCommand() { - super("disposal", "Lets you remove unwanted items."); - } - - @Override - protected void execute(@NonNullDecl CommandContext ctx, - @NonNullDecl Store store, - @NonNullDecl Ref ref, - @NonNullDecl PlayerRef playerRef, - @NonNullDecl World world) { - - } -} diff --git a/src/main/java/net/miarma/hystuff/commands/HomeCommand.java b/src/main/java/net/miarma/hystuff/commands/HomeCommand.java index 4356d01..2c46124 100644 --- a/src/main/java/net/miarma/hystuff/commands/HomeCommand.java +++ b/src/main/java/net/miarma/hystuff/commands/HomeCommand.java @@ -2,33 +2,25 @@ package net.miarma.hystuff.commands; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; -import com.hypixel.hytale.math.vector.Vector3d; -import com.hypixel.hytale.math.vector.Vector3f; -import com.hypixel.hytale.protocol.GameMode; +import com.hypixel.hytale.math.vector.Transform; import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.command.system.CommandContext; import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand; -import com.hypixel.hytale.server.core.command.system.basecommands.CommandBase; +import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent; import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport; import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.Universe; import com.hypixel.hytale.server.core.universe.world.World; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; -import net.miarma.hystuff.common.HomeManager; -import net.miarma.hystuff.common.LastPositionManager; -import net.miarma.hystuff.common.Location; +import net.miarma.hystuff.HyStuff; +import net.miarma.hystuff.component.HomeComponent; +import net.miarma.hystuff.component.LastPositionComponent; import javax.annotation.Nonnull; -import java.util.UUID; public class HomeCommand extends AbstractPlayerCommand { - private final HomeManager homeManager; - private final LastPositionManager lastPositionManager; - - public HomeCommand(HomeManager homeManager) { + public HomeCommand() { super("home", "Teleports you to your home"); - this.homeManager = homeManager; - this.lastPositionManager = LastPositionManager.getInstance(); } @Override @@ -42,31 +34,41 @@ public class HomeCommand extends AbstractPlayerCommand { @Nonnull Ref ref, @Nonnull PlayerRef playerRef, @Nonnull World world) { - UUID playerUuid = playerRef.getUuid(); - Location home = this.homeManager.getHome(playerUuid); - if (home == null) { - ctx.sendMessage(Message.raw("You don't have a home set. Use /sethome first.")); - } else { - World currentWorld = Universe.get().getWorld(playerRef.getWorldUuid()); - Vector3d pos = playerRef.getTransform().getPosition(); - Vector3f rotation = playerRef.getHeadRotation(); - Location currentLocation = new Location(currentWorld.getName(), pos.getX(), pos.getY(), - pos.getZ(), rotation.getYaw(), rotation.getPitch()); - this.lastPositionManager.set(playerUuid, currentLocation); + HomeComponent homeComp = store.getComponent(ref, HyStuff.HOME_COMPONENT_TYPE); - final World homeWorld = Universe.get().getWorld(home.worldName()) != null ? - Universe.get().getWorld(home.worldName()) : world; - - world.execute(() -> { - Teleport teleport = Teleport.createForPlayer( - homeWorld, - home.toPosition(), - home.toRotation() - ); - store.addComponent(ref, Teleport.getComponentType(), teleport); - ctx.sendMessage(Message.raw(String.format("Teleporting to your home at %.1f, %.1f, %.1f", - home.x(), home.y(), home.z()))); - }); + if (homeComp == null) { + ctx.sendMessage(Message.raw("You do not have a home set!")); + return; } + + Transform homeLocation = homeComp.getTransform(); + if (homeLocation == null) { + ctx.sendMessage(Message.raw("Your home data is corrupt.")); + return; + } + + TransformComponent transformComp = store.getComponent(ref, TransformComponent.getComponentType()); + if (transformComp == null) { + ctx.sendMessage(Message.raw("Could not get your current position!")); + return; + } + + LastPositionComponent last = new LastPositionComponent( + transformComp.getTransform().clone(), + world.getWorldConfig().getUuid() + ); + + store.putComponent(ref, HyStuff.LAST_POSITION_COMPONENT_TYPE, last); + + Teleport teleport = new Teleport(homeLocation.getPosition(), homeLocation.getRotation()); + World targetWorld = Universe.get().getWorld(homeComp.getWorldUuid()); + store.addComponent(ref, Teleport.getComponentType(), teleport); + ctx.sendMessage(Message.raw(String.format( + "Teleporting to your home at %.1f, %.1f, %.1f in %s", + homeLocation.getPosition().getX(), + homeLocation.getPosition().getY(), + homeLocation.getPosition().getZ(), + targetWorld.getName() + ))); } } \ No newline at end of file diff --git a/src/main/java/net/miarma/hystuff/commands/SetHomeCommand.java b/src/main/java/net/miarma/hystuff/commands/SetHomeCommand.java index 8aa20af..ecf8b4c 100644 --- a/src/main/java/net/miarma/hystuff/commands/SetHomeCommand.java +++ b/src/main/java/net/miarma/hystuff/commands/SetHomeCommand.java @@ -2,27 +2,22 @@ package net.miarma.hystuff.commands; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; -import com.hypixel.hytale.math.vector.Vector3d; -import com.hypixel.hytale.math.vector.Vector3f; import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.command.system.CommandContext; import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand; -import com.hypixel.hytale.server.core.modules.entity.component.HeadRotation; import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent; import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.world.World; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; -import net.miarma.hystuff.common.HomeManager; +import net.miarma.hystuff.HyStuff; +import net.miarma.hystuff.component.HomeComponent; import javax.annotation.Nonnull; -import java.util.UUID; public class SetHomeCommand extends AbstractPlayerCommand { - private final HomeManager homeManager; - public SetHomeCommand(@Nonnull HomeManager homeManager) { + public SetHomeCommand() { super("sethome", "Set your home location"); - this.homeManager = homeManager; } @Override @@ -34,19 +29,28 @@ public class SetHomeCommand extends AbstractPlayerCommand { protected void execute(@Nonnull CommandContext ctx, @Nonnull Store store, @Nonnull Ref ref, - @Nonnull PlayerRef playerRef, + @Nonnull PlayerRef player, @Nonnull World world) { - TransformComponent transform = store.getComponent(ref, TransformComponent.getComponentType()); - if (transform == null) { - ctx.sendMessage(Message.raw("Could not get your position.")); - } else { - HeadRotation headRotation = store.getComponent(ref, HeadRotation.getComponentType()); - Vector3f rotation = headRotation.getRotation(); - Vector3d position = transform.getPosition(); - UUID playerUuid = playerRef.getUuid(); - this.homeManager.setHome(playerUuid, world, position, rotation); - ctx.sendMessage(Message.raw(String.format("Home set at %.1f, %.1f, %.1f in %s", - position.getX(), position.getY(), position.getZ(), world.getName()))); + + TransformComponent transformComp = + store.getComponent(ref, TransformComponent.getComponentType()); + + if (transformComp == null) { + ctx.sendMessage(Message.raw("Could not get your current position!")); + return; } + + HomeComponent home = new HomeComponent( + transformComp.getTransform().clone(), + world.getWorldConfig().getUuid() + ); + + store.putComponent(ref, HyStuff.HOME_COMPONENT_TYPE, home); + ctx.sendMessage(Message.raw(String.format( + "Your home has been set at %.1f, %.1f, %.1f", + transformComp.getPosition().getX(), + transformComp.getPosition().getY(), + transformComp.getPosition().getZ() + ))); } } diff --git a/src/main/java/net/miarma/hystuff/common/HomeManager.java b/src/main/java/net/miarma/hystuff/common/HomeManager.java deleted file mode 100644 index 0649e39..0000000 --- a/src/main/java/net/miarma/hystuff/common/HomeManager.java +++ /dev/null @@ -1,113 +0,0 @@ -package net.miarma.hystuff.common; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; -import com.hypixel.hytale.logger.HytaleLogger; -import com.hypixel.hytale.math.vector.Vector3d; -import com.hypixel.hytale.math.vector.Vector3f; -import com.hypixel.hytale.server.core.universe.world.World; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.io.IOException; -import java.lang.reflect.Type; -import java.nio.file.Files; -import java.nio.file.LinkOption; -import java.nio.file.Path; -import java.util.Iterator; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; - -public class HomeManager { - private static final String HOMES_FILE = "homes.json"; - private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); - private static final Type HOMES_TYPE = new TypeToken>(){}.getType(); - private final Path dataDir; - private final HytaleLogger LOGGER; - private final Map homes = new ConcurrentHashMap<>(); - private static HomeManager _instance; - - private HomeManager(@Nonnull Path dataDir, @Nonnull HytaleLogger logger) { - this.dataDir = dataDir; - this.LOGGER = logger; - this.load(); - } - - public static HomeManager getInstance(@Nonnull Path dataDir, @Nonnull HytaleLogger logger) { - if(_instance == null) - _instance = new HomeManager(dataDir, logger); - return _instance; - } - - private void load() { - Path homesFile = this.dataDir.resolve(HOMES_FILE); - if(!Files.exists(homesFile)) { - this.LOGGER.atInfo().log("No homes file found. Creating."); - } else { - try { - String jsonStr = Files.readString(homesFile); - Map loaded = GSON.fromJson(jsonStr, HOMES_TYPE); - if (loaded != null) { - for(Map.Entry entry : loaded.entrySet()) { - try { - UUID uuid = UUID.fromString(entry.getKey()); - this.homes.put(uuid, entry.getValue()); - } catch (IllegalArgumentException e) { - this.LOGGER.atWarning().log("Invalid player UUID in homes file: %s", entry.getKey()); - } - } - this.LOGGER.atInfo().log("Loaded %d homes from disk.", this.homes.size()); - } - } catch (IOException e) { - this.LOGGER.atSevere().log("Failed to load homes from disk: %s", e.getMessage()); - } - } - } - - public void save() { - try { - if(!Files.exists(this.dataDir)) { - Files.createDirectories(this.dataDir); - } - - Map toSave = new ConcurrentHashMap<>(); - - for(Map.Entry entry : this.homes.entrySet()) { - toSave.put(entry.getKey().toString(), entry.getValue()); - } - - Path homesFile = this.dataDir.resolve(HOMES_FILE); - String jsonStr = GSON.toJson(toSave, HOMES_TYPE); - Files.writeString(homesFile, jsonStr); - this.LOGGER.atFine().log("Saved %d homes to disk.", this.homes.size()); - } catch (IOException e) { - this.LOGGER.atSevere().log("Failed to save homes to disk: %s", e.getMessage()); - } - } - - public void setHome(@Nonnull UUID playerUuid, @Nonnull World world, @Nonnull Vector3d position, @Nonnull Vector3f rotation) { - Location home = new Location(world.getName(), position.getX(), position.getY(), position.getZ(), rotation.getYaw(), rotation.getPitch()); - this.homes.put(playerUuid, home); - this.save(); - } - - @Nullable - public Location getHome(@Nonnull UUID playerUuid) { - return this.homes.get(playerUuid); - } - - public boolean hasHome(@Nonnull UUID playerUuid) { - return this.homes.containsKey(playerUuid); - } - - public void removeHome(@Nonnull UUID playerUuid) { - this.homes.remove(playerUuid); - this.save(); - } - - public int getHomeCount() { - return this.homes.size(); - } -} diff --git a/src/main/java/net/miarma/hystuff/common/LastPositionManager.java b/src/main/java/net/miarma/hystuff/common/LastPositionManager.java deleted file mode 100644 index 7e5aba1..0000000 --- a/src/main/java/net/miarma/hystuff/common/LastPositionManager.java +++ /dev/null @@ -1,41 +0,0 @@ -package net.miarma.hystuff.common; - -import com.hypixel.hytale.math.vector.Vector3d; -import com.hypixel.hytale.math.vector.Vector3f; - -import javax.annotation.Nonnull; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; - -public class LastPositionManager { - private static LastPositionManager _instance; - - private LastPositionManager() { - - } - - public static LastPositionManager getInstance() { - if(_instance == null) - _instance = new LastPositionManager(); - return _instance; - } - - private final Map lastPositions = new ConcurrentHashMap<>(); - - public void set(UUID uuid, Location pos) { - lastPositions.put(uuid, pos); - } - - public Location get(UUID uuid) { - return lastPositions.get(uuid); - } - - public boolean has(UUID uuid) { - return lastPositions.containsKey(uuid); - } - - public void clear(UUID uuid) { - lastPositions.remove(uuid); - } -} diff --git a/src/main/java/net/miarma/hystuff/common/Location.java b/src/main/java/net/miarma/hystuff/common/Location.java deleted file mode 100644 index db1e1f6..0000000 --- a/src/main/java/net/miarma/hystuff/common/Location.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.miarma.hystuff.common; - -import com.hypixel.hytale.math.vector.Vector3d; -import com.hypixel.hytale.math.vector.Vector3f; - -import javax.annotation.Nonnull; - -public record Location(@Nonnull String worldName, double x, - double y, double z, float yaw, float pitch) { - public Location(@Nonnull String worldName, double x, double y, double z, float yaw, float pitch) { - this.worldName = worldName; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - } - - public Vector3d toPosition() { - return new Vector3d(this.x, this.y, this.z); - } - - public Vector3f toRotation() { - return new Vector3f(this.yaw, this.pitch, 0.0F); - } - - @Nonnull - public String worldName() { - return this.worldName; - } - - public double x() { - return this.x; - } - - public double y() { - return this.y; - } - - public double z() { - return this.z; - } - - public float yaw() { - return this.yaw; - } - - public float pitch() { - return this.pitch; - } -} diff --git a/src/main/java/net/miarma/hystuff/component/HomeComponent.java b/src/main/java/net/miarma/hystuff/component/HomeComponent.java new file mode 100644 index 0000000..d9abe99 --- /dev/null +++ b/src/main/java/net/miarma/hystuff/component/HomeComponent.java @@ -0,0 +1,62 @@ +package net.miarma.hystuff.component; + +import com.hypixel.hytale.codec.Codec; +import com.hypixel.hytale.codec.KeyedCodec; +import com.hypixel.hytale.codec.builder.BuilderCodec; +import com.hypixel.hytale.component.Component; +import com.hypixel.hytale.math.vector.Transform; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; + +import javax.annotation.Nonnull; +import java.util.UUID; + +public class HomeComponent implements Component { + public static final BuilderCodec CODEC; + private Transform transform; + private UUID worldUuid; + + public HomeComponent() { + } + + public HomeComponent(Transform transform, UUID worldUuid) { + this.transform = transform; + this.worldUuid = worldUuid; + } + + public Transform getTransform() { + return this.transform; + } + + public void setTransform(Transform transform) { + this.transform = transform; + } + + public UUID getWorldUuid() { + return this.worldUuid; + } + + public void setWorldUuid(UUID worldUuid) { + this.worldUuid = worldUuid; + } + + @Nonnull + public Component clone() { + return new HomeComponent(this.transform != null ? this.transform.clone() : null, this.worldUuid); + } + + static { + CODEC = BuilderCodec.builder(HomeComponent.class, HomeComponent::new) + .append( + new KeyedCodec<>("Transform", Transform.CODEC), + HomeComponent::setTransform, + HomeComponent::getTransform + ).add() + .append( + new KeyedCodec<>("WorldUuid", Codec.UUID_BINARY), + HomeComponent::setWorldUuid, + HomeComponent::getWorldUuid + ) + .add() + .build(); + } +} \ No newline at end of file diff --git a/src/main/java/net/miarma/hystuff/component/LastPositionComponent.java b/src/main/java/net/miarma/hystuff/component/LastPositionComponent.java new file mode 100644 index 0000000..70ae556 --- /dev/null +++ b/src/main/java/net/miarma/hystuff/component/LastPositionComponent.java @@ -0,0 +1,71 @@ +package net.miarma.hystuff.component; + +import com.hypixel.hytale.codec.Codec; +import com.hypixel.hytale.codec.KeyedCodec; +import com.hypixel.hytale.codec.builder.BuilderCodec; +import com.hypixel.hytale.component.Component; +import com.hypixel.hytale.component.ComponentType; +import com.hypixel.hytale.math.vector.Transform; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import org.checkerframework.checker.nullness.compatqual.NullableDecl; + +import javax.annotation.Nonnull; +import java.util.UUID; + +public class LastPositionComponent implements Component { + + public static final BuilderCodec CODEC; + + private Transform transform; + private UUID worldUuid; + + public LastPositionComponent() { + } + + public LastPositionComponent(Transform transform, UUID worldUuid) { + this.transform = transform; + this.worldUuid = worldUuid; + } + + public Transform getTransform() { + return this.transform; + } + + public void setTransform(Transform transform) { + this.transform = transform; + } + + public UUID getWorldUuid() { + return this.worldUuid; + } + + public void setWorldUuid(UUID worldUuid) { + this.worldUuid = worldUuid; + } + + @Nonnull + @Override + public Component clone() { + return new LastPositionComponent( + this.transform != null ? this.transform.clone() : null, + this.worldUuid + ); + } + + static { + CODEC = BuilderCodec.builder(LastPositionComponent.class, LastPositionComponent::new) + .append( + new KeyedCodec<>("Transform", Transform.CODEC), + LastPositionComponent::setTransform, + LastPositionComponent::getTransform + ).add() + .append( + new KeyedCodec<>("WorldUuid", Codec.UUID_BINARY), + LastPositionComponent::setWorldUuid, + LastPositionComponent::getWorldUuid + ) + .add() + .build(); + } +} + diff --git a/src/main/java/net/miarma/hystuff/events/PlayerDeathListener.java b/src/main/java/net/miarma/hystuff/events/PlayerDeathListener.java index d8a2883..24d5cb9 100644 --- a/src/main/java/net/miarma/hystuff/events/PlayerDeathListener.java +++ b/src/main/java/net/miarma/hystuff/events/PlayerDeathListener.java @@ -15,21 +15,15 @@ import com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent; import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.Universe; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; -import net.miarma.hystuff.common.LastPositionManager; -import net.miarma.hystuff.common.Location; +import net.miarma.hystuff.HyStuff; +import net.miarma.hystuff.component.LastPositionComponent; import org.checkerframework.checker.nullness.compatqual.NonNullDecl; import org.checkerframework.checker.nullness.compatqual.NullableDecl; import java.util.UUID; public class PlayerDeathListener extends RefChangeSystem { - private final LastPositionManager lastPositionManager; - private final HytaleLogger LOGGER; - - public PlayerDeathListener(LastPositionManager lastPositionManager, HytaleLogger logger) { - this.lastPositionManager = lastPositionManager; - this.LOGGER = logger; - } + public PlayerDeathListener() { } @NonNullDecl @Override @@ -42,50 +36,22 @@ public class PlayerDeathListener extends RefChangeSystem store, @NonNullDecl CommandBuffer commandBuffer) { - try { - Universe universe = Universe.get(); - if (universe == null) { - return; - } + TransformComponent transform = + store.getComponent(ref, TransformComponent.getComponentType()); - ComponentType playerRefType = universe.getPlayerRefComponentType(); - if (playerRefType == null) { - return; - } + if (transform == null) return; - PlayerRef playerRef = store.getComponent(ref, playerRefType); - if (playerRef == null) { - return; - } + UUID worldUuid = store.getExternalData() + .getWorld() + .getWorldConfig() + .getUuid(); - UUID playerUuid = playerRef.getUuid(); - TransformComponent transform = store.getComponent(ref, TransformComponent.getComponentType()); - if (transform == null) { - return; - } + LastPositionComponent last = new LastPositionComponent( + transform.getTransform().clone(), + worldUuid + ); - Vector3d pos = transform.getPosition(); - HeadRotation headRotation = store.getComponent(ref, HeadRotation.getComponentType()); - float yaw = 0.0f; - float pitch = 0.0f; - if (headRotation != null) { - Vector3f rotation = headRotation.getRotation(); - yaw = rotation.getYaw(); - pitch = rotation.getPitch(); - } - - String world = "default"; - EntityStore entityStore = store.getExternalData(); - if (entityStore != null && entityStore.getWorld() != null) { - world = entityStore.getWorld().getName(); - } - - Location deathLocation = new Location(world, pos.getX(), pos.getY(), pos.getZ(), yaw, pitch); - lastPositionManager.set(playerUuid, deathLocation); - LOGGER.atFine().log("[DeathListener] Saved death location for " + playerUuid); - } catch (Exception e) { - LOGGER.atWarning().log("[DeathListener] Error: " + e.getMessage()); - } + commandBuffer.putComponent(ref, HyStuff.LAST_POSITION_COMPONENT_TYPE, last); } @Override diff --git a/src/main/resources/manifest.json b/src/main/resources/manifest.json index f614fe5..e245de4 100644 --- a/src/main/resources/manifest.json +++ b/src/main/resources/manifest.json @@ -1,7 +1,7 @@ { "Group": "Miarma", "Name": "HyStuff", - "Version": "1.0.1", + "Version": "1.1.0", "Description": "Various stuff for Hytale", "Authors": [ {