index.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. const { Server } = require("socket.io");
  2. const prettyMilliseconds = require("pretty-ms");
  3. /**
  4. * @param {Server} io
  5. */
  6. module.exports = (io) => {
  7. io.on("connection", (socket) => {
  8. //Bot's Main Page
  9. socket.on("dashboard", () => {
  10. if (socket.Dashboard) clearInterval(socket.Dashboard);
  11. socket.Dashboard = setInterval(() => {
  12. const Client = require("../../index");
  13. if (!Client.Ready) return;
  14. socket.emit("dashboard", {
  15. commands: Client.CommandsRan,
  16. users: Client.users.cache.size,
  17. guilds: Client.guilds.cache.size,
  18. songs: Client.SongsPlayed,
  19. });
  20. }, 1000);
  21. });
  22. socket.on("server", (ServerID) => {
  23. if (socket.Server) clearInterval(socket.Server);
  24. socket.Server = setInterval(async () => {
  25. const Client = require("../../index");
  26. if (!Client.Ready) return;
  27. let Guild = Client.guilds.cache.get(ServerID);
  28. if (!Guild) return socket.emit("error", "Unable to find that server");
  29. let GuildDB = await Client.GetGuild(Guild.id);
  30. let player = Client.Manager.get(Guild.id);
  31. if (!player) {
  32. socket.emit("server", {
  33. queue: 0,
  34. songsLoop: "Disabled",
  35. queueLoop: "Disabled",
  36. prefix: GuildDB ? GuildDB.prefix : Client.config.DefaultPrefix,
  37. });
  38. } else {
  39. socket.emit("server", {
  40. queue: player.queue ? player.queue.length : 0,
  41. songsLoop: player.trackRepeat ? "Enabled" : "Disabled",
  42. queueLoop: player.queueRepeat ? "Enabled" : "Disabled",
  43. prefix: GuildDB ? GuildDB.prefix : Client.config.DefaultPrefix,
  44. bar: player.queue.current
  45. ? Client.ProgressBar(
  46. player.position,
  47. player.queue.current.duration,
  48. 20
  49. ).Bar
  50. : false,
  51. maxDuration: player.queue.current
  52. ? prettyMilliseconds(player.queue.current.duration, {
  53. colonNotation: true,
  54. })
  55. : false,
  56. position: player.queue.current
  57. ? prettyMilliseconds(player.position, { colonNotation: true })
  58. : false,
  59. nowPlaying: player.queue.current ? player.queue.current : false,
  60. });
  61. }
  62. }, 1000);
  63. });
  64. });
  65. };