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);
}
}
}
}
});
}
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);
}
}
}
}
});
}
}
}
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);
}
}
}
}
});
}
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);
}
}
}
}
}
}
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);
}
}
}
}
});
}
}
Aggregations