net.dv8tion.jda.core.OnlineStatus Java Examples

The following examples show how to use net.dv8tion.jda.core.OnlineStatus. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Stats.java    From DiscordBot with Apache License 2.0 6 votes vote down vote up
private GuildStats(Guild g) {

            List<Member> l = g.getMembers();

            this.name = g.getName();
            this.id = g.getId();
            this.region = g.getRegion().getName();
            this.avatar = g.getIconUrl() == null ? "not set" : g.getIconUrl();
            this.textChans = g.getTextChannels().size();
            this.voiceChans = g.getVoiceChannels().size();
            this.categories = g.getCategories().size();
            this.rolesCount = g.getRoles().size();
            this.afk = g.getAfkChannel() == null ? "not set" : g.getAfkChannel().getName();
            this.owner = g.getOwner();

            this.all = l.size();
            this.users = l.stream().filter(m -> !m.getUser().isBot()).count();
            this.onlineUsers = l.stream().filter(m -> !m.getUser().isBot() && !m.getOnlineStatus().equals(OnlineStatus.OFFLINE)).count();
            this.bots = l.stream().filter(m -> m.getUser().isBot()).count();
            this.onlineBots = l.stream().filter(m -> m.getUser().isBot() && !m.getOnlineStatus().equals(OnlineStatus.OFFLINE)).count();

            this.roles = g.getRoles().stream()
                    .filter(r -> !r.getName().contains("everyone"))
                    .map(r -> String.format("%s (`%d`)", r.getName(), getMembsInRole(r)))
                    .collect(Collectors.joining(", "));
        }
 
Example #2
Source File: ServerCommand.java    From DiscordBlueBot with MIT License 6 votes vote down vote up
@Override
public void action(String[] args, MessageReceivedEvent event) {
    EmbedBuilder builder = new EmbedBuilder();
    builder.setAuthor("Server Info", null, "http://i.imgur.com/880AyL6.png");
    builder.setColor(Color.decode(MainBot.getConfig().getEmbedColor()));
    builder.setThumbnail(event.getGuild().getIconUrl());
    builder.addField("Name", event.getGuild().getName(), true);
    builder.addBlankField(true);
    builder.addField("Owner", event.getGuild().getOwner().getUser().getName() + "#" + event.getGuild().getOwner().getUser().getDiscriminator() , true);
    builder.addField("Server ID", event.getGuild().getId(), true);
    builder.addField("Region", event.getGuild().getRegion().name(), true);
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy h:mm a");
    builder.addField("Creation Date", event.getGuild().getCreationTime().format(formatter), true);
    builder.addField("Total Members", String.valueOf(event.getGuild().getMembers().size()), true);
    int online = 0;
    for(Member member : event.getGuild().getMembers()) {
        if(!member.getOnlineStatus().equals(OnlineStatus.OFFLINE)) {
            ++online;
        }
    }
    builder.addField("Online Members", String.valueOf(online), true);

    event.getTextChannel().sendMessage(builder.build()).queue();
}
 
Example #3
Source File: Guilds.java    From DiscordBot with Apache License 2.0 4 votes vote down vote up
@Override
public void action(String[] args, MessageReceivedEvent event) throws ParseException, IOException {

    if (!Perms.isOwner(event.getAuthor(), event.getTextChannel())) return;

    if ((args.length > 1 ? args[0] : "").equalsIgnoreCase("info")) {
        Guild g;
        try {
            g = event.getJDA().getGuildById(args[1]);
        } catch (Exception e) {
            event.getTextChannel().sendMessage(MSGS.error().setDescription("There is no guild with the entered ID.").build()).queue();
            return;
        }

        event.getTextChannel().sendMessage(new EmbedBuilder()
                .setTitle("Guild information for guild " + g.getName(), null)
                .setThumbnail(g.getIconUrl())
                .setDescription("\n\n")
                .addField("Name", g.getName(), false)
                .addField("ID", g.getId(), false)
                .addField("Owner", g.getOwner().getAsMention(), false)
                .addField("Members", g.getMembers().size() + " (Online: " + g.getMembers().stream().filter(m -> !m.getOnlineStatus().equals(OnlineStatus.OFFLINE)).count() + ")", false)
                .addField("Prefix on server", "`" + SSSS.getPREFIX(g) + "`", false)
                .build()
        ).queue();
        return;
    }

    StringBuilder sb = new StringBuilder();

    sb.append("**Running on `" + event.getJDA().getGuilds().size() + "` guilds.**\n\n");
    event.getJDA().getGuilds().stream()
            .sorted(Comparator.comparingInt(s -> s.getMembers().size()))
            .forEach(g -> sb.append(
            "*[" + g.getMembers().size() + "]*  -  **" + g.getName() + "**  -  `" + g.getId() + "`\n"
    ));

    if (sb.toString().length() > 2000)
        event.getTextChannel().sendMessage("**Guilds:**\n\n" + sb.toString()).queue();
    else
        event.getTextChannel().sendMessage(new EmbedBuilder().setTitle("Guilds", null).setDescription(sb.toString()).build()).queue();

}
 
Example #4
Source File: ServerInfoCommand.java    From FlareBot with MIT License 4 votes vote down vote up
private void sendGuildInfo(Guild guild, TextChannel channel) {
    EmbedBuilder eb = new EmbedBuilder();
    eb.setTitle(guild.getName());
    eb.setThumbnail(guild.getIconUrl());
    eb.addField("Users", "**Total:** " +
            guild.getMembers().size() + "\n" +
            "\n" +
            "**Online:** " +
            guild.getMembers().stream().filter(member -> !member.getOnlineStatus().equals(OnlineStatus.OFFLINE)).count() + "\n" +
            "\n" +
            "**Owner:** " +
            MessageUtils.getTag(guild.getOwner().getUser()), true);
    String afk = guild.getAfkChannel() == null ? "" :
            "**AFK:**\n" +
                    "Channel: " +
                    guild.getAfkChannel().getName() + "\n" +
                    "\n" +
                    "Timeout: " +
                    FormatUtils.formatTime(guild.getAfkTimeout().getSeconds(), TimeUnit.SECONDS, true, false);
    eb.addField("Channels", "**Text**\n" +
            "Total: " +
            guild.getTextChannels().size() + "\n" +
            "\n" +
            "**Voice**\n" +
            "Total: " +
            guild.getVoiceChannels().size() + "\n" +
            "\n" +
            "Active: " +
            guild.getVoiceChannels().stream().filter(voiceChannel -> voiceChannel.getMembers().size() > 0).count() + "\n" +
            "\n" + afk, true);
    eb.addField("Misc info", "**Creation time:** " +
            guild.getCreationTime().toLocalDateTime().atOffset(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + " UTC\n" +
            "\n" +
            "**Roles:** " +
            guild.getRoles().size() + "\n" +
            "\n" +
            "**Server region:** " +
            guild.getRegion().getName() + "\n" +
            "\n" +
            "**Verification Level:** " +
            GeneralUtils.getVerificationString(guild.getVerificationLevel()), true);
    eb.setFooter("ID: " + guild.getId(), null);
    eb.setColor(Color.CYAN);
    channel.sendMessage(eb.build()).queue();
}
 
Example #5
Source File: Events.java    From FlareBot with MIT License 4 votes vote down vote up
@Override
public void onUserUpdateOnlineStatus(UserUpdateOnlineStatusEvent event) {
    if (event.getOldOnlineStatus() == OnlineStatus.OFFLINE)
        flareBot.getPlayerCache(event.getUser().getId()).setLastSeen(LocalDateTime.now());
}
 
Example #6
Source File: Config.java    From Selfbot with Apache License 2.0 4 votes vote down vote up
public Config() throws Exception
{
    List<String> lines = Files.readAllLines(Paths.get("config.txt"));
    for(String str : lines)
    {
        String[] parts = str.split("=",2);
        String key = parts[0].trim().toLowerCase();
        String value = parts.length>1 ? parts[1].trim() : null;
        switch(key) 
        {
            case "token":
                userToken = value;
                break;
            case "prefix":
                if(value==null)
                {
                    prefix = "";
                    LOG.warn("The prefix was defined as empty!");
                }
                else
                    prefix = value;
                break;
            case "timezone":
                if(value==null)
                {
                    zone = ZoneId.systemDefault();
                    LOG.warn("An empty timezone was provided; using the system default!");
                }
                else
                {
                    try {
                        zone = ZoneId.of(value);
                    } catch(Exception e) {
                        zone = ZoneId.systemDefault();
                        LOG.warn("\""+value+"\" is not a valid timezone; using the system default!");
                    }
                }
                break;
            case "status":
                status = OnlineStatus.fromKey(value);
                if(status == OnlineStatus.UNKNOWN)
                {
                    status = OnlineStatus.IDLE;
                    LOG.warn("\""+value+"\" is not a valid status; using the default IDLE! Valid statuses are ONLINE, IDLE, DND, and INVISIBLE.");
                }
                break;
            case "bot":
                bot = "true".equalsIgnoreCase(value);
        }
    }
    if(userToken==null)
        throw new Exception("No token provided int he config file!");
    if(prefix==null)
        throw new Exception("No prefix provided in the config file!");
    if(zone==null)
    {
        zone = ZoneId.systemDefault();
        LOG.warn("No timezone provided; using the system default!");
    }
    if(status==null)
    {
        status = OnlineStatus.IDLE;
        LOG.warn("No status provided; using IDLE!");
    }
}
 
Example #7
Source File: Config.java    From Selfbot with Apache License 2.0 4 votes vote down vote up
public OnlineStatus getStatus()
{
    return status;
}