diff --git a/build.gradle b/build.gradle index 7084de3..210447e 100644 --- a/build.gradle +++ b/build.gradle @@ -13,6 +13,7 @@ repositories { name = "cursed-mappings" url = "https://raw.githubusercontent.com/BleachDev/cursed-mappings/main/" } + maven { url 'https://jitpack.io' } } loom { @@ -26,6 +27,7 @@ dependencies { modImplementation "net.legacyfabric.legacy-fabric-api:legacy-fabric-api:${project.fabric_version}" implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.github.LabyStudio:java-spotify-api:+:all' } processResources { diff --git a/src/main/java/net/silentclient/client/mods/ModInstances.java b/src/main/java/net/silentclient/client/mods/ModInstances.java index 75f386b..af1d863 100644 --- a/src/main/java/net/silentclient/client/mods/ModInstances.java +++ b/src/main/java/net/silentclient/client/mods/ModInstances.java @@ -186,6 +186,7 @@ public class ModInstances { // } mods.add(new QuickPlayMod()); mods.add(new SoundsMod()); + mods.add(new SpotifyMod()); // mods.add(new ItemSizeMod()); } diff --git a/src/main/java/net/silentclient/client/mods/hud/PackDisplayMod.java b/src/main/java/net/silentclient/client/mods/hud/PackDisplayMod.java index 18580e7..87116f8 100644 --- a/src/main/java/net/silentclient/client/mods/hud/PackDisplayMod.java +++ b/src/main/java/net/silentclient/client/mods/hud/PackDisplayMod.java @@ -16,6 +16,7 @@ import net.silentclient.client.mods.ModCategory; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Objects; public class PackDisplayMod extends HudMod { @@ -52,9 +53,9 @@ public class PackDisplayMod extends HudMod { List rps = Lists.reverse(this.mc.getResourcePackRepository().getRepositoryEntries()); int count = rps.size(); - String name = ""; + String name; if(count != 0) { - ResourcePackRepository.Entry entry = rps.get(order == "First Pack" ? 0 : count - 1); + ResourcePackRepository.Entry entry = rps.get(Objects.equals(order, "First Pack") ? 0 : count - 1); name = entry.getResourcePackName().replace(".zip", "").trim(); } else { name = mc.getResourcePackRepository().rprDefaultResourcePack.getPackName(); diff --git a/src/main/java/net/silentclient/client/mods/hud/SpotifyMod.java b/src/main/java/net/silentclient/client/mods/hud/SpotifyMod.java new file mode 100644 index 0000000..5d387d9 --- /dev/null +++ b/src/main/java/net/silentclient/client/mods/hud/SpotifyMod.java @@ -0,0 +1,44 @@ +package net.silentclient.client.mods.hud; + +import de.labystudio.spotifyapi.SpotifyAPI; +import de.labystudio.spotifyapi.SpotifyAPIFactory; +import net.silentclient.client.Client; +import net.silentclient.client.gui.hud.ScreenPosition; +import net.silentclient.client.mods.HudMod; +import net.silentclient.client.mods.ModCategory; +import net.silentclient.client.mods.ModDraggable; + +/** + * @author refactoring + */ +public class SpotifyMod extends HudMod { + private SpotifyAPI api = SpotifyAPIFactory.createInitialized(); + + public SpotifyMod() { + super("Spotify HUD", ModCategory.MODS, "silentclient/icons/mods/spotify.png"); + } + + @Override + public String getText() { + if(!api.isConnected()) return " Not connected "; + if(!api.isPlaying()) return " Nothing playing "; + + if(api.hasTrack()) { + return " " + api.getTrack().getArtist() + " — " + api.getTrack().getName() + " "; + } + + return " No track "; + } + + @Override + public String getTextForRender() { + if(!api.isConnected()) return "Not connected"; + if(!api.isPlaying()) return "Nothing playing"; + + if(api.hasTrack()) { + return api.getTrack().getArtist() + " — " + api.getTrack().getName(); + } + + return "No track"; + } +} diff --git a/src/main/resources/assets/minecraft/silentclient/icons/mods/spotify.png b/src/main/resources/assets/minecraft/silentclient/icons/mods/spotify.png new file mode 100644 index 0000000..174a8c8 Binary files /dev/null and b/src/main/resources/assets/minecraft/silentclient/icons/mods/spotify.png differ