Skip to content

Commit

Permalink
Merge pull request #70 from RainyXeon/dev
Browse files Browse the repository at this point in the history
Weekly patch
  • Loading branch information
RainyXeon authored Apr 2, 2024
2 parents 12d66cb + 63db18b commit ea1d3c9
Show file tree
Hide file tree
Showing 49 changed files with 689 additions and 209 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ Version numbers can come in different combinations, depending on the release typ
- [@EmuPIKin](https://github.com/EmuPIKin) **Discord:** `emupikin`
- [x] **ru (Russian)**
- [@AutoP1ayer](https://github.com/AutoP1ayer) **Discord:** `autoplayer.uwu`
- [x] **th (Thai)**
- [@SillyDark](https://github.com/SillyDark) **Discord:** `defectsocute`

## ⁉ Become to translate team?

Expand Down
8 changes: 1 addition & 7 deletions example.full.app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,5 @@ features:
retryTimeout: 3000

WEB_SERVER:
enable: false # Must enable this before using ws
enable: false
port: 3000
websocket:
enable: false
host: "0.0.0.0" # Default is 0.0.0.0
secret: "-19023454588-0934825" # You must add your secret key to use ws. A secret key is anything you want
auth: false
trusted: ["http://localhost:3000"]
9 changes: 0 additions & 9 deletions src/@types/Config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,6 @@ export interface Commands {
export interface WebServer {
enable: boolean;
port: number;
websocket: Websocket;
}

export interface Websocket {
enable: boolean;
host: string;
secret: string;
auth: boolean;
trusted: string[];
}

export interface Lavalink {
Expand Down
4 changes: 1 addition & 3 deletions src/buttons/Pause.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,10 @@ export default class implements PlayerButton {
components: [playerRowOne, playerRowTwo],
});

await new ReplyInteractionService(
new ReplyInteractionService(
client,
message,
`${client.getString(language, "button.music", newPlayer.paused ? "pause_msg" : "resume_msg")}`
);

client.emit("playerPause", player);
}
}
6 changes: 2 additions & 4 deletions src/buttons/Skip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,14 @@ export default class implements PlayerButton {
}

if (player.queue.size == 0 && player.data.get("autoplay") !== true)
return await new ReplyInteractionService(
return new ReplyInteractionService(
client,
message,
`${client.getString(language, "button.music", "skip_notfound")}`
);

player.skip();

client.emit("playerSkip", player);

await new ReplyInteractionService(client, message, `${client.getString(language, "button.music", "skip_msg")}`);
new ReplyInteractionService(client, message, `${client.getString(language, "button.music", "skip_msg")}`);
}
}
2 changes: 1 addition & 1 deletion src/commands/Filter/Equalizer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export default class implements Command {
return handler.editReply({
embeds: [
new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "number_invalid")}`)
.setDescription(`${client.getString(handler.language, "error", "number_invalid")}`)
.setColor(client.color),
],
});
Expand Down
2 changes: 1 addition & 1 deletion src/commands/Filter/Pitch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export default class implements Command {
return handler.editReply({
embeds: [
new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "number_invalid")}`)
.setDescription(`${client.getString(handler.language, "error", "number_invalid")}`)
.setColor(client.color),
],
});
Expand Down
2 changes: 1 addition & 1 deletion src/commands/Filter/Rate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export default class implements Command {
return handler.editReply({
embeds: [
new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "number_invalid")}`)
.setDescription(`${client.getString(handler.language, "error", "number_invalid")}`)
.setColor(client.color),
],
});
Expand Down
2 changes: 1 addition & 1 deletion src/commands/Filter/Speed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export default class implements Command {
return handler.editReply({
embeds: [
new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "number_invalid")}`)
.setDescription(`${client.getString(handler.language, "error", "number_invalid")}`)
.setColor(client.color),
],
});
Expand Down
2 changes: 0 additions & 2 deletions src/commands/Music/Pause.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ export default class implements Command {

await player.pause();

client.emit("playerPause", player);

const embed = new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "pause_msg")}`)
.setColor(client.color);
Expand Down
2 changes: 1 addition & 1 deletion src/commands/Music/Queue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export default class implements Command {
return handler.editReply({
embeds: [
new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "number_invalid")}`)
.setDescription(`${client.getString(handler.language, "error", "number_invalid")}`)
.setColor(client.color),
],
});
Expand Down
2 changes: 0 additions & 2 deletions src/commands/Music/Resume.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ export default class implements Command {

await player.resume();

client.emit("playerPause", player);

const embed = new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "resume_msg")}`)
.setColor(client.color);
Expand Down
1 change: 0 additions & 1 deletion src/commands/Music/Skip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ export default class implements Command {
.setColor(client.color);

handler.editReply({ content: " ", embeds: [skipped] });
client.emit("playerSkip", player);
}
}
}
63 changes: 63 additions & 0 deletions src/commands/Music/Skipto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import { ApplicationCommandOptionType, EmbedBuilder } from "discord.js";
import { Manager } from "../../manager.js";
import { Accessableby, Command } from "../../structures/Command.js";
import { CommandHandler } from "../../structures/CommandHandler.js";
import { RainlinkPlayer } from "../../rainlink/main.js";

// Main code
export default class implements Command {
public name = ["skipto"];
public description = "Skip to a specific position";
public category = "Music";
public accessableby = Accessableby.Member;
public usage = "";
public aliases = ["sk"];
public lavalink = true;
public options = [
{
name: "position",
description: "The position of the song",
type: ApplicationCommandOptionType.Number,
required: true,
},
];
public playerCheck = true;
public usingInteraction = true;
public sameVoiceCheck = true;
public permissions = [];

public async execute(client: Manager, handler: CommandHandler) {
await handler.deferReply();
const player = client.rainlink.players.get(handler.guild!.id) as RainlinkPlayer;

const getPosition = Number(handler.args[0]);

if (!handler.args[0] || isNaN(getPosition) || getPosition < 0)
return handler.editReply({
embeds: [
new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "error", "number_invalid")}`)
.setColor(client.color),
],
});

if (player.queue.size == 0 || getPosition >= player.queue.length) {
const skipped = new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "skip_notfound")}`)
.setColor(client.color);

handler.editReply({ content: " ", embeds: [skipped] });
} else {
const cuttedQueue = player.queue.splice(0, getPosition);
const nowCurrentTrack = cuttedQueue.splice(-1)[0];
player.queue.previous.push(...cuttedQueue);
player.queue.current ? player.queue.previous.unshift(player.queue.current) : true;
await player.play(nowCurrentTrack);
player.queue.shift();
const skipped = new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "skip_msg")}`)
.setColor(client.color);
handler.editReply({ content: " ", embeds: [skipped] });
}
}
}
4 changes: 2 additions & 2 deletions src/commands/Music/Volume.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export default class implements Command {
return handler.editReply({
embeds: [
new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "number_invalid")}`)
.setDescription(`${client.getString(handler.language, "error", "number_invalid")}`)
.setColor(client.color),
],
});
Expand All @@ -45,7 +45,7 @@ export default class implements Command {
return handler.editReply({
embeds: [
new EmbedBuilder()
.setDescription(`${client.getString(handler.language, "command.music", "number_invalid")}`)
.setDescription(`${client.getString(handler.language, "error", "number_invalid")}`)
.setColor(client.color),
],
});
Expand Down
20 changes: 10 additions & 10 deletions src/database/@types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { QuickDB } from "dreamvast.quick.db";
import { AutoReconnect } from "./schema/AutoReconnect.js";
import { Playlist } from "./schema/Playlist.js";
import { Code } from "./schema/Code.js";
Expand All @@ -8,15 +7,16 @@ import { Language } from "./schema/Language.js";
import { Status } from "./schema/Status.js";
import { Prefix } from "./schema/Prefix.js";
import { SongNoti } from "./schema/SongNoti.js";
import { QuickDatabasePlus } from "../structures/QuickDatabasePlus.js";

export interface DatabaseTable {
autoreconnect: QuickDB<AutoReconnect>;
playlist: QuickDB<Playlist>;
code: QuickDB<Code>;
premium: QuickDB<Premium>;
setup: QuickDB<Setup>;
language: QuickDB<Language>;
status: QuickDB<Status>;
prefix: QuickDB<Prefix>;
songNoti: QuickDB<SongNoti>;
autoreconnect: QuickDatabasePlus<AutoReconnect>;
playlist: QuickDatabasePlus<Playlist>;
code: QuickDatabasePlus<Code>;
premium: QuickDatabasePlus<Premium>;
setup: QuickDatabasePlus<Setup>;
language: QuickDatabasePlus<Language>;
status: QuickDatabasePlus<Status>;
prefix: QuickDatabasePlus<Prefix>;
songNoti: QuickDatabasePlus<SongNoti>;
}
9 changes: 7 additions & 2 deletions src/database/keyChecker.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Manager } from '../manager.js';
import { Manager } from "../manager.js";
import { KeyCheckerEnum } from "../@types/KeyChecker.js";
import { LoggerService } from "../services/LoggerService.js";
import utils from "node:util";
Expand All @@ -7,7 +7,12 @@ export class keyChecker {
obj: Record<string, any>;
sampleConfig: Record<string, any>;
dbName: string;
constructor(private client: Manager, obj: Record<string, any>, sampleConfig: Record<string, any>, dbName: string) {
constructor(
private client: Manager,
obj: Record<string, any>,
sampleConfig: Record<string, any>,
dbName: string
) {
this.dbName = dbName;
this.obj = obj;
this.sampleConfig = sampleConfig;
Expand Down
3 changes: 2 additions & 1 deletion src/database/setup/table.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { Language } from "../schema/Language.js";
import { Status } from "../schema/Status.js";
import { Prefix } from "../schema/Prefix.js";
import { SongNoti } from "../schema/SongNoti.js";
import { QuickDatabasePlus } from "../../structures/QuickDatabasePlus.js";

export class TableSetup {
client: Manager;
Expand All @@ -24,7 +25,7 @@ export class TableSetup {
}

async register() {
const baseDB = new QuickDB({ driver: this.driver });
const baseDB = new QuickDatabasePlus({ driver: this.driver });

const start = Date.now();
await baseDB.init();
Expand Down
3 changes: 0 additions & 3 deletions src/events/guild/voiceStateUpdate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,6 @@ export default class {

const setup = await client.db.setup.get(newState.guild.id);

client.emit("voiceStateUpdateJoin", oldState, newState);
client.emit("voiceStateUpdateLeave", oldState, newState);

let guildModel = await client.db.language.get(`${newState.guild.id}`);
if (!guildModel) {
guildModel = await client.db.language.set(`${newState.guild.id}`, client.config.bot.LANGUAGE);
Expand Down
1 change: 0 additions & 1 deletion src/events/player/playerCreate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,5 @@ export default class {
async execute(client: Manager, player: RainlinkPlayer) {
const guild = await client.guilds.fetch(player.guildId);
client.logger.info(import.meta.url, `Player Created in @ ${guild!.name} / ${player.guildId}`);
client.emit("playerCreate", player.guildId);
}
}
1 change: 0 additions & 1 deletion src/events/player/playerDestroy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ export default class {
await client.UpdateMusic(player);
/////////// Update Music Setup ///////////

client.emit("playerDestroy", player);
const channel = (await client.channels.fetch(player.textId)) as TextChannel;
client.sentQueue.set(player.guildId, false);
let data = await new AutoReconnectBuilderService(client, player).get(player.guildId);
Expand Down
1 change: 0 additions & 1 deletion src/events/player/playerStop.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ export default class {
await client.UpdateMusic(player);
/////////// Update Music Setup ///////////

client.emit("playerDestroy", player);
const channel = (await client.channels.fetch(player.textId)) as TextChannel;
client.sentQueue.set(player.guildId, false);
const autoreconnectService = new AutoReconnectBuilderService(client, player);
Expand Down
4 changes: 1 addition & 3 deletions src/events/player/playerUpdate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,5 @@ import { Manager } from "../../manager.js";
import { RainlinkPlayer } from "../../rainlink/main.js";

export default class {
async execute(client: Manager, player: RainlinkPlayer, data: unknown) {
client.emit("syncPosition", player);
}
async execute(client: Manager, player: RainlinkPlayer, data: unknown) {}
}
3 changes: 0 additions & 3 deletions src/events/track/trackEnd.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ export default class {
/////////// Update Music Setup //////////
await client.UpdateMusic(player);
/////////// Update Music Setup ///////////

client.emit("playerEnd", player);

let data = await new AutoReconnectBuilderService(client, player).get(player.guildId);
const channel = (await client.channels.fetch(player.textId)) as TextChannel;
if (!channel) return;
Expand Down
3 changes: 0 additions & 3 deletions src/events/track/trackStart.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,6 @@ export default class {
const channel = (await client.channels.fetch(player.textId)) as TextChannel;
if (!channel) return;

client.emit("playerStart", player);
client.emit("playerQueue", player);

const autoreconnect = new AutoReconnectBuilderService(client, player);

if (await autoreconnect.get(player.guildId)) {
Expand Down
1 change: 0 additions & 1 deletion src/handlers/Player/ButtonCommands/Skip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ export class ButtonSkip {
.setColor(this.client.color);

this.interaction.reply({ embeds: [embed] });
this.client.emit("playerSkip", this.player);
}
}
}
2 changes: 0 additions & 2 deletions src/handlers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@ import { loadCheck } from "./loadCheck.js";
import { loadCommand } from "./loadCommand.js";
import { loadMainEvents } from "./loadEvents.js";
import { loadPlayer } from "./loadPlayer.js";
import { loadWebsocketEvents } from "./loadWebsocketEvents.js";

export class initHandler {
constructor(client: Manager) {
if (client.config.features.AUTOFIX_LAVALINK.enable) new loadCheck(client);
new loadMainEvents(client);
new loadPlayer(client);
new loadCommand(client);
if (client.config.features.WEB_SERVER.websocket.enable) new loadWebsocketEvents(client);
}
}
Loading

0 comments on commit ea1d3c9

Please sign in to comment.