33 lines
983 B
Zig
33 lines
983 B
Zig
const Shard = @import("discord.zig").Shard;
|
|
const Discord = @import("discord.zig").Discord;
|
|
const Intents = Discord.Intents;
|
|
const Thread = std.Thread;
|
|
const std = @import("std");
|
|
|
|
fn ready(payload: Discord.Ready) void {
|
|
std.debug.print("logged in as {s}\n", .{payload.user.username});
|
|
}
|
|
|
|
fn message_create(message: Discord.Message) void {
|
|
std.debug.print("captured: {?s} send by {s}\n", .{ message.content, message.author.username });
|
|
}
|
|
|
|
pub fn main() !void {
|
|
const allocator = std.heap.c_allocator;
|
|
const token = std.posix.getenv("TOKEN") orelse unreachable;
|
|
|
|
var handler = try Shard.login(allocator, .{
|
|
.token = token,
|
|
.intents = Intents.fromRaw(37379),
|
|
.run = Shard.GatewayDispatchEvent{
|
|
.message_create = &message_create,
|
|
.ready = &ready,
|
|
},
|
|
.log = .yes,
|
|
});
|
|
errdefer handler.deinit();
|
|
|
|
const t = try Thread.spawn(.{}, Shard.readMessage, .{ &handler, null });
|
|
defer t.join();
|
|
}
|