Skip to content

Commit

Permalink
Add metadata.yml file + add reconnectTries
Browse files Browse the repository at this point in the history
  • Loading branch information
RainyXeon committed Oct 8, 2023
1 parent 69a0f7d commit 4869193
Show file tree
Hide file tree
Showing 16 changed files with 76 additions and 35 deletions.
5 changes: 4 additions & 1 deletion app.example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,10 @@ features:

AUTO_DEPLOY: true
AUTO_REMOVE_DUPLICATE: true
AUTOFIX_LAVALINK: true # Fix the lavalink server when the current is down
AUTOFIX_LAVALINK: # Fix the lavalink server when the current is down
enable: true
reconnectTries: 5
restTimeout: 3000

WEB_SERVER:
enable: false # Must enable this before using ws
Expand Down
13 changes: 7 additions & 6 deletions src/commands/prefix/Info/Help.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,18 +90,19 @@ export default {
${client.i18n.get(language, "help", "prefix", {
prefix: `\`${prefix}\``,
})}
${client.i18n.get(language, "help", "intro4")}
${client.i18n.get(language, "help", "lavalink", {
aver: "v3.0-beta",
})}
${client.i18n.get(language, "help", "ver", {
botver: JSON.parse(await fs.readFileSync("package.json", "utf-8"))
.version,
botver: client.metadata.version,
})}
${client.i18n.get(language, "help", "djs", {
djsver: JSON.parse(await fs.readFileSync("package.json", "utf-8"))
.dependencies["discord.js"],
})}
${client.i18n.get(language, "help", "lavalink", {
aver: client.metadata.autofix,
})}
${client.i18n.get(language, "help", "codename", {
codename: client.metadata.codename,
})}
`
)
.setThumbnail(client.user!.displayAvatarURL({ size: 2048 }))
Expand Down
9 changes: 5 additions & 4 deletions src/commands/slash/Info/Help.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,18 @@ export default {
${client.i18n.get(language, "help", "intro2")}
${client.i18n.get(language, "help", "intro3")}
${client.i18n.get(language, "help", "prefix", { prefix: `\`/\`` })}
${client.i18n.get(language, "help", "intro4")}
${client.i18n.get(language, "help", "ver", {
botver: JSON.parse(await fs.readFileSync("package.json", "utf-8"))
.version,
botver: client.metadata.version,
})}
${client.i18n.get(language, "help", "djs", {
djsver: JSON.parse(await fs.readFileSync("package.json", "utf-8"))
.dependencies["discord.js"],
})}
${client.i18n.get(language, "help", "lavalink", {
aver: "v3.0-beta",
aver: client.metadata.autofix,
})}
${client.i18n.get(language, "help", "codename", {
codename: client.metadata.codename,
})}
`
)
Expand Down
File renamed without changes.
19 changes: 11 additions & 8 deletions src/events/guild/messageCreate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,21 +50,24 @@ export default async (client: Manager, message: Message) => {
${client.i18n.get(language, "help", "prefix", {
prefix: `\`${PREFIX}\``,
})}
${client.i18n.get(language, "help", "intro4")}
${client.i18n.get(language, "help", "help1", {
help: `\`${PREFIX}help\` / \`/help\``,
})}
${client.i18n.get(language, "help", "help2", {
botinfo: `\`${PREFIX}status\` / \`/status\``,
})}
${client.i18n.get(language, "help", "ver", {
botver: JSON.parse(await fs.readFileSync("package.json", "utf-8"))
.version,
botver: client.metadata.version,
})}
${client.i18n.get(language, "help", "djs", {
djsver: JSON.parse(await fs.readFileSync("package.json", "utf-8"))
.dependencies["discord.js"],
})}
${client.i18n.get(language, "help", "lavalink", { aver: "v3.0-beta" })}
${client.i18n.get(language, "help", "help1", {
help: `\`${PREFIX}help\` / \`/help\``,
${client.i18n.get(language, "help", "lavalink", {
aver: client.metadata.autofix,
})}
${client.i18n.get(language, "help", "help2", {
botinfo: `\`${PREFIX}status\` / \`/status\``,
${client.i18n.get(language, "help", "codename", {
codename: client.metadata.codename,
})}
`);
await message.channel.send({ embeds: [mention_embed] });
Expand Down
4 changes: 0 additions & 4 deletions src/events/node/close.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,4 @@ export default async (
client.logger.debug(
`Lavalink ${name}: Closed, Code ${code}, Reason ${reason || "No reason"}`
);
if (client.config.features.AUTOFIX_LAVALINK && !client.fixing_nodes) {
client.fixing_nodes = true;
(await import("../../lava_scrap/autofix_lavalink.js")).default(client);
}
};
2 changes: 1 addition & 1 deletion src/events/node/disconnect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export default async (
return;
if (players) players.map((player: KazagumoPlayer) => player.destroy());
client.logger.debug(`Lavalink ${name}: Disconnected`);
if (client.config.features.AUTOFIX_LAVALINK && !client.fixing_nodes) {
if (client.config.features.AUTOFIX_LAVALINK.enable && !client.fixing_nodes) {
client.fixing_nodes = true;
(await import("../../lava_scrap/autofix_lavalink.js")).default(client);
}
Expand Down
4 changes: 0 additions & 4 deletions src/events/node/error.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,4 @@ export default async (client: Manager, name: string, error: Error) => {
if (client.used_lavalink.length != 0 && client.used_lavalink[0].name == name)
return;
client.logger.debug(`Lavalink "${name}" error ${error}`);
if (client.config.features.AUTOFIX_LAVALINK && !client.fixing_nodes) {
client.fixing_nodes = true;
(await import("../../lava_scrap/autofix_lavalink.js")).default(client);
}
};
2 changes: 1 addition & 1 deletion src/handlers/loadCheck.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Manager } from "../manager.js";
import check_lavalink_server from "../lava_scrap/check_lavalink_server.js";

export default async (client: Manager) => {
if (client.config.features.AUTOFIX_LAVALINK) {
if (client.config.features.AUTOFIX_LAVALINK.enable) {
check_lavalink_server(client);
setInterval(async () => {
check_lavalink_server(client);
Expand Down
1 change: 1 addition & 0 deletions src/languages/en/help.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ lavalink: "・**Autofix:** `%{aver}`"
help1: "・To get started type: %{help}"
help2: "・To get more info type: %{botinfo}"
wel: "Welcome to %{bot}!"
codename: "・**Codename**: `%{codename}`"
1 change: 1 addition & 0 deletions src/languages/th/help.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ lavalink: "・**แก้ไขอัตโนมัติ:** `%{aver}`"
help1: "・ประเภทเริ่มต้น: %{help}"
help2: "・ประเภทข้อมูลเพิ่มเติม: %{botinfo}"
wel: "ยินดีต้อนรับสู่ %{bot}!"
codename: "・**ชื่อรหัสบอท**: `%{codename}`"
1 change: 1 addition & 0 deletions src/languages/vi/help.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ lavalink: "・**Autofix:** `%{aver}`"
help1: "・Để bắt đầu, gõ: %{help}"
help2: "・Để biết thêm thông tin, hãy nhập: %{botinfo}"
wel: "Chào mừng đến với %{bot}!"
codename: "・**Tên mã sản phẩm**: `%{codename}`"
20 changes: 14 additions & 6 deletions src/manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { I18n } from "@hammerhq/localization";
import { resolve } from "path";
import { LavalinkDataType, LavalinkUsingDataType } from "./types/Lavalink.js";
import * as configData from "./plugins/config.js";
import * as metadataFile from "./plugins/metadata.js";
import winstonLogger from "./plugins/logger.js";
import Spotify from "kazagumo-spotify";
import Deezer from "kazagumo-deezer";
Expand All @@ -25,13 +26,15 @@ import { QuickDB } from "quick.db";
import check_lavalink_server from "./lava_scrap/check_lavalink_server.js";
import { WebServer } from "./webserver/index.js";
import WebSocket from "ws";
import { Metadata } from "./types/Metadata.js";
const __dirname = dirname(fileURLToPath(import.meta.url));

winstonLogger.info("Booting client...");

export class Manager extends Client {
// Interface
token: string;
metadata: Metadata;
config: Record<string, any>;
logger: any;
db!: QuickDB;
Expand All @@ -40,6 +43,7 @@ export class Manager extends Client {
color: ColorResolvable;
i18n: I18n;
prefix: string;
is_db_connected: boolean;
shard_status: boolean;
lavalink_list: LavalinkDataType[];
lavalink_using: LavalinkUsingDataType[];
Expand All @@ -53,12 +57,11 @@ export class Manager extends Client {
sent_queue: Collection<string, any>;
aliases: Collection<string, any>;
websocket?: WebSocket;
ws_message?: Collection<string, any>;
UpdateMusic!: (player: KazagumoPlayer) => Promise<void | Message<true>>;
UpdateQueueMsg!: (player: KazagumoPlayer) => Promise<void | Message<true>>;
enSwitch!: ActionRowBuilder<ButtonBuilder>;
diSwitch!: ActionRowBuilder<ButtonBuilder>;
is_db_connected: boolean;
ws_message?: Collection<string, any>;

// Main class
constructor() {
Expand All @@ -83,7 +86,7 @@ export class Manager extends Client {
});
this.logger = winstonLogger;
this.config = configData.default;

this.metadata = metadataFile.default;
this.token = this.config.bot.TOKEN;
this.owner = this.config.bot.OWNER_ID;
this.dev = this.config.bot.DEV_ID;
Expand All @@ -101,6 +104,7 @@ export class Manager extends Client {
this.fixing_nodes = false;
this.used_lavalink = [];

// Ws varible
this.config.features.WEB_SERVER.websocket.enable
? (this.ws_message = new Collection())
: undefined;
Expand Down Expand Up @@ -161,12 +165,16 @@ export class Manager extends Client {
},
new Connectors.DiscordJS(this),
this.config.lavalink.NODES,
this.config.features.AUTOFIX_LAVALINK
? { reconnectTries: 0, restTimeout: 3000 }
this.config.features.AUTOFIX_LAVALINK.enable
? {
reconnectTries:
this.config.features.AUTOFIX_LAVALINK.reconnectTries,
restTimeout: this.config.features.AUTOFIX_LAVALINK.restTimeout,
}
: this.config.lavalink.SHOUKAKU_OPTIONS
);

if (this.config.features.AUTOFIX_LAVALINK) {
if (this.config.features.AUTOFIX_LAVALINK.enable) {
check_lavalink_server(this);
setInterval(async () => {
check_lavalink_server(this);
Expand Down
8 changes: 8 additions & 0 deletions src/metadata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# THIS IS THE METADATA BOT FILE
# Do NOT delete this file of it will crash
# Changes to this file may cause incorrect behavior
# You will be responsible for this when changing any content in the file.

version: "2.0.0"
autofix: "3.0.1-beta"
codename: "Hatsuharu"
17 changes: 17 additions & 0 deletions src/plugins/metadata.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { load } from "js-yaml";
import { prase } from "./prase/index.js";
import { config } from "dotenv";
import { Metadata } from "../types/Metadata.js";
config();
let doc;

const yaml_files = prase("./src/metadata.yml");

try {
const res = load(yaml_files);
doc = res as Metadata;
} catch (e) {
console.log(e);
}

export default doc;
5 changes: 5 additions & 0 deletions src/types/Metadata.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export interface Metadata {
version: string;
autofix: string;
codename: string;
}

0 comments on commit 4869193

Please sign in to comment.