Last active
June 10, 2024 12:58
-
-
Save andrewbelling/4a7def344138a1e014d504bd6123b87d to your computer and use it in GitHub Desktop.
Really cursed discord bot via jsmacros
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const token = '<token>'; | |
const channelId = '<channelId>'; | |
var delay = 0; | |
var lastHeartbeat = 0; | |
var stuff = false; | |
var wtf = 1; | |
const listener = JsMacros.on('Tick', JavaWrapper.methodToJava(() => { | |
if (stuff) { | |
if (Date.now() - lastHeartbeat > delay) { | |
sendHeartbeat(); | |
lastHeartbeat = Date.now(); | |
} | |
} | |
})) | |
const websocket = Request.createWS('wss://gateway.discord.gg/?v=9&encoding=json'); | |
websocket.onConnect = JavaWrapper.methodToJava((ws, data) => { | |
Chat.log('Connected to Discord Gateway'); | |
authenticate(ws); | |
}); | |
websocket.onTextMessage = JavaWrapper.methodToJava((ws, data) => { | |
const message = JSON.parse(data); | |
switch (message.op) { | |
case 10: | |
//sendHeartbeat(); | |
startHeartbeat(message); | |
break; | |
case 0: | |
handleMessage(message); | |
break; | |
} | |
}); | |
websocket.onError = JavaWrapper.methodToJava((ws, data) => { | |
Chat.log(`damn, error ${data.getError()}`); | |
}); | |
function authenticate(ws) { | |
const payload = { | |
op: 2, | |
d: { | |
token: token, | |
intents: 47047, | |
properties: { | |
os: 'linux', | |
browser: 'custom', | |
device: 'custom', | |
}, | |
}, | |
}; | |
ws.sendText(JSON.stringify(payload)); | |
} | |
function sendHeartbeat() { | |
const payload = { | |
op: 1, | |
d: wtf | |
}; | |
wtf += 1; | |
websocket.sendText(JSON.stringify(payload)); | |
} | |
function startHeartbeat(message) { | |
delay = message.d.heartbeat_interval - 200; | |
stuff = true; | |
} | |
function handleMessage(message) { | |
if (message.t === 'MESSAGE_CREATE') { | |
const channelRespID = message.d.channel_id; | |
const content = message.d.content; | |
if (channelRespID === channelId) { | |
Chat.log(`Message in the specified channel: ${content}`); | |
} | |
} | |
} | |
websocket.getWs().connect() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment