private String editRolePermission(Operation op, Permission permission, IRole role) { IGuild parent = role.getGuild(); DiscordGuild g = cacheService.findGuildById(parent.getID()).orElseGet(() -> new DiscordGuild(parent)); DiscordRole edit = null; for (DiscordRole r : g.getRoles()) { if (r.getId().equals(role.getID())) { edit = r; break; } } if (edit == null) { edit = new DiscordRole(role); g.getRoles().add(edit); } if (edit.getName() == null) { edit.setName(role.getName()); } changePermission(op, permission, edit); g = cacheService.saveGuild(g); log.info("Saving new guild/role permission settings: {}", g); permissionService.evict(); return String.format( "Modified role %s: %s permission %s", edit.getName(), op.name().toLowerCase(), permission.getName()); }
private String editUserPermission(Operation op, Permission permission, IUser user) { DiscordUser u = cacheService.findUserById(user.getID()).orElseGet(() -> new DiscordUser(user)); changePermission(op, permission, u); u = cacheService.saveUser(u); log.info("Saving new user permission settings: {}", u); permissionService.evict(); return String.format( "Modified user %s: %s permission %s", u.getName(), op.name().toLowerCase(), permission.getName()); }
private String editGuildPermission(Operation op, Permission permission, IGuild guild) { DiscordGuild g = cacheService.findGuildById(guild.getID()).orElseGet(() -> new DiscordGuild(guild)); changePermission(op, permission, g); g = cacheService.saveGuild(g); log.info("Saving new guild permission settings: {}", g); permissionService.evict(); return String.format( "Modified server %s: %s permission %s", g.getName(), op.name().toLowerCase(), permission.getName()); }
private String editChannelPermission(Operation op, Permission permission, IChannel channel) { if (channel.isPrivate()) { throw new IllegalArgumentException("No private channels allowed!"); } DiscordGuild g = cacheService .findGuildById(channel.getGuild().getID()) .orElseGet(() -> new DiscordGuild(channel.getGuild())); g = cacheService.saveGuild(g); DiscordChannel ch = cacheService.findChannelById(channel.getID()).orElseGet(() -> new DiscordChannel(channel)); ch.setGuild(g); g.getChannels().add(ch); changePermission(op, permission, ch); ch = cacheService.saveChannel(ch); cacheService.saveGuild(g); log.info("Saving new permission data: {}", g); permissionService.evict(); return String.format( "Modified channel %s: %s permission %s", ch.getName(), op.name().toLowerCase(), permission.getName()); }