Search in sources :

Example 6 with Server

use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.

the class GuildRoleDeleteHandler method handle.

@Override
public void handle(JSONObject packet) {
    String guildId = packet.getString("guild_id");
    String roleId = packet.getString("role_id");
    Server server = api.getServerById(guildId);
    final Role role = server.getRoleById(roleId);
    if (role == null) {
        return;
    }
    ((ImplServer) server).removeRole(role);
    listenerExecutorService.submit(new Runnable() {

        @Override
        public void run() {
            List<RoleDeleteListener> listeners = api.getListeners(RoleDeleteListener.class);
            synchronized (listeners) {
                for (RoleDeleteListener listener : listeners) {
                    try {
                        listener.onRoleDelete(api, role);
                    } catch (Throwable t) {
                        logger.warn("Uncaught exception in RoleDeleteListener!", t);
                    }
                }
            }
        }
    });
}
Also used : Role(de.btobastian.javacord.entities.permissions.Role) ImplServer(de.btobastian.javacord.entities.impl.ImplServer) Server(de.btobastian.javacord.entities.Server) ImplServer(de.btobastian.javacord.entities.impl.ImplServer) RoleDeleteListener(de.btobastian.javacord.listener.role.RoleDeleteListener) List(java.util.List)

Example 7 with Server

use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.

the class GuildRoleUpdateHandler method handle.

@Override
public void handle(JSONObject packet) {
    String guildId = packet.getString("guild_id");
    JSONObject roleJson = packet.getJSONObject("role");
    Server server = api.getServerById(guildId);
    final ImplRole role = (ImplRole) server.getRoleById(roleJson.getString("id"));
    String name = roleJson.getString("name");
    if (!role.getName().equals(name)) {
        final String oldName = role.getName();
        role.setName(name);
        listenerExecutorService.submit(new Runnable() {

            @Override
            public void run() {
                List<RoleChangeNameListener> listeners = api.getListeners(RoleChangeNameListener.class);
                synchronized (listeners) {
                    for (RoleChangeNameListener listener : listeners) {
                        try {
                            listener.onRoleChangeName(api, role, oldName);
                        } catch (Throwable t) {
                            logger.warn("Uncaught exception in RoleChangeNameListener!", t);
                        }
                    }
                }
            }
        });
    }
    Permissions permissions = new ImplPermissions(roleJson.getInt("permissions"));
    if (!role.getPermissions().equals(permissions)) {
        final Permissions oldPermissions = role.getPermissions();
        role.setPermissions((ImplPermissions) permissions);
        listenerExecutorService.submit(new Runnable() {

            @Override
            public void run() {
                List<RoleChangePermissionsListener> listeners = api.getListeners(RoleChangePermissionsListener.class);
                synchronized (listeners) {
                    for (RoleChangePermissionsListener listener : listeners) {
                        try {
                            listener.onRoleChangePermissions(api, role, oldPermissions);
                        } catch (Throwable t) {
                            logger.warn("Uncaught exception in RoleChangePermissionsListener!", t);
                        }
                    }
                }
            }
        });
    }
    Color color = new Color(roleJson.getInt("color"));
    if (role.getColor().getRGB() != color.getRGB()) {
        final Color oldColor = role.getColor();
        role.setColor(color);
        listenerExecutorService.submit(new Runnable() {

            @Override
            public void run() {
                List<RoleChangeColorListener> listeners = api.getListeners(RoleChangeColorListener.class);
                synchronized (listeners) {
                    for (RoleChangeColorListener listener : listeners) {
                        try {
                            listener.onRoleChangeColor(api, role, oldColor);
                        } catch (Throwable t) {
                            logger.warn("Uncaught exception in RoleChangeColorListener!", t);
                        }
                    }
                }
            }
        });
    }
    if (role.getHoist() != roleJson.getBoolean("hoist")) {
        role.setHoist(!role.getHoist());
        listenerExecutorService.submit(new Runnable() {

            @Override
            public void run() {
                List<RoleChangeHoistListener> listeners = api.getListeners(RoleChangeHoistListener.class);
                synchronized (listeners) {
                    for (RoleChangeHoistListener listener : listeners) {
                        try {
                            listener.onRoleChangeHoist(api, role, !role.getHoist());
                        } catch (Throwable t) {
                            logger.warn("Uncaught exception in RoleChangeHoistListener!", t);
                        }
                    }
                }
            }
        });
    }
    synchronized (Role.class) {
        // we don't want strange positions
        int position = roleJson.getInt("position");
        if (role.getPosition() != position) {
            final int oldPosition = role.getPosition();
            role.setPosition(position);
            listenerExecutorService.submit(new Runnable() {

                @Override
                public void run() {
                    List<RoleChangePositionListener> listeners = api.getListeners(RoleChangePositionListener.class);
                    synchronized (listeners) {
                        for (RoleChangePositionListener listener : listeners) {
                            try {
                                listener.onRoleChangePosition(api, role, oldPosition);
                            } catch (Throwable t) {
                                logger.warn("Uncaught exception in RoleChangePositionListener!", t);
                            }
                        }
                    }
                }
            });
        }
    }
}
Also used : ImplRole(de.btobastian.javacord.entities.permissions.impl.ImplRole) Server(de.btobastian.javacord.entities.Server) ImplPermissions(de.btobastian.javacord.entities.permissions.impl.ImplPermissions) Role(de.btobastian.javacord.entities.permissions.Role) ImplRole(de.btobastian.javacord.entities.permissions.impl.ImplRole) JSONObject(org.json.JSONObject) Permissions(de.btobastian.javacord.entities.permissions.Permissions) ImplPermissions(de.btobastian.javacord.entities.permissions.impl.ImplPermissions) List(java.util.List)

Example 8 with Server

use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.

the class GuildRoleCreateHandler method handle.

@Override
public void handle(JSONObject packet) {
    String guildId = packet.getString("guild_id");
    JSONObject roleJson = packet.getJSONObject("role");
    Server server = api.getServerById(guildId);
    final Role role = new ImplRole(roleJson, (ImplServer) server, api);
    listenerExecutorService.submit(new Runnable() {

        @Override
        public void run() {
            List<RoleCreateListener> listeners = api.getListeners(RoleCreateListener.class);
            synchronized (listeners) {
                for (RoleCreateListener listener : listeners) {
                    try {
                        listener.onRoleCreate(api, role);
                    } catch (Throwable t) {
                        logger.warn("Uncaught exception in RoleCreateListener!", t);
                    }
                }
            }
        }
    });
}
Also used : ImplRole(de.btobastian.javacord.entities.permissions.impl.ImplRole) Role(de.btobastian.javacord.entities.permissions.Role) ImplRole(de.btobastian.javacord.entities.permissions.impl.ImplRole) JSONObject(org.json.JSONObject) Server(de.btobastian.javacord.entities.Server) ImplServer(de.btobastian.javacord.entities.impl.ImplServer) List(java.util.List) RoleCreateListener(de.btobastian.javacord.listener.role.RoleCreateListener)

Example 9 with Server

use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.

the class PresenceUpdateHandler method handle.

@Override
public void handle(JSONObject packet) {
    final User user = api.getOrCreateUser(packet.getJSONObject("user"));
    if (user == null) {
        return;
    }
    Server server = null;
    if (packet.has("guild_id")) {
        server = api.getServerById(packet.getString("guild_id"));
    }
    if (server != null) {
        // add user to server
        ((ImplServer) server).addMember(user);
    }
    if (server != null && packet.has("roles")) {
        JSONArray roleIds = packet.getJSONArray("roles");
        for (int i = 0; i < roleIds.length(); i++) {
            // add user to the role
            ((ImplRole) server.getRoleById(roleIds.getString(i))).addUserNoUpdate(user);
        }
    }
    // check status
    if (packet.has("status")) {
        UserStatus status = UserStatus.fromString(packet.getString("status"));
        final UserStatus oldStatus = user.getStatus();
        ((ImplUser) user).setStatus(status);
        listenerExecutorService.submit(new Runnable() {

            @Override
            public void run() {
                List<UserChangeStatusListener> listeners = api.getListeners(UserChangeStatusListener.class);
                synchronized (listeners) {
                    for (UserChangeStatusListener listener : listeners) {
                        try {
                            listener.onUserChangeStatus(api, user, oldStatus);
                        } catch (Throwable t) {
                            logger.warn("Uncaught exception in UserChangeStatusListener!", t);
                        }
                    }
                }
            }
        });
    }
    // check username
    if (packet.getJSONObject("user").has("username")) {
        String name = packet.getJSONObject("user").getString("username");
        if (!user.getName().equals(name)) {
            final String oldName = user.getName();
            ((ImplUser) user).setName(name);
            listenerExecutorService.submit(new Runnable() {

                @Override
                public void run() {
                    List<UserChangeNameListener> listeners = api.getListeners(UserChangeNameListener.class);
                    synchronized (listeners) {
                        for (UserChangeNameListener listener : listeners) {
                            try {
                                listener.onUserChangeName(api, user, oldName);
                            } catch (Throwable t) {
                                logger.warn("Uncaught exception in UserChangeNameListener!", t);
                            }
                        }
                    }
                }
            });
        }
    }
    // check game
    if (packet.has("game")) {
        String game;
        if (!packet.isNull("game") && packet.getJSONObject("game").has("name") && !packet.getJSONObject("game").isNull("name")) {
            game = packet.getJSONObject("game").get("name").toString();
        } else {
            game = null;
        }
        String oldGame = user.getGame();
        if ((game == null && oldGame != null) || (game != null && oldGame == null) || (game != null && !game.equals(oldGame))) {
            ((ImplUser) user).setGame(game);
            List<UserChangeGameListener> listeners = api.getListeners(UserChangeGameListener.class);
            synchronized (listeners) {
                for (UserChangeGameListener listener : listeners) {
                    try {
                        listener.onUserChangeGame(api, user, oldGame);
                    } catch (Throwable t) {
                        logger.warn("Uncaught exception in UserChangeGameListener!", t);
                    }
                }
            }
        }
    }
}
Also used : ImplRole(de.btobastian.javacord.entities.permissions.impl.ImplRole) ImplUser(de.btobastian.javacord.entities.impl.ImplUser) User(de.btobastian.javacord.entities.User) ImplServer(de.btobastian.javacord.entities.impl.ImplServer) UserChangeStatusListener(de.btobastian.javacord.listener.user.UserChangeStatusListener) Server(de.btobastian.javacord.entities.Server) ImplServer(de.btobastian.javacord.entities.impl.ImplServer) JSONArray(org.json.JSONArray) UserChangeGameListener(de.btobastian.javacord.listener.user.UserChangeGameListener) UserStatus(de.btobastian.javacord.entities.UserStatus) List(java.util.List) ImplUser(de.btobastian.javacord.entities.impl.ImplUser) UserChangeNameListener(de.btobastian.javacord.listener.user.UserChangeNameListener)

Example 10 with Server

use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.

the class GuildBanAddHandler method handle.

@Override
public void handle(JSONObject packet) {
    final Server server = api.getServerById(packet.getString("guild_id"));
    final User user = api.getOrCreateUser(packet.getJSONObject("user"));
    if (server != null) {
        listenerExecutorService.submit(new Runnable() {

            @Override
            public void run() {
                List<ServerMemberBanListener> listeners = api.getListeners(ServerMemberBanListener.class);
                synchronized (listeners) {
                    for (ServerMemberBanListener listener : listeners) {
                        try {
                            listener.onServerMemberBan(api, user, server);
                        } catch (Throwable t) {
                            logger.warn("Uncaught exception in ServerMemberBanListener!", t);
                        }
                    }
                }
            }
        });
    }
}
Also used : User(de.btobastian.javacord.entities.User) Server(de.btobastian.javacord.entities.Server) List(java.util.List) ServerMemberBanListener(de.btobastian.javacord.listener.server.ServerMemberBanListener)

Aggregations

Server (de.btobastian.javacord.entities.Server)11 List (java.util.List)11 ImplServer (de.btobastian.javacord.entities.impl.ImplServer)7 User (de.btobastian.javacord.entities.User)6 Role (de.btobastian.javacord.entities.permissions.Role)3 ImplRole (de.btobastian.javacord.entities.permissions.impl.ImplRole)3 JSONObject (org.json.JSONObject)2 Channel (de.btobastian.javacord.entities.Channel)1 UserStatus (de.btobastian.javacord.entities.UserStatus)1 ImplUser (de.btobastian.javacord.entities.impl.ImplUser)1 Permissions (de.btobastian.javacord.entities.permissions.Permissions)1 ImplPermissions (de.btobastian.javacord.entities.permissions.impl.ImplPermissions)1 TypingStartListener (de.btobastian.javacord.listener.message.TypingStartListener)1 RoleCreateListener (de.btobastian.javacord.listener.role.RoleCreateListener)1 RoleDeleteListener (de.btobastian.javacord.listener.role.RoleDeleteListener)1 ServerJoinListener (de.btobastian.javacord.listener.server.ServerJoinListener)1 ServerLeaveListener (de.btobastian.javacord.listener.server.ServerLeaveListener)1 ServerMemberAddListener (de.btobastian.javacord.listener.server.ServerMemberAddListener)1 ServerMemberBanListener (de.btobastian.javacord.listener.server.ServerMemberBanListener)1 ServerMemberRemoveListener (de.btobastian.javacord.listener.server.ServerMemberRemoveListener)1