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();
}
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);
}
}
}
}
Aggregations