Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
a5d9241
Initial Gold Mine Setup
aunncodes Dec 9, 2025
be3dcca
Add block mining
aunncodes Dec 11, 2025
fb0c9d3
Number tweaks
aunncodes Dec 12, 2025
c652935
feat: add hollow NPCs
ArikSquad Dec 12, 2025
735730d
feat: deep caverns
ArikSquad Dec 13, 2025
2897b54
feat: more npcs
ArikSquad Dec 13, 2025
09dc7c9
feat: dwarven and more mining stuff
ArikSquad Dec 13, 2025
b20b2bd
Merge pull request #1 from ArikSquad/feat/mining-islands
aunncodes Dec 14, 2025
f189523
Implement Lift Operator Mission
aunncodes Dec 15, 2025
96e0251
Add NewZone text
aunncodes Dec 15, 2025
ac3da24
Implement Configurations
aunncodes Dec 15, 2025
4a5a1df
conflict fix attempt
aunncodes Dec 15, 2025
bd03c1e
feat: more random mining stuff
ArikSquad Dec 15, 2025
6135794
feat: npc options
ArikSquad Dec 15, 2025
2d2814e
Merge remote-tracking branch 'origin/master' into feat/m-1
ArikSquad Dec 15, 2025
f362e8b
Merge pull request #2 from ArikSquad/feat/m-1
aunncodes Dec 16, 2025
b252858
feat: abiphones
ArikSquad Dec 16, 2025
839f5fd
Implement Gold Forger and Iron Forger, fix Lift Operator code to match
aunncodes Dec 18, 2025
6a00228
refactor: don't show title in NanoLimbo
ArikSquad Dec 18, 2025
335ecf5
refactor: update Deep Caverns regions
ArikSquad Dec 18, 2025
be78cf6
fix: bestiary center chat
ArikSquad Dec 18, 2025
acd6cd0
feat: implement Lift Operator requirements
ArikSquad Dec 18, 2025
07f0dd8
feat: single slot shop for Walter
ArikSquad Dec 18, 2025
0a9026b
feat: entity movement speed changes
ArikSquad Dec 18, 2025
fbad104
Merge remote-tracking branch 'aunncodes/featgoldminedeepcaverns' into…
ArikSquad Dec 18, 2025
163c5ac
refactor: add STANDARD_ITEM component to vanilla armor
ArikSquad Dec 18, 2025
9bcfb1c
feat: use an item's custom name if provided
ArikSquad Dec 18, 2025
d67df86
revert: lapis zombie speed calculation
ArikSquad Dec 19, 2025
d673939
revert: graveyard zombie speed
ArikSquad Dec 19, 2025
495a5cf
revert: skyblockmob
ArikSquad Dec 19, 2025
925f9c3
Merge pull request #3 from ArikSquad/feat/m-2
aunncodes Dec 19, 2025
b6749c1
feat: optimize bulk gui methods
ArikSquad Dec 19, 2025
ae2212c
feat: proper item custom name
ArikSquad Dec 19, 2025
c2a9084
feat: add requirement to deep caverns launch pads
ArikSquad Dec 19, 2025
2faa006
feat: disable NanoLimbo title and subtitle
ArikSquad Dec 19, 2025
ad6b87b
feat: npc lazy miner
ArikSquad Dec 19, 2025
f5de5dd
fix: use Lapis Ore instead of Lapis Lazuli
ArikSquad Dec 19, 2025
dc74651
fix: prepare Dwarven Mines
ArikSquad Dec 19, 2025
5889ed9
Merge pull request #4 from ArikSquad/feat/m-3
aunncodes Dec 19, 2025
8a77b66
Merge remote-tracking branch 'origin/master' into feat/m-mobs
ArikSquad Dec 20, 2025
f49968b
feat: more mobs
ArikSquad Dec 20, 2025
8889595
fix: emerald slime level is 5
ArikSquad Dec 20, 2025
9d32982
feat: rusty dialogue and menu start
ArikSquad Dec 20, 2025
20ed478
fix: color of Rusty Abiphone dialogue should be white
ArikSquad Dec 20, 2025
26db08c
Merge remote-tracking branch 'refs/remotes/origin/master' into feat/m…
ArikSquad Dec 20, 2025
2745805
fix: colors of TravelScrollIslands
ArikSquad Dec 20, 2025
81f500c
fix: use new center in StashReminer
ArikSquad Dec 20, 2025
73e766c
feat: lost pickaxe
ArikSquad Dec 20, 2025
7758b33
feat: Rusty's talk about lazy miners pickaxe
ArikSquad Dec 20, 2025
4380741
refactor: lazy miner's idle message
ArikSquad Dec 20, 2025
fe49352
feat: calendar
ArikSquad Dec 20, 2025
be24028
fix: correct time calculation
ArikSquad Dec 21, 2025
e9689d1
feat: new year event
ArikSquad Dec 21, 2025
2203ef2
fix: proper new year cake component
ArikSquad Dec 21, 2025
a20f2eb
feat: complete Calendar item
ArikSquad Dec 21, 2025
0296f9e
Merge remote-tracking branch 'refs/remotes/origin/master' into feat/c…
ArikSquad Dec 21, 2025
02fb6fe
Merge pull request #1 from ArikSquad/feat/calendar
ArikSquad Dec 21, 2025
df408fa
feat: incomplete mining
ArikSquad Dec 21, 2025
e81134c
feat(): dark auctions
Swofty-Developments Dec 22, 2025
291fff9
chore(): add uncommitted file
Swofty-Developments Dec 22, 2025
92c3ec8
chore(): add uncommitted file
Swofty-Developments Dec 22, 2025
514a540
Merge pull request #5 from ArikSquad/feat/m-mobs
Swofty-Developments Dec 22, 2025
0041188
Initial Gold Mine Setup
aunncodes Dec 9, 2025
710be68
Add block mining
aunncodes Dec 11, 2025
3b7237e
Number tweaks
aunncodes Dec 12, 2025
e82791c
feat: add hollow NPCs
ArikSquad Dec 12, 2025
33b2b8b
feat: deep caverns
ArikSquad Dec 13, 2025
8680f76
feat: more npcs
ArikSquad Dec 13, 2025
2b7ec63
feat: dwarven and more mining stuff
ArikSquad Dec 13, 2025
be1caa7
Implement Lift Operator Mission
aunncodes Dec 15, 2025
6b7f7be
Add NewZone text
aunncodes Dec 15, 2025
3baa773
Implement Configurations
aunncodes Dec 15, 2025
e03dee9
conflict fix attempt
aunncodes Dec 15, 2025
9566ce0
feat: more random mining stuff
ArikSquad Dec 15, 2025
7e63fa7
feat: npc options
ArikSquad Dec 15, 2025
34d33b7
feat: abiphones
ArikSquad Dec 16, 2025
615704e
refactor: don't show title in NanoLimbo
ArikSquad Dec 18, 2025
f2c28a9
refactor: update Deep Caverns regions
ArikSquad Dec 18, 2025
642e594
fix: bestiary center chat
ArikSquad Dec 18, 2025
4380671
feat: implement Lift Operator requirements
ArikSquad Dec 18, 2025
8210c4a
feat: single slot shop for Walter
ArikSquad Dec 18, 2025
0d14346
feat: entity movement speed changes
ArikSquad Dec 18, 2025
337be6a
Implement Gold Forger and Iron Forger, fix Lift Operator code to match
aunncodes Dec 18, 2025
52b08f7
refactor: add STANDARD_ITEM component to vanilla armor
ArikSquad Dec 18, 2025
a69a013
feat: use an item's custom name if provided
ArikSquad Dec 18, 2025
b6a06b8
revert: lapis zombie speed calculation
ArikSquad Dec 19, 2025
5e77d4b
revert: graveyard zombie speed
ArikSquad Dec 19, 2025
3b6e779
revert: skyblockmob
ArikSquad Dec 19, 2025
9d6d6c7
feat: optimize bulk gui methods
ArikSquad Dec 19, 2025
49c188c
feat: proper item custom name
ArikSquad Dec 19, 2025
8393809
feat: add requirement to deep caverns launch pads
ArikSquad Dec 19, 2025
f6b31e1
feat: disable NanoLimbo title and subtitle
ArikSquad Dec 19, 2025
4895939
feat: npc lazy miner
ArikSquad Dec 19, 2025
8dc2fb8
fix: use Lapis Ore instead of Lapis Lazuli
ArikSquad Dec 19, 2025
d4a2fcc
fix: prepare Dwarven Mines
ArikSquad Dec 19, 2025
fa3c23b
feat: more mobs
ArikSquad Dec 20, 2025
280592c
fix: emerald slime level is 5
ArikSquad Dec 20, 2025
4529789
feat: rusty dialogue and menu start
ArikSquad Dec 20, 2025
a139780
fix: color of Rusty Abiphone dialogue should be white
ArikSquad Dec 20, 2025
2ad167e
fix: colors of TravelScrollIslands
ArikSquad Dec 20, 2025
33a0eb7
fix: use new center in StashReminer
ArikSquad Dec 20, 2025
b76a6e9
feat: lost pickaxe
ArikSquad Dec 20, 2025
53f9fcc
feat: Rusty's talk about lazy miners pickaxe
ArikSquad Dec 20, 2025
c373fe0
refactor: lazy miner's idle message
ArikSquad Dec 20, 2025
421d7d6
feat: calendar
ArikSquad Dec 20, 2025
1e0f2d7
fix: correct time calculation
ArikSquad Dec 21, 2025
784c384
feat: new year event
ArikSquad Dec 21, 2025
cbe647a
fix: proper new year cake component
ArikSquad Dec 21, 2025
5b1d5b8
feat: complete Calendar item
ArikSquad Dec 21, 2025
905edba
Merge remote-tracking branch 'aunncodes/featgoldminedeepcaverns' into…
Swofty-Developments Dec 22, 2025
52d84ab
Merge branch 'featgoldminedeepcaverns' into feat/dwarven-mining
ArikSquad Dec 22, 2025
eb6d5b0
Merge pull request #6 from ArikSquad/feat/dwarven-mining
Swofty-Developments Dec 22, 2025
cedb1e8
chore(): fixed various problems
Swofty-Developments Dec 22, 2025
45520a9
feat(): fixed various problems
Swofty-Developments Dec 22, 2025
9dea904
feat(): fixed various problems
Swofty-Developments Dec 22, 2025
9ef2821
feat(): fixed various problems
Swofty-Developments Dec 22, 2025
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,7 @@ build/
### Islands ###
/configuration/skyblock/islands/hypixel_skyblock_island_template/
/configuration/skyblock/islands/hypixel_skyblock_hub/
/configuration/skyblock/islands/hypixel_skyblock_gold_mine/
/configuration/skyblock/islands/*
/configuration/hypixel_prototype_lobby/
.gradle/
190 changes: 190 additions & 0 deletions commons/src/main/java/net/swofty/commons/ChatUtility.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
package net.swofty.commons;

import lombok.Getter;

import java.util.List;

public class ChatUtility {

public enum FontInfo {
A('A', 5),
a('a', 5),
B('B', 5),
b('b', 5),
C('C', 5),
c('c', 5),
D('D', 5),
d('d', 5),
E('E', 5),
e('e', 5),
F('F', 5),
f('f', 4),
G('G', 5),
g('g', 5),
H('H', 5),
h('h', 5),
I('I', 3),
i('i', 1),
J('J', 5),
j('j', 5),
K('K', 5),
k('k', 4),
L('L', 5),
l('l', 1),
M('M', 5),
m('m', 5),
N('N', 5),
n('n', 5),
O('O', 5),
o('o', 5),
P('P', 5),
p('p', 5),
Q('Q', 5),
q('q', 5),
R('R', 5),
r('r', 5),
S('S', 5),
s('s', 5),
T('T', 5),
t('t', 4),
U('U', 5),
u('u', 5),
V('V', 5),
v('v', 5),
W('W', 5),
w('w', 5),
X('X', 5),
x('x', 5),
Y('Y', 5),
y('y', 5),
Z('Z', 5),
z('z', 5),
NUM_1('1', 5),
NUM_2('2', 5),
NUM_3('3', 5),
NUM_4('4', 5),
NUM_5('5', 5),
NUM_6('6', 5),
NUM_7('7', 5),
NUM_8('8', 5),
NUM_9('9', 5),
NUM_0('0', 5),
EXCLAMATION_POINT('!', 1),
AT_SYMBOL('@', 6),
NUM_SIGN('#', 5),
DOLLAR_SIGN('$', 5),
PERCENT('%', 5),
UP_ARROW('^', 5),
AMPERSAND('&', 5),
ASTERISK('*', 5),
LEFT_PARENTHESIS('(', 4),
RIGHT_PERENTHESIS(')', 4),
MINUS('-', 5),
UNDERSCORE('_', 5),
PLUS_SIGN('+', 5),
EQUALS_SIGN('=', 5),
LEFT_CURL_BRACE('{', 4),
RIGHT_CURL_BRACE('}', 4),
LEFT_BRACKET('[', 3),
RIGHT_BRACKET(']', 3),
COLON(':', 1),
SEMI_COLON(';', 1),
DOUBLE_QUOTE('"', 3),
SINGLE_QUOTE('\'', 1),
LEFT_ARROW('<', 4),
RIGHT_ARROW('>', 4),
DOUBLE_LEFT_ARROW('«', 5),
DOUBLE_RIGHT_ARROW('»', 5),
QUESTION_MARK('?', 5),
SLASH('/', 5),
BACK_SLASH('\\', 5),
LINE('|', 1),
TILDE('~', 5),
TICK('`', 2),
PERIOD('.', 1),
COMMA(',', 1),
SPACE(' ', 3),
DEFAULT('a', 4);

private final static int CENTER_PX = 320 / 2 - 6;
@Getter
private final char character;
@Getter
private final int length;

FontInfo(char character, int length) {
this.character = character;
this.length = length;
}

public static FontInfo getDefaultFontInfo(char c) {
for (FontInfo fontInfo : values()) {
if (fontInfo.getCharacter() == c) {
return fontInfo;
}
}
return DEFAULT;
}

public static String center(String message) {
return getCenterSpaces(message) + message;
}

public static List<String> centerLines(List<String> lines) {
return lines.stream().map(FontInfo::center).toList();
}

public static String getCenterSpaces(String message) {
if (message == null || message.isEmpty()) {
return "";
}
int messagePxSize = getLength(message);
int halvedMessageSize = messagePxSize / 2;
int toCompensate = CENTER_PX - halvedMessageSize;
int spaceLength = SPACE.getLength() + 1;
int compensated = 0;
StringBuilder sb = new StringBuilder();

while (compensated < toCompensate) {
sb.append(" ");
compensated += spaceLength;
}
return sb.toString();
}

public static String stripTokens(String input) {
return input.replaceAll("§.", "");
}

public static int getLength(String message) {
message = stripTokens(message);

double messagePxSize = 0;
boolean previousCode = false;
boolean bold = false;

for (char c : message.toCharArray()) {
if (c == '§') {
previousCode = true;

} else if (previousCode) {
previousCode = false;
bold = bold ? c != 'r' : c == 'l';

} else {
FontInfo fontInfo = getDefaultFontInfo(c);
messagePxSize += bold ? fontInfo.getBoldLength() + 1.5 : fontInfo.getLength() + 1;
}
}
return (int) messagePxSize;
}

public int getBoldLength() {
if (this == SPACE) {
return getLength();
}
return length + 1;
}
}

}
37 changes: 20 additions & 17 deletions commons/src/main/java/net/swofty/commons/CustomWorlds.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
package net.swofty.commons;

public enum CustomWorlds {
SKYBLOCK_ISLAND_TEMPLATE("hypixel_skyblock_island_template"),
SKYBLOCK_HUB("hypixel_skyblock_hub"),
SKYBLOCK_DUNGEON_HUB("hypixel_skyblock_dungeon_hub"),
PROTOTYPE_LOBBY("hypixel_prototype_lobby"),
BEDWARS_LOBBY("hypixel_bedwars_lobby"),
;
SKYBLOCK_ISLAND_TEMPLATE("hypixel_skyblock_island_template"),
SKYBLOCK_HUB("hypixel_skyblock_hub"),
SKYBLOCK_GOLD_MINE("hypixel_skyblock_gold_mine"),
SKYBLOCK_DEEP_CAVERNS("hypixel_skyblock_deep_caverns"),
SKYBLOCK_DWARVEN_MINES("hypixel_skyblock_dwarven_mines"),
SKYBLOCK_DUNGEON_HUB("hypixel_skyblock_dungeon_hub"),
PROTOTYPE_LOBBY("hypixel_prototype_lobby"),
BEDWARS_LOBBY("hypixel_bedwars_lobby"),
;

private final String folderName;
private final String folderName;

CustomWorlds(String folderName) {
this.folderName = folderName;
}
CustomWorlds(String folderName) {
this.folderName = folderName;
}

public String getFolderName() {
if (name().startsWith("SKYBLOCK_")) {
return "./configuration/skyblock/islands/" + folderName;
} else {
return "./configuration/" + folderName;
}
}
public String getFolderName() {
if (name().startsWith("SKYBLOCK_")) {
return "./configuration/skyblock/islands/" + folderName;
} else {
return "./configuration/" + folderName;
}
}
}
77 changes: 40 additions & 37 deletions commons/src/main/java/net/swofty/commons/ServerType.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,44 @@

@Getter
public enum ServerType {
SKYBLOCK_ISLAND(true),
SKYBLOCK_HUB(true),
SKYBLOCK_DUNGEON_HUB(true),
SKYBLOCK_THE_FARMING_ISLANDS(true),
PROTOTYPE_LOBBY(false),
BEDWARS_LOBBY(false),
BEDWARS_GAME(false),
;

private final boolean isSkyBlock;

ServerType(boolean isSkyBlock) {
this.isSkyBlock = isSkyBlock;
}

public static boolean isServerType(String type) {
for (ServerType a : values())
if (type.equalsIgnoreCase(a.name())) return true;

return false;
}

public String formatName() {
return StringUtility.toNormalCase(name());
}

public static ServerType getSkyblockServer(String name) {
if (!name.startsWith("SKYBLOCK_")) {
return valueOf("SKYBLOCK_" + name.toUpperCase());
} else {
return valueOf(name);
}
}

public String skyblockName() {
return name().replace("SKYBLOCK_", "");
}
SKYBLOCK_ISLAND(true),
SKYBLOCK_HUB(true),
SKYBLOCK_DUNGEON_HUB(true),
SKYBLOCK_THE_FARMING_ISLANDS(true),
SKYBLOCK_GOLD_MINE(true),
SKYBLOCK_DEEP_CAVERNS(true),
SKYBLOCK_DWARVEN_MINES(true),
PROTOTYPE_LOBBY(false),
BEDWARS_LOBBY(false),
BEDWARS_GAME(false),
;

private final boolean isSkyBlock;

ServerType(boolean isSkyBlock) {
this.isSkyBlock = isSkyBlock;
}

public static boolean isServerType(String type) {
for (ServerType a : values())
if (type.equalsIgnoreCase(a.name())) return true;

return false;
}

public static ServerType getSkyblockServer(String name) {
if (!name.startsWith("SKYBLOCK_")) {
return valueOf("SKYBLOCK_" + name.toUpperCase());
} else {
return valueOf(name);
}
}

public String formatName() {
return StringUtility.toNormalCase(name());
}

public String skyblockName() {
return name().replace("SKYBLOCK_", "");
}
}
1 change: 1 addition & 0 deletions commons/src/main/java/net/swofty/commons/ServiceType.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ public enum ServiceType {
API,
DATA_MUTEX,
PARTY,
DARK_AUCTION,
;
}
Loading