mirror of
https://github.com/CivMC/Civ.git
synced 2026-07-18 00:20:44 +00:00
Scrape /vote command for logic
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user