MOdern!
This commit is contained in:
parent
97ca10f53e
commit
9293af28dc
|
@ -2,8 +2,8 @@ import 'dart:async';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:nyxx/nyxx.dart';
|
import 'package:nyxx/nyxx.dart';
|
||||||
import 'package:nyxx_interactions/interactions.dart';
|
|
||||||
import 'package:nyxx_commander/commander.dart';
|
import 'package:nyxx_commander/commander.dart';
|
||||||
|
import 'package:nyxx_interactions/interactions.dart';
|
||||||
import 'package:osselbot/config.dart';
|
import 'package:osselbot/config.dart';
|
||||||
// import 'package:path/path.dart';
|
// import 'package:path/path.dart';
|
||||||
|
|
||||||
|
@ -18,10 +18,10 @@ void main(List<String> arguments) {
|
||||||
|
|
||||||
Interactions(bot)
|
Interactions(bot)
|
||||||
..registerSlashCommand(SlashCommandBuilder(
|
..registerSlashCommand(SlashCommandBuilder(
|
||||||
'test',
|
'info',
|
||||||
'test command',
|
'gives bot info',
|
||||||
[],
|
[],
|
||||||
)..registerHandler(testSlashCommand))
|
)..registerHandler((handler) => infoSlashCommand(handler, bot)))
|
||||||
..syncOnReady();
|
..syncOnReady();
|
||||||
|
|
||||||
Commander(bot, prefix: '?')
|
Commander(bot, prefix: '?')
|
||||||
|
@ -39,33 +39,11 @@ void main(List<String> arguments) {
|
||||||
})
|
})
|
||||||
..registerCommand('info', (context, message) async {
|
..registerCommand('info', (context, message) async {
|
||||||
await context.sendMessage(
|
await context.sendMessage(
|
||||||
embed: await infoCommand(bot, context, message));
|
embed: await infoCommand(bot, context.guild, context.shardId));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<EmbedBuilder> infoCommand(
|
// Bot routines
|
||||||
Nyxx bot, CommandContext context, String message) async {
|
|
||||||
var member = await context.guild?.fetchMember(bot.self.id);
|
|
||||||
|
|
||||||
var color = getColor(member ??= context.guild?.selfMember);
|
|
||||||
var iconUrl = bot.self.avatarURL();
|
|
||||||
|
|
||||||
return EmbedBuilder()
|
|
||||||
..addField(
|
|
||||||
name: 'ping',
|
|
||||||
content: bot.shardManager.shards
|
|
||||||
.elementAt(context.shardId)
|
|
||||||
.gatewayLatency
|
|
||||||
.inMilliseconds
|
|
||||||
.toString() +
|
|
||||||
'ms',
|
|
||||||
inline: true)
|
|
||||||
..addAuthor((author) {
|
|
||||||
author.iconUrl = iconUrl;
|
|
||||||
author.name = bot.self.username;
|
|
||||||
})
|
|
||||||
..color = color; // ??= DiscordColor.blue
|
|
||||||
}
|
|
||||||
|
|
||||||
DiscordColor getColor(Member? member) {
|
DiscordColor getColor(Member? member) {
|
||||||
if (member == null) return DiscordColor.black;
|
if (member == null) return DiscordColor.black;
|
||||||
|
@ -89,8 +67,47 @@ void randomStatus(Nyxx bot) {
|
||||||
game: Activity.of(statuses[rand.nextInt(statuses.length - 1)])));
|
game: Activity.of(statuses[rand.nextInt(statuses.length - 1)])));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> testSlashCommand(InteractionEvent event) async {
|
// Command embeds
|
||||||
|
|
||||||
|
// Info
|
||||||
|
Future<EmbedBuilder> infoCommand(Nyxx bot, Guild? guild, int? shardId) async {
|
||||||
|
var member = await guild!.fetchMember(bot.self.id);
|
||||||
|
|
||||||
|
var color = getColor(member);
|
||||||
|
var iconUrl = bot.self.avatarURL();
|
||||||
|
int ping;
|
||||||
|
|
||||||
|
if (shardId != null) {
|
||||||
|
ping = bot.shardManager.shards
|
||||||
|
.elementAt(shardId)
|
||||||
|
.gatewayLatency
|
||||||
|
.inMilliseconds;
|
||||||
|
} else {
|
||||||
|
ping = bot.shardManager.gatewayLatency.inMilliseconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
var uptimeString = bot.uptime.toString();
|
||||||
|
|
||||||
|
return EmbedBuilder()
|
||||||
|
..addField(name: 'Ping', content: ping.toString() + 'ms', inline: true)
|
||||||
|
..addField(
|
||||||
|
name: 'Uptime',
|
||||||
|
content: uptimeString.substring(0, uptimeString.length - 7),
|
||||||
|
inline: true)
|
||||||
|
..addAuthor((author) {
|
||||||
|
author.iconUrl = iconUrl;
|
||||||
|
author.name = bot.self.username;
|
||||||
|
})
|
||||||
|
..color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Command helpers
|
||||||
|
|
||||||
|
// /info command
|
||||||
|
Future<void> infoSlashCommand(InteractionEvent event, Nyxx bot) async {
|
||||||
await event.acknowledge();
|
await event.acknowledge();
|
||||||
|
|
||||||
await event.respond(content: 'hello, world');
|
await event.respond(
|
||||||
|
embed: await infoCommand(
|
||||||
|
bot, await event.interaction.guild!.getOrDownload(), null));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue