use of io.discloader.discloader.network.json.MemberJSON in project DiscLoader by R3alCl0ud.
the class Guild method fetchMember.
public CompletableFuture<IGuildMember> fetchMember(long memberID) {
CompletableFuture<IGuildMember> future = new CompletableFuture<IGuildMember>();
CompletableFuture<MemberJSON> cf = loader.rest.request(Methods.GET, Endpoints.guildMember(getID(), memberID), new RESTOptions(), MemberJSON.class);
cf.thenAcceptAsync(data -> {
future.complete(addMember(data, true));
});
return future;
}
use of io.discloader.discloader.network.json.MemberJSON in project DiscLoader by R3alCl0ud.
the class GuildMemberAdd method handle.
@Override
public void handle(SocketPacket packet) {
String d = this.gson.toJson(packet.d);
MemberJSON data = this.gson.fromJson(d, MemberJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
guild.addMember(data, true);
}
use of io.discloader.discloader.network.json.MemberJSON in project DiscLoader by R3alCl0ud.
the class GuildMemberUpdate method handle.
@Override
public void handle(SocketPacket packet) {
String d = this.gson.toJson(packet.d);
MemberJSON data = this.gson.fromJson(d, MemberJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
IGuildMember oldMember = guild.getMember(data.user.id), member = gfac.buildMember(guild, data);
guild.addMember(member);
if (shouldEmit() && oldMember != null) {
GuildMemberUpdateEvent event = new GuildMemberUpdateEvent(member, oldMember);
loader.emit(Events.GUILD_MEMBER_UPDATE, event);
loader.emit(event);
if (!member.getNickname().equals(oldMember.getNickname())) {
loader.emit(new GuildMemberNicknameUpdateEvent(member, oldMember.getNickname()));
}
member.getRoles().forEach(role -> {
if (!oldMember.hasRole(role)) {
loader.emit(new GuildMemberRoleAddEvent(oldMember, member, role));
}
});
oldMember.getRoles().forEach(role -> {
if (!member.hasRole(role)) {
loader.emit(new GuildMemberRoleRemoveEvent(oldMember, member, role));
}
});
// for (member)
}
}
use of io.discloader.discloader.network.json.MemberJSON in project DiscLoader by R3alCl0ud.
the class GuildMembersChunk method handle.
@Override
public void handle(SocketPacket packet) {
String d = this.gson.toJson(packet.d);
GuildMembersChunkJSON data = this.gson.fromJson(d, GuildMembersChunkJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
if (guild == null)
return;
Map<Long, IGuildMember> members = new HashMap<>();
for (MemberJSON m : data.members) {
IGuildMember member = EntityBuilder.getGuildFactory().buildMember(guild, EntityRegistry.addUser(m.user), new String[] {}, false, false, null);
guild.addMember(member);
members.put(member.getID(), member);
}
GuildMembersChunkEvent event = new GuildMembersChunkEvent(guild, members);
loader.emit(event);
}
use of io.discloader.discloader.network.json.MemberJSON in project DiscLoader by R3alCl0ud.
the class Guild method setup.
/**
* Sets up a guild with data from the gateway
*
* @param data
* The guild's data
*/
@Override
public void setup(GuildJSON data) {
try {
name = data.name;
icon = data.icon != null ? data.icon : null;
iconURL = icon != null ? Endpoints.guildIcon(getID(), icon) : null;
ownerID = SnowflakeUtil.parse(data.owner_id);
memberCount = data.member_count;
voiceRegion = new VoiceRegion(data.region);
splashHash = data.splash;
if (data.roles.length > 0) {
roles.clear();
for (RoleJSON role : data.roles) {
IRole r = gfac.buildRole(this, role);
roles.put(r.getID(), r);
}
}
if (data.members != null && data.members.length > 0) {
members.clear();
for (MemberJSON member : data.members) {
IGuildMember m = gfac.buildMember(this, member);
members.put(m.getID(), m);
}
}
if (data.channels != null && data.channels.length > 0) {
for (ChannelJSON channelData : data.channels) {
IGuildChannel chan = (IGuildChannel) EntityRegistry.addChannel(channelData, getLoader(), this);
if (chan instanceof IGuildTextChannel)
textChannels.put(chan.getID(), (IGuildTextChannel) chan);
else if (chan instanceof IGuildVoiceChannel)
voiceChannels.put(chan.getID(), (IGuildVoiceChannel) chan);
}
}
if (data.presences != null && data.presences.length > 0) {
presences.clear();
for (PresenceJSON presence : data.presences) {
this.setPresence(presence);
}
}
if (data.emojis != null && data.emojis.length > 0) {
this.guildEmojis.clear();
for (EmojiJSON e : data.emojis) {
this.guildEmojis.put(SnowflakeUtil.parse(e.id), new GuildEmoji(e, this));
}
}
if (data.voice_states != null && data.voice_states.length > 0) {
this.rawStates.clear();
for (VoiceStateJSON v : data.voice_states) {
this.rawStates.put(SnowflakeUtil.parse(v.user_id), new VoiceState(v, this));
}
}
this.available = data.unavailable == true ? false : true;
} catch (Exception e) {
e.printStackTrace();
}
}
Aggregations