From 88889a3c1f2ddcb78a8023f67af7db4cee62742d Mon Sep 17 00:00:00 2001 From: Cola Date: Mon, 17 May 2021 12:15:45 +0100 Subject: [PATCH] Scrape /vote command for logic --- .../maxopoly/essenceglue/VotifyManager.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/plugins/essenceglue-paper/src/main/java/com/github/maxopoly/essenceglue/VotifyManager.java b/plugins/essenceglue-paper/src/main/java/com/github/maxopoly/essenceglue/VotifyManager.java index 488887d34..282252202 100644 --- a/plugins/essenceglue-paper/src/main/java/com/github/maxopoly/essenceglue/VotifyManager.java +++ b/plugins/essenceglue-paper/src/main/java/com/github/maxopoly/essenceglue/VotifyManager.java @@ -5,12 +5,17 @@ import com.vexsoftware.votifier.model.VotifierEvent; import java.util.HashMap; import java.util.Map; import java.util.UUID; +import net.md_5.bungee.api.chat.ClickEvent; +import net.md_5.bungee.api.chat.HoverEvent; +import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.chat.hover.content.Text; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerLoginEvent; import vg.civcraft.mc.civmodcore.playersettings.PlayerSettingAPI; import vg.civcraft.mc.civmodcore.playersettings.impl.LongSetting; import vg.civcraft.mc.civmodcore.util.TextUtil; @@ -86,6 +91,34 @@ public class VotifyManager implements Listener { rewardMan.giveVoteReward(player, site.getName()); } + @EventHandler(priority = EventPriority.NORMAL) + public void onLogin(PlayerLoginEvent event) { + Player p = event.getPlayer(); + for (VotingSite site : EssenceGluePlugin.instance().getConfigManager().getVotingCooldowns().values()) { + UUID trueUUID = StreakManager.getTrueUUID(p.getUniqueId()); + long lastVote = getLastVote(site.getInternalKey(), trueUUID); + boolean canVote = (System.currentTimeMillis() - lastVote) > site.getVotingCooldown(); + if (canVote) { + TextComponent text = new TextComponent( + ChatColor.GREEN + "Receive rewards for voting on " + site.getName() + + ". Click this message to open the link!"); + text.setClickEvent( + new ClickEvent(ClickEvent.Action.OPEN_URL, site.getVotingUrl().replace("%PLAYER%", p.getName()))); + text.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, + new Text("Click to open the voting link for " + site.getName()))); + Bukkit.getScheduler().runTaskLater(EssenceGluePlugin.instance(), () -> { + p.sendMessage(text); + }, 20L); + } else { + long remaining = site.getVotingCooldown() - (System.currentTimeMillis() - lastVote); + Bukkit.getScheduler().runTaskLater(EssenceGluePlugin.instance(), () -> { + p.sendMessage(ChatColor.YELLOW + "You already voted on " + site.getName() + " and may vote there again in " + + TextUtil.formatDuration(remaining)); + }, 20L); + } + } + } + public long getLastVote(String internalSiteKey, UUID player) { return perSiteSettings.get(internalSiteKey).getValue(player); }