@@ -36,15 +36,15 @@ public enum LaunchPads {
3636 boolean hasRequirement = player .getSkills ().getCurrentLevel (SkillCategories .FARMING ) >= 5 ;
3737 if (!hasRequirement ) {
3838 return PlayerHolograms .ExternalPlayerHologram .builder ()
39- .pos (new Pos (80 , 73.3 , -184.5 ))
39+ .pos (new Pos (79.5 , 73.3 , -184.5 ))
4040 .player (player )
41- .text (new String []{"§bTravel To :" , "§aThe Farming Islands" , "§cRequires Farming Level 5" })
41+ .text (new String []{"§bTravel to :" , "§aThe Farming Islands" , "§cRequires Farming Level 5" })
4242 .build ();
4343 } else {
4444 return PlayerHolograms .ExternalPlayerHologram .builder ()
45- .pos (new Pos (80 , 73.3 , -184.5 ))
45+ .pos (new Pos (79.5 , 73.3 , -184.5 ))
4646 .player (player )
47- .text (new String []{"§bTravel To :" , "§aThe Farming Islands" })
47+ .text (new String []{"§bTravel to :" , "§aThe Farming Islands" })
4848 .build ();
4949 }
5050 }
@@ -61,7 +61,89 @@ public enum LaunchPads {
6161 (player ) -> PlayerHolograms .ExternalPlayerHologram .builder ()
6262 .pos (new Pos (111.5 , 71.7 , -202.5 ))
6363 .player (player )
64- .text (new String []{"§bTravel To:" , "§aThe Village" })
64+ .text (new String []{"§bTravel to:" , "§aThe Village" })
65+ .build ()
66+ ),
67+
68+ GRAVEYARD_TO_SPIDERS_DEN (
69+ getSlimeBlocksNear (new Pos (-162 , 73 , -161 )),
70+ ServerType .SKYBLOCK_HUB ,
71+ ServerType .SKYBLOCK_SPIDERS_DEN ,
72+ new Pos (-202.5 , 83 , -233.5 ),
73+ (player ) -> player .sendTo (ServerType .SKYBLOCK_SPIDERS_DEN ),
74+ (player ) -> player .getSkills ().getCurrentLevel (SkillCategories .COMBAT ) >= 1 ,
75+ "§cYou must be at least Combat Level I to join this island!" ,
76+ (player ) -> {
77+ boolean hasRequirement = player .getSkills ().getCurrentLevel (SkillCategories .COMBAT ) >= 1 ;
78+ if (!hasRequirement ) {
79+ return PlayerHolograms .ExternalPlayerHologram .builder ()
80+ .pos (new Pos (-162.5 , 75 , -161.5 ))
81+ .player (player )
82+ .text (new String []{"§bTravel to:" , "§aSpider's Den" , "§cRequires Combat Level 1" })
83+ .build ();
84+ } else {
85+ return PlayerHolograms .ExternalPlayerHologram .builder ()
86+ .pos (new Pos (-162.5 , 75 , -161.5 ))
87+ .player (player )
88+ .text (new String []{"§bTravel to:" , "§aSpider's Den" })
89+ .build ();
90+ }
91+ }
92+ ),
93+
94+ SPIDERS_DEN_TO_GRAVEYARD (
95+ getSlimeBlocksNear (new Pos (-197 , 83 , -228 )),
96+ ServerType .SKYBLOCK_SPIDERS_DEN ,
97+ ServerType .SKYBLOCK_HUB ,
98+ new Pos (-159.5 , 73 , -158.5 ),
99+ (player ) -> player .sendTo (ServerType .SKYBLOCK_HUB ),
100+ (player ) -> true ,
101+ "" ,
102+ (player ) -> PlayerHolograms .ExternalPlayerHologram .builder ()
103+ .pos (new Pos (-197.5 , 83 , -228.5 ))
104+ .player (player )
105+ .text (new String []{"§bTravel to:" , "§aHub Island" })
106+ .build ()
107+ ),
108+
109+ SPIDERS_DEN_TO_THE_END (
110+ getSlimeBlocksNear (new Pos (-383.5 , 119 , -261 )),
111+ ServerType .SKYBLOCK_SPIDERS_DEN ,
112+ ServerType .SKYBLOCK_THE_END ,
113+ new Pos (-503 , 101 , -275 ),
114+ (player ) -> player .sendTo (ServerType .SKYBLOCK_THE_END ),
115+ (player ) -> player .getSkills ().getCurrentLevel (SkillCategories .COMBAT ) >= 12 ,
116+ "§cYou must be at least Combat Level XII to join this island!" ,
117+ (player ) -> {
118+ boolean hasRequirement = player .getSkills ().getCurrentLevel (SkillCategories .COMBAT ) >= 12 ;
119+ if (!hasRequirement ) {
120+ return PlayerHolograms .ExternalPlayerHologram .builder ()
121+ .pos (new Pos (-383 , 120 , -261 ))
122+ .player (player )
123+ .text (new String []{"§bTravel to:" , "§aThe End" , "§cRequires Combat Level 12" })
124+ .build ();
125+ } else {
126+ return PlayerHolograms .ExternalPlayerHologram .builder ()
127+ .pos (new Pos (-383 , 120 , -261 ))
128+ .player (player )
129+ .text (new String []{"§bTravel to:" , "§aThe End" })
130+ .build ();
131+ }
132+ }
133+ ),
134+
135+ THE_END_TO_SPIDERS_DEN (
136+ getSlimeBlocksNear (new Pos (-197 , 83 , -228 )),
137+ ServerType .SKYBLOCK_THE_END ,
138+ ServerType .SKYBLOCK_SPIDERS_DEN ,
139+ new Pos (-378 , 118.5 , -261 ),
140+ (player ) -> player .sendTo (ServerType .SKYBLOCK_SPIDERS_DEN ),
141+ (player ) -> true ,
142+ "" ,
143+ (player ) -> PlayerHolograms .ExternalPlayerHologram .builder ()
144+ .pos (new Pos (-495 , 102 , -275 ))
145+ .player (player )
146+ .text (new String []{"§bTravel to:" , "§aSpider's Den" })
65147 .build ()
66148 ),
67149
@@ -77,15 +159,15 @@ public enum LaunchPads {
77159 boolean hasRequirement = player .getSkills ().getCurrentLevel (SkillCategories .MINING ) >= 1 ;
78160 if (!hasRequirement ) {
79161 return PlayerHolograms .ExternalPlayerHologram .builder ()
80- .pos (new Pos (-9.5 , 64.7 , -230 .5 ))
162+ .pos (new Pos (-9.5 , 64.7 , -231 .5 ))
81163 .player (player )
82- .text (new String []{"§bTravel To :" , "§aGold Mine" , "§cRequires Mining Level 1" })
164+ .text (new String []{"§bTravel to :" , "§aGold Mine" , "§cRequires Mining Level 1" })
83165 .build ();
84166 } else {
85167 return PlayerHolograms .ExternalPlayerHologram .builder ()
86- .pos (new Pos (-9.5 , 64.7 , -230 .5 ))
168+ .pos (new Pos (-9.5 , 64.7 , -231 .5 ))
87169 .player (player )
88- .text (new String []{"§bTravel To :" , "§aGold Mine" })
170+ .text (new String []{"§bTravel to :" , "§aGold Mine" })
89171 .build ();
90172 }
91173 }
@@ -100,9 +182,9 @@ public enum LaunchPads {
100182 (player ) -> true ,
101183 "" ,
102184 (player ) -> PlayerHolograms .ExternalPlayerHologram .builder ()
103- .pos (new Pos (-5 , 73.3 , -269 ))
185+ .pos (new Pos (-4. 5 , 73.3 , -268.5 ))
104186 .player (player )
105- .text (new String []{"§bTravel To :" , "§aThe Village" })
187+ .text (new String []{"§bTravel to :" , "§aThe Village" })
106188 .build ()
107189 ),
108190
@@ -117,7 +199,7 @@ public enum LaunchPads {
117199 (player ) -> PlayerHolograms .ExternalPlayerHologram .builder ()
118200 .pos (new Pos (-7 , 69 , -396 ))
119201 .player (player )
120- .text (new String []{"§bTravel To :" , "§aDeep Caverns" })
202+ .text (new String []{"§bTravel to :" , "§aDeep Caverns" })
121203 .build ()
122204 ),
123205
@@ -132,7 +214,7 @@ public enum LaunchPads {
132214 (player ) -> PlayerHolograms .ExternalPlayerHologram .builder ()
133215 .pos (new Pos (4 , 158.5 , 89 ))
134216 .player (player )
135- .text (new String []{"§bTravel To :" , "§aGold Mine" })
217+ .text (new String []{"§bTravel to :" , "§aGold Mine" })
136218 .build ()
137219 );
138220
@@ -170,23 +252,28 @@ public enum LaunchPads {
170252 public static void register (Scheduler scheduler ) {
171253 launchPads .addAll (Arrays .asList (LaunchPads .values ()));
172254 launchPads .removeIf (launchPad -> launchPad .serverType != HypixelConst .getTypeLoader ().getType ());
173- Map <UUID , PlayerHolograms .ExternalPlayerHologram > hologramMap = new HashMap <>();
255+ Map <UUID , List < PlayerHolograms .ExternalPlayerHologram > > hologramMap = new HashMap <>();
174256
175257 scheduler .scheduleTask (() -> {
176- for (LaunchPads launchPad : launchPads ) {
177- List <UUID > updated = new ArrayList <>();
178- SkyBlockGenericLoader .getLoadedPlayers ().forEach (player -> {
179- if (hologramMap .containsKey (player .getUuid ()))
180- PlayerHolograms .removeExternalPlayerHologram (hologramMap .get (player .getUuid ()));
181-
182- PlayerHolograms .ExternalPlayerHologram hologram = launchPad .hologramDisplay .apply (player );
183- hologramMap .put (player .getUuid (), hologram );
184- PlayerHolograms .addExternalPlayerHologram (hologram );
185- updated .add (player .getUuid ());
186- });
187-
188- hologramMap .keySet ().removeIf (uuid -> !updated .contains (uuid ));
189- }
258+ List <UUID > updated = new ArrayList <>();
259+
260+ SkyBlockGenericLoader .getLoadedPlayers ().forEach (player -> {
261+ if (hologramMap .containsKey (player .getUuid ())) {
262+ hologramMap .get (player .getUuid ()).forEach (PlayerHolograms ::removeExternalPlayerHologram );
263+ hologramMap .remove (player .getUuid ());
264+ }
265+
266+ List <PlayerHolograms .ExternalPlayerHologram > holograms = new ArrayList <>();
267+ for (LaunchPads launchPad : launchPads ) {
268+ PlayerHolograms .ExternalPlayerHologram hologram = launchPad .hologramDisplay .apply (player );
269+ holograms .add (hologram );
270+ PlayerHolograms .addExternalPlayerHologram (hologram );
271+ updated .add (player .getUuid ());
272+ }
273+ hologramMap .put (player .getUuid (), holograms );
274+ });
275+
276+ hologramMap .keySet ().removeIf (uuid -> !updated .contains (uuid ));
190277 }, TaskSchedule .seconds (2 ), TaskSchedule .seconds (2 ), ExecutionType .TICK_END );
191278
192279 scheduler .scheduleTask (() -> {
0 commit comments