Skip to content

Commit e5403ab

Browse files
Merge pull request #586 from Swofty-Developments/katze-review
Katze review
2 parents 33ab28a + 5266e57 commit e5403ab

17 files changed

Lines changed: 503 additions & 32 deletions

File tree

commons/src/main/java/net/swofty/commons/CustomWorlds.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
public enum CustomWorlds {
44
SKYBLOCK_ISLAND_TEMPLATE("hypixel_skyblock_island_template"),
55
SKYBLOCK_HUB("hypixel_skyblock_hub"),
6+
SKYBLOCK_SPIDERS_DEN("hypixel_skyblock_spiders_den"),
7+
SKYBLOCK_THE_END("hypixel_skyblock_the_end"),
68
SKYBLOCK_GOLD_MINE("hypixel_skyblock_gold_mine"),
79
SKYBLOCK_DEEP_CAVERNS("hypixel_skyblock_deep_caverns"),
810
SKYBLOCK_DWARVEN_MINES("hypixel_skyblock_dwarven_mines"),

commons/src/main/java/net/swofty/commons/ServerType.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
public enum ServerType {
77
SKYBLOCK_ISLAND(true),
88
SKYBLOCK_HUB(true),
9+
SKYBLOCK_SPIDERS_DEN(true),
10+
SKYBLOCK_THE_END(true),
911
SKYBLOCK_DUNGEON_HUB(true),
1012
SKYBLOCK_THE_FARMING_ISLANDS(true),
1113
SKYBLOCK_GOLD_MINE(true),

loader/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ dependencies {
2727
implementation(project(":type.island"))
2828
implementation(project(":type.hub"))
2929
implementation(project(":type.thefarmingislands"))
30+
implementation(project(":type.spidersden"))
31+
implementation(project(":type.theend"))
3032
implementation(project(":type.goldmine"))
3133
implementation(project(":type.deepcaverns"))
3234
implementation(project(":type.dwarvenmines"))

loader/src/main/java/net/swofty/loader/Hypixel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ ToProxyChannels.PROXY_IS_ONLINE, new JSONObject(), (response) -> {
357357
Logger.error("Proxy did not respond to alive check. Shutting down...");
358358
System.exit(0);
359359
}
360-
}, TaskSchedule.tick(4), TaskSchedule.stop());
360+
}, TaskSchedule.tick(20), TaskSchedule.stop());
361361

362362
return TaskSchedule.seconds(1);
363363
}, ExecutionType.TICK_END);

settings.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ include(":pvp")
1616

1717
include(":type.prototypelobby")
1818
include(":type.thefarmingislands")
19+
include("type.spidersden")
20+
include("type.theend")
1921
include(":type.goldmine")
2022
include(":type.deepcaverns")
2123
include(":type.dwarvenmines")
@@ -34,4 +36,4 @@ include(":service.datamutex")
3436
include(":service.party")
3537
include(":service.orchestrator")
3638
include(":service.darkauction")
37-
include(":anticheat")
39+
include(":anticheat")

type.hub/src/main/java/net/swofty/type/hub/TypeHubLoader.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,8 @@ public LoaderValues getLoaderValues() {
136136
return new LoaderValues(
137137
(type) -> switch (type) {
138138
case SKYBLOCK_THE_FARMING_ISLANDS -> new Pos(74, 72, -180, 35, 0);
139-
case SKYBLOCK_GOLD_MINE -> new Pos(-9.5, 64, -228, 0, 0); // TODO: UPDATE TO PROPER POSITION
139+
case SKYBLOCK_SPIDERS_DEN -> new Pos(-159.5, 73, -158.5, -45, 0);
140+
case SKYBLOCK_GOLD_MINE -> new Pos(-9.5, 64, -228.5, 0, 0);
140141
case SKYBLOCK_DUNGEON_HUB -> new Pos(-44, 88, 11.5, 0, 0);
141142
default -> new Pos(-2.5, 72.5, -69.5, 180, 0);
142143
}, // Spawn position

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/SkyBlockGenericLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ public void initialize(MinecraftServer server) {
291291
MinecraftServer.getDimensionTypeRegistry().register(
292292
Key.key("skyblock:island"),
293293
DimensionType.builder()
294-
.ambientLight(2)
294+
.ambientLight(1)
295295
.build());
296296
SkyBlockIsland.runVacantLoop(MinecraftServer.getSchedulerManager());
297297

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/utility/LaunchPads.java

Lines changed: 115 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -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(() -> {

type.spidersden/build.gradle.kts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
plugins {
2+
java
3+
}
4+
5+
group = "net.swofty"
6+
version = "3.0"
7+
8+
java {
9+
sourceCompatibility = JavaVersion.VERSION_25
10+
targetCompatibility = JavaVersion.VERSION_25
11+
toolchain {
12+
languageVersion.set(JavaLanguageVersion.of(25))
13+
}
14+
}
15+
16+
dependencies {
17+
implementation(project(":type.skyblockgeneric"))
18+
implementation(project(":type.generic"))
19+
implementation(project(":commons"))
20+
implementation(project(":proxy.api"))
21+
compileOnly("net.minestom:minestom:2025.12.20c-1.21.11") {
22+
exclude(group = "org.jboss.shrinkwrap.resolver", module = "shrinkwrap-resolver-depchain")
23+
}
24+
implementation("org.tinylog:tinylog-api:2.7.0")
25+
implementation("org.tinylog:tinylog-impl:2.7.0")
26+
implementation("org.joml:joml:1.10.8")
27+
}

0 commit comments

Comments
 (0)