Êþº¾ET  java/lang/Object()V&java/util/concurrent/CompletableFuture   ,net/minecraft/server/level/PlayerSpawnFinderfinishedFuture(Ljava/util/concurrent/CompletableFuture;  level(Lnet/minecraft/server/level/ServerLevel;  spawnSuggestionLnet/minecraft/core/BlockPos;  radiusI !"# $%java/lang/Mathmin(JJ)J ' (candidateCount * +, getCoprime(I)I . /coprime 123 45net/minecraft/util/RandomSourcecreateThreadLocalInstance#()Lnet/minecraft/util/RandomSource; 17 8,nextInt : ;offset =>? @A&net/minecraft/server/level/ServerLevel getServer(()Lnet/minecraft/server/MinecraftServer; CDE FG$net/minecraft/server/MinecraftServer getWorldData/()Lnet/minecraft/world/level/storage/WorldData; IJK LM+net/minecraft/world/level/storage/WorldData getGameType&()Lnet/minecraft/world/level/GameType; OPQ RS"net/minecraft/world/level/GameType ADVENTURE$Lnet/minecraft/world/level/GameType; U VWfixupSpawnHeighti(Lnet/minecraft/world/level/CollisionGetter;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/phys/Vec3; Y Z[completedFuture<(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture; =] ^_ getGameRules1()Lnet/minecraft/world/level/gamerules/GameRules; abc de-net/minecraft/world/level/gamerules/GameRulesRESPAWN_RADIUS.Lnet/minecraft/world/level/gamerules/GameRule; ag higetB(Lnet/minecraft/world/level/gamerules/GameRule;)Ljava/lang/Object;kjava/lang/Integer jm nointValue()I !q rsmax(II)I =u vwgetWorldBorder0()Lnet/minecraft/world/level/border/WorldBorder; yz{ |onet/minecraft/core/BlockPosgetX y~ ogetZ �‚ƒ „…,net/minecraft/world/level/border/WorldBordergetDistanceToBorder(DD)D ‡ˆ‰ Š‹net/minecraft/util/Mthfloor(D)I � ŽI(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;I)V � ‘ scheduleNext “ ”nextCandidateIndex– h—O(Lnet/minecraft/server/level/PlayerSpawnFinder;II)Ljava/util/function/Supplier; ™ š›scheduleCandidate#(IIILjava/util/function/Supplier;)V� hžM(Lnet/minecraft/server/level/PlayerSpawnFinder;)Ljava/util/function/Supplier; y  ¡¢mutable/()Lnet/minecraft/core/BlockPos$MutableBlockPos; ¤ ¥¦noCollisionNoLiquidK(Lnet/minecraft/world/level/CollisionGetter;Lnet/minecraft/core/BlockPos;)Z ¨©ª «o+net/minecraft/core/BlockPos$MutableBlockPosgetY ­®¯ °o)net/minecraft/world/level/CollisionGettergetMaxY ²³´ µ¶net/minecraft/core/DirectionUPLnet/minecraft/core/Direction; ¨¸ ¹ºmoveM(Lnet/minecraft/core/Direction;)Lnet/minecraft/core/BlockPos$MutableBlockPos; ²¼ ½¶DOWN ­¿ ÀogetMinY ÂÃÄ ÅÆnet/minecraft/world/phys/Vec3atBottomCenterOf;(Lnet/minecraft/core/Vec3i;)Lnet/minecraft/world/phys/Vec3; È ÉÊPLAYER_DIMENSIONS-Lnet/minecraft/world/entity/EntityDimensions; ÌÍÎ ÏÐ+net/minecraft/world/entity/EntityDimensionsmakeBoundingBox@(Lnet/minecraft/world/phys/Vec3;)Lnet/minecraft/world/phys/AABB; ­Ò ÓÔ noCollisionF(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/phys/AABB;Z)Z Ö ×ØisDone()Z ÚÛÜ Ý,net/minecraft/core/SectionPosblockToSectionCoord =ß àágetChunkSource/()Lnet/minecraft/server/level/ServerChunkCache; ãäå æç%net/minecraft/server/level/TicketType SPAWN_SEARCH'Lnet/minecraft/server/level/TicketType;é"net/minecraft/world/level/ChunkPos èë ì(II)V îïð ñò+net/minecraft/server/level/ServerChunkCacheaddTicketAndLoadWithRadiusv(Lnet/minecraft/server/level/TicketType;Lnet/minecraft/world/level/ChunkPos;I)Ljava/util/concurrent/CompletableFuture;ô õöaccepto(Lnet/minecraft/server/level/PlayerSpawnFinder;Ljava/util/function/Supplier;III)Ljava/util/function/BiConsumer; ø ùúwhenCompleteAsynch(Ljava/util/function/BiConsumer;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture; =ü ýþ dimensionType5()Lnet/minecraft/world/level/dimension/DimensionType;  Ø1net/minecraft/world/level/dimension/DimensionType hasCeiling = getChunk0(II)Lnet/minecraft/world/level/chunk/LevelChunk; î    getGenerator2()Lnet/minecraft/world/level/chunk/ChunkGenerator;   .net/minecraft/world/level/chunk/ChunkGeneratorgetSpawnHeight2(Lnet/minecraft/world/level/LevelHeightAccessor;)I  2net/minecraft/world/level/levelgen/Heightmap$TypesMOTION_BLOCKING4Lnet/minecraft/world/level/levelgen/Heightmap$Types;  *net/minecraft/world/level/chunk/LevelChunk getHeight9(Lnet/minecraft/world/level/levelgen/Heightmap$Types;II)I =¿  ! WORLD_SURFACE # $ OCEAN_FLOOR ¨ ¨' ()set2(III)Lnet/minecraft/core/BlockPos$MutableBlockPos; =+ ,- getBlockStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; /01 230net/minecraft/world/level/block/state/BlockState getFluidState1()Lnet/minecraft/world/level/material/FluidState; 567 8Ø-net/minecraft/world/level/material/FluidStateisEmpty /: ;<getCollisionShaper(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/phys/shapes/VoxelShape; >?@ AB%net/minecraft/world/level/block/Block isFaceFullM(Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/core/Direction;)Z ¨D EFabove()Lnet/minecraft/core/BlockPos; yH IF immutable KLM NOnet/minecraft/SharedConstantsdebugVoidTerrain'(Lnet/minecraft/world/level/ChunkPos;)Z èQ Ro getMinBlockX èT Uo getMaxBlockX èW Xo getMinBlockZ èZ [o getMaxBlockZ ] ^_getLevelRespawnPosI(Lnet/minecraft/server/level/ServerLevel;II)Lnet/minecraft/core/BlockPos; abc hdjava/util/function/Supplier()Ljava/lang/Object;fjava/util/Optional eh iØ isPresent eb l mncomplete(Ljava/lang/Object;)Zpjava/lang/ThrowablerSearching for spawn tuv wxnet/minecraft/CrashReport forThrowableD(Ljava/lang/Throwable;Ljava/lang/String;)Lnet/minecraft/CrashReport;z Spawn Lookup t| }~ addCategory7(Ljava/lang/String;)Lnet/minecraft/CrashReportCategory;€Origin ‚ƒ„ …†java/util/ObjectsrequireNonNull&(Ljava/lang/Object;)Ljava/lang/Object;ˆ ‰Šcall@(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/CrashReportDetail; Œ�Ž ��!net/minecraft/CrashReportCategory setDetailX(Ljava/lang/String;Lnet/minecraft/CrashReportDetail;)Lnet/minecraft/CrashReportCategory;’Radius” ‰•Q(Lnet/minecraft/server/level/PlayerSpawnFinder;)Lnet/minecraft/CrashReportDetail;— Candidate™ ‰š%(II)Lnet/minecraft/CrashReportDetail;œProgressž ‰ŸR(Lnet/minecraft/server/level/PlayerSpawnFinder;I)Lnet/minecraft/CrashReportDetail;¡net/minecraft/ReportedException  £ ¤(Lnet/minecraft/CrashReport;)V ¦ §¨completeExceptionally(Ljava/lang/Throwable;)Zª «¬makeConcatWithConstants(II)Ljava/lang/String;ª j¯ °±toString(I)Ljava/lang/String; e³ ´µof((Ljava/lang/Object;)Ljava/util/Optional; e· ¸¹empty()Ljava/util/Optional; »¼½ ¾¿&net/minecraft/world/entity/EntityTypesPLAYER'Lnet/minecraft/world/entity/EntityType; ÁÂà ÄÅ%net/minecraft/world/entity/EntityType getDimensions/()Lnet/minecraft/world/entity/EntityDimensions;ABSOLUTE_MAX_ATTEMPTS ConstantValue SignatureILjava/util/concurrent/CompletableFuture;CodeLineNumberTableLocalVariableTablethis.Lnet/minecraft/server/level/PlayerSpawnFinder; squareSideJMethodParameters findSpawno(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;)Ljava/util/concurrent/CompletableFuture; distToBorderfinder StackMapTable�(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;)Ljava/util/concurrent/CompletableFuture;valuedeltaXdeltaZtargetXtargetZcandidateIndex+Lnet/minecraft/world/level/CollisionGetter;spawnPos mutablePos-Lnet/minecraft/core/BlockPos$MutableBlockPos;pospossibleOrigins candidateX candidateZcandidateCheckerLjava/util/function/Supplier;chunkXchunkZLocalVariableTypeTableTLjava/util/function/Supplier;>;Z(IIILjava/util/function/Supplier;>;)V blockState2Lnet/minecraft/world/level/block/state/BlockState;yxz caveWorldZchunk,Lnet/minecraft/world/level/chunk/LevelChunk;topYsurfaceRuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable;getSpawnPosInChunkk(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/ChunkPos;)Lnet/minecraft/core/BlockPos;validSpawnPositionchunkPos$Lnet/minecraft/world/level/ChunkPos;lambda$scheduleCandidate$0J(Ljava/util/function/Supplier;IIILjava/lang/Object;Ljava/lang/Throwable;)VLjava/util/Optional;tLjava/lang/Throwable;reportLnet/minecraft/CrashReport;details#Lnet/minecraft/CrashReportCategory;ignoredLjava/lang/Object; throwable5Ljava/util/Optional;lambda$scheduleCandidate$3 Exceptionsjava/lang/Exceptionlambda$scheduleCandidate$2lambda$scheduleCandidate$1()Ljava/lang/String;lambda$scheduleNext$1lambda$scheduleNext$0(II)Ljava/util/Optional; SourceFilePlayerSpawnFinder.javaBootstrapMethodsd  ¹! " ¹$'(Ljava/lang/Object;Ljava/lang/Object;)V& ' )*(Ljava/lang/Object;Ljava/lang/Throwable;)V+ ,-. °net/minecraft/core/Vec3i1 2 4 5 ¬7 8  ±:  out of <[,]> ?@A BC"java/lang/invoke/LambdaMetafactory metafactoryÌ(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;E FGH «I$java/lang/invoke/StringConcatFactory˜(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClassesMutableBlockPosM,net/minecraft/world/level/levelgen/HeightmapTypesP%java/lang/invoke/MethodHandles$LookupRjava/lang/invoke/MethodHandlesLookup!  ÉÊÆÇÈ(/;”ÉÊŽËÊT*·*»Y· µ *+µ*,µ*µ…i a7*i¸ ˆµ&**´&¸)µ-*¸0*´&¹6µ9±Ì* -+./01(283C4S5Í4TÎÏTTT(,ÐÑÒ  ÓÔËój*¶<¶B¹H²N¦ *+¸T¸X°*¶\²`¶fÀj¶l¸p=*¶t+¶x‡+¶}‡¶€¸†>¢=£=» Y*+·Œ:¶�´ °Ì. 89<0=E>J?LAQBSE_FdHÍ4jj0:E%Õ_ ÖÏ× ý0Ò ÉØ‘Ë(�*Y´’Z`µ’<*´&¢b*´9*´-h`*´&p=*´h`p>*´h`l6*´¶x`*´d6*´¶}`*´d6**º•¶˜§**´¶x*´¶}*ºœ¶˜±Ì. L MN%O0P<QLR]SpZs[Œ_ÍH%KÙ0@Ú<4ÛL$Ü]Ý�ÎÏ �Þ×üs VWËÅZ+¶ŸM*,¸£š,¶§*¹¬¢,²±¶·W§ÿã,²»¶·W*,¸£™,¶§*¹¾¤,²»¶·W§ÿã,²±¶·W,¸Á°Ì"bde%h-iBjMlUnÍ ZßZàUáâ× ü¨Ò à ¥¦ËG*²Ç+¸Á¶Ë¹Ñ¬ÌrÍßãÒ ã +,ËD£ d§¬ÌwÍ ä× AÒäš›ËäG*´ ¶Õ™±¸Ù6¸Ù6*´¶Þ²â»èY·ê¶í*ºó*´¶<¶÷W±Ì"{ } €�?—B�F˜ÍHGÎÏGåGæGÞGçè6é0êë Gçì× ÒåæÞçÉí ^_Ëà Ï*¶û¶ÿ>*¸Ù¸Ù¶:™*¶Þ¶*¶ §²~~¶6*¶¢°²~~¶6£²"~~¶¤°»¨Y·%:`6*¶¡C¶&W*¶*:  ¶.¶4š§# *¶9²±¸=™ ¶C¶G°„ÿ§ÿº°ÌJ›Ÿ :£C¤E¨W©sªu­~¯�°—±Ÿ´ªµ­¹¾ºÇ¯Í½Íf Ÿ(îï „IðÏÏñÏòÇóô¹õö:•÷Wxø~Qãâ×&ý(Oü ü/ý¨ü(/úúÒ ñòùú ûüËÏA+¸J™°+¶P=+¶S£,+¶V>+¶Y£*¸\:ư„§ÿå„§ÿÒ°Ì* Á ÅÆ#Ç+È0É3Æ9Å?ÎÍ4+ýò1ñAAþÿ× üü úúÒ þùúË« ªÇ6+¹`Àe:¶g™*´ ¶jÀ¶kW§*¶�§ ::Æoq¸s:y¶{:*´Y¸�Wº‡¶‹W‘*º“¶‹W–º˜¶‹W›*º�¶‹W*´ » Y·¢¶¥W±/2oÌF‚„…†+ˆ/Œ2Š4‹8Ž=�G�Q‘h’w“‡”˜•©—Íp à4GbQXªÎϪçèªåªæªÞª  ª ë à ×ü+eúBoûp ±Ë? *´&º©°Ì”Í ÎÏ Þ ¬Ë<º­°Ì“ÍåæË2*´¸®°Ì’Í ÎϹË9*´*´¸T¸²°Ì\Í ÎÏˇ%*´¸\N-Æ*´-¸£™ -¸Á¸²°¸¶°ÌT UV!XÍ*%ÎÏ%Ü%Ý à×ü!yË" ²º¶À³Ç±ÌT == =#%(=*/=0/=3/=6/D9D;J¨yK LN@OQS