minor changes
This commit is contained in:
parent
743f7d2844
commit
756678c95b
@ -239,8 +239,7 @@ pub fn GatewayDispatchEvent(comptime T: type) type {
|
|||||||
message_update: ?*const fn (save: T, message: Discord.Message) anyerror!void = undefined,
|
message_update: ?*const fn (save: T, message: Discord.Message) anyerror!void = undefined,
|
||||||
message_delete: ?*const fn (save: T, log: Discord.MessageDelete) anyerror!void = undefined,
|
message_delete: ?*const fn (save: T, log: Discord.MessageDelete) anyerror!void = undefined,
|
||||||
message_delete_bulk: ?*const fn (save: T, log: Discord.MessageDeleteBulk) anyerror!void = undefined,
|
message_delete_bulk: ?*const fn (save: T, log: Discord.MessageDeleteBulk) anyerror!void = undefined,
|
||||||
// TODO: implement // message_delete_bulk: null = null,
|
// TODO: message_reaction_add: ?*const fn (save: T, log: Discord.MessageReactionAdd) anyerror!void = undefined,
|
||||||
// TODO: implement // message_reaction_add: null = null,
|
|
||||||
// TODO: implement // message_reaction_remove: null = null,
|
// TODO: implement // message_reaction_remove: null = null,
|
||||||
// TODO: implement // message_reaction_remove_all: null = null,
|
// TODO: implement // message_reaction_remove_all: null = null,
|
||||||
// TODO: implement // message_reaction_remove_emoji: null = null,
|
// TODO: implement // message_reaction_remove_emoji: null = null,
|
||||||
|
@ -404,12 +404,11 @@ pub fn send(self: *Self, _: bool, data: anytype) SendError!void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn handleEvent(self: *Self, name: []const u8, payload: []const u8) !void {
|
pub fn handleEvent(self: *Self, name: []const u8, payload: []const u8) !void {
|
||||||
if (std.ascii.eqlIgnoreCase(name, "ready")) {
|
|
||||||
var attempt = try self.parseJson(payload);
|
var attempt = try self.parseJson(payload);
|
||||||
defer attempt.deinit();
|
defer attempt.deinit();
|
||||||
|
|
||||||
const obj = attempt.getT(.object, "d").?;
|
const obj = attempt.getT(.object, "d").?;
|
||||||
|
if (std.ascii.eqlIgnoreCase(name, "ready")) {
|
||||||
self.resume_gateway_url = obj.getT(.string, "resume_gateway_url");
|
self.resume_gateway_url = obj.getT(.string, "resume_gateway_url");
|
||||||
|
|
||||||
self.logif("new gateway url: {s}", .{self.gatewayUrl()});
|
self.logif("new gateway url: {s}", .{self.gatewayUrl()});
|
||||||
@ -466,13 +465,10 @@ pub fn handleEvent(self: *Self, name: []const u8, payload: []const u8) !void {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (self.handler.ready) |event| try event(self, ready);
|
if (self.handler.ready) |event| try event(self, ready);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (std.ascii.eqlIgnoreCase(name, "message_delete")) {
|
if (std.ascii.eqlIgnoreCase(name, "message_delete")) {
|
||||||
var attempt = try self.parseJson(payload);
|
|
||||||
defer attempt.deinit();
|
|
||||||
|
|
||||||
const obj = attempt.getT(.object, "d").?;
|
|
||||||
const data = Discord.MessageDelete{
|
const data = Discord.MessageDelete{
|
||||||
.id = try Shared.Snowflake.fromRaw(obj.getT(.string, "id").?),
|
.id = try Shared.Snowflake.fromRaw(obj.getT(.string, "id").?),
|
||||||
.channel_id = try Shared.Snowflake.fromRaw(obj.getT(.string, "channel_id").?),
|
.channel_id = try Shared.Snowflake.fromRaw(obj.getT(.string, "channel_id").?),
|
||||||
@ -480,13 +476,10 @@ pub fn handleEvent(self: *Self, name: []const u8, payload: []const u8) !void {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (self.handler.message_delete) |event| try event(self, data);
|
if (self.handler.message_delete) |event| try event(self, data);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (std.ascii.eqlIgnoreCase(name, "message_delete_bulk")) {
|
if (std.ascii.eqlIgnoreCase(name, "message_delete_bulk")) {
|
||||||
var attempt = try self.parseJson(payload);
|
|
||||||
defer attempt.deinit();
|
|
||||||
|
|
||||||
const obj = attempt.getT(.object, "d").?;
|
|
||||||
var ids = std.ArrayList([]const u8).init(self.allocator);
|
var ids = std.ArrayList([]const u8).init(self.allocator);
|
||||||
defer ids.deinit();
|
defer ids.deinit();
|
||||||
|
|
||||||
@ -501,33 +494,28 @@ pub fn handleEvent(self: *Self, name: []const u8, payload: []const u8) !void {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (self.handler.message_delete_bulk) |event| try event(self, data);
|
if (self.handler.message_delete_bulk) |event| try event(self, data);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (std.ascii.eqlIgnoreCase(name, "message_update")) {
|
if (std.ascii.eqlIgnoreCase(name, "message_update")) {
|
||||||
var attempt = try self.parseJson(payload);
|
|
||||||
defer attempt.deinit();
|
|
||||||
const obj = attempt.getT(.object, "d").?;
|
|
||||||
|
|
||||||
const message = try Parser.parseMessage(self.allocator, obj);
|
const message = try Parser.parseMessage(self.allocator, obj);
|
||||||
//defer if (message.referenced_message) |mptr| self.allocator.destroy(mptr);
|
//defer if (message.referenced_message) |mptr| self.allocator.destroy(mptr);
|
||||||
|
|
||||||
if (self.handler.message_update) |event| try event(self, message);
|
if (self.handler.message_update) |event| try event(self, message);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (std.ascii.eqlIgnoreCase(name, "message_create")) {
|
if (std.ascii.eqlIgnoreCase(name, "message_create")) {
|
||||||
var attempt = try self.parseJson(payload);
|
|
||||||
defer attempt.deinit();
|
|
||||||
const obj = attempt.getT(.object, "d").?;
|
|
||||||
|
|
||||||
self.logif("it worked {s}", .{name});
|
self.logif("it worked {s}", .{name});
|
||||||
const message = try Parser.parseMessage(self.allocator, obj);
|
const message = try Parser.parseMessage(self.allocator, obj);
|
||||||
//defer if (message.referenced_message) |mptr| self.allocator.destroy(mptr);
|
//defer if (message.referenced_message) |mptr| self.allocator.destroy(mptr);
|
||||||
self.logif("it worked {s} {?s}", .{ name, message.content });
|
self.logif("it worked {s} {?s}", .{ name, message.content });
|
||||||
|
|
||||||
if (self.handler.message_create) |event| try event(self, message);
|
if (self.handler.message_create) |event| try event(self, message);
|
||||||
} else {
|
return;
|
||||||
if (self.handler.any) |anyEvent| try anyEvent(self, payload);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (self.handler.any) |anyEvent| try anyEvent(self, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// highly experimental, do not use
|
/// highly experimental, do not use
|
||||||
|
@ -35,7 +35,10 @@ pub fn main() !void {
|
|||||||
try handler.start(.{
|
try handler.start(.{
|
||||||
.token = std.posix.getenv("TOKEN") orelse unreachable,
|
.token = std.posix.getenv("TOKEN") orelse unreachable,
|
||||||
.intents = Intents.fromRaw(37379),
|
.intents = Intents.fromRaw(37379),
|
||||||
.run = .{ .message_create = &message_create, .ready = &ready },
|
.run = .{
|
||||||
|
.message_create = &message_create,
|
||||||
|
.ready = &ready,
|
||||||
|
},
|
||||||
.log = .yes,
|
.log = .yes,
|
||||||
.options = .{},
|
.options = .{},
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user