Page Menu
Home
desp's stash
Search
Configure Global Search
Log In
Files
F547622
DiscordBot.java
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Subscribers
None
DiscordBot.java
View Options
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
Details
Attached
Mime Type
text/x-c
Expires
Wed, Jan 28, 2:49 AM (1 d, 2 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
fd/d2/05c9fd7f1d84cbf0036772939696
Attached To
rARPC Discord Anime RPC
Event Timeline
Log In to Comment