-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdiscordIPC.lua
48 lines (41 loc) · 1.03 KB
/
discordIPC.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
require 'utf8_utils'
local json = require 'json'
local struct = require 'struct'
local OP_HANDSHAKE = 0
local OP_FRAME = 1
local OP_CLOSE = 2
local sock = nil
local function send(opcode, payload)
local function encode(opcode, payload)
payload = json.encode(payload)
payload = payload:toutf8()
return struct.pack('<ii', opcode, #payload) .. payload
end
local encodedPayload = encode(opcode, payload)
sock:write(encodedPayload)
sock:flush()
end
function Connect(clientID)
sock = io.open('\\\\?\\pipe\\discord-ipc-0', "w+b")
send(OP_HANDSHAKE, {v = 1, client_id = clientID})
end
function Disconnect()
if sock ~= nil then
send(OP_CLOSE, {})
sock:close()
sock = nil
end
end
function UpdateActivity(activity)
if sock ~= nil then
local payload = {
cmd = 'SET_ACTIVITY',
args = {
activity = activity,
pid = 1312
},
nonce = '1312'
}
send(OP_FRAME, payload)
end
end