Scrape /vote command for logic

This commit is contained in:
Cola
2021-05-17 12:15:45 +01:00
parent ab292d323c
commit 88889a3c1f

View File

@@ -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);
}