Updating guilds

This commit is contained in:
KillerBossOrig 2023-08-07 22:39:15 +02:00
parent fbb179e803
commit 51e0c294b5
5 changed files with 38 additions and 13 deletions

View file

@ -3,6 +3,7 @@ import '../images/guild_icon.dart';
import '../../requests.dart'; import '../../requests.dart';
import '../channel/channel.dart'; import '../channel/channel.dart';
import '../channel/channel_manager.dart'; import '../channel/channel_manager.dart';
import '../images/guild_splash.dart';
import '../member/member.dart'; import '../member/member.dart';
import '../member/member_manager.dart'; import '../member/member_manager.dart';
import '../role/role.dart'; import '../role/role.dart';
@ -27,7 +28,8 @@ class Guild {
late String name; // x | x | x late String name; // x | x | x
late GuildIcon? icon; // x | x | x late GuildIcon? icon; // x | x | x
late String? iconHash; // x | x | late String? iconHash; // x | x |
String? splash; // x | x | String? splashHash; // x | x |
GuildSplash? splash;
String? discoverySplash; // x | x | String? discoverySplash; // x | x |
bool? appIsOwner; // | | x bool? appIsOwner; // | | x
Future<Member>? owner; // | | Future<Member>? owner; // | |
@ -93,9 +95,16 @@ class Guild {
unavailable = false; unavailable = false;
name = data["name"]; name = data["name"];
icon = GuildIcon(data["icon"], id); if (data["icon"] != null) {
icon = GuildIcon(data["icon"], id);
} else {
icon = null;
}
iconHash = data["icon_hash"]; iconHash = data["icon_hash"];
splash = data["splash"]; splashHash = data["splash"];
if (splashHash != null) {
splash = GuildSplash(splashHash.toString(), id);
}
if (data["discovery_splash"] != null) { if (data["discovery_splash"] != null) {
discoverySplash = data["discovery_splash"]; discoverySplash = data["discovery_splash"];
} else { } else {
@ -103,7 +112,11 @@ class Guild {
} }
appIsOwner = data["owner"]; appIsOwner = data["owner"];
ownerId = data["owner_id"]; ownerId = data["owner_id"];
owner = members?.fetch(ownerId.toString()); if (ownerId != null) {
owner = members?.fetch(ownerId.toString());
} else {
owner = null;
}
permissions = data["permissions"]; permissions = data["permissions"];
afkChannelId = data["afk_channel_id"]; afkChannelId = data["afk_channel_id"];
afkTimeout = data["afk_timeout"]; afkTimeout = data["afk_timeout"];

View file

@ -1,13 +1,11 @@
import '../../requests.dart';
import "guild.dart"; import "guild.dart";
class UnavailableGuild { class UnavailableGuild {
final Sender _sender;
late String id; late String id;
late bool unavailable; late bool unavailable;
late Guild? notUpdatedData; late Guild? notUpdatedData;
UnavailableGuild(this._sender, this.id, { this.notUpdatedData }) { UnavailableGuild(this.id, { this.notUpdatedData }) {
unavailable = true; unavailable = true;
} }
} }

View file

@ -2,11 +2,12 @@ import 'base_image.dart';
class GuildIcon extends BaseImage { class GuildIcon extends BaseImage {
late String id; late String id;
GuildIcon(String hash, this.id) : super(hash) { GuildIcon(String hash, this.id) : super(hash) {
this.hash = hash; this.hash = hash;
} }
String url(String? extension) { String url({String? extension = "jpeg"}) {
return "https://cdn.discordapp.com/guild-icons/$id/$hash.$extension"; return "https://cdn.discordapp.com/icons/$id/$hash.$extension";
} }
} }

View file

@ -0,0 +1,13 @@
import 'base_image.dart';
class GuildSplash extends BaseImage {
late String id;
GuildSplash(String hash, this.id) : super(hash) {
this.hash = hash;
}
String url({String? extension = "jpeg"}) {
return "https://cdn.discordapp.com/splashes/$id/$hash.$extension";
}
}

View file

@ -4,10 +4,10 @@ import "../../requests.dart";
class MemberManager { class MemberManager {
final Collection cache = Collection(); final Collection cache = Collection();
String id; String guildId;
final Sender _sender; final Sender _sender;
MemberManager(this._sender, List<Member> members, this.id) { MemberManager(this._sender, List<Member> members, this.guildId) {
for (var member in members) { for (var member in members) {
cache.set(member.id, member); cache.set(member.id, member);
} }
@ -21,7 +21,7 @@ class MemberManager {
return await fetch(id, forceFetch: true); return await fetch(id, forceFetch: true);
} }
} else { } else {
var res = await _sender.fetchMember(this.id, id); var res = await _sender.fetchMember(guildId, id);
cache.set(id, Member(res)); cache.set(id, Member(res));
return Member(res); return Member(res);
} }