discord-dynamic-music-bot-addon
Version:
Music bot addon for bot
127 lines • 4.9 kB
TypeScript
/// <reference types="node" />
import { VideoInfo } from './interfaces';
import { opus } from 'prism-media';
import { GuildMember, TextChannel, Message, Guild, MessageReaction } from 'discord.js';
import ytdl = require('ytdl-core');
import { Language } from './language';
import { YoutubePlayer } from './YoutubePlayer';
export interface PlaylistItem {
videoData?: VideoInfo;
videoInfo: ytdl.videoInfo;
stream: opus.Encoder | opus.WebmDemuxer;
submitter: GuildMember;
submitted: Date;
message?: Message;
index?: number;
}
export declare enum VoteInfo {
NO_PERMISSION = 0,
ALREADY_VOTE = 1,
VOTE_SUCCESSFUL = 2,
VOTE_EXECUTED = 3
}
export declare type VoteType = 'voteNext' | 'votePrevious' | 'voteReplay' | 'votePauseResume' | 'voteLoop';
export declare class GuildPlayer {
private guild;
private youtubePlayer;
private playerUpdateRate;
private suggestReplay;
private reactionButtons;
private leaveVoiceChannelAfter;
private waitTimeBetweenTracks;
language: Language;
private votePercentage;
private defaultChannel;
suspended: boolean;
loop: boolean;
timeOutPlayerLeave?: NodeJS.Timeout;
timeOutPlayerLeaveAllMemberLeft?: NodeJS.Timeout;
private suggestReplayFun?;
private songTimer?;
readonly previous: PlaylistItem[];
readonly playlist: PlaylistItem[];
private recreateReactionTries;
private voteNext;
private votePrevious;
private voteReplay;
private votePauseResume;
private voteLoop;
private currentlyPlaying?;
private textChannel?;
private interval?;
private trackStartTime?;
private paused?;
private goingToReplay;
private shuffled;
private message?;
private counter;
private rgb;
constructor(guild: Guild, youtubePlayer: YoutubePlayer, playerUpdateRate: number, suggestReplay: number, reactionButtons: boolean, leaveVoiceChannelAfter: number, waitTimeBetweenTracks: number, language: Language, votePercentage: number, defaultChannel: TextChannel);
isAlreadyOnPlaylistByUrl(url: string): string | false;
isAlreadyOnPlaylistById(id: string): string | false;
replaySong(): boolean;
addVote(guildMember: GuildMember, type: VoteType): VoteInfo;
setVote(guildMembers: GuildMember[], type: VoteType): boolean;
removeVote(guildMember: GuildMember, type: VoteType): VoteInfo;
getVoiceChannelUsersSize(): number;
howManySongsDoesMemberHaveInPlaylist(guildMember: GuildMember): number;
setStartTime(): void;
resetTime(): void;
setTextChannel(textChannel: TextChannel): void;
getTextChannel(): TextChannel | undefined;
suspend(): void;
clearTimeout(): void;
getSongProgressionTime(): Date | null;
destroy(): void;
fullDestroy(): Promise<void>;
pause(): void;
unpause(): void;
shuffle(): boolean;
sort(): boolean;
push(item: PlaylistItem): boolean;
switchToNextTrack(): PlaylistItem | undefined;
switchToPreviousTrack(): PlaylistItem | undefined;
clearVotes(): void;
addRemoveUser(voteGroup: GuildMember[], guildMember: GuildMember): boolean;
nextTrack(): Promise<void>;
pauseTrack(): void;
resumeTrack(): void;
replayAsNextTrack(): boolean;
replayTrack(): Promise<void>;
setSong(playlistItem: PlaylistItem): void;
previousTrack(): Promise<void>;
removeFromPlayListByMessage(message: Message, deleted?: boolean): Promise<boolean>;
canExecute(guildMembers: GuildMember[] | GuildMember): boolean;
getGuildMembersFromReactions(messageReaction: MessageReaction): GuildMember[];
getFromVoiceAndMessageReactions(messageReaction: MessageReaction): GuildMember[];
removeItemFromPlaylist(playlistItem: PlaylistItem, deleted?: boolean): false | undefined;
updatePlayer(): Promise<void>;
resetPlayerLoop(): void;
playerLoop(): void;
recreateOrRecreatePlayerButtons(start?: boolean): Promise<void>;
removeAllReactions(): Promise<void>;
deletePlayerMessage(shouldReassign?: boolean): void;
private reactIfExist;
private onVoteSuccessful;
private pauseResume;
private getNewStream;
set playerMessage(message: Message | undefined);
get playerMessage(): Message | undefined;
set playerChannel(channel: TextChannel);
get playerChannel(): TextChannel;
get currentPlayListItem(): PlaylistItem | undefined;
get length(): number;
get startTime(): Date | undefined;
get isPaused(): boolean;
get isLooping(): boolean;
get isGoingToReplay(): boolean;
get voteNextStatus(): string | null;
get votePreviousStatus(): string | null;
get voteReplayStatus(): string | null;
get votePauseResumeStatus(): string | null;
get voteLoopStatus(): string | null;
addFunctionWhenSongEnds(time: number): void;
clearSongTimer(): void;
private colorFader;
}
//# sourceMappingURL=GuildPlayer.d.ts.map