final boolean isOwner = self.isOwner(); if (self.getRoles().isEmpty()) throw new IllegalStateException("Cannot move roles above your highest role unless you are the guild owner"); if (!self.hasPermission(Permission.MANAGE_ROLES)) throw new InsufficientPermissionException(Permission.MANAGE_ROLES); if (initialPos != i && !isOwner && !self.canInteract(role))
Checks.notNull(emote, "Target Emote"); if (!issuer.getGuild().equals(emote.getGuild())) throw new IllegalArgumentException("The issuer and target are not in the same Guild"); if (emote.isAnimated() && !issuer.getUser().isBot()) if (issuer.getUser() instanceof SelfUser) if (!((SelfUser)issuer.getUser()).isNitro()) return false; || CollectionUtils.containsAny(issuer.getRoles(), emote.getRoles()));
/** * The {@link net.dv8tion.jda.core.entities.GuildVoiceState GuildVoiceState} of the member * <br>Shortcut for {@code getMember().getVoiceState()} * * @return The {@link net.dv8tion.jda.core.entities.GuildVoiceState GuildVoiceState} of the member */ public GuildVoiceState getVoiceState() { return member.getVoiceState(); } }
@Override public boolean canTalk(Member member) { if (!getGuild().equals(member.getGuild())) throw new IllegalArgumentException("Provided Member is not from the Guild that this TextChannel is part of."); return member.hasPermission(this, Permission.MESSAGE_READ, Permission.MESSAGE_WRITE); }
public boolean hasPermission(Member user, Permission permission) { if (isCreator(user.getUser())) return true; if (user.isOwner()) return true; if (user.getPermissions().contains(net.dv8tion.jda.core.Permission.ADMINISTRATOR)) return true; if (isContributor(user.getUser()) && FlareBot.instance().isTestBot()) return true; if (getUser(user).hasPermission(permission) == Permission.Reply.ALLOW) for (Group g : groups) { if (g.hasPermission(permission) == Permission.Reply.NEUTRAL) continue; if (g.getRoleId() != null && user.getGuild().getRoleById(g.getRoleId()) != null) { if (user.getRoles().contains(user.getGuild().getRoleById(g.getRoleId()))) { hasPerm = g.hasPermission(permission); return (!permission.getDiscordPerm().isEmpty() && user.hasPermission(permission.getDiscordPerm())) || permission.isDefaultPerm(); } else {
private void checkPermission(Permission permission) { if (!guild.getSelfMember().hasPermission(permission)) throw new InsufficientPermissionException(permission); } }
private boolean allowedPatronAccess(Guild guild, Role role) { Config config = this.bot.getConfigs().config; Guild dabbotGuild = guild.getJDA().asBot().getShardManager().getGuildById(config.discordServer); for (Member member : guild.getMembers()) { if (config.owners.contains(member.getUser().getId())) { return true; } if (!member.isOwner() && !member.hasPermission(Permission.ADMINISTRATOR)) { continue; } Member dabbotMember = dabbotGuild.getMember(member.getUser()); if (dabbotMember == null) { continue; } if (dabbotMember.getRoles().contains(role)) { return true; } } return false; }
/** * Checks if one given Member can interact with a 2nd given Member - in a permission sense (kick/ban/modify perms). * This only checks the Role-Position and does not check the actual permission (kick/ban/manage_role/...) * * @param issuer * The member that tries to interact with 2nd member * @param target * The member that is the target of the interaction * * @throws IllegalArgumentException * if any of the provided parameters is {@code null} * or the provided entities are not from the same guild * * @return True, if issuer can interact with target in guild */ public static boolean canInteract(Member issuer, Member target) { Checks.notNull(issuer, "Issuer Member"); Checks.notNull(target, "Target Member"); Guild guild = issuer.getGuild(); if (!guild.equals(target.getGuild())) throw new IllegalArgumentException("Provided members must both be Member objects of the same Guild!"); if(guild.getOwner().equals(issuer)) return true; if(guild.getOwner().equals(target)) return false; List<Role> issuerRoles = issuer.getRoles(); List<Role> targetRoles = target.getRoles(); return !issuerRoles.isEmpty() && (targetRoles.isEmpty() || canInteract(issuerRoles.get(0), targetRoles.get(0))); }
@Override public Friend getFriend(Member member) { return getFriend(member.getUser()); }
.count() + " shared\n" + "Roles: " + (targetMember == null ? "The user is not in this server." : targetMember.getRoles().stream() .map(Role::getName).collect(Collectors.joining(", "))) + (targetMember != null && targetMember.getGame() != null ? "\nStatus" + (targetMember.getUser() .isBot() ? " (Current Shard)" : "") + ": " + (targetMember.getGame().getUrl() == null ? "`" + targetMember .getGame().getName() + "`" : String.format("[`%s`](%s)", targetMember.getGame() .getName(), targetMember.getGame().getUrl())) : ""), true) .addField("Time Data", "Created: " + FormatUtils .formatTime(LocalDateTime.from(user.getCreationTime())) + "\n" + "Joined: " + (targetMember == null ? "The user is not in this server." : FormatUtils.formatTime(LocalDateTime .from(channel.getGuild().getMember(user).getJoinDate()))) + "\n" + "Last Seen: " + (cache.getLastSeen() == null ? "Unknown" : FormatUtils .formatTime(cache.getLastSeen())) + "\n" +
private boolean canInteract(Member sender, Member target, GuildWrapper wrapper) { if (target.isOwner() || target.hasPermission(Permission.ADMINISTRATOR)) return true; if (target.getRoles().isEmpty() || sender.getRoles().isEmpty()) { return true; } Role muteRole = wrapper.getMutedRole(); Role topMemberRole = sender.getRoles().get(0); Role topTargetRole = target.getRoles().get(0); if (muteRole != null) { if (topMemberRole.getIdLong() == muteRole.getIdLong() && sender.getRoles().size() > 1) topMemberRole = sender.getRoles().get(1); if (topTargetRole.getIdLong() == muteRole.getIdLong() && target.getRoles().size() > 1) topTargetRole = target.getRoles().get(1); } return topMemberRole.getPosition() > topTargetRole.getPosition(); } }
@Override public List<Member> getElementsByName(String name, boolean ignoreCase) { Checks.notEmpty(name, "Name"); List<Member> members = new ArrayList<>(); for (Member member : this) { final String nick = member.getEffectiveName(); if (equals(ignoreCase, nick, name)) members.add(member); } return Collections.unmodifiableList(members); }
for (Guild guild : shard.getJda().getGuilds()) { for (Member member : guild.getMembers()) { User guildUser = member.getUser(); int userId = CUser.getCachedId(guildUser.getIdLong(), guildUser.getName()); OGuildMember guildMember = CGuildMember.findBy(CGuild.getCachedId(guild.getIdLong()), userId); guildMember.joinDate = new Timestamp(member.getJoinDate().toInstant().toEpochMilli()); CGuildMember.insertOrUpdate(guildMember); usersCompleted++;
Carbon joinedDate = Carbon.createFromOffsetDateTime(member.getJoinDate()); Carbon createdDate = Carbon.createFromOffsetDateTime(member.getUser().getCreationTime()); PlaceholderMessage placeholderMessage = context.makeEmbeddedMessage(getRoleColor(member.getRoles()), new MessageEmbed.Field( context.i18n("fields.username"), member.getUser().getName(), true ), new MessageEmbed.Field( context.i18n("fields.userId"), member.getUser().getId(), true ), ).setThumbnail(member.getUser().getEffectiveAvatarUrl()); if (!member.getRoles().isEmpty()) { memberRoles = member.getRoles().stream() .map(role -> role.getName()) .collect(Collectors.joining("\n")); context.i18n("fields.roles", member.getRoles().size()), memberRoles, true )); context.i18n("fields.servers"), context.i18n("inServers", NumberUtil.formatNicely( avaire.getShardManager().getMutualGuilds(member.getUser()).size() )), true));
@Override public List<Member> getElementsWithRoles(Collection<Role> roles) { Checks.noneNull(roles, "Roles"); List<Member> members = new ArrayList<>(); for (Member member : this) { if (member.getRoles().containsAll(roles)) members.add(member); } return members; } }
infoUser = member.getUser(); if (channel instanceof TextChannel) { guildId = CGuild.getCachedId(((TextChannel) channel).getGuild().getIdLong()); nickname = ((TextChannel) channel).getGuild().getMember(infoUser).getEffectiveName(); Guild guild = ((TextChannel) channel).getGuild(); if (args[2].equals("reset")) { member.joinDate = new Timestamp(guild.getMember(infoUser).getJoinDate().toInstant().toEpochMilli()); } else { member.joinDate = new Timestamp(joindateFormat.parse(args[2].replace("-", "/")).getTime()); OGuildMember member = CGuildMember.findBy(guildId, userId); if (member.joinDate == null) { member.joinDate = new Timestamp(guild.getMember(infoUser).getJoinDate().toInstant().toEpochMilli()); CGuildMember.insertOrUpdate(member);
); ImmutableSet<OnlineStatus> onlineStatus = Sets.immutableEnumSet(OnlineStatus.ONLINE, OnlineStatus.IDLE, OnlineStatus.DO_NOT_DISTURB); long online = guild.getMembers().stream().filter(member -> onlineStatus.contains(member.getOnlineStatus())).count(); b.setColor(GfxUtil.getAverageColor(guild.getIconUrl())); b.addField("Members", String.format("%s online\n%s in total", online, guild.getMembers().size()), true); b.addField("Channels", String.format("%s text channels\n%s voice channels", guild.getTextChannels().size(), guild.getVoiceChannels().size()), true); b.addField("Created by", String.format("%s\\#%s", guild.getOwner().getUser().getName(), guild.getOwner().getUser().getDiscriminator()), true); b.addField("My prefix", String.format("`%s`", DisUtil.getCommandPrefix(guild)), true); b.addField("Created On", new SimpleDateFormat("dd MMMM yyyy").format(new Date(guild.getCreationTime().toInstant().toEpochMilli())), true); b.setFooter(guild.getSelfMember().getEffectiveName(), channel.getJDA().getSelfUser().getAvatarUrl()); bot.queue.add(channel.sendMessage(b.build())); return "";
private boolean hasDJRole(Message message) { if (message.getMember().hasPermission(Permissions.ADMINISTRATOR.getPermission())) { return true; } for (Role role : message.getMember().getRoles()) { if (role.getName().equalsIgnoreCase("DJ")) { return true; } } return false; } }