Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions configuration/skyblock/Minestom.regions.csv
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,12 @@ pigmens_den,PIGMENS_DEN,151,114,77,-26,85,-61,DEEP_CAVERNS
slimehill,SLIMEHILL,-26,85,-61,127,52,74,DEEP_CAVERNS
diamond_reserve,DIAMOND_RESERVE,127,52,74,-36,28,-74,DEEP_CAVERNS
obsidian_sanctuary,OBSIDIAN_SANCTUARY,-36,28,-74,121,0,48,DEEP_CAVERNS
#the_end_nest_1,THE_END_NEST,78,117,-87,149,0,85,
#the_end_1,THE_END,150,177,146,190,23,-115,
#dragons_nest_2,DRAGONS_NEST,-34,1,68,-92,68,-52,
the_end_nest_1,THE_END_NEST,78,117,-87,149,0,85,THE_END
the_end_1,THE_END,150,177,146,190,23,-115,THE_END
dragons_nest_2,DRAGONS_NEST,-34,1,68,-92,68,-52,THE_END
vs1,VOID_SEPULTURE,100,62,-17,56,7,-96,THE_END
vs2,VOID_SEPULTURE,68,70,-96,140,23,-21,THE_END
vs3,VOID_SEPULTURE,74,50,-51,49,8,-91,THE_END
#spiders_den_1,SPIDERS_DEN,-107,5,-238,-408,195,-368,
#spiders_den_2,SPIDERS_DEN,-408,195,-368,-178,13,-183,
#spiders_den_3,SPIDERS_DEN,-226,6,-130,-408,195,-368,
Expand All @@ -78,8 +81,10 @@ gb1,GOBLIN_BURROWS,-47,170,214,-96,154,99,DWARVEN_MINES
gb2,GOBLIN_BURROWS,-60,163,180,-192,131,110,DWARVEN_MINES
mist1,THE_MIST,-60,83,2,200,63,160,DWARVEN_MINES
cliffv,CLIFFSIDE_VEINS,6,154,23,92,114,56,DWARVEN_MINES
#vs1,VOID_SEPULTURE,100,62,-17,56,7,-96,
#vs2,VOID_SEPULTURE,68,70,-96,140,23,-21,
#vs3,VOID_SEPULTURE,74,50,-51,49,8,-91,
wilderness_1,WILDERNESS,58,71,118,123,76,123,HUB
barn_1,THE_BARN,82,26,-177,250,120,-334,THE_FARMING_ISLANDS
barn_1,THE_BARN,82,26,-177,250,120,-334,THE_FARMING_ISLANDS,
birch_forest,BIRCH_PARK,-255,114,26,-336,41,-90,THE_PARK
spruce_forest,SPRUCE_WOODS,-387,151,-22,-309,59,107,THE_PARK
dark_thicket,DARK_THICKET,-333,148,-24,-415,59,-122,THE_PARK
jungle,JUNGLE_ISLAND,-306,149,-130,-507,68,-18,THE_PARK
savanna,SAVANNA_WOODLAND,-467,155,-20,-383,56,102,THE_PARK
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,17 @@
import net.kyori.adventure.key.Key;
import net.kyori.adventure.text.Component;
import net.minestom.server.MinecraftServer;
import net.minestom.server.coordinate.CoordConversion;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.event.server.ServerTickMonitorEvent;
import net.minestom.server.instance.Chunk;
import net.minestom.server.monitoring.BenchmarkManager;
import net.minestom.server.monitoring.TickMonitor;
import net.minestom.server.registry.RegistryKey;
import net.minestom.server.timer.TaskSchedule;
import net.minestom.server.utils.time.TimeUnit;
import net.minestom.server.world.DimensionType;
import net.minestom.server.world.biome.Biome;
import net.swofty.commons.*;
import net.swofty.commons.skyblock.item.ItemType;
import net.swofty.commons.skyblock.item.attribute.ItemAttribute;
Expand Down Expand Up @@ -64,6 +68,7 @@
import net.swofty.type.skyblockgeneric.noteblock.SkyBlockSongsHandler;
import net.swofty.type.skyblockgeneric.redis.RedisAuthenticate;
import net.swofty.type.generic.redis.RedisOriginServer;
import net.swofty.type.skyblockgeneric.region.SkyBlockBiomeConfiguration;
import net.swofty.type.skyblockgeneric.region.SkyBlockRegenConfiguration;
import net.swofty.type.skyblockgeneric.region.SkyBlockRegion;
import net.swofty.type.skyblockgeneric.server.attribute.SkyBlockServerAttributes;
Expand Down Expand Up @@ -283,9 +288,7 @@ public void initialize(MinecraftServer server) {
HypixelPacketClientListener.register(HypixelConst.getEventHandler());
HypixelPacketServerListener.register(HypixelConst.getEventHandler());

/**
* Load regions
*/
// Load regions
SkyBlockRegion.cacheRegions();
SkyBlockRegenConfiguration.startRepeater(MinecraftServer.getSchedulerManager());
MinecraftServer.getDimensionTypeRegistry().register(
Expand All @@ -295,6 +298,15 @@ public void initialize(MinecraftServer server) {
.build());
SkyBlockIsland.runVacantLoop(MinecraftServer.getSchedulerManager());

// Set region biomes
SkyBlockRegion.getRegions().forEach(region -> {
if (region.getServerType() != HypixelConst.getTypeLoader().getType()) return;
SkyBlockBiomeConfiguration biomeConfig = region.getType().getBiomeHandler();
if (biomeConfig == null) return;
RegistryKey<Biome> biomeKey = MinecraftServer.getBiomeRegistry().register(biomeConfig.getKey(), biomeConfig.getBiome());
setBiome(region.getFirstLocation(), region.getSecondLocation(), biomeKey);
});

/**
* Load fairy souls
*/
Expand Down Expand Up @@ -561,6 +573,21 @@ public static <T> Stream<T> loopThroughPackage(String packageName, Class<T> claz
.filter(java.util.Objects::nonNull);
}

private void setBiome(int x, int y, int z, RegistryKey<Biome> biome) {
Chunk chunk = HypixelConst.getInstanceContainer().getChunk(CoordConversion.globalToChunk(x), CoordConversion.globalToChunk(z));
chunk.setBiome(x, y, z, biome);
}

private void setBiome(Pos start, Pos end, RegistryKey<Biome> biome) {
for (int x = start.blockX(); x <= end.blockX(); x++) {
for (int y = start.blockY(); y <= end.blockY(); y++) {
for (int z = start.blockZ(); z <= end.blockZ(); z++) {
setBiome(x, y, z, biome);
}
}
}
}

private static String formatEffectDuration(long durationMs) {
long totalSeconds = durationMs / 1000;
long minutes = totalSeconds / 60;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,5 @@ public void registerUsage(MinestomCommand command) {
int z = context.get(zArgument);
player.teleport(player.getPosition().withX(x).withY(y).withZ(z));
}, xArgument, yArgument, zArgument);

ArgumentRelativeVec3 blockPosArgument = ArgumentType.RelativeVec3("position");
command.addSyntax((sender, context) -> {
SkyBlockPlayer player = (SkyBlockPlayer) sender;
RelativeVec relativeVec = context.get(blockPosArgument);
player.teleport(player.getPosition().add(relativeVec.from(player)));
}, blockPosArgument);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.Getter;
import lombok.SneakyThrows;
import net.swofty.commons.Songs;
import net.swofty.type.skyblockgeneric.region.biome.*;
import net.swofty.type.skyblockgeneric.region.mining.configurations.*;
import net.swofty.type.skyblockgeneric.region.mining.configurations.deepmines.*;

Expand Down Expand Up @@ -34,13 +35,13 @@ public enum RegionType {
DARK_AUCTION("Dark Auction", "§5"),
FOREST("Forest", MineLogsConfiguration.class),

BIRCH_PARK("Birch Park", "§a"),
HOWLING_CAVE("Howling Cave"),
SPRUCE_WOODS("Spruce Woods", "§a"),
DARK_THICKET("Dark Thicket", "§a"),
SAVANNA_WOODLAND("Savanna Woodland", "§a"),
MELODY_PLATEAU("Melody's Plateau", "§5"),
JUNGLE_ISLAND("Jungle Island", "§a"),
BIRCH_PARK("Birch Park", "§a", null, BirchParkBiome.class),
HOWLING_CAVE("Howling Cave", null, BirchParkBiome.class),
SPRUCE_WOODS("Spruce Woods", "§a", null, SpruceWoodsBiome.class),
DARK_THICKET("Dark Thicket", "§a", null, DarkThicketBiome.class),
SAVANNA_WOODLAND("Savanna Woodland", "§a", null, SavannaWoodlandsBiome.class),
MELODY_PLATEAU("Melody's Plateau", "§5", null, SavannaWoodlandsBiome.class),
JUNGLE_ISLAND("Jungle Island", "§a", null, JungleIslandBiome.class),

THE_BARN("The Barn", "§b", BarnConfiguration.class),
MUSHROOM_DESERT("Mushroom Desert"),
Expand Down Expand Up @@ -89,28 +90,40 @@ public enum RegionType {
private final String name;
private final String color;
private final SkyBlockRegenConfiguration miningHandler;
private final SkyBlockBiomeConfiguration biomeHandler;
private final List<Songs> songs;

@SneakyThrows
RegionType(String name, String color, Class<? extends SkyBlockRegenConfiguration> miningHandler, Songs... songs) {
RegionType(String name, String color, Class<? extends SkyBlockRegenConfiguration> miningHandler, Class<? extends SkyBlockBiomeConfiguration> biomeHandler, Songs... songs) {
this.name = name;
this.color = color;

if (miningHandler != null)
this.miningHandler = miningHandler.getDeclaredConstructor().newInstance();
else
this.miningHandler = null;

if (biomeHandler != null)
this.biomeHandler = biomeHandler.getDeclaredConstructor().newInstance();
else
this.biomeHandler = null;

this.songs = new ArrayList<>();
}

RegionType(String name, String color, Class<? extends SkyBlockRegenConfiguration> miningHandler) {
this(name, color, miningHandler, new Songs[0]);
this(name, color, miningHandler, null, new Songs[0]);
}

RegionType(String name, Class<? extends SkyBlockRegenConfiguration> miningHandler) {
this(name, "§b", miningHandler);
}


RegionType(String name, Class<? extends SkyBlockRegenConfiguration> miningHandler, Class<? extends SkyBlockBiomeConfiguration> biomeHandler) {
this(name, "§b", miningHandler, biomeHandler);
}

RegionType(String name, String color) {
this(name, color, new Songs[0]);
}
Expand All @@ -120,6 +133,7 @@ public enum RegionType {
this.color = color;
this.miningHandler = null;
this.songs = new ArrayList<>(List.of(songs));
this.biomeHandler = null;
}

RegionType(String name) {
Expand All @@ -135,6 +149,11 @@ public SkyBlockRegenConfiguration getMiningHandler() {
return miningHandler;
}

@SneakyThrows
public SkyBlockBiomeConfiguration getBiomeHandler() {
return biomeHandler;
}

@Override
public String toString() {
return color + name;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package net.swofty.type.skyblockgeneric.region;

import lombok.AllArgsConstructor;
import lombok.Getter;
import net.kyori.adventure.key.Key;
import net.minestom.server.world.biome.Biome;

@Getter
@AllArgsConstructor
public abstract class SkyBlockBiomeConfiguration {
private final Key key;

public abstract Biome getBiome();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package net.swofty.type.skyblockgeneric.region.biome;

import net.kyori.adventure.key.Key;
import net.kyori.adventure.text.format.TextColor;
import net.minestom.server.world.biome.Biome;
import net.minestom.server.world.biome.BiomeEffects;
import net.swofty.type.skyblockgeneric.region.SkyBlockBiomeConfiguration;

public class BirchParkBiome extends SkyBlockBiomeConfiguration {

public BirchParkBiome() {
super(Key.key("skyblock:birch_park"));
}

@Override
public Biome getBiome() {
return Biome.builder()
.effects(
BiomeEffects.builder()
.grassColor(TextColor.color(16765696))
.foliageColor(TextColor.color(16762880))
.waterColor(TextColor.color(8250111))
.build()
)
.build();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package net.swofty.type.skyblockgeneric.region.biome;

import net.kyori.adventure.key.Key;
import net.kyori.adventure.text.format.TextColor;
import net.minestom.server.world.biome.Biome;
import net.minestom.server.world.biome.BiomeEffects;
import net.swofty.type.skyblockgeneric.region.SkyBlockBiomeConfiguration;

public class DarkThicketBiome extends SkyBlockBiomeConfiguration {

public DarkThicketBiome() {
super(Key.key("skyblock:dark_thicket"));
}

@Override
public Biome getBiome() {
return Biome.builder()
.effects(
BiomeEffects.builder()
.grassColor(TextColor.color(4742700))
.foliageColor(TextColor.color(1206296))
.waterColor(TextColor.color(2910286))
.build()
)
.build();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package net.swofty.type.skyblockgeneric.region.biome;

import net.kyori.adventure.key.Key;
import net.kyori.adventure.text.format.TextColor;
import net.minestom.server.world.biome.Biome;
import net.minestom.server.world.biome.BiomeEffects;
import net.swofty.type.skyblockgeneric.region.SkyBlockBiomeConfiguration;

public class JungleIslandBiome extends SkyBlockBiomeConfiguration {

public JungleIslandBiome() {
super(Key.key("skyblock:jungle_island"));
}

@Override
public Biome getBiome() {
return Biome.builder()
.effects(
BiomeEffects.builder()
.waterColor(TextColor.color(-12618012))
.build()
)
.build();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package net.swofty.type.skyblockgeneric.region.biome;

import net.kyori.adventure.key.Key;
import net.kyori.adventure.text.format.TextColor;
import net.minestom.server.world.biome.Biome;
import net.minestom.server.world.biome.BiomeEffects;
import net.swofty.type.skyblockgeneric.region.SkyBlockBiomeConfiguration;

public class SavannaWoodlandsBiome extends SkyBlockBiomeConfiguration {

public SavannaWoodlandsBiome() {
super(Key.key("skyblock:savanna_woodlands"));
}

@Override
public Biome getBiome() {
return Biome.builder()
.effects(
BiomeEffects.builder()
.waterColor(TextColor.color(-12618012))
.build()
)
.build();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package net.swofty.type.skyblockgeneric.region.biome;

import net.kyori.adventure.key.Key;
import net.kyori.adventure.text.format.TextColor;
import net.minestom.server.world.biome.Biome;
import net.minestom.server.world.biome.BiomeEffects;
import net.swofty.type.skyblockgeneric.region.SkyBlockBiomeConfiguration;

public class SpruceWoodsBiome extends SkyBlockBiomeConfiguration {

public SpruceWoodsBiome() {
super(Key.key("skyblock:spruce_woods"));
}

@Override
public Biome getBiome() {
return Biome.builder()
.effects(
BiomeEffects.builder()
.grassColor(TextColor.color(16777215))
.foliageColor(TextColor.color(14417889))
.waterColor(TextColor.color(11590647))
.build()
)
.build();
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package net.swofty.type.theend;

import net.kyori.adventure.key.Key;
import net.minestom.server.MinecraftServer;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.registry.RegistryKey;
import net.minestom.server.world.DimensionType;
import net.swofty.commons.CustomWorlds;
import net.swofty.commons.ServerType;
import net.swofty.commons.ServiceType;
Expand Down Expand Up @@ -84,6 +87,16 @@ public List<HypixelNPC> getNPCs() {
).toList());
}

@Override
public @Nullable RegistryKey<DimensionType> getDimensionType() {
return MinecraftServer.getDimensionTypeRegistry().register(
Key.key("skyblock:the_end"),
DimensionType.builder()
.skybox(DimensionType.Skybox.END)
.ambientLight(1f)
.build());
}

@Override
public List<ServiceToClient> getServiceRedisListeners() {
return List.of();
Expand Down