diff --git a/src/main/java/com/alttd/commandManager/commands/PollCommand/ButtonData.java b/src/main/java/com/alttd/commandManager/commands/PollCommand/ButtonData.java new file mode 100644 index 0000000..c393cdd --- /dev/null +++ b/src/main/java/com/alttd/commandManager/commands/PollCommand/ButtonData.java @@ -0,0 +1,49 @@ +package com.alttd.commandManager.commands.PollCommand; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class ButtonData { + private final UUID buttonId; + private final long pollId; + List votes; + + public ButtonData(UUID buttonId, long pollId) { + this.buttonId = buttonId; + this.pollId = pollId; + votes = new ArrayList<>(); + } + + public ButtonData(UUID buttonId, long pollId, List votes) { + this.buttonId = buttonId; + this.pollId = pollId; + this.votes = votes; + } + + public UUID getButtonId() { + return buttonId; + } + + public long getPollId() { + return pollId; + } + + public int totalVotes() { + return votes.size(); + } + + public boolean addVote(long id) { + if (votes.contains(id)) + return false; + votes.add(id); + return true; + } + + public boolean removeVote(long id) { + if (!votes.contains(id)) + return false; + votes.remove(id); + return true; + } +} diff --git a/src/main/java/com/alttd/commandManager/commands/PollCommand/PollData.java b/src/main/java/com/alttd/commandManager/commands/PollCommand/PollData.java new file mode 100644 index 0000000..1cb9e66 --- /dev/null +++ b/src/main/java/com/alttd/commandManager/commands/PollCommand/PollData.java @@ -0,0 +1,45 @@ +package com.alttd.commandManager.commands.PollCommand; + +import java.util.HashMap; +import java.util.UUID; + +public class PollData { + private boolean enabled; + private final int pollId; + private final HashMap buttons; + + public PollData(int pollId) { + enabled = false; + this.pollId = pollId; + this.buttons = new HashMap<>(); + } + + public PollData(boolean enabled, int pollId, HashMap buttons) { + this.enabled = enabled; + this.pollId = pollId; + this.buttons = buttons; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public int getPollId() { + return pollId; + } + + public ButtonData getButtonData(UUID uuid) { + return buttons.getOrDefault(uuid, null); + } + + public boolean addButtonData(UUID uuid, ButtonData buttonData) { + if (buttons.containsKey(uuid)) + return false; + buttons.put(uuid, buttonData); + return true; + } +} diff --git a/src/main/java/com/alttd/commandManager/commands/PollCommand/Polls.java b/src/main/java/com/alttd/commandManager/commands/PollCommand/Polls.java new file mode 100644 index 0000000..2c48986 --- /dev/null +++ b/src/main/java/com/alttd/commandManager/commands/PollCommand/Polls.java @@ -0,0 +1,32 @@ +package com.alttd.commandManager.commands.PollCommand; + +import java.util.HashMap; + +public class Polls { + + private static Polls instance = null; + private HashMap pollDataMap; + + private Polls() { + pollDataMap = new HashMap<>(); + //TODO load poll data + } + + public static Polls getInstance() { + if (instance == null) + instance = new Polls(); + return instance; + } + + public boolean addPoll(long pollId, PollData pollData) { + if (pollDataMap.containsKey(pollId)) + return (false); + pollDataMap.put(pollId, pollData); + return true; + } + + public PollData getPoll(long pollId) { + return pollDataMap.getOrDefault(pollId, null); + } + +}