Search in sources :

Example 1 with ServerChannelImpl

use of org.javacord.core.entity.channel.ServerChannelImpl in project Javacord by BtoBastian.

the class ChannelUpdateHandler method handleServerChannel.

/**
 * Handles a server channel update.
 *
 * @param jsonChannel The channel data.
 */
private void handleServerChannel(JsonNode jsonChannel) {
    long channelId = jsonChannel.get("id").asLong();
    long guildId = jsonChannel.get("guild_id").asLong();
    ServerImpl server = api.getPossiblyUnreadyServerById(guildId).map(ServerImpl.class::cast).orElse(null);
    if (server == null) {
        return;
    }
    ServerChannelImpl channel = server.getChannelById(channelId).map(ServerChannelImpl.class::cast).orElse(null);
    if (channel == null) {
        return;
    }
    String oldName = channel.getName();
    String newName = jsonChannel.get("name").asText();
    if (!Objects.deepEquals(oldName, newName)) {
        channel.setName(newName);
        ServerChannelChangeNameEvent event = new ServerChannelChangeNameEventImpl(channel, newName, oldName);
        if (server.isReady()) {
            api.getEventDispatcher().dispatchServerChannelChangeNameEvent((DispatchQueueSelector) channel.getServer(), channel.getServer(), channel, event);
        }
    }
}
Also used : ServerImpl(org.javacord.core.entity.server.ServerImpl) RegularServerChannelImpl(org.javacord.core.entity.channel.RegularServerChannelImpl) ServerChannelImpl(org.javacord.core.entity.channel.ServerChannelImpl) ServerChannelChangeNameEvent(org.javacord.api.event.channel.server.ServerChannelChangeNameEvent) ServerChannelChangeNameEventImpl(org.javacord.core.event.channel.server.ServerChannelChangeNameEventImpl)

Aggregations

ServerChannelChangeNameEvent (org.javacord.api.event.channel.server.ServerChannelChangeNameEvent)1 RegularServerChannelImpl (org.javacord.core.entity.channel.RegularServerChannelImpl)1 ServerChannelImpl (org.javacord.core.entity.channel.ServerChannelImpl)1 ServerImpl (org.javacord.core.entity.server.ServerImpl)1 ServerChannelChangeNameEventImpl (org.javacord.core.event.channel.server.ServerChannelChangeNameEventImpl)1