galnir / Master-Bot

A Discord music bot and dashboard with slash commands, playlist support, Spotify, music quiz, saved playlists, lyrics, gifs and more
MIT License
464 stars 373 forks source link

Upgrade to v14 #783

Closed galnir closed 1 year ago

galnir commented 1 year ago

@Bacon-Fixation I commented out tic-tac-toe and connect4 because of some breaking changes caused by v14 (the whole upgrade is one big breaking change), can you take a look at these games and try to fix the errors?

Bacon-Fixation commented 1 year ago

Absolutely, it may take me a bit, I need to research v14 changes,

Much Love -Bacon

Bacon-Fixation commented 1 year ago

Games are back :D, I don't mind tackling the package/bot, Next, and Trpc just hasn't clicked in my brain yet, and I'm struggling to figure out the dashboard errors

Much Love -Bacon

galnir commented 1 year ago

Games are back :D, I don't mind helping out with the package/bot, Next, and Trpc just hasn't clicked in my brain yet, and I'm struggling to figure out the dashboard errors

Much Love -Bacon

I'll take care of the dashboard errors :)

tRPC ensures type safety between the backend and the frontend by leveraging TypeScript. It infers the type of data your backend returns, which then informs your frontend about the expected return type from a specific endpoint. For example, if you have a tRPC endpoint returning an array of Guild objects, and you want to call that endpoint to display a list of guilds in your frontend, the component fetching the data using tRPC's useQuery hook will know exactly what it gets from the endpoint. This means that when you iterate over the array in your IDE, you'll get type completions and can avoid runtime errors (e.g., 'guild has no property clientId on it').

If you want to learn more about the stack(T3 stack) I'm using here for the dashboard, I recommend Theo's tutorial (and his channel in general) where he goes through building an app here.

Bacon-Fixation commented 1 year ago

That should cover packages/bot section, thank you so much for Theo's T3 Tutorial that helped a lot, and going to be playing around with the T3 stack (been wanting to convert my twitch bot project to a t3 stack).

Just thinking out loud - it would be nice to remove the options.json in favor of a dashboard/slash command setting that is saved to the DB per guild for things like inactivity time, queue limit, play songs longer than 1 hr, and play live streams

Much Love -Bacon

galnir commented 1 year ago

That should cover packages/bot section, thank you so much for Theo's T3 Tutorial that helped a lot, and going to be playing around with the T3 stack (been wanting to convert my twitch bot project to a t3 stack).

Just thinking out loud - it would be nice to remove the options.json in favor of a dashboard/slash command setting that is saved to the DB per guild for things like inactivity time, queue limit, play songs longer than 1 hr, and play live streams

Much Love -Bacon

Yeah it's a good idea to save these settings on DB. We can do it after merging this PR, if you encounter any bugs let me know. The disappearing guilds in dashboard bug should be fixed, but it meant changing the schema in a way that unfortunately requires you to reset the DB ('npx prisma db push' and then answering yes)

Bacon-Fixation commented 1 year ago

it works great !!! playing around with it, found you can select the guild and disable the drop down on the Discord Guild Auth page by altering the invite buttons href in GuildSelectBox.tsx line 28

 href={env.NEXT_PUBLIC_INVITE_URL + `&disable_guild_select=true&guild_id=${id}`}

so we don't have to select the guild we want the bot to goto twice :D

Much Love -Bacon