Search in sources :

Example 61 with Member

use of net.dv8tion.jda.core.entities.Member in project GordoBot by Pedroleal19.

the class say method execute.

@Override
public void execute(CommandEvent event) {
    if (event.getAuthor().isBot()) {
        return;
    }
    Member author = event.getMessage().getMember();
    String[] text = event.getArgs().split(";<>stop<>;");
    String textReply = text[0];
    if (event.getArgs().isEmpty()) {
        event.reply("Falarei qualquer coisa que você pedir \n exemplo: gordo fale eu sou lindo");
        return;
    }
    event.reply(textReply + "\n \n" + author.getAsMention());
}
Also used : Member(net.dv8tion.jda.core.entities.Member)

Example 62 with Member

use of net.dv8tion.jda.core.entities.Member in project DiscordSRV by Scarsz.

the class CommandUnlink method execute.

@Command(commandNames = { "unlink", "clearlinked" }, helpMessage = "Unlinks your Minecraft account from your Discord account", permission = "discordsrv.unlink")
public static void execute(Player sender, String[] args) {
    if (args.length == 0) {
        String linkedId = DiscordSRV.getPlugin().getAccountLinkManager().getDiscordId(sender.getUniqueId());
        boolean hadLinkedAccount = linkedId != null;
        DiscordSRV.getPlugin().getAccountLinkManager().unlink(sender.getUniqueId());
        if (hadLinkedAccount) {
            Member member = DiscordUtil.getMemberById(linkedId);
            String name = member != null ? member.getEffectiveName() : "Discord ID " + linkedId;
            sender.sendMessage(ChatColor.AQUA + LangUtil.InternalMessage.UNLINK_SUCCESS.toString().replace("{name}", name));
        } else {
            sender.sendMessage(ChatColor.RED + LangUtil.InternalMessage.LINK_FAIL_NOT_ASSOCIATED_WITH_AN_ACCOUNT.toString());
        }
    } else {
        if (!sender.hasPermission("discordsrv.unlink.others")) {
            sender.sendMessage(ChatColor.RED + LangUtil.InternalMessage.NO_PERMISSION.toString());
            return;
        }
        String target = args[0];
        if (DiscordUtil.getUserById(target) != null) {
            // discord id given
            User targetUser = DiscordUtil.getUserById(target);
            UUID targetUuid = DiscordSRV.getPlugin().getAccountLinkManager().getUuid(target);
            OfflinePlayer targetPlayer = Bukkit.getPlayer(targetUuid);
            if (targetUuid != null) {
                DiscordSRV.getPlugin().getAccountLinkManager().unlink(targetUuid);
                sender.sendMessage(ChatColor.AQUA + PrettyUtil.beautify(targetUser) + " <✗> " + PrettyUtil.beautify(targetPlayer));
            } else {
                sender.sendMessage(ChatColor.RED + PrettyUtil.beautify(targetUser) + " <?>");
            }
        } else if (target.length() == 32 || target.length() == 36) {
            // uuid given
            UUID targetUuid = UUID.fromString(target);
            OfflinePlayer targetPlayer = Bukkit.getPlayer(targetUuid);
            User targetUser = DiscordUtil.getUserById(DiscordSRV.getPlugin().getAccountLinkManager().getDiscordId(targetUuid));
            if (targetUser != null) {
                DiscordSRV.getPlugin().getAccountLinkManager().unlink(targetUuid);
                sender.sendMessage(ChatColor.AQUA + PrettyUtil.beautify(targetUser) + " <✗> " + PrettyUtil.beautify(targetPlayer));
            } else {
                sender.sendMessage(ChatColor.RED + PrettyUtil.beautify(targetPlayer) + " <?>");
            }
        } else if (Bukkit.getPlayerExact(target) != null) {
            // player name given
            OfflinePlayer targetPlayer = Bukkit.getPlayerExact(target);
            UUID targetUuid = targetPlayer.getUniqueId();
            User targetUser = DiscordUtil.getUserById(DiscordSRV.getPlugin().getAccountLinkManager().getDiscordId(targetUuid));
            if (targetUser != null) {
                DiscordSRV.getPlugin().getAccountLinkManager().unlink(targetUuid);
                sender.sendMessage(ChatColor.AQUA + PrettyUtil.beautify(targetUser) + " <✗> " + PrettyUtil.beautify(targetPlayer));
            } else {
                sender.sendMessage(ChatColor.RED + PrettyUtil.beautify(targetPlayer) + " <?>");
            }
        } else {
            // discord name given?
            List<User> matchingUsers = DiscordUtil.getJda().getUsersByName(String.join(" ", args), true);
            if (matchingUsers.size() == 0) {
                sender.sendMessage(ChatColor.RED + LangUtil.InternalMessage.LINKED_NOBODY_FOUND.toString().replace("{target}", target));
                return;
            }
            for (User targetUser : matchingUsers) {
                UUID targetUuid = DiscordSRV.getPlugin().getAccountLinkManager().getUuid(targetUser.getId());
                OfflinePlayer targetPlayer = Bukkit.getPlayer(targetUuid);
                if (targetUuid != null) {
                    DiscordSRV.getPlugin().getAccountLinkManager().unlink(targetUuid);
                    sender.sendMessage(ChatColor.AQUA + PrettyUtil.beautify(targetUser) + " <✗> " + PrettyUtil.beautify(targetPlayer));
                } else {
                    sender.sendMessage(ChatColor.RED + PrettyUtil.beautify(targetUser) + " <?>");
                }
            }
        }
    }
}
Also used : User(net.dv8tion.jda.core.entities.User) OfflinePlayer(org.bukkit.OfflinePlayer) UUID(java.util.UUID) Member(net.dv8tion.jda.core.entities.Member)

Example 63 with Member

use of net.dv8tion.jda.core.entities.Member in project DiscordSRV by Scarsz.

the class GroupSynchronizationUtil method reSyncGroups.

public static void reSyncGroups(Player player, boolean clearAssignedRoles) {
    if (player == null)
        return;
    DiscordSRV.debug("Synchronizing player " + player.getName());
    String discordId = DiscordSRV.getPlugin().getAccountLinkManager().getDiscordId(player.getUniqueId());
    if (discordId == null) {
        DiscordSRV.debug("Tried to sync groups for player " + player.getName() + " but their MC account is not linked to a Discord account");
        return;
    }
    // get member
    Member member = DiscordUtil.getMemberById(discordId);
    if (member == null) {
        DiscordSRV.debug("Tried to sync groups for player " + player.getName() + " but their MC account is not linked to a Discord account");
        return;
    }
    // get all the roles to synchronize from the config
    Map<Permission, Role> synchronizables = new HashMap<>();
    for (String roleId : DiscordSRV.config().getStringList("GroupRoleSynchronizationRoleIdsToSync")) {
        Role role = DiscordUtil.getRole(roleId);
        if (role == null && !roleId.equals("12345678901234567890") && !roleId.equals("DISCORDROLENAME")) {
            DiscordSRV.debug(LangUtil.InternalMessage.GROUP_SYNCHRONIZATION_COULD_NOT_FIND_ROLE.toString().replace("{rolename}", roleId));
            continue;
        }
        Permission permission = new Permission("discordsrv.sync." + roleId, PermissionDefault.FALSE);
        synchronizables.put(permission, role);
    }
    if (synchronizables.size() == 0) {
        DiscordSRV.debug("Tried to sync groups but no synchronizables existed");
        return;
    }
    List<Role> rolesToAdd = new ArrayList<>();
    List<Role> rolesToRemove = new ArrayList<>();
    for (Map.Entry<Permission, Role> pair : synchronizables.entrySet()) {
        if (!clearAssignedRoles && player.hasPermission(pair.getKey())) {
            rolesToAdd.add(pair.getValue());
        } else {
            rolesToRemove.add(pair.getValue());
        }
    }
    // remove roles that the user already has from roles to add
    rolesToAdd.removeAll(member.getRoles());
    // remove roles that the user doesn't already have from roles to remove
    rolesToRemove.removeIf(role -> !member.getRoles().contains(role));
    List<String> changes = new ArrayList<>();
    if (rolesToAdd.size() > 0) {
        DiscordUtil.addRolesToMember(member, rolesToAdd);
        changes.add("+ " + String.join("", rolesToAdd.stream().map(Role::toString).collect(Collectors.toList())));
    }
    if (rolesToRemove.size() > 0) {
        DiscordUtil.removeRolesFromMember(member, rolesToRemove);
        changes.add("- " + String.join("", rolesToRemove.stream().map(Role::toString).collect(Collectors.toList())));
    }
    DiscordSRV.debug("Synced player " + player.getName() + " (" + (changes.size() > 0 ? String.join(" | ", changes) : "no changes") + ")");
}
Also used : Role(net.dv8tion.jda.core.entities.Role) HashMap(java.util.HashMap) Permission(org.bukkit.permissions.Permission) ArrayList(java.util.ArrayList) Member(net.dv8tion.jda.core.entities.Member) Map(java.util.Map) HashMap(java.util.HashMap)

Example 64 with Member

use of net.dv8tion.jda.core.entities.Member in project DiscordSRV by Scarsz.

the class CommandLinked method execute.

@Command(commandNames = { "linked" }, helpMessage = "Checks what Discord user your (or someone else's) MC account is linked to", permission = "discordsrv.linked")
public static void execute(CommandSender sender, String[] args) {
    if (args.length == 0) {
        if (!(sender instanceof Player)) {
            sender.sendMessage(ChatColor.RED + LangUtil.InternalMessage.LINKED_NOBODY_FOUND.toString().replace("{target}", "CONSOLE"));
            return;
        }
        String linkedId = DiscordSRV.getPlugin().getAccountLinkManager().getDiscordId(((Player) sender).getUniqueId());
        boolean hasLinkedAccount = linkedId != null;
        if (hasLinkedAccount) {
            Member member = DiscordUtil.getMemberById(linkedId);
            String name = member != null ? member.getEffectiveName() : "Discord ID " + linkedId;
            sender.sendMessage(ChatColor.AQUA + LangUtil.InternalMessage.LINKED_SUCCESS.toString().replace("{name}", name));
        } else {
            sender.sendMessage(ChatColor.AQUA + LangUtil.InternalMessage.LINK_FAIL_NOT_ASSOCIATED_WITH_AN_ACCOUNT.toString());
        }
    } else {
        if (!sender.hasPermission("discordsrv.linked.others")) {
            sender.sendMessage(ChatColor.RED + LangUtil.InternalMessage.NO_PERMISSION.toString());
            return;
        }
        String target = args[0];
        if (DiscordUtil.getUserById(target) != null) {
            // discord id given
            User targetUser = DiscordUtil.getUserById(target);
            UUID targetUuid = DiscordSRV.getPlugin().getAccountLinkManager().getUuid(target);
            OfflinePlayer targetPlayer = Bukkit.getPlayer(targetUuid);
            if (targetUuid != null)
                sender.sendMessage(ChatColor.AQUA + PrettyUtil.beautify(targetUser) + " <-> " + PrettyUtil.beautify(targetPlayer));
            else
                sender.sendMessage(ChatColor.RED + PrettyUtil.beautify(targetUser) + " <✗>");
        } else if (target.length() == 32 || target.length() == 36) {
            // uuid given
            UUID targetUuid = UUID.fromString(target);
            OfflinePlayer targetPlayer = Bukkit.getPlayer(targetUuid);
            User targetUser = DiscordUtil.getUserById(DiscordSRV.getPlugin().getAccountLinkManager().getDiscordId(targetUuid));
            if (targetUser != null)
                sender.sendMessage(ChatColor.AQUA + PrettyUtil.beautify(targetPlayer) + " <-> " + PrettyUtil.beautify(targetUser));
            else
                sender.sendMessage(ChatColor.RED + PrettyUtil.beautify(targetPlayer) + " <✗>");
        } else if (Bukkit.getPlayerExact(target) != null) {
            // player name given
            OfflinePlayer targetPlayer = Bukkit.getPlayerExact(target);
            UUID targetUuid = targetPlayer.getUniqueId();
            User targetUser = DiscordUtil.getUserById(DiscordSRV.getPlugin().getAccountLinkManager().getDiscordId(targetUuid));
            if (targetUser != null)
                sender.sendMessage(ChatColor.AQUA + PrettyUtil.beautify(targetPlayer) + " <-> " + PrettyUtil.beautify(targetUser));
            else
                sender.sendMessage(ChatColor.RED + PrettyUtil.beautify(targetPlayer) + " <✗>");
        } else {
            // discord name given?
            List<User> matchingUsers = DiscordUtil.getJda().getUsersByName(String.join(" ", args), true);
            if (matchingUsers.size() == 0) {
                sender.sendMessage(ChatColor.RED + LangUtil.InternalMessage.LINKED_NOBODY_FOUND.toString().replace("{target}", target));
                return;
            }
            for (User targetUser : matchingUsers) {
                UUID targetUuid = DiscordSRV.getPlugin().getAccountLinkManager().getUuid(targetUser.getId());
                OfflinePlayer targetPlayer = Bukkit.getPlayer(targetUuid);
                if (targetUuid != null)
                    sender.sendMessage(ChatColor.AQUA + PrettyUtil.beautify(targetUser) + " <-> " + PrettyUtil.beautify(targetPlayer));
                else
                    sender.sendMessage(ChatColor.RED + PrettyUtil.beautify(targetUser) + " <✗>");
            }
        }
    }
}
Also used : Player(org.bukkit.entity.Player) OfflinePlayer(org.bukkit.OfflinePlayer) User(net.dv8tion.jda.core.entities.User) OfflinePlayer(org.bukkit.OfflinePlayer) UUID(java.util.UUID) Member(net.dv8tion.jda.core.entities.Member)

Example 65 with Member

use of net.dv8tion.jda.core.entities.Member in project Gary by help-chat.

the class Info method execute.

@Override
protected void execute(MessageReceivedEvent e, String[] args) {
    List<Member> totalOnlineList = new ArrayList<>(), membersList = new ArrayList<>(), membersOnlineList = new ArrayList<>();
    List<Member> botsList = new ArrayList<>(), botsOnlineList = new ArrayList<>();
    e.getGuild().getMembers().forEach(member -> {
        if (member.getOnlineStatus() != OnlineStatus.OFFLINE && !member.getUser().isBot())
            membersOnlineList.add(member);
        if (!member.getUser().isBot())
            membersList.add(member);
        if (member.getOnlineStatus() != OnlineStatus.OFFLINE && member.getUser().isBot())
            botsOnlineList.add(member);
        if (member.getUser().isBot())
            botsList.add(member);
        if (member.getOnlineStatus() != OnlineStatus.OFFLINE)
            totalOnlineList.add(member);
    });
    String total = totalOnlineList.size() + "/" + e.getGuild().getMembers().size();
    String members = membersOnlineList.size() + "/" + membersList.size();
    String bots = botsOnlineList.size() + "/" + botsList.size();
    MessageEmbed.Field helpchat = new MessageEmbed.Field("HelpChat:", "Info regarding the discord server\n\u200C\u200C", false);
    MessageEmbed.Field users = new MessageEmbed.Field("Users online:", "Total: " + total + "\n\u200C\u200CMembers: " + members + "\n\u200C\u200CBots: " + bots + "\n\u200C\u200C", true);
    MessageEmbed.Field gary = new MessageEmbed.Field("Gary:", "Info about gary himself\n\u200C\u200C", false);
    MessageEmbed.Field uptime = new MessageEmbed.Field("Uptime:", TimeUnit.MILLISECONDS.toHours(ManagementFactory.getRuntimeMXBean().getUptime()) + " hours uptime.", true);
    MessageEmbed.Field commands = new MessageEmbed.Field("Loaded Commands:", commandHandler.getCommands().size() + " loaded commands.", true);
    MessageEmbed.Field configs = new MessageEmbed.Field("Loaded Files:", gFile.getgFiles().size() + " loaded files.", true);
    MessageEmbed message = new EmbedBuilder().setTitle("Info").setThumbnail(e.getGuild().getIconUrl()).addField(helpchat).addField(users).addField(gary).addField(uptime).addField(commands).addField(configs).setFooter("Gary v" + version.getVersion(), e.getJDA().getSelfUser().getAvatarUrl()).build();
    e.getChannel().sendMessage(message).queue();
}
Also used : EmbedBuilder(net.dv8tion.jda.core.EmbedBuilder) MessageEmbed(net.dv8tion.jda.core.entities.MessageEmbed) ArrayList(java.util.ArrayList) Member(net.dv8tion.jda.core.entities.Member)

Aggregations

Member (net.dv8tion.jda.core.entities.Member)69 Guild (net.dv8tion.jda.core.entities.Guild)22 Message (net.dv8tion.jda.core.entities.Message)22 EmbedBuilder (net.dv8tion.jda.core.EmbedBuilder)17 User (net.dv8tion.jda.core.entities.User)17 TextChannel (net.dv8tion.jda.core.entities.TextChannel)16 MessageBuilder (net.dv8tion.jda.core.MessageBuilder)11 ArrayList (java.util.ArrayList)10 List (java.util.List)10 Permission (net.dv8tion.jda.core.Permission)8 GuildWrapper (stream.flarebot.flarebot.objects.GuildWrapper)8 Role (net.dv8tion.jda.core.entities.Role)7 CommandType (stream.flarebot.flarebot.commands.CommandType)7 MessageUtils (stream.flarebot.flarebot.util.MessageUtils)7 Collectors (java.util.stream.Collectors)6 Permission (stream.flarebot.flarebot.permissions.Permission)6 GuildPlayer (fredboat.audio.player.GuildPlayer)5 AudioTrackContext (fredboat.audio.queue.AudioTrackContext)5 JDA (net.dv8tion.jda.core.JDA)5 Command (stream.flarebot.flarebot.commands.Command)5