use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.
the class GuildMembersChunk method handle.
@Override
public void handle(SocketPacket packet) {
String d = this.gson.toJson(packet.d);
GuildMembersChunkJSON data = this.gson.fromJson(d, GuildMembersChunkJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
if (guild == null)
return;
Map<Long, IGuildMember> members = new HashMap<>();
for (MemberJSON m : data.members) {
IGuildMember member = EntityBuilder.getGuildFactory().buildMember(guild, EntityRegistry.addUser(m.user), new String[] {}, false, false, null);
guild.addMember(member);
members.put(member.getID(), member);
}
GuildMembersChunkEvent event = new GuildMembersChunkEvent(guild, members);
loader.emit(event);
}
use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.
the class GuildUpdate method handle.
@Override
public void handle(SocketPacket packet) {
String d = gson.toJson(packet.d);
GuildJSON data = gson.fromJson(d, GuildJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.id);
IGuild oldGuild = guild.clone();
guild.setup(data);
GuildUpdateEvent event = new GuildUpdateEvent(guild, oldGuild);
loader.emit(DLUtil.Events.GUILD_UPDATE, event);
loader.emit(event);
}
use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.
the class RoleDelete method handle.
@Override
public void handle(SocketPacket packet) {
String d = this.gson.toJson(packet.d);
GuildRoleJSON data = this.gson.fromJson(d, GuildRoleJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
IRole role = guild.removeRole(data.role_id);
if (role == null)
return;
GuildRoleDeleteEvent event = new GuildRoleDeleteEvent(role);
loader.emit(DLUtil.Events.GUILD_ROLE_DELETE, event);
loader.emit(event);
}
use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.
the class RoleUpdate method handle.
@Override
public void handle(SocketPacket packet) {
String d = this.gson.toJson(packet.d);
Packet data = this.gson.fromJson(d, Packet.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
IRole oldRole = guild.getRoleByID(data.role.id);
IRole role = guild.addRole(data.role);
GuildRoleUpdateEvent event = new GuildRoleUpdateEvent(role, oldRole);
loader.emit(DLUtil.Events.GUILD_ROLE_UPDATE, event);
loader.emit(event);
}
use of io.discloader.discloader.entity.guild.IGuild in project DiscLoader by R3alCl0ud.
the class VoiceStateUpdate method handle.
@Override
public void handle(SocketPacket packet) {
String d = this.gson.toJson(packet.d);
VoiceStateJSON data = this.gson.fromJson(d, VoiceStateJSON.class);
IGuild guild = EntityRegistry.getGuildByID(data.guild_id);
if (guild.getMember(data.user_id) == null)
return;
VoiceState currentState = new VoiceState(data, guild);
VoiceState oldState = guild.getVoiceStates().get(SnowflakeUtil.parse(data.user_id));
VoiceConnection connection = EntityRegistry.getVoiceConnectionByID(guild.getID());
if (connection != null && SnowflakeUtil.asString(loader.user).equals(data.user_id)) {
connection.setSessionID(data.session_id);
connection.setStateUpdated(true);
connection.setVoiceChannel(currentState.channel);
}
guild.updateVoiceState(currentState);
if (shouldEmit()) {
if (currentState.channel != null && (oldState != null && oldState.channel != null)) {
loader.emit(new VoiceSwitchEvent(currentState.member, oldState.channel));
} else if (currentState.channel != null) {
loader.emit(new VoiceJoinEvent(currentState.member));
} else if (oldState != null && oldState.channel != null) {
loader.emit(new VoiceLeaveEvent(currentState.member, oldState.channel));
}
if (oldState != null) {
VoiceStateUpdateEvent event = new VoiceStateUpdateEvent(oldState, currentState);
loader.emit(event);
}
}
}
Aggregations