Search in sources :

Example 16 with IGuild

use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.

the class Guild method delete.

public CompletableFuture<IGuild> delete() {
    if (!isOwner())
        throw new UnauthorizedException("Only the guild's owner can delete a guild");
    CompletableFuture<IGuild> future = new CompletableFuture<>();
    loader.rest.makeRequest(Endpoints.guild(getID()), DLUtil.Methods.DELETE, true).thenAcceptAsync(data -> {
        future.complete(this);
    });
    return future;
}
Also used : CompletableFuture(java.util.concurrent.CompletableFuture) UnauthorizedException(io.discloader.discloader.common.exceptions.UnauthorizedException) IGuild(io.discloader.discloader.entity.guild.IGuild)

Example 17 with IGuild

use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.

the class GuildBanRemove method handle.

@Override
public void handle(SocketPacket packet) {
    String d = gson.toJson(packet.d);
    GuildMemberRemoveJSON data = gson.fromJson(d, GuildMemberRemoveJSON.class);
    IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
    IUser user = EntityRegistry.addUser(data.user);
    GuildBanRemoveEvent event = new GuildBanRemoveEvent(guild, user);
    loader.emit(DLUtil.Events.GUILD_BAN_REMOVE, event);
    loader.emit(event);
}
Also used : GuildMemberRemoveJSON(io.discloader.discloader.network.json.GuildMemberRemoveJSON) GuildBanRemoveEvent(io.discloader.discloader.common.event.guild.GuildBanRemoveEvent) IUser(io.discloader.discloader.entity.user.IUser) IGuild(io.discloader.discloader.entity.guild.IGuild)

Example 18 with IGuild

use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.

the class GuildCreate method handle.

@Override
public void handle(SocketPacket packet) {
    Gson gson = new Gson();
    String d = gson.toJson(packet.d);
    GuildJSON data = gson.fromJson(d, GuildJSON.class);
    IGuild guild = null;
    if (EntityRegistry.guildExists(data.id))
        guild = EntityRegistry.getGuildByID(data.id);
    if (guild != null) {
        try {
            if (!guild.isAvailable() && !data.unavailable) {
                guild.setup(data);
                if (shouldEmit()) {
                    GuildCreateEvent event = new GuildCreateEvent(guild);
                    loader.emit(Events.GUILD_CREATE, event);
                    loader.emit(event);
                }
                loader.checkReady();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else {
        // a brand new guild
        guild = EntityRegistry.addGuild(data);
        if (this.shouldEmit()) {
            GuildCreateEvent event = new GuildCreateEvent(guild);
            loader.emit(Events.GUILD_CREATE, event);
            loader.emit(event);
        }
    }
}
Also used : GuildCreateEvent(io.discloader.discloader.common.event.guild.GuildCreateEvent) Gson(com.google.gson.Gson) GuildJSON(io.discloader.discloader.network.json.GuildJSON) IGuild(io.discloader.discloader.entity.guild.IGuild)

Example 19 with IGuild

use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.

the class GuildDelete method handle.

@Override
public void handle(SocketPacket packet) {
    String d = this.gson.toJson(packet.d);
    GuildJSON data = this.gson.fromJson(d, GuildJSON.class);
    IGuild guild = null;
    if (EntityRegistry.guildExists(data.id)) {
        guild = EntityRegistry.getGuildByID(data.id);
        guild.setup(data);
    } else {
        guild = EntityRegistry.addGuild(data);
    }
    if (!guild.isAvailable()) {
        EntityRegistry.removeGuild(guild);
        if (socket.status == Status.READY && loader.ready) {
            GuildDeleteEvent event = new GuildDeleteEvent(guild);
            loader.emit(Events.GUILD_DELETE, event);
            for (IEventListener e : loader.handlers) {
                e.GuildDelete(event);
            }
        }
    }
}
Also used : GuildDeleteEvent(io.discloader.discloader.common.event.guild.GuildDeleteEvent) IEventListener(io.discloader.discloader.common.event.IEventListener) GuildJSON(io.discloader.discloader.network.json.GuildJSON) IGuild(io.discloader.discloader.entity.guild.IGuild)

Example 20 with IGuild

use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.

the class GuildSync method handle.

@Override
public void handle(SocketPacket packet) {
    String d = gson.toJson(packet.d);
    GuildSyncJSON data = gson.fromJson(d, GuildSyncJSON.class);
    IGuild guild = EntityRegistry.getGuildByID(data.id);
    for (PresenceJSON pe : data.presences) {
        guild.setPresence(pe);
    }
    for (MemberJSON me : data.members) {
        guild.addMember(me);
    }
}
Also used : IGuild(io.discloader.discloader.entity.guild.IGuild) PresenceJSON(io.discloader.discloader.network.json.PresenceJSON) GuildSyncJSON(io.discloader.discloader.network.json.GuildSyncJSON) 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