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