Skip to content

Commit 6e439c4

Browse files
committed
chore: guimaterial cleanup
1 parent 69b721f commit 6e439c4

17 files changed

Lines changed: 105 additions & 154 deletions

File tree

type.generic/src/main/java/net/swofty/type/generic/achievement/AchievementCategory.java

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,42 @@
22

33
import lombok.Getter;
44
import net.minestom.server.item.Material;
5+
import net.swofty.type.generic.gui.inventory.item.GUIMaterial;
56

67
@Getter
78
public enum AchievementCategory {
8-
BEDWARS("Bed Wars", "bedwars", Material.RED_BED),
9-
VAMPIREZ("VampireZ", "vampirez", Material.WITHER_SKELETON_SKULL),
10-
SKYWARS("SkyWars", "skywars", Material.ENDER_EYE),
11-
BLITZ_SG("Blitz SG", "blitzsg", Material.DIAMOND_SWORD),
12-
THE_WALLS("The Walls", "walls", Material.SAND),
13-
PAINTBALL("Paintball Warfare", "paintball", Material.SNOWBALL),
14-
ARCADE("Arcade Games", "arcade", Material.SLIME_BALL),
15-
QUAKECRAFT("Quakecraft", "quakecraft", Material.FIREWORK_ROCKET),
16-
MEGA_WALLS("Mega Walls", "megawalls", Material.SOUL_SAND),
17-
TNT_GAMES("The TNT Games", "tntgames", Material.TNT),
18-
ARENA_BRAWL("Arena Brawl", "arena", Material.BLAZE_POWDER),
19-
UHC_CHAMPIONS("UHC Champions", "uhc", Material.GOLDEN_APPLE),
20-
WARLORDS("Warlords", "warlords", Material.STONE_AXE),
21-
TURBO_KART_RACERS("Turbo Kart Racers", "gingerbread", Material.MINECART),
22-
SMASH_HEROES("Smash Heroes", "supersmash", Material.GOLDEN_APPLE),
23-
SPEED_UHC("Speed UHC", "speeduhc", Material.GOLDEN_CARROT),
24-
MURDER_MYSTERY("Murder Mystery", "murdermystery", Material.BOW),
25-
BUILD_BATTLE("Build Battle", "buildbattle", Material.CRAFTING_TABLE),
26-
DUELS("Duels", "duels", Material.FISHING_ROD),
27-
PIT("Pit", "pit", Material.DIRT),
28-
WOOL_GAMES("Wool Games", "woolgames", Material.WHITE_WOOL),
29-
COPS_AND_CRIMS("Cops and Crims", "copsandcrims", Material.IRON_BARS),
30-
GENERAL("General", "general", Material.NETHER_STAR),
31-
SKYBLOCK("SkyBlock", "skyblock", Material.PLAYER_HEAD);
9+
BEDWARS("Bed Wars", "bedwars", new GUIMaterial(Material.RED_BED)),
10+
VAMPIREZ("VampireZ", "vampirez", new GUIMaterial(Material.WITHER_SKELETON_SKULL)),
11+
SKYWARS("SkyWars", "skywars", new GUIMaterial(Material.ENDER_EYE)),
12+
BLITZ_SG("Blitz SG", "blitzsg", new GUIMaterial(Material.DIAMOND_SWORD)),
13+
THE_WALLS("The Walls", "walls", new GUIMaterial(Material.SAND)),
14+
PAINTBALL("Paintball Warfare", "paintball", new GUIMaterial(Material.SNOWBALL)),
15+
ARCADE("Arcade Games", "arcade", new GUIMaterial(Material.SLIME_BALL)),
16+
QUAKECRAFT("Quakecraft", "quakecraft", new GUIMaterial(Material.FIREWORK_ROCKET)),
17+
MEGA_WALLS("Mega Walls", "megawalls", new GUIMaterial(Material.SOUL_SAND)),
18+
TNT_GAMES("The TNT Games", "tntgames", new GUIMaterial(Material.TNT)),
19+
ARENA_BRAWL("Arena Brawl", "arena", new GUIMaterial(Material.BLAZE_POWDER)),
20+
UHC_CHAMPIONS("UHC Champions", "uhc", new GUIMaterial(Material.GOLDEN_APPLE)),
21+
WARLORDS("Warlords", "warlords", new GUIMaterial(Material.STONE_AXE)),
22+
TURBO_KART_RACERS("Turbo Kart Racers", "gingerbread", new GUIMaterial(Material.MINECART)),
23+
SMASH_HEROES("Smash Heroes", "supersmash", new GUIMaterial("d29a9f57267ed342a13e3ad3a240c4c5af5a1a36ab2de0d6c2a31af0e3cdde")),
24+
SPEED_UHC("Speed UHC", "speeduhc", new GUIMaterial(Material.GOLDEN_CARROT)),
25+
MURDER_MYSTERY("Murder Mystery", "murdermystery", new GUIMaterial(Material.BOW)),
26+
BUILD_BATTLE("Build Battle", "buildbattle", new GUIMaterial(Material.CRAFTING_TABLE)),
27+
DUELS("Duels", "duels", new GUIMaterial(Material.FISHING_ROD)),
28+
PIT("Pit", "pit", new GUIMaterial(Material.DIRT)),
29+
WOOL_GAMES("Wool Games", "woolgames", new GUIMaterial(Material.WHITE_WOOL)),
30+
COPS_AND_CRIMS("Cops and Crims", "copsandcrims", new GUIMaterial(Material.IRON_BARS)),
31+
GENERAL("General", "general", new GUIMaterial(Material.NETHER_STAR)),
32+
SKYBLOCK("SkyBlock", "skyblock", new GUIMaterial("d7cc6687423d0570d556ac53e0676cb563bbdd9717cd8269bdebed6f6d4e7bf8")),
33+
HOUSING("Housing", "housing", new GUIMaterial(Material.DARK_OAK_DOOR)),
34+
;
3235

3336
private final String displayName;
3437
private final String configKey;
35-
private final Material material;
38+
private final GUIMaterial material;
3639

37-
AchievementCategory(String displayName, String configKey, Material material) {
40+
AchievementCategory(String displayName, String configKey, GUIMaterial material) {
3841
this.displayName = displayName;
3942
this.configKey = configKey;
4043
this.material = material;

type.generic/src/main/java/net/swofty/type/generic/data/datapoints/DatapointToggles.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public enum ToggleType {
8787
HAS_SPOKEN_TO_FISH_MERCHANT(false),
8888
HAS_SPOKEN_TO_GOLD_FORGER(false),
8989
HAS_SPOKEN_TO_IRON_FORGER(false),
90+
HAS_SPOKEN_TO_GOLD_BLACKSMITH(false),
9091
HAS_SPOKEN_TO_FARM_MERCHANT(false),
9192
HAS_SPOKEN_TO_ADVENTURER(false),
9293
HAS_SPOKEN_TO_LUMBER_MERCHANT(false),

type.generic/src/main/java/net/swofty/type/generic/gui/inventory/ItemStackCreator.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import net.minestom.server.network.player.ResolvableProfile;
1212
import net.minestom.server.tag.Tag;
1313
import net.swofty.commons.StringUtility;
14+
import net.swofty.type.generic.gui.inventory.item.GUIMaterial;
1415
import org.json.JSONObject;
1516

1617
import java.util.*;
@@ -295,6 +296,18 @@ public static ItemStack.Builder getStackHead(String name, PlayerSkin skin, int a
295296
.amount(amount));
296297
}
297298

299+
public static ItemStack.Builder getUsingGUIMaterial(String name, GUIMaterial material, int amount, List<String> lore) {
300+
if (material.hasTexture()) {
301+
return ItemStackCreator.getStackHead(name, material.texture(), amount, lore);
302+
} else {
303+
return ItemStackCreator.getStack(name, material.material(), amount, lore);
304+
}
305+
}
306+
307+
public static ItemStack.Builder getUsingGUIMaterial(String name, GUIMaterial material, int amount, String... lore) {
308+
return getUsingGUIMaterial(name, material, amount, Arrays.asList(lore));
309+
}
310+
298311
/**
299312
* Replaces color codes in the given string with Minecraft color codes.
300313
*

type.goldmine/src/main/java/net/swofty/type/goldmine/npcs/villagers/VillagerBlacksmith.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,16 @@
22

33
import net.minestom.server.coordinate.Pos;
44
import net.minestom.server.entity.VillagerProfession;
5+
import net.swofty.type.generic.data.datapoints.DatapointToggles;
56
import net.swofty.type.generic.entity.npc.HypixelNPC;
67
import net.swofty.type.generic.entity.npc.configuration.VillagerConfiguration;
78
import net.swofty.type.generic.user.HypixelPlayer;
89
import net.swofty.type.skyblockgeneric.gui.inventories.GUIReforge;
10+
import net.swofty.type.skyblockgeneric.mission.missions.blacksmith.MissionTalkToBlacksmith;
911
import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer;
1012

13+
import java.util.stream.Stream;
14+
1115
public class VillagerBlacksmith extends HypixelNPC {
1216
public VillagerBlacksmith() {
1317
super(new VillagerConfiguration() {
@@ -36,6 +40,25 @@ public VillagerProfession profession() {
3640
@Override
3741
public void onClick(NPCInteractEvent e) {
3842
SkyBlockPlayer player = (SkyBlockPlayer) e.player();
39-
new GUIReforge().open(player);
43+
if (!player.getToggles().get(DatapointToggles.Toggles.ToggleType.HAS_SPOKEN_TO_GOLD_BLACKSMITH)) {
44+
setDialogue(player, "initial-hello").thenRun(() -> {
45+
player.getToggles().set(DatapointToggles.Toggles.ToggleType.HAS_SPOKEN_TO_GOLD_BLACKSMITH, true);
46+
new GUIReforge().open(player);
47+
});
48+
} else {
49+
new GUIReforge().open(player);
50+
}
51+
}
52+
53+
@Override
54+
public DialogueSet[] dialogues(HypixelPlayer player) {
55+
return Stream.of(
56+
DialogueSet.builder()
57+
.key("initial-hello").lines(new String[]{
58+
"I'm a friend of Blacksmith in the §bVillage",
59+
"My name?",
60+
"Blacksmith"
61+
}).build()
62+
).toArray(DialogueSet[]::new);
4063
}
4164
}

type.lobby/src/main/java/net/swofty/type/lobby/gui/GUIAchievementsMenu.java

Lines changed: 22 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -24,32 +24,31 @@ public void onOpen(InventoryGUIOpenEvent e) {
2424
HypixelPlayer player = e.player();
2525
PlayerAchievementHandler handler = player.getAchievementHandler();
2626

27-
set(createCategoryItem(1, AchievementCategory.GENERAL, Material.BOOK, handler));
28-
set(createCategoryItem(2, "Housing", Material.DARK_OAK_DOOR, handler, AchievementCategory.GENERAL));
29-
set(createCategoryItem(4, AchievementCategory.ARCADE, Material.SLIME_BALL, handler));
27+
set(createCategoryItem(1, AchievementCategory.GENERAL, handler));
28+
set(createCategoryItem(2, AchievementCategory.HOUSING, handler));
29+
set(createCategoryItem(3, AchievementCategory.SKYBLOCK, handler));
30+
set(createCategoryItem(4, AchievementCategory.ARCADE, handler));
3031
set(createClassicGamesItem(5, handler));
3132
set(createSeasonalItem(6, handler));
3233
set(createLegacyItem(7, handler));
3334

34-
set(createCategoryItem(3, AchievementCategory.SKYBLOCK, Material.PLAYER_HEAD, handler));
35+
set(createCategoryItem(19, AchievementCategory.TNT_GAMES, handler));
36+
set(createCategoryItem(20, AchievementCategory.BLITZ_SG, handler));
37+
set(createCategoryItem(21, AchievementCategory.MEGA_WALLS, handler));
38+
set(createCategoryItem(22, AchievementCategory.COPS_AND_CRIMS, handler));
39+
set(createCategoryItem(23, AchievementCategory.UHC_CHAMPIONS, handler));
40+
set(createCategoryItem(24, AchievementCategory.WARLORDS, handler));
41+
set(createCategoryItem(25, AchievementCategory.SKYWARS, handler));
3542

36-
set(createCategoryItem(19, AchievementCategory.TNT_GAMES, Material.TNT, handler));
37-
set(createCategoryItem(20, AchievementCategory.BLITZ_SG, Material.DIAMOND_SWORD, handler));
38-
set(createCategoryItem(21, AchievementCategory.MEGA_WALLS, Material.SOUL_SAND, handler));
39-
set(createCategoryItem(22, AchievementCategory.COPS_AND_CRIMS, Material.IRON_BARS, handler));
40-
set(createCategoryItem(23, AchievementCategory.UHC_CHAMPIONS, Material.GOLDEN_APPLE, handler));
41-
set(createCategoryItem(24, AchievementCategory.WARLORDS, Material.STONE_AXE, handler));
42-
set(createCategoryItem(25, AchievementCategory.SKYWARS, Material.ENDER_EYE, handler));
43+
set(createCategoryItem(28, AchievementCategory.SMASH_HEROES, handler));
44+
set(createCategoryItem(29, AchievementCategory.SPEED_UHC, handler));
45+
set(createCategoryItem(30, AchievementCategory.BEDWARS, handler));
46+
set(createCategoryItem(31, AchievementCategory.MURDER_MYSTERY, handler));
47+
set(createCategoryItem(32, AchievementCategory.BUILD_BATTLE, handler));
48+
set(createCategoryItem(33, AchievementCategory.DUELS, handler));
49+
set(createCategoryItem(34, AchievementCategory.PIT, handler));
4350

44-
set(createSmashHeroesItem(28, handler));
45-
set(createCategoryItem(29, AchievementCategory.SPEED_UHC, Material.GOLDEN_CARROT, handler));
46-
set(createCategoryItem(30, AchievementCategory.BEDWARS, Material.RED_BED, handler));
47-
set(createCategoryItem(31, AchievementCategory.MURDER_MYSTERY, Material.BOW, handler));
48-
set(createCategoryItem(32, AchievementCategory.BUILD_BATTLE, Material.CRAFTING_TABLE, handler));
49-
set(createCategoryItem(33, AchievementCategory.DUELS, Material.FISHING_ROD, handler));
50-
set(createCategoryItem(34, AchievementCategory.PIT, Material.DIRT, handler));
51-
52-
set(createCategoryItem(40, AchievementCategory.WOOL_GAMES, Material.WHITE_WOOL, handler));
51+
set(createCategoryItem(40, AchievementCategory.WOOL_GAMES, handler));
5352

5453
set(new GUIItem(45) {
5554
@Override
@@ -154,7 +153,7 @@ public ItemStack.Builder getItem(HypixelPlayer player) {
154153
updateItemStacks(getInventory(), player);
155154
}
156155

157-
private GUIClickableItem createCategoryItem(int slot, AchievementCategory category, Material material, PlayerAchievementHandler handler) {
156+
private GUIClickableItem createCategoryItem(int slot, AchievementCategory category, PlayerAchievementHandler handler) {
158157
return new GUIClickableItem(slot) {
159158
@Override
160159
public ItemStack.Builder getItem(HypixelPlayer player) {
@@ -165,9 +164,9 @@ public ItemStack.Builder getItem(HypixelPlayer player) {
165164
double unlockedPercent = total > 0 ? (unlocked * 100.0 / total) : 0;
166165
double pointsPercent = maxPoints > 0 ? (points * 100.0 / maxPoints) : 0;
167166

168-
return ItemStackCreator.getStack(
167+
return ItemStackCreator.getUsingGUIMaterial(
169168
"§a" + category.getDisplayName() + " Achievements",
170-
material,
169+
category.getMaterial(),
171170
1,
172171
"§7Unlocked: §b" + unlocked + "§7/§b" + total + " §8(" + (int) unlockedPercent + "%)",
173172
"§7Points: §e" + points + "§7/§e" + maxPoints + " §8(" + (int) pointsPercent + "%)",
@@ -183,35 +182,6 @@ public void run(InventoryPreClickEvent e, HypixelPlayer player) {
183182
};
184183
}
185184

186-
private GUIClickableItem createCategoryItem(int slot, String name, Material material, PlayerAchievementHandler handler, AchievementCategory fallbackCategory) {
187-
return new GUIClickableItem(slot) {
188-
@Override
189-
public ItemStack.Builder getItem(HypixelPlayer player) {
190-
int unlocked = handler.getUnlockedCount(fallbackCategory);
191-
int total = AchievementRegistry.getByCategory(fallbackCategory).size();
192-
int points = handler.getTotalPoints(fallbackCategory);
193-
int maxPoints = AchievementRegistry.getTotalPoints(fallbackCategory);
194-
double unlockedPercent = total > 0 ? (unlocked * 100.0 / total) : 0;
195-
double pointsPercent = maxPoints > 0 ? (points * 100.0 / maxPoints) : 0;
196-
197-
return ItemStackCreator.getStack(
198-
"§a" + name + " Achievements",
199-
material,
200-
1,
201-
"§7Unlocked: §b" + unlocked + "§7/§b" + total + " §8(" + (int) unlockedPercent + "%)",
202-
"§7Points: §e" + points + "§7/§e" + maxPoints + " §8(" + (int) pointsPercent + "%)",
203-
"",
204-
"§eClick to view achievements!"
205-
);
206-
}
207-
208-
@Override
209-
public void run(InventoryPreClickEvent e, HypixelPlayer player) {
210-
new GUIGameAchievements(fallbackCategory).open(player);
211-
}
212-
};
213-
}
214-
215185
private GUIItem createClassicGamesItem(int slot, PlayerAchievementHandler handler) {
216186
return new GUIItem(slot) {
217187
@Override
@@ -277,35 +247,6 @@ public ItemStack.Builder getItem(HypixelPlayer player) {
277247
};
278248
}
279249

280-
private GUIClickableItem createSmashHeroesItem(int slot, PlayerAchievementHandler handler) {
281-
return new GUIClickableItem(slot) {
282-
@Override
283-
public ItemStack.Builder getItem(HypixelPlayer player) {
284-
int unlocked = handler.getUnlockedCount(AchievementCategory.SMASH_HEROES);
285-
int total = AchievementRegistry.getByCategory(AchievementCategory.SMASH_HEROES).size();
286-
int points = handler.getTotalPoints(AchievementCategory.SMASH_HEROES);
287-
int maxPoints = AchievementRegistry.getTotalPoints(AchievementCategory.SMASH_HEROES);
288-
double unlockedPercent = total > 0 ? (unlocked * 100.0 / total) : 0;
289-
double pointsPercent = maxPoints > 0 ? (points * 100.0 / maxPoints) : 0;
290-
291-
return ItemStackCreator.getStackHead(
292-
"§aSmash Heroes Achievements",
293-
"d29a9f57267ed342a13e3ad3a240c4c5af5a1a36ab2de0d6c2a31af0e3cdde",
294-
1,
295-
"§7Unlocked: §b" + unlocked + "§7/§b" + total + " §8(" + (int) unlockedPercent + "%)",
296-
"§7Points: §e" + points + "§7/§e" + maxPoints + " §8(" + (int) pointsPercent + "%)",
297-
"",
298-
"§eClick to view achievements!"
299-
);
300-
}
301-
302-
@Override
303-
public void run(InventoryPreClickEvent e, HypixelPlayer player) {
304-
new GUIGameAchievements(AchievementCategory.SMASH_HEROES).open(player);
305-
}
306-
};
307-
}
308-
309250
@Override
310251
public boolean allowHotkeying() {
311252
return false;

type.lobby/src/main/java/net/swofty/type/lobby/gui/GUIChallengeAchievements.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public void run(InventoryPreClickEvent e, HypixelPlayer player) {
127127
set(new GUIItem(49) {
128128
@Override
129129
public ItemStack.Builder getItem(HypixelPlayer player) {
130-
return ItemStackCreator.getStack(
130+
return ItemStackCreator.getUsingGUIMaterial(
131131
"§aChallenge Achievements",
132132
category.getMaterial(),
133133
1,

type.lobby/src/main/java/net/swofty/type/lobby/gui/GUIGameAchievements.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public void run(InventoryPreClickEvent e, HypixelPlayer player) {
111111
set(new GUIItem(31) {
112112
@Override
113113
public ItemStack.Builder getItem(HypixelPlayer player) {
114-
return ItemStackCreator.getStack(
114+
return ItemStackCreator.getUsingGUIMaterial(
115115
"§aTotal Completion",
116116
category.getMaterial(),
117117
1,

type.lobby/src/main/java/net/swofty/type/lobby/gui/GUIGameQuests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void onOpen(InventoryGUIOpenEvent e) {
3737
set(new GUIItem(4) {
3838
@Override
3939
public ItemStack.Builder getItem(HypixelPlayer player) {
40-
return ItemStackCreator.getStack(
40+
return ItemStackCreator.getUsingGUIMaterial(
4141
"§a" + category.getDisplayName() + " Quests & Challenges",
4242
category.getMaterial(),
4343
1,

type.lobby/src/main/java/net/swofty/type/lobby/gui/GUISeasonalAchievements.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public void run(InventoryPreClickEvent e, HypixelPlayer player) {
131131
set(new GUIItem(49) {
132132
@Override
133133
public ItemStack.Builder getItem(HypixelPlayer player) {
134-
return ItemStackCreator.getStack(
134+
return ItemStackCreator.getUsingGUIMaterial(
135135
"§aTotal Completion",
136136
category.getMaterial(),
137137
1,

type.lobby/src/main/java/net/swofty/type/lobby/gui/GUITieredAchievements.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public void run(InventoryPreClickEvent e, HypixelPlayer player) {
9494
set(new GUIItem(49) {
9595
@Override
9696
public ItemStack.Builder getItem(HypixelPlayer player) {
97-
return ItemStackCreator.getStack(
97+
return ItemStackCreator.getUsingGUIMaterial(
9898
"§aTiered Achievements",
9999
category.getMaterial(),
100100
1,

0 commit comments

Comments
 (0)