Search in sources :

Example 31 with Guild

use of net.dv8tion.jda.core.entities.Guild in project Ardent by adamint.

the class EntityGuild method get.

public static EntityGuild get(Guild guild) {
    List<EntityGuild> retrieved = cache.stream().filter(entityGuild -> entityGuild.getId().equalsIgnoreCase(guild.getId())).collect(Collectors.toList());
    if (retrieved.size() == 1)
        return retrieved.get(0);
    EntityGuild entityGuild = new EntityGuild(false, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), guild);
    cache.add(entityGuild);
    globalExecutorService.scheduleAtFixedRate(() -> {
        boolean isOwnerTierThree = UserUtils.hasTierThreePermissions(guild.getOwner().getUser()) || UserUtils.isStaff(guild.getOwner().getUser());
        ArrayList<String> tierThree = new ArrayList<>();
        ArrayList<String> tierTwo = new ArrayList<>();
        ArrayList<String> tierOne = new ArrayList<>();
        guild.getMembers().forEach(member -> {
            User user = member.getUser();
            String id = user.getId();
            if (UserUtils.hasTierThreePermissions(user))
                tierThree.add(id);
            else if (UserUtils.hasTierTwoPermissions(user))
                tierTwo.add(id);
            else if (UserUtils.hasTierOnePermissions(user))
                tierOne.add(id);
        });
        entityGuild.setTiers(isOwnerTierThree, tierOne, tierTwo, tierThree);
    }, 0, 1, TimeUnit.MINUTES);
    return entityGuild;
}
Also used : TimeUnit(java.util.concurrent.TimeUnit) Guild(net.dv8tion.jda.core.entities.Guild) List(java.util.List) Getter(lombok.Getter) User(net.dv8tion.jda.core.entities.User) ListUtils(org.apache.commons.collections.ListUtils) UserUtils(tk.ardentbot.utils.discord.UserUtils) RestrictedUser(tk.ardentbot.utils.models.RestrictedUser) Ardent.globalExecutorService(tk.ardentbot.main.Ardent.globalExecutorService) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) User(net.dv8tion.jda.core.entities.User) RestrictedUser(tk.ardentbot.utils.models.RestrictedUser) ArrayList(java.util.ArrayList)

Example 32 with Guild

use of net.dv8tion.jda.core.entities.Guild in project Ardent by adamint.

the class TriviaGame method displayScores.

public EmbedBuilder displayScores(Shard shard, Command command) throws Exception {
    Map<String, Integer> sorted = MapUtils.sortByValue(scores);
    Guild guild = shard.jda.getGuildById(guildId);
    EmbedBuilder builder = MessageUtils.getDefaultEmbed(guild.getSelfMember().getUser());
    String currentScores = "Current Scores";
    if (solo)
        builder.setAuthor(currentScores + " | Solo Game", shard.url, guild.getIconUrl());
    else
        builder.setAuthor(currentScores + " | Everyone can play", shard.url, guild.getIconUrl());
    StringBuilder description = new StringBuilder();
    description.append("**" + currentScores + "**");
    Iterator<Map.Entry<String, Integer>> iterator = sorted.entrySet().iterator();
    int currentPlace = 1;
    while (iterator.hasNext()) {
        Map.Entry<String, Integer> entry = iterator.next();
        description.append("\n#" + currentPlace + ": **" + shard.jda.getUserById(entry.getKey()).getName() + "** " + entry.getValue() + " points");
        currentPlace++;
    }
    if (currentPlace == 1) {
        description.append("\nNo one has gotten a question right so far!");
    }
    description.append("\n\nCurrent Round: " + round);
    return builder.setDescription(description.toString());
}
Also used : EmbedBuilder(net.dv8tion.jda.core.EmbedBuilder) Guild(net.dv8tion.jda.core.entities.Guild) HashMap(java.util.HashMap) Map(java.util.Map)

Example 33 with Guild

use of net.dv8tion.jda.core.entities.Guild in project Ardent by adamint.

the class MuteDaemon method run.

@Override
public void run() {
    for (Shard shard : ShardManager.getShards()) {
        HashMap<String, HashMap<String, Long>> mutes = shard.botMuteData.getMutes();
        for (String guildID : mutes.keySet()) {
            Guild guild = shard.jda.getGuildById(guildID);
            for (String userID : mutes.get(guildID).keySet()) {
                Member member = guild.getMember(shard.jda.getUserById(userID));
                if (!shard.botMuteData.isMuted(member) && shard.botMuteData.wasMute(member)) {
                    shard.botMuteData.unmute(member);
                    member.getUser().openPrivateChannel().queue(privateChannel -> {
                        try {
                            privateChannel.sendMessage("You can now speak in {0}".replace("{0}", guild.getName())).queue();
                        } catch (Exception e) {
                            new BotException(e);
                        }
                    });
                }
            }
        }
    }
}
Also used : HashMap(java.util.HashMap) BotException(tk.ardentbot.core.misc.logging.BotException) Shard(tk.ardentbot.main.Shard) Guild(net.dv8tion.jda.core.entities.Guild) Member(net.dv8tion.jda.core.entities.Member) BotException(tk.ardentbot.core.misc.logging.BotException)

Example 34 with Guild

use of net.dv8tion.jda.core.entities.Guild in project MantaroBot by Mantaro.

the class MuteTask method handle.

public void handle() {
    try {
        MantaroObj data = MantaroData.db().getMantaroData();
        Map<Long, Pair<String, Long>> mutes = data.getMutes();
        log.debug("Checking mutes... data size {}", mutes.size());
        for (Map.Entry<Long, Pair<String, Long>> entry : mutes.entrySet()) {
            try {
                log.trace("Iteration");
                Long id = entry.getKey();
                Pair<String, Long> pair = entry.getValue();
                String guildId = pair.getLeft();
                long maxTime = pair.getRight();
                if (MantaroBot.getInstance().getShardForGuild(guildId) == null) {
                    continue;
                }
                Guild guild = MantaroBot.getInstance().getGuildById(guildId);
                DBGuild dbGuild = MantaroData.db().getGuild(guildId);
                GuildData guildData = dbGuild.getData();
                if (guild == null) {
                    data.getMutes().remove(id);
                    data.saveAsync();
                    log.debug("Removed {} because guild == null", id);
                    continue;
                } else if (guild.getMemberById(id) == null) {
                    data.getMutes().remove(id);
                    data.saveAsync();
                    log.debug("Removed {} because member == null", id);
                    continue;
                }
                // Please hold me.
                if (guild.getRoleById(guildData.getMutedRole()) == null) {
                    data.getMutes().remove(id);
                    data.saveAsync();
                    log.debug("Removed {} because role == null", id);
                } else {
                    if (System.currentTimeMillis() > maxTime) {
                        log.debug("Unmuted {} because time ran out", id);
                        data.getMutes().remove(id);
                        data.save();
                        guild.getController().removeRolesFromMember(guild.getMemberById(id), guild.getRoleById(guildData.getMutedRole())).queue();
                        guildData.setCases(guildData.getCases() + 1);
                        dbGuild.saveAsync();
                        ModLog.log(guild.getSelfMember(), MantaroBot.getInstance().getUserById(id), "Mute timeout expired", ModLog.ModAction.UNMUTE, guildData.getCases());
                    }
                }
            } catch (Exception ignored) {
            }
        }
    } catch (Exception ignored) {
    }
}
Also used : GuildData(net.kodehawa.mantarobot.db.entities.helpers.GuildData) MantaroObj(net.kodehawa.mantarobot.db.entities.MantaroObj) Guild(net.dv8tion.jda.core.entities.Guild) DBGuild(net.kodehawa.mantarobot.db.entities.DBGuild) DBGuild(net.kodehawa.mantarobot.db.entities.DBGuild) Map(java.util.Map) Pair(net.kodehawa.mantarobot.utils.Pair)

Example 35 with Guild

use of net.dv8tion.jda.core.entities.Guild in project MantaroBot by Mantaro.

the class GuildMusicManager method leave.

private void leave() {
    Guild guild = trackScheduler.getGuild();
    if (guild == null)
        return;
    isAwaitingDeath = false;
    trackScheduler.getQueue().clear();
    if (trackScheduler.getRequestedChannelParsed() != null) {
        trackScheduler.getRequestedChannelParsed().sendMessage(EmoteReference.SAD + "I decided to leave **" + guild.getSelfMember().getVoiceState().getChannel().getName() + "** " + "because I was left all alone :<").queue();
    }
    trackScheduler.nextTrack(true, true);
}
Also used : Guild(net.dv8tion.jda.core.entities.Guild)

Aggregations

Guild (net.dv8tion.jda.core.entities.Guild)43 User (net.dv8tion.jda.core.entities.User)16 Message (net.dv8tion.jda.core.entities.Message)13 TextChannel (net.dv8tion.jda.core.entities.TextChannel)12 EmbedBuilder (net.dv8tion.jda.core.EmbedBuilder)11 MessageChannel (net.dv8tion.jda.core.entities.MessageChannel)11 Shard (tk.ardentbot.main.Shard)9 List (java.util.List)8 Subcommand (tk.ardentbot.core.executor.Subcommand)8 ArrayList (java.util.ArrayList)7 Map (java.util.Map)7 Collectors (java.util.stream.Collectors)7 Member (net.dv8tion.jda.core.entities.Member)7 MantaroData (net.kodehawa.mantarobot.data.MantaroData)7 Command (tk.ardentbot.core.executor.Command)7 VoiceChannel (net.dv8tion.jda.core.entities.VoiceChannel)6 HashMap (java.util.HashMap)5 Permission (net.dv8tion.jda.core.Permission)5 EmoteReference (net.kodehawa.mantarobot.utils.commands.EmoteReference)5 GuildWrapper (stream.flarebot.flarebot.objects.GuildWrapper)5