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());
}
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) + " <?>");
}
}
}
}
}
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") + ")");
}
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) + " <✗>");
}
}
}
}
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();
}
Aggregations