Search in sources :

Example 1 with Staff

use of tk.ardentbot.rethink.models.Staff in project Ardent by adamint.

the class PermissionsDaemon method run.

@Override
public void run() {
    Cursor<HashMap> patrons = r.db("data").table("patrons").run(connection);
    patrons.forEach(hashMap -> {
        Patron patron = asPojo(hashMap, Patron.class);
        if (patron.getTier().equalsIgnoreCase("tier1")) {
            if (!tierOnepatrons.contains(patron.getUser_id()))
                tierOnepatrons.add(patron.getUser_id());
        } else if (patron.getTier().equalsIgnoreCase("tier2")) {
            if (!tierTwopatrons.contains(patron.getUser_id()))
                tierTwopatrons.add(patron.getUser_id());
        } else if (patron.getTier().equalsIgnoreCase("tier3")) {
            if (!tierThreepatrons.contains(patron.getUser_id()))
                tierThreepatrons.add(patron.getUser_id());
        }
    });
    Cursor<HashMap> staff = r.db("data").table("staff").run(connection);
    staff.forEach(hashMap -> {
        Staff staffMember = asPojo(hashMap, Staff.class);
        if (staffMember.getRole().equalsIgnoreCase("Developer")) {
            if (!developers.contains(staffMember.getId()))
                developers.add(staffMember.getId());
        } else if (staffMember.getRole().equalsIgnoreCase("Moderator")) {
            if (!moderators.contains(staffMember.getId()))
                moderators.add(staffMember.getId());
        } else if (staffMember.getRole().equalsIgnoreCase("Translator")) {
            if (translators.contains(staffMember.getId()))
                translators.add(staffMember.getId());
        }
    });
    patrons.close();
    staff.close();
}
Also used : HashMap(java.util.HashMap) Staff(tk.ardentbot.rethink.models.Staff) Patron(tk.ardentbot.rethink.models.Patron)

Example 2 with Staff

use of tk.ardentbot.rethink.models.Staff in project Ardent by adamint.

the class Admin method noArgs.

@Override
public void noArgs(Guild guild, MessageChannel channel, User user, Message message, String[] args) throws Exception {
    if (Ardent.developers.contains(user.getId())) {
        if (args.length > 1) {
            if (args[1].equalsIgnoreCase("update")) {
                update(this, channel);
            } else if (args[1].equalsIgnoreCase("softupdate")) {
                ScheduledExecutorService ex = Executors.newSingleThreadScheduledExecutor();
                ex.scheduleAtFixedRate(() -> {
                    long connections = InternalStats.collect().getMusicPlayers();
                    if (connections <= 1 || (secondsWaitedForRestart >= (60 * 60 * 3))) {
                        if (connections <= 3) {
                            try {
                                update(Admin.this, channel);
                            } catch (Exception e) {
                                new BotException(e);
                            }
                        }
                    }
                    secondsWaitedForRestart += 5;
                }, 5, 5, TimeUnit.SECONDS);
            } else if (args[1].equalsIgnoreCase("getloc")) {
                sendTranslatedMessage(this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(), channel, user);
            } else if (args[1].equalsIgnoreCase("usage")) {
                Map<Guild, Integer> guildsByUsage = UsageUtils.sortedGuildsByCommandUsage(10);
                StringBuilder sb = new StringBuilder();
                guildsByUsage.forEach((key, value) -> {
                    sb.append(key.getName() + " (" + key.getId() + ") : " + value + "\n");
                });
                sendTranslatedMessage(sb.toString(), channel, user);
            } else if (args[1].equalsIgnoreCase("announce")) {
                String msg = message.getRawContent().replace(GuildUtils.getPrefix(guild) + args[0] + " " + args[1] + " ", "");
                if (Ardent.announcement != null)
                    Ardent.sentAnnouncement.clear();
                Ardent.announcement = "** == Important Announcement ==**\n" + msg;
                for (Shard shard : getShards()) {
                    shard.jda.getGuilds().forEach(g -> {
                        Ardent.sentAnnouncement.put(g.getId(), false);
                    });
                }
            } else if (args[1].equalsIgnoreCase("addpatron")) {
                List<User> mentioned = message.getMentionedUsers();
                if (mentioned.size() == 1) {
                    User u = mentioned.get(0);
                    String[] uArgs = message.getRawContent().split(" ");
                    if (uArgs.length == 4) {
                        String role = uArgs[3];
                        if (role.equalsIgnoreCase("tier1") || role.equalsIgnoreCase("tier2") || role.equalsIgnoreCase("tier3")) {
                            r.table("patrons").insert(r.hashMap("user_id", u.getId()).with("tier", role)).run(connection);
                            channel.sendMessage("done").queue();
                        }
                    }
                }
            } else if (args[1].equalsIgnoreCase("addstaff")) {
                List<User> mentioned = message.getMentionedUsers();
                User u = mentioned.get(0);
                String roleToAdd = args[3];
                r.table("staff").insert(r.json(gson.toJson(new Staff(u.getId(), roleToAdd)))).run(connection);
                channel.sendMessage("done").queue();
            } else if (args[1].equalsIgnoreCase("stop")) {
                for (Shard shard : getShards()) {
                    shard.jda.shutdown(true);
                }
                System.exit(0);
            } else if (args[1].equalsIgnoreCase("restart")) {
                for (Shard shard : getShards()) {
                    shard.jda.shutdown(true);
                }
                channel.sendMessage("This subcommand is untested and could fail.").queue();
                Runtime.getRuntime().exec("java -jar " + getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
                System.exit(0);
            } else if (args[1].equalsIgnoreCase("setgameurl")) {
                Ardent.gameUrl = args[2];
                sendTranslatedMessage("Updated the game URL", channel, user);
            } else if (args[1].equalsIgnoreCase("addmoney")) {
                String[] raw = message.getRawContent().split(" ");
                if (raw.length == 4) {
                    try {
                        User mentioned1 = message.getMentionedUsers().get(0);
                        double amount = Double.parseDouble(raw[3]);
                        Profile.get(mentioned1).addMoney(amount);
                        sendTranslatedMessage("added " + amount + " to " + mentioned1.getName(), channel, user);
                    } catch (Exception e) {
                        sendTranslatedMessage("bad", channel, user);
                    }
                } else
                    sendTranslatedMessage("bad", channel, user);
            } else if (args[1].equalsIgnoreCase("disable")) {
                if (args.length == 2) {
                    StringBuilder disabledCommands = new StringBuilder();
                    disabledCommands.append("**Disabled Commands/Features:**\n");
                    Ardent.disabledCommands.forEach(s -> {
                        disabledCommands.append(" **>** ").append(s).append("\n");
                    });
                    sendTranslatedMessage(disabledCommands.toString(), channel, user);
                } else if (args.length == 4) {
                    try {
                        boolean disable = Boolean.parseBoolean(args[2]);
                        System.out.println(disable);
                        String identifier = args[3];
                        if (disable) {
                            if (Ardent.disabledCommands.contains(identifier))
                                sendTranslatedMessage("This feature is already disabled", channel, user);
                            else {
                                Ardent.disabledCommands.add(identifier);
                                sendTranslatedMessage("disabled " + identifier, channel, user);
                            }
                        } else {
                            if (!Ardent.disabledCommands.contains(identifier)) {
                                sendTranslatedMessage("This feature is already enabled", channel, user);
                            } else {
                                Ardent.disabledCommands.remove(identifier);
                                sendTranslatedMessage("enabled " + identifier, channel, user);
                            }
                        }
                    } catch (Exception e) {
                        sendTranslatedMessage("/admin restrict true/false command_identifier", channel, user);
                    }
                } else
                    sendTranslatedMessage("/admin restrict true/false command_identifier", channel, user);
            }
        }
    }
}
Also used : GuildMusicManager(tk.ardentbot.commands.music.GuildMusicManager) Command(tk.ardentbot.core.executor.Command) net.dv8tion.jda.core.entities(net.dv8tion.jda.core.entities) Staff(tk.ardentbot.rethink.models.Staff) Database.r(tk.ardentbot.rethink.Database.r) Profile(tk.ardentbot.utils.rpg.profiles.Profile) BotException(tk.ardentbot.core.misc.logging.BotException) Shard(tk.ardentbot.main.Shard) Executors(java.util.concurrent.Executors) UsageUtils(tk.ardentbot.utils.discord.UsageUtils) TimeUnit(java.util.concurrent.TimeUnit) GuildUtils(tk.ardentbot.utils.discord.GuildUtils) List(java.util.List) ShardManager.getShards(tk.ardentbot.main.ShardManager.getShards) Music(tk.ardentbot.commands.music.Music) Database.connection(tk.ardentbot.rethink.Database.connection) Map(java.util.Map) InternalStats(tk.ardentbot.utils.discord.InternalStats) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) Ardent(tk.ardentbot.main.Ardent) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) Staff(tk.ardentbot.rethink.models.Staff) BotException(tk.ardentbot.core.misc.logging.BotException) BotException(tk.ardentbot.core.misc.logging.BotException) List(java.util.List) Shard(tk.ardentbot.main.Shard) Map(java.util.Map)

Aggregations

Staff (tk.ardentbot.rethink.models.Staff)2 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Executors (java.util.concurrent.Executors)1 ScheduledExecutorService (java.util.concurrent.ScheduledExecutorService)1 TimeUnit (java.util.concurrent.TimeUnit)1 net.dv8tion.jda.core.entities (net.dv8tion.jda.core.entities)1 GuildMusicManager (tk.ardentbot.commands.music.GuildMusicManager)1 Music (tk.ardentbot.commands.music.Music)1 Command (tk.ardentbot.core.executor.Command)1 BotException (tk.ardentbot.core.misc.logging.BotException)1 Ardent (tk.ardentbot.main.Ardent)1 Shard (tk.ardentbot.main.Shard)1 ShardManager.getShards (tk.ardentbot.main.ShardManager.getShards)1 Database.connection (tk.ardentbot.rethink.Database.connection)1 Database.r (tk.ardentbot.rethink.Database.r)1 Patron (tk.ardentbot.rethink.models.Patron)1 GuildUtils (tk.ardentbot.utils.discord.GuildUtils)1 InternalStats (tk.ardentbot.utils.discord.InternalStats)1