use of com.yuhtin.lauren.core.player.Player in project Lauren by Yuhtin.
the class LootGeneratorTask method startRunnable.
public void startRunnable() {
logger.info("Registered LootGeneratorTask");
val allowedChannels = Arrays.asList(700673056414367825L, 704342124732350645L);
val embed = new EmbedBuilder();
embed.setAuthor("Loot Radiante", null, "https://cdn.discordapp.com/emojis/724759930653114399.png?v=1");
val guild = jda.getGuilds().get(0);
embed.setFooter("© ^Aincrad™ servidor de jogos", guild.getIconUrl());
embed.setThumbnail("https://www.pcguia.pt/wp-content/uploads/2019/11/lootbox.jpg");
embed.setColor(Color.ORANGE);
val arrow = " <:seta:771540348157689886>";
embed.setDescription("Você encontrou uma **lootbox**, seja o primeiro a reajir\n" + "no ícone abaixo para garantir prêmios aleatórios\n" + "\n" + " \uD83C\uDFC6 Prêmios:\n" + arrow + " Experiência **(Garantido)**\n" + arrow + " Pontos de Patente\n" + arrow + " Dinheiro\n" + arrow + " Boost de XP\n" + arrow + " Cargo Sortudo");
TaskHelper.runTaskTimerAsync(new TimerTask() {
@Override
public void run() {
logger.info("Running LootGeneratorTask");
if (new Random().nextInt(100) > 10)
return;
val value = new Random().nextInt(allowedChannels.size());
val channelID = allowedChannels.get(value);
val channel = guild.getTextChannelById(channelID);
if (channel == null) {
logger.warning("Can't select a random channel to drop a loot");
return;
}
logger.info("Dropped loot on channel " + channel.getName());
val message = channel.sendMessageEmbeds(embed.build()).complete();
message.addReaction(":radiante:771541052590915585").queue();
eventWaiter.waitForEvent(MessageReactionAddEvent.class, event -> !event.getMember().getUser().isBot() && event.getMessageIdLong() == message.getIdLong(), event -> {
message.clearReactions().queue();
var nickname = event.getMember().getNickname();
if (nickname == null)
nickname = event.getMember().getEffectiveName();
message.delete().queue();
val privateChannel = event.getUser().openPrivateChannel().complete();
if (privateChannel != null) {
privateChannel.sendMessage("<:felizpakas:742373250037710918> " + "Parabéns **" + nickname + "**, você capturou uma lootbox, você pode abrir ela mais tarde " + "usando `/lootbox`").queue();
}
val player = playerController.get(event.getUserIdLong());
player.setLootBoxes(player.getLootBoxes() + 1);
logger.info("The player " + event.getUser().getAsTag() + " getted the drop");
}, 90, TimeUnit.SECONDS, () -> {
message.delete().queue();
channel.sendMessage("<a:tchau:751941650728747140> " + "Infelizmente acabou o tempo e ninguém coletou o loot.").queue(m -> m.delete().queueAfter(5, TimeUnit.SECONDS));
});
}
}, 25, 60, TimeUnit.MINUTES);
}
use of com.yuhtin.lauren.core.player.Player in project Lauren by Yuhtin.
the class ShardLootTask method startRunnable.
public void startRunnable() {
logger.info("Registered ShardLootTask");
val allowedChannels = Arrays.asList(704342124732350645L, 700673056414367825L);
val embed = new EmbedBuilder();
embed.setAuthor("Shard Loot", null, "https://cdn.discordapp.com/emojis/772285522852839445.png?v=1");
val guild = bot.getGuilds().get(0);
embed.setFooter("© ^Aincrad™ servidor de jogos", guild.getIconUrl());
embed.setThumbnail("https://www.pcguia.pt/wp-content/uploads/2019/11/lootbox.jpg");
embed.setColor(Color.MAGENTA);
embed.setDescription("Você encontrou um **shardloot**, seja o primeiro a reajir\n" + "no ícone abaixo para garantir seus **<:boost_emoji:772285522852839445> shards**\n");
TaskHelper.runTaskTimerAsync(new TimerTask() {
@Override
public void run() {
logger.info("Running ShardLootTask");
if (new Random().nextInt(100) > 25)
return;
val value = new Random().nextInt(allowedChannels.size());
val channelID = allowedChannels.get(value);
val channel = guild.getTextChannelById(channelID);
if (channel == null) {
logger.warning("Can't select a random channel to drop a loot");
return;
}
logger.info("Dropped shardloot on channel " + channel.getName());
val message = channel.sendMessageEmbeds(embed.build()).complete();
message.addReaction(":boost_emoji:772285522852839445").queue();
eventWaiter.waitForEvent(MessageReactionAddEvent.class, event -> !event.getMember().getUser().isBot() && event.getMessageIdLong() == message.getIdLong(), event -> {
message.delete().queue();
val player = playerController.get(event.getUserIdLong());
val shard = 30 + new Random().nextInt(50);
player.addMoney(shard);
val privateChannel = event.getUser().openPrivateChannel().complete();
if (event.getUser().hasPrivateChannel()) {
var nickname = event.getMember().getNickname();
if (nickname == null)
nickname = event.getMember().getEffectiveName();
privateChannel.sendMessage("<:felizpakas:742373250037710918> " + "Parabéns **" + nickname + "**, você capturou um shardloot, " + "você recebeu <:boost_emoji:772285522852839445> **$" + shard + " shards**").queue();
}
logger.info("The player " + event.getUser().getAsTag() + " getted the sharddrop");
}, 25, TimeUnit.SECONDS, () -> message.delete().queue());
}
}, 10, 55, TimeUnit.MINUTES);
}
use of com.yuhtin.lauren.core.player.Player in project Lauren by Yuhtin.
the class PlayerController method get.
public Player get(long userID) {
var player = cache.getOrDefault(userID, null);
if (player == null) {
val loadedPlayer = playerDAO.findById(userID);
if (loadedPlayer == null) {
player = new Player(userID);
playerDAO.insertPlayer(player);
} else {
if (loadedPlayer.getRank() == null) {
// execute conversion
player = new Player(userID);
player.setExperience(loadedPlayer.getExperience());
player.setMoney(loadedPlayer.getMoney());
player.setLevel(loadedPlayer.getLevel());
logger.info("Converted data of player " + userID + " to new Player class");
} else
player = loadedPlayer;
logger.info("Loading player " + userID);
if (loadedPlayer.getPunishs() == null)
loadedPlayer.setPunishs(new HashMap<>());
}
cache.put(userID, player);
}
return player;
}
Aggregations