use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.
the class EmojiUpdate method handle.
@Override
public void handle(SocketPacket packet) {
String d = this.gson.toJson(packet.d);
EmojiUpdateJSON data = gson.fromJson(d, EmojiUpdateJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
HashMap<Long, IGuildEmoji> emojis = new HashMap<>();
for (EmojiJSON e : data.emojis) {
IGuildEmoji emoji = new GuildEmoji(e, guild);
emojis.put(emoji.getID(), emoji);
}
if (shouldEmit()) {
if (data.emojis.length == guild.getEmojis().size()) {
IGuildEmoji oldEmoji;
for (IGuildEmoji emoji : emojis.values()) {
oldEmoji = guild.getEmojis().get(emoji.getID());
if (emoji.getID() == oldEmoji.getID() && !emoji.equals(oldEmoji)) {
GuildEmojiUpdateEvent event = new GuildEmojiUpdateEvent(emoji, oldEmoji);
loader.emit(Events.GUILD_EMOJI_UPDATE, event);
loader.emit(event);
}
}
} else if (data.emojis.length < guild.getEmojis().size()) {
for (IGuildEmoji emoji : guild.getEmojis().values()) {
if (!emojis.containsKey(emoji.getID())) {
GuildEmojiDeleteEvent event = new GuildEmojiDeleteEvent(emoji);
loader.emit("GuildEmojiDelete", event);
loader.emit(event);
}
}
} else if (data.emojis.length > guild.getEmojis().size()) {
for (IGuildEmoji emoji : emojis.values()) {
if (!guild.getEmojis().containsKey(emoji.getID())) {
GuildEmojiCreateEvent event = new GuildEmojiCreateEvent(emoji);
loader.emit("GuildEmojiCreate", event);
loader.emit(event);
}
}
}
}
guild.getEmojis().clear();
emojis.forEach((key, emoji) -> guild.getEmojis().put(key, emoji));
}
use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.
the class GuildBanAdd method handle.
@Override
public void handle(SocketPacket packet) {
String d = gson.toJson(packet.d);
GuildMemberRemoveJSON data = this.gson.fromJson(d, GuildMemberRemoveJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
IUser user = EntityRegistry.addUser(data.user);
guild.removeMember(user);
GuildBanAddEvent event = new GuildBanAddEvent(guild, user);
loader.emit(DLUtil.Events.GUILD_BAN_ADD, event);
loader.emit(event);
}
use of io.discloader.discloader.entity.guild.IGuild 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.entity.guild.IGuild in project DiscLoader by R3alCl0ud.
the class GuildMemberRemove method handle.
@Override
public void handle(SocketPacket packet) {
String d = this.gson.toJson(packet.d);
GuildMemberRemoveJSON data = this.gson.fromJson(d, GuildMemberRemoveJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
IGuildMember member = guild.getMember(data.user.id);
if (member == null)
member = EntityBuilder.getGuildFactory().buildMember(guild, EntityRegistry.addUser(data.user), new String[] {}, false, false, null);
guild.removeMember(member);
if (shouldEmit()) {
GuildMemberRemoveEvent event = new GuildMemberRemoveEvent(member);
loader.emit(event);
}
}
use of io.discloader.discloader.entity.guild.IGuild 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)
}
}
Aggregations