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