diff --git a/linkinator.config.json b/linkinator.config.json new file mode 100644 index 00000000..27899d74 --- /dev/null +++ b/linkinator.config.json @@ -0,0 +1,5 @@ +{ + "recurse": true, + "markdown": true, + "skip": "https://hub.rivet.gg,https://twitter.com,https://www.cloudflare.com,https://cloudflare.com,https://github.com,https://support.cloudflare.com" +} \ No newline at end of file diff --git a/lychee.toml b/lychee.toml index 3ed078f2..e3f9c72b 100644 --- a/lychee.toml +++ b/lychee.toml @@ -17,5 +17,5 @@ exclude = [ # Bug parsing `src={xxxx}` '%7B.*%7D$' ] -exclude_all_private = true +# exclude_all_private = true exclude_mail = true diff --git a/scripts/checkBrokenLinks.sh b/scripts/checkBrokenLinks.sh index 4098c649..7e1010f8 100755 --- a/scripts/checkBrokenLinks.sh +++ b/scripts/checkBrokenLinks.sh @@ -1,4 +1,7 @@ #!/bin/sh set -euf -o pipefail -docker run --init -it -v `pwd`:/input lycheeverse/lychee --config /input/lychee.toml --base /input/src/pages '/input/src/pages/**/*.mdx' +# docker run --init -it -v `pwd`:/input lycheeverse/lychee --config /input/lychee.toml --base /input/src/pages '/input/src/pages/**/*.mdx' +# muffet --verbose --max-connections=16 --exclude='(hub.rivet.gg|tanks.rivet.game|discord.gg|twitter.com|github.com|cdn-cgi)' https://staging.rivet.gg + +npx linkinator --config linkinator.config.json https://c4594a48.site-ckd.pages.dev/ diff --git a/src/pages/docs/general/concepts/dev-tokens.mdx b/src/pages/docs/general/concepts/dev-tokens.mdx index acbec0ce..6f4c668b 100644 --- a/src/pages/docs/general/concepts/dev-tokens.mdx +++ b/src/pages/docs/general/concepts/dev-tokens.mdx @@ -10,7 +10,7 @@ Ideally, each developer generates a token for their local development. The token In some cases, there's no way to return a valid response when developing on your local machine. -For example, the [`matchmaker.lobbies.find`](/docs/matchmaker/api/post-lobbies-find) endpoint will mock a fake address pointing to your local development server. It will also return a [development player token](/docs/general/concepts/token-types#matchmaker-development-player) that act as a real [player token](/docs/general/concepts/token-types#matchmaker-player). +For example, the [`matchmaker.lobbies.find`](/docs/matchmaker/api/lobbies/find) endpoint will mock a fake address pointing to your local development server. It will also return a [development player token](/docs/general/concepts/token-types#matchmaker-development-player) that act as a real [player token](/docs/general/concepts/token-types#matchmaker-player). ## Store your token in a `.env` file diff --git a/src/pages/docs/matchmaker/concepts/finding-lobby.mdx b/src/pages/docs/matchmaker/concepts/finding-lobby.mdx index 83af5d0e..19fe18f3 100644 --- a/src/pages/docs/matchmaker/concepts/finding-lobby.mdx +++ b/src/pages/docs/matchmaker/concepts/finding-lobby.mdx @@ -2,7 +2,7 @@ import { TutorialReplit } from '@/components/TutorialReplit'; # How the matchmaker chooses lobbies -This document explains the logic going on behind the scenes when a game calls [`Lobbies.find`](/docs/matchmaker/api/post-lobbies-find). +This document explains the logic going on behind the scenes when a game calls [`Lobbies.find`](/docs/matchmaker/api/lobbies/find). ## TL;DR @@ -14,7 +14,7 @@ If you're looking to build competitive matchmaking on top of Rivet, please read ## Determining the region -If no region is specificed in [`Lobbies.find`](/docs/matchmaker/api/post-lobbies-find), Rivet will use the GeoIP location provided by Cloudflare to find the nearest datacenter. +If no region is specificed in [`Lobbies.find`](/docs/matchmaker/api/lobbies/find), Rivet will use the GeoIP location provided by Cloudflare to find the nearest datacenter. GeoIP does not always provide the most optimal route to the datacenter, so we recommend providing the user with the ability to select their own region. @@ -28,7 +28,7 @@ This simplified exampe demonstrates how the matchmaker finds the correct lobby t ## Providing multiple game modes -[`Lobbies.find`](/docs/matchmaker/api/post-lobbies-find) allows the developer to provide multiple game modes to join. In this case, Rivet Matchmaker will select the optimal lobby from all of the provided game modes. +[`Lobbies.find`](/docs/matchmaker/api/lobbies/find) allows the developer to provide multiple game modes to join. In this case, Rivet Matchmaker will select the optimal lobby from all of the provided game modes. This can be helpful for games with low traffic but still want to provide multiple game modes to their users. In this situation, new players will be connected to any lobby for any game mode with players in it. @@ -36,7 +36,7 @@ This can be helpful for games with low traffic but still want to provide multipl When all of the lobbies are full or there are no lobbies running, Rivet Matchmaker will automatically create a new lobby for the game mode specified and connect the player to that lobby. -If this is not the desired behavior, [`Lobbies.find`](/docs/matchmaker/api/post-lobbies-find) can be called with `prevent_auto_create_lobby` as `true`. This will return a [`MATCHMAKER_NO_AVAILABLE_LOBBIES`](/errors/mm/no-available-lobbies) error when no lobby can accept players. +If this is not the desired behavior, [`Lobbies.find`](/docs/matchmaker/api/lobbies/find) can be called with `prevent_auto_create_lobby` as `true`. This will return a [`MATCHMAKER_NO_AVAILABLE_LOBBIES`](/errors/mm/no-available-lobbies) error when no lobby can accept players. Also see [idle lobbies](/docs/matchmaker/concepts/idle-lobbies). @@ -64,4 +64,4 @@ Take our example at 10 PM where there are **5 lobbies** with **2 players in each In our example, we still have 4 lobbies with only 2 players online. -We recommend prompting players to find a new lobby when the lobby is almost empty. By having the players in these empty lobbies call [`Lobbies.find`](/docs/matchmaker/api/post-lobbies-find) again, the players will be compacted in fewer, fuller lobbies. +We recommend prompting players to find a new lobby when the lobby is almost empty. By having the players in these empty lobbies call [`Lobbies.find`](/docs/matchmaker/api/lobbies/find) again, the players will be compacted in fewer, fuller lobbies. diff --git a/src/pages/docs/matchmaker/index.mdx b/src/pages/docs/matchmaker/index.mdx index 9a5c85c7..2ffcc005 100644 --- a/src/pages/docs/matchmaker/index.mdx +++ b/src/pages/docs/matchmaker/index.mdx @@ -11,7 +11,7 @@ The Rivet Matchmaker is a casual matchmaker optimized to get your player connect To integrate the Rivet matchmaker, your game needs to call these three endpoints: -- **[matchmaker.lobbies.find](/docs/matchmaker/api/post-lobbies-find)**: Called on the game client to return the address to connect to & the player token +- **[matchmaker.lobbies.find](/docs/matchmaker/api/lobbies/find)**: Called on the game client to return the address to connect to & the player token - **[matchmaker.players.connected](/docs/matchmaker/api/post-players-connected)**: Called on the game server to notify the matchmaker the player connected & verify the player token - **[matchmaker.players.disconnected](/docs/matchmaker/api/post-players-disconnected)**: Called on the game server to notify the matchmaker the player disconnected @@ -24,7 +24,7 @@ The Rivet Matchmaker is tightly integrated with Serverless Lobbies to automatica href='/docs/matchmaker/concepts/finding-lobby' /> - + - - - + + + diff --git a/src/pages/learn/index.mdx b/src/pages/learn/index.mdx index 142ed420..df0db1d4 100644 --- a/src/pages/learn/index.mdx +++ b/src/pages/learn/index.mdx @@ -4,27 +4,8 @@ import { HeroPattern } from '@/components/HeroPattern'; -export const description = 'Learn'; - -export const sections = [{ title: 'Guides', id: 'guides' }]; - # Learn -Use the Protocol API to access contacts, conversations, group messages, and more and seamlessly integrate your product into the workflows of dozens of devoted Protocol users. {{ className: 'lead' }} - -
-
- -## Getting started {{ anchor: false }} - -To get started, create a new application in your [developer settings](#), then read about how to make requests for the resources you need to access using our HTTP APIs or dedicated client SDKs. When your integration is ready to go live, publish it to our [integrations directory](#) to reach the Protocol community. {{ className: 'lead' }} - - -