Add interactions / replying

This commit is contained in:
KillerBossOrig 2023-08-07 23:19:38 +02:00
parent 51e0c294b5
commit af8e46110c
4 changed files with 37 additions and 1 deletions

View file

@ -0,0 +1,18 @@
import 'package:tn_discord/src/requests.dart';
import 'message/message.dart';
class Interaction {
late String token;
late String id;
Interaction(dynamic data) {
token = data["token"];
id = data["id"];
print(data);
}
reply(Message message) {
return interactionReply(id, token, message.exportable());
}
}

View file

@ -4,7 +4,7 @@ class Message {
Message({ this.content });
/// Returns an object rapresentation of the message
exportable() {
Map<String, dynamic> exportable() {
return {
"content": content,
};

View file

@ -5,6 +5,7 @@ import "package:events_emitter/events_emitter.dart";
import "classes/guild/guild.dart";
import "classes/guild/guild_manager.dart";
import "classes/interaction.dart";
import "requests.dart";
final version = "10";
@ -140,6 +141,9 @@ class Client extends EventEmitter {
emit("GUILD_CREATE");
}
break;
case "INTERACTION_CREATE":
emit("INTERACTION_CREATE", Interaction(event["d"]));
break;
}
}, onDone: () {
switch (ws.closeCode) {

View file

@ -85,4 +85,18 @@ class Sender {
res = json.decode(res.body);
return res;
}
}
Future interactionReply(String id, String token, Map<String, dynamic> content) async {
var bd = {
"type": 4,
"data": content
};
dynamic res = await http.post(Uri.parse("$apiURL/interactions/$id/$token/callback"), body: json.encode(bd), headers: { "Content-Type": "application/json" });
if (res.statusCode != 204) {
throw Exception("Error ${res.statusCode} replying to the interaction");
}
res = json.decode(res.body);
return res;
}