diff options
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java')
-rw-r--r-- | src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java b/src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java new file mode 100644 index 00000000..f3b75d41 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/RichPresenceManager.java @@ -0,0 +1,74 @@ +package kr.syeyoung.dungeonsguide; + +import com.jagrosh.discordipc.IPCClient; +import com.jagrosh.discordipc.IPCListener; +import com.jagrosh.discordipc.entities.Packet; +import com.jagrosh.discordipc.entities.RichPresence; +import com.jagrosh.discordipc.entities.User; +import com.jagrosh.discordipc.exceptions.NoDiscordClientException; +import kr.syeyoung.dungeonsguide.events.SkyblockJoinedEvent; +import kr.syeyoung.dungeonsguide.events.SkyblockLeftEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.json.JSONObject; + +import java.time.OffsetDateTime; + +public class RichPresenceManager implements IPCListener { + public static RichPresenceManager INSTANCE = new RichPresenceManager(); + + private IPCClient ipcClient; + public void setup() throws NoDiscordClientException { + ipcClient = new IPCClient(816298079732498473L); + ipcClient.setListener(this); + ipcClient.connect(); + } + + @Override + public void onReady(IPCClient client) { + updatePresence(); + } + + @Override + public void onActivityJoinRequest(IPCClient client, String secret, User user) { + System.out.println(user.getAsMention()+" wanna join"); + } + + @Override + public void onPacketReceived(IPCClient client, Packet packet) { + System.out.println("Packet recv from rpc "+packet); + } + + @Override + public void onDisconnect(IPCClient client, Throwable t) { + t.printStackTrace(); + try { + setup(); + } catch (NoDiscordClientException e) { + e.printStackTrace(); + } + } + + private SkyblockStatus skyblockStatus = e.getDungeonsGuide().getSkyblockStatus(); + + + public void updatePresence() { + if (!skyblockStatus.isOnHypixel()) { + ipcClient.sendRichPresence(null); + } else { + ipcClient.sendRichPresence(new RichPresence.Builder() + .setJoinSecret("")); + } + } + + private String JOIN_SECRET; + + + @SubscribeEvent + public void joinSkyblock(SkyblockJoinedEvent skyblockJoinedEvent) { + updatePresence(); + } + @SubscribeEvent + public void leaveSkyblock(SkyblockLeftEvent skyblockLeftEvent) { + updatePresence(); + } +} |