diff --git a/docs/paper/contributing/events.mdx b/docs/paper/contributing/events.mdx index c9ef39cbe..57a2c9de7 100644 --- a/docs/paper/contributing/events.mdx +++ b/docs/paper/contributing/events.mdx @@ -17,23 +17,29 @@ All new events should go in the package (sub-package of) `io.papermc.paper.event ### Constructors -All new constructors added should be annotated with `@ApiStatus.Internal` to signify that they are not considered -API and can change at any time without warning. +All new constructors added should be annotated with +[`@ApiStatus.Internal`](https://javadoc.io/doc/org.jetbrains/annotations/latest/org/jetbrains/annotations/ApiStatus.Internal.html) +to signify that they are not considered API and can change at any time without warning. -Constructors that are being replaced, if they aren't being removed, should be marked with `@Deprecated` and `@DoNotUse`. +Constructors that are being replaced, if they aren't being removed, should be marked with +`@Deprecated` and +`@DoNotUse`. ### Mutability Certain API types are "mutable" which can lead to unexpected behavior within events. Mutable types like -`Location` and `Vector` should therefore be cloned when returned from a "getter" in an event. +`Location` and `Vector` +should therefore be cloned when returned from a "getter" in an event. ### `HandlerList` -For an event class or any subclass of it to be listened to, a `HandlerList` field must be present with an instance and static method -to retrieve it. See the docs for `Event` for specifics. This field should be static and -final and named `HANDLER_LIST`. +For an event class or any subclass of it to be listened to, a `HandlerList` +field must be present with an instance and static method to retrieve it. +See the docs for `Event` for specifics. +This field should be static and final and named `HANDLER_LIST`. Also consider not putting a `HandlerList` on every event, just a "common parent" event so that a plugin can listen to the parent event and capture any child events but also listen to the child event separately. ### Miscellaneous -* New parameters or method returns of type `ItemStack` should be `@NotNull`. +* New parameters or method returns of type `ItemStack` +should be [`@NotNull`](https://javadoc.io/doc/org.jetbrains/annotations/latest/org/jetbrains/annotations/NotNull.html). diff --git a/docs/paper/dev/api/component-api/audiences.md b/docs/paper/dev/api/component-api/audiences.mdx similarity index 61% rename from docs/paper/dev/api/component-api/audiences.md rename to docs/paper/dev/api/component-api/audiences.mdx index 37598683c..d562eb522 100644 --- a/docs/paper/dev/api/component-api/audiences.md +++ b/docs/paper/dev/api/component-api/audiences.mdx @@ -13,12 +13,16 @@ All `CommandSender`s are single audiences. This includes players, the console, a `World` are all forwarding audiences. This means that they are made up of multiple audiences. For example, the server is made up of all online players and the console. -This means that all the Audience methods are available on `CommandSender`, `Server`, `Team` and `World`. +This means that all the [`Audience`](https://jd.advntr.dev/api/latest/net/kyori/adventure/audience/Audience.html) +methods are available on `CommandSender`, +`Server`, `Team` +and `World`. ## `ForwardingAudience` -The `ForwardingAudience` wraps a collection of `Audience` instances and forwards messages to all of them. This is useful -for sending messages to multiple audiences (players) at once. +The [`ForwardingAudience`](https://jd.advntr.dev/api/latest/net/kyori/adventure/audience/ForwardingAudience.html) +wraps a collection of [`Audience`](https://jd.advntr.dev/api/latest/net/kyori/adventure/audience/Audience.html) +instances and forwards messages to all of them. This is useful for sending messages to multiple audiences (players) at once. ```java // Server is a ForwardingAudience which includes all online players and the console @@ -33,8 +37,8 @@ Audience audience = Audience.audience(Audience...); ## What do `Audience`s do? Audiences are used for interacting with players. They can be used to send messages, play sounds, show bossbars, and more. -They are mostly used for sending other parts of the API to players. For example, you can send a `Component` to a player -using `Audience#sendMessage(Component)`. +They are mostly used for sending other parts of the API to players. For example, you can send a [`Component`](https://jd.advntr.dev/api/latest/net/kyori/adventure/text/Component.html) +to a player using [`Audience#sendMessage(Component)`](https://jd.advntr.dev/api/latest/net/kyori/adventure/audience/Audience.html#sendMessage(net.kyori.adventure.text.Component)). ## Pointers diff --git a/docs/paper/dev/api/component-api/i18n.md b/docs/paper/dev/api/component-api/i18n.mdx similarity index 54% rename from docs/paper/dev/api/component-api/i18n.md rename to docs/paper/dev/api/component-api/i18n.mdx index 8b635e112..0be99e29d 100644 --- a/docs/paper/dev/api/component-api/i18n.md +++ b/docs/paper/dev/api/component-api/i18n.mdx @@ -16,29 +16,30 @@ Adventure's Javadocs for all-things translations can be found [here](https://jd. ## GlobalTranslator -All translation is done through the [GlobalTranslator](https://jd.advntr.dev/api/latest/net/kyori/adventure/translation/GlobalTranslator.html). You can render translations yourself and add new sources -for translations. +All translation is done through [`GlobalTranslator`](https://jd.advntr.dev/api/latest/net/kyori/adventure/translation/GlobalTranslator.html). +You can render translations yourself and add new sources for translations. -You can add sources to the `GlobalTranslator` by creating instances of [TranslationRegistry](https://jd.advntr.dev/api/latest/net/kyori/adventure/translation/TranslationRegistry.html) or implementing -the [Translator](https://jd.advntr.dev/api/latest/net/kyori/adventure/translation/Translator.html) interface yourself. +You can add sources to the `GlobalTranslator` by creating instances of [`TranslationRegistry`](https://jd.advntr.dev/api/latest/net/kyori/adventure/translation/TranslationRegistry.html) +or implementing the [`Translator`](https://jd.advntr.dev/api/latest/net/kyori/adventure/translation/Translator.html) interface yourself. ## Where translations work Vanilla Minecraft handles translations on the client by using the language files bundled with the client or provided via resource packs. If you don't want to send custom language files -in a resource pack, server-side translations are the only alternative. They work anywhere `Component` API exists, except for ItemStack display text like the display name or lore. So -chat, entity display names, scoreboards, tab lists, etc., all support translations. +in a resource pack, server-side translations are the only alternative. They work anywhere the component API exists, except for `ItemStack` +display text like the display name or lore. So chat, entity display names, scoreboards, tab lists, etc., all support translations. :::caution The player's language as declared in the settings packet sent by the client arrives **after** the player has joined the server, so there are no guarantees that -translations will work for a client that is joining during the `PlayerJoinEvent` or any earlier event. You can listen for the first `PlayerClientOptionsChangeEvent` after -joining to know with 100% certainty what language the client that joined is using. +translations will work for a client that is joining during the `PlayerJoinEvent` or any earlier event. +You can listen for the first `PlayerClientOptionsChangeEvent` +after joining to know with 100% certainty what language the client that joined is using. ::: ## Examples -### ResourceBundle +### `ResourceBundle` ```properties title="src/main/resources/your/plugin/Bundle_en_US.properties" some.translation.key=Translated Message: {0} ``` @@ -51,9 +52,10 @@ registry.registerAll(Locale.US, bundle, true); GlobalTranslator.translator().addSource(registry); ``` -This creates a new `TranslationRegistry` under a specified namespace. Then a `ResourceBundle` is created from a bundle located on the classpath with -the specified `Locale`. Finally, that `ResourceBundle` is added to the registry. That registry is then added as a source to the `GlobalTranslator`. This -makes all the translations available server-side. +This creates a new `TranslationRegistry` under a specified namespace. Then, a `ResourceBundle` +is created from a bundle located on the classpath with the specified `Locale`. +Finally, that `ResourceBundle` is added to the registry. That registry is then added as a source to the `GlobalTranslator`. +This makes all the translations available server-side. Now you can use translation keys in translatable components. diff --git a/docs/paper/dev/api/component-api/intro.md b/docs/paper/dev/api/component-api/intro.mdx similarity index 77% rename from docs/paper/dev/api/component-api/intro.md rename to docs/paper/dev/api/component-api/intro.mdx index a5003c4cd..af54ba871 100644 --- a/docs/paper/dev/api/component-api/intro.md +++ b/docs/paper/dev/api/component-api/intro.mdx @@ -44,7 +44,7 @@ signal that a better alternative in components is available and should be migrat ::: -## Creating Components +## Creating components Components can be interacted with as objects. There are different interfaces for each type along with builders for all the types. These objects are immutable so when constructing more complex components, it's @@ -76,7 +76,7 @@ For complete documentation on the Adventure Component API Paper and Velocity use ## MiniMessage -Paper and Velocity include the MiniMessage library which is a string representation of components. If you prefer working with +Paper and Velocity include the MiniMessage library, which is a string representation of components. If you prefer working with strings rather than objects, MiniMessage is vastly superior to the legacy string format. It can utilize the tree structure for style inheritance and can represent the more complex component types while legacy cannot. @@ -102,7 +102,7 @@ MiniMessage has a [web viewer](https://webui.advntr.dev/), which is useful for c ::: -## JSON Format +## JSON format Components can be serialized and deserialized from a standard JSON format. This format is used in Vanilla in various commands which accept component arguments like `/tellraw`. Below is a simple example @@ -142,28 +142,31 @@ There are online tools to make generating this format much easier like [JSON Tex ## Serializers -Paper and Velocity come bundled with different serializers for converting between `Component`s and other forms -of serialized text. +Paper and Velocity come bundled with different serializers for converting between +[`Component`](https://jd.advntr.dev/api/latest/net/kyori/adventure/text/Component.html)s and other forms of serialized text. -### [GsonComponentSerializer](https://jd.advntr.dev/text-serializer-gson/latest) +### [`GsonComponentSerializer`](https://jd.advntr.dev/text-serializer-gson/latest) -Converts between `Component` and JSON-formatted strings with convenience methods to directly deal with Gson's `JsonElement`. -This conversion is lossless and is the preferred form of serialization -for components that do not have to be edited by users regularly. +Converts between `Component` +and JSON-formatted strings with convenience methods to directly deal with Gson's +[`JsonElement`](https://javadoc.io/doc/com.google.code.gson/gson/latest/com.google.gson/com/google/gson/JsonElement.html). +This conversion is lossless and is the preferred form of serialization for components that do not have to be edited by users regularly. -### [MiniMessage](https://jd.advntr.dev/text-minimessage/latest) +### [`MiniMessage`](https://jd.advntr.dev/text-minimessage/latest) -Converts between `Component` and a MiniMessage-formatted string. This conversion is lossless and is the preferred form of +Converts between `Component` +and a MiniMessage-formatted string. This conversion is lossless and is the preferred form of serialization for components that have to be edited by users. There is also extensive customization you can add to the serializer, which is [documented here](https://docs.advntr.dev/minimessage/api.html#getting-started). -### [PlainTextComponentSerializer](https://jd.advntr.dev/text-serializer-plain/latest) +### [`PlainTextComponentSerializer`](https://jd.advntr.dev/text-serializer-plain/latest) Serializes a `Component` into a plain text string. This is very lossy as all style information as well as most other -types of components will lose information. There may be special handling for `TranslatableComponent`s to be serialized +types of components will lose information. There may be special handling for +[`TranslatableComponent`](https://jd.advntr.dev/api/latest/net/kyori/adventure/text/TranslatableComponent.html)s to be serialized into a default language, but generally this shouldn't be used except in certain circumstances, like logging to a text file. -### [LegacyComponentSerializer](https://jd.advntr.dev/text-serializer-legacy/latest) +### [`LegacyComponentSerializer`](https://jd.advntr.dev/text-serializer-legacy/latest) :::caution @@ -171,8 +174,8 @@ This is not recommended for use as the legacy format may be removed in the futur ::: -Converts between `Component` and the legacy string format. This conversion is very lossy as component types and events -do not have a legacy string representation. +Converts between `Component` and the legacy string format. +This conversion is very lossy as component types and events do not have a legacy string representation. A more useful use case is converting legacy text to MiniMessage format in a migration process. ```java @@ -187,7 +190,8 @@ final String miniMessageString = MiniMessage.miniMessage().serialize( :::note There are 2 built-in legacy serializers, one dealing with `ยง` symbols and the other for -`&` symbols. They have their own instances available through `LegacyComponentSerializer#legacySection()` -and `LegacyComponentSerializer#legacyAmpersand()`. +`&` symbols. They have their own instances available through +[`LegacyComponentSerializer#legacySection()`](https://jd.advntr.dev/text-serializer-legacy/latest/net/kyori/adventure/text/serializer/legacy/LegacyComponentSerializer.html#legacySection()) +and [`LegacyComponentSerializer#legacyAmpersand()`](https://jd.advntr.dev/text-serializer-legacy/latest/net/kyori/adventure/text/serializer/legacy/LegacyComponentSerializer.html#legacyAmpersand()). ::: diff --git a/docs/paper/dev/api/custom-inventory-holder.md b/docs/paper/dev/api/custom-inventory-holder.mdx similarity index 88% rename from docs/paper/dev/api/custom-inventory-holder.md rename to docs/paper/dev/api/custom-inventory-holder.mdx index cdbf0ca7b..7c78956f5 100644 --- a/docs/paper/dev/api/custom-inventory-holder.md +++ b/docs/paper/dev/api/custom-inventory-holder.mdx @@ -18,13 +18,13 @@ Custom `InventoryHolder`s have no such downsides and by using them you're guaran ## Creating a custom holder -The first step is to implement the `InventoryHolder` interface. -We can do this the following way: create a new class that will create our `Inventory` in the constructor. +The first step is to implement the `InventoryHolder` interface. +We can do this the following way: create a new class that will create our `Inventory` in the constructor. :::info The constructor takes your main plugin class as an argument in order to create the `Inventory`. -If you wish, you can use the static method `Bukkit#createInventory(InventoryHolder, int)` instead and remove the argument. +If you wish, you can use the static method `Bukkit#createInventory(InventoryHolder, int)` instead and remove the argument. ::: @@ -68,8 +68,8 @@ player.openInventory(myInventory.getInventory()); ## Listening to an event -Once we have the inventory open, we can listen to any inventory events we like and check if the `Inventory#getHolder()` -returns an instance of our `MyInventory`. +Once we have the inventory open, we can listen to any inventory events we like and check if +`Inventory#getHolder()` returns an instance of our `MyInventory`. ```java @EventHandler diff --git a/docs/paper/dev/api/event-api/chat-event.mdx b/docs/paper/dev/api/event-api/chat-event.mdx index 874d179ad..e8685dc2b 100644 --- a/docs/paper/dev/api/event-api/chat-event.mdx +++ b/docs/paper/dev/api/event-api/chat-event.mdx @@ -119,7 +119,7 @@ Let's say we want to render our chat to look like this: ![](./assets/plain-message-rendering.png) -To do this, we need to return a new `Component` that contains the message we want to send. +To do this, we need to return a new [`Component`](https://jd.advntr.dev/api/latest/net/kyori/adventure/text/Component.html) that contains the message we want to send. ```java title="ChatListener.java" public class ChatListener implements Listener, ChatRenderer { diff --git a/docs/paper/dev/api/event-api/custom-events.md b/docs/paper/dev/api/event-api/custom-events.mdx similarity index 84% rename from docs/paper/dev/api/event-api/custom-events.md rename to docs/paper/dev/api/event-api/custom-events.mdx index bcab15fdf..f27ffe73e 100644 --- a/docs/paper/dev/api/event-api/custom-events.md +++ b/docs/paper/dev/api/event-api/custom-events.mdx @@ -10,10 +10,10 @@ This will allow other plugins to listen to your custom events and add functional ## Creating a custom event -To create a custom event, you need to create a class that extends `Event`. -Each event requires a `HandlerList` that will contain all the listeners that are listening to that event. +To create a custom event, you need to create a class that extends `Event`. +Each event requires a `HandlerList` that will contain all the listeners that are listening to that event. The only exception to this requirement is when you have an event class that cannot be fired, but serves as a parent for other events instead. -An example of this is the BlockPistonEvent, which cannot be listened to directly. +An example of this is `BlockPistonEvent`, which cannot be listened to directly. This list is used to call the listeners when the event is called. @@ -134,8 +134,9 @@ public class ExamplePlugin extends JavaPlugin { } ``` -When an event is cancellable, `Event#callEvent` will return false if the event was cancelled. This allows you to directly use `callEvent` -in your `if` statement, instead of having to check `Cancellable#isCancelled` manually. +When an event is cancellable, `Event#callEvent()` +will return false if the event was cancelled. This allows you to directly use `callEvent` in your `if` statement, +instead of having to check `Cancellable#isCancelled()` manually. ```java title="ExamplePlugin.java" public class ExamplePlugin extends JavaPlugin { diff --git a/docs/paper/dev/api/event-api/event-listeners.mdx b/docs/paper/dev/api/event-api/event-listeners.mdx index a7f85fb83..522d2f606 100644 --- a/docs/paper/dev/api/event-api/event-listeners.mdx +++ b/docs/paper/dev/api/event-api/event-listeners.mdx @@ -11,7 +11,7 @@ Plugins are able to call custom events, such as a player completing a quest, for ## Your listener class -To listen for events, you need to create a class that implements `Listener`. +To listen for events, you need to create a class that implements `Listener`. This class can be called anything you want, but it is recommended to name it something related to the events you are listening for. ```java title="ExampleListener.java" @@ -22,7 +22,7 @@ public class ExampleListener implements Listener { ## `@EventHandler` -To listen for an event, you need to create a method that is annotated with `@EventHandler`. +To listen for an event, you need to create a method that is annotated with `@EventHandler`. This method can be named anything you want, but it is recommended to name it something meaningful related to the event it is listening for. ## The listener method @@ -82,12 +82,12 @@ public class ExampleListener implements Listener { } ``` There are six different priorities that you can use: -- `EventPriority.LOWEST` -- `EventPriority.LOW` -- `EventPriority.NORMAL` -- `EventPriority.HIGH` -- `EventPriority.HIGHEST` -- `EventPriority.MONITOR` +- `EventPriority.LOWEST` +- `EventPriority.LOW` +- `EventPriority.NORMAL` +- `EventPriority.HIGH` +- `EventPriority.HIGHEST` +- `EventPriority.MONITOR` The order of the priorities is somewhat counter-intuitive. The **higher** the priority, the **later** the event is called. For example, if it is important that your plugin has the last say in a certain event - to avoid it being changed - you @@ -102,7 +102,8 @@ This means you can get the result of any plugin interaction such as cancellation ## Event cancellation -Some events can be cancelled, preventing the given action from being completed. These events implement `Cancellable`. +Some events can be cancelled, preventing the given action from being completed. +These events implement `Cancellable`. ```java title="ExampleListener.java" public class ExampleListener implements Listener { diff --git a/docs/paper/dev/api/event-api/handler-lists.md b/docs/paper/dev/api/event-api/handler-lists.mdx similarity index 74% rename from docs/paper/dev/api/event-api/handler-lists.md rename to docs/paper/dev/api/event-api/handler-lists.mdx index 88b822a28..511bb2c77 100644 --- a/docs/paper/dev/api/event-api/handler-lists.md +++ b/docs/paper/dev/api/event-api/handler-lists.mdx @@ -5,7 +5,8 @@ description: An explanation to what an event's HandlerList is. # Handler Lists -Every `Event` that can be listened to has a `HandlerList` containing all the listeners that are listening to that event. +Every `Event` that can be listened to has a +`HandlerList` containing all the listeners that are listening to that event. This list is used to call the listeners when the event is called. ## Getting the handler list for an event @@ -56,5 +57,7 @@ public class ExampleListener implements Listener { } ``` -You can unregister based on `Listener` or `Plugin` for more convenience. -Likewise, you can also unregister all listeners for a specific event by calling `unregisterAll()` on the `HandlerList`. +You can unregister based on `Listener` +or `Plugin` for more convenience. +Likewise, you can also unregister all listeners for a specific event by calling +`unregisterAll()` on the `HandlerList`. diff --git a/docs/paper/dev/api/folia-support.md b/docs/paper/dev/api/folia-support.mdx similarity index 93% rename from docs/paper/dev/api/folia-support.md rename to docs/paper/dev/api/folia-support.mdx index 2e86ddf8d..d105db95f 100644 --- a/docs/paper/dev/api/folia-support.md +++ b/docs/paper/dev/api/folia-support.mdx @@ -59,7 +59,8 @@ scheduler.execute(plugin, locationToChange, () -> { }); ``` -We pass the location as a parameter to the `RegionScheduler` as it needs to work out which region to execute on. +We pass the location as a parameter to the `RegionScheduler` +as it needs to work out which region to execute on. ### Async scheduler The async scheduler can be used for running tasks independent of the server tick process. This can be fetched with: diff --git a/docs/paper/dev/api/pdc.mdx b/docs/paper/dev/api/pdc.mdx index 57468a5d4..013346b16 100644 --- a/docs/paper/dev/api/pdc.mdx +++ b/docs/paper/dev/api/pdc.mdx @@ -26,8 +26,9 @@ It also doesn't rely on accessing server internals, so it's less likely to break manually track the data lifecycle, as, for example with an entity, the PDC will be saved when the entity unloads. ## Adding data -To store data in the PDC, there are a few things you need first. The first is a `NamespacedKey`, which is used to identify the data. -The second is a `PersistentDataContainer`, which is the object you want to store the data on. The third is the data itself. +To store data in the PDC, there are a few things you need first. The first is a `NamespacedKey`, +which is used to identify the data. The second is a `PersistentDataContainer`, +which is the object you want to store the data on. The third is the data itself. ```java // Create a NamespacedKey @@ -43,8 +44,8 @@ item.setItemMeta(meta); :::info It is considered good practice to reuse `NamespacedKey` objects. They can be constructed with either: -- A `Plugin` instance and a `String` identifier -- A `String` namespace and a `String` identifier +- A `Plugin` instance and a `String` identifier +- A `String` namespace and a `String` identifier The first option is often preferred as it will automatically use the plugin's namespace; however, the second option can be used if you want to use a different namespace or access the data from another plugin. @@ -106,14 +107,15 @@ The PDC supports a wide range of data types, such as: :::info[Boolean `PersistentDataType`] -The `Boolean` PDC type exists for convenience - you cannot make more complex types distill to a `Boolean`. +The `Boolean` PDC type exists for convenience +- you cannot make more complex types distill to a `Boolean`. ::: ### Custom data types You can store a wide range of data in the PDC with the native adapters; however, if you need a more complex data type, you can -implement your own `PersistentDataType` and use that instead. +implement your own `PersistentDataType` and use that instead. The `PersistentDataType`'s job is to "deconstruct" a complex data type into something that is natively supported (see above) and then vice-versa. Here is an example of how to do that for a UUID: @@ -150,7 +152,10 @@ public class UUIDDataType implements PersistentDataType { :::note -In order to use your own `PersistentDataType`, you must pass an instance of it to the `get`/`set`/`has` methods. +In order to use your own `PersistentDataType`, you must pass an instance of it to the +`get`/ +`set`/ +`has` methods. ```java container.set(key, new UUIDDataType(), uuid); ``` @@ -159,13 +164,16 @@ container.set(key, new UUIDDataType(), uuid); ## Storing on different objects -- ##### `Chunk` +Objects that can have a PDC implement the `PersistentDataHolder` interface +and their PDC can be fetched with `PersistentDataHolder#getPersistentDataContainer()`. + +- ##### `Chunk` - `Chunk#getPersistentDataContainer()` -- ##### `World` +- ##### `World` - `World#getPersistentDataContainer()` -- ##### `Entity` +- ##### `Entity` - `Entity#getPersistentDataContainer()` -- ##### `TileState` +- ##### `TileState` - This is slightly more complicated, as you need to cast the block to something that extends `TileState`. This does not work for all blocks, only those that have a tile entity. ```java @@ -175,7 +183,7 @@ container.set(key, new UUIDDataType(), uuid); chest.update(); } ``` -- ##### `Structure` +- ##### `Structure` - `Structure#getPersistentDataContainer()` -- ##### `ItemMeta` +- ##### `ItemMeta` - `ItemMeta#getPersistentDataContainer()` diff --git a/docs/velocity/dev/api/component-api/audiences.mdx b/docs/velocity/dev/api/component-api/audiences.mdx index 65c23788b..06effac73 100644 --- a/docs/velocity/dev/api/component-api/audiences.mdx +++ b/docs/velocity/dev/api/component-api/audiences.mdx @@ -4,6 +4,6 @@ description: How to use Adventure's Audiences. title: Audiences --- -import Audiences from "@site/docs/paper/dev/api/component-api/audiences.md"; +import Audiences from "@site/docs/paper/dev/api/component-api/audiences.mdx"; diff --git a/docs/velocity/dev/api/component-api/i18n.mdx b/docs/velocity/dev/api/component-api/i18n.mdx index b6b15535e..097edcf09 100644 --- a/docs/velocity/dev/api/component-api/i18n.mdx +++ b/docs/velocity/dev/api/component-api/i18n.mdx @@ -4,6 +4,6 @@ description: How to use Adventure's internationalization. title: Internationalization --- -import Internationalization from "@site/docs/paper/dev/api/component-api/i18n.md"; +import Internationalization from "@site/docs/paper/dev/api/component-api/i18n.mdx"; diff --git a/docs/velocity/dev/api/component-api/intro.mdx b/docs/velocity/dev/api/component-api/intro.mdx index be0ac3caa..81eae823f 100644 --- a/docs/velocity/dev/api/component-api/intro.mdx +++ b/docs/velocity/dev/api/component-api/intro.mdx @@ -4,6 +4,6 @@ description: An introduction to how components work. title: Introduction --- -import Introduction from "@site/docs/paper/dev/api/component-api/intro.md"; +import Introduction from "@site/docs/paper/dev/api/component-api/intro.mdx"; diff --git a/src/components/versioning/Javadoc.tsx b/src/components/versioning/Javadoc.tsx index faa2e532f..c9bc92f95 100644 --- a/src/components/versioning/Javadoc.tsx +++ b/src/components/versioning/Javadoc.tsx @@ -52,6 +52,6 @@ export default function Javadoc({ name, module, project = "paper", children }: J interface JavadocProps { name: string; module?: string; - project?: "paper" | "velocity" | "java"; + project?: "paper" | "velocity" | "java" | "adventure" | "jb-annotations"; children: any; }