use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.
the class TypingStartHandler method handle.
@Override
public void handle(JSONObject packet) {
Channel channelTemp = null;
String channelId = packet.getString("channel_id");
Iterator<Server> serverIterator = api.getServers().iterator();
while (serverIterator.hasNext()) {
channelTemp = serverIterator.next().getChannelById(channelId);
if (channelTemp != null) {
break;
}
}
final Channel channel = channelTemp;
String userId = packet.getString("user_id");
final User user;
try {
user = api.getUserById(userId).get();
} catch (InterruptedException | ExecutionException e) {
return;
}
listenerExecutorService.submit(new Runnable() {
@Override
public void run() {
List<TypingStartListener> listeners = api.getListeners(TypingStartListener.class);
synchronized (listeners) {
for (TypingStartListener listener : listeners) {
try {
listener.onTypingStart(api, user, channel);
} catch (Throwable t) {
logger.warn("Uncaught exception in TypingStartListener!", t);
}
}
}
}
});
}
use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.
the class GuildBanRemoveHandler 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) {
((ImplServer) server).removeMember(user);
listenerExecutorService.submit(new Runnable() {
@Override
public void run() {
List<ServerMemberUnbanListener> listeners = api.getListeners(ServerMemberUnbanListener.class);
synchronized (listeners) {
for (ServerMemberUnbanListener listener : listeners) {
try {
listener.onServerMemberUnban(api, user.getId(), server);
} catch (Throwable t) {
logger.warn("Uncaught exception in ServerMemberUnbanListener!", t);
}
}
}
}
});
}
}
use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.
the class GuildCreateHandler method handle.
@Override
public void handle(JSONObject packet) {
if (packet.has("unavailable") && packet.getBoolean("unavailable")) {
return;
}
String id = packet.getString("id");
if (api.getUnavailableServers().contains(id)) {
api.getUnavailableServers().remove(id);
new ImplServer(packet, api);
return;
}
if (api.getServerById(id) != null) {
// TODO update information
return;
}
final Server server = new ImplServer(packet, api);
listenerExecutorService.submit(new Runnable() {
@Override
public void run() {
List<ServerJoinListener> listeners = api.getListeners(ServerJoinListener.class);
synchronized (listeners) {
for (ServerJoinListener listener : listeners) {
try {
listener.onServerJoin(api, server);
} catch (Throwable t) {
logger.warn("Uncaught exception in ServerJoinListener!", t);
}
}
}
}
});
api.getThreadPool().getExecutorService().submit(new Runnable() {
@Override
public void run() {
// can cause a deadlock if someone blocks a listener
// with the #createServer or #acceptInvite method + #get
api.getInternalServerJoinListener().onServerJoin(api, server);
}
});
}
use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.
the class GuildMemberAddHandler 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) {
((ImplServer) server).addMember(user);
((ImplServer) server).incrementMemberCount();
listenerExecutorService.submit(new Runnable() {
@Override
public void run() {
List<ServerMemberAddListener> listeners = api.getListeners(ServerMemberAddListener.class);
synchronized (listeners) {
for (ServerMemberAddListener listener : listeners) {
try {
listener.onServerMemberAdd(api, user, server);
} catch (Throwable t) {
logger.warn("Uncaught exception in ServerMemberAddListener!", t);
}
}
}
}
});
}
}
use of de.btobastian.javacord.entities.Server in project Javacord by BtoBastian.
the class GuildMemberRemoveHandler 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) {
((ImplServer) server).removeMember(user);
((ImplServer) server).decrementMemberCount();
listenerExecutorService.submit(new Runnable() {
@Override
public void run() {
List<ServerMemberRemoveListener> listeners = api.getListeners(ServerMemberRemoveListener.class);
synchronized (listeners) {
for (ServerMemberRemoveListener listener : listeners) {
try {
listener.onServerMemberRemove(api, user, server);
} catch (Throwable t) {
logger.warn("Uncaught exception in ServerMemberRemoveListener!", t);
}
}
}
}
});
}
}
Aggregations