Files
netneutrality/src/main/java/me/bobert/netneutrality/music/TrackInfo.java
T

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 +
'}';
}
}