For Episode 9 of the JDA Series: https://youtu.be/O3o58romUEc
package me.illuminatiproductions.commands;
import com.jagrosh.jdautilities.command.Command;
import com.jagrosh.jdautilities.command.CommandEvent;
import net.dv8tion.jda.core.EmbedBuilder;
import net.dv8tion.jda.core.entities.Member;
import net.dv8tion.jda.core.entities.Role;
import java.awt.*;
import java.time.format.DateTimeFormatter;
import java.util.List;
public class UserInfo extends Command {
public UserInfo(){
super.name = "user-info";
super.help = "Get some information about a user";
super.aliases = new String[]{"userinfo"};
super.category = new Category("Members");
super.cooldown = 10;
super.arguments = "[name]";
}
@Override
protected void execute(CommandEvent event) {
if (event.getArgs().isEmpty()){
event.reply("Provide a name! Like this: $user-info [name]");
}else{
//Gets the member object of the user so we can use easil
Member name;
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); //Time formatter
try{
name = event.getMessage().getMentionedMembers().get(0);
EmbedBuilder eb = new EmbedBuilder()
.setColor(Color.magenta)
.setThumbnail("http://pixelartmaker.com/art/1f41a07add48569.png")
.setAuthor("Information on " + name.getUser().getName(), "http://www.google.com", name.getUser().getAvatarUrl())
.setDescription(name.getUser().getName() + " joined on " + name.getJoinDate().format(fmt) + " :clock: ")
.addField("Game:", displayGameInfo(name), true)
.addField("Status:", name.getOnlineStatus().toString(), true)
.addField("Roles:", getRolesAsString(name.getRoles()), true)
.addField("Nickname: ", name.getNickname() == null ? "No Nickname" : name.getNickname(), true);
event.reply(eb.build());
event.reply(event.getAuthor().getAsMention() + " there you go");
}catch (IndexOutOfBoundsException ex){
System.out.println("Exception Occured");
event.reply("You need to provide the name as a mention.");
}
}
}
//Display game status
private String displayGameInfo(Member name){
try{
String game = name.getGame().getName();
return "Playing: " + game;
}catch (NullPointerException exx){
return "No Game Being Played";
}
}
//Get roles for the user
private String getRolesAsString(List rolesList){
String roles;
if (!rolesList.isEmpty()){
Role tempRole = (Role) rolesList.get(0);
roles = tempRole.getName();
for (int i = 1; i < rolesList.size(); i++){
tempRole = (Role) rolesList.get(i);
roles = roles + ", " + tempRole.getName();
}
}else{
roles = "No Roles";
}
return roles;
}
}
package me.illuminatiproductions;
import com.jagrosh.jdautilities.command.CommandClient;
import com.jagrosh.jdautilities.command.CommandClientBuilder;
import com.jagrosh.jdautilities.commons.waiter.EventWaiter;
import me.illuminatiproductions.commands.UserInfo;
import net.dv8tion.jda.core.AccountType;
import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.JDABuilder;
import net.dv8tion.jda.core.OnlineStatus;
import net.dv8tion.jda.core.entities.Game;
import net.dv8tion.jda.core.hooks.ListenerAdapter;
public class App extends ListenerAdapter {
public static void main(String [] args) throws Exception{
JDA jda = new JDABuilder(AccountType.BOT).setToken("yourtokenhere").buildBlocking();
CommandClientBuilder builder = new CommandClientBuilder();
builder.setOwnerId("yurbot'sid");
builder.setPrefix("$");
builder.setGame(Game.watching("your ultimate demise"));
builder.setStatus(OnlineStatus.DO_NOT_DISTURB);
builder.setHelpWord("helpme");
builder.addCommand(new UserInfo());
CommandClient client = builder.build();
jda.addEventListener(client);
}
}