Search in sources :

Example 6 with IGuild

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));
}
Also used : EmojiUpdateJSON(io.discloader.discloader.network.json.EmojiUpdateJSON) IGuildEmoji(io.discloader.discloader.entity.guild.IGuildEmoji) GuildEmojiUpdateEvent(io.discloader.discloader.common.event.guild.emoji.GuildEmojiUpdateEvent) GuildEmojiDeleteEvent(io.discloader.discloader.common.event.guild.emoji.GuildEmojiDeleteEvent) HashMap(java.util.HashMap) GuildEmoji(io.discloader.discloader.core.entity.guild.GuildEmoji) IGuildEmoji(io.discloader.discloader.entity.guild.IGuildEmoji) GuildEmojiCreateEvent(io.discloader.discloader.common.event.guild.emoji.GuildEmojiCreateEvent) IGuild(io.discloader.discloader.entity.guild.IGuild) EmojiJSON(io.discloader.discloader.network.json.EmojiJSON)

Example 7 with IGuild

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);
}
Also used : GuildMemberRemoveJSON(io.discloader.discloader.network.json.GuildMemberRemoveJSON) GuildBanAddEvent(io.discloader.discloader.common.event.guild.GuildBanAddEvent) IUser(io.discloader.discloader.entity.user.IUser) IGuild(io.discloader.discloader.entity.guild.IGuild)

Example 8 with IGuild

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);
}
Also used : IGuild(io.discloader.discloader.entity.guild.IGuild) MemberJSON(io.discloader.discloader.network.json.MemberJSON)

Example 9 with IGuild

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);
    }
}
Also used : GuildMemberRemoveJSON(io.discloader.discloader.network.json.GuildMemberRemoveJSON) GuildMemberRemoveEvent(io.discloader.discloader.common.event.guild.member.GuildMemberRemoveEvent) IGuildMember(io.discloader.discloader.entity.guild.IGuildMember) IGuild(io.discloader.discloader.entity.guild.IGuild)

Example 10 with IGuild

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)
    }
}
Also used : GuildMemberUpdateEvent(io.discloader.discloader.common.event.guild.member.GuildMemberUpdateEvent) GuildMemberRoleAddEvent(io.discloader.discloader.common.event.guild.member.GuildMemberRoleAddEvent) GuildMemberNicknameUpdateEvent(io.discloader.discloader.common.event.guild.member.GuildMemberNicknameUpdateEvent) GuildMemberRoleRemoveEvent(io.discloader.discloader.common.event.guild.member.GuildMemberRoleRemoveEvent) IGuildMember(io.discloader.discloader.entity.guild.IGuildMember) IGuild(io.discloader.discloader.entity.guild.IGuild) MemberJSON(io.discloader.discloader.network.json.MemberJSON)

Aggregations

IGuild (io.discloader.discloader.entity.guild.IGuild)23 IGuildMember (io.discloader.discloader.entity.guild.IGuildMember)4 GuildJSON (io.discloader.discloader.network.json.GuildJSON)4 MemberJSON (io.discloader.discloader.network.json.MemberJSON)4 IChannel (io.discloader.discloader.entity.channel.IChannel)3 IRole (io.discloader.discloader.entity.guild.IRole)3 IUser (io.discloader.discloader.entity.user.IUser)3 ChannelJSON (io.discloader.discloader.network.json.ChannelJSON)3 GuildMemberRemoveJSON (io.discloader.discloader.network.json.GuildMemberRemoveJSON)3 GuildMemberUpdateEvent (io.discloader.discloader.common.event.guild.member.GuildMemberUpdateEvent)2 PresenceJSON (io.discloader.discloader.network.json.PresenceJSON)2 HashMap (java.util.HashMap)2 Gson (com.google.gson.Gson)1 IEventListener (io.discloader.discloader.common.event.IEventListener)1 UserUpdateEvent (io.discloader.discloader.common.event.UserUpdateEvent)1 ChannelCreateEvent (io.discloader.discloader.common.event.channel.ChannelCreateEvent)1 ChannelDeleteEvent (io.discloader.discloader.common.event.channel.ChannelDeleteEvent)1 ChannelUpdateEvent (io.discloader.discloader.common.event.channel.ChannelUpdateEvent)1 GuildChannelUpdateEvent (io.discloader.discloader.common.event.channel.GuildChannelUpdateEvent)1 GuildBanAddEvent (io.discloader.discloader.common.event.guild.GuildBanAddEvent)1