From d231dcd6acfe3f4d533b49c2f24f28ec6952e766 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sat, 7 Sep 2024 07:28:54 +0200 Subject: [PATCH 01/41] Fix broken link issue on manifest page --- app/lib/widgets/components/app/manifest_view.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/lib/widgets/components/app/manifest_view.dart b/app/lib/widgets/components/app/manifest_view.dart index 9aaaf9edcf..a1d7e18669 100644 --- a/app/lib/widgets/components/app/manifest_view.dart +++ b/app/lib/widgets/components/app/manifest_view.dart @@ -44,7 +44,8 @@ Set? entryReferences(EntryReferencesRef ref, String entryId) { ref.watch(modifierPathsProvider(entry.blueprintId, "entry")); return modifiers .expand(entry.getAll) - .map((id) => id as String) + .map((id) => id as String?) + .nonNulls .where((id) => id.isNotEmpty) .toSet(); } From 0b0cae80c8dc37eddd74476ca61bd9b6947044ba Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sat, 7 Sep 2024 07:29:19 +0200 Subject: [PATCH 02/41] Create extensions directory --- .../main/kotlin/com/typewritermc/core/TypewriterCore.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/engine/engine-core/src/main/kotlin/com/typewritermc/core/TypewriterCore.kt b/engine/engine-core/src/main/kotlin/com/typewritermc/core/TypewriterCore.kt index 22e376edf6..210c1f3266 100644 --- a/engine/engine-core/src/main/kotlin/com/typewritermc/core/TypewriterCore.kt +++ b/engine/engine-core/src/main/kotlin/com/typewritermc/core/TypewriterCore.kt @@ -1,7 +1,6 @@ package com.typewritermc.core import com.typewritermc.core.entries.Library -import com.typewritermc.core.extension.Initializable import com.typewritermc.core.extension.InitializableManager import com.typewritermc.core.utils.Reloadable import com.typewritermc.loader.ExtensionLoader @@ -17,7 +16,11 @@ class TypewriterCore : KoinComponent, Reloadable { private val initializableManager by inject() override fun load() { - val extensionJars = directory.resolve("extensions").listFiles()?.filter { it.name.endsWith(".jar") } ?: emptyList() + val extensionsDirectory = directory.resolve("extensions") + if (!extensionsDirectory.exists()) { + extensionsDirectory.mkdirs() + } + val extensionJars = extensionsDirectory.listFiles()?.filter { it.name.endsWith(".jar") } ?: emptyList() // Needs to be loaded first as it will load the classLoader extensionLoader.load(extensionJars) library.load() From f83d110c43d9f7a1be4ff99f00392b51b91f335c Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sat, 7 Sep 2024 07:29:32 +0200 Subject: [PATCH 03/41] Rename variable --- .../engine/paper/entry/roadnetwork/gps/PointToPointGPS.kt | 4 ++-- .../engine/paper/interaction/InteractionHandler.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/roadnetwork/gps/PointToPointGPS.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/roadnetwork/gps/PointToPointGPS.kt index c2fa77f237..209880d38b 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/roadnetwork/gps/PointToPointGPS.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/roadnetwork/gps/PointToPointGPS.kt @@ -19,7 +19,7 @@ import java.util.* import kotlin.collections.set class PointToPointGPS( - private val network: Ref, + override val roadNetwork: Ref, private val startFetcher: suspend (RoadNetwork) -> Location, private val endFetcher: suspend (RoadNetwork) -> Location, ) : GPS, KoinComponent { @@ -29,7 +29,7 @@ class PointToPointGPS( private var previousPath: List = emptyList() override suspend fun findPath(): Result> = DISPATCHERS_ASYNC.switchContext { - var network = roadNetworkManager.getNetwork(network) + var network = roadNetworkManager.getNetwork(roadNetwork) val start = startFetcher(network) val end = endFetcher(network) diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/InteractionHandler.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/InteractionHandler.kt index 6e2a0bc21e..9ebf3eb8ea 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/InteractionHandler.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/InteractionHandler.kt @@ -148,7 +148,7 @@ class InteractionHandler : Listener, KoinComponent { // If no dialogue is active, we don't want to cancel any who would be triggered by this. val inDialogue = event.player.interaction?.hasDialogue ?: false if (!inDialogue) return - + DIALOGUE_END triggerFor event.player } From a59b61cabf70a9303ebb4212a377f453b7db12df Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sat, 7 Sep 2024 08:14:20 +0200 Subject: [PATCH 04/41] Read Player messages for chat history --- .../paper/interaction/ChatHistoryHandler.kt | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/ChatHistoryHandler.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/ChatHistoryHandler.kt index b82cb35636..6a4b42d096 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/ChatHistoryHandler.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/ChatHistoryHandler.kt @@ -4,13 +4,16 @@ import com.github.retrooper.packetevents.PacketEvents import com.github.retrooper.packetevents.event.PacketListenerAbstract import com.github.retrooper.packetevents.event.PacketListenerPriority import com.github.retrooper.packetevents.event.PacketSendEvent +import com.github.retrooper.packetevents.protocol.chat.message.ChatMessage_v1_19_3 import com.github.retrooper.packetevents.protocol.packettype.PacketType +import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerChatMessage import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSystemChatMessage import com.github.shynixn.mccoroutine.bukkit.registerSuspendingEvents import lirand.api.extensions.server.server import com.typewritermc.engine.paper.plugin import com.typewritermc.engine.paper.snippets.snippet import com.typewritermc.engine.paper.utils.plainText +import io.papermc.paper.event.player.AsyncChatEvent import net.kyori.adventure.text.Component import net.kyori.adventure.text.TextComponent import net.kyori.adventure.text.format.TextColor @@ -40,12 +43,7 @@ class ChatHistoryHandler : // When the serer sends a message to the player override fun onPacketSend(event: PacketSendEvent?) { if (event == null) return - if (event.packetType != PacketType.Play.Server.SYSTEM_CHAT_MESSAGE) return - - val packet = WrapperPlayServerSystemChatMessage(event) - if (packet.isOverlay) return - - val component = packet.message + val component = findMessage(event) ?: return if (component is TextComponent && component.content() == "no-index") return val history = getHistory(event.user.uuid) history.addMessage(component) @@ -55,6 +53,22 @@ class ChatHistoryHandler : } } + private fun findMessage(event: PacketSendEvent): Component? { + return when (event.packetType) { + PacketType.Play.Server.CHAT_MESSAGE -> { + val packet = WrapperPlayServerChatMessage(event) + val message = packet.message as? ChatMessage_v1_19_3 ?: return packet.message.chatContent + message.unsignedChatContent.orElseGet { message.chatContent } + } + PacketType.Play.Server.SYSTEM_CHAT_MESSAGE -> { + val packet = WrapperPlayServerSystemChatMessage(event) + if (packet.isOverlay) return null + packet.message + } + else -> null + } + } + fun getHistory(pid: UUID): ChatHistory { return histories.getOrPut(pid) { ChatHistory() } } From 4282bfa8937f349801844f9ebbf3c84557eeb318 Mon Sep 17 00:00:00 2001 From: Marten Mrfc <101009922+Marten-Mrfc@users.noreply.github.com> Date: Sun, 8 Sep 2024 13:37:57 +0200 Subject: [PATCH 05/41] [Docs] Add playit.gg documentation --- .vscode/settings.json | 1 + .../docs/docs/06-troubleshooting/playitgg.mdx | 33 ++++++++++++++++++ .../assets/troubleshooting/create-tunnel.png | Bin 0 -> 56578 bytes .../docs/docs/assets/troubleshooting/ip.png | Bin 0 -> 20305 bytes .../docs/assets/troubleshooting/tunnels.png | Bin 0 -> 36598 bytes 5 files changed, 34 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 documentation/docs/docs/06-troubleshooting/playitgg.mdx create mode 100644 documentation/docs/docs/assets/troubleshooting/create-tunnel.png create mode 100644 documentation/docs/docs/assets/troubleshooting/ip.png create mode 100644 documentation/docs/docs/assets/troubleshooting/tunnels.png diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/documentation/docs/docs/06-troubleshooting/playitgg.mdx b/documentation/docs/docs/06-troubleshooting/playitgg.mdx new file mode 100644 index 0000000000..b30290c1c6 --- /dev/null +++ b/documentation/docs/docs/06-troubleshooting/playitgg.mdx @@ -0,0 +1,33 @@ +--- +difficulty: easy +--- +import Image from "@site/src/components/Image"; + +# Playit.gg +:::warning[Not tested] +These docs haven't been 100% tested yet. It may be that this won't work. If so please make a question in our [discord](https://discord.gg/gs5QYhfv9x). +::: + +In this tutorial you will learn how to make typewriter work with playit.gg + +## What is Playit.gg +Playit.gg is a service that allows you to make your localhost minecraft server be public for anyone to connect. This is useful for testing your server with friends or for making a public server for a short period of time. + +## How to make typewriter work with playit.gg +First go to [playit.gg](https://playit.gg/) and have a agent created and your minecraft server connected. There are plenty of tutorials out on the internet on how to do this. + +### Creating a new tunnel +Inside the tunnels tab you can click on `+ Add tunnel`. + +Tunnels + +Than inside the popup select your region and use the Tunnel Type `TCP (protocol)` than set the local port to `8080`(or the port you configured in the config.yml) and click on `Add tunnel`. + +Create tunnel + +Now your tunnel should be pending and after a few seconds it should be working. + +### Connecting to the tw panel +Now you can connect to the panel by using the url that is shown in the tunnels tab. + +Tunnel url \ No newline at end of file diff --git a/documentation/docs/docs/assets/troubleshooting/create-tunnel.png b/documentation/docs/docs/assets/troubleshooting/create-tunnel.png new file mode 100644 index 0000000000000000000000000000000000000000..436dae3a25f84317ed090da9c809d29c6c5223ba GIT binary patch literal 56578 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/docs/assets/troubleshooting/ip.png b/documentation/docs/docs/assets/troubleshooting/ip.png new file mode 100644 index 0000000000000000000000000000000000000000..8ef9343340448e8220c67b760e49dee10e203aff GIT binary patch literal 20305 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 M8n+a literal 0 HcmV?d00001 From 6a1b462913d324844f8528ea6d1e80af36199c3b Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sun, 8 Sep 2024 12:03:47 +0200 Subject: [PATCH 06/41] Fix Page name/ID bugs (renaming and displaying) --- app/lib/pages/page_editor.dart | 2 +- app/lib/pages/pages_list.dart | 33 +++++++------------ .../general/decorated_text_field.dart | 6 ++-- .../general/validated_text_field.dart | 6 ++++ .../engine/paper/ui/ClientSynchronizer.kt | 4 +-- 5 files changed, 24 insertions(+), 27 deletions(-) diff --git a/app/lib/pages/page_editor.dart b/app/lib/pages/page_editor.dart index ea3ac1ee5d..8209ec6f68 100644 --- a/app/lib/pages/page_editor.dart +++ b/app/lib/pages/page_editor.dart @@ -31,7 +31,7 @@ String? currentPageId(CurrentPageIdRef ref) { @riverpod String currentPageLabel(CurrentPageLabelRef ref) { - return ref.watch(currentPageIdProvider)?.formatted ?? ""; + return ref.watch(currentPageProvider)?.pageName.formatted ?? ""; } @riverpod diff --git a/app/lib/pages/pages_list.dart b/app/lib/pages/pages_list.dart index 6f0c475c88..32e40de44c 100644 --- a/app/lib/pages/pages_list.dart +++ b/app/lib/pages/pages_list.dart @@ -520,7 +520,7 @@ class _PageTile extends HookConsumerWidget { ), const SizedBox(width: 8), Text( - pageId.formatted, + pageData.name.formatted, style: Theme.of(context) .textTheme .bodySmall @@ -552,7 +552,7 @@ class _PageTile extends HookConsumerWidget { const SizedBox(width: 8), Expanded( child: Text( - pageId.formatted, + pageData.name.formatted, style: Theme.of(context) .textTheme .bodySmall @@ -708,20 +708,15 @@ class AddPageDialogue extends HookConsumerWidget { /// A name is invalid if it is empty or if it already exists. String? _validateName( String text, - List pagesNames, ) { if (text.isEmpty) { return "Name cannot be empty"; } - if (pagesNames.contains(text)) { - return "Page already exists"; - } return null; } @override Widget build(BuildContext context, WidgetRef ref) { - final pagesNames = ref.watch(_pageNamesProvider); final nameController = useTextEditingController(); final isNameValid = useState(false); final type = useState(fixedType ?? PageType.sequence); @@ -742,12 +737,12 @@ class AddPageDialogue extends HookConsumerWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ ValidatedTextField( - value: "", + value: nameController.text, controller: nameController, name: "Page Name", icon: TWIcons.book, validator: (value) { - final validation = _validateName(value, pagesNames); + final validation = _validateName(value); isNameValid.value = validation == null; return validation; }, @@ -858,14 +853,14 @@ class RenamePageDialogue extends HookConsumerWidget { Future _renamePage(WidgetRef ref, String newName) async { await ref.read(bookProvider.notifier).renamePage(pageId, newName); - unawaited(ref.read(appRouter).push(PageEditorRoute(id: newName))); + if (ref.read(currentPageIdProvider) == pageId) return; + unawaited(ref.read(appRouter).push(PageEditorRoute(id: pageId))); } /// Validates the proposed name for a page. /// A name is invalid if it is empty or if it already exists. String? _validateName( String text, - List pagesNames, ) { if (text.isEmpty) { return "Name cannot be empty"; @@ -874,29 +869,22 @@ class RenamePageDialogue extends HookConsumerWidget { if (text == oldName) { return "Name cannot be the same"; } - - if (pagesNames.contains(text)) { - return "Page already exists"; - } - return null; } @override Widget build(BuildContext context, WidgetRef ref) { - final pagesNames = ref.watch(_pageNamesProvider); - final controller = useTextEditingController(text: oldName); + final name = useState(oldName); final isNameValid = useState(false); return AlertDialog( title: Text("Rename ${oldName.formatted}"), content: ValidatedTextField( - value: oldName, - controller: controller, + value: name.value, name: "Page Name", icon: TWIcons.book, validator: (value) { - final validation = _validateName(value, pagesNames); + final validation = _validateName(value); isNameValid.value = validation == null; return validation; }, @@ -905,6 +893,7 @@ class RenamePageDialogue extends HookConsumerWidget { FilteringTextInputFormatter.singleLineFormatter, FilteringTextInputFormatter.allow(RegExp("[a-z0-9_]")), ], + onChanged: (value) => name.value = value, onSubmitted: (value) async { final navigator = Navigator.of(context); await _renamePage(ref, value); @@ -925,7 +914,7 @@ class RenamePageDialogue extends HookConsumerWidget { ? null : () async { final navigator = Navigator.of(context); - await _renamePage(ref, controller.text); + await _renamePage(ref, name.value); navigator.pop(true); }, label: const Text("Rename"), diff --git a/app/lib/widgets/components/general/decorated_text_field.dart b/app/lib/widgets/components/general/decorated_text_field.dart index b4572432b8..0f418f11a9 100644 --- a/app/lib/widgets/components/general/decorated_text_field.dart +++ b/app/lib/widgets/components/general/decorated_text_field.dart @@ -49,7 +49,7 @@ class DecoratedTextField extends HookWidget { // However, when we are focused, we don't want to update the controller as this causes the cursor to jump. useEffect( () { - if (!focus.hasFocus) { + if (!focus.hasFocus && text != null) { controller.text = text ?? ""; } return null; @@ -61,7 +61,9 @@ class DecoratedTextField extends HookWidget { focus, ({required hasFocus}) { if (hasFocus) { - controller.text = text ?? ""; + if (text != null) { + controller.text = text!; + } } else { onDone?.call(controller.text); } diff --git a/app/lib/widgets/components/general/validated_text_field.dart b/app/lib/widgets/components/general/validated_text_field.dart index dbcda7d353..1e4883cd67 100644 --- a/app/lib/widgets/components/general/validated_text_field.dart +++ b/app/lib/widgets/components/general/validated_text_field.dart @@ -47,6 +47,7 @@ class ValidatedTextField extends HookConsumerWidget { this.formatted, this.validator, this.onChanged, + this.onDone, this.onSubmitted, super.key, }); @@ -62,6 +63,7 @@ class ValidatedTextField extends HookConsumerWidget { final String Function(T)? formatted; final String? Function(T)? validator; final void Function(T)? onChanged; + final void Function(T)? onDone; final void Function(T)? onSubmitted; _State _parse(String value) { @@ -124,6 +126,10 @@ class ValidatedTextField extends HookConsumerWidget { if (object != null) onChanged?.call(object); }, onDone: (value) { + final object = _updateState(value, state); + if (object != null) onDone?.call(object); + }, + onSubmitted: (value) { final object = _updateState(value, state); if (object != null) onSubmitted?.call(object); }, diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/ClientSynchronizer.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/ClientSynchronizer.kt index f48ffa66c8..46a1c2cf37 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/ClientSynchronizer.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/ClientSynchronizer.kt @@ -54,7 +54,7 @@ class ClientSynchronizer : KoinComponent { fun handleRenamePage(client: SocketIOClient, data: String, ackRequest: AckRequest) { val json = gson.fromJson(data, PageRename::class.java) - val result = stagingManager.renamePage(json.old, json.new) + val result = stagingManager.renamePage(json.pageId, json.new) ackRequest.sendResult(result) { communicationHandler.server?.broadcastOperations?.sendEvent("renamePage", client, data) @@ -223,7 +223,7 @@ inline fun AckRequest.sendResult(result: Result, onSuccess: () -> Unit) } } -private data class PageRename(val old: String, val new: String) +private data class PageRename(val pageId: String, val new: String) private data class PageValueUpdate( val pageId: String, From 6ef7d8112da0605338a6a809811564761c9d4673 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sun, 8 Sep 2024 17:41:07 +0200 Subject: [PATCH 07/41] Ensure creating page file --- .../kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt index 4671debd5c..fbd9f1e255 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt @@ -287,6 +287,7 @@ class StagingManagerImpl : StagingManager, KoinComponent { try { pages.forEach { (name, page) -> val file = publishedDir["$name.json"] + file.createNewFile() file.writeText(page.toString()) } From 87da668c5c1e70f06652daa2375fe37bfd55f4f4 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sun, 8 Sep 2024 17:54:28 +0200 Subject: [PATCH 08/41] Fix magma cube height --- code_generator/entitylist.json | 1311 ++++++++++++++++- .../paper/entry/entity/EntityAttribute.kt | 4 - .../paper/entry/entity/EntityStorage.kt | 10 - .../entity/custom/EntityTypeProperty.kt | 142 +- 4 files changed, 1383 insertions(+), 84 deletions(-) delete mode 100644 engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/EntityAttribute.kt delete mode 100644 engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/EntityStorage.kt diff --git a/code_generator/entitylist.json b/code_generator/entitylist.json index 5c2716cfc1..51b519131f 100644 --- a/code_generator/entitylist.json +++ b/code_generator/entitylist.json @@ -1 +1,1310 @@ -[{"entity":"Allay","eye_height":0.36,"height":0.6,"id":"allay","width":0.35},{"entity":"Area Effect Cloud","eye_height":0.425,"height":0.5,"id":"area_effect_cloud","width":6},{"entity":"Armor Stand","eye_height":{"small: false, marker: false":1.7775,"small: true, marker: false":0.49375,"small: true, marker: true
small: false, marker: true":0},"height":{"small: false, marker: false":1.975,"small: true, marker: false":0.9875,"small: true, marker: true
small: false, marker: true":0},"id":"armor_stand","width":{"small: false, marker: false":0.5,"small: true, marker: false":0.25,"small: true, marker: true
small: false, marker: true":0}},{"entity":"Arrow","eye_height":0.13,"height":0.5,"id":"arrow","width":0.5},{"entity":"Axolotl","eye_height":{"is_baby: false":0.2751,"is_baby: true":0.13755},"height":{"is_baby: false":0.42,"is_baby: true":0.21},"id":"axolotl","width":{"is_baby: false":0.75,"is_baby: true":0.375}},{"entity":"Bat","eye_height":0.45,"height":0.9,"id":"bat","width":0.5},{"entity":"Bee","eye_height":{"is_baby: false":0.3,"is_baby: true":0.15},"height":{"is_baby: false":0.6,"is_baby: true":0.3},"id":"bee","width":{"is_baby: false":0.7,"is_baby: true":0.35}},{"entity":"Blaze","eye_height":1.53,"height":1.8,"id":"blaze","width":0.6},{"entity":"Block Display","eye_height":0,"height":0,"id":"block_display","width":0},{"entity":"Boat","eye_height":0.5625,"height":0.5625,"id":"boat","width":1.375},{"entity":"Camel","eye_height":{"is_baby: false, pose: sitting":0.845,"is_baby: false, pose: standing":2.275,"is_baby: true, pose: sitting":0.37250003,"is_baby: true, pose: standing":1.0875},"height":{"is_baby: false, pose: sitting":0.94500005,"is_baby: false, pose: standing":2.375,"is_baby: true, pose: sitting":0.47250003,"is_baby: true, pose: standing":1.1875},"id":"camel","width":{"is_baby: false":1.7,"is_baby: true":0.85}},{"entity":"Cat","eye_height":{"is_baby: false":0.35,"is_baby: true":0.175},"height":{"is_baby: false":0.7,"is_baby: true":0.35},"id":"cat","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Cave Spider","eye_height":0.45,"height":0.5,"id":"cave_spider","width":0.7},{"entity":"Boat with Chest","eye_height":0.5625,"height":0.5625,"id":"chest_boat","width":1.375},{"entity":"Minecart with Chest","eye_height":0.595,"height":0.7,"id":"chest_minecart","width":0.98},{"entity":"Chicken","eye_height":{"is_baby: false":0.644,"is_baby: true":0.2975},"height":{"is_baby: false":0.7,"is_baby: true":0.35},"id":"chicken","width":{"is_baby: false":0.4,"is_baby: true":0.2}},{"entity":"Cod","eye_height":0.19500001,"height":0.3,"id":"cod","width":0.5},{"entity":"Minecart with Command Block","eye_height":0.595,"height":0.7,"id":"command_block_minecart","width":0.98},{"entity":"Cow","eye_height":{"is_baby: false":1.3,"is_baby: true":0.66499996},"height":{"is_baby: false":1.4,"is_baby: true":0.7},"id":"cow","width":{"is_baby: false":0.9,"is_baby: true":0.45}},{"entity":"Creeper","eye_height":1.445,"height":1.7,"id":"creeper","width":0.6},{"entity":"Dolphin","eye_height":0.3,"height":0.6,"id":"dolphin","width":0.9},{"entity":"Donkey","eye_height":{"is_baby: false":1.425,"is_baby: true":0.7125},"height":{"is_baby: false":1.5,"is_baby: true":0.75},"id":"donkey","width":{"is_baby: false":1.3964844,"is_baby: true":0.6982422}},{"entity":"Dragon Fireball","eye_height":0.85,"height":1,"id":"dragon_fireball","width":1},{"entity":"Drowned","eye_height":{"is_baby: false":1.74,"is_baby: true":0.93},"height":{"is_baby: false":1.95,"is_baby: true":0.975},"id":"drowned","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Thrown Egg","eye_height":0.2125,"height":0.25,"id":"egg","width":0.25},{"entity":"Elder Guardian","eye_height":0.99875,"height":1.9975,"id":"elder_guardian","width":1.9975},{"entity":"End Crystal","eye_height":1.7,"height":2,"id":"end_crystal","width":2},{"entity":"Ender Dragon","eye_height":6.8,"height":8,"id":"ender_dragon","width":16},{"entity":"Thrown Ender Pearl","eye_height":0.2125,"height":0.25,"id":"ender_pearl","width":0.25},{"entity":"Enderman","eye_height":2.55,"height":2.9,"id":"enderman","width":0.6},{"entity":"Endermite","eye_height":0.13,"height":0.3,"id":"endermite","width":0.4},{"entity":"Evoker","eye_height":1.6575,"height":1.95,"id":"evoker","width":0.6},{"entity":"Evoker Fangs","eye_height":0.68,"height":0.8,"id":"evoker_fangs","width":0.5},{"entity":"Thrown Bottle o' Enchanting","eye_height":0.2125,"height":0.25,"id":"experience_bottle","width":0.25},{"entity":"Experience Orb","eye_height":0.425,"height":0.5,"id":"experience_orb","width":0.5},{"entity":"Eye of Ender","eye_height":0.2125,"height":0.25,"id":"eye_of_ender","width":0.25},{"entity":"Falling Block","eye_height":0.83300006,"height":0.98,"id":"falling_block","width":0.98},{"entity":"Fireball","eye_height":0.85,"height":1,"id":"fireball","width":1},{"entity":"Firework Rocket","eye_height":0.2125,"height":0.25,"id":"firework_rocket","width":0.25},{"entity":"Fishing Bobber","eye_height":0.2125,"height":0.25,"id":"fishing_bobber","width":0.25},{"entity":"Fox","eye_height":{"is_baby: false":0.4,"is_baby: true":0.2975},"height":{"is_baby: false":0.7,"is_baby: true":0.35},"id":"fox","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Frog","eye_height":0.425,"height":0.5,"id":"frog","width":0.5},{"entity":"Minecart with Furnace","eye_height":0.595,"height":0.7,"id":"furnace_minecart","width":0.98},{"entity":"Ghast","eye_height":2.6,"height":4,"id":"ghast","width":4},{"entity":"Giant","eye_height":10.440001,"height":12,"id":"giant","width":3.6},{"entity":"Glow Item Frame","eye_height":0,"height":0.5,"id":"glow_item_frame","width":0.5},{"entity":"Glow Squid","eye_height":0.4,"height":0.8,"id":"glow_squid","width":0.8},{"entity":"Goat","eye_height":{"is_baby: false, pose: long_jumping":0.77349997,"is_baby: false, pose: standing":1.105,"is_baby: true, pose: long_jumping":0.38674998,"is_baby: true, pose: standing":0.5525},"height":{"is_baby: false, pose: long_jumping":0.90999997,"is_baby: false, pose: standing":1.3,"is_baby: true, pose: long_jumping":0.45499998,"is_baby: true, pose: standing":0.65},"id":"goat","width":{"is_baby: false, pose: long_jumping":0.63,"is_baby: false, pose: standing":0.9,"is_baby: true, pose: long_jumping":0.315,"is_baby: true, pose: standing":0.45}},{"entity":"Guardian","eye_height":0.425,"height":0.85,"id":"guardian","width":0.85},{"entity":"Hoglin","eye_height":{"is_baby: false":1.19,"is_baby: true":0.595},"height":{"is_baby: false":1.4,"is_baby: true":0.7},"id":"hoglin","width":{"is_baby: false":1.3964844,"is_baby: true":0.6982422}},{"entity":"Minecart with Hopper","eye_height":0.595,"height":0.7,"id":"hopper_minecart","width":0.98},{"entity":"Horse","eye_height":{"is_baby: false":1.52,"is_baby: true":0.76},"height":{"is_baby: false":1.6,"is_baby: true":0.8},"id":"horse","width":{"is_baby: false":1.3964844,"is_baby: true":0.6982422}},{"entity":"Husk","eye_height":{"is_baby: false":1.74,"is_baby: true":0.93},"height":{"is_baby: false":1.95,"is_baby: true":0.975},"id":"husk","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Illusioner","eye_height":1.6575,"height":1.95,"id":"illusioner","width":0.6},{"entity":"Interaction","eye_height":0.85,"height":0,"id":"interaction","width":0},{"entity":"Iron Golem","eye_height":2.295,"height":2.7,"id":"iron_golem","width":1.4},{"entity":"Item","eye_height":0.2125,"height":0.25,"id":"item","width":0.25},{"entity":"Item Display","eye_height":0,"height":0,"id":"item_display","width":0},{"entity":"Item Frame","eye_height":0,"height":0.5,"id":"item_frame","width":0.5},{"entity":"Leash Knot","eye_height":0.0625,"height":0.5,"id":"leash_knot","width":0.375},{"entity":"Lightning Bolt","eye_height":0,"height":0,"id":"lightning_bolt","width":0},{"entity":"Llama","eye_height":{"is_baby: false":1.7765,"is_baby: true":0.88825},"height":{"is_baby: false":1.87,"is_baby: true":0.935},"id":"llama","width":{"is_baby: false":0.9,"is_baby: true":0.45}},{"entity":"Llama Spit","eye_height":0.2125,"height":0.25,"id":"llama_spit","width":0.25},{"entity":"Magma Cube","eye_height":{"size: 1":0.32512498,"size: 2":0.65024996,"size: 4":1.3004999},"height":{"size: 1":0.52019995,"size: 2":1.0403999,"size: 4":2.0807998},"id":"magma_cube","width":{"size: 1":0.52019995,"size: 2":1.0403999,"size: 4":2.0807998}},{"entity":"Marker","eye_height":0,"height":0,"id":"marker","width":0},{"entity":"Minecart","eye_height":0.595,"height":0.7,"id":"minecart","width":0.98},{"entity":"Mooshroom","eye_height":{"is_baby: false":1.3,"is_baby: true":0.66499996},"height":{"is_baby: false":1.4,"is_baby: true":0.7},"id":"mooshroom","width":{"is_baby: false":0.9,"is_baby: true":0.45}},{"entity":"Mule","eye_height":{"is_baby: false":1.52,"is_baby: true":0.76},"height":{"is_baby: false":1.6,"is_baby: true":0.8},"id":"mule","width":{"is_baby: false":1.3964844,"is_baby: true":0.6982422}},{"entity":"Ocelot","eye_height":{"is_baby: false":0.595,"is_baby: true":0.2975},"height":{"is_baby: false":0.7,"is_baby: true":0.35},"id":"ocelot","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Painting","eye_height":0.425,"height":0.5,"id":"painting","width":0.5},{"entity":"Panda","eye_height":{"is_baby: false":1.0625,"is_baby: true":0.53125},"height":{"is_baby: false":1.25,"is_baby: true":0.625},"id":"panda","width":{"is_baby: false":1.3,"is_baby: true":0.65}},{"entity":"Parrot","eye_height":0.54,"height":0.9,"id":"parrot","width":0.5},{"entity":"Phantom","eye_height":0.175,"height":0.5,"id":"phantom","width":0.9},{"entity":"Pig","eye_height":{"is_baby: false":0.765,"is_baby: true":0.3825},"height":{"is_baby: false":0.9,"is_baby: true":0.45},"id":"pig","width":{"is_baby: false":0.9,"is_baby: true":0.45}},{"entity":"Piglin","eye_height":{"is_baby: false":1.79,"is_baby: true":0.96999997},"height":{"is_baby: false":1.95,"is_baby: true":0.975},"id":"piglin","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Piglin Brute","eye_height":1.79,"height":1.95,"id":"piglin_brute","width":0.6},{"entity":"Pillager","eye_height":1.6575,"height":1.95,"id":"pillager","width":0.6},{"entity":"Player","eye_height":{"pose: crouching":1.27,"pose: sleeping":0.2,"pose: spin_attack
pose: fall_flying
pose: swimming":0.4,"pose: standing
pose: dying":1.62},"height":{"pose: crouching":1.5,"pose: dying
pose: sleeping":0.2,"pose: spin_attack
pose: fall_flying
pose: swimming":0.6,"pose: standing":1.8},"id":"player","width":{"pose: dying
pose: sleeping":0.2,"pose: standing
pose: spin_attack
pose: crouching
pose: fall_flying
pose: swimming":0.6}},{"entity":"Polar Bear","eye_height":{"is_baby: false":1.19,"is_baby: true":0.595},"height":{"is_baby: false":1.4,"is_baby: true":0.7},"id":"polar_bear","width":{"is_baby: false":1.4,"is_baby: true":0.7}},{"entity":"Thrown Potion","eye_height":0.2125,"height":0.25,"id":"potion","width":0.25},{"entity":"Pufferfish","eye_height":{"puff_state: 0":0.22749999,"puff_state: 1":0.31849998,"puff_state: 2":0.45499998},"height":{"puff_state: 0":0.35,"puff_state: 1":0.48999998,"puff_state: 2":0.7},"id":"pufferfish","width":{"puff_state: 0":0.35,"puff_state: 1":0.48999998,"puff_state: 2":0.7}},{"entity":"Rabbit","eye_height":{"is_baby: false":0.425,"is_baby: true":0.2125},"height":{"is_baby: false":0.5,"is_baby: true":0.25},"id":"rabbit","width":{"is_baby: false":0.4,"is_baby: true":0.2}},{"entity":"Ravager","eye_height":1.8700001,"height":2.2,"id":"ravager","width":1.95},{"entity":"Salmon","eye_height":0.26,"height":0.4,"id":"salmon","width":0.7},{"entity":"Sheep","eye_height":{"is_baby: false":1.2349999,"is_baby: true":0.61749995},"height":{"is_baby: false":1.3,"is_baby: true":0.65},"id":"sheep","width":{"is_baby: false":0.9,"is_baby: true":0.45}},{"entity":"Shulker","eye_height":0.5,"height":1,"id":"shulker","width":1},{"entity":"Shulker Bullet","eye_height":0.265625,"height":0.3125,"id":"shulker_bullet","width":0.3125},{"entity":"Silverfish","eye_height":0.13,"height":0.3,"id":"silverfish","width":0.4},{"entity":"Skeleton","eye_height":1.74,"height":1.99,"id":"skeleton","width":0.6},{"entity":"Skeleton Horse","eye_height":{"is_baby: false":1.52,"is_baby: true":0.76},"height":{"is_baby: false":1.6,"is_baby: true":0.8},"id":"skeleton_horse","width":{"is_baby: false":1.3964844,"is_baby: true":0.6982422}},{"entity":"Slime","eye_height":{"size: 1":0.32512498,"size: 2":0.65024996,"size: 4":1.3004999},"height":{"size: 1":0.52019995,"size: 2":1.0403999,"size: 4":2.0807998},"id":"slime","width":{"size: 1":0.52019995,"size: 2":1.0403999,"size: 4":2.0807998}},{"entity":"Small Fireball","eye_height":0.265625,"height":0.3125,"id":"small_fireball","width":0.3125},{"entity":"Sniffer","eye_height":{"is_baby: false":1.0500001,"is_baby: true":0.52500004},"height":{"is_baby: false":1.75,"is_baby: true":0.875},"id":"sniffer","width":{"is_baby: false":1.9,"is_baby: true":0.95}},{"entity":"Snow Golem","eye_height":1.7,"height":1.9,"id":"snow_golem","width":0.7},{"entity":"Snowball","eye_height":0.2125,"height":0.25,"id":"snowball","width":0.25},{"entity":"Minecart with Spawner","eye_height":0.595,"height":0.7,"id":"spawner_minecart","width":0.98},{"entity":"Spectral Arrow","eye_height":0.13,"height":0.5,"id":"spectral_arrow","width":0.5},{"entity":"Spider","eye_height":0.65,"height":0.9,"id":"spider","width":1.4},{"entity":"Squid","eye_height":0.4,"height":0.8,"id":"squid","width":0.8},{"entity":"Stray","eye_height":1.74,"height":1.99,"id":"stray","width":0.6},{"entity":"Strider","eye_height":{"is_baby: false":1.445,"is_baby: true":0.7225},"height":{"is_baby: false":1.7,"is_baby: true":0.85},"id":"strider","width":{"is_baby: false":0.9,"is_baby: true":0.45}},{"entity":"Tadpole","eye_height":0.19500001,"height":0.3,"id":"tadpole","width":0.4},{"entity":"Text Display","eye_height":0,"height":0,"id":"text_display","width":0},{"entity":"Primed TNT","eye_height":0.15,"height":0.98,"id":"tnt","width":0.98},{"entity":"Minecart with TNT","eye_height":0.595,"height":0.7,"id":"tnt_minecart","width":0.98},{"entity":"Trader Llama","eye_height":{"is_baby: false":1.7765,"is_baby: true":0.88825},"height":{"is_baby: false":1.87,"is_baby: true":0.935},"id":"trader_llama","width":{"is_baby: false":0.9,"is_baby: true":0.45}},{"entity":"Trident","eye_height":0.13,"height":0.5,"id":"trident","width":0.5},{"entity":"Tropical Fish","eye_height":0.26,"height":0.4,"id":"tropical_fish","width":0.5},{"entity":"Turtle","eye_height":{"is_baby: false":0.34,"is_baby: true":0.102000006},"height":{"is_baby: false":0.4,"is_baby: true":0.120000005},"id":"turtle","width":{"is_baby: false":1.2,"is_baby: true":0.36}},{"entity":"Vex","eye_height":0.51875,"height":0.8,"id":"vex","width":0.4},{"entity":"Villager","eye_height":{"is_baby: false, pose: standing":1.62,"is_baby: true, pose: sleeping
is_baby: false, pose: sleeping":0.2,"is_baby: true, pose: standing":0.81},"height":{"is_baby: false, pose: standing":1.95,"is_baby: true, pose: sleeping
is_baby: false, pose: sleeping":0.2,"is_baby: true, pose: standing":0.975},"id":"villager","width":{"is_baby: false, pose: standing":0.6,"is_baby: true, pose: sleeping
is_baby: false, pose: sleeping":0.2,"is_baby: true, pose: standing":0.3}},{"entity":"Vindicator","eye_height":1.6575,"height":1.95,"id":"vindicator","width":0.6},{"entity":"Wandering Trader","eye_height":{"is_baby: false":1.62,"is_baby: true":0.81},"height":{"is_baby: false":1.95,"is_baby: true":0.975},"id":"wandering_trader","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Warden","eye_height":{"pose: digging
pose: emerging":0.85,"pose: roaring
pose: sniffing
pose: standing":2.4650002},"height":{"pose: digging
pose: emerging":1,"pose: roaring
pose: sniffing
pose: standing":2.9},"id":"warden","width":0.9},{"entity":"Witch","eye_height":1.62,"height":1.95,"id":"witch","width":0.6},{"entity":"Wither","eye_height":2.9750001,"height":3.5,"id":"wither","width":0.9},{"entity":"Wither Skeleton","eye_height":2.1,"height":2.4,"id":"wither_skeleton","width":0.7},{"entity":"Wither Skull","eye_height":0.265625,"height":0.3125,"id":"wither_skull","width":0.3125},{"entity":"Wolf","eye_height":{"is_baby: false":0.68,"is_baby: true":0.34},"height":{"is_baby: false":0.85,"is_baby: true":0.425},"id":"wolf","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Zoglin","eye_height":{"is_baby: false":1.19,"is_baby: true":0.595},"height":{"is_baby: false":1.4,"is_baby: true":0.7},"id":"zoglin","width":{"is_baby: false":1.3964844,"is_baby: true":0.6982422}},{"entity":"Zombie","eye_height":{"is_baby: false":1.74,"is_baby: true":0.93},"height":{"is_baby: false":1.95,"is_baby: true":0.975},"id":"zombie","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Zombie Horse","eye_height":{"is_baby: false":1.52,"is_baby: true":0.76},"height":{"is_baby: false":1.6,"is_baby: true":0.8},"id":"zombie_horse","width":{"is_baby: false":1.3964844,"is_baby: true":0.6982422}},{"entity":"Zombie Villager","eye_height":{"is_baby: false":1.74,"is_baby: true":0.93},"height":{"is_baby: false":1.95,"is_baby: true":0.975},"id":"zombie_villager","width":{"is_baby: false":0.6,"is_baby: true":0.3}},{"entity":"Zombified Piglin","eye_height":{"is_baby: false":1.79,"is_baby: true":0.96999997},"height":{"is_baby: false":1.95,"is_baby: true":0.975},"id":"zombified_piglin","width":{"is_baby: false":0.6,"is_baby: true":0.3}}] \ No newline at end of file +[ + { + "entity": "Allay", + "eye_height": 0.36, + "height": 0.6, + "id": "allay", + "width": 0.35 + }, + { + "entity": "Area Effect Cloud", + "eye_height": 0.425, + "height": 0.5, + "id": "area_effect_cloud", + "width": 6 + }, + { + "entity": "Armadillo", + "eye_height": { + "is_baby: false": 0.26, + "is_baby: true": 0.156 + }, + "height": { + "is_baby: false": 0.65, + "is_baby: true": 0.39 + }, + "id": "armadillo", + "width": { + "is_baby: false": 0.7, + "is_baby: true": 0.42 + } + }, + { + "entity": "Armor Stand", + "eye_height": { + "small: false, marker: false": 1.7775, + "small: true, marker: false": 0.49375, + "small: true, marker: true
small: false, marker: true": 0 + }, + "height": { + "small: false, marker: false": 1.975, + "small: false, marker: true": 0, + "small: true, marker: false": 0.9875, + "small: true, marker: true": 0 + }, + "id": "armor_stand", + "width": { + "small: false, marker: false": 0.5, + "small: false, marker: true": 0, + "small: true, marker: false": 0.25, + "small: true, marker: true": 0 + } + }, + { + "entity": "Arrow", + "eye_height": 0.13, + "height": 0.5, + "id": "arrow", + "width": 0.5 + }, + { + "entity": "Axolotl", + "eye_height": { + "is_baby: false": 0.2751, + "is_baby: true": 0.137549 + }, + "height": { + "is_baby: false": 0.42, + "is_baby: true": 0.21 + }, + "id": "axolotl", + "width": { + "is_baby: false": 0.75, + "is_baby: true": 0.375 + } + }, + { + "entity": "Bat", + "eye_height": 0.45, + "height": 0.9, + "id": "bat", + "width": 0.5 + }, + { + "entity": "Bee", + "eye_height": { + "is_baby: false": 0.3, + "is_baby: true": 0.15 + }, + "height": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + }, + "id": "bee", + "width": { + "is_baby: false": 0.7, + "is_baby: true": 0.35 + } + }, + { + "entity": "Blaze", + "eye_height": 1.53, + "height": 1.8, + "id": "blaze", + "width": 0.6 + }, + { + "entity": "Block Display", + "eye_height": 0, + "height": 0, + "id": "block_display", + "width": 0 + }, + { + "entity": "Boat", + "eye_height": 0.5625, + "height": 0.5625, + "id": "boat", + "width": 1.375 + }, + { + "entity": "Boat with Chest", + "eye_height": 0.5625, + "height": 0.5625, + "id": "chest_boat", + "width": 1.375 + }, + { + "entity": "Bogged", + "eye_height": 1.74, + "height": 1.99, + "id": "bogged", + "width": 0.6 + }, + { + "entity": "Breeze", + "eye_height": 1.3452, + "height": 1.77, + "id": "breeze", + "width": 0.6 + }, + { + "entity": "Camel", + "eye_height": { + "is_baby: false, pose: sitting": 0.845, + "is_baby: false, pose: standing": 2.275, + "is_baby: true, pose: sitting": 0.38025, + "is_baby: true, pose: standing": 1.02375 + }, + "height": { + "is_baby: false, pose: sitting": 0.945, + "is_baby: false, pose: standing": 2.375, + "is_baby: true, pose: sitting": 0.42525, + "is_baby: true, pose: standing": 1.06875 + }, + "id": "camel", + "width": { + "is_baby: false": 1.7, + "is_baby: true": 0.765 + } + }, + { + "entity": "Cat", + "eye_height": { + "is_baby: false": 0.35, + "is_baby: true": 0.175 + }, + "height": { + "is_baby: false": 0.7, + "is_baby: true": 0.35 + }, + "id": "cat", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Cave Spider", + "eye_height": 0.45, + "height": 0.5, + "id": "cave_spider", + "width": 0.699999 + }, + { + "entity": "Chicken", + "eye_height": { + "is_baby: false": 0.644, + "is_baby: true": 0.2975 + }, + "height": { + "is_baby: false": 0.7, + "is_baby: true": 0.35 + }, + "id": "chicken", + "width": { + "is_baby: false": 0.4, + "is_baby: true": 0.2 + } + }, + { + "entity": "Cod", + "eye_height": 0.195, + "height": 0.3, + "id": "cod", + "width": 0.5 + }, + { + "entity": "Cow", + "eye_height": { + "is_baby: false": 1.3, + "is_baby: true": 0.665 + }, + "height": { + "is_baby: false": 1.4, + "is_baby: true": 0.7 + }, + "id": "cow", + "width": { + "is_baby: false": 0.9, + "is_baby: true": 0.45 + } + }, + { + "entity": "Creeper", + "eye_height": 1.445, + "height": 1.7, + "id": "creeper", + "width": 0.6 + }, + { + "entity": "Dolphin", + "eye_height": 0.3, + "height": 0.6, + "id": "dolphin", + "width": 0.9 + }, + { + "entity": "Donkey", + "eye_height": { + "is_baby: false": 1.425, + "is_baby: true": 0.7125 + }, + "height": { + "is_baby: false": 1.5, + "is_baby: true": 0.75 + }, + "id": "donkey", + "width": { + "is_baby: false": 1.396484, + "is_baby: true": 0.698242 + } + }, + { + "entity": "Dragon Fireball", + "eye_height": 0.85, + "height": 1, + "id": "dragon_fireball", + "width": 1 + }, + { + "entity": "Drowned", + "eye_height": { + "is_baby: false": 1.74, + "is_baby: true": 0.93 + }, + "height": { + "is_baby: false": 1.95, + "is_baby: true": 0.975 + }, + "id": "drowned", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Elder Guardian", + "eye_height": 0.998749, + "height": 1.9975, + "id": "elder_guardian", + "width": 1.9975 + }, + { + "entity": "End Crystal", + "eye_height": 1.7, + "height": 2, + "id": "end_crystal", + "width": 2 + }, + { + "entity": "Ender Dragon", + "eye_height": 6.8, + "height": 8, + "id": "ender_dragon", + "width": 16 + }, + { + "entity": "Enderman", + "eye_height": 2.55, + "height": 2.9, + "id": "enderman", + "width": 0.6 + }, + { + "entity": "Endermite", + "eye_height": 0.13, + "height": 0.3, + "id": "endermite", + "width": 0.4 + }, + { + "entity": "Evoker", + "eye_height": 1.6575, + "height": 1.95, + "id": "evoker", + "width": 0.6 + }, + { + "entity": "Evoker Fangs", + "eye_height": 0.68, + "height": 0.8, + "id": "evoker_fangs", + "width": 0.5 + }, + { + "entity": "Experience Orb", + "eye_height": 0.425, + "height": 0.5, + "id": "experience_orb", + "width": 0.5 + }, + { + "entity": "Eye of Ender", + "eye_height": 0.2125, + "height": 0.25, + "id": "eye_of_ender", + "width": 0.25 + }, + { + "entity": "Falling Block", + "eye_height": 0.833, + "height": 0.98, + "id": "falling_block", + "width": 0.98 + }, + { + "entity": "Fireball", + "eye_height": 0.85, + "height": 1, + "id": "fireball", + "width": 1 + }, + { + "entity": "Firework Rocket", + "eye_height": 0.2125, + "height": 0.25, + "id": "firework_rocket", + "width": 0.25 + }, + { + "entity": "Fishing Bobber", + "eye_height": 0.2125, + "height": 0.25, + "id": "fishing_bobber", + "width": 0.25 + }, + { + "entity": "Fox", + "eye_height": { + "is_baby: false": 0.4, + "is_baby: true": 0.2975 + }, + "height": { + "is_baby: false": 0.7, + "is_baby: true": 0.35 + }, + "id": "fox", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Frog", + "eye_height": 0.425, + "height": 0.5, + "id": "frog", + "width": 0.5 + }, + { + "entity": "Ghast", + "eye_height": 2.6, + "height": 4, + "id": "ghast", + "width": 4 + }, + { + "entity": "Giant", + "eye_height": 10.44, + "height": 12, + "id": "giant", + "width": 3.6 + }, + { + "entity": "Glow Item Frame", + "eye_height": 0, + "height": 0.5, + "id": "glow_item_frame", + "width": 0.5 + }, + { + "entity": "Glow Squid", + "eye_height": 0.4, + "height": 0.8, + "id": "glow_squid", + "width": 0.8 + }, + { + "entity": "Goat", + "eye_height": { + "pose: long_jumping, is_baby: false": 0.7735, + "pose: long_jumping, is_baby: true": 0.38675, + "pose: standing, is_baby: false": 1.105, + "pose: standing, is_baby: true": 0.5525 + }, + "height": { + "pose: long_jumping, is_baby: false": 0.91, + "pose: long_jumping, is_baby: true": 0.455, + "pose: standing, is_baby: false": 1.3, + "pose: standing, is_baby: true": 0.65 + }, + "id": "goat", + "width": { + "pose: long_jumping, is_baby: false": 0.63, + "pose: long_jumping, is_baby: true": 0.315, + "pose: standing, is_baby: false": 0.9, + "pose: standing, is_baby: true": 0.45 + } + }, + { + "entity": "Guardian", + "eye_height": 0.425, + "height": 0.85, + "id": "guardian", + "width": 0.85 + }, + { + "entity": "Hoglin", + "eye_height": { + "is_baby: false": 1.19, + "is_baby: true": 0.595 + }, + "height": { + "is_baby: false": 1.4, + "is_baby: true": 0.7 + }, + "id": "hoglin", + "width": { + "is_baby: false": 1.396484, + "is_baby: true": 0.698242 + } + }, + { + "entity": "Horse", + "eye_height": { + "is_baby: false": 1.52, + "is_baby: true": 0.76 + }, + "height": { + "is_baby: false": 1.6, + "is_baby: true": 0.8 + }, + "id": "horse", + "width": { + "is_baby: false": 1.396484, + "is_baby: true": 0.698242 + } + }, + { + "entity": "Husk", + "eye_height": { + "is_baby: false": 1.74, + "is_baby: true": 0.93 + }, + "height": { + "is_baby: false": 1.95, + "is_baby: true": 0.975 + }, + "id": "husk", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Illusioner", + "eye_height": 1.6575, + "height": 1.95, + "id": "illusioner", + "width": 0.6 + }, + { + "entity": "Interaction", + "eye_height": 0.85, + "height": 0, + "id": "interaction", + "width": 0 + }, + { + "entity": "Iron Golem", + "eye_height": 2.295, + "height": 2.7, + "id": "iron_golem", + "width": 1.4 + }, + { + "entity": "Item", + "eye_height": 0.2125, + "height": 0.25, + "id": "item", + "width": 0.25 + }, + { + "entity": "Item Display", + "eye_height": 0, + "height": 0, + "id": "item_display", + "width": 0 + }, + { + "entity": "Item Frame", + "eye_height": 0, + "height": 0.5, + "id": "item_frame", + "width": 0.5 + }, + { + "entity": "Leash Knot", + "eye_height": 0.0625, + "height": 0.5, + "id": "leash_knot", + "width": 0.375 + }, + { + "entity": "Lightning Bolt", + "eye_height": 0, + "height": 0, + "id": "lightning_bolt", + "width": 0 + }, + { + "entity": "Llama", + "eye_height": { + "is_baby: false": 1.7765, + "is_baby: true": 0.888249 + }, + "height": { + "is_baby: false": 1.87, + "is_baby: true": 0.935 + }, + "id": "llama", + "width": { + "is_baby: false": 0.9, + "is_baby: true": 0.45 + } + }, + { + "entity": "Magma Cube", + "eye_height": { + "size: 1": 0.325, + "size: 2": 0.65, + "size: 4": 1.3 + }, + "height": { + "size: 1": 0.52, + "size: 2": 1.04, + "size: 4": 2.08 + }, + "id": "magma_cube", + "width": { + "size: 1": 0.52, + "size: 2": 1.04, + "size: 4": 2.08 + } + }, + { + "entity": "Marker", + "eye_height": 0, + "height": 0, + "id": "marker", + "width": 0 + }, + { + "entity": "Minecart", + "eye_height": 0.595, + "height": 0.7, + "id": "minecart", + "width": 0.98 + }, + { + "entity": "Minecart with Chest", + "eye_height": 0.595, + "height": 0.7, + "id": "chest_minecart", + "width": 0.98 + }, + { + "entity": "Minecart with Command Block", + "eye_height": 0.595, + "height": 0.7, + "id": "command_block_minecart", + "width": 0.98 + }, + { + "entity": "Minecart with Furnace", + "eye_height": 0.595, + "height": 0.7, + "id": "furnace_minecart", + "width": 0.98 + }, + { + "entity": "Minecart with Hopper", + "eye_height": 0.595, + "height": 0.7, + "id": "hopper_minecart", + "width": 0.98 + }, + { + "entity": "Minecart with Monster Spawner", + "eye_height": 0.595, + "height": 0.7, + "id": "spawner_minecart", + "width": 0.98 + }, + { + "entity": "Minecart with TNT", + "eye_height": 0.595, + "height": 0.7, + "id": "tnt_minecart", + "width": 0.98 + }, + { + "entity": "Mooshroom", + "eye_height": { + "is_baby: false": 1.3, + "is_baby: true": 0.665 + }, + "height": { + "is_baby: false": 1.4, + "is_baby: true": 0.7 + }, + "id": "mooshroom", + "width": { + "is_baby: false": 0.9, + "is_baby: true": 0.45 + } + }, + { + "entity": "Mule", + "eye_height": { + "is_baby: false": 1.52, + "is_baby: true": 0.76 + }, + "height": { + "is_baby: false": 1.6, + "is_baby: true": 0.8 + }, + "id": "mule", + "width": { + "is_baby: false": 1.396484, + "is_baby: true": 0.698242 + } + }, + { + "entity": "Ocelot", + "eye_height": { + "is_baby: false": 0.595, + "is_baby: true": 0.2975 + }, + "height": { + "is_baby: false": 0.7, + "is_baby: true": 0.35 + }, + "id": "ocelot", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Ominous Item Spawner", + "eye_height": 0.2125, + "height": 0.25, + "id": "ominous_item_spawner", + "width": 0.25 + }, + { + "entity": "Painting", + "eye_height": 0.425, + "height": 0.5, + "id": "painting", + "width": 0.5 + }, + { + "entity": "Panda", + "eye_height": { + "is_baby: false": 1.0625, + "is_baby: true": 0.53125 + }, + "height": { + "is_baby: false": 1.25, + "is_baby: true": 0.625 + }, + "id": "panda", + "width": { + "is_baby: false": 1.3, + "is_baby: true": 0.65 + } + }, + { + "entity": "Parrot", + "eye_height": 0.54, + "height": 0.9, + "id": "parrot", + "width": 0.5 + }, + { + "entity": "Phantom", + "eye_height": 0.175, + "height": 0.5, + "id": "phantom", + "width": 0.9 + }, + { + "entity": "Pig", + "eye_height": { + "is_baby: false": 0.765, + "is_baby: true": 0.3825 + }, + "height": { + "is_baby: false": 0.9, + "is_baby: true": 0.45 + }, + "id": "pig", + "width": { + "is_baby: false": 0.9, + "is_baby: true": 0.45 + } + }, + { + "entity": "Piglin", + "eye_height": { + "is_baby: false": 1.79, + "is_baby: true": 0.97 + }, + "height": { + "is_baby: false": 1.95, + "is_baby: true": 0.975 + }, + "id": "piglin", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Piglin Brute", + "eye_height": 1.79, + "height": 1.95, + "id": "piglin_brute", + "width": 0.6 + }, + { + "entity": "Pillager", + "eye_height": 1.6575, + "height": 1.95, + "id": "pillager", + "width": 0.6 + }, + { + "entity": "Player", + "eye_height": { + "pose: crouching": 1.27, + "pose: dying": 1.62, + "pose: fall_flying": 0.4, + "pose: sleeping": 0.2, + "pose: spin_attack": 0.4, + "pose: standing": 1.62, + "pose: swimming": 0.4 + }, + "height": { + "pose: crouching": 1.5, + "pose: dying
pose: sleeping": 0.2, + "pose: spin_attack
pose: fall_flying
pose: swimming": 0.6, + "pose: standing": 1.8 + }, + "id": "player", + "width": { + "pose: dying
pose: sleeping": 0.2, + "pose: standing
pose: spin_attack
pose: crouching
pose: fall_flying
pose: swimming": 0.6 + } + }, + { + "entity": "Polar Bear", + "eye_height": { + "is_baby: false": 1.19, + "is_baby: true": 0.595 + }, + "height": { + "is_baby: false": 1.4, + "is_baby: true": 0.7 + }, + "id": "polar_bear", + "width": { + "is_baby: false": 1.4, + "is_baby: true": 0.7 + } + }, + { + "entity": "Potion", + "eye_height": 0.2125, + "height": 0.25, + "id": "potion", + "width": 0.25 + }, + { + "entity": "Primed TNT", + "eye_height": 0.15, + "height": 0.98, + "id": "tnt", + "width": 0.98 + }, + { + "entity": "Pufferfish", + "eye_height": { + "puff_state: 0": 0.2275, + "puff_state: 1": 0.3185, + "puff_state: 2": 0.455 + }, + "height": { + "puff_state: 0": 0.35, + "puff_state: 1": 0.49, + "puff_state: 2": 0.7 + }, + "id": "pufferfish", + "width": { + "puff_state: 0": 0.35, + "puff_state: 1": 0.49, + "puff_state: 2": 0.7 + } + }, + { + "entity": "Rabbit", + "eye_height": { + "is_baby: false": 0.425, + "is_baby: true": 0.2125 + }, + "height": { + "is_baby: false": 0.5, + "is_baby: true": 0.25 + }, + "id": "rabbit", + "width": { + "is_baby: false": 0.4, + "is_baby: true": 0.2 + } + }, + { + "entity": "Ravager", + "eye_height": 1.87, + "height": 2.2, + "id": "ravager", + "width": 1.95 + }, + { + "entity": "Salmon", + "eye_height": 0.26, + "height": 0.4, + "id": "salmon", + "width": 0.7 + }, + { + "entity": "Sheep", + "eye_height": { + "is_baby: false": 1.235, + "is_baby: true": 0.6175 + }, + "height": { + "is_baby: false": 1.3, + "is_baby: true": 0.65 + }, + "id": "sheep", + "width": { + "is_baby: false": 0.9, + "is_baby: true": 0.45 + } + }, + { + "entity": "Shulker", + "eye_height": 0.5, + "height": 1, + "id": "shulker", + "width": 1 + }, + { + "entity": "Shulker Bullet", + "eye_height": 0.265625, + "height": 0.3125, + "id": "shulker_bullet", + "width": 0.3125 + }, + { + "entity": "Silverfish", + "eye_height": 0.13, + "height": 0.3, + "id": "silverfish", + "width": 0.4 + }, + { + "entity": "Skeleton", + "eye_height": 1.74, + "height": 1.99, + "id": "skeleton", + "width": 0.6 + }, + { + "entity": "Skeleton Horse", + "eye_height": { + "is_baby: false": 1.52, + "is_baby: true": 0.76 + }, + "height": { + "is_baby: false": 1.6, + "is_baby: true": 0.8 + }, + "id": "skeleton_horse", + "width": { + "is_baby: false": 1.396484, + "is_baby: true": 0.698242 + } + }, + { + "entity": "Slime", + "eye_height": { + "size: 1": 0.325, + "size: 2": 0.65, + "size: 4": 1.3 + }, + "height": { + "size: 1": 0.52, + "size: 2": 1.04, + "size: 4": 2.08 + }, + "id": "slime", + "width": { + "size: 1": 0.52, + "size: 2": 1.04, + "size: 4": 2.08 + } + }, + { + "entity": "Small Fireball", + "eye_height": 0.265625, + "height": 0.3125, + "id": "small_fireball", + "width": 0.3125 + }, + { + "entity": "Sniffer", + "eye_height": { + "is_baby: false": 1.05, + "is_baby: true": 0.525 + }, + "height": { + "is_baby: false": 1.75, + "is_baby: true": 0.875 + }, + "id": "sniffer", + "width": { + "is_baby: false": 1.9, + "is_baby: true": 0.95 + } + }, + { + "entity": "Snow Golem", + "eye_height": 1.7, + "height": 1.9, + "id": "snow_golem", + "width": 0.7 + }, + { + "entity": "Snowball", + "eye_height": 0.2125, + "height": 0.25, + "id": "snowball", + "width": 0.25 + }, + { + "entity": "Spider", + "eye_height": 0.65, + "height": 0.9, + "id": "spider", + "width": 1.4 + }, + { + "entity": "Squid", + "eye_height": 0.4, + "height": 0.8, + "id": "squid", + "width": 0.8 + }, + { + "entity": "Stray", + "eye_height": 1.74, + "height": 1.99, + "id": "stray", + "width": 0.6 + }, + { + "entity": "Strider", + "eye_height": { + "is_baby: false": 1.445, + "is_baby: true": 0.7225 + }, + "height": { + "is_baby: false": 1.7, + "is_baby: true": 0.85 + }, + "id": "strider", + "width": { + "is_baby: false": 0.9, + "is_baby: true": 0.45 + } + }, + { + "entity": "Tadpole", + "eye_height": 0.195, + "height": 0.3, + "id": "tadpole", + "width": 0.4 + }, + { + "entity": "Text Display", + "eye_height": 0, + "height": 0, + "id": "text_display", + "width": 0 + }, + { + "entity": "Thrown Bottle o' Enchanting", + "eye_height": 0.2125, + "height": 0.25, + "id": "experience_bottle", + "width": 0.25 + }, + { + "entity": "Thrown Egg", + "eye_height": 0.2125, + "height": 0.25, + "id": "egg", + "width": 0.25 + }, + { + "entity": "Thrown Ender Pearl", + "eye_height": 0.2125, + "height": 0.25, + "id": "ender_pearl", + "width": 0.25 + }, + { + "entity": "Trader Llama", + "eye_height": { + "is_baby: false": 1.7765, + "is_baby: true": 0.88825 + }, + "height": { + "is_baby: false": 1.87, + "is_baby: true": 0.935 + }, + "id": "trader_llama", + "width": { + "is_baby: false": 0.9, + "is_baby: true": 0.45 + } + }, + { + "entity": "Trident", + "eye_height": 0.13, + "height": 0.5, + "id": "trident", + "width": 0.5 + }, + { + "entity": "Tropical Fish", + "eye_height": 0.26, + "height": 0.4, + "id": "tropical_fish", + "width": 0.5 + }, + { + "entity": "Turtle", + "eye_height": { + "is_baby: false": 0.34, + "is_baby: true": 0.102 + }, + "height": { + "is_baby: false": 0.4, + "is_baby: true": 0.12 + }, + "id": "turtle", + "width": { + "is_baby: false": 1.2, + "is_baby: true": 0.36 + } + }, + { + "entity": "Vex", + "eye_height": 0.51875, + "height": 0.8, + "id": "vex", + "width": 0.4 + }, + { + "entity": "Villager", + "eye_height": { + "is_baby: false, pose: standing": 1.62, + "is_baby: true, pose: sleeping
is_baby: false, pose: sleeping": 0.2, + "is_baby: true, pose: standing": 0.81 + }, + "height": { + "is_baby: false, pose: standing": 1.95, + "is_baby: true, pose: sleeping
is_baby: false, pose: sleeping": 0.2, + "is_baby: true, pose: standing": 0.975 + }, + "id": "villager", + "width": { + "pose: sleeping, is_baby: false": 0.2, + "pose: sleeping, is_baby: true": 0.2, + "pose: standing, is_baby: false": 0.6, + "pose: standing, is_baby: true": 0.3 + } + }, + { + "entity": "Vindicator", + "eye_height": 1.6575, + "height": 1.95, + "id": "vindicator", + "width": 0.6 + }, + { + "entity": "Wandering Trader", + "eye_height": { + "is_baby: false": 1.62, + "is_baby: true": 0.81 + }, + "height": { + "is_baby: false": 1.95, + "is_baby: true": 0.975 + }, + "id": "wandering_trader", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Warden", + "eye_height": { + "pose: digging
pose: emerging": 0.85, + "pose: roaring
pose: sniffing
pose: standing": 2.4650002 + }, + "height": { + "pose: digging
pose: emerging": 1, + "pose: roaring
pose: sniffing
pose: standing": 2.9 + }, + "id": "warden", + "width": 0.9 + }, + { + "entity": "Wind Charge", + "eye_height": 0, + "height": 0.3125, + "id": "wind_charge", + "width": 0.3125 + }, + { + "entity": "Witch", + "eye_height": 1.62, + "height": 1.95, + "id": "witch", + "width": 0.6 + }, + { + "entity": "Wither", + "eye_height": 2.975, + "height": 3.5, + "id": "wither", + "width": 0.9 + }, + { + "entity": "Wither Skeleton", + "eye_height": 2.1, + "height": 2.4, + "id": "wither_skeleton", + "width": 0.7 + }, + { + "entity": "Wither Skull", + "eye_height": 0.265625, + "height": 0.3125, + "id": "wither_skull", + "width": 0.3125 + }, + { + "entity": "Wolf", + "eye_height": { + "is_baby: false": 0.68, + "is_baby: true": 0.34 + }, + "height": { + "is_baby: false": 0.85, + "is_baby: true": 0.425 + }, + "id": "wolf", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Zoglin", + "eye_height": { + "is_baby: false": 1.19, + "is_baby: true": 0.595 + }, + "height": { + "is_baby: false": 1.4, + "is_baby: true": 0.7 + }, + "id": "zoglin", + "width": { + "is_baby: false": 1.396484, + "is_baby: true": 0.698242 + } + }, + { + "entity": "Zombie", + "eye_height": { + "is_baby: false": 1.74, + "is_baby: true": 0.93 + }, + "height": { + "is_baby: false": 1.95, + "is_baby: true": 0.975 + }, + "id": "zombie", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Zombie Horse", + "eye_height": { + "is_baby: false": 1.52, + "is_baby: true": 0.76 + }, + "height": { + "is_baby: false": 1.6, + "is_baby: true": 0.8 + }, + "id": "zombie_horse", + "width": { + "is_baby: false": 1.396484, + "is_baby: true": 0.698242 + } + }, + { + "entity": "Zombie Villager", + "eye_height": { + "is_baby: false": 1.74, + "is_baby: true": 0.93 + }, + "height": { + "is_baby: false": 1.95, + "is_baby: true": 0.975 + }, + "id": "zombie_villager", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + }, + { + "entity": "Zombified Piglin", + "eye_height": { + "is_baby: false": 1.79, + "is_baby: true": 0.97 + }, + "height": { + "is_baby: false": 1.95, + "is_baby: true": 0.975 + }, + "id": "zombified_piglin", + "width": { + "is_baby: false": 0.6, + "is_baby: true": 0.3 + } + } +] diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/EntityAttribute.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/EntityAttribute.kt deleted file mode 100644 index 4b24b47318..0000000000 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/EntityAttribute.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.typewritermc.engine.paper.entry.entity - -interface EntityAttribute { -} \ No newline at end of file diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/EntityStorage.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/EntityStorage.kt deleted file mode 100644 index 6b14c5fc83..0000000000 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/EntityStorage.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.typewritermc.engine.paper.entry.entity - -import com.typewritermc.core.entries.Ref -import com.typewritermc.engine.paper.entry.entries.EntityInstanceEntry -import java.util.concurrent.ConcurrentHashMap - -class EntityStorage { - val location = ConcurrentHashMap, PositionProperty>() - -} \ No newline at end of file diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/custom/EntityTypeProperty.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/custom/EntityTypeProperty.kt index e796f08839..3102b819fc 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/custom/EntityTypeProperty.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/custom/EntityTypeProperty.kt @@ -3,14 +3,14 @@ package com.typewritermc.entity.entries.entity.custom import com.github.retrooper.packetevents.protocol.entity.pose.EntityPose import com.github.retrooper.packetevents.protocol.entity.type.EntityType import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes +import com.typewritermc.engine.paper.entry.entity.EntityState +import com.typewritermc.engine.paper.entry.entries.EntityProperty import com.typewritermc.entity.entries.data.minecraft.PoseProperty import com.typewritermc.entity.entries.data.minecraft.living.AgableProperty import com.typewritermc.entity.entries.data.minecraft.living.SizeProperty import com.typewritermc.entity.entries.data.minecraft.living.pufferfish.PuffStateProperty import com.typewritermc.entity.entries.data.minecraft.other.MarkerProperty import com.typewritermc.entity.entries.data.minecraft.other.SmallProperty -import com.typewritermc.engine.paper.entry.entity.EntityState -import com.typewritermc.engine.paper.entry.entries.EntityProperty import me.tofaa.entitylib.meta.mobs.water.PufferFishMeta import java.util.* import kotlin.reflect.KClass @@ -38,7 +38,7 @@ private class EntityDataMatcher( if (type != other.type) return false if (other.isBaby != null && isBaby != other.isBaby) return false if (other.pose != null && pose != other.pose) return false - if (other.size != null && size != other.size) return false + if (other.size != null && size != null && size >= other.size) return false if (other.small != null && small != other.small) return false if (other.marker != null && marker != other.marker) return false if (other.puffState != null && puffState != other.puffState) return false @@ -56,7 +56,7 @@ private class EntityDataMatcher( private fun EntityType.matcher(properties: Map, EntityProperty>): EntityDataMatcher { val isBaby = properties.property(AgableProperty::class)?.baby ?: false val pose = properties.property(PoseProperty::class)?.pose ?: EntityPose.STANDING - val size = properties.property(SizeProperty::class)?.size ?: 1 + val size = properties.property(SizeProperty::class)?.size ?: 0 val small = properties.property(SmallProperty::class)?.small ?: false val marker = properties.property(MarkerProperty::class)?.marker ?: false val puffState = properties.property(PuffStateProperty::class)?.state ?: PufferFishMeta.State.UNPUFFED @@ -75,78 +75,75 @@ private val EntityDataMatcher.eyeHeight: Double get() { return when (this) { EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.SITTING) -> 0.98 -// +// EntityDataMatcher(EntityTypes.ALLAY) -> 0.36 EntityDataMatcher(EntityTypes.AREA_EFFECT_CLOUD) -> 0.425 - EntityDataMatcher(EntityTypes.ARMOR_STAND, small = false, marker = false) -> 1.7775 + EntityDataMatcher(EntityTypes.ARMADILLO, isBaby = false) -> 0.26 + EntityDataMatcher(EntityTypes.ARMADILLO, isBaby = true) -> 0.156 EntityDataMatcher(EntityTypes.ARMOR_STAND, small = true, marker = true) -> 0.0 EntityDataMatcher(EntityTypes.ARMOR_STAND, small = false, marker = true) -> 0.0 + EntityDataMatcher(EntityTypes.ARMOR_STAND, small = false, marker = false) -> 1.7775 EntityDataMatcher(EntityTypes.ARMOR_STAND, small = true, marker = false) -> 0.49375 EntityDataMatcher(EntityTypes.ARROW) -> 0.13 + EntityDataMatcher(EntityTypes.AXOLOTL, isBaby = true) -> 0.137549 EntityDataMatcher(EntityTypes.AXOLOTL, isBaby = false) -> 0.2751 - EntityDataMatcher(EntityTypes.AXOLOTL, isBaby = true) -> 0.13755 EntityDataMatcher(EntityTypes.BAT) -> 0.45 - EntityDataMatcher(EntityTypes.BEE, isBaby = false) -> 0.3 EntityDataMatcher(EntityTypes.BEE, isBaby = true) -> 0.15 + EntityDataMatcher(EntityTypes.BEE, isBaby = false) -> 0.3 EntityDataMatcher(EntityTypes.BLAZE) -> 1.53 EntityDataMatcher(EntityTypes.BLOCK_DISPLAY) -> 0.0 EntityDataMatcher(EntityTypes.BOAT) -> 0.5625 - EntityDataMatcher(EntityTypes.CAMEL, isBaby = false, pose = EntityPose.STANDING) -> 2.275 - EntityDataMatcher(EntityTypes.CAMEL, isBaby = true, pose = EntityPose.STANDING) -> 1.0875 - EntityDataMatcher(EntityTypes.CAMEL, isBaby = true, pose = EntityPose.SITTING) -> 0.37250003 + EntityDataMatcher(EntityTypes.CHEST_BOAT) -> 0.5625 + EntityDataMatcher(EntityTypes.BOGGED) -> 1.74 + EntityDataMatcher(EntityTypes.BREEZE) -> 1.3452 + EntityDataMatcher(EntityTypes.CAMEL, isBaby = true, pose = EntityPose.SITTING) -> 0.38025 + EntityDataMatcher(EntityTypes.CAMEL, isBaby = true, pose = EntityPose.STANDING) -> 1.02375 EntityDataMatcher(EntityTypes.CAMEL, isBaby = false, pose = EntityPose.SITTING) -> 0.845 + EntityDataMatcher(EntityTypes.CAMEL, isBaby = false, pose = EntityPose.STANDING) -> 2.275 EntityDataMatcher(EntityTypes.CAT, isBaby = false) -> 0.35 EntityDataMatcher(EntityTypes.CAT, isBaby = true) -> 0.175 EntityDataMatcher(EntityTypes.CAVE_SPIDER) -> 0.45 - EntityDataMatcher(EntityTypes.CHEST_BOAT) -> 0.5625 - EntityDataMatcher(EntityTypes.CHEST_MINECART) -> 0.595 EntityDataMatcher(EntityTypes.CHICKEN, isBaby = false) -> 0.644 EntityDataMatcher(EntityTypes.CHICKEN, isBaby = true) -> 0.2975 - EntityDataMatcher(EntityTypes.COD) -> 0.19500001 - EntityDataMatcher(EntityTypes.COMMAND_BLOCK_MINECART) -> 0.595 - EntityDataMatcher(EntityTypes.COW, isBaby = true) -> 0.66499996 + EntityDataMatcher(EntityTypes.COD) -> 0.195 + EntityDataMatcher(EntityTypes.COW, isBaby = true) -> 0.665 EntityDataMatcher(EntityTypes.COW, isBaby = false) -> 1.3 EntityDataMatcher(EntityTypes.CREEPER) -> 1.445 EntityDataMatcher(EntityTypes.DOLPHIN) -> 0.3 EntityDataMatcher(EntityTypes.DONKEY, isBaby = false) -> 1.425 EntityDataMatcher(EntityTypes.DONKEY, isBaby = true) -> 0.7125 EntityDataMatcher(EntityTypes.DRAGON_FIREBALL) -> 0.85 - EntityDataMatcher(EntityTypes.DROWNED, isBaby = false) -> 1.74 EntityDataMatcher(EntityTypes.DROWNED, isBaby = true) -> 0.93 - EntityDataMatcher(EntityTypes.EGG) -> 0.2125 - EntityDataMatcher(EntityTypes.ELDER_GUARDIAN) -> 0.99875 + EntityDataMatcher(EntityTypes.DROWNED, isBaby = false) -> 1.74 + EntityDataMatcher(EntityTypes.ELDER_GUARDIAN) -> 0.998749 EntityDataMatcher(EntityTypes.END_CRYSTAL) -> 1.7 EntityDataMatcher(EntityTypes.ENDER_DRAGON) -> 6.8 - EntityDataMatcher(EntityTypes.ENDER_PEARL) -> 0.2125 EntityDataMatcher(EntityTypes.ENDERMAN) -> 2.55 EntityDataMatcher(EntityTypes.ENDERMITE) -> 0.13 EntityDataMatcher(EntityTypes.EVOKER) -> 1.6575 EntityDataMatcher(EntityTypes.EVOKER_FANGS) -> 0.68 - EntityDataMatcher(EntityTypes.EXPERIENCE_BOTTLE) -> 0.2125 EntityDataMatcher(EntityTypes.EXPERIENCE_ORB) -> 0.425 EntityDataMatcher(EntityTypes.EYE_OF_ENDER) -> 0.2125 - EntityDataMatcher(EntityTypes.FALLING_BLOCK) -> 0.83300006 + EntityDataMatcher(EntityTypes.FALLING_BLOCK) -> 0.833 EntityDataMatcher(EntityTypes.FIREBALL) -> 0.85 EntityDataMatcher(EntityTypes.FIREWORK_ROCKET) -> 0.2125 EntityDataMatcher(EntityTypes.FISHING_BOBBER) -> 0.2125 - EntityDataMatcher(EntityTypes.FOX, isBaby = false) -> 0.4 EntityDataMatcher(EntityTypes.FOX, isBaby = true) -> 0.2975 + EntityDataMatcher(EntityTypes.FOX, isBaby = false) -> 0.4 EntityDataMatcher(EntityTypes.FROG) -> 0.425 - EntityDataMatcher(EntityTypes.FURNACE_MINECART) -> 0.595 EntityDataMatcher(EntityTypes.GHAST) -> 2.6 - EntityDataMatcher(EntityTypes.GIANT) -> 10.440001 + EntityDataMatcher(EntityTypes.GIANT) -> 10.44 EntityDataMatcher(EntityTypes.GLOW_ITEM_FRAME) -> 0.0 EntityDataMatcher(EntityTypes.GLOW_SQUID) -> 0.4 - EntityDataMatcher(EntityTypes.GOAT, isBaby = true, pose = EntityPose.LONG_JUMPING) -> 0.38674998 - EntityDataMatcher(EntityTypes.GOAT, isBaby = true, pose = EntityPose.STANDING) -> 0.5525 - EntityDataMatcher(EntityTypes.GOAT, isBaby = false, pose = EntityPose.LONG_JUMPING) -> 0.77349997 - EntityDataMatcher(EntityTypes.GOAT, isBaby = false, pose = EntityPose.STANDING) -> 1.105 + EntityDataMatcher(EntityTypes.GOAT, pose = EntityPose.LONG_JUMPING, isBaby = true) -> 0.38675 + EntityDataMatcher(EntityTypes.GOAT, pose = EntityPose.STANDING, isBaby = true) -> 0.5525 + EntityDataMatcher(EntityTypes.GOAT, pose = EntityPose.LONG_JUMPING, isBaby = false) -> 0.7735 + EntityDataMatcher(EntityTypes.GOAT, pose = EntityPose.STANDING, isBaby = false) -> 1.105 EntityDataMatcher(EntityTypes.GUARDIAN) -> 0.425 EntityDataMatcher(EntityTypes.HOGLIN, isBaby = false) -> 1.19 EntityDataMatcher(EntityTypes.HOGLIN, isBaby = true) -> 0.595 - EntityDataMatcher(EntityTypes.HOPPER_MINECART) -> 0.595 - EntityDataMatcher(EntityTypes.HORSE, isBaby = false) -> 1.52 EntityDataMatcher(EntityTypes.HORSE, isBaby = true) -> 0.76 + EntityDataMatcher(EntityTypes.HORSE, isBaby = false) -> 1.52 EntityDataMatcher(EntityTypes.HUSK, isBaby = false) -> 1.74 EntityDataMatcher(EntityTypes.HUSK, isBaby = true) -> 0.93 EntityDataMatcher(EntityTypes.ILLUSIONER) -> 1.6575 @@ -158,109 +155,116 @@ private val EntityDataMatcher.eyeHeight: Double EntityDataMatcher(EntityTypes.LEASH_KNOT) -> 0.0625 EntityDataMatcher(EntityTypes.LIGHTNING_BOLT) -> 0.0 EntityDataMatcher(EntityTypes.LLAMA, isBaby = false) -> 1.7765 - EntityDataMatcher(EntityTypes.LLAMA, isBaby = true) -> 0.88825 - EntityDataMatcher(EntityTypes.LLAMA_SPIT) -> 0.2125 - EntityDataMatcher(EntityTypes.MAGMA_CUBE, size = 2) -> 0.65024996 - EntityDataMatcher(EntityTypes.MAGMA_CUBE, size = 1) -> 0.32512498 - EntityDataMatcher(EntityTypes.MAGMA_CUBE, size = 4) -> 1.3004999 + EntityDataMatcher(EntityTypes.LLAMA, isBaby = true) -> 0.888249 + EntityDataMatcher(EntityTypes.MAGMA_CUBE, size = 4) -> 1.3 + EntityDataMatcher(EntityTypes.MAGMA_CUBE, size = 2) -> 0.65 + EntityDataMatcher(EntityTypes.MAGMA_CUBE, size = 1) -> 0.325 EntityDataMatcher(EntityTypes.MARKER) -> 0.0 EntityDataMatcher(EntityTypes.MINECART) -> 0.595 + EntityDataMatcher(EntityTypes.CHEST_MINECART) -> 0.595 + EntityDataMatcher(EntityTypes.COMMAND_BLOCK_MINECART) -> 0.595 + EntityDataMatcher(EntityTypes.FURNACE_MINECART) -> 0.595 + EntityDataMatcher(EntityTypes.HOPPER_MINECART) -> 0.595 + EntityDataMatcher(EntityTypes.SPAWNER_MINECART) -> 0.595 + EntityDataMatcher(EntityTypes.TNT_MINECART) -> 0.595 EntityDataMatcher(EntityTypes.MOOSHROOM, isBaby = false) -> 1.3 - EntityDataMatcher(EntityTypes.MOOSHROOM, isBaby = true) -> 0.66499996 + EntityDataMatcher(EntityTypes.MOOSHROOM, isBaby = true) -> 0.665 EntityDataMatcher(EntityTypes.MULE, isBaby = true) -> 0.76 EntityDataMatcher(EntityTypes.MULE, isBaby = false) -> 1.52 - EntityDataMatcher(EntityTypes.OCELOT, isBaby = true) -> 0.2975 EntityDataMatcher(EntityTypes.OCELOT, isBaby = false) -> 0.595 + EntityDataMatcher(EntityTypes.OCELOT, isBaby = true) -> 0.2975 + EntityDataMatcher(EntityTypes.OMINOUS_ITEM_SPAWNER) -> 0.2125 EntityDataMatcher(EntityTypes.PAINTING) -> 0.425 EntityDataMatcher(EntityTypes.PANDA, isBaby = true) -> 0.53125 EntityDataMatcher(EntityTypes.PANDA, isBaby = false) -> 1.0625 EntityDataMatcher(EntityTypes.PARROT) -> 0.54 EntityDataMatcher(EntityTypes.PHANTOM) -> 0.175 - EntityDataMatcher(EntityTypes.PIG, isBaby = true) -> 0.3825 EntityDataMatcher(EntityTypes.PIG, isBaby = false) -> 0.765 - EntityDataMatcher(EntityTypes.PIGLIN, isBaby = true) -> 0.96999997 + EntityDataMatcher(EntityTypes.PIG, isBaby = true) -> 0.3825 EntityDataMatcher(EntityTypes.PIGLIN, isBaby = false) -> 1.79 + EntityDataMatcher(EntityTypes.PIGLIN, isBaby = true) -> 0.97 EntityDataMatcher(EntityTypes.PIGLIN_BRUTE) -> 1.79 EntityDataMatcher(EntityTypes.PILLAGER) -> 1.6575 - EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.SPIN_ATTACK) -> 0.4 + EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.DYING) -> 1.62 EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.FALL_FLYING) -> 0.4 + EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.SLEEPING) -> 0.2 + EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.SPIN_ATTACK) -> 0.4 EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.SWIMMING) -> 0.4 EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.STANDING) -> 1.62 - EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.DYING) -> 1.62 - EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.SLEEPING) -> 0.2 EntityDataMatcher(EntityTypes.PLAYER, pose = EntityPose.CROUCHING) -> 1.27 - EntityDataMatcher(EntityTypes.POLAR_BEAR, isBaby = false) -> 1.19 EntityDataMatcher(EntityTypes.POLAR_BEAR, isBaby = true) -> 0.595 + EntityDataMatcher(EntityTypes.POLAR_BEAR, isBaby = false) -> 1.19 EntityDataMatcher(EntityTypes.POTION) -> 0.2125 - EntityDataMatcher(EntityTypes.PUFFERFISH, puffState = PufferFishMeta.State.entries[1]) -> 0.31849998 - EntityDataMatcher(EntityTypes.PUFFERFISH, puffState = PufferFishMeta.State.entries[0]) -> 0.22749999 - EntityDataMatcher(EntityTypes.PUFFERFISH, puffState = PufferFishMeta.State.entries[2]) -> 0.45499998 + EntityDataMatcher(EntityTypes.TNT) -> 0.15 + EntityDataMatcher(EntityTypes.PUFFERFISH, puffState = PufferFishMeta.State.entries[0]) -> 0.2275 + EntityDataMatcher(EntityTypes.PUFFERFISH, puffState = PufferFishMeta.State.entries[2]) -> 0.455 + EntityDataMatcher(EntityTypes.PUFFERFISH, puffState = PufferFishMeta.State.entries[1]) -> 0.3185 EntityDataMatcher(EntityTypes.RABBIT, isBaby = false) -> 0.425 EntityDataMatcher(EntityTypes.RABBIT, isBaby = true) -> 0.2125 - EntityDataMatcher(EntityTypes.RAVAGER) -> 1.8700001 + EntityDataMatcher(EntityTypes.RAVAGER) -> 1.87 EntityDataMatcher(EntityTypes.SALMON) -> 0.26 - EntityDataMatcher(EntityTypes.SHEEP, isBaby = true) -> 0.61749995 - EntityDataMatcher(EntityTypes.SHEEP, isBaby = false) -> 1.2349999 + EntityDataMatcher(EntityTypes.SHEEP, isBaby = false) -> 1.235 + EntityDataMatcher(EntityTypes.SHEEP, isBaby = true) -> 0.6175 EntityDataMatcher(EntityTypes.SHULKER) -> 0.5 EntityDataMatcher(EntityTypes.SHULKER_BULLET) -> 0.265625 EntityDataMatcher(EntityTypes.SILVERFISH) -> 0.13 EntityDataMatcher(EntityTypes.SKELETON) -> 1.74 - EntityDataMatcher(EntityTypes.SKELETON_HORSE, isBaby = true) -> 0.76 EntityDataMatcher(EntityTypes.SKELETON_HORSE, isBaby = false) -> 1.52 - EntityDataMatcher(EntityTypes.SLIME, size = 2) -> 0.65024996 - EntityDataMatcher(EntityTypes.SLIME, size = 4) -> 1.3004999 - EntityDataMatcher(EntityTypes.SLIME, size = 1) -> 0.32512498 + EntityDataMatcher(EntityTypes.SKELETON_HORSE, isBaby = true) -> 0.76 + EntityDataMatcher(EntityTypes.SLIME, size = 4) -> 1.3 + EntityDataMatcher(EntityTypes.SLIME, size = 2) -> 0.65 + EntityDataMatcher(EntityTypes.SLIME, size = 1) -> 0.325 EntityDataMatcher(EntityTypes.SMALL_FIREBALL) -> 0.265625 - EntityDataMatcher(EntityTypes.SNIFFER, isBaby = false) -> 1.0500001 - EntityDataMatcher(EntityTypes.SNIFFER, isBaby = true) -> 0.52500004 + EntityDataMatcher(EntityTypes.SNIFFER, isBaby = false) -> 1.05 + EntityDataMatcher(EntityTypes.SNIFFER, isBaby = true) -> 0.525 EntityDataMatcher(EntityTypes.SNOW_GOLEM) -> 1.7 EntityDataMatcher(EntityTypes.SNOWBALL) -> 0.2125 - EntityDataMatcher(EntityTypes.SPAWNER_MINECART) -> 0.595 - EntityDataMatcher(EntityTypes.SPECTRAL_ARROW) -> 0.13 EntityDataMatcher(EntityTypes.SPIDER) -> 0.65 EntityDataMatcher(EntityTypes.SQUID) -> 0.4 EntityDataMatcher(EntityTypes.STRAY) -> 1.74 EntityDataMatcher(EntityTypes.STRIDER, isBaby = true) -> 0.7225 EntityDataMatcher(EntityTypes.STRIDER, isBaby = false) -> 1.445 - EntityDataMatcher(EntityTypes.TADPOLE) -> 0.19500001 + EntityDataMatcher(EntityTypes.TADPOLE) -> 0.195 EntityDataMatcher(EntityTypes.TEXT_DISPLAY) -> 0.0 - EntityDataMatcher(EntityTypes.TNT) -> 0.15 - EntityDataMatcher(EntityTypes.TNT_MINECART) -> 0.595 + EntityDataMatcher(EntityTypes.EXPERIENCE_BOTTLE) -> 0.2125 + EntityDataMatcher(EntityTypes.EGG) -> 0.2125 + EntityDataMatcher(EntityTypes.ENDER_PEARL) -> 0.2125 EntityDataMatcher(EntityTypes.TRADER_LLAMA, isBaby = false) -> 1.7765 EntityDataMatcher(EntityTypes.TRADER_LLAMA, isBaby = true) -> 0.88825 EntityDataMatcher(EntityTypes.TRIDENT) -> 0.13 EntityDataMatcher(EntityTypes.TROPICAL_FISH) -> 0.26 EntityDataMatcher(EntityTypes.TURTLE, isBaby = false) -> 0.34 - EntityDataMatcher(EntityTypes.TURTLE, isBaby = true) -> 0.102000006 + EntityDataMatcher(EntityTypes.TURTLE, isBaby = true) -> 0.102 EntityDataMatcher(EntityTypes.VEX) -> 0.51875 EntityDataMatcher(EntityTypes.VILLAGER, isBaby = false, pose = EntityPose.STANDING) -> 1.62 EntityDataMatcher(EntityTypes.VILLAGER, isBaby = true, pose = EntityPose.SLEEPING) -> 0.2 EntityDataMatcher(EntityTypes.VILLAGER, isBaby = false, pose = EntityPose.SLEEPING) -> 0.2 EntityDataMatcher(EntityTypes.VILLAGER, isBaby = true, pose = EntityPose.STANDING) -> 0.81 EntityDataMatcher(EntityTypes.VINDICATOR) -> 1.6575 - EntityDataMatcher(EntityTypes.WANDERING_TRADER, isBaby = true) -> 0.81 EntityDataMatcher(EntityTypes.WANDERING_TRADER, isBaby = false) -> 1.62 + EntityDataMatcher(EntityTypes.WANDERING_TRADER, isBaby = true) -> 0.81 + EntityDataMatcher(EntityTypes.WARDEN, pose = EntityPose.DIGGING) -> 0.85 + EntityDataMatcher(EntityTypes.WARDEN, pose = EntityPose.EMERGING) -> 0.85 EntityDataMatcher(EntityTypes.WARDEN, pose = EntityPose.ROARING) -> 2.4650002 EntityDataMatcher(EntityTypes.WARDEN, pose = EntityPose.SNIFFING) -> 2.4650002 EntityDataMatcher(EntityTypes.WARDEN, pose = EntityPose.STANDING) -> 2.4650002 - EntityDataMatcher(EntityTypes.WARDEN, pose = EntityPose.DIGGING) -> 0.85 - EntityDataMatcher(EntityTypes.WARDEN, pose = EntityPose.EMERGING) -> 0.85 + EntityDataMatcher(EntityTypes.WIND_CHARGE) -> 0.0 EntityDataMatcher(EntityTypes.WITCH) -> 1.62 - EntityDataMatcher(EntityTypes.WITHER) -> 2.9750001 + EntityDataMatcher(EntityTypes.WITHER) -> 2.975 EntityDataMatcher(EntityTypes.WITHER_SKELETON) -> 2.1 EntityDataMatcher(EntityTypes.WITHER_SKULL) -> 0.265625 - EntityDataMatcher(EntityTypes.WOLF, isBaby = true) -> 0.34 EntityDataMatcher(EntityTypes.WOLF, isBaby = false) -> 0.68 + EntityDataMatcher(EntityTypes.WOLF, isBaby = true) -> 0.34 EntityDataMatcher(EntityTypes.ZOGLIN, isBaby = true) -> 0.595 EntityDataMatcher(EntityTypes.ZOGLIN, isBaby = false) -> 1.19 - EntityDataMatcher(EntityTypes.ZOMBIE, isBaby = false) -> 1.74 EntityDataMatcher(EntityTypes.ZOMBIE, isBaby = true) -> 0.93 + EntityDataMatcher(EntityTypes.ZOMBIE, isBaby = false) -> 1.74 EntityDataMatcher(EntityTypes.ZOMBIE_HORSE, isBaby = false) -> 1.52 EntityDataMatcher(EntityTypes.ZOMBIE_HORSE, isBaby = true) -> 0.76 EntityDataMatcher(EntityTypes.ZOMBIE_VILLAGER, isBaby = true) -> 0.93 EntityDataMatcher(EntityTypes.ZOMBIE_VILLAGER, isBaby = false) -> 1.74 - EntityDataMatcher(EntityTypes.ZOMBIFIED_PIGLIN, isBaby = true) -> 0.96999997 EntityDataMatcher(EntityTypes.ZOMBIFIED_PIGLIN, isBaby = false) -> 1.79 + EntityDataMatcher(EntityTypes.ZOMBIFIED_PIGLIN, isBaby = true) -> 0.97 // else -> throw IllegalArgumentException("Could not find eye height for $this, please report this on the TypeWriter Discord!") } From de859f44ac7fe823ec115bef157c1f30ae882f04 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sun, 8 Sep 2024 18:56:16 +0200 Subject: [PATCH 09/41] Clean after testing --- .github/workflows/build-development-jars-and-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-development-jars-and-publish.yml b/.github/workflows/build-development-jars-and-publish.yml index bdd761edd8..50b3f3b766 100644 --- a/.github/workflows/build-development-jars-and-publish.yml +++ b/.github/workflows/build-development-jars-and-publish.yml @@ -30,7 +30,7 @@ jobs: - name: Test Extensions uses: gradle/gradle-build-action@v2 with: - arguments: test --scan + arguments: test clean --scan build-root-directory: ./extensions # ---------------------------------------------------------------------------------------------------- - name: Publish Engine to Beta Maven Repository From c0357d7e0260078f489a1f4d04e996a0e4be22fd Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sun, 8 Sep 2024 19:02:38 +0200 Subject: [PATCH 10/41] Continue if tag failed --- .github/workflows/build-development-jars-and-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-development-jars-and-publish.yml b/.github/workflows/build-development-jars-and-publish.yml index 50b3f3b766..eb7f9f621a 100644 --- a/.github/workflows/build-development-jars-and-publish.yml +++ b/.github/workflows/build-development-jars-and-publish.yml @@ -86,6 +86,7 @@ jobs: build-root-directory: ./engine - name: Add Tag uses: mathieudutour/github-tag-action@v6.2 + continue-on-error: true with: github_token: ${{ secrets.GITHUB_TOKEN }} default_bump: false From 4c9e64eb04e5d16e41beac2e5bb65b7b6571c3e4 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Sun, 8 Sep 2024 21:23:07 +0200 Subject: [PATCH 11/41] Make publish directory when not created --- .../com/typewritermc/engine/paper/entry/StagingManager.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt index fbd9f1e255..d5b94f50fb 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt @@ -284,6 +284,8 @@ class StagingManagerImpl : StagingManager, KoinComponent { return DISPATCHERS_ASYNC.switchContext { stagingState = PUBLISHING + if (!publishedDir.exists()) publishedDir.mkdirs() + try { pages.forEach { (name, page) -> val file = publishedDir["$name.json"] From 108afb0632cfce9ee48c42429a8f3fb88fdd06ae Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Mon, 9 Sep 2024 08:18:45 +0200 Subject: [PATCH 12/41] Make Generic Scale Data --- .../widgets/components/app/entry_search.dart | 3 +- .../entries/data/minecraft/GenericData.kt | 3 ++ .../data/minecraft/GlowingEffectData.kt | 2 + .../entries/data/minecraft/ScaleData.kt | 38 +++++++++++++++++++ .../data/minecraft/display/DisplayData.kt | 2 +- .../display/{ScaleData.kt => Scale3DData.kt} | 22 +++++------ 6 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/ScaleData.kt rename extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/{ScaleData.kt => Scale3DData.kt} (64%) diff --git a/app/lib/widgets/components/app/entry_search.dart b/app/lib/widgets/components/app/entry_search.dart index 398bcd4453..c5879109e3 100644 --- a/app/lib/widgets/components/app/entry_search.dart +++ b/app/lib/widgets/components/app/entry_search.dart @@ -425,8 +425,7 @@ class AddEntrySearchElement extends SearchElement { return await onAdd?.call(blueprint) ?? true; } final page = ref.read(currentPageProvider); - if (page == null) return false; - if (page.canHave(blueprint)) { + if (page != null && page.canHave(blueprint)) { return _createAndNavigate(ref, page, blueprint); } diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GenericData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GenericData.kt index 39580a9e61..ad49d883a4 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GenericData.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GenericData.kt @@ -1,6 +1,8 @@ package com.typewritermc.entity.entries.data.minecraft import com.typewritermc.engine.paper.entry.entries.EntityProperty +import com.typewritermc.entity.entries.data.minecraft.living.SizeProperty +import com.typewritermc.entity.entries.data.minecraft.living.applySizeData import me.tofaa.entitylib.wrapper.WrapperEntity @@ -11,6 +13,7 @@ fun applyGenericEntityData(entity: WrapperEntity, property: EntityProperty): Boo is PoseProperty -> applyPoseData(entity, property) is CustomNameProperty -> applyCustomNameData(entity, property) is ArmSwingProperty -> applyArmSwingData(entity, property) + is SizeProperty -> applySizeData(entity, property) else -> return false } diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GlowingEffectData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GlowingEffectData.kt index a70aae69e1..5e0100f2d9 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GlowingEffectData.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GlowingEffectData.kt @@ -3,6 +3,7 @@ package com.typewritermc.entity.entries.data.minecraft import com.typewritermc.core.books.pages.Colors import com.typewritermc.core.extension.annotations.Entry import com.typewritermc.core.extension.annotations.Help +import com.typewritermc.core.extension.annotations.Tags import com.typewritermc.engine.paper.entry.entity.SinglePropertyCollectorSupplier import com.typewritermc.engine.paper.entry.entries.EntityProperty import com.typewritermc.engine.paper.entry.entries.GenericEntityData @@ -14,6 +15,7 @@ import java.util.* import kotlin.reflect.KClass @Entry("glowing_effect_data", "If the entity is glowing", Colors.RED, "bi:lightbulb-fill") +@Tags("glowing_effect_data") class GlowingEffectData( override val id: String = "", override val name: String = "", diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/ScaleData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/ScaleData.kt new file mode 100644 index 0000000000..5c95a1d472 --- /dev/null +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/ScaleData.kt @@ -0,0 +1,38 @@ +package com.typewritermc.entity.entries.data.minecraft + +import com.github.retrooper.packetevents.protocol.attribute.Attributes +import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.extension.annotations.Default +import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.core.extension.annotations.Tags +import com.typewritermc.engine.paper.entry.entity.SinglePropertyCollectorSupplier +import com.typewritermc.engine.paper.entry.entries.EntityProperty +import com.typewritermc.engine.paper.entry.entries.GenericEntityData +import me.tofaa.entitylib.wrapper.WrapperEntity +import me.tofaa.entitylib.wrapper.WrapperLivingEntity +import org.bukkit.entity.Player +import java.util.* +import kotlin.reflect.KClass + +@Entry("scale_data", "Scale of an Entity", Colors.RED, "fa6-solid:scale-balanced") +@Tags("scale_data") +class ScaleData( + override val id: String = "", + override val name: String = "", + override val priorityOverride: Optional = Optional.empty(), + @Default("1.0") + val scale: Double = 1.0, +) : GenericEntityData { + override fun type(): KClass = ScaleProperty::class + override fun build(player: Player): ScaleProperty = ScaleProperty(scale) +} + +data class ScaleProperty(val scale: Double) : EntityProperty { + companion object : SinglePropertyCollectorSupplier(ScaleProperty::class, ScaleProperty(1.0)) +} + +fun applyScaleData(entity: WrapperEntity, property: ScaleProperty) { + // TODO: Remove this when EntityLib supports scale for all entities + if (entity !is WrapperLivingEntity) return + entity.attributes.setAttribute(Attributes.GENERIC_SCALE, property.scale) +} \ No newline at end of file diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/DisplayData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/DisplayData.kt index c86eb9eaac..46ff1ed290 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/DisplayData.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/DisplayData.kt @@ -12,7 +12,7 @@ fun applyDisplayEntityData(entity: WrapperEntity, property: EntityProperty): Boo when (property) { is TranslationProperty -> applyTranslationData(entity, property) is BillboardConstraintProperty -> applyBillboardConstraintData(entity, property) - is ScaleProperty -> applyScaleData(entity, property) + is Scale3DProperty -> applyScale3DData(entity, property) else -> return false } return true diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/ScaleData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/Scale3DData.kt similarity index 64% rename from extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/ScaleData.kt rename to extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/Scale3DData.kt index 9876a27caa..3fc6c70e3e 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/ScaleData.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/display/Scale3DData.kt @@ -3,7 +3,6 @@ package com.typewritermc.entity.entries.data.minecraft.display import com.typewritermc.core.utils.point.Vector import com.typewritermc.core.books.pages.Colors import com.typewritermc.core.extension.annotations.Entry -import com.typewritermc.core.extension.annotations.Help import com.typewritermc.core.extension.annotations.Tags import com.typewritermc.engine.paper.entry.entity.SinglePropertyCollectorSupplier import com.typewritermc.engine.paper.entry.entries.EntityProperty @@ -15,26 +14,25 @@ import org.bukkit.entity.Player import java.util.* import kotlin.reflect.KClass -@Entry("scale_data", "Scale of a Display.", Colors.RED, "mdi:resize") -@Tags("scale_data") - -class ScaleData( +@Entry("scale3d_data", "Scale of a Display.", Colors.RED, "mdi:resize") +@Tags("scale3d_data") +class Scale3DData( override val id: String = "", override val name: String = "", val scale: Vector = Vector(1.0, 1.0, 1.0), override val priorityOverride: Optional = Optional.empty(), -) : DisplayEntityData { - override fun type(): KClass = ScaleProperty::class +) : DisplayEntityData { + override fun type(): KClass = Scale3DProperty::class - override fun build(player: Player): ScaleProperty = - ScaleProperty(scale) + override fun build(player: Player): Scale3DProperty = + Scale3DProperty(scale) } -data class ScaleProperty(val scale: Vector) : EntityProperty { - companion object : SinglePropertyCollectorSupplier(ScaleProperty::class, ScaleProperty(Vector(1.0, 1.0, 1.0))) +data class Scale3DProperty(val scale: Vector) : EntityProperty { + companion object : SinglePropertyCollectorSupplier(Scale3DProperty::class, Scale3DProperty(Vector(1.0, 1.0, 1.0))) } -fun applyScaleData(entity: WrapperEntity, property: ScaleProperty) { +fun applyScale3DData(entity: WrapperEntity, property: Scale3DProperty) { entity.metas { meta { scale = property.scale.toPacketVector3f() } error("Could not apply ScaleData to ${entity.entityType} entity.") From 05dee3a605d5a37564ff7189f425da3c52322671 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Mon, 9 Sep 2024 12:25:10 +0200 Subject: [PATCH 13/41] Add Game Time & Weather Cinematic Entries --- .../engine/paper/utils/PlayerState.kt | 5 + .../cinematic/GameTimeCinematicEntry.kt | 138 ++++++++++++++++++ .../cinematic/GameWeatherCinematicEntry.kt | 54 +++++++ .../data/minecraft/{ => living}/ScaleData.kt | 0 4 files changed, 197 insertions(+) create mode 100644 extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/GameTimeCinematicEntry.kt create mode 100644 extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/GameWeatherCinematicEntry.kt rename extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/{ => living}/ScaleData.kt (100%) diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/PlayerState.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/PlayerState.kt index 780fedb38d..0d68791eea 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/PlayerState.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/PlayerState.kt @@ -1,6 +1,7 @@ package com.typewritermc.engine.paper.utils import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSetSlot +import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerTimeUpdate import io.github.retrooper.packetevents.util.SpigotReflectionUtil import com.typewritermc.engine.paper.extensions.packetevents.sendPacketTo import com.typewritermc.engine.paper.plugin @@ -29,6 +30,10 @@ enum class GenericPlayerStateProvider(private val store: Player.() -> Any, priva LEVEL({ level }, { level = it as Int }), ALLOW_FLIGHT({ allowFlight }, { allowFlight = it as Boolean }), FLYING({ isFlying }, { isFlying = it as Boolean }), + GAME_TIME({ playerTime }, { + resetPlayerTime() + WrapperPlayServerTimeUpdate(world.gameTime, playerTime).sendPacketTo(this) + }), // All Players that are visible to the player VISIBLE_PLAYERS({ diff --git a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/GameTimeCinematicEntry.kt b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/GameTimeCinematicEntry.kt new file mode 100644 index 0000000000..0905779127 --- /dev/null +++ b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/GameTimeCinematicEntry.kt @@ -0,0 +1,138 @@ +package com.typewritermc.basic.entries.cinematic + +import com.github.retrooper.packetevents.protocol.packettype.PacketType +import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerTimeUpdate +import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.core.extension.annotations.Segments +import com.typewritermc.core.utils.point.squared +import com.typewritermc.engine.paper.entry.Criteria +import com.typewritermc.engine.paper.entry.cinematic.SimpleCinematicAction +import com.typewritermc.engine.paper.entry.entries.CinematicAction +import com.typewritermc.engine.paper.entry.entries.PrimaryCinematicEntry +import com.typewritermc.engine.paper.entry.entries.Segment +import com.typewritermc.engine.paper.extensions.packetevents.sendPacketTo +import com.typewritermc.engine.paper.interaction.InterceptionBundle +import com.typewritermc.engine.paper.interaction.interceptPackets +import com.typewritermc.engine.paper.utils.GenericPlayerStateProvider.GAME_TIME +import com.typewritermc.engine.paper.utils.PlayerState +import com.typewritermc.engine.paper.utils.restore +import com.typewritermc.engine.paper.utils.state +import org.bukkit.entity.Player +import kotlin.math.pow + +@Entry("game_time_cinematic", "A cinematic that changes the in game time", Colors.CYAN, "material-symbols:auto-timer") +/** + * The `GameTimeCinematicEntry` is an entry that changes the in game time during a cinematic. + * + * The time on the segment is the in game time in ticks at the end of the segment. + * It will do an easing animation to the time. + * + * The total time of a Minecraft day is `24000` ticks. + * Some examples of times are: + * ------------------------------ + * | Time of day | Ticks | + * |-------------|--------------| + * | Dawn | 0 | + * | Noon | 6000 | + * | Dusk | 12000 | + * | Midnight | 18000 | + * ------------------------------ + * + * ## How could this be used? + * This can be used to simulate the time passing during a cinematic. + */ +class GameTimeCinematicEntry( + override val id: String = "", + override val name: String = "", + override val criteria: List = emptyList(), + @Segments(Colors.CYAN, "material-symbols:auto-timer") + val segments: List = emptyList(), +) : PrimaryCinematicEntry { + override fun create(player: Player): CinematicAction = GameTimeCinematicAction(player, this) +} + +data class GameTimeSegment( + override val startFrame: Int = 0, + override val endFrame: Int = 0, + val time: Int = 0, +) : Segment + +class GameTimeCinematicAction( + val player: Player, + entry: GameTimeCinematicEntry, +) : SimpleCinematicAction() { + override val segments: List = entry.segments + + private var state: PlayerState? = null + + private var tracker: TimeTracker? = null + private var interceptor: InterceptionBundle? = null + + override suspend fun setup() { + super.setup() + state = player.state(GAME_TIME) + } + + override suspend fun startSegment(segment: GameTimeSegment) { + super.startSegment(segment) + tracker = TimeTracker(player.playerTime, player.playerTime - (player.playerTime % 24000) + segment.time) + + // Since minecraft sends the time update packet every 20 ticks, we can't use it and needs to send our own. + // But it twitches when we still allow that packet to be sent. Therefore, we want to make sure that the send time is correct. + interceptor = player.interceptPackets { + PacketType.Play.Server.TIME_UPDATE { event -> + val packet = WrapperPlayServerTimeUpdate(event) + tracker?.let { packet.timeOfDay = it.lastTime } + } + } + } + + + override suspend fun stopSegment(segment: GameTimeSegment) { + super.stopSegment(segment) + // We don't reset the time for the player since it is likely we want to keep the time set to this. + // Otherwise, why change it? + interceptor?.cancel() + player.setPlayerTime(segment.time.toLong(), false) + tracker = null + } + + override suspend fun tickSegment(segment: GameTimeSegment, frame: Int) { + super.tickSegment(segment, frame) + + val percentage = (frame - segment.startFrame).toDouble() / (segment.endFrame - segment.startFrame) + val easedPercentage = percentage.easeInOutQuad() + val time = tracker?.time(easedPercentage) ?: return + player.setPlayerTime(time, false) + WrapperPlayServerTimeUpdate(player.world.gameTime, time).sendPacketTo(player) + } + + override suspend fun teardown() { + super.teardown() + player.restore(state) + } + + +} + +private data class TimeTracker( + val startTime: Long, + val endTime: Long, +) { + var lastTime: Long = startTime + private set + + fun time(percent: Double): Long { + lastTime = startTime + ((endTime - startTime) * percent).toLong() + return lastTime + } +} + +private fun Double.easeInOutQuad(): Double { + return if (this < 0.5) { + 2 * this * this + } else { + 1 - (-2 * this + 2).squared() / 2 + } +} \ No newline at end of file diff --git a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/GameWeatherCinematicEntry.kt b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/GameWeatherCinematicEntry.kt new file mode 100644 index 0000000000..90ff70e6a0 --- /dev/null +++ b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/GameWeatherCinematicEntry.kt @@ -0,0 +1,54 @@ +package com.typewritermc.basic.entries.cinematic + +import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.extension.annotations.Default +import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.core.extension.annotations.Segments +import com.typewritermc.engine.paper.entry.Criteria +import com.typewritermc.engine.paper.entry.cinematic.SimpleCinematicAction +import com.typewritermc.engine.paper.entry.entries.CinematicAction +import com.typewritermc.engine.paper.entry.entries.CinematicEntry +import com.typewritermc.engine.paper.entry.entries.Segment +import org.bukkit.WeatherType +import org.bukkit.entity.Player + +@Entry("game_weather_cinematic", "A cinematic that changes the weather", Colors.CYAN, "fluent:weather-rain-showers-day-24-filled") +/** + * The `GameWeatherCinematicEntry` is an entry that changes the weather during a cinematic. + * + * ## How could this be used? + * This can be used to simulate the weather changing during a cinematic. + */ +class GameWeatherCinematicEntry( + override val id: String = "", + override val name: String = "", + override val criteria: List = emptyList(), + @Segments(Colors.CYAN, "fluent:weather-rain-showers-day-24-filled") + val segments: List = emptyList(), +) : CinematicEntry { + override fun create(player: Player): CinematicAction = GameWeatherCinematicAction(player, this) +} + +data class GameWeatherSegment( + override val startFrame: Int = 0, + override val endFrame: Int = 0, + @Default("\"DOWNFALL\"") + val weather: WeatherType = WeatherType.DOWNFALL, +) : Segment + +class GameWeatherCinematicAction( + val player: Player, + entry: GameWeatherCinematicEntry, +) : SimpleCinematicAction() { + override val segments: List = entry.segments + + override suspend fun startSegment(segment: GameWeatherSegment) { + super.startSegment(segment) + player.setPlayerWeather(segment.weather) + } + + override suspend fun stopSegment(segment: GameWeatherSegment) { + super.stopSegment(segment) + player.resetPlayerWeather() + } +} \ No newline at end of file diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/ScaleData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/ScaleData.kt similarity index 100% rename from extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/ScaleData.kt rename to extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/ScaleData.kt From 647700540dc08be10fa6a787b979d66c3de60fed Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Mon, 9 Sep 2024 12:25:22 +0200 Subject: [PATCH 14/41] Create ScaleData Entry --- .../entity/entries/data/minecraft/GenericData.kt | 1 - .../entries/data/minecraft/living/EquipmentData.kt | 3 +-- .../entries/data/minecraft/living/LivingData.kt | 3 +++ .../entity/entries/data/minecraft/living/ScaleData.kt | 11 ++++------- .../entity/entries/data/minecraft/living/SizeData.kt | 2 ++ 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GenericData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GenericData.kt index ad49d883a4..bbd0511328 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GenericData.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/GenericData.kt @@ -13,7 +13,6 @@ fun applyGenericEntityData(entity: WrapperEntity, property: EntityProperty): Boo is PoseProperty -> applyPoseData(entity, property) is CustomNameProperty -> applyCustomNameData(entity, property) is ArmSwingProperty -> applyArmSwingData(entity, property) - is SizeProperty -> applySizeData(entity, property) else -> return false } diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/EquipmentData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/EquipmentData.kt index e21eda4188..d11bdc2ac1 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/EquipmentData.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/EquipmentData.kt @@ -84,8 +84,7 @@ private class EquipmentCollector( fun org.bukkit.inventory.ItemStack.toProperty(equipmentSlot: EquipmentSlot) = EquipmentProperty(equipmentSlot, this.toPacketItem()) -fun applyEquipmentData(entity: WrapperEntity, property: EquipmentProperty) { - if (entity !is WrapperLivingEntity) return +fun applyEquipmentData(entity: WrapperLivingEntity, property: EquipmentProperty) { property.data.forEach { (slot, item) -> if (item.isEmpty) entity.equipment.setItem(slot, null) else entity.equipment.setItem(slot, item) diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/LivingData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/LivingData.kt index b44222a70b..cbf24a6213 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/LivingData.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/LivingData.kt @@ -2,10 +2,13 @@ package com.typewritermc.entity.entries.data.minecraft.living import com.typewritermc.engine.paper.entry.entries.EntityProperty import me.tofaa.entitylib.wrapper.WrapperEntity +import me.tofaa.entitylib.wrapper.WrapperLivingEntity fun applyLivingEntityData(entity: WrapperEntity, property: EntityProperty): Boolean { + if (entity !is WrapperLivingEntity) return false when (property) { is EquipmentProperty -> applyEquipmentData(entity, property) + is ScaleProperty -> applyScaleData(entity, property) else -> return false } diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/ScaleData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/ScaleData.kt index 5c95a1d472..0f78707f3c 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/ScaleData.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/ScaleData.kt @@ -1,4 +1,4 @@ -package com.typewritermc.entity.entries.data.minecraft +package com.typewritermc.entity.entries.data.minecraft.living import com.github.retrooper.packetevents.protocol.attribute.Attributes import com.typewritermc.core.books.pages.Colors @@ -7,8 +7,7 @@ import com.typewritermc.core.extension.annotations.Entry import com.typewritermc.core.extension.annotations.Tags import com.typewritermc.engine.paper.entry.entity.SinglePropertyCollectorSupplier import com.typewritermc.engine.paper.entry.entries.EntityProperty -import com.typewritermc.engine.paper.entry.entries.GenericEntityData -import me.tofaa.entitylib.wrapper.WrapperEntity +import com.typewritermc.engine.paper.entry.entries.LivingEntityData import me.tofaa.entitylib.wrapper.WrapperLivingEntity import org.bukkit.entity.Player import java.util.* @@ -22,7 +21,7 @@ class ScaleData( override val priorityOverride: Optional = Optional.empty(), @Default("1.0") val scale: Double = 1.0, -) : GenericEntityData { +) : LivingEntityData { override fun type(): KClass = ScaleProperty::class override fun build(player: Player): ScaleProperty = ScaleProperty(scale) } @@ -31,8 +30,6 @@ data class ScaleProperty(val scale: Double) : EntityProperty { companion object : SinglePropertyCollectorSupplier(ScaleProperty::class, ScaleProperty(1.0)) } -fun applyScaleData(entity: WrapperEntity, property: ScaleProperty) { - // TODO: Remove this when EntityLib supports scale for all entities - if (entity !is WrapperLivingEntity) return +fun applyScaleData(entity: WrapperLivingEntity, property: ScaleProperty) { entity.attributes.setAttribute(Attributes.GENERIC_SCALE, property.scale) } \ No newline at end of file diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/SizeData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/SizeData.kt index acd4be6408..110159427a 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/SizeData.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/SizeData.kt @@ -1,6 +1,7 @@ package com.typewritermc.entity.entries.data.minecraft.living import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.extension.annotations.Default import com.typewritermc.core.extension.annotations.Entry import com.typewritermc.core.extension.annotations.Tags import com.typewritermc.engine.paper.entry.entity.SinglePropertyCollectorSupplier @@ -19,6 +20,7 @@ import kotlin.reflect.KClass class SizeData( override val id: String = "", override val name: String = "", + @Default("1") val size: Int = 1, override val priorityOverride: Optional = Optional.empty(), ) : EntityData { From 83ae01aafbc81074f0d28dbf9948b61da2f023f8 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Mon, 9 Sep 2024 12:25:29 +0200 Subject: [PATCH 15/41] Fix routing after creating a page --- app/lib/pages/pages_list.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/pages/pages_list.dart b/app/lib/pages/pages_list.dart index 32e40de44c..4bd0980e79 100644 --- a/app/lib/pages/pages_list.dart +++ b/app/lib/pages/pages_list.dart @@ -700,7 +700,7 @@ class AddPageDialogue extends HookConsumerWidget { .createPage(name, type, chapter, priority); if (!autoNavigate) return page.id; - unawaited(ref.read(appRouter).push(PageEditorRoute(id: name))); + unawaited(ref.read(appRouter).push(PageEditorRoute(id: page.id))); return page.id; } From fa823d672a33e81b04398cb4ddf763a08cfb9d82 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 08:05:49 +0200 Subject: [PATCH 16/41] Change capitalisation in panel --- app/lib/utils/cron.dart | 2 +- app/lib/utils/extensions.dart | 12 +++----- .../components/app/cinematic_view.dart | 2 +- app/lib/widgets/inspector/editors/item.dart | 29 +++++++++---------- app/pubspec.lock | 20 +++++++++---- app/pubspec.yaml | 1 + 6 files changed, 35 insertions(+), 31 deletions(-) diff --git a/app/lib/utils/cron.dart b/app/lib/utils/cron.dart index 531fa32f03..2512c41855 100644 --- a/app/lib/utils/cron.dart +++ b/app/lib/utils/cron.dart @@ -141,7 +141,7 @@ class CronExpression { text += dayOfWeek.toHumanReadableString(); } - return text.capitalize; + return text.titleCase(); } /// Parses a cron expression from a string. diff --git a/app/lib/utils/extensions.dart b/app/lib/utils/extensions.dart index 28617f87d2..29ce809a9a 100644 --- a/app/lib/utils/extensions.dart +++ b/app/lib/utils/extensions.dart @@ -1,5 +1,6 @@ import "dart:math"; +import "package:dart_casing/dart_casing.dart"; import "package:flutter/material.dart"; import "package:flutter/services.dart"; @@ -8,19 +9,14 @@ extension BuildContextExtension on BuildContext { } extension StringExtension on String { - String get capitalize { + String titleCase() { if (isEmpty) return this; - return "${this[0].toUpperCase()}${substring(1)}"; + return Casing.titleCase(this); } String get formatted { if (isEmpty) return this; - return split(".") - .map((e) => e.capitalize) - .join(" | ") - .split("_") - .map((e) => e.capitalize) - .join(" "); + return split(".").map(Casing.titleCase).join(" | ").titleCase(); } String get singular { diff --git a/app/lib/widgets/components/app/cinematic_view.dart b/app/lib/widgets/components/app/cinematic_view.dart index 0a957b764e..bc3d280e45 100644 --- a/app/lib/widgets/components/app/cinematic_view.dart +++ b/app/lib/widgets/components/app/cinematic_view.dart @@ -258,7 +258,7 @@ List _entryContextActions( .split(".") .lastOrNull ?.singular - .capitalize ?? + .titleCase() ?? path; final modifierData = modifier.data; diff --git a/app/lib/widgets/inspector/editors/item.dart b/app/lib/widgets/inspector/editors/item.dart index 733c936a1f..fcf7765c4f 100644 --- a/app/lib/widgets/inspector/editors/item.dart +++ b/app/lib/widgets/inspector/editors/item.dart @@ -97,8 +97,7 @@ class _FieldSelector extends HookConsumerWidget { children: [ for (final MapEntry(key: id, value: dataBlueprint) in objectBlueprint.fields.entries) - if (showAll || selected.contains(id)) - _chip(id, dataBlueprint), + if (showAll || selected.contains(id)) _chip(id, dataBlueprint), ].animate(interval: 40.ms).fadeIn(duration: 250.ms).scaleXY( begin: 0.6, end: 1.0, @@ -112,18 +111,18 @@ class _FieldSelector extends HookConsumerWidget { } Widget _chip(String id, DataBlueprint dataBlueprint) { - if (dataBlueprint is! CustomBlueprint) return const SizedBox(); - final shapeBlueprint = dataBlueprint.shape; - if (shapeBlueprint is! ObjectBlueprint) return const SizedBox(); - if (!shapeBlueprint.fields.containsKey("value")) return const SizedBox(); - final valueBlueprint = shapeBlueprint.fields["value"]; - if (valueBlueprint == null) return const SizedBox(); - return _ItemChip( - key: ValueKey(id), - path: "$path.$id", - id: id, - dataBlueprint: valueBlueprint, - ); + if (dataBlueprint is! CustomBlueprint) return const SizedBox(); + final shapeBlueprint = dataBlueprint.shape; + if (shapeBlueprint is! ObjectBlueprint) return const SizedBox(); + if (!shapeBlueprint.fields.containsKey("value")) return const SizedBox(); + final valueBlueprint = shapeBlueprint.fields["value"]; + if (valueBlueprint == null) return const SizedBox(); + return _ItemChip( + key: ValueKey(id), + path: "$path.$id", + id: id, + dataBlueprint: valueBlueprint, + ); } } @@ -148,7 +147,7 @@ class _ItemChip extends HookConsumerWidget { : Theme.of(context).colorScheme.onSurface.withOpacity(0.7); return InputChip( - label: Text(id.capitalize, style: TextStyle(color: foregroundColor)), + label: Text(id.titleCase(), style: TextStyle(color: foregroundColor)), avatar: Iconify( dataBlueprint.get("icon"), size: 14, diff --git a/app/pubspec.lock b/app/pubspec.lock index dacbec3b54..e50d77b335 100644 --- a/app/pubspec.lock +++ b/app/pubspec.lock @@ -314,18 +314,18 @@ packages: dependency: "direct dev" description: name: custom_lint - sha256: "4939d89e580c36215e48a7de8fd92f22c79dcc3eb11fda84f3402b3b45aec663" + sha256: "6e1ec47427ca968f22bce734d00028ae7084361999b41673291138945c5baca0" url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.7" custom_lint_builder: dependency: transitive description: name: custom_lint_builder - sha256: d9e5bb63ed52c1d006f5a1828992ba6de124c27a531e8fba0a31afffa81621b3 + sha256: ba2f90fff4eff71d202d097eb14b14f87087eaaef742e956208c0eb9d3a40a21 url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.7" custom_lint_core: dependency: transitive description: @@ -334,14 +334,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.5" + dart_casing: + dependency: "direct main" + description: + name: dart_casing + sha256: "653573035e25d8dd414056bee16a7d10bedc32dbb8f519199450f552218881a0" + url: "https://pub.dev" + source: hosted + version: "3.0.1" dart_style: dependency: transitive description: name: dart_style - sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "2.3.7" dotted_border: dependency: "direct main" description: diff --git a/app/pubspec.yaml b/app/pubspec.yaml index b8d207babd..5fd58eaf68 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -45,6 +45,7 @@ dependencies: url: https://github.com/mchome/flutter_colorpicker ref: master indent: ^2.0.0 + dart_casing: ^3.0.1 dev_dependencies: flutter_test: From 5d2a4dc6a673643e42cd6afe0888bc30e0650c7d Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 08:08:10 +0200 Subject: [PATCH 17/41] Fixed issue in Enum blueprint also counting other interfaces --- .../com/typewritermc/processors/entry/DataBlueprint.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/DataBlueprint.kt b/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/DataBlueprint.kt index 7b7814e067..f60cc30fba 100644 --- a/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/DataBlueprint.kt +++ b/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/DataBlueprint.kt @@ -95,6 +95,7 @@ sealed class DataBlueprint { val values = clazz.declarations .filterIsInstance() + .filter { it.classKind == ClassKind.ENUM_ENTRY } .map { it.serializedName } .toList() @@ -324,12 +325,9 @@ enum class PrimitiveType { } } -class CouldNotFindBlueprintException(val property: String, val parameter: KSType, val location: Location) : +class CouldNotFindBlueprintException(property: String, parameter: KSType, location: Location) : Exception("Could not find blueprint for $property with type ${parameter.fullName} at ${location.format}") -class CouldNotFindArgumentTypeException(parameter: String, argument: KSTypeArgument) : - Exception("Could not find argument type for type $parameter $argument at ${argument.location.format}, Generics are not yet supported") - class InvalidDefaultValueException(message: String) : Exception(message) class InvalidKeyTypeException(type: KSType, blueprint: DataBlueprint, supported: String) : From 15ecdf68d33c736076f2c35daddd5b242a893436 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 08:07:57 +0200 Subject: [PATCH 18/41] Changed Float Range Editor to generic Closed Range Editor --- app/lib/models/entry_blueprint.dart | 4 +- app/lib/widgets/inspector/editors.dart | 4 +- .../inspector/editors/closed_range.dart | 82 +++++++++++++++++++ .../inspector/editors/float_range.dart | 63 -------------- .../engine/paper/loader/DataSerializer.kt | 3 +- .../serializers/ClosedRangeSerializer.kt | 50 +++++++++++ .../serializers/FloatRangeSerializer.kt | 35 -------- .../activity/RandomLookActivityEntry.kt | 13 +-- .../processors/entry/CustomEditor.kt | 2 +- .../entry/editors/ClosedRangeEditor.kt | 46 +++++++++++ .../entry/editors/FloatRangeEditor.kt | 47 ----------- 11 files changed, 192 insertions(+), 157 deletions(-) create mode 100644 app/lib/widgets/inspector/editors/closed_range.dart delete mode 100644 app/lib/widgets/inspector/editors/float_range.dart create mode 100644 engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/serializers/ClosedRangeSerializer.kt delete mode 100644 engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/serializers/FloatRangeSerializer.kt create mode 100644 module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/editors/ClosedRangeEditor.kt delete mode 100644 module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/editors/FloatRangeEditor.kt diff --git a/app/lib/models/entry_blueprint.dart b/app/lib/models/entry_blueprint.dart index 67fd9afb51..f5ae01a2b4 100644 --- a/app/lib/models/entry_blueprint.dart +++ b/app/lib/models/entry_blueprint.dart @@ -260,7 +260,7 @@ final _customEditorCustomLayout = [ "item", "skin", "color", - "floatRange", + "closedRange", ]; /// Since freezed does not support methods on data models, we have to create a separate extension class. @@ -270,7 +270,7 @@ extension DataBlueprintExtension on DataBlueprint { (_) => null, primitive: (data) { if (data.type.validate(data.internalDefaultValue)) { - return data.defaultValue; + return data.internalDefaultValue; } return _defaultPrimitiveValue(data.type); }, diff --git a/app/lib/widgets/inspector/editors.dart b/app/lib/widgets/inspector/editors.dart index e12a092c2b..25ef6d38b1 100644 --- a/app/lib/widgets/inspector/editors.dart +++ b/app/lib/widgets/inspector/editors.dart @@ -3,12 +3,12 @@ import "package:riverpod_annotation/riverpod_annotation.dart"; import "package:typewriter/models/entry_blueprint.dart"; import "package:typewriter/utils/extensions.dart"; import "package:typewriter/widgets/inspector/editors/boolean.dart"; +import "package:typewriter/widgets/inspector/editors/closed_range.dart"; import "package:typewriter/widgets/inspector/editors/color.dart"; import "package:typewriter/widgets/inspector/editors/cron.dart"; import "package:typewriter/widgets/inspector/editors/duration.dart"; import "package:typewriter/widgets/inspector/editors/entry_selector.dart"; import "package:typewriter/widgets/inspector/editors/enum.dart"; -import "package:typewriter/widgets/inspector/editors/float_range.dart"; import "package:typewriter/widgets/inspector/editors/item.dart"; import "package:typewriter/widgets/inspector/editors/list.dart"; import "package:typewriter/widgets/inspector/editors/location.dart"; @@ -47,13 +47,13 @@ List editorFilters(EditorFiltersRef ref) => [ VectorEditorFilter(), DurationEditorFilter(), CronEditorFilter(), + ClosedRangeFilter(), PotionEffectEditorFilter(), ItemEditorFilter(), SoundIdEditorFilter(), SoundSourceEditorFilter(), SkinEditorFilter(), ColorEditorFilter(), - FloatRangeFilter(), // Default filters StringEditorFilter(), diff --git a/app/lib/widgets/inspector/editors/closed_range.dart b/app/lib/widgets/inspector/editors/closed_range.dart new file mode 100644 index 0000000000..de6de25325 --- /dev/null +++ b/app/lib/widgets/inspector/editors/closed_range.dart @@ -0,0 +1,82 @@ +import "package:flutter/material.dart"; +import "package:hooks_riverpod/hooks_riverpod.dart"; +import "package:typewriter/models/entry_blueprint.dart"; +import "package:typewriter/utils/icons.dart"; +import "package:typewriter/widgets/components/general/iconify.dart"; +import "package:typewriter/widgets/inspector/editors.dart"; +import "package:typewriter/widgets/inspector/editors/field.dart"; +import "package:typewriter/widgets/inspector/header.dart"; +import "package:typewriter/widgets/inspector/headers/info_action.dart"; + +class ClosedRangeFilter extends EditorFilter { + @override + bool canEdit(DataBlueprint dataBlueprint) => + dataBlueprint is CustomBlueprint && dataBlueprint.editor == "closedRange"; + + @override + Widget build(String path, DataBlueprint dataBlueprint) => ClosedRangeEditor( + path: path, + customBlueprint: dataBlueprint as CustomBlueprint, + ); +} + +class ClosedRangeEditor extends HookConsumerWidget { + const ClosedRangeEditor({ + required this.path, + required this.customBlueprint, + super.key, + }); + final String path; + + final CustomBlueprint customBlueprint; + + DataBlueprint get startBlueprint { + final object = customBlueprint.shape as ObjectBlueprint; + return object.fields["start"]!; + } + + DataBlueprint get endBlueprint { + final object = customBlueprint.shape as ObjectBlueprint; + return object.fields["end"]!; + } + + @override + Widget build(BuildContext context, WidgetRef ref) { + return FieldHeader( + path: path, + dataBlueprint: customBlueprint, + trailing: const [ + InfoHeaderAction( + tooltip: "From start to end inclusive", + icon: TWIcons.inclusive, + color: Color(0xFF0ccf92), + url: "", + ), + ], + child: LayoutBuilder( + builder: (context, constraints) { + final width = (constraints.maxWidth - 24) / 2; + return Row( + children: [ + SizedBox( + width: width, + child: FieldEditor( + path: "$path.start", + dataBlueprint: startBlueprint, + ), + ), + const Iconify(TWIcons.range), + SizedBox( + width: width, + child: FieldEditor( + path: "$path.end", + dataBlueprint: endBlueprint, + ), + ), + ], + ); + }, + ), + ); + } +} diff --git a/app/lib/widgets/inspector/editors/float_range.dart b/app/lib/widgets/inspector/editors/float_range.dart deleted file mode 100644 index 3f3f058b77..0000000000 --- a/app/lib/widgets/inspector/editors/float_range.dart +++ /dev/null @@ -1,63 +0,0 @@ -import "package:flutter/material.dart"; -import "package:hooks_riverpod/hooks_riverpod.dart"; -import "package:typewriter/models/entry_blueprint.dart"; -import "package:typewriter/utils/icons.dart"; -import "package:typewriter/widgets/components/app/cord_property.dart"; -import "package:typewriter/widgets/components/general/iconify.dart"; -import "package:typewriter/widgets/inspector/editors.dart"; -import "package:typewriter/widgets/inspector/header.dart"; -import "package:typewriter/widgets/inspector/headers/info_action.dart"; - -class FloatRangeFilter extends EditorFilter { - @override - bool canEdit(DataBlueprint dataBlueprint) => - dataBlueprint is CustomBlueprint && dataBlueprint.editor == "floatRange"; - - @override - Widget build(String path, DataBlueprint dataBlueprint) => FloatRangeEditor( - path: path, - customBlueprint: dataBlueprint as CustomBlueprint, - ); -} - -class FloatRangeEditor extends HookConsumerWidget { - const FloatRangeEditor({ - required this.path, - required this.customBlueprint, - super.key, - }); - final String path; - - final CustomBlueprint customBlueprint; - - @override - Widget build(BuildContext context, WidgetRef ref) { - return FieldHeader( - path: path, - dataBlueprint: customBlueprint, - trailing: const [ - InfoHeaderAction( - tooltip: "Max is included in the range.", - icon: TWIcons.inclusive, - color: Color(0xFF0ccf92), - url: "", - ), - ], - child: Row( - children: [ - CordPropertyEditor( - path: "$path.start", - label: "Min", - color: Colors.red, - ), - const Iconify(TWIcons.range), - CordPropertyEditor( - path: "$path.end", - label: "Max", - color: Colors.green, - ), - ], - ), - ); - } -} diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/DataSerializer.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/DataSerializer.kt index 4fad25a75c..8d0906d8dc 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/DataSerializer.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/DataSerializer.kt @@ -5,13 +5,12 @@ import com.typewritermc.loader.DataSerializer import org.koin.core.module.Module import org.koin.core.qualifier.named - fun Module.dataSerializers() { + single>(named("closedRange")) { ClosedRangeSerializer() } single>(named("color")) { ColorSerializer() } single>(named("cronExpression")) { CronExpressionSerializer() } single>(named("duration")) { DurationSerializer() } single>(named("entryReference")) { EntryReferenceSerializer() } - single>(named("floatRange")) { FloatRangeSerializer() } single>(named("optional")) { OptionalSerializer() } single>(named("potionEffectType")) { PotionEffectTypeSerializer() } single>(named("skinProperty")) { SkinPropertySerializer() } diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/serializers/ClosedRangeSerializer.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/serializers/ClosedRangeSerializer.kt new file mode 100644 index 0000000000..2c4d76b7a1 --- /dev/null +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/serializers/ClosedRangeSerializer.kt @@ -0,0 +1,50 @@ +package com.typewritermc.engine.paper.loader.serializers + +import com.google.gson.JsonDeserializationContext +import com.google.gson.JsonElement +import com.google.gson.JsonObject +import com.google.gson.JsonSerializationContext +import com.typewritermc.loader.DataSerializer +import java.lang.reflect.ParameterizedType +import java.lang.reflect.Type + +class ClosedRangeSerializer : DataSerializer> { + override val type: Type = ClosedRange::class.java + + override fun serialize(src: ClosedRange<*>?, typeOfSrc: Type?, context: JsonSerializationContext?): JsonElement { + val obj = JsonObject() + obj.add("start", context?.serialize(src?.start)) + obj.add("end", context?.serialize(src?.endInclusive)) + return obj + } + + override fun deserialize(json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext?): ClosedRange<*> { + val obj = json?.asJsonObject ?: JsonObject() + + val actualType = (typeOfT as? ParameterizedType)?.actualTypeArguments?.get(0) + + val start: Any? = context?.deserialize(obj["start"], actualType) + val end: Any? = context?.deserialize(obj["end"], actualType) + + if (start == null || end == null) { + throw IllegalArgumentException("Invalid range") + } + + val range = when (actualType?.typeName) { + "java.lang.Integer" -> start as Int..end as Int + "java.lang.Short" -> start as Short..end as Short + "java.lang.Byte" -> start as Byte..end as Byte + "java.lang.Long" -> start as Long..end as Long + "java.lang.Double" -> start as Double..end as Double + "java.lang.Float" -> start as Float..end as Float + else -> null + } + if (range != null) return range + + if (actualType is Class<*> && Comparable::class.java.isAssignableFrom(actualType)) { + return start as Comparable..end as Comparable + } + + throw IllegalArgumentException("Invalid range type for $actualType") + } +} \ No newline at end of file diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/serializers/FloatRangeSerializer.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/serializers/FloatRangeSerializer.kt deleted file mode 100644 index a707cf0b87..0000000000 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/loader/serializers/FloatRangeSerializer.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.typewritermc.engine.paper.loader.serializers - -import com.google.gson.JsonDeserializationContext -import com.google.gson.JsonElement -import com.google.gson.JsonObject -import com.google.gson.JsonSerializationContext -import com.google.gson.reflect.TypeToken -import com.typewritermc.loader.DataSerializer -import java.lang.reflect.Type - -class FloatRangeSerializer : DataSerializer> { - override val type: Type = object : TypeToken>() {}.type - - override fun serialize( - src: ClosedFloatingPointRange?, - typeOfSrc: Type?, - context: JsonSerializationContext? - ): JsonElement { - val obj = JsonObject() - obj.addProperty("start", src?.start ?: 0f) - obj.addProperty("end", src?.endInclusive ?: 0f) - return obj - } - - override fun deserialize( - json: JsonElement?, - typeOfT: Type?, - context: JsonDeserializationContext? - ): ClosedFloatingPointRange { - val obj = json?.asJsonObject ?: JsonObject() - val start = obj.get("start")?.asFloat ?: 0f - val end = obj.get("end")?.asFloat ?: 0f - return start..end - } -} \ No newline at end of file diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/RandomLookActivityEntry.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/RandomLookActivityEntry.kt index 73ecd1a372..3463742250 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/RandomLookActivityEntry.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/RandomLookActivityEntry.kt @@ -1,6 +1,7 @@ package com.typewritermc.entity.entries.activity import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.extension.annotations.Default import com.typewritermc.core.extension.annotations.Entry import com.typewritermc.core.extension.annotations.Help import com.typewritermc.engine.paper.entry.entity.* @@ -18,8 +19,10 @@ import kotlin.random.Random class RandomLookActivityEntry( override val id: String = "", override val name: String = "", - val pitchRange: ClosedFloatingPointRange = -90f..90f, - val yawRange: ClosedFloatingPointRange = -180f..180f, + @Default("{\"start\": -90.0, \"end\": 90.0}") + val pitchRange: ClosedRange = -90f..90f, + @Default("{\"start\": -180.0, \"end\": 180.0}") + val yawRange: ClosedRange = -180f..180f, @Help("The duration between each look") val duration: Duration = Duration.ofSeconds(2), ) : GenericEntityActivityEntry { @@ -29,8 +32,8 @@ class RandomLookActivityEntry( } class RandomLookActivity( - private val pitchRange: ClosedFloatingPointRange, - private val yawRange: ClosedFloatingPointRange, + private val pitchRange: ClosedRange, + private val yawRange: ClosedRange, private val duration: Duration, override var currentPosition: PositionProperty, ) : GenericEntityActivity { @@ -69,6 +72,6 @@ class RandomLookActivity( override fun dispose(context: ActivityContext) {} } -fun ClosedFloatingPointRange.random(): Float { +fun ClosedRange.random(): Float { return start + (endInclusive - start) * Random.nextFloat() } \ No newline at end of file diff --git a/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/CustomEditor.kt b/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/CustomEditor.kt index 716be90555..073716e684 100644 --- a/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/CustomEditor.kt +++ b/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/CustomEditor.kt @@ -42,11 +42,11 @@ fun DataModifierComputer.computeModifier(annotation: A, type } val customEditors = listOf( + ClosedRangeEditor, ColorEditor, CoordinateEditor, CronEditor, DurationEditor, - FloatRangeEditor, ItemEditor, MaterialEditor, OptionalEditor, diff --git a/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/editors/ClosedRangeEditor.kt b/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/editors/ClosedRangeEditor.kt new file mode 100644 index 0000000000..9764a92fbf --- /dev/null +++ b/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/editors/ClosedRangeEditor.kt @@ -0,0 +1,46 @@ +package com.typewritermc.processors.entry.editors + +import com.google.devtools.ksp.processing.KSPLogger +import com.google.devtools.ksp.symbol.KSType +import com.typewritermc.processors.entry.CustomEditor +import com.typewritermc.processors.entry.DataBlueprint +import com.typewritermc.processors.entry.whenClassIs +import com.typewritermc.processors.fullName +import kotlinx.serialization.json.JsonElement +import kotlinx.serialization.json.JsonObject + +object ClosedRangeEditor : CustomEditor { + override val id: String = "closedRange" + + override fun accept(type: KSType): Boolean { + return type whenClassIs ClosedRange::class + } + + context(KSPLogger) override fun default(type: KSType): JsonElement { + val argumentType = type.arguments.firstOrNull()?.type?.resolve() + ?: throw IllegalStateException("Expected ClosedRange to have a single argument") + val blueprint = DataBlueprint.blueprint(argumentType) + ?: throw IllegalStateException("Could not find blueprint for type ${argumentType.fullName}") + + return JsonObject( + mapOf( + "start" to blueprint.default(), + "end" to blueprint.default(), + ) + ) + } + + context(KSPLogger) override fun shape(type: KSType): DataBlueprint { + val argumentType = type.arguments.firstOrNull()?.type?.resolve() + ?: throw IllegalStateException("Expected ClosedRange to have a single argument") + val blueprint = DataBlueprint.blueprint(argumentType) + ?: throw IllegalStateException("Could not find blueprint for type ${argumentType.fullName}") + + return DataBlueprint.ObjectBlueprint( + mapOf( + "start" to blueprint, + "end" to blueprint, + ) + ) + } +} \ No newline at end of file diff --git a/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/editors/FloatRangeEditor.kt b/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/editors/FloatRangeEditor.kt deleted file mode 100644 index 8c8cde36db..0000000000 --- a/module-plugin/extension-processor/src/main/kotlin/com/typewritermc/processors/entry/editors/FloatRangeEditor.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.typewritermc.processors.entry.editors - -import com.google.devtools.ksp.processing.KSPLogger -import com.google.devtools.ksp.symbol.KSType -import com.typewritermc.processors.entry.CustomEditor -import com.typewritermc.processors.entry.DataBlueprint -import com.typewritermc.processors.entry.DataBlueprint.ObjectBlueprint -import com.typewritermc.processors.entry.DataBlueprint.PrimitiveBlueprint -import com.typewritermc.processors.entry.PrimitiveType -import com.typewritermc.processors.entry.whenClassIs -import kotlinx.serialization.json.JsonElement -import kotlinx.serialization.json.JsonObject -import kotlinx.serialization.json.JsonPrimitive - -object FloatRangeEditor : CustomEditor { - override val id: String = "floatRange" - - override fun accept(type: KSType): Boolean { - if (!type.whenClassIs(ClosedFloatingPointRange::class)) return false - - val typeArguments = type.arguments - if (typeArguments.size != 1) return false - - val typeArgument = typeArguments.first() - return typeArgument.type?.resolve()?.whenClassIs(Float::class) ?: false - } - - context(KSPLogger) - override fun default(type: KSType): JsonElement { - return JsonObject( - mapOf( - "start" to JsonPrimitive(0), - "end" to JsonPrimitive(0), - ) - ) - } - - context(KSPLogger) - override fun shape(type: KSType): DataBlueprint { - return ObjectBlueprint( - mapOf( - "start" to PrimitiveBlueprint(PrimitiveType.INTEGER), - "end" to PrimitiveBlueprint(PrimitiveType.INTEGER) - ) - ) - } -} \ No newline at end of file From ed9d0b4ebc1e728332793c3d250adffd1a97e994 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 08:10:21 +0200 Subject: [PATCH 19/41] Entity Instance Can now be Sound Emitters --- .../engine/paper/entry/AudienceManager.kt | 5 +++ .../entry/entity/ActivityEntityDisplay.kt | 9 +++++ .../paper/entry/entity/DisplayEntity.kt | 3 ++ .../entity/GroupActivityEntityDisplay.kt | 4 +++ .../entity/IndividualActivityEntityDisplay.kt | 4 +++ .../entity/SharedActivityEntityDisplay.kt | 4 +++ .../engine/paper/entry/entries/EntityEntry.kt | 10 +++++- .../engine/paper/entry/entries/SoundEntry.kt | 6 ++-- .../typewritermc/engine/paper/utils/Sound.kt | 34 +++++++++++++++---- .../basic/entries/static/SelfSpeaker.kt | 6 ++-- .../entries/entity/ReferenceNpcEntry.kt | 8 +++-- .../entries/static/ExampleSoundSourceEntry.kt | 8 +++-- 12 files changed, 82 insertions(+), 19 deletions(-) diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/AudienceManager.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/AudienceManager.kt index 9a1c4b8ae5..0c40e5cd2a 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/AudienceManager.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/AudienceManager.kt @@ -161,6 +161,11 @@ val Ref.isActive: Boolean return manager[this]?.isActive ?: false } +fun Ref.findDisplay(): AudienceDisplay? { + val manager = get(AudienceManager::class.java) + return manager[this] +} + fun List>.descendants(klass: KClass): List> { return flatMap { val child = it.get() ?: return@flatMap emptyList>() diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/ActivityEntityDisplay.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/ActivityEntityDisplay.kt index 2c486f8290..8bec4ff119 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/ActivityEntityDisplay.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/ActivityEntityDisplay.kt @@ -25,4 +25,13 @@ interface ActivityEntityDisplay { * @param playerId The player to check. */ fun canView(playerId: UUID): Boolean + + /** + * Get the base entity id of the entity. + * This might not be all of the entity ids that are displayed. + * For example, the entity might be a child of another entity. + * + * If you need to check if the entity is visible to the player, use [playerSeesEntity]. + */ + fun entityId(playerId: UUID): Int } \ No newline at end of file diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/DisplayEntity.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/DisplayEntity.kt index d0d39a29b1..14b9896917 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/DisplayEntity.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/DisplayEntity.kt @@ -22,6 +22,9 @@ internal class DisplayEntity( val state: EntityState get() = entity.state + val entityId: Int + get() = entity.entityId + init { entity.spawn(activityManager.position) applyProperties() diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/GroupActivityEntityDisplay.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/GroupActivityEntityDisplay.kt index 625b5a3d9c..d31ca3e7ce 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/GroupActivityEntityDisplay.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/GroupActivityEntityDisplay.kt @@ -108,4 +108,8 @@ class GroupActivityEntityDisplay( } override fun canView(playerId: UUID): Boolean = canConsider(playerId) + + override fun entityId(playerId: UUID): Int { + return entities[playerId]?.entityId ?: 0 + } } \ No newline at end of file diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/IndividualActivityEntityDisplay.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/IndividualActivityEntityDisplay.kt index 38fd5f977f..b6e6e2e8d7 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/IndividualActivityEntityDisplay.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/IndividualActivityEntityDisplay.kt @@ -85,4 +85,8 @@ class IndividualActivityEntityDisplay( override fun position(playerId: UUID): Position? = activityManagers[playerId]?.position override fun canView(playerId: UUID): Boolean = canConsider(playerId) + + override fun entityId(playerId: UUID): Int { + return entities[playerId]?.entityId ?: 0 + } } \ No newline at end of file diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/SharedActivityEntityDisplay.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/SharedActivityEntityDisplay.kt index bc62ddb88d..1e78859249 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/SharedActivityEntityDisplay.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entity/SharedActivityEntityDisplay.kt @@ -78,4 +78,8 @@ class SharedActivityEntityDisplay( override fun position(playerId: UUID): Position? = activityManager?.position override fun canView(playerId: UUID): Boolean = canConsider(playerId) + + override fun entityId(playerId: UUID): Int { + return entities[playerId]?.entityId ?: 0 + } } diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entries/EntityEntry.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entries/EntityEntry.kt index 1274f33f1f..d99e3adaf7 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entries/EntityEntry.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entries/EntityEntry.kt @@ -2,12 +2,14 @@ package com.typewritermc.engine.paper.entry.entries import com.typewritermc.core.entries.PriorityEntry import com.typewritermc.core.entries.Ref +import com.typewritermc.core.entries.ref import com.typewritermc.core.extension.annotations.Tags import com.typewritermc.core.extension.annotations.Help import com.typewritermc.core.extension.annotations.WithRotation import com.typewritermc.core.utils.point.Position import com.typewritermc.engine.paper.entry.* import com.typewritermc.engine.paper.entry.entity.* +import com.typewritermc.engine.paper.utils.EmitterSoundSource import com.typewritermc.engine.paper.utils.Sound import org.bukkit.entity.Player import kotlin.reflect.KClass @@ -66,11 +68,17 @@ interface EntityDefinitionEntry : ManifestEntry, SpeakerEntry, EntityCreator { } @Tags("entity_instance") -interface EntityInstanceEntry : AudienceFilterEntry { +interface EntityInstanceEntry : AudienceFilterEntry, SoundSourceEntry { val definition: Ref @WithRotation val spawnLocation: Position + + override fun getEmitter(player: Player): SoundEmitter { + val display = ref().findDisplay() as? ActivityEntityDisplay ?: return SoundEmitter(player.entityId) + val entityId = display.entityId(player.uniqueId) + return SoundEmitter(entityId) + } } @Tags("entity_activity") diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entries/SoundEntry.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entries/SoundEntry.kt index 7436b543a4..02b0806731 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entries/SoundEntry.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/entries/SoundEntry.kt @@ -15,5 +15,7 @@ interface SoundIdEntry : StaticEntry, PlaceholderEntry { @Tags("sound_source") interface SoundSourceEntry : StaticEntry { - fun getEmitter(): Sound.Emitter -} \ No newline at end of file + fun getEmitter(player: Player): SoundEmitter +} + +class SoundEmitter(val entityId: Int) \ No newline at end of file diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Sound.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Sound.kt index be3686e77d..2423167b65 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Sound.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Sound.kt @@ -1,30 +1,39 @@ package com.typewritermc.engine.paper.utils +import com.github.retrooper.packetevents.protocol.sound.SoundCategory +import com.github.retrooper.packetevents.protocol.sound.Sounds +import com.github.retrooper.packetevents.protocol.sound.StaticSound +import com.github.retrooper.packetevents.resources.ResourceLocation +import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntitySoundEffect import com.typewritermc.core.entries.Query +import com.typewritermc.core.extension.annotations.Default import com.typewritermc.core.extension.annotations.Help import com.typewritermc.core.utils.point.Position import com.typewritermc.engine.paper.entry.entries.SoundIdEntry import com.typewritermc.engine.paper.entry.entries.SoundSourceEntry +import com.typewritermc.engine.paper.extensions.packetevents.sendPacketTo import com.typewritermc.engine.paper.logger import net.kyori.adventure.audience.Audience +import net.kyori.adventure.audience.ForwardingAudience import net.kyori.adventure.sound.SoundStop import org.bukkit.NamespacedKey +import org.bukkit.entity.Player import net.kyori.adventure.sound.Sound as AdventureSound data class Sound( - @Help("The sound to play.") val soundId: SoundId = SoundId.EMPTY, @Help("The source of the location to play the sound from. (Defaults to player's location)") val soundSource: SoundSource = SelfSoundSource, - @Help("The track to play the sound on. (Corresponds to the Minecraft sound category)") + @Help("Corresponds to the Minecraft sound category") val track: AdventureSound.Source = AdventureSound.Source.MASTER, - @Help("The volume of the sound. A value of 1.0 is normal volume.") + @Help("A value of 1.0 is normal volume.") + @Default("1.0") val volume: Float = 1.0f, - @Help("The pitch of the sound. A value of 1.0 is normal pitch.") + @Help("A value of 1.0 is normal pitch.") + @Default("1.0") val pitch: Float = 1.0f, ) { - companion object { val EMPTY = Sound() } @@ -45,8 +54,12 @@ data class Sound( logger.warning("Could not find sound source entry with id $entryId") return } - val emitter = entry.getEmitter() - audience.playSound(sound, emitter) + audience.viewers.forEach { viewer -> + val emitter = entry.getEmitter(viewer) + val packetSound = StaticSound(ResourceLocation(key.namespace, key.key), 16f) + val category = SoundCategory.fromId(track.ordinal) + WrapperPlayServerEntitySoundEffect(packetSound, category, emitter.entityId, volume, pitch) sendPacketTo viewer + } } is LocationSoundSource -> { @@ -90,3 +103,10 @@ data object SelfSoundSource : SoundSource class EmitterSoundSource(val entryId: String) : SoundSource class LocationSoundSource(val position: Position) : SoundSource + +val Audience.viewers: List + get() = when (this) { + is Player -> listOf(this) + is ForwardingAudience -> audiences().flatMap { it.viewers } + else -> throw IllegalArgumentException("Cannot get viewers from audience of type ${this::class.simpleName}") + } \ No newline at end of file diff --git a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/static/SelfSpeaker.kt b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/static/SelfSpeaker.kt index eb135f5222..b3f4dba526 100644 --- a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/static/SelfSpeaker.kt +++ b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/static/SelfSpeaker.kt @@ -2,9 +2,11 @@ package com.typewritermc.basic.entries.static import com.typewritermc.core.books.pages.Colors import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.engine.paper.entry.entries.SoundEmitter import com.typewritermc.engine.paper.entry.entries.SoundSourceEntry import com.typewritermc.engine.paper.entry.entries.SpeakerEntry import com.typewritermc.engine.paper.utils.Sound +import org.bukkit.entity.Player import java.util.* @Entry("self_speaker", "The player themself", Colors.ORANGE, "bi:person-fill") @@ -26,7 +28,5 @@ class SelfSpeaker( override val displayName: String get() = overrideName.orElseGet { "%player_name%" } - override fun getEmitter(): net.kyori.adventure.sound.Sound.Emitter { - return net.kyori.adventure.sound.Sound.Emitter.self() - } + override fun getEmitter(player: Player): SoundEmitter = SoundEmitter(player.entityId) } \ No newline at end of file diff --git a/extensions/CitizensExtension/src/main/kotlin/com/typewritermc/citizens/entries/entity/ReferenceNpcEntry.kt b/extensions/CitizensExtension/src/main/kotlin/com/typewritermc/citizens/entries/entity/ReferenceNpcEntry.kt index 93a504cc27..bb7f8447bc 100644 --- a/extensions/CitizensExtension/src/main/kotlin/com/typewritermc/citizens/entries/entity/ReferenceNpcEntry.kt +++ b/extensions/CitizensExtension/src/main/kotlin/com/typewritermc/citizens/entries/entity/ReferenceNpcEntry.kt @@ -4,10 +4,12 @@ import com.typewritermc.core.books.pages.Colors import com.typewritermc.core.extension.annotations.Entry import com.typewritermc.core.extension.annotations.Help import com.typewritermc.core.extension.annotations.Tags +import com.typewritermc.engine.paper.entry.entries.SoundEmitter import com.typewritermc.engine.paper.entry.entries.SoundSourceEntry import com.typewritermc.engine.paper.entry.entries.SpeakerEntry import com.typewritermc.engine.paper.utils.* import net.citizensnpcs.api.CitizensAPI +import org.bukkit.entity.Player import net.kyori.adventure.sound.Sound as AdventureSound @Tags("reference_npc") @@ -27,8 +29,8 @@ class ReferenceNpcEntry( @Help("The id of the NPC in the Citizens plugin.") val npcId: Int = 0, ) : SoundSourceEntry, SpeakerEntry { - override fun getEmitter(): AdventureSound.Emitter { - val npc = CitizensAPI.getNPCRegistry().getById(npcId) ?: return AdventureSound.Emitter.self() - return npc.entity ?: AdventureSound.Emitter.self() + override fun getEmitter(player: Player): SoundEmitter { + val npc = CitizensAPI.getNPCRegistry().getById(npcId) ?: return SoundEmitter(player.entityId) + return SoundEmitter(npc.entity?.entityId ?: player.entityId) } } \ No newline at end of file diff --git a/extensions/_DocsExtension/src/main/kotlin/com/typewritermc/example/entries/static/ExampleSoundSourceEntry.kt b/extensions/_DocsExtension/src/main/kotlin/com/typewritermc/example/entries/static/ExampleSoundSourceEntry.kt index 8ebe6ea949..a21281390e 100644 --- a/extensions/_DocsExtension/src/main/kotlin/com/typewritermc/example/entries/static/ExampleSoundSourceEntry.kt +++ b/extensions/_DocsExtension/src/main/kotlin/com/typewritermc/example/entries/static/ExampleSoundSourceEntry.kt @@ -2,8 +2,10 @@ package com.typewritermc.example.entries.static import com.typewritermc.core.books.pages.Colors import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.engine.paper.entry.entries.SoundEmitter import com.typewritermc.engine.paper.entry.entries.SoundSourceEntry import net.kyori.adventure.sound.Sound +import org.bukkit.entity.Player // @Entry("example_sound_source", "An example sound source entry.", Colors.BLUE, "ic:round-spatial-audio-off") @@ -11,10 +13,10 @@ class ExampleSoundSourceEntry( override val id: String = "", override val name: String = "", ) : SoundSourceEntry { - override fun getEmitter(): Sound.Emitter { + override fun getEmitter(player: Player): SoundEmitter { // Return the emitter that should be used for the sound. - // A bukkit entity can be used here. - return Sound.Emitter.self() + // An entity should be provided. + return SoundEmitter(player.entityId) } } // \ No newline at end of file From 77ae1dcff01db97781ebed6673eb3b932d549f64 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 08:10:35 +0200 Subject: [PATCH 20/41] Create Ambient Sound Activity --- .../entries/activity/AmbientSoundActivity.kt | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/AmbientSoundActivity.kt diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/AmbientSoundActivity.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/AmbientSoundActivity.kt new file mode 100644 index 0000000000..b4098f3926 --- /dev/null +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/AmbientSoundActivity.kt @@ -0,0 +1,83 @@ +package com.typewritermc.entity.entries.activity + +import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.entries.Ref +import com.typewritermc.core.entries.emptyRef +import com.typewritermc.core.extension.annotations.Default +import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.core.extension.annotations.Help +import com.typewritermc.engine.paper.entry.entity.* +import com.typewritermc.engine.paper.entry.entries.EntityActivityEntry +import com.typewritermc.engine.paper.entry.entries.GenericEntityActivityEntry +import com.typewritermc.engine.paper.utils.Sound +import java.time.Duration +import kotlin.random.Random + + +@Entry("ambient_sound_activity", "Play an ambient sound for an entity", Colors.PALATINATE_BLUE, "mingcute:shuffle-2-fill") +/** + * The `AmbientSoundActivityEntry` is an activity that plays an ambient sound for an entity. + * + * ## How could this be used? + * This can be used to make an entity sound like it is doing something. + * Like playing a sound when it is building a structure. + * Or having it mumble to itself. + */ +class AmbientSoundActivityEntry( + override val id: String = "", + override val name: String = "", + val sounds: List = emptyList(), + @Help("How long to wait before playing the next sound") + @Default("{\"start\": 2000, \"end\": 5000}") + val delay: ClosedRange = Duration.ZERO..Duration.ZERO, + val activity: Ref = emptyRef(), +) : GenericEntityActivityEntry { + override fun create(context: ActivityContext, currentLocation: PositionProperty): EntityActivity { + return AmbientSoundActivity(sounds, delay, activity, currentLocation) + } +} + +data class AmbientSound( + val sound: Sound, + @Default("1.0") + val weight: Double = 1.0, +) + +class AmbientSoundActivity( + private val sounds: List, + private val delay: ClosedRange, + private val activity: Ref, + startLocation: PositionProperty, +) : SingleChildActivity(startLocation) { + private var nextPlay = System.currentTimeMillis() + delay.random().toMillis() + + override fun currentChild(context: ActivityContext): Ref = activity + + override fun tick(context: ActivityContext): TickResult { + if (System.currentTimeMillis() >= nextPlay) { + nextPlay = System.currentTimeMillis() + delay.random().toMillis() + val sound = sounds.weightedRandom().sound + context.viewers.forEach { viewer -> + sound.play(viewer) + } + } + return super.tick(context) + } +} + +fun ClosedRange.random(): Duration { + val start = start.toMillis() + val end = endInclusive.toMillis() + return Duration.ofMillis(start + Random.nextLong(end - start)) +} + +fun List.weightedRandom(): AmbientSound { + if (isEmpty()) return AmbientSound(Sound.EMPTY) + if (size == 1) return this[0] + + val discreteCumulativeWeights = this.scan(0.0) { acc, sound -> acc + sound.weight }.toList() + val random = Random.nextDouble() * discreteCumulativeWeights.last() + return this.zip(discreteCumulativeWeights).first { (_, cumulativeWeight) -> + cumulativeWeight > random + }.first +} \ No newline at end of file From 8905f0fd5eb5002795aea39ae16844ae9e731e28 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 08:10:57 +0200 Subject: [PATCH 21/41] Fix layout issue in fake node --- .../widgets/components/app/entry_node.dart | 58 ++++++++++--------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/app/lib/widgets/components/app/entry_node.dart b/app/lib/widgets/components/app/entry_node.dart index f19e563f6b..43e56d6992 100644 --- a/app/lib/widgets/components/app/entry_node.dart +++ b/app/lib/widgets/components/app/entry_node.dart @@ -462,37 +462,43 @@ class FakeEntryNode extends HookConsumerWidget { child: Padding( padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 4), child: Row( + mainAxisSize: MainAxisSize.min, children: [ Iconify(blueprint.icon, color: Colors.white, size: 18), const SizedBox(width: 8), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - name.formatted, - style: TextStyle( - color: Colors.white, - fontSize: 13, - decoration: - isDeprecated ? TextDecoration.lineThrough : null, - decorationThickness: 2.8, - decorationColor: Theme.of(context).scaffoldBackgroundColor, - decorationStyle: TextDecorationStyle.wavy, + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + name.formatted, + style: TextStyle( + color: Colors.white, + fontSize: 13, + decoration: + isDeprecated ? TextDecoration.lineThrough : null, + decorationThickness: 2.8, + decorationColor: + Theme.of(context).scaffoldBackgroundColor, + decorationStyle: TextDecorationStyle.wavy, + ), + overflow: TextOverflow.ellipsis, ), - ), - Text( - blueprintId.formatted, - style: TextStyle( - color: Colors.white70, - fontSize: 11, - decoration: - isDeprecated ? TextDecoration.lineThrough : null, - decorationThickness: 2.5, - decorationColor: Theme.of(context).scaffoldBackgroundColor, - decorationStyle: TextDecorationStyle.wavy, + Text( + blueprintId.formatted, + style: TextStyle( + color: Colors.white70, + fontSize: 11, + decoration: + isDeprecated ? TextDecoration.lineThrough : null, + decorationThickness: 2.5, + decorationColor: + Theme.of(context).scaffoldBackgroundColor, + decorationStyle: TextDecorationStyle.wavy, + ), ), - ), - ], + ], + ), ), ], ), From c5b6b1a94d8d256833dbe9242931abcf5e46392f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 06:12:24 +0000 Subject: [PATCH 22/41] Bump send and express in /documentation Bumps [send](https://github.com/pillarjs/send) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `send` from 0.18.0 to 0.19.0 - [Release notes](https://github.com/pillarjs/send/releases) - [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md) - [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0) Updates `express` from 4.19.2 to 4.20.0 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0) --- updated-dependencies: - dependency-name: send dependency-type: indirect - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] --- documentation/package-lock.json | 165 ++++++++++++++++++++------------ 1 file changed, 103 insertions(+), 62 deletions(-) diff --git a/documentation/package-lock.json b/documentation/package-lock.json index 458553d4e5..3877952f1a 100644 --- a/documentation/package-lock.json +++ b/documentation/package-lock.json @@ -5662,10 +5662,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "license": "MIT", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -5675,7 +5674,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -5689,7 +5688,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5698,7 +5696,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -5707,7 +5704,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -5718,8 +5714,21 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/bonjour-service": { "version": "1.2.1", @@ -6475,7 +6484,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7644,7 +7652,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7662,7 +7669,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -8251,7 +8257,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8317,37 +8322,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "license": "MIT", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", + "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -8379,6 +8383,14 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8386,10 +8398,9 @@ "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "license": "MIT" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", @@ -8908,7 +8919,6 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9768,7 +9778,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -11228,7 +11237,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11252,10 +11260,12 @@ "license": "MIT" }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -13563,7 +13573,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13915,7 +13924,6 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -15381,7 +15389,6 @@ "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -15462,7 +15469,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -15477,7 +15483,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -15486,7 +15491,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -16722,10 +16726,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "license": "MIT", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -16749,7 +16752,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -16757,20 +16759,17 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/send/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16885,10 +16884,9 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "license": "MIT", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", + "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -16899,6 +16897,55 @@ "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-static/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-static/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -16919,8 +16966,7 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/shallow-clone": { "version": "3.0.1", @@ -17031,7 +17077,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -17995,7 +18040,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", "engines": { "node": ">=0.6" } @@ -18080,7 +18124,6 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -18093,7 +18136,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -18102,7 +18144,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, From 11e75e6894f7fc3ea7869d719933195c30b499e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 06:12:31 +0000 Subject: [PATCH 23/41] Bump body-parser and express in /documentation Bumps [body-parser](https://github.com/expressjs/body-parser) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `body-parser` from 1.20.2 to 1.20.3 - [Release notes](https://github.com/expressjs/body-parser/releases) - [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md) - [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3) Updates `express` from 4.19.2 to 4.20.0 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0) --- updated-dependencies: - dependency-name: body-parser dependency-type: indirect - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] --- documentation/package-lock.json | 165 ++++++++++++++++++++------------ 1 file changed, 103 insertions(+), 62 deletions(-) diff --git a/documentation/package-lock.json b/documentation/package-lock.json index 458553d4e5..3877952f1a 100644 --- a/documentation/package-lock.json +++ b/documentation/package-lock.json @@ -5662,10 +5662,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "license": "MIT", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -5675,7 +5674,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -5689,7 +5688,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5698,7 +5696,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -5707,7 +5704,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -5718,8 +5714,21 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/bonjour-service": { "version": "1.2.1", @@ -6475,7 +6484,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7644,7 +7652,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7662,7 +7669,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -8251,7 +8257,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8317,37 +8322,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "license": "MIT", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", + "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -8379,6 +8383,14 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8386,10 +8398,9 @@ "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "license": "MIT" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", @@ -8908,7 +8919,6 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9768,7 +9778,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -11228,7 +11237,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11252,10 +11260,12 @@ "license": "MIT" }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -13563,7 +13573,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13915,7 +13924,6 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -15381,7 +15389,6 @@ "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -15462,7 +15469,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -15477,7 +15483,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -15486,7 +15491,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -16722,10 +16726,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "license": "MIT", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -16749,7 +16752,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -16757,20 +16759,17 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/send/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16885,10 +16884,9 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "license": "MIT", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", + "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -16899,6 +16897,55 @@ "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-static/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-static/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -16919,8 +16966,7 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/shallow-clone": { "version": "3.0.1", @@ -17031,7 +17077,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -17995,7 +18040,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", "engines": { "node": ">=0.6" } @@ -18080,7 +18124,6 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -18093,7 +18136,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -18102,7 +18144,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, From a03fbe04100b82c2559e111c693b0ca1a12c2335 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 06:12:35 +0000 Subject: [PATCH 24/41] Bump express from 4.19.2 to 4.20.0 in /documentation Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.20.0. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0) --- updated-dependencies: - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] --- documentation/package-lock.json | 165 ++++++++++++++++++++------------ 1 file changed, 103 insertions(+), 62 deletions(-) diff --git a/documentation/package-lock.json b/documentation/package-lock.json index 458553d4e5..3877952f1a 100644 --- a/documentation/package-lock.json +++ b/documentation/package-lock.json @@ -5662,10 +5662,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "license": "MIT", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -5675,7 +5674,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -5689,7 +5688,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5698,7 +5696,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -5707,7 +5704,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -5718,8 +5714,21 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/bonjour-service": { "version": "1.2.1", @@ -6475,7 +6484,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7644,7 +7652,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7662,7 +7669,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -8251,7 +8257,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8317,37 +8322,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "license": "MIT", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", + "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -8379,6 +8383,14 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8386,10 +8398,9 @@ "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "license": "MIT" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", @@ -8908,7 +8919,6 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9768,7 +9778,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -11228,7 +11237,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11252,10 +11260,12 @@ "license": "MIT" }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -13563,7 +13573,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13915,7 +13924,6 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -15381,7 +15389,6 @@ "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -15462,7 +15469,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -15477,7 +15483,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -15486,7 +15491,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -16722,10 +16726,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "license": "MIT", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -16749,7 +16752,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -16757,20 +16759,17 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/send/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16885,10 +16884,9 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "license": "MIT", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", + "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -16899,6 +16897,55 @@ "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-static/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-static/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -16919,8 +16966,7 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/shallow-clone": { "version": "3.0.1", @@ -17031,7 +17077,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -17995,7 +18040,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", "engines": { "node": ">=0.6" } @@ -18080,7 +18124,6 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -18093,7 +18136,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -18102,7 +18144,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, From 8bf0e3f1b036a7245af0e252b43ee9df6cc697f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 06:12:35 +0000 Subject: [PATCH 25/41] Bump serve-static and express in /documentation Bumps [serve-static](https://github.com/expressjs/serve-static) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `serve-static` from 1.15.0 to 1.16.0 - [Release notes](https://github.com/expressjs/serve-static/releases) - [Changelog](https://github.com/expressjs/serve-static/blob/master/HISTORY.md) - [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...1.16.0) Updates `express` from 4.19.2 to 4.20.0 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0) --- updated-dependencies: - dependency-name: serve-static dependency-type: indirect - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] --- documentation/package-lock.json | 165 ++++++++++++++++++++------------ 1 file changed, 103 insertions(+), 62 deletions(-) diff --git a/documentation/package-lock.json b/documentation/package-lock.json index 458553d4e5..3877952f1a 100644 --- a/documentation/package-lock.json +++ b/documentation/package-lock.json @@ -5662,10 +5662,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "license": "MIT", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -5675,7 +5674,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -5689,7 +5688,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5698,7 +5696,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -5707,7 +5704,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -5718,8 +5714,21 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/bonjour-service": { "version": "1.2.1", @@ -6475,7 +6484,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7644,7 +7652,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7662,7 +7669,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -8251,7 +8257,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8317,37 +8322,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "license": "MIT", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", + "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -8379,6 +8383,14 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8386,10 +8398,9 @@ "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "license": "MIT" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", @@ -8908,7 +8919,6 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9768,7 +9778,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -11228,7 +11237,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11252,10 +11260,12 @@ "license": "MIT" }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -13563,7 +13573,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13915,7 +13924,6 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -15381,7 +15389,6 @@ "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -15462,7 +15469,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -15477,7 +15483,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -15486,7 +15491,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -16722,10 +16726,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "license": "MIT", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -16749,7 +16752,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -16757,20 +16759,17 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/send/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16885,10 +16884,9 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "license": "MIT", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", + "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -16899,6 +16897,55 @@ "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-static/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-static/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -16919,8 +16966,7 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/shallow-clone": { "version": "3.0.1", @@ -17031,7 +17077,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -17995,7 +18040,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", "engines": { "node": ">=0.6" } @@ -18080,7 +18124,6 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -18093,7 +18136,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -18102,7 +18144,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, From 3aebb675e28873d557fed574108327b6c8762e7f Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 09:52:15 +0200 Subject: [PATCH 26/41] Add unselect for sound id --- .../inspector/editors/entry_selector.dart | 6 +- .../widgets/inspector/editors/sound_id.dart | 61 ++++++++++++++++--- 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/app/lib/widgets/inspector/editors/entry_selector.dart b/app/lib/widgets/inspector/editors/entry_selector.dart index e749d85bd1..33a6260138 100644 --- a/app/lib/widgets/inspector/editors/entry_selector.dart +++ b/app/lib/widgets/inspector/editors/entry_selector.dart @@ -116,7 +116,11 @@ class EntrySelectorEditor extends HookConsumerWidget { onTap: () { ref .read(inspectingEntryDefinitionProvider) - ?.updateField(ref.passing, path, ""); + ?.updateField( + ref.passing, + path, + dataBlueprint.defaultValue(), + ); }, ), ], diff --git a/app/lib/widgets/inspector/editors/sound_id.dart b/app/lib/widgets/inspector/editors/sound_id.dart index b511c6d723..11d7c58161 100644 --- a/app/lib/widgets/inspector/editors/sound_id.dart +++ b/app/lib/widgets/inspector/editors/sound_id.dart @@ -17,6 +17,7 @@ import "package:typewriter/utils/passing_reference.dart"; import "package:typewriter/widgets/components/app/entry_node.dart"; import "package:typewriter/widgets/components/app/entry_search.dart"; import "package:typewriter/widgets/components/app/search_bar.dart"; +import "package:typewriter/widgets/components/general/context_menu_region.dart"; import "package:typewriter/widgets/components/general/focused_notifier.dart"; import "package:typewriter/widgets/components/general/iconify.dart"; import "package:typewriter/widgets/inspector/editors.dart"; @@ -283,6 +284,12 @@ class SoundSelectorEditor extends HookConsumerWidget { ..open(); } + void _unselect(PassingRef ref) { + ref + .read(inspectingEntryDefinitionProvider) + ?.updateField(ref, path, customBlueprint.defaultValue()); + } + @override Widget build(BuildContext context, WidgetRef ref) { final data = ref.watch(fieldValueProvider(path)); @@ -293,10 +300,12 @@ class SoundSelectorEditor extends HookConsumerWidget { (soundId) => _DefaultSoundIdSelector( soundId: soundId, select: () => _select(ref.passing), + unselect: () => _unselect(ref.passing), ), entry: (soundId) => _EntrySoundIdSelector( soundId: soundId, select: () => _select(ref.passing), + unselect: () => _unselect(ref.passing), ), ); } @@ -306,10 +315,12 @@ class _DefaultSoundIdSelector extends HookConsumerWidget { const _DefaultSoundIdSelector({ required this.soundId, required this.select, + required this.unselect, }); final DefaultSoundId soundId; final VoidCallback select; + final VoidCallback unselect; @override Widget build(BuildContext context, WidgetRef ref) { @@ -319,7 +330,11 @@ class _DefaultSoundIdSelector extends HookConsumerWidget { data: (data) { final value = data.value; if (value == null) return _EmptySelector(select: select); - return _MinecraftSelector(sound: value, select: select); + return _MinecraftSelector( + sound: value, + select: select, + unselect: unselect, + ); }, loading: (_) => const _LoadingSelector(), error: (error) { @@ -329,7 +344,7 @@ class _DefaultSoundIdSelector extends HookConsumerWidget { maxFrames: 10, stackTrace: error.stackTrace, ); - return _ErrorSelector(select: select); + return _ErrorSelector(select: select, unselect: unselect); }, ); } @@ -339,15 +354,18 @@ class _EntrySoundIdSelector extends HookConsumerWidget { const _EntrySoundIdSelector({ required this.soundId, required this.select, + required this.unselect, }); final EntrySoundId soundId; final VoidCallback select; + final VoidCallback unselect; @override Widget build(BuildContext context, WidgetRef ref) { return _Selector( select: select, + unselect: unselect, child: Padding( padding: const EdgeInsets.only(left: 8, top: 8, bottom: 8), child: Row( @@ -370,9 +388,11 @@ class _Selector extends HookConsumerWidget { const _Selector({ required this.select, required this.child, + required this.unselect, }); final VoidCallback? select; + final VoidCallback? unselect; final Widget child; @override @@ -380,12 +400,29 @@ class _Selector extends HookConsumerWidget { return Material( color: Theme.of(context).inputDecorationTheme.fillColor, borderRadius: BorderRadius.circular(8), - child: InkWell( - onTap: select, - borderRadius: BorderRadius.circular(8), - child: Padding( - padding: const EdgeInsets.only(right: 16), - child: child, + child: ContextMenuRegion( + builder: (context) => [ + if (select != null) + ContextMenuTile.button( + title: "Select Sound", + icon: TWIcons.checkSquare, + onTap: select, + ), + if (unselect != null) + ContextMenuTile.button( + title: "Removm Sound", + icon: TWIcons.squareMinus, + onTap: unselect, + color: Colors.redAccent, + ), + ], + child: InkWell( + onTap: select, + borderRadius: BorderRadius.circular(8), + child: Padding( + padding: const EdgeInsets.only(right: 16), + child: child, + ), ), ), ); @@ -403,6 +440,7 @@ class _EmptySelector extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { return _Selector( select: select, + unselect: null, child: Row( children: [ Expanded( @@ -443,6 +481,7 @@ class _LoadingSelector extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { return _Selector( select: null, + unselect: null, child: Padding( padding: const EdgeInsets.only(top: 12, bottom: 12, left: 16), child: Row( @@ -469,14 +508,17 @@ class _LoadingSelector extends HookConsumerWidget { class _ErrorSelector extends HookConsumerWidget { const _ErrorSelector({ required this.select, + required this.unselect, }); final VoidCallback select; + final VoidCallback? unselect; @override Widget build(BuildContext context, WidgetRef ref) { return _Selector( select: select, + unselect: unselect, child: Padding( padding: const EdgeInsets.only(top: 12, bottom: 12, left: 16), child: Row( @@ -509,15 +551,18 @@ class _MinecraftSelector extends HookConsumerWidget { const _MinecraftSelector({ required this.sound, required this.select, + required this.unselect, }); final MinecraftSound sound; final VoidCallback select; + final VoidCallback unselect; @override Widget build(BuildContext context, WidgetRef ref) { return _Selector( select: select, + unselect: unselect, child: Row( children: [ Expanded(child: _ChosenSound(sound: sound)), From c43c693f8810bc0456d00946809273d68ffbbbfe Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 10:14:07 +0200 Subject: [PATCH 27/41] Add empty list indication --- app/lib/widgets/inspector/editors/list.dart | 69 +++++++++++++++++---- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/app/lib/widgets/inspector/editors/list.dart b/app/lib/widgets/inspector/editors/list.dart index 61889f9fa8..f1846a10b2 100644 --- a/app/lib/widgets/inspector/editors/list.dart +++ b/app/lib/widgets/inspector/editors/list.dart @@ -3,9 +3,12 @@ import "package:flutter_hooks/flutter_hooks.dart"; import "package:hooks_riverpod/hooks_riverpod.dart"; import "package:riverpod_annotation/riverpod_annotation.dart"; import "package:typewriter/models/entry_blueprint.dart"; +import "package:typewriter/utils/extensions.dart"; import "package:typewriter/utils/icons.dart"; import "package:typewriter/utils/passing_reference.dart"; +import "package:typewriter/widgets/components/general/filled_button.dart"; import "package:typewriter/widgets/components/general/iconify.dart"; +import "package:typewriter/widgets/components/general/outline_button.dart"; import "package:typewriter/widgets/inspector/editors.dart"; import "package:typewriter/widgets/inspector/editors/field.dart"; import "package:typewriter/widgets/inspector/header.dart"; @@ -96,18 +99,60 @@ class ListEditor extends HookConsumerWidget { onAdd: () => _addNew(ref.passing), ), ], - child: ReorderableList( - itemCount: length, - onReorder: (oldIndex, newIndex) { - _reorder(ref.passing, oldIndex, newIndex); - _reorderList(globalKeys, oldIndex, newIndex); - }, - shrinkWrap: true, - itemBuilder: (context, index) => _ListItem( - key: globalKeys[index], - index: index, - path: path, - listBlueprint: listBlueprint, + child: length > 0 + ? ReorderableList( + itemCount: length, + onReorder: (oldIndex, newIndex) { + _reorder(ref.passing, oldIndex, newIndex); + _reorderList(globalKeys, oldIndex, newIndex); + }, + shrinkWrap: true, + itemBuilder: (context, index) => _ListItem( + key: globalKeys[index], + index: index, + path: path, + listBlueprint: listBlueprint, + ), + ) + : _NoElements( + path: path, + addNew: () => _addNew(ref.passing), + ), + ); + } +} + +class _NoElements extends HookConsumerWidget { + const _NoElements({ + required this.path, + required this.addNew, + }); + + final String path; + final VoidCallback addNew; + + @override + Widget build(BuildContext context, WidgetRef ref) { + final name = + ref.watch(pathDisplayNameProvider(path)).nullIfEmpty ?? "Fields"; + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: SizedBox( + width: double.infinity, + child: Column( + spacing: 8, + children: [ + Text( + "No $name found", + style: Theme.of(context).textTheme.bodyMedium, + ), + OutlineButton.icon( + onPressed: addNew, + icon: const Iconify(TWIcons.plus), + label: Text("Add ${name.singular}"), + color: Theme.of(context).colorScheme.primary, + ), + ], ), ), ); From bb1a745f6a0d1850483b5925e754082305463ea2 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 10:02:12 +0200 Subject: [PATCH 28/41] Add Simple message without speaker --- .../entries/action/MessageActionEntry.kt | 4 +- .../action/SimpleMessageActionEntry.kt | 45 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/action/SimpleMessageActionEntry.kt diff --git a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/action/MessageActionEntry.kt b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/action/MessageActionEntry.kt index 5bd66c0191..0a360fef1a 100644 --- a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/action/MessageActionEntry.kt +++ b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/action/MessageActionEntry.kt @@ -2,6 +2,7 @@ package com.typewritermc.basic.entries.action import com.typewritermc.core.books.pages.Colors import com.typewritermc.core.entries.* +import com.typewritermc.core.extension.annotations.Colored import com.typewritermc.core.extension.annotations.Entry import com.typewritermc.core.extension.annotations.MultiLine import com.typewritermc.core.extension.annotations.Placeholder @@ -17,7 +18,7 @@ import com.typewritermc.engine.paper.utils.sendMiniWithResolvers import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder.parsed import org.bukkit.entity.Player -val messageFormat: String by snippet( +private val messageFormat: String by snippet( "action.message.format", "\n [ ]\n \n" ) @@ -44,6 +45,7 @@ class MessageActionEntry( override val triggers: List> = emptyList(), val speaker: Ref = emptyRef(), @Placeholder + @Colored @MultiLine val message: String = "", ) : ActionEntry { diff --git a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/action/SimpleMessageActionEntry.kt b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/action/SimpleMessageActionEntry.kt new file mode 100644 index 0000000000..0c34205bc8 --- /dev/null +++ b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/action/SimpleMessageActionEntry.kt @@ -0,0 +1,45 @@ +package com.typewritermc.basic.entries.action + +import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.entries.Ref +import com.typewritermc.core.extension.annotations.Colored +import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.core.extension.annotations.MultiLine +import com.typewritermc.core.extension.annotations.Placeholder +import com.typewritermc.engine.paper.entry.Criteria +import com.typewritermc.engine.paper.entry.Modifier +import com.typewritermc.engine.paper.entry.TriggerableEntry +import com.typewritermc.engine.paper.entry.entries.ActionEntry +import com.typewritermc.engine.paper.extensions.placeholderapi.parsePlaceholders +import com.typewritermc.engine.paper.snippets.snippet +import com.typewritermc.engine.paper.utils.sendMiniWithResolvers +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder.parsed +import org.bukkit.entity.Player + +private val simpleMessageFormat by snippet("action.simple_message.format", "") + +@Entry("simple_message", "Send a message to a player", Colors.RED, "flowbite:message-dots-solid") +/** + * The `Simple Message Action` is an action that sends a message to the player. + * This allows you to send a message **without** a speaker. + * + * ## How could this be used? + * Send a simple message to a player without a speaker. + */ +class SimpleMessageActionEntry( + override val id: String = "", + override val name: String = "", + override val criteria: List = emptyList(), + override val modifiers: List = emptyList(), + override val triggers: List> = emptyList(), + @Placeholder + @Colored + @MultiLine + val message: String = "", +) : ActionEntry { + override fun execute(player: Player) { + super.execute(player) + + player.sendMiniWithResolvers(simpleMessageFormat, parsed("message", message.parsePlaceholders(player))) + } +} \ No newline at end of file From 926f9e0322460da937495c6da1111ce4ed5e81f1 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 13:37:44 +0200 Subject: [PATCH 29/41] Allow for reverse proxies --- app/lib/app_router.gr.dart | 11 +++---- app/lib/models/communicator.dart | 5 ++-- app/lib/pages/connect_page.dart | 4 +-- app/lib/pages/page_editor.g.dart | 2 +- .../components/app/cinematic_view.g.dart | 2 +- .../components/app/entries_graph.g.dart | 2 +- .../components/app/manifest_view.g.dart | 2 +- app/lib/widgets/inspector/editors.g.dart | 2 +- .../engine/paper/ui/CommunicationHandler.kt | 29 ++++++++++++------- .../typewritermc/engine/paper/utils/Config.kt | 20 +++++++++++++ 10 files changed, 53 insertions(+), 26 deletions(-) diff --git a/app/lib/app_router.gr.dart b/app/lib/app_router.gr.dart index 1fc944c205..68799685dc 100644 --- a/app/lib/app_router.gr.dart +++ b/app/lib/app_router.gr.dart @@ -29,10 +29,7 @@ abstract class _$AppRouter extends RootStackRouter { 'host', "", ), - port: queryParams.getInt( - 'port', - 9092, - ), + port: queryParams.optInt('port'), token: queryParams.getString( 'token', "", @@ -106,7 +103,7 @@ class BookRoute extends PageRouteInfo { class ConnectRoute extends PageRouteInfo { ConnectRoute({ String hostname = "", - int port = 9092, + int? port, String token = "", Key? key, List? children, @@ -135,14 +132,14 @@ class ConnectRoute extends PageRouteInfo { class ConnectRouteArgs { const ConnectRouteArgs({ this.hostname = "", - this.port = 9092, + this.port, this.token = "", this.key, }); final String hostname; - final int port; + final int? port; final String token; diff --git a/app/lib/models/communicator.dart b/app/lib/models/communicator.dart index c48337b5ad..604ebc22f4 100644 --- a/app/lib/models/communicator.dart +++ b/app/lib/models/communicator.dart @@ -100,7 +100,7 @@ class SocketNotifier extends StateNotifier { state == ConnectionState.connected; } - void init(String hostname, int port, [String? token]) { + void init(String hostname, int? port, [String? token]) { if (state != null) return; if (_connectionState != ConnectionState.none) return; _connectionState = ConnectionState.connecting; @@ -112,7 +112,8 @@ class SocketNotifier extends StateNotifier { return; } - var url = "//$hostname:$port"; + var url = "//$hostname"; + if (port != null) url += ":$port"; if (token != null) url += "?token=$token"; debugPrint("Initializing socket"); diff --git a/app/lib/pages/connect_page.dart b/app/lib/pages/connect_page.dart index 9bbc0666cc..3a2e4476b0 100644 --- a/app/lib/pages/connect_page.dart +++ b/app/lib/pages/connect_page.dart @@ -15,13 +15,13 @@ import "package:typewriter/widgets/components/general/text_scroller.dart"; class ConnectPage extends HookConsumerWidget { const ConnectPage({ @QueryParam("host") this.hostname = "", - @QueryParam() this.port = 9092, + @QueryParam() this.port, @QueryParam() this.token = "", super.key, }); final String hostname; - final int port; + final int? port; final String token; @override diff --git a/app/lib/pages/page_editor.g.dart b/app/lib/pages/page_editor.g.dart index a6e3708427..c37cce2478 100644 --- a/app/lib/pages/page_editor.g.dart +++ b/app/lib/pages/page_editor.g.dart @@ -21,7 +21,7 @@ final currentPageIdProvider = Provider.internal( ); typedef CurrentPageIdRef = ProviderRef; -String _$currentPageLabelHash() => r'3a0685c6033a322a1538a72ce9f77abd6add0ab9'; +String _$currentPageLabelHash() => r'c151e5e2c16b7898a651f065a7977975b413e9fe'; /// See also [currentPageLabel]. @ProviderFor(currentPageLabel) diff --git a/app/lib/widgets/components/app/cinematic_view.g.dart b/app/lib/widgets/components/app/cinematic_view.g.dart index 8e392461f7..797350c2f6 100644 --- a/app/lib/widgets/components/app/cinematic_view.g.dart +++ b/app/lib/widgets/components/app/cinematic_view.g.dart @@ -314,7 +314,7 @@ class _EndingFrameProviderElement extends AutoDisposeProviderElement } String _$entryContextActionsHash() => - r'328ae81dcb26da060ea5514c1336cb20903dd0da'; + r'06b97aad5ea69b9a379f88525625aa8c7065d4c3'; /// See also [_entryContextActions]. @ProviderFor(_entryContextActions) diff --git a/app/lib/widgets/components/app/entries_graph.g.dart b/app/lib/widgets/components/app/entries_graph.g.dart index 66be81fe29..571312306b 100644 --- a/app/lib/widgets/components/app/entries_graph.g.dart +++ b/app/lib/widgets/components/app/entries_graph.g.dart @@ -314,7 +314,7 @@ class _IsTriggerableEntryProviderElement String get entryId => (origin as IsTriggerableEntryProvider).entryId; } -String _$entryTriggersHash() => r'9f94cc8f305332fa1eb2e6497eb8e854c0a2f674'; +String _$entryTriggersHash() => r'4ec3a031e89297970f17d2449e2ebb01022596ee'; /// See also [entryTriggers]. @ProviderFor(entryTriggers) diff --git a/app/lib/widgets/components/app/manifest_view.g.dart b/app/lib/widgets/components/app/manifest_view.g.dart index e0c201267e..258f89a0cb 100644 --- a/app/lib/widgets/components/app/manifest_view.g.dart +++ b/app/lib/widgets/components/app/manifest_view.g.dart @@ -36,7 +36,7 @@ final manifestEntryIdsProvider = AutoDisposeProvider>.internal( ); typedef ManifestEntryIdsRef = AutoDisposeProviderRef>; -String _$entryReferencesHash() => r'cde5b6567d34b8c894d75ef53f8a87d5920545b5'; +String _$entryReferencesHash() => r'b8ca36aa7d61848c32cf0ae6af8de3fcb49a8fa2'; /// Copied from Dart SDK class _SystemHash { diff --git a/app/lib/widgets/inspector/editors.g.dart b/app/lib/widgets/inspector/editors.g.dart index 15b94966fc..d94358755c 100644 --- a/app/lib/widgets/inspector/editors.g.dart +++ b/app/lib/widgets/inspector/editors.g.dart @@ -172,7 +172,7 @@ class _FieldValueProviderElement extends AutoDisposeProviderElement dynamic get defaultValue => (origin as FieldValueProvider).defaultValue; } -String _$editorFiltersHash() => r'366b75c5458ea9d05cc8e7e04c03fafe897e70a4'; +String _$editorFiltersHash() => r'a930a14014315dc791e63b4f9d463ee922db9ef7'; /// See also [editorFilters]. @ProviderFor(editorFilters) diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/CommunicationHandler.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/CommunicationHandler.kt index 6806f409b0..fd156668de 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/CommunicationHandler.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/CommunicationHandler.kt @@ -12,6 +12,7 @@ import com.typewritermc.engine.paper.logger import com.typewritermc.engine.paper.plugin import com.typewritermc.engine.paper.utils.config import com.typewritermc.engine.paper.utils.logErrorIfNull +import com.typewritermc.engine.paper.utils.optionalConfig import org.bukkit.entity.Player import org.koin.core.component.KoinComponent import org.koin.core.component.inject @@ -36,13 +37,14 @@ class CommunicationHandler : KoinComponent { 8080, comment = "The port of the web panel. Make sure this port is open." ) - private val BASE_URL get() = "http://${hostName}:${panelPort}/#" + private val panelAppendPort: Boolean? by optionalConfig("panel.append_port") + private val enabled: Boolean by config( "enabled", false, comment = "Whether the web panel and web sockets are enabled." ) - private val port: Int by config( + private val webSocketPort: Int by config( "websocket.port", 9092, comment = "The port of the websocket server. Make sure this port is open." @@ -52,7 +54,11 @@ class CommunicationHandler : KoinComponent { |The authentication that is used. Leave unchanged if you don't know what you are doing. |Possible values: none (not recommended), session """.trimMargin() - ) // Possible values: none, session + ) + private val websocketHostname: String? by optionalConfig("websocket.hostname") + private val websocketAppendPort: Boolean? by optionalConfig("websocket.append_port") + + val authenticationEnabled: Boolean get() = auth == "session" @@ -67,7 +73,7 @@ class CommunicationHandler : KoinComponent { panelHost.initialize() val config = Configuration().apply { hostname = "0.0.0.0" - port = this@CommunicationHandler.port + port = this@CommunicationHandler.webSocketPort setAuthorizationListener(this@CommunicationHandler::authenticate) } @@ -159,12 +165,15 @@ class CommunicationHandler : KoinComponent { } fun generateUrl(playerId: UUID?): String { - if (auth == "none") return "$BASE_URL/connect?host=$hostName&port=$port" - if (auth == "session") { - val token = generateSessionToken(playerId) - return "$BASE_URL/connect?host=$hostName&port=$port&token=$token" - } - return "" + var url: String = if (hostName.startsWith("http")) hostName + else "http://${hostName}" + + if (panelAppendPort != false) url += ":${panelPort}" + url += "/#/connect?host=${websocketHostname ?: hostName}" + if (websocketAppendPort != false) url += "?port=${webSocketPort}" + if (auth == "session") url += "&token=${generateSessionToken(playerId)}" + + return url } fun getPlayer(client: SocketIOClient): Player? { diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Config.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Config.kt index 0ecd73642d..a8bdcd3443 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Config.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Config.kt @@ -35,4 +35,24 @@ class ConfigPropertyDelegate( } operator fun getValue(thisRef: Any, property: KProperty<*>): T = getValue(null, property) +} + +inline fun optionalConfig(key: String) = + OptionalConfigPropertyDelegate(key, T::class) + +class OptionalConfigPropertyDelegate( + private val key: String, + private val klass: KClass, +) { + operator fun getValue(thisRef: Nothing?, property: KProperty<*>): T? { + val value = plugin.config.get(key) ?: return null + val t = klass.safeCast(value) + if (t == null) { + logger.warning("Invalid value for config key '$key', expected ${klass.simpleName}, got ${value::class.simpleName}") + return null + } + return t + } + + operator fun getValue(thisRef: Any, property: KProperty<*>): T? = getValue(null, property) } \ No newline at end of file From 8cb275393bab2368f0da018a9892f9b92f7cbdcd Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 17:06:50 +0200 Subject: [PATCH 30/41] We don't need to set the title when creating a task as it will already be updated by the webhook --- discord_bot/src/discord/create_task.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/discord_bot/src/discord/create_task.rs b/discord_bot/src/discord/create_task.rs index 302dc1a904..390724ec89 100644 --- a/discord_bot/src/discord/create_task.rs +++ b/discord_bot/src/discord/create_task.rs @@ -79,10 +79,6 @@ pub async fn create_task( ) .await?; - channel - .edit_thread(ctx, EditThread::default().name(title)) - .await?; - Ok(()) } From a2222f851af42a9a5797aefe8ca065f5ef06e688 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 18:33:54 +0200 Subject: [PATCH 31/41] Improve interation and packet handling --- engine/engine-paper/build.gradle.kts | 4 ++-- .../paper/interaction/InteractionHandler.kt | 3 ++- .../paper/interaction/PacketInterceptor.kt | 17 ++++++++++++++--- .../engine/paper/utils/Extensions.kt | 15 --------------- .../entries/cinematic/CameraCinematicEntry.kt | 15 ++++++++------- 5 files changed, 26 insertions(+), 28 deletions(-) diff --git a/engine/engine-paper/build.gradle.kts b/engine/engine-paper/build.gradle.kts index ab7eea8364..be5b5253fe 100644 --- a/engine/engine-paper/build.gradle.kts +++ b/engine/engine-paper/build.gradle.kts @@ -38,8 +38,8 @@ dependencies { api(project(":engine-loader")) api("me.tofaa.entitylib:spigot:2.4.9-SNAPSHOT") - api("com.github.shynixn.mccoroutine:mccoroutine-bukkit-api:2.17.0") - api("com.github.shynixn.mccoroutine:mccoroutine-bukkit-core:2.17.0") + api("com.github.shynixn.mccoroutine:mccoroutine-bukkit-api:2.19.0") + api("com.github.shynixn.mccoroutine:mccoroutine-bukkit-core:2.19.0") api("dev.jorel:commandapi-bukkit-shade:9.5.3") api("dev.jorel:commandapi-bukkit-kotlin:9.5.3") diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/InteractionHandler.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/InteractionHandler.kt index 9ebf3eb8ea..7985481087 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/InteractionHandler.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/InteractionHandler.kt @@ -12,6 +12,7 @@ import com.typewritermc.engine.paper.plugin import com.typewritermc.engine.paper.snippets.snippet import com.typewritermc.engine.paper.utils.ThreadType.DISPATCHERS_ASYNC import kotlinx.coroutines.runBlocking +import lirand.api.extensions.server.registerEvents import lirand.api.extensions.server.registerSuspendingEvents import lirand.api.extensions.server.server import org.bukkit.entity.Player @@ -97,7 +98,7 @@ class InteractionHandler : Listener, KoinComponent { } fun initialize() { - plugin.registerSuspendingEvents(this) + plugin.registerEvents(this) } // When a player joins the server, we need to create an interaction for them. diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/PacketInterceptor.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/PacketInterceptor.kt index 10df4fb75b..b6372845cf 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/PacketInterceptor.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/PacketInterceptor.kt @@ -53,6 +53,13 @@ class PacketInterceptor : PacketListenerAbstract() { } } + fun cancel(player: UUID, bundle: InterceptionBundle) { + blockers.compute(player) { _, blocker -> + val newBlocker = blocker ?: return@compute null + if (newBlocker.cancel(bundle)) null else newBlocker + } + } + fun shutdown() { PacketEvents.getAPI().eventManager.unregisterListener(this) blockers.clear() @@ -75,6 +82,11 @@ private data class PlayerPacketInterceptor( return interceptions.isEmpty() } + fun cancel(bundle: InterceptionBundle): Boolean { + bundle.subscriptions.forEach { cancel(it) } + return interceptions.isEmpty() + } + fun trigger(event: ProtocolPacketEvent) { interceptions.values .asSequence() @@ -127,7 +139,7 @@ fun Player.interceptPackets(block: InterceptionBundle.() -> Unit): InterceptionB } class InterceptionBundle(private val playerId: UUID) { - private val subscriptions = mutableListOf() + internal val subscriptions = mutableListOf() private fun intercept(interception: PacketInterception) { val subscription = get(PacketInterceptor::class.java).interceptPacket(playerId, interception) @@ -150,7 +162,6 @@ class InterceptionBundle(private val playerId: UUID) { fun cancel() { val interceptor = get(PacketInterceptor::class.java) - subscriptions.forEach { interceptor.cancel(playerId, it) } - subscriptions.clear() + interceptor.cancel(playerId, this) } } diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Extensions.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Extensions.kt index 8c951cbe40..1808065a32 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Extensions.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/utils/Extensions.kt @@ -68,18 +68,6 @@ fun Audience.playSound( ) = playSound(Sound.sound(Key.key(sound), source, volume, pitch)) -val Player.isHighUp: Boolean - get() = this.location.isHighUp -val Location.isHighUp: Boolean - get() = this.y >= highUpLocation.y - -val Location.highUpLocation: Location - get() { - val location = toHighestLocation() - location.y += 200 - return location - } - fun Location.distanceSqrt(other: Location): Double? { if (world != other.world) return null val dx = x - other.x @@ -99,9 +87,6 @@ fun Location.lerp(other: Location, amount: Double): Location { val Location.up: Location get() = clone().apply { y += 1 } -val Location.down: Location - get() = clone().apply { y -= 1 } - val Location.firstWalkableLocationBelow: Location get() = clone().apply { while (block.isPassable) y-- diff --git a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/CameraCinematicEntry.kt b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/CameraCinematicEntry.kt index 4a1b0a4a1f..25f29a3a49 100644 --- a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/CameraCinematicEntry.kt +++ b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/cinematic/CameraCinematicEntry.kt @@ -236,14 +236,15 @@ class CameraCinematicAction( private suspend fun Player.teardown() { listener?.unregister() listener = null - interceptor?.cancel() - interceptor = null - originalState?.let { - SYNC.switchContext { + SYNC.switchContext { + interceptor?.cancel() + interceptor = null + + originalState?.let { restore(it) - if (gameMode != GameMode.CREATIVE) { - restoreInventory() - } + } + if (gameMode != GameMode.CREATIVE) { + restoreInventory() } } originalState = null From d131595432b95db53d6f14f876cbb6ec2f0dc166 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 18:35:11 +0200 Subject: [PATCH 32/41] Create MythicMobKillPlayerEventEntry --- .../event/MythicMobKillPlayerEventEntry.kt | 69 +++++++++++-------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/extensions/MythicMobsExtension/src/main/kotlin/com/typewritermc/mythicmobs/entries/event/MythicMobKillPlayerEventEntry.kt b/extensions/MythicMobsExtension/src/main/kotlin/com/typewritermc/mythicmobs/entries/event/MythicMobKillPlayerEventEntry.kt index cf1da81cdd..b1c547985b 100644 --- a/extensions/MythicMobsExtension/src/main/kotlin/com/typewritermc/mythicmobs/entries/event/MythicMobKillPlayerEventEntry.kt +++ b/extensions/MythicMobsExtension/src/main/kotlin/com/typewritermc/mythicmobs/entries/event/MythicMobKillPlayerEventEntry.kt @@ -1,35 +1,44 @@ package com.typewritermc.mythicmobs.entries.event -/** TODO: - * Since minecraft 1.20.5 changed how the player death event source is handled, - * we cannot support it for 1.20.4 and 1.20.5 at the same time. - * So we can use this again once we drop support for 1.20.4 +import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.entries.Query +import com.typewritermc.core.entries.Ref +import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.core.extension.annotations.EntryListener +import com.typewritermc.core.extension.annotations.Help +import com.typewritermc.core.extension.annotations.Placeholder +import com.typewritermc.core.extension.annotations.Regex +import com.typewritermc.engine.paper.entry.TriggerableEntry +import com.typewritermc.engine.paper.entry.entries.EventEntry +import com.typewritermc.engine.paper.entry.triggerAllFor +import io.lumine.mythic.bukkit.MythicBukkit +import org.bukkit.event.entity.PlayerDeathEvent +import java.util.* + + +@Entry("mythicmobs_kill_player_event", "MythicMob Kill Player Event", Colors.YELLOW, "fa6-solid:skull") +/** + * The `MythicMob Kill Player Event` event is triggered when MythicMob kills a player. + * + * ## How could this be used? + * When the player is killed by a certain monster, there is a probability that the monster will drag them back to their lair. */ +class MythicMobKillPlayerEventEntry( + override val id: String = "", + override val name: String = "", + override val triggers: List> = emptyList(), + @Help("The type of the MythicMob that killed the player") + @Placeholder + @Regex + val mythicMobType: Optional = Optional.empty(), +) : EventEntry +@EntryListener(MythicMobKillPlayerEventEntry::class) +fun onMythicMobKillPlayer(event: PlayerDeathEvent, query: Query) { + val causingEntity = event.damageSource.causingEntity ?: return + val mythicMob = MythicBukkit.inst().mobManager.getMythicMobInstance(causingEntity) ?: return -//@Entry("mythicmobs_kill_player_event", "MythicMob Kill Player Event", Colors.YELLOW, "fa6-solid:skull") -///** -// * The `MythicMob Kill Player Event` event is triggered when MythicMob kills a player. -// * -// * ## How could this be used? -// * When the player is killed by a certain monster, there is a probability that the monster will drag them back to their lair. -// */ -//class MythicMobKillPlayerEventEntry( -// override val id: String = "", -// override val name: String = "", -// override val triggers: List> = emptyList(), -// @Help("The type of the MythicMob that killed the player") -// @Placeholder -// @Regex -// val mythicMobType: Optional = Optional.empty(), -//) : EventEntry -// -//@EntryListener(MythicMobKillPlayerEventEntry::class) -//fun onMythicMobKillPlayer(event: PlayerDeathEvent, query: Query) { -// val causingEntity = event.damageSource.causingEntity ?: return -// val mythicMob = MythicBukkit.inst().mobManager.getMythicMobInstance(causingEntity) ?: return -// -// query findWhere { entry -> -// entry.mythicMobType.map { it.toRegex().matches(mythicMob.mobType) }.orElse(true) -// } triggerAllFor event.player -//} \ No newline at end of file + query findWhere { entry -> + entry.mythicMobType.map { it.toRegex().matches(mythicMob.mobType) }.orElse(true) + } triggerAllFor event.player +} \ No newline at end of file From 7f3e2a3ac61423021297fd739dd6740f29cbc03a Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 19:24:15 +0200 Subject: [PATCH 33/41] Fix flutter beta deprecations --- app/lib/app_router.dart | 2 +- app/lib/app_router.gr.dart | 150 ++++++++---------- app/lib/main.dart | 8 +- app/lib/pages/book_page.dart | 2 +- app/lib/pages/pages_list.dart | 2 +- app/lib/utils/color_converter.dart | 1 + .../components/app/cinematic_view.dart | 14 +- .../widgets/components/app/entry_node.dart | 4 +- .../widgets/components/app/search_bar.dart | 18 ++- app/lib/widgets/components/app/writers.dart | 1 + .../components/general/admonition.dart | 2 +- .../general/context_menu_region.dart | 6 +- .../components/general/filled_button.dart | 4 +- .../components/general/outline_button.dart | 8 +- app/lib/widgets/inspector/editors/color.dart | 1 + app/lib/widgets/inspector/editors/item.dart | 6 +- app/lib/widgets/inspector/editors/list.dart | 1 - .../inspector/headers/help_action.dart | 2 +- .../inspector/headers/info_action.dart | 2 +- app/lib/widgets/inspector/heading.dart | 2 +- app/pubspec.lock | 8 +- app/pubspec.yaml | 2 +- 22 files changed, 116 insertions(+), 130 deletions(-) diff --git a/app/lib/app_router.dart b/app/lib/app_router.dart index 79348959e6..0a1ec7401e 100644 --- a/app/lib/app_router.dart +++ b/app/lib/app_router.dart @@ -21,7 +21,7 @@ final appRouter = Provider((ref) => AppRouter(ref: ref.passing)); @AutoRouterConfig( replaceInRouteName: "Page,Route", ) -class AppRouter extends _$AppRouter { +class AppRouter extends RootStackRouter { AppRouter({ required this.ref, }); diff --git a/app/lib/app_router.gr.dart b/app/lib/app_router.gr.dart index 68799685dc..1c07ed5699 100644 --- a/app/lib/app_router.gr.dart +++ b/app/lib/app_router.gr.dart @@ -9,81 +9,6 @@ part of 'app_router.dart'; -abstract class _$AppRouter extends RootStackRouter { - // ignore: unused_element - _$AppRouter({super.navigatorKey}); - - @override - final Map pagesMap = { - BookRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const BookPage(), - ); - }, - ConnectRoute.name: (routeData) { - final queryParams = routeData.queryParams; - final args = routeData.argsAs( - orElse: () => ConnectRouteArgs( - hostname: queryParams.getString( - 'host', - "", - ), - port: queryParams.optInt('port'), - token: queryParams.getString( - 'token', - "", - ), - )); - return AutoRoutePage( - routeData: routeData, - child: ConnectPage( - hostname: args.hostname, - port: args.port, - token: args.token, - key: args.key, - ), - ); - }, - EmptyPageEditorRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const EmptyPageEditor(), - ); - }, - ErrorConnectRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const ErrorConnectPage(), - ); - }, - HomeRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const HomePage(), - ); - }, - PageEditorRoute.name: (routeData) { - final pathParams = routeData.inheritedPathParams; - final args = routeData.argsAs( - orElse: () => PageEditorRouteArgs(id: pathParams.getString('id'))); - return AutoRoutePage( - routeData: routeData, - child: PageEditor( - id: args.id, - key: args.key, - ), - ); - }, - PagesListRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const PagesList(), - ); - }, - }; -} - /// generated route for /// [BookPage] class BookRoute extends PageRouteInfo { @@ -95,7 +20,12 @@ class BookRoute extends PageRouteInfo { static const String name = 'BookRoute'; - static const PageInfo page = PageInfo(name); + static PageInfo page = PageInfo( + name, + builder: (data) { + return const BookPage(); + }, + ); } /// generated route for @@ -125,8 +55,30 @@ class ConnectRoute extends PageRouteInfo { static const String name = 'ConnectRoute'; - static const PageInfo page = - PageInfo(name); + static PageInfo page = PageInfo( + name, + builder: (data) { + final queryParams = data.queryParams; + final args = data.argsAs( + orElse: () => ConnectRouteArgs( + hostname: queryParams.getString( + 'host', + "", + ), + port: queryParams.optInt('port'), + token: queryParams.getString( + 'token', + "", + ), + )); + return ConnectPage( + hostname: args.hostname, + port: args.port, + token: args.token, + key: args.key, + ); + }, + ); } class ConnectRouteArgs { @@ -162,7 +114,12 @@ class EmptyPageEditorRoute extends PageRouteInfo { static const String name = 'EmptyPageEditorRoute'; - static const PageInfo page = PageInfo(name); + static PageInfo page = PageInfo( + name, + builder: (data) { + return const EmptyPageEditor(); + }, + ); } /// generated route for @@ -176,7 +133,12 @@ class ErrorConnectRoute extends PageRouteInfo { static const String name = 'ErrorConnectRoute'; - static const PageInfo page = PageInfo(name); + static PageInfo page = PageInfo( + name, + builder: (data) { + return const ErrorConnectPage(); + }, + ); } /// generated route for @@ -190,7 +152,12 @@ class HomeRoute extends PageRouteInfo { static const String name = 'HomeRoute'; - static const PageInfo page = PageInfo(name); + static PageInfo page = PageInfo( + name, + builder: (data) { + return const HomePage(); + }, + ); } /// generated route for @@ -212,8 +179,18 @@ class PageEditorRoute extends PageRouteInfo { static const String name = 'PageEditorRoute'; - static const PageInfo page = - PageInfo(name); + static PageInfo page = PageInfo( + name, + builder: (data) { + final pathParams = data.inheritedPathParams; + final args = data.argsAs( + orElse: () => PageEditorRouteArgs(id: pathParams.getString('id'))); + return PageEditor( + id: args.id, + key: args.key, + ); + }, + ); } class PageEditorRouteArgs { @@ -243,5 +220,10 @@ class PagesListRoute extends PageRouteInfo { static const String name = 'PagesListRoute'; - static const PageInfo page = PageInfo(name); + static PageInfo page = PageInfo( + name, + builder: (data) { + return const PagesList(); + }, + ); } diff --git a/app/lib/main.dart b/app/lib/main.dart index f299664563..fe0a0124be 100644 --- a/app/lib/main.dart +++ b/app/lib/main.dart @@ -64,10 +64,10 @@ class TypeWriterApp extends HookConsumerWidget { borderSide: BorderSide.none, ), fillColor: brightness == Brightness.light - ? Colors.black.withOpacity(0.05) - : Colors.black.withOpacity(0.2), + ? Colors.black.withValues(alpha: 0.05) + : Colors.black.withValues(alpha: 0.2), filled: true, - hoverColor: Colors.black.withOpacity(0.1), + hoverColor: Colors.black.withValues(alpha: 0.1), errorStyle: const TextStyle( color: Colors.redAccent, fontSize: 12, @@ -88,7 +88,7 @@ class TypeWriterApp extends HookConsumerWidget { borderSide: const BorderSide(color: Colors.red, width: 2), ), ), - hoverColor: Colors.black.withOpacity(0.1), + hoverColor: Colors.black.withValues(alpha: 0.1), colorScheme: baseTheme.colorScheme.copyWith( primary: Colors.blueAccent, brightness: brightness, diff --git a/app/lib/pages/book_page.dart b/app/lib/pages/book_page.dart index 6c4d955686..c59a196370 100644 --- a/app/lib/pages/book_page.dart +++ b/app/lib/pages/book_page.dart @@ -177,7 +177,7 @@ class _RailButton extends HookConsumerWidget { final tabRouter = context.tabsRouter; final isSelected = tabRouter.activeIndex == index; return Material( - color: isSelected ? Colors.white.withOpacity(0.15) : Colors.transparent, + color: isSelected ? Colors.white.withValues(alpha:0.15) : Colors.transparent, borderRadius: BorderRadius.circular(8), child: InkWell( onTap: () => tabRouter.setActiveIndex(index), diff --git a/app/lib/pages/pages_list.dart b/app/lib/pages/pages_list.dart index 4bd0980e79..939f807c73 100644 --- a/app/lib/pages/pages_list.dart +++ b/app/lib/pages/pages_list.dart @@ -342,7 +342,7 @@ class _TreeCategory extends HookConsumerWidget { width: 6, margin: EdgeInsets.only(left: showFull ? 14 : 10), decoration: BoxDecoration( - color: Colors.black.withOpacity(0.2), + color: Colors.black.withValues(alpha:0.2), borderRadius: BorderRadius.circular(2), ), ), diff --git a/app/lib/utils/color_converter.dart b/app/lib/utils/color_converter.dart index 92027601ee..d974bbe2c1 100644 --- a/app/lib/utils/color_converter.dart +++ b/app/lib/utils/color_converter.dart @@ -30,6 +30,7 @@ class NullableColorConverter extends JsonConverter { String? toJson(Color? object) { if (object == null) return null; + // ignore: deprecated_member_use final hex = object.value.toRadixString(16).padLeft(8, "0"); return "#$hex"; } diff --git a/app/lib/widgets/components/app/cinematic_view.dart b/app/lib/widgets/components/app/cinematic_view.dart index bc3d280e45..60b4aec23f 100644 --- a/app/lib/widgets/components/app/cinematic_view.dart +++ b/app/lib/widgets/components/app/cinematic_view.dart @@ -712,7 +712,7 @@ class _BackgroundLinePainter extends CustomPainter { ..strokeWidth = 1; final secondaryPaint = Paint() - ..color = Colors.grey.shade700.withOpacity(0.5) + ..color = Colors.grey.shade700.withValues(alpha:0.5) ..strokeWidth = 1; for (final line in lines) { @@ -1298,7 +1298,7 @@ class _SegmentDurationDisplay extends HookConsumerWidget { "Total Duration: $secondsWithDecimal seconds ($totalTime frames)", style: Theme.of(context).textTheme.bodySmall?.apply( color: - Theme.of(context).textTheme.bodySmall?.color?.withOpacity(0.8), + Theme.of(context).textTheme.bodySmall?.color?.withValues(alpha:0.8), fontStyle: FontStyle.italic, ), ); @@ -1487,8 +1487,8 @@ class _SegmentSelectorTile extends HookConsumerWidget { segment.icon, size: 16, color: color.computeLuminance() > 0.5 - ? Colors.black.withOpacity(0.6) - : Colors.white.withOpacity(0.6), + ? Colors.black.withValues(alpha:0.6) + : Colors.white.withValues(alpha:0.6), ), const SizedBox(width: 8), Text( @@ -1505,8 +1505,8 @@ class _SegmentSelectorTile extends HookConsumerWidget { TWIcons.angleRight, size: 12, color: color.computeLuminance() > 0.5 - ? Colors.black.withOpacity(0.5) - : Colors.white.withOpacity(0.5), + ? Colors.black.withValues(alpha:0.5) + : Colors.white.withValues(alpha:0.5), ), ], ), @@ -1608,7 +1608,7 @@ class _SegmentWidget extends HookConsumerWidget { ? Border.all( color: context.isDark ? Colors.white - : Colors.black.withOpacity(0.4), + : Colors.black.withValues(alpha:0.4), width: 2, ) : Border.all(color: Colors.transparent, width: 2), diff --git a/app/lib/widgets/components/app/entry_node.dart b/app/lib/widgets/components/app/entry_node.dart index 43e56d6992..2cd192d675 100644 --- a/app/lib/widgets/components/app/entry_node.dart +++ b/app/lib/widgets/components/app/entry_node.dart @@ -676,7 +676,7 @@ class ExternalEntryNode extends HookConsumerWidget { color: Theme.of(context).scaffoldBackgroundColor, child: Material( animationDuration: 300.ms, - color: blueprint.color.withOpacity(0.6), + color: blueprint.color.withValues(alpha:0.6), shape: RoundedRectangleBorder( side: BorderSide(color: blueprint.color, width: 3), borderRadius: BorderRadius.circular(4), @@ -730,7 +730,7 @@ class ExternalEntryNode extends HookConsumerWidget { Text( pageName, style: TextStyle( - color: color.withOpacity(0.7), + color: color.withValues(alpha:0.7), fontSize: 11, ), ), diff --git a/app/lib/widgets/components/app/search_bar.dart b/app/lib/widgets/components/app/search_bar.dart index 15bc8d2b5d..ceeec7d790 100644 --- a/app/lib/widgets/components/app/search_bar.dart +++ b/app/lib/widgets/components/app/search_bar.dart @@ -517,7 +517,7 @@ class _Barrier extends HookConsumerWidget { return Positioned.fill( child: ModalBarrier( dismissible: true, - color: Colors.black.withOpacity(0.5), + color: Colors.black.withValues(alpha: 0.5), onDismiss: () { ref.read(searchProvider.notifier).endSearch(); }, @@ -587,7 +587,7 @@ class _FetcherChip extends HookConsumerWidget { return Material( color: switch (status) { FetchStatus.fetching => fetcher.color, - FetchStatus.quantifierBlocked => fetcher.color.withOpacity(0.3), + FetchStatus.quantifierBlocked => fetcher.color.withValues(alpha: 0.3), FetchStatus.disabled => Theme.of(context).cardColor, }, borderRadius: BorderRadius.circular(30), @@ -612,7 +612,7 @@ class _FetcherChip extends HookConsumerWidget { fetcher.icon, color: status != FetchStatus.quantifierBlocked ? Colors.white - : Colors.white.withOpacity(0.3), + : Colors.white.withValues(alpha: 0.3), size: 16, ), const SizedBox(width: 8), @@ -621,7 +621,7 @@ class _FetcherChip extends HookConsumerWidget { style: TextStyle( color: status != FetchStatus.quantifierBlocked ? Colors.white - : Colors.white.withOpacity(0.3), + : Colors.white.withValues(alpha: 0.3), ), ), ], @@ -694,8 +694,9 @@ class _ResultTile extends HookConsumerWidget { curve: Curves.fastLinearToSlowEaseIn, height: 56.0, width: 400, - color: - focused.value ? color.withOpacity(0.6) : Colors.transparent, + color: focused.value + ? color.withValues(alpha: 0.6) + : Colors.transparent, child: Focus( focusNode: focusNode, autofocus: true, @@ -711,8 +712,9 @@ class _ResultTile extends HookConsumerWidget { children: [ Container( height: double.infinity, - color: - color.withOpacity(color.opacity.clamp(0, 0.8)), + color: color.withValues( + alpha: color.a.clamp(0, 0.8), + ), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0), diff --git a/app/lib/widgets/components/app/writers.dart b/app/lib/widgets/components/app/writers.dart index 3f5c2fbe84..f13e69ca4e 100644 --- a/app/lib/widgets/components/app/writers.dart +++ b/app/lib/widgets/components/app/writers.dart @@ -159,6 +159,7 @@ class WriterIcon extends HookWidget { Widget _icon(Color color) { if (writer.iconUrl == null) { // We want to remove the opacity from the color which is the first two characters + // ignore: deprecated_member_use final colorValue = color.value & 0xFFFFFF; final url = "https://api.dicebear.com/8.x/adventurer-neutral/svg?backgroundColor=${colorValue.toRadixString(16)}&seed=${writer.id}"; diff --git a/app/lib/widgets/components/general/admonition.dart b/app/lib/widgets/components/general/admonition.dart index eff7d24abe..518746384a 100644 --- a/app/lib/widgets/components/general/admonition.dart +++ b/app/lib/widgets/components/general/admonition.dart @@ -39,7 +39,7 @@ class Admonition extends StatelessWidget { @override Widget build(BuildContext context) { return Material( - color: color.withOpacity(0.1), + color: color.withValues(alpha:0.1), shape: RoundedRectangleBorder( side: BorderSide( color: color, diff --git a/app/lib/widgets/components/general/context_menu_region.dart b/app/lib/widgets/components/general/context_menu_region.dart index 570574b9f5..98c0a4eb42 100644 --- a/app/lib/widgets/components/general/context_menu_region.dart +++ b/app/lib/widgets/components/general/context_menu_region.dart @@ -278,9 +278,9 @@ class _ContextMenuButton extends StatelessWidget { borderRadius: BorderRadius.circular(8), child: InkWell( onTap: tile.onTap, - hoverColor: tile.color?.withOpacity(0.15), - highlightColor: tile.color?.withOpacity(0.2), - splashColor: tile.color?.withOpacity(0.3), + hoverColor: tile.color?.withValues(alpha:0.15), + highlightColor: tile.color?.withValues(alpha:0.2), + splashColor: tile.color?.withValues(alpha:0.3), borderRadius: BorderRadius.circular(8), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), diff --git a/app/lib/widgets/components/general/filled_button.dart b/app/lib/widgets/components/general/filled_button.dart index 66b55ddebb..431ce9147e 100644 --- a/app/lib/widgets/components/general/filled_button.dart +++ b/app/lib/widgets/components/general/filled_button.dart @@ -35,8 +35,8 @@ class FilledButton extends HookConsumerWidget { style: TextButton.styleFrom( backgroundColor: color ?? Theme.of(context).colorScheme.primary, foregroundColor: Colors.white, - disabledBackgroundColor: color?.withOpacity(0.7) ?? - Theme.of(context).colorScheme.primary.withOpacity(0.7), + disabledBackgroundColor: color?.withValues(alpha:0.7) ?? + Theme.of(context).colorScheme.primary.withValues(alpha:0.7), padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 24), shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(8)), diff --git a/app/lib/widgets/components/general/outline_button.dart b/app/lib/widgets/components/general/outline_button.dart index 1b9f22de2f..9c5a47a98a 100644 --- a/app/lib/widgets/components/general/outline_button.dart +++ b/app/lib/widgets/components/general/outline_button.dart @@ -35,12 +35,12 @@ class OutlineButton extends HookConsumerWidget { style: OutlinedButton.styleFrom( foregroundColor: color ?? Theme.of(context).colorScheme.primary, side: BorderSide( - color: color?.withOpacity(0.6) ?? - Theme.of(context).colorScheme.primary.withOpacity(0.6), + color: color?.withValues(alpha:0.6) ?? + Theme.of(context).colorScheme.primary.withValues(alpha:0.6), width: 2, ), - disabledBackgroundColor: color?.withOpacity(0.3) ?? - Theme.of(context).colorScheme.primary.withOpacity(0.3), + disabledBackgroundColor: color?.withValues(alpha:0.3) ?? + Theme.of(context).colorScheme.primary.withValues(alpha:0.3), padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 24), shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(8)), diff --git a/app/lib/widgets/inspector/editors/color.dart b/app/lib/widgets/inspector/editors/color.dart index 3b89e9ea55..37090ba0db 100644 --- a/app/lib/widgets/inspector/editors/color.dart +++ b/app/lib/widgets/inspector/editors/color.dart @@ -51,6 +51,7 @@ class ColorEditor extends HookConsumerWidget { onColorChanged: (color) { ref .read(inspectingEntryDefinitionProvider) + // ignore: deprecated_member_use ?.updateField(ref.passing, path, color.value); }, ); diff --git a/app/lib/widgets/inspector/editors/item.dart b/app/lib/widgets/inspector/editors/item.dart index fcf7765c4f..05687829c6 100644 --- a/app/lib/widgets/inspector/editors/item.dart +++ b/app/lib/widgets/inspector/editors/item.dart @@ -144,7 +144,7 @@ class _ItemChip extends HookConsumerWidget { final foregroundColor = enabled ? Theme.of(context).colorScheme.primary - : Theme.of(context).colorScheme.onSurface.withOpacity(0.7); + : Theme.of(context).colorScheme.onSurface.withValues(alpha:0.7); return InputChip( label: Text(id.titleCase(), style: TextStyle(color: foregroundColor)), @@ -153,8 +153,8 @@ class _ItemChip extends HookConsumerWidget { size: 14, color: foregroundColor, ), - backgroundColor: Theme.of(context).colorScheme.onSurface.withOpacity(0.1), - selectedColor: Theme.of(context).colorScheme.primary.withOpacity(0.1), + backgroundColor: Theme.of(context).colorScheme.onSurface.withValues(alpha:0.1), + selectedColor: Theme.of(context).colorScheme.primary.withValues(alpha:0.1), side: BorderSide.none, showCheckmark: false, selected: enabled, diff --git a/app/lib/widgets/inspector/editors/list.dart b/app/lib/widgets/inspector/editors/list.dart index f1846a10b2..743d267150 100644 --- a/app/lib/widgets/inspector/editors/list.dart +++ b/app/lib/widgets/inspector/editors/list.dart @@ -6,7 +6,6 @@ import "package:typewriter/models/entry_blueprint.dart"; import "package:typewriter/utils/extensions.dart"; import "package:typewriter/utils/icons.dart"; import "package:typewriter/utils/passing_reference.dart"; -import "package:typewriter/widgets/components/general/filled_button.dart"; import "package:typewriter/widgets/components/general/iconify.dart"; import "package:typewriter/widgets/components/general/outline_button.dart"; import "package:typewriter/widgets/inspector/editors.dart"; diff --git a/app/lib/widgets/inspector/headers/help_action.dart b/app/lib/widgets/inspector/headers/help_action.dart index 1052e0c7f3..99b615e5e5 100644 --- a/app/lib/widgets/inspector/headers/help_action.dart +++ b/app/lib/widgets/inspector/headers/help_action.dart @@ -39,7 +39,7 @@ class HelpHeaderAction extends HookConsumerWidget { child: Icon( Icons.help_outline, size: 16, - color: Theme.of(context).textTheme.bodySmall?.color?.withOpacity(0.6), + color: Theme.of(context).textTheme.bodySmall?.color?.withValues(alpha:0.6), ), ); } diff --git a/app/lib/widgets/inspector/headers/info_action.dart b/app/lib/widgets/inspector/headers/info_action.dart index 1d2adf1096..8146bcb2e9 100644 --- a/app/lib/widgets/inspector/headers/info_action.dart +++ b/app/lib/widgets/inspector/headers/info_action.dart @@ -32,7 +32,7 @@ class InfoHeaderAction extends HookConsumerWidget { size: 14, color: color, ), - hoverColor: color.withOpacity(0.2), + hoverColor: color.withValues(alpha:0.2), padding: EdgeInsets.zero, visualDensity: VisualDensity.compact, onPressed: () => _launchUrl(url), diff --git a/app/lib/widgets/inspector/heading.dart b/app/lib/widgets/inspector/heading.dart index 4a3039d5f7..bbcf796a89 100644 --- a/app/lib/widgets/inspector/heading.dart +++ b/app/lib/widgets/inspector/heading.dart @@ -162,7 +162,7 @@ class EntryBlueprintDisplay extends HookConsumerWidget { child: Text( blueprintName.formatted, style: Theme.of(context).textTheme.bodySmall?.copyWith( - color: color.withOpacity(0.9), + color: color.withValues(alpha: 0.9), decoration: hovering.value ? TextDecoration.underline : null, ), ), diff --git a/app/pubspec.lock b/app/pubspec.lock index e50d77b335..563d45610e 100644 --- a/app/pubspec.lock +++ b/app/pubspec.lock @@ -114,18 +114,18 @@ packages: dependency: "direct main" description: name: auto_route - sha256: "8de4a280ce7861ef24a6baa14c2b02b77a8c31b4a4c4f12d7b608678cc657c7f" + sha256: b83e8ce46da7228cdd019b5a11205454847f0a971bca59a7529b98df9876889b url: "https://pub.dev" source: hosted - version: "8.1.4" + version: "9.2.2" auto_route_generator: dependency: "direct dev" description: name: auto_route_generator - sha256: ba28133d3a3bf0a66772bcc98dade5843753cd9f1a8fb4802b842895515b67d3 + sha256: c9086eb07271e51b44071ad5cff34e889f3156710b964a308c2ab590769e79e6 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "9.0.0" auto_size_text: dependency: "direct main" description: diff --git a/app/pubspec.yaml b/app/pubspec.yaml index 5fd58eaf68..77a501a0c6 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: # google_fonts: ^4.0.4 rive: ^0.13.12 fuzzy: ^0.5.1 - auto_route: ^8.0.3 + auto_route: ^9.2.2 collapsible: ^1.0.0 riverpod_annotation: ktx: ^1.1.6 From ee69c4a8764868b65f0ccb80b7bed9450e326725 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Wed, 11 Sep 2024 19:50:04 +0200 Subject: [PATCH 34/41] Made a typo in the url builder --- app/pubspec.lock | 14 +++++++------- .../engine/paper/ui/CommunicationHandler.kt | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/pubspec.lock b/app/pubspec.lock index 563d45610e..d21e72a9ff 100644 --- a/app/pubspec.lock +++ b/app/pubspec.lock @@ -649,18 +649,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -953,7 +953,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" socket_io_client: dependency: "direct main" description: @@ -1238,10 +1238,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "14.2.4" + version: "14.2.5" watcher: dependency: transitive description: diff --git a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/CommunicationHandler.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/CommunicationHandler.kt index fd156668de..78621d5dc8 100644 --- a/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/CommunicationHandler.kt +++ b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/ui/CommunicationHandler.kt @@ -170,7 +170,7 @@ class CommunicationHandler : KoinComponent { if (panelAppendPort != false) url += ":${panelPort}" url += "/#/connect?host=${websocketHostname ?: hostName}" - if (websocketAppendPort != false) url += "?port=${webSocketPort}" + if (websocketAppendPort != false) url += "&port=${webSocketPort}" if (auth == "session") url += "&token=${generateSessionToken(playerId)}" return url From 8c19384581672f39c962be48d53c57beb57773b4 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Thu, 12 Sep 2024 07:18:24 +0200 Subject: [PATCH 35/41] Fix skin texture breaking when incorrect --- app/lib/widgets/inspector/editors/skin.dart | 25 ++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/app/lib/widgets/inspector/editors/skin.dart b/app/lib/widgets/inspector/editors/skin.dart index 06a72c8142..9873ebeeb0 100644 --- a/app/lib/widgets/inspector/editors/skin.dart +++ b/app/lib/widgets/inspector/editors/skin.dart @@ -41,19 +41,24 @@ class SkinEditor extends HookConsumerWidget { String? _getSkinUrl(String textureData) { if (textureData.isEmpty) return null; - // Decode base64 string - final bytes = base64Decode(textureData); - // Convert to a string and read the json - final json = jsonDecode(utf8.decode(bytes)); + try { + // Decode base64 string + final bytes = base64Decode(textureData); + // Convert to a string and read the json + final json = jsonDecode(utf8.decode(bytes)); - // Read the textures.SKIN.url field - final url = json["textures"]["SKIN"]["url"]; - if (url is! String) { + // Read the textures.SKIN.url field + final url = json["textures"]["SKIN"]["url"]; + if (url is! String) { + return null; + } + + final id = + url.replacePrefix("http://textures.minecraft.net/texture/", ""); + return "https://nmsr.nickac.dev/fullbody/$id"; + } on Exception catch (_) { return null; } - - final id = url.replacePrefix("http://textures.minecraft.net/texture/", ""); - return "https://nmsr.nickac.dev/fullbody/$id"; } @override From c925f3b58b064a5a90314a0a92c0df419669a86f Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Thu, 12 Sep 2024 09:17:40 +0200 Subject: [PATCH 36/41] Fix null deserialisation in GSON --- .../com/typewritermc/loader/DataSerializer.kt | 64 +++++++++++++++++-- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/engine/engine-loader/src/main/kotlin/com/typewritermc/loader/DataSerializer.kt b/engine/engine-loader/src/main/kotlin/com/typewritermc/loader/DataSerializer.kt index 9074439715..6548a8dbab 100644 --- a/engine/engine-loader/src/main/kotlin/com/typewritermc/loader/DataSerializer.kt +++ b/engine/engine-loader/src/main/kotlin/com/typewritermc/loader/DataSerializer.kt @@ -1,9 +1,10 @@ package com.typewritermc.loader -import com.google.gson.Gson -import com.google.gson.GsonBuilder -import com.google.gson.JsonDeserializer -import com.google.gson.JsonSerializer +import com.google.gson.* +import com.google.gson.internal.Streams +import com.google.gson.reflect.TypeToken +import com.google.gson.stream.JsonReader +import com.google.gson.stream.JsonWriter import java.lang.reflect.Type interface DataSerializer : JsonSerializer, JsonDeserializer { @@ -12,11 +13,64 @@ interface DataSerializer : JsonSerializer, JsonDeserializer { fun createDataSerializerGson(serializers: List>): Gson { var builder = GsonBuilder() + .serializeNulls() serializers.forEach { - builder = builder.registerTypeAdapter(it.type, it) + val typeToken = TypeToken.get(it.type) + val matchRawType = typeToken.type == typeToken.rawType + builder = builder.registerTypeAdapterFactory(TypeAdapterFactoryDataSerializer(it, typeToken, matchRawType)) } return builder .create() } + +/** + * Thank you GSON for not allowing JSON serialization of null values :| + * Now I have to write all of this boilerplate myself... + */ +private class TypeAdapterFactoryDataSerializer( + private val serializer: DataSerializer, + private val typeToken: TypeToken<*>, + private val matchRawType: Boolean = false, +) : TypeAdapterFactory { + override fun create(gson: Gson, type: TypeToken): TypeAdapter? { + val matches = typeToken == type || matchRawType && typeToken.type === type.rawType + if (!matches) return null + val type = type as TypeToken + return TypeAdapterDataSerializer(serializer, gson, type) as TypeAdapter? + } +} + +private class TypeAdapterDataSerializer( + private val serializer: DataSerializer, + private val gson: Gson, + private val typeToken: TypeToken, +) : TypeAdapter() { + override fun write(out: JsonWriter, value: T?) { + val tree = serializer.serialize(value, typeToken.type, GsonContextImpl(gson)) + Streams.write(tree, out) + } + + override fun read(`in`: JsonReader?): T { + val element = Streams.parse(`in`) + return serializer.deserialize(element, typeToken.type, GsonContextImpl(gson)) + } +} + +private class GsonContextImpl( + private val gson: Gson, +) : JsonSerializationContext, JsonDeserializationContext { + override fun serialize(src: Any): JsonElement { + return gson.toJsonTree(src) + } + + override fun serialize(src: Any, typeOfSrc: Type): JsonElement { + return gson.toJsonTree(src, typeOfSrc) + } + + @Throws(JsonParseException::class) + override fun deserialize(json: JsonElement, typeOfT: Type): R { + return gson.fromJson(json, typeOfT) + } +} From 5cfccddaa295c164ce63e16469bfb8a0911cb740 Mon Sep 17 00:00:00 2001 From: Gabber235 Date: Thu, 12 Sep 2024 09:17:54 +0200 Subject: [PATCH 37/41] Animate options --- .../JavaOptionDialogueDialogueMessenger.kt | 29 +++++++++++++++---- .../entries/activity/InDialogueActivity.kt | 2 ++ 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/dialogue/messengers/option/JavaOptionDialogueDialogueMessenger.kt b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/dialogue/messengers/option/JavaOptionDialogueDialogueMessenger.kt index 1e2a6a8084..812efbca4f 100644 --- a/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/dialogue/messengers/option/JavaOptionDialogueDialogueMessenger.kt +++ b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/dialogue/messengers/option/JavaOptionDialogueDialogueMessenger.kt @@ -6,6 +6,7 @@ import com.typewritermc.engine.paper.entry.Modifier import com.typewritermc.core.entries.Ref import com.typewritermc.basic.entries.dialogue.Option import com.typewritermc.basic.entries.dialogue.OptionDialogueEntry +import com.typewritermc.basic.entries.dialogue.messengers.spoken.spokenMaxLineLength import com.typewritermc.core.extension.annotations.Messenger import com.typewritermc.engine.paper.entry.TriggerableEntry import com.typewritermc.engine.paper.entry.dialogue.* @@ -49,6 +50,10 @@ private val unselectedOption: String by snippet( " <#5d6c78>[ <#5d6c78>]\n" ) +val optionMaxLineLength: Int by snippet("dialogue.option.maxLineLength", 40) + +private val delayOptionShow: Int by snippet("dialogue.option.delay", 100, "The delay in milliseconds between each option being shown.") + @Messenger(OptionDialogueEntry::class) class JavaOptionDialogueDialogueMessenger(player: Player, entry: OptionDialogueEntry) : DialogueMessenger(player, entry) { @@ -117,7 +122,9 @@ class JavaOptionDialogueDialogueMessenger(player: Player, entry: OptionDialogueE } val rawText = parsedText.stripped() - val totalDuration = typingDurationType.totalDuration(rawText, typeDuration) + val typingDuration = typingDurationType.totalDuration(rawText, typeDuration) + val optionsShowingDuration = Duration.ofMillis(usableOptions.size * delayOptionShow.toLong()) + val totalDuration = typingDuration + optionsShowingDuration if (playTime.toTicks() % 100 > 0 && playTime > totalDuration * 1.1 && !isFirst) { // Only update periodically to avoid spamming the player return @@ -133,24 +140,32 @@ class JavaOptionDialogueDialogueMessenger(player: Player, entry: OptionDialogueE 1.0 } else typingDurationType.calculatePercentage(playTime, typeDuration, rawText) - val text = parsedText.asMini().splitPercentage(typePercentage) + val resultingLines = rawText.limitLineLength(optionMaxLineLength).lineCount + val text = parsedText.asPartialFormattedMini(typePercentage, minLines = resultingLines, padding = "", maxLineLength = optionMaxLineLength) val message = optionFormat.asMiniWithResolvers( Placeholder.parsed("speaker", speakerDisplayName), Placeholder.component("text", text), - Placeholder.component("options", formatOptions()), + Placeholder.component("options", formatOptions(rawText)), ) val component = player.chatHistory.composeDarkMessage(message) player.sendMessage(component) } - private fun formatOptions(): Component { + private fun formatOptions(rawText: String): Component { val around = usableOptions.around(selectedIndex, 1, 2) val lines = mutableListOf() - for (i in 0 until min(4, around.size)) { + val totalDuration = typingDurationType.totalDuration(rawText, typeDuration) + val timeAfterTyping = lastPlayTime - totalDuration + val limitedOptions = (timeAfterTyping.toMillis() / delayOptionShow).toInt().coerceAtLeast(0) + + val maxOptions = min(4, around.size) + val showingOptions = min(maxOptions, limitedOptions) + + for (i in 0 until showingOptions) { val option = around[i] val isSelected = selected == option @@ -166,6 +181,10 @@ class JavaOptionDialogueDialogueMessenger(player: Player, entry: OptionDialogueE ) } + for (i in showingOptions until maxOptions) { + lines += Component.text(" \n") + } + return Component.join(JoinConfiguration.noSeparators(), lines) } } \ No newline at end of file diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/InDialogueActivity.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/InDialogueActivity.kt index 95be15cb50..18173a7031 100644 --- a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/InDialogueActivity.kt +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/activity/InDialogueActivity.kt @@ -4,6 +4,7 @@ import com.typewritermc.core.books.pages.Colors import com.typewritermc.core.entries.Ref import com.typewritermc.core.entries.emptyRef import com.typewritermc.core.entries.priority +import com.typewritermc.core.extension.annotations.Default import com.typewritermc.core.extension.annotations.Entry import com.typewritermc.core.extension.annotations.Help import com.typewritermc.engine.paper.entry.dialogue.currentDialogue @@ -32,6 +33,7 @@ import java.util.* class InDialogueActivityEntry( override val id: String = "", override val name: String = "", + @Default("30000") @Help("When a player is considered to be idle in the same dialogue") /** * The duration a player can be idle in the same dialogue before the activity deactivates. From f78ffa860d7c6f96d7f808f33df44357221d8e42 Mon Sep 17 00:00:00 2001 From: Kerzinator_24 Date: Thu, 12 Sep 2024 13:52:55 +0200 Subject: [PATCH 38/41] updated to 0.6 update + added llama and trader llama (updated to 0.6) as originally requested in https://discord.com/channels/1054708062520360960/1277280772448845977 --- .../living/horse/LlamaCarpetColorData.kt | 40 ++++++++++ .../entries/entity/minecraft/LlamaEntity.kt | 78 +++++++++++++++++++ .../entity/minecraft/TraderLlamaEntity.kt | 78 +++++++++++++++++++ 3 files changed, 196 insertions(+) create mode 100644 extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/horse/LlamaCarpetColorData.kt create mode 100644 extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/minecraft/LlamaEntity.kt create mode 100644 extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/minecraft/TraderLlamaEntity.kt diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/horse/LlamaCarpetColorData.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/horse/LlamaCarpetColorData.kt new file mode 100644 index 0000000000..b9a6870c3c --- /dev/null +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/horse/LlamaCarpetColorData.kt @@ -0,0 +1,40 @@ +package com.typewritermc.entity.entries.data.minecraft.living.horse + +import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.core.extension.annotations.Help +import com.typewritermc.core.extension.annotations.Tags +import com.typewritermc.engine.paper.entry.entity.SinglePropertyCollectorSupplier +import com.typewritermc.engine.paper.entry.entries.EntityData +import com.typewritermc.engine.paper.entry.entries.EntityProperty +import com.typewritermc.engine.paper.extensions.packetevents.metas +import me.tofaa.entitylib.meta.mobs.horse.LlamaMeta +import me.tofaa.entitylib.wrapper.WrapperEntity +import org.bukkit.entity.Player +import java.util.* +import kotlin.reflect.KClass + +@Entry("llama_carpet_color_data", "The color of the llama's carpet.", Colors.RED, "mdi:llama") +@Tags("llama_data", "carpet_color_data") +class LlamaCarpetColorData( + override val id: String = "", + override val name: String = "", + @Help("The color of the llama's carpet.") + val color: Int = 0, + override val priorityOverride: Optional = Optional.empty(), +) : EntityData { + override fun type(): KClass = LlamaCarpetColorProperty::class + + override fun build(player: Player): LlamaCarpetColorProperty = LlamaCarpetColorProperty(color) +} + +data class LlamaCarpetColorProperty(val color: Int) : EntityProperty { + companion object : SinglePropertyCollectorSupplier(LlamaCarpetColorProperty::class) +} + +fun applyLlamaCarpetColorData(entity: WrapperEntity, property: LlamaCarpetColorProperty) { + entity.metas { + meta { carpetColor = property.color } + error("Could not apply LlamaCarpetColorData to ${entity.entityType} entity.") + } +} \ No newline at end of file diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/minecraft/LlamaEntity.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/minecraft/LlamaEntity.kt new file mode 100644 index 0000000000..00ea6c4d92 --- /dev/null +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/minecraft/LlamaEntity.kt @@ -0,0 +1,78 @@ +package com.typewritermc.entity.entries.entity.minecraft + +import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes +import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.entries.Ref +import com.typewritermc.core.entries.emptyRef +import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.core.extension.annotations.OnlyTags +import com.typewritermc.core.extension.annotations.Tags +import com.typewritermc.core.utils.point.Position +import com.typewritermc.engine.paper.entry.entity.FakeEntity +import com.typewritermc.engine.paper.entry.entity.SimpleEntityDefinition +import com.typewritermc.engine.paper.entry.entity.SimpleEntityInstance +import com.typewritermc.engine.paper.entry.entries.EntityData +import com.typewritermc.engine.paper.entry.entries.EntityProperty +import com.typewritermc.engine.paper.entry.entries.SharedEntityActivityEntry +import com.typewritermc.engine.paper.utils.Sound +import com.typewritermc.entity.entries.data.minecraft.applyGenericEntityData +import com.typewritermc.entity.entries.data.minecraft.living.AgableProperty +import com.typewritermc.entity.entries.data.minecraft.living.applyAgeableData +import com.typewritermc.entity.entries.data.minecraft.living.applyLivingEntityData +import com.typewritermc.entity.entries.data.minecraft.living.horse.* +import com.typewritermc.entity.entries.entity.WrapperFakeEntity +import org.bukkit.entity.Player + +@Entry("llaama_definition", "A llama entity", Colors.ORANGE, "ph:llama-fill") +@Tags("llama_definition") +/** + * The `LlamaDefinition` class is an entry that represents a llama entity. + * + * ## How could this be used? + * This could be used to create a llama entity. + */ +class LlamaDefinition( + override val id: String = "", + override val name: String = "", + override val displayName: String = "", + override val sound: Sound = Sound.EMPTY, + @OnlyTags("generic_entity_data", "living_entity_data", "mob_data", "ageable_data", "llama_data", "chested_horse_data") + override val data: List>> = emptyList(), +) : SimpleEntityDefinition { + override fun create(player: Player): FakeEntity = LlamaEntity(player) +} + +@Entry("llama_instance", "An instance of a llama entity", Colors.YELLOW, "ph:llama-fill") +/** + * The `LlamaInstance` class is an entry that represents an instance of a llama entity. + * + * ## How could this be used? + * + * This could be used to create a llama entity. + */ +class LlamaInstance( + override val id: String = "", + override val name: String = "", + override val definition: Ref = emptyRef(), + override val spawnLocation: Position = Position.ORIGIN, + @OnlyTags("generic_entity_data", "living_entity_data", "mob_data", "ageable_data", "llama_data", "chested_horse_data") + override val data: List>> = emptyList(), + override val activity: Ref = emptyRef(), +) : SimpleEntityInstance + +private class LlamaEntity(player: Player) : WrapperFakeEntity( + EntityTypes.LLAMA, + player, +) { + override fun applyProperty(property: EntityProperty) { + when (property) { + is AgableProperty -> applyAgeableData(entity, property) + is LlamaVariantProperty -> applyLlamaVariantData(entity, property) + is LlamaCarpetColorProperty -> applyLlamaCarpetColorData(entity, property) + is ChestedHorseChestProperty -> applyChestedHorseChestData(entity, property) + else -> {} + } + if (applyGenericEntityData(entity, property)) return + if (applyLivingEntityData(entity, property)) return + } +} \ No newline at end of file diff --git a/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/minecraft/TraderLlamaEntity.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/minecraft/TraderLlamaEntity.kt new file mode 100644 index 0000000000..2b3cac5d10 --- /dev/null +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/minecraft/TraderLlamaEntity.kt @@ -0,0 +1,78 @@ +package com.typewritermc.entity.entries.entity.minecraft + +import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes +import com.typewritermc.core.books.pages.Colors +import com.typewritermc.core.entries.Ref +import com.typewritermc.core.entries.emptyRef +import com.typewritermc.core.extension.annotations.Entry +import com.typewritermc.core.extension.annotations.OnlyTags +import com.typewritermc.core.extension.annotations.Tags +import com.typewritermc.core.utils.point.Position +import com.typewritermc.engine.paper.entry.entity.FakeEntity +import com.typewritermc.engine.paper.entry.entity.SimpleEntityDefinition +import com.typewritermc.engine.paper.entry.entity.SimpleEntityInstance +import com.typewritermc.engine.paper.entry.entries.EntityData +import com.typewritermc.engine.paper.entry.entries.EntityProperty +import com.typewritermc.engine.paper.entry.entries.SharedEntityActivityEntry +import com.typewritermc.engine.paper.utils.Sound +import com.typewritermc.entity.entries.data.minecraft.applyGenericEntityData +import com.typewritermc.entity.entries.data.minecraft.living.AgableProperty +import com.typewritermc.entity.entries.data.minecraft.living.applyAgeableData +import com.typewritermc.entity.entries.data.minecraft.living.applyLivingEntityData +import com.typewritermc.entity.entries.data.minecraft.living.horse.* +import com.typewritermc.entity.entries.entity.WrapperFakeEntity +import org.bukkit.entity.Player + +@Entry("trader_llama_definition", "A trader llama entity", Colors.ORANGE, "ph:llama-fill") +@Tags("trader_llama_definition") +/** + * The `TraderLlamaDefinition` class is an entry that represents a trader llama entity. + * + * ## How could this be used? + * This could be used to create a trader llama entity. + */ +class TraderLlamaDefinition( + override val id: String = "", + override val name: String = "", + override val displayName: String = "", + override val sound: Sound = Sound.EMPTY, + @OnlyTags("generic_entity_data", "living_entity_data", "mob_data", "ageable_data", "llama_data", "chested_horse_data") + override val data: List>> = emptyList(), +) : SimpleEntityDefinition { + override fun create(player: Player): FakeEntity = TraderLlamaEntity(player) +} + +@Entry("trader_llama_instance", "An instance of a trader llama entity", Colors.YELLOW, "ph:llama-fill") +/** + * The `TraderLlamaInstance` class is an entry that represents an instance of a trader llama entity. + * + * ## How could this be used? + * + * This could be used to create a trader llama entity. + */ +class TraderLlamaInstance( + override val id: String = "", + override val name: String = "", + override val definition: Ref = emptyRef(), + override val spawnLocation: Position = Position.ORIGIN, + @OnlyTags("generic_entity_data", "living_entity_data", "mob_data", "ageable_data", "llama_data", "chested_horse_data") + override val data: List>> = emptyList(), + override val activity: Ref = emptyRef(), +) : SimpleEntityInstance + +private class TraderLlamaEntity(player: Player) : WrapperFakeEntity( + EntityTypes.TRADER_LLAMA, + player, +) { + override fun applyProperty(property: EntityProperty) { + when (property) { + is AgableProperty -> applyAgeableData(entity, property) + is LlamaVariantProperty -> applyLlamaVariantData(entity, property) + is LlamaCarpetColorProperty -> applyLlamaCarpetColorData(entity, property) + is ChestedHorseChestProperty -> applyChestedHorseChestData(entity, property) + else -> {} + } + if (applyGenericEntityData(entity, property)) return + if (applyLivingEntityData(entity, property)) return + } +} \ No newline at end of file From d4765b274dbdba93c61d58f731a583e96b3db4b5 Mon Sep 17 00:00:00 2001 From: RG Date: Sat, 14 Sep 2024 13:16:50 +0530 Subject: [PATCH 39/41] fix(docs): expired discord invites --- documentation/docs/docs/01-home.md | 2 +- .../docs/docs/02-getting-started/01-installation.mdx | 2 +- .../version-0.4.2/docs/02-installation-guide.md | 4 ++-- documentation/versioned_docs/version-0.5.0/docs/01-home.md | 2 +- .../version-0.5.0/docs/02-getting-started/01-installation.mdx | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/documentation/docs/docs/01-home.md b/documentation/docs/docs/01-home.md index 788a86e078..c39b5d8ffd 100644 --- a/documentation/docs/docs/01-home.md +++ b/documentation/docs/docs/01-home.md @@ -9,5 +9,5 @@ Then you can follow the [First Interaction](./03-creating-stories/01-interaction :::caution[In beta] Typewriter is currently in beta. This means that the plugin is still in development and may contain bugs. If you find -any bugs, please report them in our [discord](https://discord.gg/p7WH9VvdMQ) +any bugs, please report them in our [discord](https://discord.gg/HtbKyuDDBw) ::: diff --git a/documentation/docs/docs/02-getting-started/01-installation.mdx b/documentation/docs/docs/02-getting-started/01-installation.mdx index babe591441..56b1f9e027 100644 --- a/documentation/docs/docs/02-getting-started/01-installation.mdx +++ b/documentation/docs/docs/02-getting-started/01-installation.mdx @@ -45,7 +45,7 @@ When updating the plugin, it's crucial to **always** install the corresponding e ## Configuring the Web Panel :::caution[External server providers] -Typewriter's web panel does **not** support external server providers such as Minehut, Aternos, or Apex. You can still use everything else in TypeWriter. It is still possible to use the panel still by setting up a local server with Typewriter installed. For more information, please create a question in our [Discord](https://discord.gg/p7WH9VvdMQ). +Typewriter's web panel does **not** support external server providers such as Minehut, Aternos, or Apex. You can still use everything else in TypeWriter. It is still possible to use the panel still by setting up a local server with Typewriter installed. For more information, please create a question in our [Discord](https://discord.gg/HtbKyuDDBw). ::: :::info[Resource consumption] Please note that the web panel and web socket use precious resources on your server, and it is best to host the panel on your development server instead of on a production server. diff --git a/documentation/versioned_docs/version-0.4.2/docs/02-installation-guide.md b/documentation/versioned_docs/version-0.4.2/docs/02-installation-guide.md index e80c689535..600bf869dd 100644 --- a/documentation/versioned_docs/version-0.4.2/docs/02-installation-guide.md +++ b/documentation/versioned_docs/version-0.4.2/docs/02-installation-guide.md @@ -6,7 +6,7 @@ Typewriter only works on **Paper** Spigot servers. It will not work on Spigot or :::caution Typewriter is currently in beta. This means that the plugin is still in development and may contain bugs. If you find -any bugs, please report them [here](https://discord.gg/p7WH9VvdMQ) +any bugs, please report them [here](https://discord.gg/HtbKyuDDBw) ::: ## Installing the Plugin @@ -39,7 +39,7 @@ When updating the plugin, it's crucial to **always** install the corresponding a ## Configuring the Web Panel :::caution -Typewriter's web panel does **not** support external server providers such as Minehut, Aternos, or Apex. You can still use everthing else in Typewriter. It is possible to use the panel still by setting up a local server with Typewriter installed. For more information, please visit the [Discord](https://discord.gg/p7WH9VvdMQ). +Typewriter's web panel does **not** support external server providers such as Minehut, Aternos, or Apex. You can still use everthing else in Typewriter. It is possible to use the panel still by setting up a local server with Typewriter installed. For more information, please visit the [Discord](https://discord.gg/HtbKyuDDBw). ::: The web panel to configure your server's interactions. The web panel is preinstalled inside the plugin, though it is diff --git a/documentation/versioned_docs/version-0.5.0/docs/01-home.md b/documentation/versioned_docs/version-0.5.0/docs/01-home.md index a5bd9ad8f7..7a451a8ee1 100644 --- a/documentation/versioned_docs/version-0.5.0/docs/01-home.md +++ b/documentation/versioned_docs/version-0.5.0/docs/01-home.md @@ -9,5 +9,5 @@ can follow the [First Interaction](./03-creating-stories/01-interactions/index.m :::caution[In beta] Typewriter is currently in beta. This means that the plugin is still in development and may contain bugs. If you find -any bugs, please report them in our [discord](https://discord.gg/p7WH9VvdMQ) +any bugs, please report them in our [discord](https://discord.gg/HtbKyuDDBw) ::: diff --git a/documentation/versioned_docs/version-0.5.0/docs/02-getting-started/01-installation.mdx b/documentation/versioned_docs/version-0.5.0/docs/02-getting-started/01-installation.mdx index 932fe7ca9c..743143726e 100644 --- a/documentation/versioned_docs/version-0.5.0/docs/02-getting-started/01-installation.mdx +++ b/documentation/versioned_docs/version-0.5.0/docs/02-getting-started/01-installation.mdx @@ -45,7 +45,7 @@ When updating the plugin, it's crucial to **always** install the corresponding a ## Configuring the Web Panel :::caution[External server providers] -Typewriter's web panel does **not** support external server providers such as Minehut, Aternos, or Apex. You can still use everything else in TypeWriter. It is still possible to use the panel still by setting up a local server with Typewriter installed. For more information, please create a question in our [Discord](https://discord.gg/p7WH9VvdMQ). +Typewriter's web panel does **not** support external server providers such as Minehut, Aternos, or Apex. You can still use everything else in TypeWriter. It is still possible to use the panel still by setting up a local server with Typewriter installed. For more information, please create a question in our [Discord](https://discord.gg/HtbKyuDDBw). ::: :::info[Resource consumption] Please note that the web panel and web socket use precious resources on your server, and it is best to host the panel on your development server instead of on a production server. From 002f94149f9fe906accf0272c9739cb36335b839 Mon Sep 17 00:00:00 2001 From: Marten Mrfc <101009922+Marten-Mrfc@users.noreply.github.com> Date: Sun, 15 Sep 2024 14:21:10 +0200 Subject: [PATCH 40/41] [Docs] Changed version 0.5.0 to 0.5.1 --- documentation/docusaurus.config.js | 4 +- documentation/package-lock.json | 445 +++++++++--------- documentation/package.json | 14 +- .../adapters/BasicAdapter/BasicAdapter.mdx | 0 .../adapters/BasicAdapter/_category_.yml | 0 .../BasicAdapter/entries/_category_.yml | 0 .../entries/action/_category_.yml | 0 .../entries/action/add_potion_effect.mdx | 0 .../entries/action/apply_velocity.mdx | 0 .../BasicAdapter/entries/action/cinematic.mdx | 0 .../entries/action/console_run_command.mdx | 0 .../entries/action/delayed_action.mdx | 0 .../BasicAdapter/entries/action/drop_item.mdx | 0 .../BasicAdapter/entries/action/firework.mdx | 0 .../BasicAdapter/entries/action/give_item.mdx | 0 .../entries/action/group_trigger_action.mdx | 0 .../entries/action/play_sound.mdx | 0 .../entries/action/player_run_command.mdx | 0 .../entries/action/random_trigger.mdx | 0 .../entries/action/remove_item.mdx | 0 .../entries/action/send_message.mdx | 0 .../BasicAdapter/entries/action/set_block.mdx | 0 .../BasicAdapter/entries/action/set_item.mdx | 0 .../entries/action/show_title.mdx | 0 .../entries/action/simple_action.mdx | 0 .../entries/action/spawn_particles.mdx | 0 .../entries/action/stop_sound.mdx | 0 .../entries/action/switch_server_action.mdx | 0 .../BasicAdapter/entries/action/teleport.mdx | 0 .../entries/action/track_quest.mdx | 0 .../entries/audience/_category_.yml | 0 .../entries/audience/boss_bar.mdx | 0 .../entries/audience/cinematic_audience.mdx | 0 .../closest_group_member_path_stream.mdx | 0 .../entries/audience/criteria_audience.mdx | 0 .../entries/audience/cron_audience.mdx | 0 .../audience/direct_location_path_stream.mdx | 0 .../entries/audience/game_time_audience.mdx | 0 .../audience/group_members_path_stream.mdx | 0 .../audience/holding_item_audience.mdx | 0 .../audience/item_in_inventory_audience.mdx | 0 .../audience/item_in_slot_audience.mdx | 0 .../location_objectives_path_stream.mdx | 0 .../audience/looping_cinematic_audience.mdx | 0 .../BasicAdapter/entries/audience/sidebar.mdx | 0 .../entries/audience/simple_lines.mdx | 0 .../audience/tab_list_header_footer.mdx | 0 .../entries/audience/timer_audience.mdx | 0 .../entries/audience/trigger_audience.mdx | 0 .../entries/cinematic/_category_.yml | 0 .../actionbar_dialogue_cinematic.mdx | 0 .../entries/cinematic/blinding_cinematic.mdx | 0 .../entries/cinematic/camera_cinematic.mdx | 0 .../cinematic/cinematic_console_command.mdx | 0 .../cinematic/cinematic_player_command.mdx | 0 .../entries/cinematic/particle_cinematic.mdx | 0 .../cinematic/potion_effect_cinematic.mdx | 0 .../cinematic/pumpkin_hat_cinematic.mdx | 0 .../random_actionbar_dialogue_cinematic.mdx | 0 .../random_spoken_dialogue_cinematic.mdx | 0 .../random_subtitle_dialogue_cinematic.mdx | 0 .../cinematic/screen_shake_cinematic.mdx | 0 .../cinematic/set_fake_block_cinematic.mdx | 0 .../entries/cinematic/sound_cinematic.mdx | 0 .../cinematic/spoken_dialogue_cinematic.mdx | 0 .../cinematic/subtitle_dialogue_cinematic.mdx | 0 .../entries/cinematic/title_cinematic.mdx | 0 .../cinematic/trigger_sequence_cinematic.mdx | 0 .../entries/dialogue/_category_.yml | 0 .../BasicAdapter/entries/dialogue/message.mdx | 0 .../BasicAdapter/entries/dialogue/option.mdx | 0 .../entries/dialogue/random_message.mdx | 0 .../entries/dialogue/random_spoken.mdx | 0 .../BasicAdapter/entries/dialogue/spoken.mdx | 0 .../BasicAdapter/entries/event/_category_.yml | 0 .../entries/event/craft_item_event.mdx | 0 .../entries/event/fire_trigger_event.mdx | 0 .../entries/event/on_block_break.mdx | 0 .../entries/event/on_detect_command_ran.mdx | 0 .../BasicAdapter/entries/event/on_fish.mdx | 0 .../entries/event/on_interact_with_block.mdx | 0 .../entries/event/on_item_pickup.mdx | 0 .../event/on_message_contains_text.mdx | 0 .../entries/event/on_place_block.mdx | 0 .../entries/event/on_player_death.mdx | 0 .../entries/event/on_player_hit_entity.mdx | 0 .../entries/event/on_player_join.mdx | 0 .../entries/event/on_player_kill_entity.mdx | 0 .../entries/event/on_player_kill_player.mdx | 0 .../entries/event/on_player_near_location.mdx | 0 .../entries/event/on_player_quit.mdx | 0 .../entries/event/on_run_command.mdx | 0 .../BasicAdapter/entries/fact/_category_.yml | 0 .../entries/fact/countdown_fact.mdx | 0 .../BasicAdapter/entries/fact/cron_fact.mdx | 0 .../entries/fact/in_audience_fact.mdx | 0 .../entries/fact/in_cinematic_fact.mdx | 0 .../fact/inventory_item_count_fact.mdx | 0 .../entries/fact/item_holding_fact.mdx | 0 .../entries/fact/item_in_slot_fact.mdx | 0 .../entries/fact/number_placeholder.mdx | 0 .../entries/fact/permanent_fact.mdx | 0 .../entries/fact/quest_status_fact.mdx | 0 .../entries/fact/session_fact.mdx | 0 .../BasicAdapter/entries/fact/timed_fact.mdx | 0 .../entries/fact/value_placeholder.mdx | 0 .../BasicAdapter/entries/group/_category_.yml | 0 .../entries/group/global_group.mdx | 0 .../entries/group/player_group.mdx | 0 .../entries/group/world_group.mdx | 0 .../BasicAdapter/entries/quest/_category_.yml | 0 .../entries/quest/completable_objective.mdx | 0 .../entries/quest/location_objective.mdx | 0 .../BasicAdapter/entries/quest/objective.mdx | 0 .../entries/quest/objective_lines.mdx | 0 .../BasicAdapter/entries/quest/quest.mdx | 0 .../entries/quest/quest_complete_event.mdx | 0 .../entries/quest/quest_start_event.mdx | 0 .../quest/quest_status_update_event.mdx | 0 .../quest/tracked_objective_audience.mdx | 0 .../entries/quest/tracked_quest_audience.mdx | 0 .../BasicAdapter/entries/sound/_category_.yml | 0 .../entries/sound/custom_sound.mdx | 0 .../entries/static/_category_.yml | 0 .../entries/static/base_road_network.mdx | 0 .../entries/static/self_speaker.mdx | 0 .../entries/static/simple_speaker.mdx | 0 .../CitizensAdapter/CitizensAdapter.mdx | 0 .../adapters/CitizensAdapter/_category_.yml | 0 .../CitizensAdapter/entries/_category_.yml | 0 .../entries/cinematic/_category_.yml | 0 .../cinematic/reference_npc_cinematic.mdx | 0 .../entries/cinematic/self_npc_cinematic.mdx | 0 .../entries/entity/_category_.yml | 0 .../entries/entity/reference_npc.mdx | 0 .../entries/event/_category_.yml | 0 .../entries/event/on_npc_interact.mdx | 0 .../CombatLogXAdapter/CombatLogXAdapter.mdx | 0 .../adapters/CombatLogXAdapter/_category_.yml | 0 .../CombatLogXAdapter/entries/_category_.yml | 0 .../entries/event/_category_.yml | 0 .../entries/event/on_player_enter_combat.mdx | 0 .../entries/event/on_player_exit_combat.mdx | 0 .../entries/fact/_category_.yml | 0 .../entries/fact/combat_fact.mdx | 0 .../adapters/EntityAdapter/EntityAdapter.mdx | 0 .../adapters/EntityAdapter/_category_.yml | 0 .../EntityAdapter/entries/_category_.yml | 0 .../entries/activity/_category_.yml | 0 .../entries/activity/audience_activity.mdx | 0 .../entries/activity/game_time_activity.mdx | 0 .../entries/activity/in_dialogue_activity.mdx | 0 .../entries/activity/look_close_activity.mdx | 0 .../entries/activity/path_activity.mdx | 0 .../entries/activity/patrol_activity.mdx | 0 .../activity/player_close_by_activity.mdx | 0 .../entries/activity/random_look_activity.mdx | 0 .../activity/target_location_activity.mdx | 0 .../entries/activity/timed_activity.mdx | 0 .../entries/activity/trigger_activity.mdx | 0 .../entries/audience/_category_.yml | 0 .../direct_entity_instance_path_stream.mdx | 0 .../entries/cinematic/_category_.yml | 0 .../entries/cinematic/entity_cinematic.mdx | 0 .../EntityAdapter/entries/data/_category_.yml | 0 .../entries/data/ageable_data.mdx | 0 .../entries/data/arrow_count_data.mdx | 0 .../entries/data/cat_variant_data.mdx | 0 .../entries/data/chested_horse_chest_meta.mdx | 0 .../entries/data/collar_color_data.mdx | 0 .../entries/data/custom_name_data.mdx | 0 .../entries/data/dancing_data.mdx | 0 .../entries/data/glowing_effect_data.mdx | 0 .../entries/data/horse_variant_dat.mdx | 0 .../entries/data/llama_carpet_color_data.mdx | 0 .../entries/data/llama_variant_data.mdx | 0 .../entries/data/marker_data.mdx | 0 .../entries/data/on_fire_data.mdx | 0 .../entries/data/parrot_color_data.mdx | 0 .../EntityAdapter/entries/data/pose_data.mdx | 0 .../entries/data/potion_effect_color_data.mdx | 0 .../entries/data/puff_state_data.mdx | 0 .../entries/data/rabbit_type_data.mdx | 0 .../entries/data/saddled_data.mdx | 0 .../EntityAdapter/entries/data/size_data.mdx | 0 .../EntityAdapter/entries/data/skin_data.mdx | 0 .../EntityAdapter/entries/data/small_data.mdx | 0 .../entries/data/villager_data.mdx | 0 .../entries/entity/_category_.yml | 0 .../entries/entity/allay_instance.mdx | 0 .../entries/entity/cat_instance.mdx | 0 .../entries/entity/chicken_instance.mdx | 0 .../entries/entity/cow_instance.mdx | 0 .../entries/entity/enderman_instance.mdx | 0 .../entries/entity/frog_instance.mdx | 0 .../entries/entity/hit_box_definition.mdx | 0 .../entries/entity/hoglin_instance.mdx | 0 .../entries/entity/husk_instance.mdx | 0 .../interaction_indicator_definition.mdx | 0 .../entries/entity/iron_golem_instance.mdx | 0 .../entries/entity/item_display_instance.mdx | 0 .../entries/entity/magma_cube_instance.mdx | 0 .../entity/named_entity_definition.mdx | 0 .../entries/entity/npc_instance.mdx | 0 .../entries/entity/piglin_brute_instance.mdx | 0 .../entries/entity/piglin_instance.mdx | 0 .../entries/entity/player_instance.mdx | 0 .../entries/entity/self_npc_definition.mdx | 0 .../entries/entity/skeleton_instance.mdx | 0 .../entries/entity/slime_instance.mdx | 0 .../entity/stacked_entity_definition.mdx | 0 .../entries/entity/text_display_instance.mdx | 0 .../entries/entity/villager_instance.mdx | 0 .../entries/entity/warden_instance.mdx | 0 .../entries/entity/witch_instance.mdx | 0 .../entries/entity/zombie_instance.mdx | 0 .../entries/event/_category_.yml | 0 .../entries/event/entity_interact_event.mdx | 0 .../entries/instance/_category_.yml | 0 .../group_advanced_entity_instance.mdx | 0 .../individual_advanced_entity_instance.mdx | 0 .../shared_advanced_entity_instance.mdx | 0 .../entries/quest/_category_.yml | 0 .../quest/interact_entity_objective.mdx | 0 ...interact_entity_objectives_path_stream.mdx | 0 .../FancyNpcsAdapter/FancyNpcsAdapter.mdx | 0 .../adapters/FancyNpcsAdapter/_category_.yml | 0 .../FancyNpcsAdapter/entries/_category_.yml | 0 .../entries/cinematic/_category_.yml | 0 .../fancy_reference_npc_cinematic.mdx | 0 .../cinematic/fancy_self_npc_cinematic.mdx | 0 .../entries/entity/_category_.yml | 0 .../entries/entity/fancy_reference_npc.mdx | 0 .../entries/event/_category_.yml | 0 .../entries/event/fancy_on_npc_interact.mdx | 0 .../MythicMobsAdapter/MythicMobsAdapter.mdx | 0 .../adapters/MythicMobsAdapter/_category_.yml | 0 .../MythicMobsAdapter/entries/_category_.yml | 0 .../entries/action/_category_.yml | 0 .../entries/action/despawn_mythicmobs_mob.mdx | 0 .../action/execute_mythicmob_skill.mdx | 0 .../entries/action/spawn_mythicmobs_mob.mdx | 0 .../entries/cinematic/_category_.yml | 0 .../entries/cinematic/mythicmob_cinematic.mdx | 0 .../cinematic/mythicskill_cinematic.mdx | 0 .../entries/event/_category_.yml | 0 .../event/mythicmobs_interact_event.mdx | 0 .../entries/event/on_mythic_mob_die.mdx | 0 .../entries/fact/_category_.yml | 0 .../entries/fact/mythic_mob_count_fact.mdx | 0 .../adapters/README.mdx | 0 .../RPGRegionsAdapter/RPGRegionsAdapter.mdx | 0 .../adapters/RPGRegionsAdapter/_category_.yml | 0 .../RPGRegionsAdapter/entries/_category_.yml | 0 .../entries/action/_category_.yml | 0 .../entries/action/discover_rpg_region.mdx | 0 .../entries/event/_category_.yml | 0 .../entries/event/on_discover_rpg_region.mdx | 0 .../entries/event/on_enter_rpg_region.mdx | 0 .../entries/fact/_category_.yml | 0 .../entries/fact/in_rpg_region_fact.mdx | 0 .../SuperiorSkyblockAdapter.mdx | 0 .../SuperiorSkyblockAdapter/_category_.yml | 0 .../entries/_category_.yml | 0 .../entries/action/_category_.yml | 0 .../entries/action/island_bank_deposit.mdx | 0 .../entries/action/island_bank_withdraw.mdx | 0 .../entries/action/island_disband.mdx | 0 .../entries/action/island_set_biome.mdx | 0 .../entries/action/island_set_border_size.mdx | 0 .../action/island_set_member_limit.mdx | 0 .../entries/event/_category_.yml | 0 .../entries/event/on_island_create.mdx | 0 .../entries/event/on_island_disband.mdx | 0 .../entries/event/on_island_invite.mdx | 0 .../entries/event/on_island_join.mdx | 0 .../entries/event/on_island_upgrade.mdx | 0 .../entries/event/on_mission_complete.mdx | 0 .../entries/fact/_category_.yml | 0 .../entries/fact/island_fact.mdx | 0 .../entries/group/_category_.yml | 0 .../entries/group/island_group.mdx | 0 .../adapters/VaultAdapter/VaultAdapter.mdx | 0 .../adapters/VaultAdapter/_category_.yml | 0 .../VaultAdapter/entries/_category_.yml | 0 .../entries/action/_category_.yml | 0 .../entries/action/deposit_balance.mdx | 0 .../entries/action/set_prefix.mdx | 0 .../entries/action/withdraw_balance.mdx | 0 .../VaultAdapter/entries/fact/_category_.yml | 0 .../entries/fact/balance_fact.mdx | 0 .../entries/fact/permission_fact.mdx | 0 .../VaultAdapter/entries/group/_category_.yml | 0 .../entries/group/balance_audience.mdx | 0 .../entries/group/permission_group.mdx | 0 .../WorldGuardAdapter/WorldGuardAdapter.mdx | 0 .../adapters/WorldGuardAdapter/_category_.yml | 0 .../WorldGuardAdapter/entries/_category_.yml | 0 .../entries/audience/_category_.yml | 0 .../entries/audience/region_audience.mdx | 0 .../entries/event/_category_.yml | 0 .../entries/event/on_enter_region.mdx | 0 .../entries/event/on_exit_region.mdx | 0 .../entries/fact/_category_.yml | 0 .../entries/fact/in_region_fact.mdx | 0 .../entries/group/_category_.yml | 0 .../entries/group/region_group.mdx | 0 .../ZNPCsPlusAdapter/ZNPCsPlusAdapter.mdx | 0 .../adapters/ZNPCsPlusAdapter/_category_.yml | 0 .../ZNPCsPlusAdapter/entries/_category_.yml | 0 .../entries/cinematic/_category_.yml | 0 .../znpc_reference_npc_cinematic.mdx | 0 .../cinematic/znpc_self_npc_cinematic.mdx | 0 .../entries/entity/_category_.yml | 0 .../entries/entity/znpc_reference_npc.mdx | 0 .../entries/event/_category_.yml | 0 .../entries/event/znpc_on_npc_interact.mdx | 0 .../02-adapters/02-getting_started.mdx | 0 .../03-entries/cinematic/index.mdx | 0 .../develop/02-adapters/03-entries/index.mdx | 0 .../03-entries/manifest/_category_.yml | 0 .../03-entries/manifest/audience.mdx | 0 .../03-entries/static/_category_.yml | 0 .../03-entries/static/artifact.mdx | 0 .../02-adapters/03-entries/static/asset.mdx | 0 .../03-entries/static/sound_id.mdx | 0 .../03-entries/static/sound_source.mdx | 0 .../02-adapters/03-entries/static/speaker.mdx | 0 .../03-entries/trigger/_category_.yml | 0 .../02-adapters/03-entries/trigger/action.mdx | 0 .../trigger/custom_triggering_action.mdx | 0 .../03-entries/trigger/dialogue.mdx | 0 .../02-adapters/03-entries/trigger/event.mdx | 0 .../develop/02-adapters/04-querying.mdx | 0 .../develop/02-adapters/05-triggering.mdx | 0 .../02-adapters/06-api-changes/0.5.0.mdx | 0 .../02-adapters/06-api-changes/index.mdx | 0 .../develop/02-adapters/index.mdx | 0 .../develop/README.mdx | 0 .../develop/snippets.json | 0 .../docs/01-home.md | 0 .../02-getting-started/01-installation.mdx | 0 .../docs/02-getting-started/02-layout.mdx | 0 .../docs/02-getting-started/index.mdx | 0 .../01-interactions/01-options.mdx | 0 .../01-interactions/02-items.mdx | 0 .../03-conditional-dialogue.mdx | 0 .../01-interactions/index.mdx | 0 .../02-cinematics/01-dialogue.mdx | 0 .../02-cinematics/03-entities.mdx | 0 .../02-cinematics/04-first-join.mdx | 0 .../02-cinematics/index.mdx | 0 .../03-creating-stories/03-facts/index.mdx | 0 .../04-entity-adapter/02-interacting.mdx | 0 .../04-entity-adapter/index.mdx | 0 .../05-questing/01-dynamic-objectives.mdx | 0 .../05-questing/02-entity-objectives.mdx | 0 .../05-questing/05-displaying_quests.mdx | 0 .../display/quest_display_manifest.json | 0 .../display/quest_display_sequence.json | 0 .../assets/dynamic_objectives/quest_demo.webm | Bin .../dynamic_objectives/quest_manifest.json | 0 .../entity_objectives/ent_obj_manifest.json | 0 .../entity_objectives/ent_obj_quest.json | 0 .../entity_objectives/ent_obj_sequence.json | 0 .../entity_objectives/ent_obj_static.json | 0 .../npc_indicator_tracked.png | Bin .../npc_indicator_untracked.png | Bin .../assets/entity_objectives/path_stream.webm | Bin .../assets/entity_objectives/quest_demo.webm | Bin .../05-questing/assets/index/quest_demo.webm | Bin .../assets/index/quest_manifest.json | 0 .../assets/index/quest_sequence.json | 0 .../assets/index/quest_static.json | 0 .../05-questing/assets/index/setup_demo.webm | Bin .../assets/index/setup_manifest.json | 0 .../assets/index/setup_sequence.json | 0 .../03-creating-stories/05-questing/index.mdx | 0 .../06-road-network/index.mdx | 0 .../docs/03-creating-stories/_category_.yml | 0 .../assets/a-village-blacksmith-hut.svg | 0 .../03-Manifest/assets/a-village-hut.svg | 0 .../03-Manifest/assets/a-village-hut_2.svg | 0 .../03-Manifest/assets/a-village-hut_3.svg | 0 .../03-Manifest/assets/a-village-hut_4.svg | 0 .../03-Manifest/assets/manifest.riv | Bin .../docs/04-concepts/03-Manifest/index.mdx | 0 .../docs/04-concepts/index.mdx | 0 .../docs/05-helpfull-features/01-chapters.mdx | 0 .../docs/05-helpfull-features/02-commands.md | 0 .../03-placeholderapi.mdx | 0 .../05-helpfull-features/04-shortcuts.mdx | 0 .../docs/05-helpfull-features/05-snippets.mdx | 0 .../docs/05-helpfull-features/_category_.yml | 0 .../docs/06-troubleshooting/adapters.mdx | 0 .../docs/06-troubleshooting/index.mdx | 0 .../docs/06-troubleshooting/ports.mdx | 0 .../docs/assets/chapters/chapters.webm | Bin .../docs/assets/chapters/sub-chapters.png | Bin .../cinematics/add-cinematic-fields.png | Bin .../docs/assets/cinematics/add-cinematic.png | Bin .../cinematics/adding-dialogue-cinematic.webm | Bin .../cinematics/adding-dialogue-segment.png | Bin .../cinematics/cinematic-npc-result.webm | Bin .../docs/assets/cinematics/content-mode.webm | Bin .../cinematics/final-camera-cinematic.webm | Bin .../assets/cinematics/first-join-fact.png | Bin .../assets/cinematics/first-join-result.webm | Bin .../docs/assets/cinematics/playback.webm | Bin .../docs/assets/cinematics/recording.webm | Bin .../docs/assets/cinematics/segments.png | Bin .../cinematics/select-entity-definition.webm | Bin .../entity-adapter/definition_select.png | Bin .../entity-interact-event-fields.png | Bin .../entity-adapter/entity_location.webm | Bin .../entity-adapter/entity_name_change.png | Bin .../assets/entity-adapter/fetch_skin.webm | Bin .../assets/entity-adapter/glow_editor.png | Bin .../assets/entity-adapter/glow_effect.png | Bin .../docs/assets/facts/criteria.png | Bin .../assets/facts/criteria_and_modifier.png | Bin .../docs/assets/facts/modifier.png | Bin .../docs/assets/facts/static-page.png | Bin .../docs/assets/installation/connect-book.png | Bin .../assets/installation/connect-command.gif | Bin .../assets/interactions/add-spoken-fields.png | Bin .../docs/assets/interactions/add-spoken.webm | Bin .../assets/interactions/adding-options.png | Bin .../conditional-dialogue-sequence.png | Bin .../assets/interactions/configure-option.png | Bin .../final-result-conditional-dialogue.webm | Bin .../interactions/final-result-default.webm | Bin .../interactions/final-result-give-item.webm | Bin .../interactions/final-result-option.webm | Bin .../interactions/flower-clicked-fact.png | Bin .../assets/interactions/item-capturer.webm | Bin .../assets/interactions/on_flower_click.png | Bin .../assets/interactions/simple-speaker.webm | Bin .../docs/assets/layout/add-page.webm | Bin .../docs/assets/layout/layout-cinematic.png | Bin .../docs/assets/layout/layout.png | Bin .../assets/placeholderapi/papi-factid.png | Bin .../docs/assets/placeholderapi/papi-icon.png | Bin .../docs/assets/road-network/add-node.webm | Bin .../docs/assets/road-network/fast-travel.webm | Bin .../road-network/negative-nodes-preview.webm | Bin .../non-negative-nodes-example.webm | Bin .../docs/assets/road-network/path.webm | Bin .../docs/assets/road-network/radius.png | Bin .../docs/assets/road-network/radius.webm | Bin .../docs/assets/road-network/remove-edge.webm | Bin .../assets/road-network/remove-edges.webm | Bin .../assets/troubleshooting/no-entries.png | Bin ...ebars.json => version-0.5.1-sidebars.json} | 0 documentation/versions.json | 2 +- 455 files changed, 222 insertions(+), 243 deletions(-) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/BasicAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/add_potion_effect.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/apply_velocity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/console_run_command.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/delayed_action.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/drop_item.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/firework.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/give_item.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/group_trigger_action.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/play_sound.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/player_run_command.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/random_trigger.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/remove_item.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/send_message.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/set_block.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/set_item.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/show_title.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/simple_action.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/spawn_particles.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/stop_sound.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/switch_server_action.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/teleport.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/action/track_quest.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/boss_bar.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/cinematic_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/closest_group_member_path_stream.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/criteria_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/cron_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/direct_location_path_stream.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/game_time_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/group_members_path_stream.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/holding_item_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/item_in_inventory_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/item_in_slot_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/location_objectives_path_stream.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/looping_cinematic_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/sidebar.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/simple_lines.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/tab_list_header_footer.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/timer_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/audience/trigger_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/actionbar_dialogue_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/blinding_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/camera_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/cinematic_console_command.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/cinematic_player_command.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/particle_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/potion_effect_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/pumpkin_hat_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/random_actionbar_dialogue_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/random_spoken_dialogue_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/random_subtitle_dialogue_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/screen_shake_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/set_fake_block_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/sound_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/spoken_dialogue_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/subtitle_dialogue_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/title_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/cinematic/trigger_sequence_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/dialogue/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/dialogue/message.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/dialogue/option.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/dialogue/random_message.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/dialogue/random_spoken.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/dialogue/spoken.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/craft_item_event.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/fire_trigger_event.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_block_break.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_detect_command_ran.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_fish.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_interact_with_block.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_item_pickup.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_message_contains_text.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_place_block.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_player_death.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_player_hit_entity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_player_join.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_player_kill_entity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_player_kill_player.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_player_near_location.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_player_quit.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/event/on_run_command.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/countdown_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/cron_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/in_audience_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/in_cinematic_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/inventory_item_count_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/item_holding_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/item_in_slot_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/number_placeholder.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/permanent_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/quest_status_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/session_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/timed_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/fact/value_placeholder.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/group/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/group/global_group.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/group/player_group.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/group/world_group.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/completable_objective.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/location_objective.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/objective.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/objective_lines.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/quest.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/quest_complete_event.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/quest_start_event.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/quest_status_update_event.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/tracked_objective_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/quest/tracked_quest_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/sound/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/sound/custom_sound.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/static/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/static/base_road_network.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/static/self_speaker.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/BasicAdapter/entries/static/simple_speaker.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/CitizensAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/entries/cinematic/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/entries/cinematic/reference_npc_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/entries/cinematic/self_npc_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/entries/entity/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/entries/entity/reference_npc.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CitizensAdapter/entries/event/on_npc_interact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CombatLogXAdapter/CombatLogXAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CombatLogXAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CombatLogXAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CombatLogXAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CombatLogXAdapter/entries/event/on_player_enter_combat.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CombatLogXAdapter/entries/event/on_player_exit_combat.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CombatLogXAdapter/entries/fact/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/CombatLogXAdapter/entries/fact/combat_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/EntityAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/audience_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/game_time_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/in_dialogue_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/look_close_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/path_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/patrol_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/player_close_by_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/random_look_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/target_location_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/timed_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/activity/trigger_activity.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/audience/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/audience/direct_entity_instance_path_stream.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/cinematic/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/cinematic/entity_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/ageable_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/arrow_count_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/cat_variant_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/chested_horse_chest_meta.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/collar_color_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/custom_name_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/dancing_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/glowing_effect_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/horse_variant_dat.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/llama_carpet_color_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/llama_variant_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/marker_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/on_fire_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/parrot_color_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/pose_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/potion_effect_color_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/puff_state_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/rabbit_type_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/saddled_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/size_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/skin_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/small_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/data/villager_data.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/allay_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/cat_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/chicken_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/cow_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/enderman_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/frog_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/hit_box_definition.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/hoglin_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/husk_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/interaction_indicator_definition.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/iron_golem_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/item_display_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/magma_cube_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/named_entity_definition.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/npc_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/piglin_brute_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/piglin_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/player_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/self_npc_definition.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/skeleton_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/slime_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/stacked_entity_definition.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/text_display_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/villager_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/warden_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/witch_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/entity/zombie_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/event/entity_interact_event.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/instance/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/instance/group_advanced_entity_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/instance/individual_advanced_entity_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/instance/shared_advanced_entity_instance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/quest/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/quest/interact_entity_objective.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/EntityAdapter/entries/quest/interact_entity_objectives_path_stream.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/FancyNpcsAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/entries/cinematic/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/entries/cinematic/fancy_reference_npc_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/entries/cinematic/fancy_self_npc_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/entries/entity/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/entries/entity/fancy_reference_npc.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/FancyNpcsAdapter/entries/event/fancy_on_npc_interact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/MythicMobsAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/action/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/action/despawn_mythicmobs_mob.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/action/execute_mythicmob_skill.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/action/spawn_mythicmobs_mob.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/cinematic/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/cinematic/mythicmob_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/cinematic/mythicskill_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/event/mythicmobs_interact_event.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/event/on_mythic_mob_die.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/fact/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/MythicMobsAdapter/entries/fact/mythic_mob_count_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/README.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/RPGRegionsAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/entries/action/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/entries/action/discover_rpg_region.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/entries/event/on_discover_rpg_region.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/entries/event/on_enter_rpg_region.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/entries/fact/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/RPGRegionsAdapter/entries/fact/in_rpg_region_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/SuperiorSkyblockAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/action/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_deposit.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_withdraw.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/action/island_disband.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/action/island_set_biome.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/action/island_set_border_size.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/action/island_set_member_limit.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/event/on_island_create.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/event/on_island_disband.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/event/on_island_invite.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/event/on_island_join.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/event/on_island_upgrade.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/event/on_mission_complete.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/fact/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/fact/island_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/group/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/SuperiorSkyblockAdapter/entries/group/island_group.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/VaultAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/action/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/action/deposit_balance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/action/set_prefix.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/action/withdraw_balance.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/fact/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/fact/balance_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/fact/permission_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/group/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/group/balance_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/VaultAdapter/entries/group/permission_group.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/WorldGuardAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/audience/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/audience/region_audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/event/on_enter_region.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/event/on_exit_region.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/fact/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/fact/in_region_fact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/group/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/WorldGuardAdapter/entries/group/region_group.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/ZNPCsPlusAdapter.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/entries/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/entries/cinematic/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_reference_npc_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_self_npc_cinematic.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/entries/entity/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/entries/entity/znpc_reference_npc.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/entries/event/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/adapters/ZNPCsPlusAdapter/entries/event/znpc_on_npc_interact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/02-getting_started.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/cinematic/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/manifest/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/manifest/audience.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/static/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/static/artifact.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/static/asset.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/static/sound_id.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/static/sound_source.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/static/speaker.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/trigger/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/trigger/action.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/trigger/custom_triggering_action.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/trigger/dialogue.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/03-entries/trigger/event.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/04-querying.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/05-triggering.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/06-api-changes/0.5.0.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/06-api-changes/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/02-adapters/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/README.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/develop/snippets.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/01-home.md (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/02-getting-started/01-installation.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/02-getting-started/02-layout.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/02-getting-started/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/01-interactions/01-options.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/01-interactions/02-items.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/01-interactions/03-conditional-dialogue.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/01-interactions/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/02-cinematics/01-dialogue.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/02-cinematics/03-entities.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/02-cinematics/04-first-join.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/02-cinematics/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/03-facts/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/04-entity-adapter/02-interacting.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/04-entity-adapter/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/01-dynamic-objectives.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/02-entity-objectives.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/05-displaying_quests.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/display/quest_display_manifest.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/display/quest_display_sequence.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_demo.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_manifest.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_manifest.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_quest.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_sequence.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_static.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_tracked.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_untracked.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/entity_objectives/path_stream.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/entity_objectives/quest_demo.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/index/quest_demo.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/index/quest_manifest.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/index/quest_sequence.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/index/quest_static.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/index/setup_demo.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/index/setup_manifest.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/assets/index/setup_sequence.json (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/05-questing/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/06-road-network/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/03-creating-stories/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/04-concepts/03-Manifest/assets/a-village-blacksmith-hut.svg (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/04-concepts/03-Manifest/assets/a-village-hut.svg (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/04-concepts/03-Manifest/assets/a-village-hut_2.svg (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/04-concepts/03-Manifest/assets/a-village-hut_3.svg (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/04-concepts/03-Manifest/assets/a-village-hut_4.svg (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/04-concepts/03-Manifest/assets/manifest.riv (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/04-concepts/03-Manifest/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/04-concepts/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/05-helpfull-features/01-chapters.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/05-helpfull-features/02-commands.md (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/05-helpfull-features/03-placeholderapi.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/05-helpfull-features/04-shortcuts.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/05-helpfull-features/05-snippets.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/05-helpfull-features/_category_.yml (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/06-troubleshooting/adapters.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/06-troubleshooting/index.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/06-troubleshooting/ports.mdx (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/chapters/chapters.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/chapters/sub-chapters.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/add-cinematic-fields.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/add-cinematic.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/adding-dialogue-cinematic.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/adding-dialogue-segment.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/cinematic-npc-result.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/content-mode.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/final-camera-cinematic.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/first-join-fact.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/first-join-result.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/playback.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/recording.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/segments.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/cinematics/select-entity-definition.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/entity-adapter/definition_select.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/entity-adapter/entity-interact-event-fields.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/entity-adapter/entity_location.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/entity-adapter/entity_name_change.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/entity-adapter/fetch_skin.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/entity-adapter/glow_editor.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/entity-adapter/glow_effect.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/facts/criteria.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/facts/criteria_and_modifier.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/facts/modifier.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/facts/static-page.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/installation/connect-book.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/installation/connect-command.gif (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/add-spoken-fields.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/add-spoken.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/adding-options.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/conditional-dialogue-sequence.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/configure-option.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/final-result-conditional-dialogue.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/final-result-default.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/final-result-give-item.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/final-result-option.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/flower-clicked-fact.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/item-capturer.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/on_flower_click.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/interactions/simple-speaker.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/layout/add-page.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/layout/layout-cinematic.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/layout/layout.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/placeholderapi/papi-factid.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/placeholderapi/papi-icon.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/road-network/add-node.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/road-network/fast-travel.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/road-network/negative-nodes-preview.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/road-network/non-negative-nodes-example.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/road-network/path.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/road-network/radius.png (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/road-network/radius.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/road-network/remove-edge.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/road-network/remove-edges.webm (100%) rename documentation/versioned_docs/{version-0.5.0 => version-0.5.1}/docs/assets/troubleshooting/no-entries.png (100%) rename documentation/versioned_sidebars/{version-0.5.0-sidebars.json => version-0.5.1-sidebars.json} (100%) diff --git a/documentation/docusaurus.config.js b/documentation/docusaurus.config.js index b0ef12557e..1915280e6c 100644 --- a/documentation/docusaurus.config.js +++ b/documentation/docusaurus.config.js @@ -47,7 +47,7 @@ const config = { editUrl: 'https://github.com/gabber235/TypeWriter/tree/develop/documentation/', routeBasePath: '/', - lastVersion: '0.5.0', + lastVersion: '0.5.1', showLastUpdateAuthor: true, showLastUpdateTime: true, versions: { @@ -76,7 +76,7 @@ const config = { announcementBar: { id: 'support_us', content: - 'TypeWriter 0.5.0 is out!', + 'TypeWriter 0.5.1 is out!', isCloseable: true, }, mermaid: { diff --git a/documentation/package-lock.json b/documentation/package-lock.json index 3877952f1a..fcf851fcb7 100644 --- a/documentation/package-lock.json +++ b/documentation/package-lock.json @@ -9,9 +9,9 @@ "version": "0.0.0", "dependencies": { "@dagrejs/dagre": "^1.1.3", - "@docusaurus/core": "^3.5.1", - "@docusaurus/preset-classic": "^3.5.1", - "@docusaurus/theme-mermaid": "^3.5.1", + "@docusaurus/core": "^3.5.2", + "@docusaurus/preset-classic": "^3.5.2", + "@docusaurus/theme-mermaid": "^3.5.2", "@mdx-js/react": "^3.0.1", "@rive-app/react-canvas": "^4.13.5", "clsx": "^2.1.1", @@ -26,10 +26,10 @@ "screenfull": "^6.0.2" }, "devDependencies": { - "@docusaurus/lqip-loader": "^3.5.1", - "@docusaurus/module-type-aliases": "^3.5.1", - "@docusaurus/tsconfig": "^3.5.1", - "@docusaurus/types": "^3.5.1", + "@docusaurus/lqip-loader": "^3.5.2", + "@docusaurus/module-type-aliases": "^3.5.2", + "@docusaurus/tsconfig": "^3.5.2", + "@docusaurus/types": "^3.5.2", "@iconify/react": "^5.0.2", "@types/react": "^18.3.3", "autoprefixer": "^10.4.20", @@ -178,9 +178,9 @@ } }, "node_modules/@algolia/client-common": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.2.5.tgz", - "integrity": "sha512-ITE85veJWwClnoNyv7Zydh9U0eKA82cDy8pLw+2hzL+zlzFIvV68ihGOEQ/kXt8N4v+R4MFzvsxnIpMruQzEug==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.4.1.tgz", + "integrity": "sha512-IffPD+CETiR8YJMVC1lcjnhETLpJ2L0ORZCbbRvwo/S11D1j/keR7AqKVMn4TseRJCfjmBFOcFrC+m4sXjyQWA==", "license": "MIT", "peer": true, "engines": { @@ -209,15 +209,16 @@ } }, "node_modules/@algolia/client-search": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.2.5.tgz", - "integrity": "sha512-OVDLzm5BEUbJmjfMm7b0Xx8vkK+NyEh7whPHuap2qy0x7RxQDLMXjiKsBbt1WNq+9nfX6+M/f2t0CJ8ENVuyYQ==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.4.1.tgz", + "integrity": "sha512-nCgWY2p0tZgBqJKmA5E6B3VW+7uqxi1Orf88zNWOihJBRFeOV932pzG4vGrX9l0+p0o/vJabYxuomO35rEt5dw==", "license": "MIT", "peer": true, "dependencies": { - "@algolia/client-common": "5.2.5", - "@algolia/requester-browser-xhr": "5.2.5", - "@algolia/requester-node-http": "5.2.5" + "@algolia/client-common": "5.4.1", + "@algolia/requester-browser-xhr": "5.4.1", + "@algolia/requester-fetch": "5.4.1", + "@algolia/requester-node-http": "5.4.1" }, "engines": { "node": ">= 14.0.0" @@ -303,13 +304,13 @@ } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.2.5.tgz", - "integrity": "sha512-Ri73PphNy1ceig94xJW9bPdN7uIYFAjpsABpp2Fsun4DmeZD5a4rMCNwwOXXsbC8h+lUzW34zpUf+h4Nk+eaqA==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.4.1.tgz", + "integrity": "sha512-J6+YfU+maR0nIbsYRHoq0UpneilX97hrZzPuuvSoBojQmPo8PeCXKGeT/F0D8uFI6G4CMTKEPGmQYrC9IpCbcQ==", "license": "MIT", "peer": true, "dependencies": { - "@algolia/client-common": "5.2.5" + "@algolia/client-common": "5.4.1" }, "engines": { "node": ">= 14.0.0" @@ -321,14 +322,27 @@ "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==", "license": "MIT" }, + "node_modules/@algolia/requester-fetch": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.4.1.tgz", + "integrity": "sha512-AO/C1pqqpIS8p2IsfM5x92S+UBKkcIen5dHfMEh1rnV0ArWDreeqrtxMD2A+6AjQVwYeZNy56w7o7PVIm6mc8g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@algolia/client-common": "5.4.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/requester-node-http": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.2.5.tgz", - "integrity": "sha512-/tTdEuWcWHSe/mGMomWkuaFDoRcpfl/jvGISVTPRq3pJvM1FPAzxlh2MXge6C30aUS9bxh3V0aWwgKFCilzyMQ==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.4.1.tgz", + "integrity": "sha512-2Y3vffc91egwFxz0SjXFEH4q8nvlNJHcz+0//NaWItRU68AvD+3aI/j66STPjkLQOC0Ku6ckA9ChhbOVfrv+Uw==", "license": "MIT", "peer": true, "dependencies": { - "@algolia/client-common": "5.2.5" + "@algolia/client-common": "5.4.1" }, "engines": { "node": ">= 14.0.0" @@ -3557,9 +3571,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -3926,18 +3940,18 @@ } }, "node_modules/@rive-app/canvas": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/@rive-app/canvas/-/canvas-2.20.0.tgz", - "integrity": "sha512-CR6C+I5FIS4c2i0PWwTpp/AtEn1B8po6QCpM2FYff11Iz/Qkzz0zVlGLl8IAqSOYC18jbR6ya8Zufgy9hAULAQ==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@rive-app/canvas/-/canvas-2.21.0.tgz", + "integrity": "sha512-ksUFeHV3nkbGEuj8Z4UQ7PZioH7pYUX9UF7+xnmIEhub0aF9hSEQkTSdR1CCvg8BW+AkvX8dR9v7YpEcBaA9eQ==", "license": "MIT" }, "node_modules/@rive-app/react-canvas": { - "version": "4.13.8", - "resolved": "https://registry.npmjs.org/@rive-app/react-canvas/-/react-canvas-4.13.8.tgz", - "integrity": "sha512-bfXueTIsoZIY6ZLMflFkKTQh312+7GNDr5X8/VxdxXNrdUxtp9D0dd5x4+FXRtn3V6yKbjQsT6NIMGLi73WGrw==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@rive-app/react-canvas/-/react-canvas-4.14.0.tgz", + "integrity": "sha512-mqkvTrvvflFXQ45soee7ggst7r9ThaalQY3iMtimjz8TXNVTaPu9pxEffJO1Ego7iJX4L4IUW8wYNjDrco+UyQ==", "license": "MIT", "dependencies": { - "@rive-app/canvas": "2.20.0" + "@rive-app/canvas": "2.21.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" @@ -4731,9 +4745,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.5.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.3.tgz", - "integrity": "sha512-njripolh85IA9SQGTAqbmnNZTdxv7X/4OYGPz8tgy5JDr8MP+uDBa921GpYEoDDnwm0Hmn5ZPeJgiiSTPoOzkQ==", + "version": "22.5.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", + "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==", "license": "MIT", "dependencies": { "undici-types": "~6.19.2" @@ -4767,9 +4781,9 @@ "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", + "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", "license": "MIT" }, "node_modules/@types/range-parser": { @@ -5133,9 +5147,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", - "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "license": "MIT", "dependencies": { "acorn": "^8.11.0" @@ -5235,9 +5249,9 @@ } }, "node_modules/algoliasearch-helper": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.4.tgz", - "integrity": "sha512-fvBCywguW9f+939S6awvRMstqMF1XXcd2qs1r1aGqL/PJ1go/DqN06tWmDVmhCDqBJanm++imletrQWf0G2S1g==", + "version": "3.22.5", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.5.tgz", + "integrity": "sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==", "license": "MIT", "dependencies": { "@algolia/events": "^4.0.1" @@ -5558,9 +5572,9 @@ "optional": true }, "node_modules/bare-fs": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.3.tgz", - "integrity": "sha512-7RYKL+vZVCyAsMLi5SPu7QGauGGT8avnP/HO571ndEuV4MYdGXvLhtW67FuLPeEI8EiIY7zbbRR9x7x7HU0kgw==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", + "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -5571,9 +5585,9 @@ } }, "node_modules/bare-os": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.2.tgz", - "integrity": "sha512-HZoJwzC+rZ9lqEemTMiO0luOePoGYNBgsLLgegKR/cljiJvcDNhDZQkzC+NC5Oh0aHbdBNSOHpghwMuB5tqhjg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", + "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", "dev": true, "license": "Apache-2.0", "optional": true @@ -5590,15 +5604,15 @@ } }, "node_modules/bare-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.2.1.tgz", - "integrity": "sha512-YTB47kHwBW9zSG8LD77MIBAAQXjU2WjAkMHeeb7hUplVs6+IoM5I7uEVQNPMB7lj9r8I76UMdoMkGnCodHOLqg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz", + "integrity": "sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==", "dev": true, "license": "Apache-2.0", "optional": true, "dependencies": { "b4a": "^1.6.6", - "streamx": "^2.18.0" + "streamx": "^2.20.0" } }, "node_modules/base64-js": { @@ -5665,6 +5679,7 @@ "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -5688,6 +5703,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5696,6 +5712,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -5704,6 +5721,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -5714,21 +5732,8 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/bonjour-service": { "version": "1.2.1", @@ -5962,9 +5967,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001655", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", - "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "version": "1.0.30001660", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", + "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", "funding": [ { "type": "opencollective", @@ -6484,6 +6489,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7479,12 +7485,12 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -7652,6 +7658,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7669,6 +7676,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -7926,9 +7934,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "version": "1.5.23", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.23.tgz", + "integrity": "sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==", "license": "ISC" }, "node_modules/elkjs": { @@ -7969,9 +7977,9 @@ } }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -8257,6 +8265,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8322,9 +8331,10 @@ } }, "node_modules/express": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", - "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -8338,7 +8348,7 @@ "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.3", @@ -8347,11 +8357,11 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.19.0", - "serve-static": "1.16.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -8383,14 +8393,6 @@ "ms": "2.0.0" } }, - "node_modules/express/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8400,7 +8402,8 @@ "node_modules/express/node_modules/path-to-regexp": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "license": "MIT" }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", @@ -8616,13 +8619,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "license": "MIT", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -8690,9 +8693,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.8.tgz", - "integrity": "sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -8919,6 +8922,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9464,18 +9468,18 @@ } }, "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", - "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", "license": "MIT" }, "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.7.tgz", - "integrity": "sha512-uSjr59G5u6fbxUfKbb8GcqMGT3Xs9v5IbPkjb0S16GyOeBLAzSRK0CixBv5YrYvzO6TDLzIS6QCn78tkqWngPw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", "license": "MIT", "dependencies": { - "inline-style-parser": "0.2.3" + "inline-style-parser": "0.2.4" } }, "node_modules/hast-util-to-parse5": { @@ -9778,6 +9782,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -10611,9 +10616,9 @@ } }, "node_modules/launch-editor": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.2.tgz", - "integrity": "sha512-eF5slEUZXmi6WvFzI3dYcv+hA24/iKnROf24HztcURJpSz9RBmBgz5cNCVOeguouf1llrwy6Yctl4C4HM+xI8g==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", "license": "MIT", "dependencies": { "picocolors": "^1.0.0", @@ -11100,9 +11105,9 @@ } }, "node_modules/mdast-util-mdx-expression": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", - "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", @@ -11237,6 +11242,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11263,6 +11269,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -13573,6 +13580,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13705,9 +13713,9 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/multicast-dns": { @@ -13924,6 +13932,7 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -14316,9 +14325,9 @@ "license": "ISC" }, "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "license": "MIT", "dependencies": { "isarray": "0.0.1" @@ -14471,9 +14480,9 @@ } }, "node_modules/postcss": { - "version": "8.4.45", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz", - "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "funding": [ { "type": "opencollective", @@ -14491,8 +14500,8 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -15354,9 +15363,9 @@ } }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "dev": true, "license": "MIT", "dependencies": { @@ -15386,11 +15395,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -15469,6 +15479,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -15483,6 +15494,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -15491,6 +15503,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -15906,9 +15919,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "license": "MIT", "dependencies": { "regenerate": "^1.4.2" @@ -16660,9 +16673,9 @@ } }, "node_modules/search-insights": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.1.tgz", - "integrity": "sha512-HHFjYH/0AqXacETlIbe9EYc3UNlQYGNNTY0fZ/sWl6SweX+GDxq9NB5+RVoPLgEFuOtCz7M9dhYxqDnhbbF0eQ==", + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.2.tgz", + "integrity": "sha512-zFNpOpUO+tY2D85KrxJ+aqwnIfdEGi06UH2+xEb+Bp9Mwznmauqc9djbnBibJO5mpfUPPa8st6Sx65+vbeO45g==", "license": "MIT", "peer": true }, @@ -16729,6 +16742,7 @@ "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -16752,6 +16766,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -16759,17 +16774,23 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, "node_modules/send/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16884,63 +16905,15 @@ } }, "node_modules/serve-static": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", - "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-static/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/serve-static/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static/node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -16966,7 +16939,8 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", @@ -17077,6 +17051,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -17275,9 +17250,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -17376,9 +17351,9 @@ "license": "MIT" }, "node_modules/streamx": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.0.tgz", - "integrity": "sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==", + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", + "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", "dev": true, "license": "MIT", "dependencies": { @@ -17440,9 +17415,9 @@ "license": "MIT" }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "license": "MIT", "engines": { "node": ">=12" @@ -17726,9 +17701,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", - "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.11.tgz", + "integrity": "sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==", "dev": true, "license": "MIT", "dependencies": { @@ -17823,9 +17798,9 @@ } }, "node_modules/terser": { - "version": "5.31.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", - "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.32.0.tgz", + "integrity": "sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -17959,9 +17934,9 @@ "license": "MIT" }, "node_modules/text-decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz", - "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz", + "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -18040,6 +18015,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -18124,6 +18100,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -18136,6 +18113,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -18144,6 +18122,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -18161,9 +18140,9 @@ } }, "node_modules/typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -18180,9 +18159,9 @@ "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "license": "MIT", "engines": { "node": ">=4" @@ -18211,9 +18190,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "license": "MIT", "engines": { "node": ">=4" @@ -19197,9 +19176,9 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "license": "MIT", "engines": { "node": ">=12" diff --git a/documentation/package.json b/documentation/package.json index b39fd7df46..0acef840ab 100644 --- a/documentation/package.json +++ b/documentation/package.json @@ -16,9 +16,9 @@ }, "dependencies": { "@dagrejs/dagre": "^1.1.3", - "@docusaurus/core": "^3.5.1", - "@docusaurus/preset-classic": "^3.5.1", - "@docusaurus/theme-mermaid": "^3.5.1", + "@docusaurus/core": "^3.5.2", + "@docusaurus/preset-classic": "^3.5.2", + "@docusaurus/theme-mermaid": "^3.5.2", "@mdx-js/react": "^3.0.1", "@rive-app/react-canvas": "^4.13.5", "clsx": "^2.1.1", @@ -33,10 +33,10 @@ "screenfull": "^6.0.2" }, "devDependencies": { - "@docusaurus/lqip-loader": "^3.5.1", - "@docusaurus/module-type-aliases": "^3.5.1", - "@docusaurus/tsconfig": "^3.5.1", - "@docusaurus/types": "^3.5.1", + "@docusaurus/lqip-loader": "^3.5.2", + "@docusaurus/module-type-aliases": "^3.5.2", + "@docusaurus/tsconfig": "^3.5.2", + "@docusaurus/types": "^3.5.2", "@iconify/react": "^5.0.2", "@types/react": "^18.3.3", "autoprefixer": "^10.4.20", diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/BasicAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/BasicAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/BasicAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/BasicAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/add_potion_effect.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/add_potion_effect.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/add_potion_effect.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/add_potion_effect.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/apply_velocity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/apply_velocity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/apply_velocity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/apply_velocity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/console_run_command.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/console_run_command.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/console_run_command.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/console_run_command.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/delayed_action.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/delayed_action.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/delayed_action.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/delayed_action.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/drop_item.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/drop_item.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/drop_item.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/drop_item.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/firework.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/firework.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/firework.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/firework.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/give_item.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/give_item.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/give_item.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/give_item.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/group_trigger_action.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/group_trigger_action.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/group_trigger_action.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/group_trigger_action.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/play_sound.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/play_sound.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/play_sound.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/play_sound.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/player_run_command.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/player_run_command.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/player_run_command.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/player_run_command.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/random_trigger.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/random_trigger.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/random_trigger.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/random_trigger.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/remove_item.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/remove_item.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/remove_item.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/remove_item.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/send_message.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/send_message.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/send_message.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/send_message.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/set_block.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/set_block.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/set_block.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/set_block.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/set_item.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/set_item.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/set_item.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/set_item.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/show_title.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/show_title.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/show_title.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/show_title.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/simple_action.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/simple_action.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/simple_action.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/simple_action.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/spawn_particles.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/spawn_particles.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/spawn_particles.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/spawn_particles.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/stop_sound.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/stop_sound.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/stop_sound.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/stop_sound.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/switch_server_action.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/switch_server_action.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/switch_server_action.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/switch_server_action.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/teleport.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/teleport.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/teleport.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/teleport.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/track_quest.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/track_quest.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/action/track_quest.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/action/track_quest.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/boss_bar.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/boss_bar.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/boss_bar.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/boss_bar.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/cinematic_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/cinematic_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/cinematic_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/cinematic_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/closest_group_member_path_stream.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/closest_group_member_path_stream.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/closest_group_member_path_stream.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/closest_group_member_path_stream.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/criteria_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/criteria_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/criteria_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/criteria_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/cron_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/cron_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/cron_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/cron_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/direct_location_path_stream.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/direct_location_path_stream.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/direct_location_path_stream.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/direct_location_path_stream.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/game_time_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/game_time_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/game_time_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/game_time_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/group_members_path_stream.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/group_members_path_stream.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/group_members_path_stream.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/group_members_path_stream.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/holding_item_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/holding_item_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/holding_item_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/holding_item_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/item_in_inventory_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/item_in_inventory_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/item_in_inventory_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/item_in_inventory_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/item_in_slot_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/item_in_slot_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/item_in_slot_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/item_in_slot_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/location_objectives_path_stream.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/location_objectives_path_stream.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/location_objectives_path_stream.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/location_objectives_path_stream.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/looping_cinematic_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/looping_cinematic_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/looping_cinematic_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/looping_cinematic_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/sidebar.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/sidebar.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/sidebar.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/sidebar.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/simple_lines.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/simple_lines.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/simple_lines.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/simple_lines.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/tab_list_header_footer.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/tab_list_header_footer.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/tab_list_header_footer.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/tab_list_header_footer.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/timer_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/timer_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/timer_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/timer_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/trigger_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/trigger_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/audience/trigger_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/audience/trigger_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/actionbar_dialogue_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/actionbar_dialogue_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/actionbar_dialogue_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/actionbar_dialogue_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/blinding_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/blinding_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/blinding_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/blinding_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/camera_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/camera_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/camera_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/camera_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/cinematic_console_command.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/cinematic_console_command.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/cinematic_console_command.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/cinematic_console_command.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/cinematic_player_command.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/cinematic_player_command.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/cinematic_player_command.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/cinematic_player_command.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/particle_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/particle_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/particle_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/particle_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/potion_effect_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/potion_effect_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/potion_effect_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/potion_effect_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/pumpkin_hat_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/pumpkin_hat_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/pumpkin_hat_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/pumpkin_hat_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/random_actionbar_dialogue_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/random_actionbar_dialogue_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/random_actionbar_dialogue_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/random_actionbar_dialogue_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/random_spoken_dialogue_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/random_spoken_dialogue_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/random_spoken_dialogue_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/random_spoken_dialogue_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/random_subtitle_dialogue_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/random_subtitle_dialogue_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/random_subtitle_dialogue_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/random_subtitle_dialogue_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/screen_shake_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/screen_shake_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/screen_shake_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/screen_shake_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/set_fake_block_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/set_fake_block_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/set_fake_block_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/set_fake_block_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/sound_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/sound_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/sound_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/sound_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/spoken_dialogue_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/spoken_dialogue_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/spoken_dialogue_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/spoken_dialogue_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/subtitle_dialogue_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/subtitle_dialogue_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/subtitle_dialogue_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/subtitle_dialogue_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/title_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/title_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/title_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/title_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/trigger_sequence_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/trigger_sequence_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/cinematic/trigger_sequence_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/cinematic/trigger_sequence_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/message.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/message.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/message.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/message.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/option.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/option.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/option.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/option.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/random_message.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/random_message.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/random_message.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/random_message.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/random_spoken.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/random_spoken.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/random_spoken.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/random_spoken.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/spoken.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/spoken.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/dialogue/spoken.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/dialogue/spoken.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/craft_item_event.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/craft_item_event.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/craft_item_event.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/craft_item_event.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/fire_trigger_event.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/fire_trigger_event.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/fire_trigger_event.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/fire_trigger_event.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_block_break.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_block_break.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_block_break.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_block_break.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_detect_command_ran.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_detect_command_ran.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_detect_command_ran.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_detect_command_ran.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_fish.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_fish.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_fish.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_fish.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_interact_with_block.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_interact_with_block.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_interact_with_block.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_interact_with_block.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_item_pickup.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_item_pickup.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_item_pickup.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_item_pickup.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_message_contains_text.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_message_contains_text.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_message_contains_text.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_message_contains_text.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_place_block.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_place_block.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_place_block.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_place_block.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_death.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_death.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_death.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_death.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_hit_entity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_hit_entity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_hit_entity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_hit_entity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_join.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_join.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_join.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_join.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_kill_entity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_kill_entity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_kill_entity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_kill_entity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_kill_player.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_kill_player.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_kill_player.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_kill_player.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_near_location.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_near_location.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_near_location.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_near_location.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_quit.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_quit.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_player_quit.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_player_quit.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_run_command.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_run_command.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/event/on_run_command.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/event/on_run_command.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/countdown_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/countdown_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/countdown_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/countdown_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/cron_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/cron_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/cron_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/cron_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/in_audience_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/in_audience_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/in_audience_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/in_audience_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/in_cinematic_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/in_cinematic_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/in_cinematic_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/in_cinematic_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/inventory_item_count_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/inventory_item_count_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/inventory_item_count_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/inventory_item_count_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/item_holding_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/item_holding_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/item_holding_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/item_holding_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/item_in_slot_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/item_in_slot_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/item_in_slot_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/item_in_slot_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/number_placeholder.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/number_placeholder.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/number_placeholder.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/number_placeholder.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/permanent_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/permanent_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/permanent_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/permanent_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/quest_status_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/quest_status_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/quest_status_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/quest_status_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/session_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/session_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/session_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/session_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/timed_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/timed_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/timed_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/timed_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/value_placeholder.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/value_placeholder.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/fact/value_placeholder.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/fact/value_placeholder.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/group/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/group/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/group/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/group/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/group/global_group.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/group/global_group.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/group/global_group.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/group/global_group.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/group/player_group.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/group/player_group.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/group/player_group.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/group/player_group.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/group/world_group.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/group/world_group.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/group/world_group.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/group/world_group.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/completable_objective.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/completable_objective.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/completable_objective.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/completable_objective.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/location_objective.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/location_objective.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/location_objective.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/location_objective.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/objective.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/objective.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/objective.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/objective.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/objective_lines.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/objective_lines.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/objective_lines.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/objective_lines.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/quest.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/quest.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/quest.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/quest.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/quest_complete_event.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/quest_complete_event.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/quest_complete_event.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/quest_complete_event.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/quest_start_event.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/quest_start_event.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/quest_start_event.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/quest_start_event.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/quest_status_update_event.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/quest_status_update_event.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/quest_status_update_event.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/quest_status_update_event.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/tracked_objective_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/tracked_objective_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/tracked_objective_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/tracked_objective_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/tracked_quest_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/tracked_quest_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/quest/tracked_quest_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/quest/tracked_quest_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/sound/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/sound/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/sound/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/sound/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/sound/custom_sound.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/sound/custom_sound.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/sound/custom_sound.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/sound/custom_sound.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/static/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/static/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/static/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/static/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/static/base_road_network.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/static/base_road_network.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/static/base_road_network.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/static/base_road_network.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/static/self_speaker.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/static/self_speaker.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/static/self_speaker.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/static/self_speaker.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/static/simple_speaker.mdx b/documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/static/simple_speaker.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/BasicAdapter/entries/static/simple_speaker.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/BasicAdapter/entries/static/simple_speaker.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/CitizensAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/CitizensAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/CitizensAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/CitizensAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/cinematic/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/cinematic/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/cinematic/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/cinematic/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/cinematic/reference_npc_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/cinematic/reference_npc_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/cinematic/reference_npc_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/cinematic/reference_npc_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/cinematic/self_npc_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/cinematic/self_npc_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/cinematic/self_npc_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/cinematic/self_npc_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/entity/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/entity/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/entity/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/entity/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/entity/reference_npc.mdx b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/entity/reference_npc.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/entity/reference_npc.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/entity/reference_npc.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/event/on_npc_interact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/event/on_npc_interact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CitizensAdapter/entries/event/on_npc_interact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/CitizensAdapter/entries/event/on_npc_interact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/CombatLogXAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/CombatLogXAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/CombatLogXAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/CombatLogXAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/event/on_player_enter_combat.mdx b/documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/event/on_player_enter_combat.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/event/on_player_enter_combat.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/event/on_player_enter_combat.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/event/on_player_exit_combat.mdx b/documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/event/on_player_exit_combat.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/event/on_player_exit_combat.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/event/on_player_exit_combat.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/fact/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/fact/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/fact/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/fact/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/fact/combat_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/fact/combat_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/CombatLogXAdapter/entries/fact/combat_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/CombatLogXAdapter/entries/fact/combat_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/EntityAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/EntityAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/EntityAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/EntityAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/audience_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/audience_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/audience_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/audience_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/game_time_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/game_time_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/game_time_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/game_time_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/in_dialogue_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/in_dialogue_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/in_dialogue_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/in_dialogue_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/look_close_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/look_close_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/look_close_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/look_close_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/path_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/path_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/path_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/path_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/patrol_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/patrol_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/patrol_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/patrol_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/player_close_by_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/player_close_by_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/player_close_by_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/player_close_by_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/random_look_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/random_look_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/random_look_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/random_look_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/target_location_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/target_location_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/target_location_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/target_location_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/timed_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/timed_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/timed_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/timed_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/trigger_activity.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/trigger_activity.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/activity/trigger_activity.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/activity/trigger_activity.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/audience/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/audience/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/audience/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/audience/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/audience/direct_entity_instance_path_stream.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/audience/direct_entity_instance_path_stream.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/audience/direct_entity_instance_path_stream.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/audience/direct_entity_instance_path_stream.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/cinematic/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/cinematic/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/cinematic/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/cinematic/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/cinematic/entity_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/cinematic/entity_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/cinematic/entity_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/cinematic/entity_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/ageable_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/ageable_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/ageable_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/ageable_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/arrow_count_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/arrow_count_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/arrow_count_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/arrow_count_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/cat_variant_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/cat_variant_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/cat_variant_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/cat_variant_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/chested_horse_chest_meta.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/chested_horse_chest_meta.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/chested_horse_chest_meta.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/chested_horse_chest_meta.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/collar_color_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/collar_color_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/collar_color_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/collar_color_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/custom_name_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/custom_name_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/custom_name_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/custom_name_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/dancing_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/dancing_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/dancing_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/dancing_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/glowing_effect_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/glowing_effect_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/glowing_effect_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/glowing_effect_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/horse_variant_dat.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/horse_variant_dat.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/horse_variant_dat.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/horse_variant_dat.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/llama_carpet_color_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/llama_carpet_color_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/llama_carpet_color_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/llama_carpet_color_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/llama_variant_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/llama_variant_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/llama_variant_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/llama_variant_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/marker_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/marker_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/marker_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/marker_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/on_fire_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/on_fire_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/on_fire_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/on_fire_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/parrot_color_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/parrot_color_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/parrot_color_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/parrot_color_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/pose_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/pose_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/pose_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/pose_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/potion_effect_color_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/potion_effect_color_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/potion_effect_color_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/potion_effect_color_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/puff_state_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/puff_state_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/puff_state_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/puff_state_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/rabbit_type_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/rabbit_type_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/rabbit_type_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/rabbit_type_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/saddled_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/saddled_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/saddled_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/saddled_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/size_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/size_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/size_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/size_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/skin_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/skin_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/skin_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/skin_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/small_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/small_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/small_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/small_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/villager_data.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/villager_data.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/data/villager_data.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/data/villager_data.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/allay_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/allay_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/allay_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/allay_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/cat_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/cat_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/cat_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/cat_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/chicken_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/chicken_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/chicken_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/chicken_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/cow_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/cow_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/cow_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/cow_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/enderman_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/enderman_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/enderman_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/enderman_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/frog_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/frog_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/frog_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/frog_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/hit_box_definition.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/hit_box_definition.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/hit_box_definition.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/hit_box_definition.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/hoglin_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/hoglin_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/hoglin_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/hoglin_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/husk_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/husk_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/husk_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/husk_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/interaction_indicator_definition.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/interaction_indicator_definition.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/interaction_indicator_definition.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/interaction_indicator_definition.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/iron_golem_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/iron_golem_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/iron_golem_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/iron_golem_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/item_display_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/item_display_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/item_display_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/item_display_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/magma_cube_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/magma_cube_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/magma_cube_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/magma_cube_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/named_entity_definition.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/named_entity_definition.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/named_entity_definition.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/named_entity_definition.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/npc_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/npc_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/npc_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/npc_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/piglin_brute_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/piglin_brute_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/piglin_brute_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/piglin_brute_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/piglin_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/piglin_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/piglin_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/piglin_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/player_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/player_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/player_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/player_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/self_npc_definition.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/self_npc_definition.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/self_npc_definition.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/self_npc_definition.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/skeleton_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/skeleton_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/skeleton_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/skeleton_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/slime_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/slime_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/slime_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/slime_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/stacked_entity_definition.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/stacked_entity_definition.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/stacked_entity_definition.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/stacked_entity_definition.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/text_display_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/text_display_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/text_display_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/text_display_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/villager_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/villager_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/villager_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/villager_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/warden_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/warden_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/warden_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/warden_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/witch_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/witch_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/witch_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/witch_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/zombie_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/zombie_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/entity/zombie_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/entity/zombie_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/event/entity_interact_event.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/event/entity_interact_event.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/event/entity_interact_event.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/event/entity_interact_event.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/instance/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/instance/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/instance/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/instance/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/instance/group_advanced_entity_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/instance/group_advanced_entity_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/instance/group_advanced_entity_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/instance/group_advanced_entity_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/instance/individual_advanced_entity_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/instance/individual_advanced_entity_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/instance/individual_advanced_entity_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/instance/individual_advanced_entity_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/instance/shared_advanced_entity_instance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/instance/shared_advanced_entity_instance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/instance/shared_advanced_entity_instance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/instance/shared_advanced_entity_instance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/quest/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/quest/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/quest/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/quest/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/quest/interact_entity_objective.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/quest/interact_entity_objective.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/quest/interact_entity_objective.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/quest/interact_entity_objective.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/quest/interact_entity_objectives_path_stream.mdx b/documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/quest/interact_entity_objectives_path_stream.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/EntityAdapter/entries/quest/interact_entity_objectives_path_stream.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/EntityAdapter/entries/quest/interact_entity_objectives_path_stream.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/FancyNpcsAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/FancyNpcsAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/FancyNpcsAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/FancyNpcsAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/cinematic/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/cinematic/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/cinematic/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/cinematic/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/cinematic/fancy_reference_npc_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/cinematic/fancy_reference_npc_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/cinematic/fancy_reference_npc_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/cinematic/fancy_reference_npc_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/cinematic/fancy_self_npc_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/cinematic/fancy_self_npc_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/cinematic/fancy_self_npc_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/cinematic/fancy_self_npc_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/entity/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/entity/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/entity/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/entity/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/entity/fancy_reference_npc.mdx b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/entity/fancy_reference_npc.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/entity/fancy_reference_npc.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/entity/fancy_reference_npc.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/event/fancy_on_npc_interact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/event/fancy_on_npc_interact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/FancyNpcsAdapter/entries/event/fancy_on_npc_interact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/FancyNpcsAdapter/entries/event/fancy_on_npc_interact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/MythicMobsAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/MythicMobsAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/MythicMobsAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/MythicMobsAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/action/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/action/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/action/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/action/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/action/despawn_mythicmobs_mob.mdx b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/action/despawn_mythicmobs_mob.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/action/despawn_mythicmobs_mob.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/action/despawn_mythicmobs_mob.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/action/execute_mythicmob_skill.mdx b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/action/execute_mythicmob_skill.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/action/execute_mythicmob_skill.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/action/execute_mythicmob_skill.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/action/spawn_mythicmobs_mob.mdx b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/action/spawn_mythicmobs_mob.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/action/spawn_mythicmobs_mob.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/action/spawn_mythicmobs_mob.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/cinematic/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/cinematic/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/cinematic/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/cinematic/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/cinematic/mythicmob_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/cinematic/mythicmob_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/cinematic/mythicmob_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/cinematic/mythicmob_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/cinematic/mythicskill_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/cinematic/mythicskill_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/cinematic/mythicskill_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/cinematic/mythicskill_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/event/mythicmobs_interact_event.mdx b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/event/mythicmobs_interact_event.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/event/mythicmobs_interact_event.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/event/mythicmobs_interact_event.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/event/on_mythic_mob_die.mdx b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/event/on_mythic_mob_die.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/event/on_mythic_mob_die.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/event/on_mythic_mob_die.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/fact/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/fact/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/fact/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/fact/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/fact/mythic_mob_count_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/fact/mythic_mob_count_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/MythicMobsAdapter/entries/fact/mythic_mob_count_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/MythicMobsAdapter/entries/fact/mythic_mob_count_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/README.mdx b/documentation/versioned_docs/version-0.5.1/adapters/README.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/README.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/README.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/RPGRegionsAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/RPGRegionsAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/RPGRegionsAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/RPGRegionsAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/action/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/action/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/action/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/action/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/action/discover_rpg_region.mdx b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/action/discover_rpg_region.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/action/discover_rpg_region.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/action/discover_rpg_region.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/event/on_discover_rpg_region.mdx b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/event/on_discover_rpg_region.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/event/on_discover_rpg_region.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/event/on_discover_rpg_region.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/event/on_enter_rpg_region.mdx b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/event/on_enter_rpg_region.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/event/on_enter_rpg_region.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/event/on_enter_rpg_region.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/fact/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/fact/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/fact/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/fact/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/fact/in_rpg_region_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/fact/in_rpg_region_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/RPGRegionsAdapter/entries/fact/in_rpg_region_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/RPGRegionsAdapter/entries/fact/in_rpg_region_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/SuperiorSkyblockAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/SuperiorSkyblockAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/SuperiorSkyblockAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/SuperiorSkyblockAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_deposit.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_deposit.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_deposit.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_deposit.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_withdraw.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_withdraw.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_withdraw.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_bank_withdraw.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_disband.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_disband.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_disband.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_disband.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_set_biome.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_set_biome.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_set_biome.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_set_biome.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_set_border_size.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_set_border_size.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_set_border_size.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_set_border_size.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_set_member_limit.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_set_member_limit.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/action/island_set_member_limit.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/action/island_set_member_limit.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_create.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_create.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_create.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_create.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_disband.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_disband.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_disband.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_disband.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_invite.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_invite.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_invite.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_invite.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_join.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_join.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_join.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_join.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_upgrade.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_upgrade.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_island_upgrade.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_island_upgrade.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_mission_complete.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_mission_complete.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/event/on_mission_complete.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/event/on_mission_complete.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/fact/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/fact/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/fact/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/fact/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/fact/island_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/fact/island_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/fact/island_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/fact/island_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/group/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/group/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/group/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/group/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/group/island_group.mdx b/documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/group/island_group.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/SuperiorSkyblockAdapter/entries/group/island_group.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/SuperiorSkyblockAdapter/entries/group/island_group.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/VaultAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/VaultAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/VaultAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/VaultAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/action/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/action/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/action/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/action/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/action/deposit_balance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/action/deposit_balance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/action/deposit_balance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/action/deposit_balance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/action/set_prefix.mdx b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/action/set_prefix.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/action/set_prefix.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/action/set_prefix.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/action/withdraw_balance.mdx b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/action/withdraw_balance.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/action/withdraw_balance.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/action/withdraw_balance.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/fact/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/fact/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/fact/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/fact/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/fact/balance_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/fact/balance_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/fact/balance_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/fact/balance_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/fact/permission_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/fact/permission_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/fact/permission_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/fact/permission_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/group/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/group/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/group/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/group/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/group/balance_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/group/balance_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/group/balance_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/group/balance_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/group/permission_group.mdx b/documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/group/permission_group.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/VaultAdapter/entries/group/permission_group.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/VaultAdapter/entries/group/permission_group.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/WorldGuardAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/WorldGuardAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/WorldGuardAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/WorldGuardAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/audience/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/audience/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/audience/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/audience/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/audience/region_audience.mdx b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/audience/region_audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/audience/region_audience.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/audience/region_audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/event/on_enter_region.mdx b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/event/on_enter_region.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/event/on_enter_region.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/event/on_enter_region.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/event/on_exit_region.mdx b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/event/on_exit_region.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/event/on_exit_region.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/event/on_exit_region.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/fact/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/fact/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/fact/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/fact/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/fact/in_region_fact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/fact/in_region_fact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/fact/in_region_fact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/fact/in_region_fact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/group/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/group/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/group/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/group/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/group/region_group.mdx b/documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/group/region_group.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/WorldGuardAdapter/entries/group/region_group.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/WorldGuardAdapter/entries/group/region_group.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/ZNPCsPlusAdapter.mdx b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/ZNPCsPlusAdapter.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/ZNPCsPlusAdapter.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/ZNPCsPlusAdapter.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/cinematic/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/cinematic/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/cinematic/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/cinematic/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_reference_npc_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_reference_npc_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_reference_npc_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_reference_npc_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_self_npc_cinematic.mdx b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_self_npc_cinematic.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_self_npc_cinematic.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/cinematic/znpc_self_npc_cinematic.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/entity/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/entity/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/entity/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/entity/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/entity/znpc_reference_npc.mdx b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/entity/znpc_reference_npc.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/entity/znpc_reference_npc.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/entity/znpc_reference_npc.mdx diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/event/_category_.yml b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/event/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/event/_category_.yml rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/event/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/event/znpc_on_npc_interact.mdx b/documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/event/znpc_on_npc_interact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/adapters/ZNPCsPlusAdapter/entries/event/znpc_on_npc_interact.mdx rename to documentation/versioned_docs/version-0.5.1/adapters/ZNPCsPlusAdapter/entries/event/znpc_on_npc_interact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/02-getting_started.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/02-getting_started.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/02-getting_started.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/02-getting_started.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/cinematic/index.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/cinematic/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/cinematic/index.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/cinematic/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/index.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/index.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/manifest/_category_.yml b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/manifest/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/manifest/_category_.yml rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/manifest/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/manifest/audience.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/manifest/audience.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/manifest/audience.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/manifest/audience.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/_category_.yml b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/_category_.yml rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/artifact.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/artifact.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/artifact.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/artifact.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/asset.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/asset.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/asset.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/asset.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/sound_id.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/sound_id.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/sound_id.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/sound_id.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/sound_source.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/sound_source.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/sound_source.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/sound_source.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/speaker.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/speaker.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/static/speaker.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/static/speaker.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/_category_.yml b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/_category_.yml rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/action.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/action.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/action.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/action.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/custom_triggering_action.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/custom_triggering_action.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/custom_triggering_action.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/custom_triggering_action.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/dialogue.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/dialogue.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/dialogue.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/dialogue.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/event.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/event.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/03-entries/trigger/event.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/03-entries/trigger/event.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/04-querying.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/04-querying.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/04-querying.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/04-querying.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/05-triggering.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/05-triggering.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/05-triggering.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/05-triggering.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/06-api-changes/0.5.0.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/06-api-changes/0.5.0.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/06-api-changes/0.5.0.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/06-api-changes/0.5.0.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/06-api-changes/index.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/06-api-changes/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/06-api-changes/index.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/06-api-changes/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/02-adapters/index.mdx b/documentation/versioned_docs/version-0.5.1/develop/02-adapters/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/02-adapters/index.mdx rename to documentation/versioned_docs/version-0.5.1/develop/02-adapters/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/README.mdx b/documentation/versioned_docs/version-0.5.1/develop/README.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/README.mdx rename to documentation/versioned_docs/version-0.5.1/develop/README.mdx diff --git a/documentation/versioned_docs/version-0.5.0/develop/snippets.json b/documentation/versioned_docs/version-0.5.1/develop/snippets.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/develop/snippets.json rename to documentation/versioned_docs/version-0.5.1/develop/snippets.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/01-home.md b/documentation/versioned_docs/version-0.5.1/docs/01-home.md similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/01-home.md rename to documentation/versioned_docs/version-0.5.1/docs/01-home.md diff --git a/documentation/versioned_docs/version-0.5.0/docs/02-getting-started/01-installation.mdx b/documentation/versioned_docs/version-0.5.1/docs/02-getting-started/01-installation.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/02-getting-started/01-installation.mdx rename to documentation/versioned_docs/version-0.5.1/docs/02-getting-started/01-installation.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/02-getting-started/02-layout.mdx b/documentation/versioned_docs/version-0.5.1/docs/02-getting-started/02-layout.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/02-getting-started/02-layout.mdx rename to documentation/versioned_docs/version-0.5.1/docs/02-getting-started/02-layout.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/02-getting-started/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/02-getting-started/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/02-getting-started/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/02-getting-started/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/01-interactions/01-options.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/01-interactions/01-options.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/01-interactions/01-options.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/01-interactions/01-options.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/01-interactions/02-items.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/01-interactions/02-items.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/01-interactions/02-items.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/01-interactions/02-items.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/01-interactions/03-conditional-dialogue.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/01-interactions/03-conditional-dialogue.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/01-interactions/03-conditional-dialogue.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/01-interactions/03-conditional-dialogue.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/01-interactions/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/01-interactions/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/01-interactions/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/01-interactions/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/02-cinematics/01-dialogue.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/02-cinematics/01-dialogue.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/02-cinematics/01-dialogue.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/02-cinematics/01-dialogue.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/02-cinematics/03-entities.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/02-cinematics/03-entities.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/02-cinematics/03-entities.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/02-cinematics/03-entities.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/02-cinematics/04-first-join.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/02-cinematics/04-first-join.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/02-cinematics/04-first-join.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/02-cinematics/04-first-join.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/02-cinematics/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/02-cinematics/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/02-cinematics/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/02-cinematics/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/03-facts/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/03-facts/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/03-facts/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/03-facts/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/04-entity-adapter/02-interacting.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/04-entity-adapter/02-interacting.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/04-entity-adapter/02-interacting.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/04-entity-adapter/02-interacting.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/04-entity-adapter/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/04-entity-adapter/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/04-entity-adapter/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/04-entity-adapter/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/01-dynamic-objectives.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/01-dynamic-objectives.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/01-dynamic-objectives.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/01-dynamic-objectives.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/02-entity-objectives.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/02-entity-objectives.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/02-entity-objectives.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/02-entity-objectives.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/05-displaying_quests.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/05-displaying_quests.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/05-displaying_quests.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/05-displaying_quests.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/display/quest_display_manifest.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/display/quest_display_manifest.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/display/quest_display_manifest.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/display/quest_display_manifest.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/display/quest_display_sequence.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/display/quest_display_sequence.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/display/quest_display_sequence.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/display/quest_display_sequence.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_demo.webm b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_demo.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_demo.webm rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_demo.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_manifest.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_manifest.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_manifest.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/dynamic_objectives/quest_manifest.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_manifest.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_manifest.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_manifest.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_manifest.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_quest.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_quest.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_quest.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_quest.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_sequence.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_sequence.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_sequence.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_sequence.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_static.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_static.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_static.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/ent_obj_static.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_tracked.png b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_tracked.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_tracked.png rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_tracked.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_untracked.png b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_untracked.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_untracked.png rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/npc_indicator_untracked.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/path_stream.webm b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/path_stream.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/path_stream.webm rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/path_stream.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/quest_demo.webm b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/quest_demo.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/entity_objectives/quest_demo.webm rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/entity_objectives/quest_demo.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/quest_demo.webm b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/quest_demo.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/quest_demo.webm rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/quest_demo.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/quest_manifest.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/quest_manifest.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/quest_manifest.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/quest_manifest.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/quest_sequence.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/quest_sequence.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/quest_sequence.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/quest_sequence.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/quest_static.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/quest_static.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/quest_static.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/quest_static.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/setup_demo.webm b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/setup_demo.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/setup_demo.webm rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/setup_demo.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/setup_manifest.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/setup_manifest.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/setup_manifest.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/setup_manifest.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/setup_sequence.json b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/setup_sequence.json similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/assets/index/setup_sequence.json rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/assets/index/setup_sequence.json diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/05-questing/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/05-questing/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/06-road-network/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/06-road-network/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/06-road-network/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/06-road-network/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/_category_.yml b/documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/03-creating-stories/_category_.yml rename to documentation/versioned_docs/version-0.5.1/docs/03-creating-stories/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-blacksmith-hut.svg b/documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-blacksmith-hut.svg similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-blacksmith-hut.svg rename to documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-blacksmith-hut.svg diff --git a/documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-hut.svg b/documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-hut.svg similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-hut.svg rename to documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-hut.svg diff --git a/documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-hut_2.svg b/documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-hut_2.svg similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-hut_2.svg rename to documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-hut_2.svg diff --git a/documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-hut_3.svg b/documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-hut_3.svg similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-hut_3.svg rename to documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-hut_3.svg diff --git a/documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-hut_4.svg b/documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-hut_4.svg similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/a-village-hut_4.svg rename to documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/a-village-hut_4.svg diff --git a/documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/manifest.riv b/documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/manifest.riv similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/assets/manifest.riv rename to documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/assets/manifest.riv diff --git a/documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/04-concepts/03-Manifest/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/04-concepts/03-Manifest/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/04-concepts/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/04-concepts/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/04-concepts/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/04-concepts/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/01-chapters.mdx b/documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/01-chapters.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/01-chapters.mdx rename to documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/01-chapters.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/02-commands.md b/documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/02-commands.md similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/02-commands.md rename to documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/02-commands.md diff --git a/documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/03-placeholderapi.mdx b/documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/03-placeholderapi.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/03-placeholderapi.mdx rename to documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/03-placeholderapi.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/04-shortcuts.mdx b/documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/04-shortcuts.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/04-shortcuts.mdx rename to documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/04-shortcuts.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/05-snippets.mdx b/documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/05-snippets.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/05-snippets.mdx rename to documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/05-snippets.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/_category_.yml b/documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/_category_.yml similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/05-helpfull-features/_category_.yml rename to documentation/versioned_docs/version-0.5.1/docs/05-helpfull-features/_category_.yml diff --git a/documentation/versioned_docs/version-0.5.0/docs/06-troubleshooting/adapters.mdx b/documentation/versioned_docs/version-0.5.1/docs/06-troubleshooting/adapters.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/06-troubleshooting/adapters.mdx rename to documentation/versioned_docs/version-0.5.1/docs/06-troubleshooting/adapters.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/06-troubleshooting/index.mdx b/documentation/versioned_docs/version-0.5.1/docs/06-troubleshooting/index.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/06-troubleshooting/index.mdx rename to documentation/versioned_docs/version-0.5.1/docs/06-troubleshooting/index.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/06-troubleshooting/ports.mdx b/documentation/versioned_docs/version-0.5.1/docs/06-troubleshooting/ports.mdx similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/06-troubleshooting/ports.mdx rename to documentation/versioned_docs/version-0.5.1/docs/06-troubleshooting/ports.mdx diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/chapters/chapters.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/chapters/chapters.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/chapters/chapters.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/chapters/chapters.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/chapters/sub-chapters.png b/documentation/versioned_docs/version-0.5.1/docs/assets/chapters/sub-chapters.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/chapters/sub-chapters.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/chapters/sub-chapters.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/add-cinematic-fields.png b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/add-cinematic-fields.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/add-cinematic-fields.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/add-cinematic-fields.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/add-cinematic.png b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/add-cinematic.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/add-cinematic.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/add-cinematic.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/adding-dialogue-cinematic.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/adding-dialogue-cinematic.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/adding-dialogue-cinematic.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/adding-dialogue-cinematic.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/adding-dialogue-segment.png b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/adding-dialogue-segment.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/adding-dialogue-segment.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/adding-dialogue-segment.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/cinematic-npc-result.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/cinematic-npc-result.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/cinematic-npc-result.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/cinematic-npc-result.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/content-mode.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/content-mode.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/content-mode.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/content-mode.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/final-camera-cinematic.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/final-camera-cinematic.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/final-camera-cinematic.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/final-camera-cinematic.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/first-join-fact.png b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/first-join-fact.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/first-join-fact.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/first-join-fact.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/first-join-result.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/first-join-result.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/first-join-result.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/first-join-result.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/playback.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/playback.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/playback.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/playback.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/recording.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/recording.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/recording.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/recording.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/segments.png b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/segments.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/segments.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/segments.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/select-entity-definition.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/select-entity-definition.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/cinematics/select-entity-definition.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/cinematics/select-entity-definition.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/definition_select.png b/documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/definition_select.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/definition_select.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/definition_select.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/entity-interact-event-fields.png b/documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/entity-interact-event-fields.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/entity-interact-event-fields.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/entity-interact-event-fields.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/entity_location.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/entity_location.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/entity_location.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/entity_location.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/entity_name_change.png b/documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/entity_name_change.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/entity_name_change.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/entity_name_change.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/fetch_skin.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/fetch_skin.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/fetch_skin.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/fetch_skin.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/glow_editor.png b/documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/glow_editor.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/glow_editor.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/glow_editor.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/glow_effect.png b/documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/glow_effect.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/entity-adapter/glow_effect.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/entity-adapter/glow_effect.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/facts/criteria.png b/documentation/versioned_docs/version-0.5.1/docs/assets/facts/criteria.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/facts/criteria.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/facts/criteria.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/facts/criteria_and_modifier.png b/documentation/versioned_docs/version-0.5.1/docs/assets/facts/criteria_and_modifier.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/facts/criteria_and_modifier.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/facts/criteria_and_modifier.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/facts/modifier.png b/documentation/versioned_docs/version-0.5.1/docs/assets/facts/modifier.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/facts/modifier.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/facts/modifier.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/facts/static-page.png b/documentation/versioned_docs/version-0.5.1/docs/assets/facts/static-page.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/facts/static-page.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/facts/static-page.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/installation/connect-book.png b/documentation/versioned_docs/version-0.5.1/docs/assets/installation/connect-book.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/installation/connect-book.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/installation/connect-book.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/installation/connect-command.gif b/documentation/versioned_docs/version-0.5.1/docs/assets/installation/connect-command.gif similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/installation/connect-command.gif rename to documentation/versioned_docs/version-0.5.1/docs/assets/installation/connect-command.gif diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/add-spoken-fields.png b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/add-spoken-fields.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/add-spoken-fields.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/add-spoken-fields.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/add-spoken.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/add-spoken.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/add-spoken.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/add-spoken.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/adding-options.png b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/adding-options.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/adding-options.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/adding-options.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/conditional-dialogue-sequence.png b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/conditional-dialogue-sequence.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/conditional-dialogue-sequence.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/conditional-dialogue-sequence.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/configure-option.png b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/configure-option.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/configure-option.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/configure-option.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/final-result-conditional-dialogue.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/final-result-conditional-dialogue.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/final-result-conditional-dialogue.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/final-result-conditional-dialogue.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/final-result-default.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/final-result-default.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/final-result-default.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/final-result-default.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/final-result-give-item.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/final-result-give-item.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/final-result-give-item.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/final-result-give-item.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/final-result-option.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/final-result-option.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/final-result-option.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/final-result-option.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/flower-clicked-fact.png b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/flower-clicked-fact.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/flower-clicked-fact.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/flower-clicked-fact.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/item-capturer.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/item-capturer.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/item-capturer.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/item-capturer.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/on_flower_click.png b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/on_flower_click.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/on_flower_click.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/on_flower_click.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/interactions/simple-speaker.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/interactions/simple-speaker.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/interactions/simple-speaker.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/interactions/simple-speaker.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/layout/add-page.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/layout/add-page.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/layout/add-page.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/layout/add-page.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/layout/layout-cinematic.png b/documentation/versioned_docs/version-0.5.1/docs/assets/layout/layout-cinematic.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/layout/layout-cinematic.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/layout/layout-cinematic.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/layout/layout.png b/documentation/versioned_docs/version-0.5.1/docs/assets/layout/layout.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/layout/layout.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/layout/layout.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/placeholderapi/papi-factid.png b/documentation/versioned_docs/version-0.5.1/docs/assets/placeholderapi/papi-factid.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/placeholderapi/papi-factid.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/placeholderapi/papi-factid.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/placeholderapi/papi-icon.png b/documentation/versioned_docs/version-0.5.1/docs/assets/placeholderapi/papi-icon.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/placeholderapi/papi-icon.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/placeholderapi/papi-icon.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/road-network/add-node.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/road-network/add-node.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/road-network/add-node.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/road-network/add-node.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/road-network/fast-travel.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/road-network/fast-travel.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/road-network/fast-travel.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/road-network/fast-travel.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/road-network/negative-nodes-preview.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/road-network/negative-nodes-preview.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/road-network/negative-nodes-preview.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/road-network/negative-nodes-preview.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/road-network/non-negative-nodes-example.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/road-network/non-negative-nodes-example.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/road-network/non-negative-nodes-example.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/road-network/non-negative-nodes-example.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/road-network/path.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/road-network/path.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/road-network/path.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/road-network/path.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/road-network/radius.png b/documentation/versioned_docs/version-0.5.1/docs/assets/road-network/radius.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/road-network/radius.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/road-network/radius.png diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/road-network/radius.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/road-network/radius.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/road-network/radius.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/road-network/radius.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/road-network/remove-edge.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/road-network/remove-edge.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/road-network/remove-edge.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/road-network/remove-edge.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/road-network/remove-edges.webm b/documentation/versioned_docs/version-0.5.1/docs/assets/road-network/remove-edges.webm similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/road-network/remove-edges.webm rename to documentation/versioned_docs/version-0.5.1/docs/assets/road-network/remove-edges.webm diff --git a/documentation/versioned_docs/version-0.5.0/docs/assets/troubleshooting/no-entries.png b/documentation/versioned_docs/version-0.5.1/docs/assets/troubleshooting/no-entries.png similarity index 100% rename from documentation/versioned_docs/version-0.5.0/docs/assets/troubleshooting/no-entries.png rename to documentation/versioned_docs/version-0.5.1/docs/assets/troubleshooting/no-entries.png diff --git a/documentation/versioned_sidebars/version-0.5.0-sidebars.json b/documentation/versioned_sidebars/version-0.5.1-sidebars.json similarity index 100% rename from documentation/versioned_sidebars/version-0.5.0-sidebars.json rename to documentation/versioned_sidebars/version-0.5.1-sidebars.json diff --git a/documentation/versions.json b/documentation/versions.json index fc13414fa4..12b3685375 100644 --- a/documentation/versions.json +++ b/documentation/versions.json @@ -1,4 +1,4 @@ [ - "0.5.0", + "0.5.1", "0.4.2" ] From 2ba5f0b87e49c4d2c034f9aed75bd261a665db44 Mon Sep 17 00:00:00 2001 From: Marten Mrfc <101009922+Marten-Mrfc@users.noreply.github.com> Date: Sun, 15 Sep 2024 14:21:32 +0200 Subject: [PATCH 41/41] [Docs] Fix playbar not showing --- documentation/src/components/Player/index.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/documentation/src/components/Player/index.tsx b/documentation/src/components/Player/index.tsx index fd1af54b1b..2a3d48cc7c 100644 --- a/documentation/src/components/Player/index.tsx +++ b/documentation/src/components/Player/index.tsx @@ -2,7 +2,6 @@ import React, { useState, useRef, useEffect } from "react"; import ReactPlayer from "react-player"; import { Icon } from "@iconify/react"; import screenfull from "screenfull"; -import debounce from "lodash.debounce"; interface PlayerProps { url: string; @@ -19,11 +18,11 @@ export default function Player({ url }: PlayerProps) { setPlaying((prev) => !prev); }; - const handleSeek = debounce((e: React.ChangeEvent) => { + const handleSeek = (e: React.ChangeEvent) => { const newProgress = parseFloat(e.target.value); setProgress(newProgress); playerRef.current?.seekTo(newProgress / 100, "fraction"); - }, 200); + }; const handleFullscreenToggle = () => { if (screenfull.isEnabled) { @@ -55,6 +54,7 @@ export default function Player({ url }: PlayerProps) { loop muted playsInline={true} + playsinline={true} controls={false} width="100%" height="100%" @@ -125,7 +125,7 @@ function Bar({ progress, onSeek }: BarProps) { }} />