77 lines
1.9 KiB
Java
77 lines
1.9 KiB
Java
package me.bobert.netneutrality.music;/*
|
|
* Copyright (c) anthorob
|
|
*
|
|
* https://discord.gg/qUa6zNFZsd
|
|
*/
|
|
|
|
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
|
|
import net.dv8tion.jda.api.entities.Member;
|
|
import org.apache.logging.log4j.LogManager;
|
|
import org.apache.logging.log4j.Logger;
|
|
|
|
import java.util.HashSet;
|
|
import java.util.Objects;
|
|
import java.util.Set;
|
|
|
|
public class TrackInfo {
|
|
private final AudioTrack track;
|
|
private final Member member;
|
|
private final Set<String> skips;
|
|
private static final Logger logger = LogManager.getLogger(QueueManager.class);
|
|
|
|
public TrackInfo(AudioTrack track, Member member) {
|
|
this.track = track;
|
|
this.member = member;
|
|
this.skips = new HashSet<>();
|
|
}
|
|
|
|
public AudioTrack getTrack() {
|
|
return track;
|
|
}
|
|
|
|
public Set<String> getSkips() {
|
|
return skips;
|
|
}
|
|
|
|
public void addSkip(Member member) {
|
|
if (!hasSkip(member)) {
|
|
logger.debug("VoteSkip: user={}, skip doesn't exist, before={}, after={}", member.getId(), skips.size(), skips.size() + 1);
|
|
skips.add(member.getId());
|
|
}
|
|
}
|
|
|
|
public boolean hasSkip(Member member) {
|
|
return skips.contains(member.getId());
|
|
}
|
|
|
|
public Member getRequester() {
|
|
return member;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
if (this == o) {
|
|
return true;
|
|
}
|
|
if (o == null || getClass() != o.getClass()) {
|
|
return false;
|
|
}
|
|
TrackInfo trackInfo = (TrackInfo) o;
|
|
return track.equals(trackInfo.track);
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return Objects.hash(track);
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "TrackInfo{" +
|
|
"track=" + track.getInfo().title +
|
|
", member=" + member.getEffectiveName() +
|
|
", skips=" + skips +
|
|
'}';
|
|
}
|
|
}
|