diff --git a/commons/src/generated/java/net/swofty/commons/skyblock/item/ItemType.java b/commons/src/generated/java/net/swofty/commons/skyblock/item/ItemType.java index cb7ae1bf5..ec8113c04 100644 --- a/commons/src/generated/java/net/swofty/commons/skyblock/item/ItemType.java +++ b/commons/src/generated/java/net/swofty/commons/skyblock/item/ItemType.java @@ -1,8 +1,6 @@ // AUTO-GENERATED FILE. DO NOT EDIT. package net.swofty.commons.skyblock.item; -import java.lang.Exception; -import java.lang.String; import net.minestom.server.item.Material; import net.swofty.commons.StringUtility; import org.jetbrains.annotations.Nullable; @@ -876,15 +874,15 @@ public enum ItemType { DIAMOND_BLOCK(Material.DIAMOND_BLOCK, Rarity.COMMON), - DIAMOND_BOOTS(Material.DIAMOND_BOOTS, Rarity.RARE), + DIAMOND_BOOTS(Material.DIAMOND_BOOTS, Rarity.COMMON), - DIAMOND_CHESTPLATE(Material.DIAMOND_CHESTPLATE, Rarity.RARE), + DIAMOND_CHESTPLATE(Material.DIAMOND_CHESTPLATE, Rarity.COMMON), - DIAMOND_HELMET(Material.DIAMOND_HELMET, Rarity.RARE), + DIAMOND_HELMET(Material.DIAMOND_HELMET, Rarity.COMMON), DIAMOND_HOE(Material.DIAMOND_HOE, Rarity.COMMON), - DIAMOND_LEGGINGS(Material.DIAMOND_LEGGINGS, Rarity.RARE), + DIAMOND_LEGGINGS(Material.DIAMOND_LEGGINGS, Rarity.COMMON), DIAMOND_MAGMAFISH(Material.PLAYER_HEAD, Rarity.COMMON), diff --git a/commons/src/main/java/net/swofty/commons/Songs.java b/commons/src/main/java/net/swofty/commons/Songs.java index ac78212ab..4ae3f2b3e 100644 --- a/commons/src/main/java/net/swofty/commons/Songs.java +++ b/commons/src/main/java/net/swofty/commons/Songs.java @@ -7,6 +7,7 @@ @Getter public enum Songs { WILDERNESS(Path.of("./configuration/skyblock/songs/wilderness.nbs")), + A_SILENT_MEMOIR(Path.of("./configuration/skyblock/songs/a_silent_memoir.nbs")) ; private final Path path; diff --git a/configuration/skyblock/Minestom.regions.csv b/configuration/skyblock/Minestom.regions.csv index 72221a46a..c43b10e32 100644 --- a/configuration/skyblock/Minestom.regions.csv +++ b/configuration/skyblock/Minestom.regions.csv @@ -83,3 +83,4 @@ fishing_outpost,FISHING_OUTPOST,92,69,-21,166,95,-79,SKYBLOCK_HUB museum_1,PLAYER_MUSEUM,25,78,-3,42,71,5,SKYBLOCK_HUB museum_2,PLAYER_MUSEUM,21,80,4,38,70,19,SKYBLOCK_HUB museum_3,PLAYER_MUSEUM,45,84,24,13,65,53,SKYBLOCK_HUB +tangleburgs_path,TANGLEBURGS_PATH,-533,107,-32,-560,122,20,SKYBLOCK_GALATEA diff --git a/configuration/skyblock/songs/SONGS.md b/configuration/skyblock/songs/SONGS.md new file mode 100644 index 000000000..e63c6aa38 --- /dev/null +++ b/configuration/skyblock/songs/SONGS.md @@ -0,0 +1,7 @@ +# A Silent Memoir + +"[skyblock] A Silent Memoir (Galatea)" by Huangwakawaii is licensed under CC BY-SA 4.0 +(https://creativecommons.org/licenses/by-sa/4.0) +https://noteblock.world/song/L0PqKZeKpk + +Originally composed by ShinkoNet for the Hypixel Network diff --git a/configuration/skyblock/songs/a_silent_memoir.nbs b/configuration/skyblock/songs/a_silent_memoir.nbs new file mode 100644 index 000000000..e87d7ade3 Binary files /dev/null and b/configuration/skyblock/songs/a_silent_memoir.nbs differ diff --git a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/gui/GUILeaderboardSettings.java b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/gui/GUILeaderboardSettings.java index fb32b3b52..89f896016 100644 --- a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/gui/GUILeaderboardSettings.java +++ b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/gui/GUILeaderboardSettings.java @@ -167,7 +167,7 @@ public ItemStack.Builder getItem(HypixelPlayer player) { @Override public void run(InventoryPreClickEvent e, HypixelPlayer player) { - player.sendMessage("§cThis feature is coming soon!"); + player.notImplemented(); } }); diff --git a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/item/impl/BedWarsMenu.java b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/item/impl/BedWarsMenu.java index 716b1a7f8..9b27c7ded 100644 --- a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/item/impl/BedWarsMenu.java +++ b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/item/impl/BedWarsMenu.java @@ -1,13 +1,12 @@ package net.swofty.type.bedwarslobby.item.impl; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.event.item.ItemDropEvent; import net.minestom.server.event.trait.CancellableEvent; import net.minestom.server.event.trait.PlayerInstanceEvent; import net.minestom.server.item.ItemStack; import net.minestom.server.item.Material; import net.swofty.type.generic.gui.inventory.ItemStackCreator; +import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.lobby.item.LobbyItem; public class BedWarsMenu extends LobbyItem { @@ -29,8 +28,7 @@ public void onItemDrop(ItemDropEvent event) { @Override public void onItemInteract(PlayerInstanceEvent event) { ((CancellableEvent) event).setCancelled(true); - event.getPlayer().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + ((HypixelPlayer) event.getPlayer()).notImplemented(); } } diff --git a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/item/impl/Collectibles.java b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/item/impl/Collectibles.java index a79abd450..4e385c8b9 100644 --- a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/item/impl/Collectibles.java +++ b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/item/impl/Collectibles.java @@ -1,13 +1,12 @@ package net.swofty.type.bedwarslobby.item.impl; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.event.item.ItemDropEvent; import net.minestom.server.event.trait.CancellableEvent; import net.minestom.server.event.trait.PlayerInstanceEvent; import net.minestom.server.item.ItemStack; import net.minestom.server.item.Material; import net.swofty.type.generic.gui.inventory.ItemStackCreator; +import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.lobby.item.LobbyItem; public class Collectibles extends LobbyItem { @@ -29,8 +28,7 @@ public void onItemDrop(ItemDropEvent event) { @Override public void onItemInteract(PlayerInstanceEvent event) { ((CancellableEvent) event).setCancelled(true); - event.getPlayer().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + ((HypixelPlayer) event.getPlayer()).notImplemented(); } } diff --git a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCDoormanDave.java b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCDoormanDave.java index f45012116..4c691fc8f 100644 --- a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCDoormanDave.java +++ b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCDoormanDave.java @@ -1,7 +1,5 @@ package net.swofty.type.bedwarslobby.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -44,7 +42,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { - event.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + event.player().notImplemented(); } } diff --git a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCDream.java b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCDream.java index 463bb4524..c53f56477 100644 --- a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCDream.java +++ b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCDream.java @@ -1,7 +1,5 @@ package net.swofty.type.bedwarslobby.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.commons.ServerType; import net.swofty.commons.StringUtility; @@ -9,13 +7,12 @@ import net.swofty.proxyapi.ProxyInformation; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; import net.swofty.type.generic.user.HypixelPlayer; import java.util.ArrayList; import java.util.List; -import net.swofty.type.generic.event.custom.NPCInteractEvent; - public class NPCDream extends HypixelNPC { private static List cacheServers = new ArrayList<>(); private static long lastCacheTime = 0; @@ -71,7 +68,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { event.player().sendMessage("§7You can dream about this :)"); - event.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + event.player().notImplemented(); } } diff --git a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHolidayMan.java b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHolidayMan.java index 83c18a860..3b8ebe362 100644 --- a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHolidayMan.java +++ b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHolidayMan.java @@ -1,13 +1,10 @@ package net.swofty.type.bedwarslobby.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; -import net.swofty.type.generic.user.HypixelPlayer; - import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; public class NPCHolidayMan extends HypixelNPC { @@ -46,7 +43,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { - event.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + event.player().notImplemented(); } } diff --git a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHypixelStore.java b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHypixelStore.java index a535b1877..d464d159a 100644 --- a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHypixelStore.java +++ b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHypixelStore.java @@ -1,13 +1,10 @@ package net.swofty.type.bedwarslobby.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; -import net.swofty.type.generic.user.HypixelPlayer; - import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; public class NPCHypixelStore extends HypixelNPC { @@ -42,7 +39,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { - event.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + event.player().notImplemented(); } } diff --git a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLapisMiner.java b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLapisMiner.java index 3164cc23c..206e5936a 100644 --- a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLapisMiner.java +++ b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLapisMiner.java @@ -1,14 +1,11 @@ package net.swofty.type.deepcaverns.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; -import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; -import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; - import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; +import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; public class NPCLapisMiner extends HypixelNPC { @@ -44,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { SkyBlockPlayer player = (SkyBlockPlayer) event.player(); - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); } } \ No newline at end of file diff --git a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRedstoneMiner.java b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRedstoneMiner.java index d42d681f0..c057f33a9 100644 --- a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRedstoneMiner.java +++ b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRedstoneMiner.java @@ -1,14 +1,11 @@ package net.swofty.type.deepcaverns.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; -import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; -import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; - import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; +import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; public class NPCRedstoneMiner extends HypixelNPC { @@ -44,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { SkyBlockPlayer player = (SkyBlockPlayer) event.player(); - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); } } \ No newline at end of file diff --git a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRhys.java b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRhys.java index defb3ddcc..5b4393a61 100644 --- a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRhys.java +++ b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRhys.java @@ -1,14 +1,11 @@ package net.swofty.type.deepcaverns.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; -import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; -import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; - import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; +import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; public class NPCRhys extends HypixelNPC { @@ -44,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { SkyBlockPlayer player = (SkyBlockPlayer) event.player(); - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); } } \ No newline at end of file diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBubu.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBubu.java index dc65bb841..20a2b328d 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBubu.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBubu.java @@ -1,14 +1,11 @@ package net.swofty.type.dwarvenmines.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; -import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; -import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; - import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; +import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; public class NPCBubu extends HypixelNPC { @@ -44,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { SkyBlockPlayer player = (SkyBlockPlayer) event.player(); - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); } } \ No newline at end of file diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBulvar.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBulvar.java index c3545bc4f..7ef704128 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBulvar.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBulvar.java @@ -1,14 +1,11 @@ package net.swofty.type.dwarvenmines.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; -import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; -import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; - import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; +import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; public class NPCBulvar extends HypixelNPC { @@ -44,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { SkyBlockPlayer player = (SkyBlockPlayer) event.player(); - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); } } \ No newline at end of file diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCLiftOperator.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCLiftOperator.java index 6800172a8..6c64882d8 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCLiftOperator.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCLiftOperator.java @@ -1,15 +1,12 @@ package net.swofty.type.dwarvenmines.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; -import net.swofty.type.generic.event.custom.NPCInteractEvent; - public class NPCLiftOperator extends HypixelNPC { public NPCLiftOperator() { @@ -44,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { SkyBlockPlayer player = (SkyBlockPlayer) event.player(); - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); } } \ No newline at end of file diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCPuzzler.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCPuzzler.java index 362e5a1b4..85134d3e4 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCPuzzler.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCPuzzler.java @@ -1,15 +1,12 @@ package net.swofty.type.dwarvenmines.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; -import net.swofty.type.generic.event.custom.NPCInteractEvent; - public class NPCPuzzler extends HypixelNPC { public NPCPuzzler() { @@ -44,8 +41,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { SkyBlockPlayer player = (SkyBlockPlayer) event.player(); - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); } } \ No newline at end of file diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/TypeGalateaLoader.java b/type.galatea/src/main/java/net/swofty/type/galatea/TypeGalateaLoader.java index 934470259..42d746ef5 100644 --- a/type.galatea/src/main/java/net/swofty/type/galatea/TypeGalateaLoader.java +++ b/type.galatea/src/main/java/net/swofty/type/galatea/TypeGalateaLoader.java @@ -5,6 +5,7 @@ import net.swofty.commons.CustomWorlds; import net.swofty.commons.ServerType; import net.swofty.commons.ServiceType; +import net.swofty.commons.Songs; import net.swofty.proxyapi.redis.ProxyToClient; import net.swofty.proxyapi.redis.ServiceToClient; import net.swofty.type.galatea.tab.GalateaServerModule; @@ -39,6 +40,11 @@ public void afterInitialize(MinecraftServer server) { } + @Override + public Songs getIslandSong() { + return Songs.A_SILENT_MEMOIR; + } + @Override public LoaderValues getLoaderValues() { return new LoaderValues( diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAlan.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAlan.java new file mode 100644 index 000000000..fb4ec08c1 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAlan.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCAlan extends HypixelNPC { + + public NPCAlan() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bAlan", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "m4+5XcihPvzB9ui4Putmn7dSHlIR7Fm0LRA7dB2vC+6ZgD9LHVp+JB6W5xlET0XuJKt+fbRdD/QYpkxtfpcIQOYdQgUFlpHsxhM9qyUtStNh3XdaJmInojmgWAVpbPLcVbaAwC5vKs3VRaygMwIwDkRmIZah2JDODFQr341D6FWIzE2WW+3qi2cd8FAcBaWLcwZxcFcVB6c7Q/W3tu38rUl39LlWvC2ETzH8iwfQzpbJ4tyYFAglFQjwtvP1X7yex5Yw+4CsZPQHS8GQzUCGAuQJgsVRCg0ZFM/3C1PrOU9pS7qYTj8zRks2yja7z0D3MYtR2o47Tl7sM2f1QEcPEBUCFFZA0+03dze/sxHwiDhSAKGaqU8uQWjDcaT2+dtJepzzYqvg3o7Aa9okrARpfelWSuACEnl8Zv3SVOAs3HS98KUjQ0HysZhMfq6SlYKxxhSIu3hOcRSnE5NE8M8xR+eBvCde+nmKs0uhhDi/yZ2+WN3S81LwECSrPAGsGtQjvhRi21ITnx6wGYXwhRgecy76UVTN3qaf9UvJbCV+tQq7PykIOs7n8mnHNKkW/j4gd1RRu9SqOG+2Ntym21TpYmjXVdvUWkMaFZjMV9N9FryDUfq83Fc3XoztonjpEyD8lrwsX3Fa5ypAmmpM9hcK59dkA8H624yReTx0TZ1XDuA="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTMyOTA0MDEzMSwKICAicHJvZmlsZUlkIiA6ICJiOThjNGFkOGM2MjY0NGYxOWUzYzhhZTE0ZThhMDI1OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJ5cnRlZGR5IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2IzZjFhNGYwMGNiYjBiMDRhNzgwZjQ3MjBmZGM1Y2NjNzY4MjhhMTI5YmU5NTBkNTZlNWY3OWI1NDQ1M2ZlNTEiCiAgICB9CiAgfQp9"; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-625.5, 116, -36.5, 0, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAlbert.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAlbert.java new file mode 100644 index 000000000..45363b868 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAlbert.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCAlbert extends HypixelNPC { + + public NPCAlbert() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bAlbert", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "bfmPL4+s1uE93bOGHyLlZahoF+cL/AOsDG3/IQEMwZYz+PxF4J93NOoS+cA2lRlWtKC6GFaR1wmrWPdT9viQlVSsSilFH4v7HNUoIq+s2ejhyo4R5L8cxMlfmXLrhHlE/7g8M+c1+o/G1pA9T/3o7AAS/T1W7I7PIa7/FMgUBg9xztITbFmzvFnbeDX0d39r4yOcTlFMLF/bqZJVfwlxvMhUoKfkEmJgFW3kBTM9arsUIrJmo1D8iwCV+Tggc1Elpad5XL/9ZoTjgqIIkBqkWPoC6gyPyC5ciyoJjxEi8k8YPAoM0f0CKzh8c7HaEp9lwQLkgN53Jh2dOIuRkzbUJc/3eui//4YihXfDkz4AUAMDURPQJAGxflJEiG/6ItcqVzFdewiaaucclRtBAqOkLHzxsb7IIbuTYOhlVSCJkvRUfqVUxte+ybSmIV0mBO/jOElRZuaKFdYe0q70ZZoYOATSUbMZ4KCWSBKDse5nmX5TC4yNOIP1BwAT7l60Zndk8WsnFm2hoUYXI/85KOXyqFVSfeA97GESyB5tXZUvGFX6F4EC0F+gxB1RKpuVdAjn6CePEZPiRDIz+JrqK43w3/pKWZYCbnaR1G63hHQaQWJe/Z7w/nrGLHEHXD+9d8lF9nxabrDaf+vJ9UAlD8U5PzoEFh5Zj/XmwQ0xaktVzyM="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTU5ODk4OTAzNjA5MSwKICAicHJvZmlsZUlkIiA6ICJkODAwZDI4MDlmNTE0ZjkxODk4YTU4MWYzODE0Yzc5OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJ0aGVCTFJ4eCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS84NmU3YmNmYzA1NjkwOGNlMjY3MDYyMTQwYzUzNDM1MDNmYjA4YmRlODFkYTk5NjJhMWI2NjQ5YWE5NTkxMDk4IgogICAgfQogIH0KfQ=="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-592.5, 113, 8.5, -180, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAmaury.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAmaury.java new file mode 100644 index 000000000..0d5f97b7c --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAmaury.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCAmaury extends HypixelNPC { + + public NPCAmaury() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bAmaury", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "m4+5XcihPvzB9ui4Putmn7dSHlIR7Fm0LRA7dB2vC+6ZgD9LHVp+JB6W5xlET0XuJKt+fbRdD/QYpkxtfpcIQOYdQgUFlpHsxhM9qyUtStNh3XdaJmInojmgWAVpbPLcVbaAwC5vKs3VRaygMwIwDkRmIZah2JDODFQr341D6FWIzE2WW+3qi2cd8FAcBaWLcwZxcFcVB6c7Q/W3tu38rUl39LlWvC2ETzH8iwfQzpbJ4tyYFAglFQjwtvP1X7yex5Yw+4CsZPQHS8GQzUCGAuQJgsVRCg0ZFM/3C1PrOU9pS7qYTj8zRks2yja7z0D3MYtR2o47Tl7sM2f1QEcPEBUCFFZA0+03dze/sxHwiDhSAKGaqU8uQWjDcaT2+dtJepzzYqvg3o7Aa9okrARpfelWSuACEnl8Zv3SVOAs3HS98KUjQ0HysZhMfq6SlYKxxhSIu3hOcRSnE5NE8M8xR+eBvCde+nmKs0uhhDi/yZ2+WN3S81LwECSrPAGsGtQjvhRi21ITnx6wGYXwhRgecy76UVTN3qaf9UvJbCV+tQq7PykIOs7n8mnHNKkW/j4gd1RRu9SqOG+2Ntym21TpYmjXVdvUWkMaFZjMV9N9FryDUfq83Fc3XoztonjpEyD8lrwsX3Fa5ypAmmpM9hcK59dkA8H624yReTx0TZ1XDuA="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTMyOTA0MDEzMSwKICAicHJvZmlsZUlkIiA6ICJiOThjNGFkOGM2MjY0NGYxOWUzYzhhZTE0ZThhMDI1OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJ5cnRlZGR5IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2IzZjFhNGYwMGNiYjBiMDRhNzgwZjQ3MjBmZGM1Y2NjNzY4MjhhMTI5YmU5NTBkNTZlNWY3OWI1NDQ1M2ZlNTEiCiAgICB9CiAgfQp9"; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-578.5, 114, 2, 104, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAuryon.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAuryon.java new file mode 100644 index 000000000..9429adf02 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCAuryon.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCAuryon extends HypixelNPC { + + public NPCAuryon() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bAuryon", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "iYftCZb0NhyhgQ5IQbFNTOBiUN45AwrJrxr9W0mukvrW0bH+0xuOnl7Oe0GXjyeE75aHy0dJZnc6aQCqg0Poa7c6OMkuJxP60GT6a1weatQNBMm0Z8uK/o0dGZU5pJG7y98nzAJFpxXwhpgJucKN46RLjoOcqHKV49rap2wINyR2Jf5DbmqOkp1ktBKPbmUFZrc5kcK1qIlB4jX+0ek0GOiLkjv7pukYleg8ZYoJ10bMGQfJtZcjwC9e+4WGKvi+559X9I4il/jyCilYQMTCuopEkabfUuY68p4nG3dSz6MxW8H1jDJEaz9rMquEw2QlS3ctGF7Ij16ip9Dd1YATfezARvdmvhMMmwRnEZP1eASs6/blQua+bUKwp5GpH3hN+IL0m9fkVhgBmZSF+ILeiQpPxG/nny1YFgIZcOxXH2c7HrBBRgb+hrbm6dyHkosTYSxXcVWXCfS2vxrp+tNs93Ki4flzi3P+flEEJnwG/Eo6gj2GWbAgN/QOuxL96hs4sQf4krQu0Hhvz0eq2Dm29S1xEa320OC6HB1r514ehaSTDhM1ayZLrHTffp5rYCzvS3o7fpWwP7DfhNBcPUsXggh5oT+nkmSPZSVKVLH+ZtxWEtn+gNDfLqGBtNaW05YrcemnWGvY5Qg8t98LFYU4ZLrBbdGZmgful8BjLPWJkk4="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTMyODk0OTI0MiwKICAicHJvZmlsZUlkIiA6ICI0MzFhMmRlYTQ4YTE0NTMxYjEyZDU5MzY0NDUxNmIyNSIsCiAgInByb2ZpbGVOYW1lIiA6ICJpQ2FwdGFpbk5lbW8iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA3ZjE2NTdlYmZlZGQwYzM0NzMwYmU3ZDg2M2M1YWFiNjRmYWE0Mjk4MDhhYTEwZTk1MmYwNGZlYjZhMjdiOCIKICAgIH0KICB9Cn0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-557.5, 111, 48.5, 135, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCBankerBonsai.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCBankerBonsai.java new file mode 100644 index 000000000..82f98ae6f --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCBankerBonsai.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCBankerBonsai extends HypixelNPC { + + public NPCBankerBonsai() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"Banker Bonsai", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "s+PmKKWQkmtdmuJ10xcGJttkmzxGBSnGcWI1S4T9G5x81kOHqrICXEZHjyvqDcpYbSAliW4aJH45+1fiD40rcbnLtocKGNgju36W581+Zsi67PRhQgpz4i9RUR0juvvC6sm8B7ZA1YrZ2CfXRFi2REhMNher8TNBD02N6f0VGEQYJXwIpRM2XpSCeu0XRPi8umpwETUbUgt0EHAvL7gCjy8Dra/gTSdCcnx9pARr76ZGpvFsiAf3AxYktUhUz3PD1MsY5x61GS6+2SM/ywInBHAFZLfqFGUvtSuFKD48VafGakoVGw3U+Wo30YeusFKhiDUBhi+3pAJOTNi0QQAYmE2Jkqcmgp1QlDZFxRRMKgzFUE3Rj2CLegPb48eDGNOg8WKU6bmzMz8/4qswIFG/zkntATKB6x6EPJOKpVGv1S1V4rQQeuAP1EgYqFizrJZpBBuhw1KRalaMQ9JUbHnesoivPFu21mzJ0srULdA1OEputr+38/iSThr01DODv0v0zptdIpPVv8n9ELLAn2UoAJyYCkyGkxfx3bcBHebdvNcjMAN9d3ZfvGPr8Kq2IuUljHms4jtM2YFg1XLZu4MKuSKfjQfyF7nmzuSB+LMrGqAdYli90/cqmRxJh6RlttRmUVisUCK6neY//gOJGBb/+DDcGE9IN6T1Z3VebyciiIo="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxODkxODMyODc4NywKICAicHJvZmlsZUlkIiA6ICIyNGFjYWZhMmVlNDA0ZGMwYmRjMjViNWVjNjgxZmRjZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJXaWxsZXJtaW5hRDM0dGgiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWM3OGI5NDU5ZjhjNjRjOWQ2MmNjMjI3MjI0YzZkYjdmYTMxY2IzMWNiZTE0NDkwN2UxMGJiNzBlYjE3YjYwZiIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-598.719, 116, -37.312, 6, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCBoris.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCBoris.java new file mode 100644 index 000000000..826b8147c --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCBoris.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCBoris extends HypixelNPC { + + public NPCBoris() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bBoris", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "m4+5XcihPvzB9ui4Putmn7dSHlIR7Fm0LRA7dB2vC+6ZgD9LHVp+JB6W5xlET0XuJKt+fbRdD/QYpkxtfpcIQOYdQgUFlpHsxhM9qyUtStNh3XdaJmInojmgWAVpbPLcVbaAwC5vKs3VRaygMwIwDkRmIZah2JDODFQr341D6FWIzE2WW+3qi2cd8FAcBaWLcwZxcFcVB6c7Q/W3tu38rUl39LlWvC2ETzH8iwfQzpbJ4tyYFAglFQjwtvP1X7yex5Yw+4CsZPQHS8GQzUCGAuQJgsVRCg0ZFM/3C1PrOU9pS7qYTj8zRks2yja7z0D3MYtR2o47Tl7sM2f1QEcPEBUCFFZA0+03dze/sxHwiDhSAKGaqU8uQWjDcaT2+dtJepzzYqvg3o7Aa9okrARpfelWSuACEnl8Zv3SVOAs3HS98KUjQ0HysZhMfq6SlYKxxhSIu3hOcRSnE5NE8M8xR+eBvCde+nmKs0uhhDi/yZ2+WN3S81LwECSrPAGsGtQjvhRi21ITnx6wGYXwhRgecy76UVTN3qaf9UvJbCV+tQq7PykIOs7n8mnHNKkW/j4gd1RRu9SqOG+2Ntym21TpYmjXVdvUWkMaFZjMV9N9FryDUfq83Fc3XoztonjpEyD8lrwsX3Fa5ypAmmpM9hcK59dkA8H624yReTx0TZ1XDuA="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTMyOTA0MDEzMSwKICAicHJvZmlsZUlkIiA6ICJiOThjNGFkOGM2MjY0NGYxOWUzYzhhZTE0ZThhMDI1OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJ5cnRlZGR5IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2IzZjFhNGYwMGNiYjBiMDRhNzgwZjQ3MjBmZGM1Y2NjNzY4MjhhMTI5YmU5NTBkNTZlNWY3OWI1NDQ1M2ZlNTEiCiAgICB9CiAgfQp9"; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-684.5, 129, 64.5, -180, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCBrian.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCBrian.java new file mode 100644 index 000000000..4cc7954c0 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCBrian.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCBrian extends HypixelNPC { + + public NPCBrian() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§3Brian", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "WMwIZxxswxyvaQNLOE9y4OwBoaBPiy9wu8CZ9zmYfC8ZspOR7JJTTSJc4ujkHzlijTqC9tLmPKzFKX0gpQj+pDnr3Wm9ZdC/AYhvpAjy+msQmOUba5RU5qQgtI7NaYn88bWcpThyfILRZuHNfF1HXF/j1XkeV1xALV99Qe0EepthYytFu2tz5E0WvLn0q92037cwDjKDTQDp1sgRXnuHtpVIaorSAzOhdYQwPu5kJy7Ksd+VN/f+0mL5jyERfO9Nh4YJDn6JWomrHtq7vtGFUD7M8K/k2nJN2nk4nyE0yR/hVS/gUnOuAmop5ayQOOJCiSdjnT5cS+mLyotCb1xa6WZjK3AcB/1dJg0vtALxVZ5hdk/4bKpqccNR8uiP+kpW7aKF1LdpvQSshXlKMkrBCz2pvbgtOOy98OXnTXeF6cTYsu4pqaVQHmpILwCHx6fBxBaR7+nEr2AWIsNkt0iWnSWusKLzkw7fEeNiUnWlClB/LCO8/AOcdg3G6Zxn9vUKceG+1BcOOsJ9ObUL3ds4KQYkBUUzTfkBBJSZb/A6X0oBdSWpwmYirJEc5B45kx83Iz1ebS93FM8Iypmetd1lCr+gDrOe540HH5W1fLpnZTmIRtwx5788lFcpBVhwjJ1dXIwWI8Fr5DoY/3seBbdq0zLDmY33P3hNXly028PNqDQ="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTc0MTA5ODk1NjU1MSwKICAicHJvZmlsZUlkIiA6ICJlNzdlMDRhNmMyMzg0MGVmODZlOGViOWY4NGQ3OWVjNSIsCiAgInByb2ZpbGVOYW1lIiA6ICJMT1JJU0pUMTYiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmNlNTI0ZDE0ZjZmYmU3NjRmODdmYjNhMjUxMDkzMzVlNDk0NjA2ZjlkZGQxMTkzZWIwNGIwMWJlOWQ5MWYxNyIKICAgIH0KICB9Cn0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-628.5, 117, 47.5, -45, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCDavidHunterborough.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCDavidHunterborough.java new file mode 100644 index 000000000..a982b8cb9 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCDavidHunterborough.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCDavidHunterborough extends HypixelNPC { + + public NPCDavidHunterborough() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bDavid Hunterborough", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "CWc7tWqcRck36iSMZdxhiLy+eZW3PGMhFUpl7iFwEPF3oh0gWyo8olFVhdh00pRIeDLPBZ+3rEUT7CidBrhrlEYhOA2+eLSVkArfG9PaBIMR381Ua5G8ZASGjA9kdJ4IH1vU/3jH4iDZ52xr9K119uWdYouyPVVy3zKZ51zPYqCpOpcjNf9JfSMBMvNHQ4wpCc0Pwea/NDl/eQjbdhhGt8fPwvaoBkXB9YBlOHluVfk0BVOV4BuUafmHQ/QZWfXYkMm7U0FDJIhSiiBjxid17NEIUZrOMfsxlQ9G6TKfNp9bKsFoyYnu7tUfLuzrqk5vRXMvcYf7ZTc3DexISOLfx4gu9jkHTMGsdRuri8QvZSN+KIqhJn52/pYIkRtootarB2o/fBYI8nr7BEw0Anm2iDZnbZj0Rkxpxcdl6DLyukp974x+7Ft6b3n/UA/XYBU5HUpdqwBCWfPIWPFPTdkxeFFupdwJjwfXngI/8iZ6n7YTRfrOc1DahB19nRGkMcIyN1vmj243OATtk8Xf/U7M9wzjEXM4ELuLs7XnqWhb03cApjyKDUmyctK8QF5jX8QDrTxQzZnk+nxNXQ8XBlfaO6D4escHp662MTQv2EwO/vP9Lx1Vr3xDnWQT94OW0RK9XQOeh3S41Zh872FU9RrNTL08+llLMkCAMQZkdxV1u3o="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxNzY1NTMyMDEyMCwKICAicHJvZmlsZUlkIiA6ICIwNTljODIxYzhhODU0NGJiOWJiODVhOGMxNjVhYTc5YiIsCiAgInByb2ZpbGVOYW1lIiA6ICJoZWxsc3RydWNrZWR6IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzYyYzFhMzY1ZGJhYmY5MDk4OTYyZDI3YmRhODkxOWE5NDI1M2M5MWNjYjZjMzUzZGE0ZjY0MDZmNDMxNmZmYWIiCiAgICB9CiAgfQp9"; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-593.5, 114, -13.5, -101, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCDax.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCDax.java new file mode 100644 index 000000000..eaaedf3b1 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCDax.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCDax extends HypixelNPC { + + public NPCDax() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bDax", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "VaK3r8cw7g2fNUQp4bnrnGXhHJL4L2FK4x73+DZWBiDHvmd5qeZsWlr7KgjycmZhCAzB5RvlwsDmwJcjH9/MsdUXOSNoj5iHRxlv3vljxXz36jkRgkuvATAjRP3WNXeNSHI2JAZucpm7BtGHTh3ZZQuTd9Y4Suy53frEiv1Z5B0LKifxBDf89tETi+evKUE02cHrQm4evH2D32nAMdVY/PVIUqZc1V90WM25UysUyV/SX+Z5EhVwBmsQO4+0lMhEL723o7U6hAhkK7ut0vrrJ/Z0qLBMyiNxFQSs6scY1ucBT8uRwIMTD/cB6Y/hxQuvNGXbWE+4KchKzwZacNoRFmJTONbGLKeCklQC5pgWCgiVtCEfE2JeHq0hi0Q/Y67Z36Q07JDIP2OZ57FOD50jGkaj9MpXNrD9D3DQdDVY0CP+/r+u8FNrOk9MBn466q0VjCltyYnXTLJATD2Nr4DM9YnLWgBIx0rAhYYyUW5JUSZm0SEfE7Cowal2lceIUqmfDObzAfNFPZgPmGPE96TmrPPzolj3gj+ZM/r7ffc3+hlEc3QCWzucNV5k2MvX2LVB8P2B+8RWGIg2mw6UjsGleNQh5kEWJWKdWDD3VBmByTOMFVoN9bQjtWy38xGwGk+M/5z/SKPrmZm9UiuEfwuZNenJZz7ZbDOI0pOgSPF03XI="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTY2MDMxNjk4MDYwNiwKICAicHJvZmlsZUlkIiA6ICIzOTVkZTJlYjVjNjU0ZmRkOWQ2NDAwY2JhNmNmNjFhNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJzcGFyZXN0ZXZlIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzhkNWM3MzkzNTgyODNkZGIwZWQzMGRmMDdmNzQzOGUxODQyNGIwMTg2YjU5NWRmMjI2NmUwZGJkZTM0NjU1ZjIiCiAgICB9CiAgfQp9"; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-705.5, 94, 33.5, 45, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCJaeger.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCJaeger.java new file mode 100644 index 000000000..34687b620 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCJaeger.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCJaeger extends HypixelNPC { + + public NPCJaeger() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bJaeger", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "iYftCZb0NhyhgQ5IQbFNTOBiUN45AwrJrxr9W0mukvrW0bH+0xuOnl7Oe0GXjyeE75aHy0dJZnc6aQCqg0Poa7c6OMkuJxP60GT6a1weatQNBMm0Z8uK/o0dGZU5pJG7y98nzAJFpxXwhpgJucKN46RLjoOcqHKV49rap2wINyR2Jf5DbmqOkp1ktBKPbmUFZrc5kcK1qIlB4jX+0ek0GOiLkjv7pukYleg8ZYoJ10bMGQfJtZcjwC9e+4WGKvi+559X9I4il/jyCilYQMTCuopEkabfUuY68p4nG3dSz6MxW8H1jDJEaz9rMquEw2QlS3ctGF7Ij16ip9Dd1YATfezARvdmvhMMmwRnEZP1eASs6/blQua+bUKwp5GpH3hN+IL0m9fkVhgBmZSF+ILeiQpPxG/nny1YFgIZcOxXH2c7HrBBRgb+hrbm6dyHkosTYSxXcVWXCfS2vxrp+tNs93Ki4flzi3P+flEEJnwG/Eo6gj2GWbAgN/QOuxL96hs4sQf4krQu0Hhvz0eq2Dm29S1xEa320OC6HB1r514ehaSTDhM1ayZLrHTffp5rYCzvS3o7fpWwP7DfhNBcPUsXggh5oT+nkmSPZSVKVLH+ZtxWEtn+gNDfLqGBtNaW05YrcemnWGvY5Qg8t98LFYU4ZLrBbdGZmgful8BjLPWJkk4="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTMyODk0OTI0MiwKICAicHJvZmlsZUlkIiA6ICI0MzFhMmRlYTQ4YTE0NTMxYjEyZDU5MzY0NDUxNmIyNSIsCiAgInByb2ZpbGVOYW1lIiA6ICJpQ2FwdGFpbk5lbW8iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA3ZjE2NTdlYmZlZGQwYzM0NzMwYmU3ZDg2M2M1YWFiNjRmYWE0Mjk4MDhhYTEwZTk1MmYwNGZlYjZhMjdiOCIKICAgIH0KICB9Cn0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-651.5, 89, -24.5, 149, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCKiara.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCKiara.java new file mode 100644 index 000000000..e3549ab87 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCKiara.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCKiara extends HypixelNPC { + + public NPCKiara() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bKiara", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "JZvY6u8/AZgq4M1sSm+wOK7qFtgxle2/0VKL24KblSmjW5mMXtGVDoHVuZCy8t3Te/Lbq80Bz10wnCJZWAflACcf+IWHbc8uIo6kmt5jcxY/dY1VjcQVA8lpufvdb0Y+g/iTNc0X7QAk7K15UtWa1T3F0TRBdIyxJVkaQ6SPS3FuErD43/sUL8wKqLMbLle4wZPI2NmMLQdRllyYeGvS4YKj04cOuc1ZZml7UbQUkut4QHA1VJN2dMFMRLuB48a4aT5yzCK1X8ZxuLNkXg7X74bWbBXi6jYe22/exV/78XAfUZ2eCzw0LdF+IswI2YBuN/XHNfGLaiCD9qoW7288UfqBgdQlGJ0kugReLjTLop+H9/uvApl8f3sNtrx2j1GTKAOhS2QdSyFSDnQ//m4drSr3FM5HggUjg6tF6a+BR8+UlKZD3mKgZWdEWXghW5tNhKJU5eKEHRcFrNKzDkD7QuTsv5v1a2lxhELmBKwjS5efodHobtgYUs5Sqamr+PWLD6NPJ/aAPz5EOFB4v/3WQpi10WkxmiuGatQygCLa+Jz30XiGMBN1fwW6tSuY14AqpYnizqYr0lbAOCENzNJWctjcSEDDM7suSj3DAMT04aqWWb3GENqB//2ot9CwHBfaXsF48A6lmDgeKPyf/n5quw0beFpRcN1revpYMZrOoEg="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcyMTkyMDcwMTgzOCwKICAicHJvZmlsZUlkIiA6ICJjMTJkMmY5ZWJhZGI0ZTllYTIxZmM2M2M3YWY3M2E5NSIsCiAgInByb2ZpbGVOYW1lIiA6ICJEcmVhbXlOZW9uIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzhhZjYxMGQ1YzRhYTgyOTQzY2ZiYjQ3YjQzN2FkYjg0ZTBmNGUzNzgxZGJmZWQ3MGE3ZjE4ZTYwZDc3OGM1NmYiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ=="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-654, 113, -70, 0, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCKysha.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCKysha.java new file mode 100644 index 000000000..afafb9dd1 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCKysha.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCKysha extends HypixelNPC { + + public NPCKysha() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bKysha", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "VVCsJ2fmOv6SXYbHEIlR0iOr+1O2tKqXtKyVkowX3xRuUWenOxly8M6ooyxON5e6UEbkKCg9qV0UOJCB0pbFSSvKJL17WMey9XG/VUzf1BQzrEcm2KANm1Ij/gZNBz53NkXsip8FDmYyaeutq8fvtZ6jFpsKxIpcjGCt2b9wXTszSjf7/3WRTDz0rBk0kncn3aLgdEi9El0KVhVBzTqxw07VcDMY5SXUyT5ZmB+HhVOODof9HcUKIuOEziteSkq2NdbwQBZlgtjDUVcAlClzfDyw6zZMetRLfRrIT3CXQNMacKsqGT7uOMuJSHp5dyOMLcDVHUFuYVYDQmwk8DFODFuBCZQbl9UTBTj5AcAlbGl4gBWEvJ9FcO0oIIox/PM0oPpIpuYHMyknB3mPsDD2u0Lue87bw4/tG65vGXyIEGUycALejg3+oMUpIeStxoVqkri96S+n9KhbakdnrtcW8S1hSeNuymrM+psh6JEUEbiirSJhDSQWyQUVOqZJNWxhE61bZx2KVbCb00RSu+OusO7SBWwRAQuddXjeGrptABSMPg8r0ztR5uAxl9kkAXVlDXNnXz6OcNH2RjwKXgppwHjNf5SFoT0KKMEm6t1nxWrBK4EMsedpQDJi8oD/S6kNFXFE5lZ15DbGljm6ik9tTLw73FIaZ2GrX4WyyMll5ws="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTUyNzQ2MjA3NSwKICAicHJvZmlsZUlkIiA6ICJmODJmNTQ1MDIzZDA0MTFkYmVlYzU4YWI4Y2JlMTNjNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJSZXNwb25kZW50cyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82MTMzMjhjMGE0NmY5N2YxZTdhZjg2YzQ1OTM0YWNhODcwMDg2MTI3MjFiNTFiM2VmZWFlNzVhNWY0MGM4MGZkIiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-601.5, 115, -12, -180, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCLoras.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCLoras.java new file mode 100644 index 000000000..1df4fb181 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCLoras.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCLoras extends HypixelNPC { + + public NPCLoras() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bLoras", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "m4+5XcihPvzB9ui4Putmn7dSHlIR7Fm0LRA7dB2vC+6ZgD9LHVp+JB6W5xlET0XuJKt+fbRdD/QYpkxtfpcIQOYdQgUFlpHsxhM9qyUtStNh3XdaJmInojmgWAVpbPLcVbaAwC5vKs3VRaygMwIwDkRmIZah2JDODFQr341D6FWIzE2WW+3qi2cd8FAcBaWLcwZxcFcVB6c7Q/W3tu38rUl39LlWvC2ETzH8iwfQzpbJ4tyYFAglFQjwtvP1X7yex5Yw+4CsZPQHS8GQzUCGAuQJgsVRCg0ZFM/3C1PrOU9pS7qYTj8zRks2yja7z0D3MYtR2o47Tl7sM2f1QEcPEBUCFFZA0+03dze/sxHwiDhSAKGaqU8uQWjDcaT2+dtJepzzYqvg3o7Aa9okrARpfelWSuACEnl8Zv3SVOAs3HS98KUjQ0HysZhMfq6SlYKxxhSIu3hOcRSnE5NE8M8xR+eBvCde+nmKs0uhhDi/yZ2+WN3S81LwECSrPAGsGtQjvhRi21ITnx6wGYXwhRgecy76UVTN3qaf9UvJbCV+tQq7PykIOs7n8mnHNKkW/j4gd1RRu9SqOG+2Ntym21TpYmjXVdvUWkMaFZjMV9N9FryDUfq83Fc3XoztonjpEyD8lrwsX3Fa5ypAmmpM9hcK59dkA8H624yReTx0TZ1XDuA="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTMyOTA0MDEzMSwKICAicHJvZmlsZUlkIiA6ICJiOThjNGFkOGM2MjY0NGYxOWUzYzhhZTE0ZThhMDI1OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJ5cnRlZGR5IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2IzZjFhNGYwMGNiYjBiMDRhNzgwZjQ3MjBmZGM1Y2NjNzY4MjhhMTI5YmU5NTBkNTZlNWY3OWI1NDQ1M2ZlNTEiCiAgICB9CiAgfQp9"; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-593.5, 118, 14.5, -90, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCNemo.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCNemo.java new file mode 100644 index 000000000..bf3e4aed7 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCNemo.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCNemo extends HypixelNPC { + + public NPCNemo() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bNemo", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "F3DkK6DdvlUDNA6GaVcGgS6QzbJ6alUayPhZmDKHkrr5TvnGVR2ucyw+gqI7MnIwEvXRVn0H/j5xgTxG/RacrfgXJ4AwFRt2UIPqDs9jVykoNypZqyRIa6nKwL7AF2H0hrKiiwmwgNYWysPS1qu+PflTvDHlGJaRWm62R/B/5YMQyYG2Vve9+MU5EDAnk7one7JVy/Efyo/tiBvF7FPbMhi+2gC+h5tlJP/Rfb2cGomSuYLE122GB+RUwB3UvRvRkBrOs49xAmZSbtvbvch5pUHFglus2vn8WGvUjefjDWX8tYjgOtZB8nZKBJ1hn6rhNJh9ky71SetZ1xoCJjCwAG2b5SJET7wf5hWfP5+a3uo/FA2hmEsB6/rRlacEsnMAOhNj7UUMV3IPbu51BHPhMg5BC64s8RYkTmzVKq/2Vr92dYKl+5R1PxGRtLA8U6y8aJC0Lj4iYbA5ZCoVzN0e+8sMZRYuT1YzOJu50VUV5oejXaxR0CTYhLxHVLWRaPI4lxOWj1uBcCWx0106rhos3KKFMtS7RbhGbQME04dcjc5HusU/81Tox5LODVwEEyhwB4A1FEebPjtMbDyx2qr/tNJmuEomlsTyw70I82vEoDqj22DXy5TSvEW1sJGkPm78Z5SJZ2q4LQMQOFnFyOj/GSRgjOoo6UnfodZSSRKC8TU="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTY2MDk2MDI3MDgwNSwKICAicHJvZmlsZUlkIiA6ICIwZjFjOTU0NDBmNjY0NjdkOGIzMzhiMzkwZjc3YjU2NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUYW5UYW5KaWFuZyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9hNDk1MjU4ZDhkN2RhNWEzODk0YTBjNGYxMjc1MTdhODZmM2JhMWMwNjNmZGViMGQ4YmNlZTBmYWY3NDEzYTEwIgogICAgfQogIH0KfQ=="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-619.5, 87, -6.5, -45, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCNina.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCNina.java new file mode 100644 index 000000000..9d3e6761e --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCNina.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCNina extends HypixelNPC { + + public NPCNina() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bHina", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "fndDfeYzJYIgb2JokwBAwxam0HWE+MDkOXUK/A0XGHT3trwsDjfinAnyqpnA53F/4BCiMQci2ZPeQKxpZTciY/VsY1ic64cj7yW8eUd9zkmYXB1crzpRKWIJCJohHsz0mWRhzemKr+TQ1PTQXkrwMD87js6KrZHFqvryJQyjOj5AAjBbNUZ6MYj/diKoMVigpcU6ow7qIw1AzUodi5kGnXSZrpjyN+M+tfDVblr82IGI4UoO7JmG8TSxmis8uD8cK7oHGFA7gLgkxuPaTIis0OKY1wG7PLq3k3CDjzfXcbJmSAkSZLsSLp3JAs0E+/AG+yQ8+QGETRvPXWTJUOF5+E12Gme+hRZ4NKp2g3dNpvZRcEoHPNfFNTlJoaJ5VMFiduDfmmTGWtv791XTu8o/QCoy5wM1peth+cjtrcdkPOhyn/O9MdtMJc/V52w/6BzBvpiPL2s6GOHLR897Q6gaHTtyZcukqDeUK1kS0sgX/NLUZ/BptjqY1oA7/wVqM115Ou2ViRPWlY/HqYV9aF6xqe7bk8fvrdGD7ROVe6zXrBtmjw5SjLu+/EoIQckXqYLtrqgitzfWM+P2UuSCGV+C4VT6m2cbbedWrm8GZqdQTCfttRkiEre5SNYt9f3f/N/d2CdXy3upY7VY8jGQWuohLi1Kz2HJBIJvqj2TLSpMrd0="; + } + + @Override + public String texture(HypixelPlayer player) { + return "eyJ0aW1lc3RhbXAiOjE1ODgwNzg2NDMxOTAsInByb2ZpbGVJZCI6IjdkYTJhYjNhOTNjYTQ4ZWU4MzA0OGFmYzNiODBlNjhlIiwicHJvZmlsZU5hbWUiOiJHb2xkYXBmZWwiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzUxM2JlNGQzN2EzNTg0MDAyNGIyNmY4ZDYyM2ZmMTQxMTllNzYxNzg0NTkyZjFhMmNjNGIwMWZjYThmYjdiMiJ9fX0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-553.5, 110, -16.5, -141, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCOden.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCOden.java new file mode 100644 index 000000000..12ac3a6d1 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCOden.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCOden extends HypixelNPC { + + public NPCOden() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bOden", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "iYftCZb0NhyhgQ5IQbFNTOBiUN45AwrJrxr9W0mukvrW0bH+0xuOnl7Oe0GXjyeE75aHy0dJZnc6aQCqg0Poa7c6OMkuJxP60GT6a1weatQNBMm0Z8uK/o0dGZU5pJG7y98nzAJFpxXwhpgJucKN46RLjoOcqHKV49rap2wINyR2Jf5DbmqOkp1ktBKPbmUFZrc5kcK1qIlB4jX+0ek0GOiLkjv7pukYleg8ZYoJ10bMGQfJtZcjwC9e+4WGKvi+559X9I4il/jyCilYQMTCuopEkabfUuY68p4nG3dSz6MxW8H1jDJEaz9rMquEw2QlS3ctGF7Ij16ip9Dd1YATfezARvdmvhMMmwRnEZP1eASs6/blQua+bUKwp5GpH3hN+IL0m9fkVhgBmZSF+ILeiQpPxG/nny1YFgIZcOxXH2c7HrBBRgb+hrbm6dyHkosTYSxXcVWXCfS2vxrp+tNs93Ki4flzi3P+flEEJnwG/Eo6gj2GWbAgN/QOuxL96hs4sQf4krQu0Hhvz0eq2Dm29S1xEa320OC6HB1r514ehaSTDhM1ayZLrHTffp5rYCzvS3o7fpWwP7DfhNBcPUsXggh5oT+nkmSPZSVKVLH+ZtxWEtn+gNDfLqGBtNaW05YrcemnWGvY5Qg8t98LFYU4ZLrBbdGZmgful8BjLPWJkk4="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTMyODk0OTI0MiwKICAicHJvZmlsZUlkIiA6ICI0MzFhMmRlYTQ4YTE0NTMxYjEyZDU5MzY0NDUxNmIyNSIsCiAgInByb2ZpbGVOYW1lIiA6ICJpQ2FwdGFpbk5lbW8iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA3ZjE2NTdlYmZlZGQwYzM0NzMwYmU3ZDg2M2M1YWFiNjRmYWE0Mjk4MDhhYTEwZTk1MmYwNGZlYjZhMjdiOCIKICAgIH0KICB9Cn0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-584.5, 113, -40.5, 49, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCRosemary.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCRosemary.java new file mode 100644 index 000000000..843d2dda1 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCRosemary.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCRosemary extends HypixelNPC { + + public NPCRosemary() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§aRosemary", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "ujENjLgmVYnQF2SF9F1xIx5XeCsU021iHBrcUZ6Av+PWHCrRtDba89Q662Jgl//ZsH6CvbA5MYVg0LvRdaXS0m10uTRt2WJvwPnd5+D/fJNfmdx1pjOTGa991JzKdNXHIDnfOtuWVXbX4diFJ319mHJWZPGJvNMqWIiXMPUqLZxmokI9i0ydMPMCMQZ0zKTyctTLxhOM+sczitiWu55LiQ5E6U4V2VJTsHR5NzMz1vMWbsRdAG0SkUePPrJqYRS5oKK2otjc1HxLk9I74/jnnnZdAkY8w5xe2eksrtv/xdVVxsIgyIzydt9dD8oxTYXtMyRpNOl6OIjhgv0nZ57dMqUCO7p0qNLYMaOdElYZKTCLKbe8uJarrNA5IeAazl+94ytT37s5o8EO1s0RECZRWEy+UiTKwfbMsOx38CrbY/KovR1vl1I8lZ2lTxBH9Y7hAWzsmMKMo+xCxi7hraWaWDqGFyEddJ9BTpwHYLI2OR5HA4fEYnH2NTAN19Bz2Ki0uEtfp+yUZoqsB1s4+2ZfeYm1yVxuVl8w3POWma9WzHGLIJ3+fW6GyilRKso1EjTloWWOdA/dg5ofpp3iFqjYTRcvKgm+ZYu0o4qrmJGY3C/NxbTrSXfxZO44F+zZGyWOeKcQ6ELDZqgi/EMREhPxS2zL1CDVsSqbWucKBiUStLI="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTY0NzU5ODczMTYzOSwKICAicHJvZmlsZUlkIiA6ICI5ZDQyNWFiOGFmZjg0MGU1OWM3NzUzZjc5Mjg5YjMyZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUb21wa2luNDIiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTkwNDNkM2QzMWM1ZTc2ZmRhNzk0OTNmZDEzZTZmOGYzMTYxYTFhM2Q4ZWM3NGM2NTc5MmYwMzQwNmEzYTFhMyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-703.5, 162, 3.5, 0, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCSalvageOldAttributes.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCSalvageOldAttributes.java new file mode 100644 index 000000000..6678f20c0 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCSalvageOldAttributes.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCSalvageOldAttributes extends HypixelNPC { + + public NPCSalvageOldAttributes() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bSalvage Old Attributes", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "pGs2HGEDHYEsu9tULhPveqhCYAZ5mbmYik/hVuKDplZSWovebnjMlDHmgIHLtXv7j/Ks8enpS7JmorA3PsgVqGiueUCJMUFr5LUiVDmaJoCVieHxropPn+huhwzh3e5gsj9XBPFStHQAO2xm7FYZbyvQ3q9pFcSPkONHFi67ui6VSLY9In2iVCaNg9B7cRm0G43SsraaTeaA8dO0BWFyj7lEyBHj4S/SYfbPIyFyEjbaMaIqsvZAJARS03YhtiPnGeWFQTlD0TyBmnxqAHDmAJMm/fL0zd+smPCeEMZ7Jli4g+VkusOGHLDpGCJ1JmTh5v9EZt+gh1DGuDZetprFK1gdIkCpgKrzfDuFD19PwJZ6qtTD5lWil6i8JbtIAsv2khygcO/9K3oVOLAaAZ5dJYKHB63Gf0H9WKuJQuQKieHRdz1urZ9URJmZ7gMTs+AfgbAZR28f1R9Bsge2WHAM2CIp18AYZjMixdOROyrk15UqP3ahVqOA2/UFnUs84Sv9akN9ypbZljFpjCSRWlTB0FOFKZ5/s/dlWtWg3RMmBshbn5RnGtcRI9k8xzW8W5IBOHq9lMj6sippaT0W07b6LNnIb9NpVRy/dMOeujOaqVKhbpSSiJ8G3KMy1MwDYQ9/QlDlfbT5n2It0JaxpPfwPQxR4wVkPp+moGPJhQsRtC0="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTU5MTM2MTI2MzY0OCwKICAicHJvZmlsZUlkIiA6ICIxOTI1MjFiNGVmZGI0MjVjODkzMWYwMmE4NDk2ZTExYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJTZXJpYWxpemFibGUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWFjNjZhZjc3ZTU4YmE5Yjg5MTc1ODMxZjk2ZDEwMGYwNTYyYzIzMjZiYjJkZDQzMTg0OTQyYWRhZmJmODI1YSIKICAgIH0KICB9Cn0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-594.5, 114, -17.5, 0, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCSawyer.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCSawyer.java new file mode 100644 index 000000000..c3cef7f31 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCSawyer.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCSawyer extends HypixelNPC { + + public NPCSawyer() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bSawyer", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "kJkYx94vfepT2xlKYGiolKgZZ8ozqiK7SRtRYkfl5qYCBN4tE0WHV/X08smjr4ohSp3/ytStjb735EiiGPSGQFX01ltNXEwpPlIVk0M85hrad0wsTb9/P8v1YGKxmEjIE5CPoC49IM8sDF6h3lTvv3Rinu0Td/FMLp8i3m7Y9tIhEpAy7pu2ZY15/GTuBUNWMHSde9qVXoej0qI7qHHHU2Cz4oapRePUIHjzXIiOHsHoTjKG6TKQFd/pZnOQ6EYRf7dAB8N/B+9ydCm4TzjvjjElJtVt0GSl2Qh0JWPxUcpN/XIxFDYwEknzIVISrx8uF+bCVrWzqGX1SBcsfo0JDhqkv4fAeJAlFCQaf2eUmfBG2V9PpDgzgDsX8MR1j1sv/5EPZk6QbSIJ7jLgrEmn4YaAHUO2o0YJ2/nn9O/2i7Yxhd6KaUoTsccsO1a4/3NCOKcoXrXvngsPzac3E4RvPTRCWv0oEA6OPfXBtpDrRGBRF57mYDQ5GPjxqXUspgkpFnuJoHFzy6BlcuvHCaxmZ1gp7wj6+PUe7P8hWyDtjUWtCrAdL5wQ9zP3Pm39Z4/QI9ISRk9PKmU6DpOMrWo+D9tiic3hIfz9svMzMe99cDXjDwY/akmd8rv7YUjsTa4sjRl3PdM0FVSe0YKjr7deNicWaxA5sIXsu9wgjtx6xWc="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTc0MTE5ODk5MzA3OSwKICAicHJvZmlsZUlkIiA6ICJhNzdkNmQ2YmFjOWE0NzY3YTFhNzU1NjYxOTllYmY5MiIsCiAgInByb2ZpbGVOYW1lIiA6ICIwOEJFRDUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDUwYWUzNDgyZDgzODk4ZTBlNTVjMTUxNmIxZWFkMWE3ZDFjZDU0Y2NmNGMyNDM0Mzg2OWEyOGJkNTYyMWYwNCIKICAgIH0KICB9Cn0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-691.5, 121, 81.5, 135, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCSwoop.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCSwoop.java new file mode 100644 index 000000000..c64cc30f0 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCSwoop.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCSwoop extends HypixelNPC { + + public NPCSwoop() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bSwoop", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "EF0QFzeMDwxRJH7yv7+yQWZeoSjoePOBDpiBbjR4C+pbaaVpvIdpkVPLCixbRTLbyhE5tms4to/91yehxsbsvbAJz5dr9K58XdcUp9nuzYBgxEmZv8z2wpYOUGPFOp7lQxyY1vH6UcrxrNdUy3d0h/zaPN2YcRgg7DCrtE6S1coNn7v+PB2z+k2QFQnPcJe7c8U4PIQIEsZoIaH4OYaw0d4pWfjNoEfblEjKfywyNpSJwHXaJh2XYUUmlOb8sb8wOnc774sSSMnReQL6x5DEWwK/18W9j/QOwvWduw8K29C6rQET9x4HbzMszj3utaZgt3tXNqUa0I2Kk3ikTkzG71nfWxnstNf52g0CQ0cSIJF1aDdbhGRhabgFKhNwDGJJr4aiKE5B4dRS1XGHtnE2Fp9VWrpN3EdBi+EfOEzcJlcC1luu8uqYDl4phPYXgLwR3wKFPeEouhERGRwhO+yRnyBS1MhHemUG8nCYykZxD2/l1ixOF7wBwGlrABpvtOA+xEYt5M1JLeaAYc4qNGv9Zbn17IH7mm4On2XHBCbXBzn9s3mv5b8G9xA7dIje79lu/C67vWJ0r/89LPAN+ZXkoj5xp6dqn7n0KFrQJk73VVre4Ry2makjZsg8hooiz1EbsepMzZHzb+PyHCqd3X1HCgVwQNdq96knTRuV8JjDjBY="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTMyODg5Mjk0OCwKICAicHJvZmlsZUlkIiA6ICIxODA1Y2E2MmM0ZDI0M2NiOWQxYmY4YmM5N2E1YjgyNCIsCiAgInByb2ZpbGVOYW1lIiA6ICJSdWxsZWQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzc1YzU3ZGNjODVhNGM2MDM3ZjUyYWYwMGZkY2VmNDA0Zjc0NjI3NmMwZDMxYTIyYjJhNTUwYzZhZWQ5MzJlZSIKICAgIH0KICB9Cn0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-579.5, 114, -23.5, 24, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCTeddy.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCTeddy.java new file mode 100644 index 000000000..24e29086c --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCTeddy.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCTeddy extends HypixelNPC { + + public NPCTeddy() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§aTeddy", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "iYftCZb0NhyhgQ5IQbFNTOBiUN45AwrJrxr9W0mukvrW0bH+0xuOnl7Oe0GXjyeE75aHy0dJZnc6aQCqg0Poa7c6OMkuJxP60GT6a1weatQNBMm0Z8uK/o0dGZU5pJG7y98nzAJFpxXwhpgJucKN46RLjoOcqHKV49rap2wINyR2Jf5DbmqOkp1ktBKPbmUFZrc5kcK1qIlB4jX+0ek0GOiLkjv7pukYleg8ZYoJ10bMGQfJtZcjwC9e+4WGKvi+559X9I4il/jyCilYQMTCuopEkabfUuY68p4nG3dSz6MxW8H1jDJEaz9rMquEw2QlS3ctGF7Ij16ip9Dd1YATfezARvdmvhMMmwRnEZP1eASs6/blQua+bUKwp5GpH3hN+IL0m9fkVhgBmZSF+ILeiQpPxG/nny1YFgIZcOxXH2c7HrBBRgb+hrbm6dyHkosTYSxXcVWXCfS2vxrp+tNs93Ki4flzi3P+flEEJnwG/Eo6gj2GWbAgN/QOuxL96hs4sQf4krQu0Hhvz0eq2Dm29S1xEa320OC6HB1r514ehaSTDhM1ayZLrHTffp5rYCzvS3o7fpWwP7DfhNBcPUsXggh5oT+nkmSPZSVKVLH+ZtxWEtn+gNDfLqGBtNaW05YrcemnWGvY5Qg8t98LFYU4ZLrBbdGZmgful8BjLPWJkk4="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcxOTMyODk0OTI0MiwKICAicHJvZmlsZUlkIiA6ICI0MzFhMmRlYTQ4YTE0NTMxYjEyZDU5MzY0NDUxNmIyNSIsCiAgInByb2ZpbGVOYW1lIiA6ICJpQ2FwdGFpbk5lbW8iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA3ZjE2NTdlYmZlZGQwYzM0NzMwYmU3ZDg2M2M1YWFiNjRmYWE0Mjk4MDhhYTEwZTk1MmYwNGZlYjZhMjdiOCIKICAgIH0KICB9Cn0="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-656.5, 115, -39.5, -101, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCVaeri.java b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCVaeri.java new file mode 100644 index 000000000..e7e11b5e6 --- /dev/null +++ b/type.galatea/src/main/java/net/swofty/type/galatea/npcs/NPCVaeri.java @@ -0,0 +1,44 @@ +package net.swofty.type.galatea.npcs; + +import net.minestom.server.coordinate.Pos; +import net.swofty.type.generic.entity.npc.HypixelNPC; +import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; +import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; + +public class NPCVaeri extends HypixelNPC { + + public NPCVaeri() { + super(new HumanConfiguration() { + @Override + public String[] holograms(HypixelPlayer player) { + return new String[]{"§bVaeri", "§e§lCLICK"}; + } + + @Override + public String signature(HypixelPlayer player) { + return "JZvY6u8/AZgq4M1sSm+wOK7qFtgxle2/0VKL24KblSmjW5mMXtGVDoHVuZCy8t3Te/Lbq80Bz10wnCJZWAflACcf+IWHbc8uIo6kmt5jcxY/dY1VjcQVA8lpufvdb0Y+g/iTNc0X7QAk7K15UtWa1T3F0TRBdIyxJVkaQ6SPS3FuErD43/sUL8wKqLMbLle4wZPI2NmMLQdRllyYeGvS4YKj04cOuc1ZZml7UbQUkut4QHA1VJN2dMFMRLuB48a4aT5yzCK1X8ZxuLNkXg7X74bWbBXi6jYe22/exV/78XAfUZ2eCzw0LdF+IswI2YBuN/XHNfGLaiCD9qoW7288UfqBgdQlGJ0kugReLjTLop+H9/uvApl8f3sNtrx2j1GTKAOhS2QdSyFSDnQ//m4drSr3FM5HggUjg6tF6a+BR8+UlKZD3mKgZWdEWXghW5tNhKJU5eKEHRcFrNKzDkD7QuTsv5v1a2lxhELmBKwjS5efodHobtgYUs5Sqamr+PWLD6NPJ/aAPz5EOFB4v/3WQpi10WkxmiuGatQygCLa+Jz30XiGMBN1fwW6tSuY14AqpYnizqYr0lbAOCENzNJWctjcSEDDM7suSj3DAMT04aqWWb3GENqB//2ot9CwHBfaXsF48A6lmDgeKPyf/n5quw0beFpRcN1revpYMZrOoEg="; + } + + @Override + public String texture(HypixelPlayer player) { + return "ewogICJ0aW1lc3RhbXAiIDogMTcyMTkyMDcwMTgzOCwKICAicHJvZmlsZUlkIiA6ICJjMTJkMmY5ZWJhZGI0ZTllYTIxZmM2M2M3YWY3M2E5NSIsCiAgInByb2ZpbGVOYW1lIiA6ICJEcmVhbXlOZW9uIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzhhZjYxMGQ1YzRhYTgyOTQzY2ZiYjQ3YjQzN2FkYjg0ZTBmNGUzNzgxZGJmZWQ3MGE3ZjE4ZTYwZDc3OGM1NmYiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ=="; + } + + @Override + public Pos position(HypixelPlayer player) { + return new Pos(-688.5, 116, -35.5, -101, 0); + } + + @Override + public boolean looking(HypixelPlayer player) { + return true; + } + }); + } + + @Override + public void onClick(NPCInteractEvent event) { + event.player().notImplemented(); + } +} diff --git a/type.generic/src/main/java/net/swofty/type/generic/SkyBlockTypeLoader.java b/type.generic/src/main/java/net/swofty/type/generic/SkyBlockTypeLoader.java index d76311a59..35b93e57e 100644 --- a/type.generic/src/main/java/net/swofty/type/generic/SkyBlockTypeLoader.java +++ b/type.generic/src/main/java/net/swofty/type/generic/SkyBlockTypeLoader.java @@ -1,3 +1,9 @@ package net.swofty.type.generic; -public interface SkyBlockTypeLoader extends HypixelTypeLoader {} +import net.swofty.commons.Songs; + +public interface SkyBlockTypeLoader extends HypixelTypeLoader { + default Songs getIslandSong() { + return null; + } +} diff --git a/type.generic/src/main/java/net/swofty/type/generic/user/HypixelPlayer.java b/type.generic/src/main/java/net/swofty/type/generic/user/HypixelPlayer.java index 29d1b14be..f2a2ad78a 100644 --- a/type.generic/src/main/java/net/swofty/type/generic/user/HypixelPlayer.java +++ b/type.generic/src/main/java/net/swofty/type/generic/user/HypixelPlayer.java @@ -3,23 +3,28 @@ import lombok.Getter; import lombok.Setter; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.entity.Player; import net.minestom.server.entity.PlayerSkin; import net.minestom.server.network.player.GameProfile; import net.minestom.server.network.player.PlayerConnection; -import net.swofty.commons.MinecraftVersion; import net.swofty.commons.ServerType; import net.swofty.proxyapi.ProxyPlayer; import net.swofty.type.generic.HypixelConst; import net.swofty.type.generic.HypixelGenericLoader; +import net.swofty.type.generic.achievement.PlayerAchievementHandler; import net.swofty.type.generic.data.HypixelDataHandler; import net.swofty.type.generic.data.datapoints.DatapointChatType; import net.swofty.type.generic.data.datapoints.DatapointRank; import net.swofty.type.generic.data.datapoints.DatapointString; import net.swofty.type.generic.data.datapoints.DatapointToggles; -import net.swofty.type.generic.achievement.PlayerAchievementHandler; import net.swofty.type.generic.experience.PlayerExperienceHandler; -import net.swofty.type.generic.gui.v2.*; +import net.swofty.type.generic.gui.v2.StatefulPaginatedView; +import net.swofty.type.generic.gui.v2.StatefulView; +import net.swofty.type.generic.gui.v2.StatelessView; +import net.swofty.type.generic.gui.v2.View; +import net.swofty.type.generic.gui.v2.ViewNavigator; +import net.swofty.type.generic.gui.v2.ViewSession; import net.swofty.type.generic.quest.PlayerQuestHandler; import net.swofty.type.generic.user.categories.Rank; import org.jetbrains.annotations.NotNull; @@ -45,6 +50,11 @@ public HypixelPlayer(@NotNull PlayerConnection playerConnection, @NotNull GamePr hookManager = new PlayerHookManager(this, new HashMap<>()); } + public void notImplemented() { + sendMessage(Component.text("§cThis feature hasn't been implemented yet. §aOpen a Pull Request HERE to get it added quickly!") + .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + } + public static String getDisplayName(UUID uuid) { if (HypixelGenericLoader.getLoadedPlayers().stream().anyMatch(player -> player.getUuid().equals(uuid))) { return HypixelGenericLoader.getLoadedPlayers().stream().filter(player -> player.getUuid().equals(uuid)).findFirst().get().getFullDisplayName(); diff --git a/type.hub/src/main/java/net/swofty/type/hub/TypeHubLoader.java b/type.hub/src/main/java/net/swofty/type/hub/TypeHubLoader.java index 85d1b8096..66ef9ec26 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/TypeHubLoader.java +++ b/type.hub/src/main/java/net/swofty/type/hub/TypeHubLoader.java @@ -105,24 +105,19 @@ public void afterInitialize(MinecraftServer server) { player.sendMessage(Component.text("§eTalk to §6Alda §eto purchase!")); }); GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(25, 74, -44), (player, _) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); }); GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(28, 74, -47), (player, _) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); }); GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(32, 74, -48), (player, _) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); }); GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(35, 74, -47), (player, _) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); }); GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(36, 74, -44), (player, _) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); }); // Create Dark Auction display diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAmelia.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAmelia.java index de330ca7d..5105639fd 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAmelia.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAmelia.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -41,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAnita.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAnita.java index eaa2812a0..7cfbc3d59 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAnita.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAnita.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -41,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCChristopher.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCChristopher.java index 08add90bc..bd1fca5b9 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCChristopher.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCChristopher.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -41,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCErihann.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCErihann.java index ec49aeda6..eec29a31d 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCErihann.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCErihann.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -41,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCFann.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCFann.java index 4875530a7..bb15a95b4 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCFann.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCFann.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -41,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCGuy.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCGuy.java index 991c16682..717463c13 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCGuy.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCGuy.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -41,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCJacob.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCJacob.java index 20eb7155a..87190a387 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCJacob.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCJacob.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -41,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCJacobus.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCJacobus.java index f429969e7..2be0fa117 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCJacobus.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCJacobus.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -41,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCLucius.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCLucius.java index 6e9f25f09..8bee24ff3 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCLucius.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCLucius.java @@ -1,13 +1,10 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; -import net.swofty.type.generic.user.HypixelPlayer; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; - import net.swofty.type.generic.event.custom.NPCInteractEvent; +import net.swofty.type.generic.user.HypixelPlayer; public class NPCLucius extends HypixelNPC { @@ -42,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMaddoxTheSlayer.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMaddoxTheSlayer.java index 4c449ed3a..9bcfe01c1 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMaddoxTheSlayer.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMaddoxTheSlayer.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -41,8 +39,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMalik.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMalik.java index f16f3ce41..51f19006d 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMalik.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMalik.java @@ -41,8 +41,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMarco.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMarco.java index b70667f22..47af46798 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMarco.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMarco.java @@ -41,8 +41,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMort.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMort.java index cc4c129ab..6ad0182b9 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMort.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCMort.java @@ -41,8 +41,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCOphelia.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCOphelia.java index 917a9a750..49bf51a7d 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCOphelia.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCOphelia.java @@ -42,8 +42,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCOzanne.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCOzanne.java index fd34262e2..e8370621d 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCOzanne.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCOzanne.java @@ -41,8 +41,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCScoop.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCScoop.java index 7c3362633..e4efd387d 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCScoop.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCScoop.java @@ -41,8 +41,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCTaylor.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCTaylor.java index 23afa4d2f..2567e1294 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCTaylor.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCTaylor.java @@ -41,8 +41,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCUdium.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCUdium.java index e14a70e04..e00d4d63c 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCUdium.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCUdium.java @@ -41,8 +41,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCWizard.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCWizard.java index 090983560..52a828f02 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCWizard.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCWizard.java @@ -41,8 +41,7 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerApprentice.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerApprentice.java index 8be559e1b..7fbfc77ff 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerApprentice.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerApprentice.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs.villagers; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.VillagerProfession; import net.swofty.type.generic.entity.npc.HypixelNPC; @@ -36,7 +34,6 @@ public VillagerProfession profession() { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerPlumberJoe.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerPlumberJoe.java index 1aeb501ae..8664195a1 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerPlumberJoe.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerPlumberJoe.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs.villagers; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.VillagerProfession; import net.swofty.type.generic.entity.npc.HypixelNPC; @@ -36,7 +34,6 @@ public VillagerProfession profession() { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerSmithmonger.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerSmithmonger.java index 7328efe8c..efa52e598 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerSmithmonger.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/villagers/VillagerSmithmonger.java @@ -1,7 +1,5 @@ package net.swofty.type.hub.npcs.villagers; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.VillagerProfession; import net.swofty.type.generic.entity.npc.HypixelNPC; @@ -36,7 +34,6 @@ public VillagerProfession profession() { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.jerrysworkshop/src/main/java/net/swofty/type/jerrysworkshop/TypeJerrysWorkshopLoader.java b/type.jerrysworkshop/src/main/java/net/swofty/type/jerrysworkshop/TypeJerrysWorkshopLoader.java index 00556ec3e..a5ea5e0d8 100644 --- a/type.jerrysworkshop/src/main/java/net/swofty/type/jerrysworkshop/TypeJerrysWorkshopLoader.java +++ b/type.jerrysworkshop/src/main/java/net/swofty/type/jerrysworkshop/TypeJerrysWorkshopLoader.java @@ -43,30 +43,11 @@ public void onInitialize(MinecraftServer server) { @Override public void afterInitialize(MinecraftServer server) { - GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(14, 77, 91), (player, event) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); - }); - - GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(16, 77, 91), (player, event) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); - }); - - GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(13, 77, 97), (player, event) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); - }); - - GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(13, 77, 99), (player, event) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); - }); - - GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(13, 77, 101), (player, event) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); - }); + GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(14, 77, 91), (player, _) -> player.notImplemented()); + GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(16, 77, 91), (player, _) -> player.notImplemented()); + GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(13, 77, 97), (player, _) -> player.notImplemented()); + GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(13, 77, 99), (player, _) -> player.notImplemented()); + GlassDisplay.create(new SkyBlockItem(ItemType.DIRT), HypixelConst.getInstanceContainer(), new Pos(13, 77, 101), (player, _) -> player.notImplemented()); Present.spawnAll(); } @@ -74,10 +55,8 @@ public void afterInitialize(MinecraftServer server) { @Override public LoaderValues getLoaderValues() { return new LoaderValues( - (type) -> switch (type) { - default -> new Pos(-4.5, 76, 100.5, -180, 0); - }, // Spawn position - true // Announce death messages + (_) -> new Pos(-4.5, 76, 100.5, -180, 0), // Spawn position + true // Announce death messages ); } @@ -86,10 +65,10 @@ public TablistManager getTablistManager() { @Override public List getModules() { return new ArrayList<>(List.of( - new SkyBlockPlayersOnlineModule(1), - new SkyBlockPlayersOnlineModule(2), - new JerrysWorkshopServerModule(), - new AccountInformationModule() + new SkyBlockPlayersOnlineModule(1), + new SkyBlockPlayersOnlineModule(2), + new JerrysWorkshopServerModule(), + new AccountInformationModule() )); } }; @@ -98,8 +77,8 @@ public List getModules() { @Override public List getTraditionalEvents() { return SkyBlockGenericLoader.loopThroughPackage( - "net.swofty.type.jerrysworkshop.events", - HypixelEventClass.class + "net.swofty.type.jerrysworkshop.events", + HypixelEventClass.class ).collect(Collectors.toList()); } @@ -111,8 +90,8 @@ public List getCustomEvents() { @Override public List getNPCs() { return new ArrayList<>(SkyBlockGenericLoader.loopThroughPackage( - "net.swofty.type.jerrysworkshop.npcs", - HypixelNPC.class + "net.swofty.type.jerrysworkshop.npcs", + HypixelNPC.class ).toList()); } diff --git a/type.murdermysterylobby/src/main/java/net/swofty/type/murdermysterylobby/npcs/NPCInfection.java b/type.murdermysterylobby/src/main/java/net/swofty/type/murdermysterylobby/npcs/NPCInfection.java index 86d77cd47..0898ee8a0 100644 --- a/type.murdermysterylobby/src/main/java/net/swofty/type/murdermysterylobby/npcs/NPCInfection.java +++ b/type.murdermysterylobby/src/main/java/net/swofty/type/murdermysterylobby/npcs/NPCInfection.java @@ -46,7 +46,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { event.player().sendMessage("§7Infection is coming soon..."); - event.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + event.player().notImplemented(); } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/commands/PlayMusicCommand.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/commands/PlayMusicCommand.java index b8534cab5..8b270e55a 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/commands/PlayMusicCommand.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/commands/PlayMusicCommand.java @@ -28,8 +28,18 @@ public void registerUsage(MinestomCommand command) { return; } - SkyBlockSong skyBlockSong = new SkyBlockSong(context.get(song)); + player.sendMessage("§aLoading song §e" + context.get(song).name() + "§a..."); + SkyBlockSong skyBlockSong; + try { + skyBlockSong = new SkyBlockSong(context.get(song)); + } catch (Exception e) { + e.printStackTrace(); + player.sendMessage("§cError loading song: " + e.getMessage()); + return; + } + player.sendMessage("§aLoaded song §e" + context.get(song).name() + "§a, now playing..."); SkyBlockSongsHandler songsHandler = new SkyBlockSongsHandler(player); + player.sendMessage("§aPlaying song §e" + skyBlockSong.getSong().name() + "§a..."); songsHandler.setPlayerSong(skyBlockSong); player.sendMessage("§aPlaying song §e" + skyBlockSong.getSong().name() + "§a."); diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/data/monogdb/RegionDatabase.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/data/monogdb/RegionDatabase.java index c3d838ea0..c34c08a69 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/data/monogdb/RegionDatabase.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/data/monogdb/RegionDatabase.java @@ -33,7 +33,8 @@ public static List getAllRegions() { try { type = RegionType.valueOf(doc.getString("type")); } catch (IllegalArgumentException e) { - throw new IllegalArgumentException("Region " + name + " has an invalid type: " + doc.getString("type")); + continue; + //throw new IllegalArgumentException("Region " + name + " has an invalid type: " + doc.getString("type")); } int x1 = doc.getInteger("x1"); int y1 = doc.getInteger("y1"); diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/event/actions/custom/ActionRegionPlaySong.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/event/actions/custom/ActionRegionPlaySong.java index 7c5055543..c6060cc89 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/event/actions/custom/ActionRegionPlaySong.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/event/actions/custom/ActionRegionPlaySong.java @@ -2,6 +2,8 @@ import net.swofty.commons.Songs; import net.swofty.commons.StringUtility; +import net.swofty.type.generic.HypixelConst; +import net.swofty.type.generic.SkyBlockTypeLoader; import net.swofty.type.generic.event.EventNodes; import net.swofty.type.generic.event.HypixelEvent; import net.swofty.type.generic.event.HypixelEventClass; @@ -20,25 +22,39 @@ public class ActionRegionPlaySong implements HypixelEventClass { public void run(PlayerRegionChangeEvent event) { SkyBlockPlayer player = event.getPlayer(); SkyBlockSongsHandler songHandler = player.getSongHandler(); + if (!SkyBlockSongsHandler.isEnabled) return; + + RegionType to = event.getTo(); + RegionType from = event.getFrom(); + if (to == null || (from != null && to.equals(from))) return; + + Songs songToPlay = null; + List regionSongs = to.getSongs(); + if (regionSongs != null && !regionSongs.isEmpty()) { + songToPlay = regionSongs.get((int) (Math.random() * regionSongs.size())); + } else if (HypixelConst.getTypeLoader() instanceof SkyBlockTypeLoader skyBlockTypeLoader) { + songToPlay = skyBlockTypeLoader.getIslandSong(); + } - if (event.getTo() != null && event.getFrom() != null - && !event.getTo().equals(event.getFrom())) { - RegionType to = event.getTo(); - List songs = to.getSongs(); + SkyBlockSongsHandler.PlayerSong activeSong = songHandler.getPlayerSong(); + if (songToPlay == null) { + if (activeSong != null) songHandler.stopPlayerSong(); + return; + } - if (songs == null || songs.isEmpty()) return; + if (activeSong != null && activeSong.song().getSong() == songToPlay) { + return; + } - Songs randomSong = songs.get((int) (Math.random() * songs.size())); - songHandler.setPlayerSong(new SkyBlockSong(randomSong)); + songHandler.setPlayerSong(new SkyBlockSong(songToPlay)); - SkyBlockActionBar.getFor(player).addReplacement( - SkyBlockActionBar.BarSection.MANA, - new SkyBlockActionBar.DisplayReplacement( - "§2" + StringUtility.toNormalCase(randomSong.name()), - 20, - 2 - ) - ); - } + SkyBlockActionBar.getFor(player).addReplacement( + SkyBlockActionBar.BarSection.MANA, + new SkyBlockActionBar.DisplayReplacement( + "§2" + StringUtility.toNormalCase(songToPlay.name()), + 20, + 2 + ) + ); } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/item/handlers/ability/AbilityRegistry.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/item/handlers/ability/AbilityRegistry.java index fa8ce993b..48ff788f5 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/item/handlers/ability/AbilityRegistry.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/item/handlers/ability/AbilityRegistry.java @@ -80,8 +80,7 @@ public class AbilityRegistry { 20 * 3, new RegisteredAbility.NoAbilityCost(), (player, item, targetedBlock, blockFace) -> { - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); return false; } )); diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/Note.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/Note.java deleted file mode 100644 index 3792943b9..000000000 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/Note.java +++ /dev/null @@ -1,57 +0,0 @@ -package net.swofty.type.skyblockgeneric.noteblock; - -import net.kyori.adventure.sound.Sound; -import net.minestom.server.sound.SoundEvent; -import net.swofty.type.generic.utility.BufferUtility; - -import java.nio.ByteBuffer; - -public class Note { - - private final byte instrument; - private final byte key; - private final byte volume; - private Note(byte instrument, byte key, byte volume) { - this.instrument = instrument; - this.key = key; - this.volume = volume; - } - - private static final SoundEvent[] SOUNDS = new SoundEvent[] { - SoundEvent.BLOCK_NOTE_BLOCK_HARP, - SoundEvent.BLOCK_NOTE_BLOCK_BASS, - SoundEvent.BLOCK_NOTE_BLOCK_BASEDRUM, - SoundEvent.BLOCK_NOTE_BLOCK_SNARE, - SoundEvent.BLOCK_NOTE_BLOCK_HAT, - SoundEvent.BLOCK_NOTE_BLOCK_GUITAR, - SoundEvent.BLOCK_NOTE_BLOCK_FLUTE, - SoundEvent.BLOCK_NOTE_BLOCK_BELL, - SoundEvent.BLOCK_NOTE_BLOCK_CHIME, - SoundEvent.BLOCK_NOTE_BLOCK_XYLOPHONE, - SoundEvent.BLOCK_NOTE_BLOCK_IRON_XYLOPHONE, - SoundEvent.BLOCK_NOTE_BLOCK_COW_BELL, - SoundEvent.BLOCK_NOTE_BLOCK_DIDGERIDOO, - SoundEvent.BLOCK_NOTE_BLOCK_BIT, - SoundEvent.BLOCK_NOTE_BLOCK_BANJO, - SoundEvent.BLOCK_NOTE_BLOCK_PLING - }; - - public static Note readNote(ByteBuffer buffer) { - byte instrument = buffer.get(); - byte key = buffer.get(); - byte volume = buffer.get(); - buffer.get(); // pan (ignored) - BufferUtility.getUnsignedShort(buffer); // pitch (ignored) - return new Note(instrument, key, volume); - } - - public Sound toSound(Sound.Source source) { - return Sound.sound( - SOUNDS[instrument], - source, - volume / 100f, - (float) Math.pow(2f, (key - 45) / 12f) - ); - } - -} \ No newline at end of file diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SkyBlockSong.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SkyBlockSong.java index f16ec94e7..134d27ec4 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SkyBlockSong.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SkyBlockSong.java @@ -1,99 +1,255 @@ package net.swofty.type.skyblockgeneric.noteblock; -import com.mongodb.lang.Nullable; import lombok.Getter; -import lombok.SneakyThrows; +import net.kyori.adventure.key.Key; import net.kyori.adventure.sound.Sound; +import net.minestom.server.sound.SoundEvent; import net.swofty.commons.Songs; -import net.swofty.type.generic.utility.BufferUtility; +import org.tinylog.Logger; +import java.io.IOException; import java.nio.ByteBuffer; import java.nio.ByteOrder; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.NavigableMap; +import java.util.TreeMap; @Getter public class SkyBlockSong { - private final Songs song; + private static final int F_SHARP_4_KEY = 45; + private static final int CENTER_PANNING = 100; + private static final String TEMPO_CHANGER_CUSTOM_INSTRUMENT_NAME = "Tempo Changer"; + + private static final SoundEvent[] VANILLA_INSTRUMENTS = {SoundEvent.BLOCK_NOTE_BLOCK_HARP, SoundEvent.BLOCK_NOTE_BLOCK_BASS, SoundEvent.BLOCK_NOTE_BLOCK_BASEDRUM, SoundEvent.BLOCK_NOTE_BLOCK_SNARE, SoundEvent.BLOCK_NOTE_BLOCK_HAT, SoundEvent.BLOCK_NOTE_BLOCK_GUITAR, SoundEvent.BLOCK_NOTE_BLOCK_FLUTE, SoundEvent.BLOCK_NOTE_BLOCK_BELL, SoundEvent.BLOCK_NOTE_BLOCK_CHIME, SoundEvent.BLOCK_NOTE_BLOCK_XYLOPHONE, SoundEvent.BLOCK_NOTE_BLOCK_IRON_XYLOPHONE, SoundEvent.BLOCK_NOTE_BLOCK_COW_BELL, SoundEvent.BLOCK_NOTE_BLOCK_DIDGERIDOO, SoundEvent.BLOCK_NOTE_BLOCK_BIT, SoundEvent.BLOCK_NOTE_BLOCK_BANJO, SoundEvent.BLOCK_NOTE_BLOCK_PLING, SoundEvent.BLOCK_NOTE_BLOCK_IMITATE_CREEPER, SoundEvent.BLOCK_NOTE_BLOCK_IMITATE_ENDER_DRAGON, SoundEvent.BLOCK_NOTE_BLOCK_IMITATE_PIGLIN, SoundEvent.BLOCK_NOTE_BLOCK_IMITATE_SKELETON, SoundEvent.BLOCK_NOTE_BLOCK_IMITATE_WITHER_SKELETON, SoundEvent.BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE,}; - private final byte version; - private final byte instrumentCount; + private static final Map CUSTOM_SOUND_MAP = Map.ofEntries(Map.entry("minecraft/random/levelup.ogg", SoundEvent.ENTITY_PLAYER_LEVELUP), Map.entry("minecraft/block/bell/bell_use01.ogg", SoundEvent.BLOCK_BELL_USE)); + + private final Songs song; private final int length; - private final int layerCount; - private final String songName; - private final String author; - private final String originalAuthor; - private final String description; - private final double tps; - private final byte timeSignature; + private final float tps; private final boolean loop; - private final byte maxLoopCount; - private final int loopStart; + private final int loopStartTick; + private final NavigableMap tempoEvents; + private final Map ticks; - private final Map> ticks; - - @SneakyThrows public SkyBlockSong(Songs song) { this.song = song; - ByteBuffer buffer = ByteBuffer.wrap(Files.readAllBytes(song.getPath())).order(ByteOrder.LITTLE_ENDIAN); - - BufferUtility.getUnsignedShort(buffer); // first 2 bytes are always nothing in new versions of NBS files - this.version = buffer.get(); - this.instrumentCount = buffer.get(); - this.length = BufferUtility.getUnsignedShort(buffer); - this.layerCount = BufferUtility.getUnsignedShort(buffer); - this.songName = BufferUtility.getNBSString(buffer); - this.author = BufferUtility.getNBSString(buffer); - this.originalAuthor = BufferUtility.getNBSString(buffer); - this.description = BufferUtility.getNBSString(buffer); - this.tps = BufferUtility.getUnsignedShort(buffer) / 100.0; - buffer.get(); // auto saving - buffer.get(); // auto saving duration - this.timeSignature = buffer.get(); - buffer.getInt(); // minutes spent - buffer.getInt(); // left clicks - buffer.getInt(); // right clicks - buffer.getInt(); // note blocks added - buffer.getInt(); // note blocks removed - BufferUtility.getNBSString(buffer); // midi file name - this.loop = buffer.get() == 1; - this.maxLoopCount = buffer.get(); - this.loopStart = BufferUtility.getUnsignedShort(buffer); - - this.ticks = getTicks(buffer); - } + ByteBuffer buf; + try { + buf = ByteBuffer.wrap(Files.readAllBytes(song.getPath())).order(ByteOrder.LITTLE_ENDIAN); + } catch (IOException e) { + throw new SongLoadException("Failed to load song " + song.name() + ": " + e.getMessage()); + } - private Map> getTicks(ByteBuffer buffer) { - Map> ticks = new HashMap<>(length); + short firstShort = buf.getShort(); + int version; + int vanillaInstrumentCount; + int length; + + if (firstShort == 0) { + version = buf.get() & 0xFF; + vanillaInstrumentCount = buf.get() & 0xFF; + length = version >= 3 ? buf.getShort() : -1; + } else { + version = 0; + vanillaInstrumentCount = 10; + length = firstShort; + } - int i = 0; + if (version > 5) throw new SongLoadException("Unsupported NBS version: " + version); + + int layerCount = Short.toUnsignedInt(buf.getShort()); + readString(buf); + readString(buf); + readString(buf); + readString(buf); + this.tps = Short.toUnsignedInt(buf.getShort()) / 100f; + buf.get(); + buf.get(); + buf.get(); + buf.position(buf.position() + 20); + readString(buf); + + if (version >= 4) { + this.loop = buf.get() == 1; + buf.get(); + this.loopStartTick = Short.toUnsignedInt(buf.getShort()); + } else { + this.loop = false; + this.loopStartTick = 0; + } + Map> layers = new HashMap<>(); + int tick = -1; + int maxTick = 0; while (true) { - int jumps = BufferUtility.getUnsignedShort(buffer); - if (jumps == 0) break; - i += jumps; + int jumpTicks = Short.toUnsignedInt(buf.getShort()); + if (jumpTicks == 0) break; + tick += jumpTicks; + if (tick > maxTick) maxTick = tick; + + int layer = -1; + while (true) { + int jumpLayers = Short.toUnsignedInt(buf.getShort()); + if (jumpLayers == 0) break; + layer += jumpLayers; + + int instrument = buf.get() & 0xFF; + int key = buf.get() & 0xFF; + int velocity = 100; + int panning = CENTER_PANNING; + short pitch = 0; + + if (version >= 4) { + velocity = buf.get() & 0xFF; + panning = buf.get() & 0xFF; + pitch = buf.getShort(); + } + + layers.computeIfAbsent(layer, _ -> new HashMap<>()).put(tick, new RawNote(instrument, key, velocity, panning, pitch)); + } + } - List tick = getNotes(buffer); - ticks.put(i, tick); + this.length = length >= 0 ? length : maxTick; + + LayerMeta[] layerMeta = new LayerMeta[layerCount]; + if (buf.hasRemaining()) { + for (int i = 0; i < layerCount; i++) { + readString(buf); + LayerStatus status = LayerStatus.NONE; + if (version >= 4) { + status = switch (buf.get() & 0xFF) { + case 1 -> LayerStatus.LOCKED; + case 2 -> LayerStatus.SOLO; + default -> LayerStatus.NONE; + }; + } + int vol = buf.get() & 0xFF; + int pan = version >= 2 ? (buf.get() & 0xFF) : CENTER_PANNING; + layerMeta[i] = new LayerMeta(vol, pan, status); + } } - return ticks; - } + List customInstruments = new ArrayList<>(); + if (buf.hasRemaining()) { + int count = buf.get() & 0xFF; + for (int i = 0; i < count; i++) { + String name = readString(buf); + String soundPath = readString(buf); + int instrumentPitch = buf.get() & 0xFF; + buf.get(); + customInstruments.add(new CustomInstrument(name, soundPath, instrumentPitch)); + } + } - private @Nullable List getNotes(ByteBuffer buffer) { - List notes = new ArrayList<>(); + boolean hasSoloLayers = false; + for (LayerMeta meta : layerMeta) { + if (meta != null && meta.status == LayerStatus.SOLO) { + hasSoloLayers = true; + break; + } + } - while (true) { - int jumps = BufferUtility.getUnsignedShort(buffer); - if (jumps == 0) break; + Map> tickSounds = HashMap.newHashMap(maxTick); + TreeMap tempoEvents = new TreeMap<>(); + tempoEvents.put(0, Math.max(this.tps, 0.01f)); + for (var layerEntry : layers.entrySet()) { + int layerIdx = layerEntry.getKey(); + LayerMeta meta = layerIdx < layerMeta.length && layerMeta[layerIdx] != null ? layerMeta[layerIdx] : new LayerMeta(100, CENTER_PANNING, LayerStatus.NONE); + + boolean muted = meta.status == LayerStatus.LOCKED || (hasSoloLayers && meta.status != LayerStatus.SOLO); + + float layerVolFactor = Math.min(meta.volume / 100f, 1f); + + for (var noteEntry : layerEntry.getValue().entrySet()) { + BakedNote bakedNote = bakeNote(noteEntry.getValue(), layerVolFactor, vanillaInstrumentCount, customInstruments); + Float tempoChange = bakedNote.tempoChange(); + if (tempoChange != null && tempoChange > 0f) { + tempoEvents.put(noteEntry.getKey(), tempoChange); + } + + Sound sound = bakedNote.sound(); + if (sound != null && !muted) { + tickSounds.computeIfAbsent(noteEntry.getKey(), _ -> new ArrayList<>()).add(sound); + } + } + } - notes.add(Note.readNote(buffer).toSound(Sound.Source.RECORD)); + Map bakedTicks = HashMap.newHashMap(tickSounds.size()); + tickSounds.forEach((t, sounds) -> bakedTicks.put(t, sounds.toArray(Sound[]::new))); + this.tempoEvents = Collections.unmodifiableNavigableMap(tempoEvents); + this.ticks = Collections.unmodifiableMap(bakedTicks); + } + + private static BakedNote bakeNote(RawNote note, float layerVolFactor, int vanillaInstrumentCount, List customInstruments) { + float effectiveKey = Math.clamp(note.key, 0, 87) + note.pitch / 100f; + SoundEvent soundEvent = null; + Key customKey = null; + + if (note.instrument < vanillaInstrumentCount) { + soundEvent = note.instrument < VANILLA_INSTRUMENTS.length ? VANILLA_INSTRUMENTS[note.instrument] : VANILLA_INSTRUMENTS[0]; + } else { + int customIdx = note.instrument - vanillaInstrumentCount; + if (customIdx >= 0 && customIdx < customInstruments.size()) { + CustomInstrument ci = customInstruments.get(customIdx); + + if (TEMPO_CHANGER_CUSTOM_INSTRUMENT_NAME.equals(ci.name)) { + return new BakedNote(null, Math.abs(note.pitch / 15f)); + } + + effectiveKey += ci.pitch - F_SHARP_4_KEY; + + if (ci.soundPath != null && !ci.soundPath.isBlank()) { + SoundEvent mapped = CUSTOM_SOUND_MAP.get(ci.soundPath); + if (mapped != null) { + soundEvent = mapped; + } else if (!ci.soundPath.contains("/") && !ci.soundPath.contains(".ogg")) { + String keyStr = ci.soundPath.contains(":") ? ci.soundPath : "minecraft:" + ci.soundPath; + customKey = Key.key(keyStr); + } else { + Logger.warn("Unmapped custom sound '{}', skipping", ci.soundPath); + return new BakedNote(null, null); + } + } else { + soundEvent = VANILLA_INSTRUMENTS[0]; + } + } else { + soundEvent = VANILLA_INSTRUMENTS[0]; + } } - if (notes.isEmpty()) return null; - return notes; + float pitch = (float) Math.pow(2.0, (effectiveKey - F_SHARP_4_KEY) / 12.0); + float volume = Math.clamp(layerVolFactor * (note.velocity / 100f), 0f, 1f); + + Sound sound = customKey != null ? Sound.sound(customKey, Sound.Source.RECORD, volume, pitch) : Sound.sound(soundEvent, Sound.Source.RECORD, volume, pitch); + return new BakedNote(sound, null); + } + + private static String readString(ByteBuffer buf) { + int len = buf.getInt(); + if (len <= 0) return ""; + byte[] bytes = new byte[len]; + buf.get(bytes); + return new String(bytes, StandardCharsets.UTF_8); + } + + private record RawNote(int instrument, int key, int velocity, int panning, short pitch) { } -} + + private record LayerMeta(int volume, int panning, LayerStatus status) { + } + + private record CustomInstrument(String name, String soundPath, int pitch) { + } + + private record BakedNote(Sound sound, Float tempoChange) { + } + + private enum LayerStatus {NONE, LOCKED, SOLO} +} \ No newline at end of file diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SkyBlockSongsHandler.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SkyBlockSongsHandler.java index 34ced2d13..ff4b48ec7 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SkyBlockSongsHandler.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SkyBlockSongsHandler.java @@ -9,58 +9,82 @@ import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; import javax.annotation.Nullable; -import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.function.Supplier; +import java.util.concurrent.ConcurrentHashMap; public record SkyBlockSongsHandler(SkyBlockPlayer player) { - private static final Map playerSongs = new HashMap<>(); + private static final Map PLAYER_SONGS = new ConcurrentHashMap<>(); @Getter public static boolean isEnabled; public void setPlayerSong(SkyBlockSong song) { if (!isEnabled) throw new IllegalStateException("SkyBlock songs are not enabled"); + stopPlayerSong(); - if (playerSongs.containsKey(player)) { - playerSongs.get(player).task.cancel(); - } - playerSongs.put(player, new PlayerSong(song, - MinecraftServer.getSchedulerManager().submitTask(new Supplier<>() { - int tick = 0; + int songLength = song.getLength(); + Map ticks = song.getTicks(); + var tempoEvents = song.getTempoEvents(); + float baseTps = Math.max(0.01f, song.getTps()); + boolean loops = song.isLoop(); + int loopStart = song.getLoopStartTick(); - @Override - public TaskSchedule get() { - if (tick > song.getLength() + 1) { - return TaskSchedule.stop(); - } + Task task = MinecraftServer.getSchedulerManager().buildTask(new Runnable() { + int songTick = 0; + float currentTps = baseTps; + double tickAccumulator = 0.0; - List sounds = song.getTicks().get(tick); - if (sounds != null) { - for (Sound sound : sounds) { - player.playSound(sound, Sound.Emitter.self()); - } - } + @Override + public void run() { + if (songTick > songLength) { + if (loops) { + songTick = loopStart; + tickAccumulator = 0.0; + var floorTempo = tempoEvents.floorEntry(songTick); + currentTps = floorTempo != null ? floorTempo.getValue() : baseTps; + } else { + PlayerSong ps = PLAYER_SONGS.remove(player); + if (ps != null) ps.task().cancel(); + return; + } + } - tick++; + tickAccumulator += currentTps / 20.0; + int safety = 0; + while (tickAccumulator >= 1.0 && safety++ < 100) { + Float tempoChange = tempoEvents.get(songTick); + if (tempoChange != null && tempoChange > 0f) { + currentTps = tempoChange; + } - return TaskSchedule.millis((long) (1000.0 / song.getTps())); + Sound[] sounds = ticks.get(songTick); + if (sounds != null) { + for (Sound sound : sounds) { + player.playSound(sound, Sound.Emitter.self()); + } } - }))); + + songTick++; + tickAccumulator -= 1.0; + if (songTick > songLength) { + break; + } + } + } + }).delay(TaskSchedule.immediate()).repeat(TaskSchedule.tick(1)).schedule(); + + PLAYER_SONGS.put(player, new PlayerSong(song, task)); + } + + public void stopPlayerSong() { + PlayerSong existing = PLAYER_SONGS.remove(player); + if (existing != null) existing.task().cancel(); } public @Nullable PlayerSong getPlayerSong() { if (!isEnabled) throw new IllegalStateException("SkyBlock songs are not enabled"); - return playerSongs.get(player); + return PLAYER_SONGS.get(player); } - public static class PlayerSong { - private final SkyBlockSong song; - public final Task task; - - public PlayerSong(SkyBlockSong song, Task task) { - this.song = song; - this.task = task; - } + public record PlayerSong(SkyBlockSong song, Task task) { } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SongLoadException.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SongLoadException.java new file mode 100644 index 000000000..e39002c94 --- /dev/null +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/noteblock/SongLoadException.java @@ -0,0 +1,7 @@ +package net.swofty.type.skyblockgeneric.noteblock; + +public class SongLoadException extends RuntimeException { + public SongLoadException(String message) { + super(message); + } +} diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/region/RegionType.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/region/RegionType.java index 5776fe236..9c3fb7d69 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/region/RegionType.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/region/RegionType.java @@ -119,6 +119,18 @@ public enum RegionType { DIAMOND_RESERVE("Diamond Reserve", DiamondReserveConfiguration.class), OBSIDIAN_SANCTUARY("Obsidian Sanctuary", ObsidianSanctuaryConfiguration.class), + // Galatea + TANGLEBURGS_PATH("Tangleburg's Path"), + TANGLEBURG("Tangleburg"), + TANGLEBURG_BANK("Tangleburg Bank", "§6"), + EVERGREEN_PLATEAU("Evergreen Plateau", "§a"), + SOUTH_REACHES("South Reaches", "§a"), + MOONGLADES_EDGE("Moonglade's Edge", "§2"), + MOONGLADE_MARSH("Moonglade Marsh", "§2"), + MURKWATER_LOCH("Murkwater Loch", "§2"), + MURKWATER_SHALLOWS("Murkwater Shallows", "§3"), + NORTH_WETLANDS("North Wetlands", "§2"), + DWARVEN_VILLAGE("Dwarven Village", DwarvenMinesConfiguration.class), DWARVEN_MINES("Dwarven Mines", "§2", DwarvenMinesConfiguration.class), GOBLIN_BURROWS("Goblin Burrows", DwarvenMinesConfiguration.class), diff --git a/type.skywarslobby/src/main/java/net/swofty/type/skywarslobby/npcs/NPCHolidayMan.java b/type.skywarslobby/src/main/java/net/swofty/type/skywarslobby/npcs/NPCHolidayMan.java index a35df1120..0b16cb254 100644 --- a/type.skywarslobby/src/main/java/net/swofty/type/skywarslobby/npcs/NPCHolidayMan.java +++ b/type.skywarslobby/src/main/java/net/swofty/type/skywarslobby/npcs/NPCHolidayMan.java @@ -46,7 +46,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent event) { - event.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + event.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCBeth.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCBeth.java index 96ff2375b..382d187a7 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCBeth.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCBeth.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCFarmerJon.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCFarmerJon.java index 0f1d1cbba..5aeaade88 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCFarmerJon.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCFarmerJon.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCFriendlyHiker.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCFriendlyHiker.java index c83d16a55..ef45b85bb 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCFriendlyHiker.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCFriendlyHiker.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCHungryHiker.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCHungryHiker.java index 05ebd39e3..7621ee088 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCHungryHiker.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCHungryHiker.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCHunterAva.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCHunterAva.java index bf851f1cd..9d0345493 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCHunterAva.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCHunterAva.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCJake.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCJake.java index a421a2305..e138ecd1f 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCJake.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCJake.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCMason.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCMason.java index d42188714..2bce7355c 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCMason.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCMason.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCMoby.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCMoby.java index f6afc07ce..7e072faac 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCMoby.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCMoby.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCShepherd.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCShepherd.java index aa04f92e6..62dfe0b5c 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCShepherd.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCShepherd.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTalbot.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTalbot.java index 309046eca..8298eb720 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTalbot.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTalbot.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTammy.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTammy.java index 28d3a632c..efebdc63f 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTammy.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTammy.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTony.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTony.java index 0d2b0ec1a..a9fe8e427 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTony.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTony.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTreasureHunter.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTreasureHunter.java index 61b975137..31a00953d 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTreasureHunter.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTreasureHunter.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTrevorTheTrapper.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTrevorTheTrapper.java index 83cb5dbb6..c9ed4000f 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTrevorTheTrapper.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/NPCTrevorTheTrapper.java @@ -41,7 +41,6 @@ public boolean looking(HypixelPlayer player) { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/villagers/VillagerWindmillOperator.java b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/villagers/VillagerWindmillOperator.java index 81693f4f8..5dc020938 100644 --- a/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/villagers/VillagerWindmillOperator.java +++ b/type.thefarmingislands/src/main/java/net/swofty/type/thefarmingislands/npcs/villagers/VillagerWindmillOperator.java @@ -38,8 +38,7 @@ public VillagerProfession profession() { @Override public void onClick(NPCInteractEvent e) { - e.player().sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + e.player().notImplemented(); } } diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/TrialOfFire.java b/type.thepark/src/main/java/net/swofty/type/thepark/TrialOfFire.java index b4e1f3495..892d47345 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/TrialOfFire.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/TrialOfFire.java @@ -65,8 +65,7 @@ public static void start(SkyBlockPlayer player) { // TODO: remove this if (trial == Trial.II) { sendMessage(player, "§cTrials are not finished."); - player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!") - .clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock"))); + player.notImplemented(); return; }