Page MenuHomedesp's stash

DiscordBot.java
No OneTemporary

DiscordBot.java

package me.despawningbone.selfbot;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import com.sun.jna.platform.win32.WinDef.HWND;
import club.minnced.discord.rpc.DiscordEventHandlers;
import club.minnced.discord.rpc.DiscordRPC;
import club.minnced.discord.rpc.DiscordRichPresence;
import com.sun.jna.platform.win32.User32;
public class DiscordBot {
public static String prevTitle = "";
public static DiscordRichPresence prevPresence = new DiscordRichPresence();
public static boolean cleared = false;
public static void main(String[] args) {
DiscordRPC lib = DiscordRPC.INSTANCE;
String applicationId = "542685911607934986";
String steamId = "";
DiscordEventHandlers handlers = new DiscordEventHandlers();
handlers.ready = (user) -> System.out.println("Ready!");
lib.Discord_Initialize(applicationId, handlers, true, steamId);
new Thread(() -> {
while(true) {
lib.Discord_RunCallbacks();
String temp = "";
if(Platform.isWindows()) {
char[] buffer = new char[2048];
HWND hwnd = User32.INSTANCE.GetForegroundWindow();
User32.INSTANCE.GetWindowText(hwnd, buffer, 1024);
temp = Native.toString(buffer);
} else if(Platform.isMac()) {
final String[] script = {"osascript", "-e", "tell application \"System Events\"", "-e", "tell (first process whose frontmost is true) to return name of window 1", "-e", "end tell"};
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec(script).getInputStream()))) {
String buffer = null;
while ((buffer = bufferedReader.readLine()) != null) {
temp = buffer;
System.out.println(temp);
}
} catch (IOException e) {
e.printStackTrace();
}
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {e.printStackTrace();}
if(temp.contains("- Watch Anime") || temp.contains("Online Sub - AnimeKisa")) {
if(temp.contains("AnimeKisa")) {
String title = temp.substring(6).split(" Online Sub - AnimeKisa")[0];
if(!prevTitle.equals(title)) {
System.out.println(title);
String[] split = title.split("Episode");
String epi = "Episode" + split[1]; //animekisa puts everything with episode
String name = split[0];
DiscordRichPresence presence = new DiscordRichPresence();
presence.details = name;
if(!epi.isEmpty()) presence.state = epi;
presence.largeImageKey = "animekisa";
presence.largeImageText = "animekisa";
//presence.startTimestamp = System.currentTimeMillis() / 1000; // epoch second
System.out.println(presence.details);
System.out.println(presence.state);
//presence.details = "";
lib.Discord_UpdatePresence(presence);
prevTitle = title;
prevPresence = presence;
cleared = false;
}
} else {
String title = temp.split("- Watch Anime")[0];
if(!prevTitle.equals(title)) {
System.out.println(title);
String[] split = title.split("Episode");
String epi = "";
String name = split[0];
if(!temp.contains("- Watch Anime Movie Online English Subbed")) {
if(split.length < 2) continue; //theres no reason for it to not have episodes if its not movie
epi = "Episode" + split[1];
} else {
epi = "Anime Movie";
}
DiscordRichPresence presence = new DiscordRichPresence();
presence.details = name;
if(!epi.isEmpty()) presence.state = epi;
presence.largeImageKey = "otakustream";
presence.largeImageText = "OtakuStream";
//presence.startTimestamp = System.currentTimeMillis() / 1000; // epoch second
System.out.println(presence.details);
System.out.println(presence.state);
//presence.details = "";
lib.Discord_UpdatePresence(presence);
prevTitle = title;
prevPresence = presence;
cleared = false;
}
}
} else {
if(!cleared && !temp.contains(" - Discord") && !temp.contains("工作切換") && !temp.contains("Picture-in-Picture")) {
lib.Discord_ClearPresence();
cleared = true;
prevTitle = "";
}
/*if(prevPresence.details != null && !prevPresence.details.equals("Idle")) {
DiscordRichPresence presence = new DiscordRichPresence();
presence.details = "Idle";
presence.largeImageKey = "otakustream";
presence.largeImageText = "OtakuStream";
lib.Discord_UpdatePresence(presence);
prevPresence = presence;
}*/
}
}
}, "RPC-Callback-Handler").start();
}
}

File Metadata

Mime Type
text/x-c
Expires
Wed, Jan 28, 2:49 AM (23 h, 1 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
fd/d2/05c9fd7f1d84cbf0036772939696

Event Timeline