Added data objects needed for polls

This commit is contained in:
Stijn 2022-04-08 21:55:43 +02:00
parent 0c27b1ccd8
commit e31678a275
3 changed files with 126 additions and 0 deletions

View File

@ -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<Long> votes;
public ButtonData(UUID buttonId, long pollId) {
this.buttonId = buttonId;
this.pollId = pollId;
votes = new ArrayList<>();
}
public ButtonData(UUID buttonId, long pollId, List<Long> 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;
}
}

View File

@ -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<UUID, ButtonData> buttons;
public PollData(int pollId) {
enabled = false;
this.pollId = pollId;
this.buttons = new HashMap<>();
}
public PollData(boolean enabled, int pollId, HashMap<UUID, ButtonData> 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;
}
}

View File

@ -0,0 +1,32 @@
package com.alttd.commandManager.commands.PollCommand;
import java.util.HashMap;
public class Polls {
private static Polls instance = null;
private HashMap<Long, PollData> 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);
}
}