Update examples
This commit is contained in:
parent
e5a77c5f38
commit
2d33610c88
|
@ -20,17 +20,17 @@ void main() {
|
|||
}
|
||||
|
||||
// Get guild object from message
|
||||
final guild = (e.message as GuildMessage).guild!;
|
||||
final guild = (e.message as GuildMessage).guild.getFromCache()!;
|
||||
|
||||
// Created text channel. Remember discord will lower the case of name and replace spaces with - and do other sanitization
|
||||
final channel = await guild.createChannel("TEST CHANNEL", ChannelType.text) as GuildTextChannel;
|
||||
final channel = (await guild.createChannel("TEST CHANNEL", ChannelType.text)) as GuildTextChannel;
|
||||
|
||||
// Send feedback
|
||||
await e.message.channel.send(content: "Crated ${channel.mention}");
|
||||
await e.message.channel.getFromCache().sendMessage(content: "Crated ${channel.mention}");
|
||||
|
||||
// Delete channel that we just created
|
||||
await channel.delete();
|
||||
|
||||
Gu
|
||||
// Send feedback
|
||||
await e.message.channel.send(content: "Deleted ${channel.mention}");
|
||||
}
|
||||
|
|
|
@ -22,13 +22,13 @@ void main() {
|
|||
|
||||
// Creating role with RoleBuilder. We have to cast `e.message` to GuildMessage because we want to access guild property
|
||||
// and generic dont have that.
|
||||
final role = await (e.message as GuildMessage).guild!.createRole(RoleBuilder("testRole")..color = DiscordColor.chartreuse);
|
||||
final role = await (e.message as GuildMessage).guild.getFromCache()!.createRole(RoleBuilder("testRole")..color = DiscordColor.chartreuse);
|
||||
|
||||
// Cast message author to member because webhook can also be message author. And add role to user
|
||||
await (e.message.author as CachelessMember).addRole(role);
|
||||
await (e.message as GuildMessage).member.addRole(role);
|
||||
|
||||
// Send message with confirmation of given action
|
||||
await e.message.channel.send(content: "Added [${role.name}] to user: [${e.message.author.tag}");
|
||||
await e.message.channel.getFromCache()?.sendMessage(content: "Added [${role.name}] to user: [${e.message.author.tag}");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
import "package:nyxx/nyxx.dart";
|
||||
|
||||
DiscordColor getColorForUserFromMessage(Message message) {
|
||||
if (message is GuildMessage) {
|
||||
return message.member.highestRole.color;
|
||||
}
|
||||
|
||||
return DiscordColor.black;
|
||||
}
|
||||
|
||||
// Main function
|
||||
void main() {
|
||||
// Create new bot instance. Replace string with your token
|
||||
|
@ -29,10 +37,10 @@ void main() {
|
|||
..addFooter((footer) {
|
||||
footer.text = "Footer example, good";
|
||||
})
|
||||
..color = (e.message.author is CacheMember) ? (e.message.author as CacheMember).color : DiscordColor.black;
|
||||
..color = getColorForUserFromMessage(e.message);
|
||||
|
||||
// Sent an embed to channel where message received was sent
|
||||
e.message.channel.send(embed: embed);
|
||||
e.message.channel.getFromCache()?.sendMessage(embed: embed);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -20,10 +20,10 @@ void main() {
|
|||
}
|
||||
|
||||
// Create default invite. We have to cast channel to access guild specific functionality.
|
||||
final invite = await (e.message.channel as GuildTextChannel).createInvite();
|
||||
final invite = await (e.message.channel as TextGuildChannel).createInvite();
|
||||
|
||||
// Send back invite url
|
||||
await e.message.channel.send(content: invite.url);
|
||||
await e.message.channel.getFromCache()?.sendMessage(content: invite.url);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -35,10 +35,10 @@ void main() {
|
|||
final userToBan = getUserToBan(e.message as GuildMessage);
|
||||
|
||||
// Ban user using variable initialized before
|
||||
await (e.message as GuildMessage).guild!.ban(userToBan);
|
||||
await (e.message as GuildMessage).guild.getFromCache()!.ban(userToBan);
|
||||
|
||||
// Send feedback
|
||||
await e.message.channel.send(content: "👍");
|
||||
await e.message.channel.getFromCache()?.send(content: "👍");
|
||||
}
|
||||
|
||||
// Check if message content equals "!embed"
|
||||
|
@ -52,10 +52,10 @@ void main() {
|
|||
final userToBan = getUserToBan(e.message as GuildMessage);
|
||||
|
||||
// Kick user
|
||||
await (e.message as GuildMessage).guild!.kick(userToBan);
|
||||
await (e.message as GuildMessage).guild.getFromCache()!.kick(userToBan);
|
||||
|
||||
// Send feedback
|
||||
await e.message.channel.send(content: "👍");
|
||||
await e.message.channel.getFromCache()?.sendMessage(content: "👍");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -21,13 +21,13 @@ void main() {
|
|||
}
|
||||
|
||||
// Get current channel
|
||||
final messageChannel = e.message.channel as CacheGuildChannel;
|
||||
final messageChannel = (e.message.channel.getFromCache()) as GuildChannel;
|
||||
|
||||
// Get member from id
|
||||
final member = await (e.message as GuildMessage).guild!.getMemberById(302359032612651009.toSnowflake());
|
||||
final member = await (e.message as GuildMessage).guild.getFromCache()!.members[302359032612651009.toSnowflake()]!;
|
||||
|
||||
// Get current member permissions in context of channel
|
||||
final permissions = messageChannel.effectivePermissions(member as CacheMember);
|
||||
final permissions = await messageChannel.effectivePermissions(member);
|
||||
|
||||
// Get current member permissions as builder
|
||||
final permissionsAsBuilder = permissions.toBuilder()..sendMessages = true;
|
||||
|
|
|
@ -15,7 +15,7 @@ void main() {
|
|||
// Check if message content equals "!ping"
|
||||
if (e.message.content == "!ping") {
|
||||
// Send "Pong!" to channel where message was received
|
||||
e.message.channel.send(content: "Pong!");
|
||||
e.message.channel.getFromCache()?.sendMessage(content: "Pong!");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ void main() {
|
|||
// Files argument needs to be list of AttachmentBuilder object with
|
||||
// path to file that you want to send. You can also use other
|
||||
// AttachmentBuilder constructors to send File object or raw bytes
|
||||
e.message.channel.send(files: [AttachmentBuilder.path("kitten.jpeg")]);
|
||||
e.message.channel.getFromCache().sendMessage(files: [AttachmentBuilder.path("kitten.jpeg")]);
|
||||
}
|
||||
|
||||
// Check if message content equals "!givemeembed"
|
||||
|
@ -33,7 +33,7 @@ void main() {
|
|||
..thumbnailUrl = attachment.attachUrl;
|
||||
|
||||
// Send everything we created before to channel where message was received.
|
||||
e.message.channel.send(files: [attachment], embed: embed, content: "HEJKA!");
|
||||
e.message.channel.getFromCache()?.sendMessage(files: [attachment], embed: embed, content: "HEJKA!");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
part of nyxx;
|
||||
|
||||
abstract class IGuildEmoji extends SnowflakeEntity implements IEmoji {
|
||||
/// True if emoji is partial.
|
||||
bool get isPartial;
|
||||
|
@ -9,7 +10,7 @@ abstract class IGuildEmoji extends SnowflakeEntity implements IEmoji {
|
|||
IGuildEmoji._new(Map<String, dynamic> raw): super(Snowflake(raw["id"]));
|
||||
|
||||
/// Creates partial emoji from given String or Snowflake.
|
||||
static GuildEmojiPartial fromId(dynamic id) => GuildEmojiPartial._new({"id": id.toString()});
|
||||
factory IGuildEmoji.fromId(dynamic id) => GuildEmojiPartial._new({ "id": id.toString() });
|
||||
|
||||
@override
|
||||
String formatForMessage() => "<:$id>";
|
||||
|
|
|
@ -187,6 +187,8 @@ abstract class IHttpEndpoints {
|
|||
|
||||
String stickerUrl(String stickerHash, String extension);
|
||||
|
||||
String emojiUrl(Snowflake emojiId);
|
||||
|
||||
Future<DMChannel> createDMChannel(Snowflake userId);
|
||||
}
|
||||
|
||||
|
@ -1115,6 +1117,10 @@ class _HttpEndpoints implements IHttpEndpoints {
|
|||
String stickerUrl(String stickerHash, String extension) =>
|
||||
"https://cdn.${Constants.cdnHost}/stickers/$stickerHash.$extension";
|
||||
|
||||
@override
|
||||
String emojiUrl(Snowflake emojiId) =>
|
||||
"https://cdn.discordapp.com/emojis/$emojiId.png";
|
||||
|
||||
@override
|
||||
Future<DMChannel> createDMChannel(Snowflake userId) async {
|
||||
final response = await _httpClient._execute(BasicRequest._new("/users/@me/channels", method: "POST", body: {
|
||||
|
|
Loading…
Reference in a new issue