diff --git a/.github/workflows/build-development-jars-and-publish.yml b/.github/workflows/build-development-jars-and-publish.yml index bdd761edd8..eb7f9f621a 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 @@ -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 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/app/lib/app_router.dart b/app/lib/app_router.dart index c7e296d388..6015098e09 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 1fc944c205..1c07ed5699 100644 --- a/app/lib/app_router.gr.dart +++ b/app/lib/app_router.gr.dart @@ -9,84 +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.getInt( - 'port', - 9092, - ), - 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 { @@ -98,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 @@ -106,7 +33,7 @@ class BookRoute extends PageRouteInfo { class ConnectRoute extends PageRouteInfo { ConnectRoute({ String hostname = "", - int port = 9092, + int? port, String token = "", Key? key, List? children, @@ -128,21 +55,43 @@ 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 { 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; @@ -165,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 @@ -179,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 @@ -193,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 @@ -215,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 { @@ -246,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/models/communicator.dart b/app/lib/models/communicator.dart index 786c501213..755c46cd7d 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("初始化套接字"); 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/pages/book_page.dart b/app/lib/pages/book_page.dart index a10dc2ac67..3e7cca773e 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/connect_page.dart b/app/lib/pages/connect_page.dart index 4ebb12422a..0d1e0ad595 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.dart b/app/lib/pages/page_editor.dart index a368ce4ebc..6772e27c9f 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/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/pages/pages_list.dart b/app/lib/pages/pages_list.dart index 2872ffc385..6edd6a7801 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), ), ), @@ -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 @@ -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; } @@ -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 "名称不能为空"; } - if (pagesNames.contains(text)) { - return "页面已存在"; - } 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: "页面名称", 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 "名称不能为空"; @@ -874,29 +869,22 @@ class RenamePageDialogue extends HookConsumerWidget { if (text == oldName) { return "名称不能相同"; } - - if (pagesNames.contains(text)) { - return "页面已存在"; - } - 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("重命名${oldName.formatted}"), content: ValidatedTextField( - value: oldName, - controller: controller, + value: name.value, 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("重命名"), 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/utils/cron.dart b/app/lib/utils/cron.dart index e50e8dccf8..734ba1255f 100644 --- a/app/lib/utils/cron.dart +++ b/app/lib/utils/cron.dart @@ -50,7 +50,7 @@ class CronExpression { text += dayOfWeek.toHumanReadableString(); } - return text.capitalize; + return text.titleCase(); } static CronExpression? parse(String expression) { 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 bb5be25484..99075cfea7 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; @@ -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 { "总时长: $secondsWithDecimal 秒 ($totalTime 帧)", 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/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/entry_node.dart b/app/lib/widgets/components/app/entry_node.dart index 8c4cdf756d..410a13e4bb 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, + ), ), - ), - ], + ], + ), ), ], ), @@ -670,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), @@ -724,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/entry_search.dart b/app/lib/widgets/components/app/entry_search.dart index 5f298226bb..7178032071 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/app/lib/widgets/components/app/manifest_view.dart b/app/lib/widgets/components/app/manifest_view.dart index 152eb426b1..9cd8d2e645 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(); } 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/components/app/search_bar.dart b/app/lib/widgets/components/app/search_bar.dart index 7ed9fe338c..c2ce1a1a84 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 6492fc655a..3e9657e0e3 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 d73cb41a32..cf4bdf8be9 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/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/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/components/general/validated_text_field.dart b/app/lib/widgets/components/general/validated_text_field.dart index 887e5b39c6..97b005dc68 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/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.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/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/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/entry_selector.dart b/app/lib/widgets/inspector/editors/entry_selector.dart index a66a90ea96..5e49d0125a 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/float_range.dart b/app/lib/widgets/inspector/editors/float_range.dart deleted file mode 100644 index 9b153818a3..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: "最大值包含在范围内。", - icon: TWIcons.inclusive, - color: Color(0xFF0ccf92), - url: "", - ), - ], - child: Row( - children: [ - CordPropertyEditor( - path: "$path.start", - label: "最小值", - color: Colors.red, - ), - const Iconify(TWIcons.range), - CordPropertyEditor( - path: "$path.end", - label: "最大值", - color: Colors.green, - ), - ], - ), - ); - } -} diff --git a/app/lib/widgets/inspector/editors/item.dart b/app/lib/widgets/inspector/editors/item.dart index cb55c4acd9..39bc8320d2 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, + ); } } @@ -145,17 +144,17 @@ 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.capitalize, style: TextStyle(color: foregroundColor)), + label: Text(id.titleCase(), style: TextStyle(color: foregroundColor)), avatar: Iconify( dataBlueprint.get("icon"), 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 61889f9fa8..743d267150 100644 --- a/app/lib/widgets/inspector/editors/list.dart +++ b/app/lib/widgets/inspector/editors/list.dart @@ -3,9 +3,11 @@ 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/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 +98,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, + ), + ], ), ), ); diff --git a/app/lib/widgets/inspector/editors/skin.dart b/app/lib/widgets/inspector/editors/skin.dart index df1986bf55..c2dd92bd33 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 diff --git a/app/lib/widgets/inspector/editors/sound_id.dart b/app/lib/widgets/inspector/editors/sound_id.dart index ffc599d2ab..f9f638b20a 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)), 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 2cb0b3577c..0e8f116131 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 dacbec3b54..d21e72a9ff 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: @@ -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: @@ -641,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: @@ -945,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: @@ -1230,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/app/pubspec.yaml b/app/pubspec.yaml index b8d207babd..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 @@ -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: 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/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(()) } 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/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 0000000000..436dae3a25 Binary files /dev/null and b/documentation/docs/docs/assets/troubleshooting/create-tunnel.png differ diff --git a/documentation/docs/docs/assets/troubleshooting/ip.png b/documentation/docs/docs/assets/troubleshooting/ip.png new file mode 100644 index 0000000000..8ef9343340 Binary files /dev/null and b/documentation/docs/docs/assets/troubleshooting/ip.png differ diff --git a/documentation/docs/docs/assets/troubleshooting/tunnels.png b/documentation/docs/docs/assets/troubleshooting/tunnels.png new file mode 100644 index 0000000000..b67ca6f994 Binary files /dev/null and b/documentation/docs/docs/assets/troubleshooting/tunnels.png differ 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 2a3bdaae3d..23f7ead0f8 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": { @@ -5662,9 +5676,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==", + "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", @@ -5675,7 +5689,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" @@ -5953,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", @@ -7471,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" @@ -7920,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": { @@ -7963,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" @@ -8317,37 +8331,37 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "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", - "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", + "finalhandler": "1.3.1", "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", + "qs": "6.13.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.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -8386,9 +8400,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==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "license": "MIT" }, "node_modules/express/node_modules/range-parser": { @@ -8605,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", @@ -8679,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", @@ -9454,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": { @@ -10602,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", @@ -11091,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", @@ -11252,10 +11266,13 @@ "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -13696,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": { @@ -14308,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" @@ -14463,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", @@ -14483,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" @@ -15346,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": { @@ -15378,12 +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" @@ -15902,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" @@ -16656,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 }, @@ -16722,9 +16739,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "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", @@ -16760,11 +16777,14 @@ "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==", - "license": "MIT" + "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", @@ -16885,15 +16905,15 @@ } }, "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==", + "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" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -17230,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" @@ -17331,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": { @@ -17395,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" @@ -17681,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": { @@ -17778,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", @@ -17914,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": { @@ -18120,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", @@ -18139,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" @@ -18170,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" @@ -19156,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/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) { }} />
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/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 98% 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 index a5bd9ad8f7..7a451a8ee1 100644 --- a/documentation/versioned_docs/version-0.5.0/docs/01-home.md +++ b/documentation/versioned_docs/version-0.5.1/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.1/docs/02-getting-started/01-installation.mdx similarity index 99% 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 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.1/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. 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" ] 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() 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) + } +} 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/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/StagingManager.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/StagingManager.kt index ae8d56f956..b731ab511f 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,9 +284,12 @@ 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"] + file.createNewFile() file.writeText(page.toString()) } 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 b044452e96..5ea07beb21 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/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/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 f8c1891c66..6d0a2443c6 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 9d7851f38a..a8fce148da 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/entry/roadnetwork/gps/PointToPointGPS.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/entry/roadnetwork/gps/PointToPointGPS.kt index ee8a99be85..e2fd5e5d77 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/ChatHistoryHandler.kt b/engine/engine-paper/src/main/kotlin/com/typewritermc/engine/paper/interaction/ChatHistoryHandler.kt index 06404afb82..12abd8e9d2 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() } } 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 0d89bf6bd8..342ef245e1 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. @@ -148,7 +149,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 } 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/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/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 494c7afe59..7d8cfb0851 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, 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 6b9df6dac8..322b2291c2 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 = "Web面板的端口。 确保此端口已打开。" ) - 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 = "是否启用 Web 面板和 Web 套接字。" ) - private val port: Int by config( + private val webSocketPort: Int by config( "websocket.port", 9092, comment = "Websocket 服务器的端口。 确保此端口已打开。" @@ -52,7 +54,11 @@ class CommunicationHandler : KoinComponent { |使用的身份验证。 如果你不知道自己在做什么,请保持不变。 |可能的值:none(不推荐)、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 e2f34f9dc1..1465db1202 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 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 9456afe533..be2595d4ba 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/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/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 66fef164d2..367ed66ee3 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("要播放的声音。") val soundId: SoundId = SoundId.EMPTY, @Help("播放声音的位置的来源。 (默认为玩家所在位置)") val soundSource: SoundSource = SelfSoundSource, - @Help("播放声音的曲目。 (对应于 Minecraft 声音类别)") + @Help("对应于 Minecraft 声音类别") val track: AdventureSound.Source = AdventureSound.Source.MASTER, - @Help("声音的音量。 值 1.0 是正常音量。") + @Help("值为 1.0 时为正常音量。") + @Default("1.0") val volume: Float = 1.0f, - @Help("声音的音高。 值 1.0 是正常音高。") + @Help("值为 1.0 时为正常音高。") + @Default("1.0") val pitch: Float = 1.0f, ) { - companion object { val EMPTY = Sound() } @@ -45,8 +54,12 @@ data class Sound( logger.warning("找不到 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/action/MessageActionEntry.kt b/extensions/BasicExtension/src/main/kotlin/com/typewritermc/basic/entries/action/MessageActionEntry.kt index 35de42ee21..52d5d7339f 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 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 2e1546e6e2..78989948aa 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 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/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 6d06723c72..63a80d41b4 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/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 02dd3fee14..fb867cbcaa 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", "玩家自身", 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/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 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 09b9e77540..9023de209b 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("当玩家在同一个对话中被认为是空闲时") /** * The duration a player can be idle in the same dialogue before the activity deactivates. 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 2747894c13..80bb29d09a 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("每次观察之间的持续时间") 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/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..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 @@ -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 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 afae5245c3..4623ab7a2b 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", "实体是否发光", 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/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 b037d599dc..f1024ef95e 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", "展示实体的缩放。", Colors.RED, "mdi:resize") -@Tags("scale_data") - -class ScaleData( +@Entry("scale3d_data", "展示实体的缩放。", 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("无法将 ScaleData 应用于 ${entity.entityType} 实体。") 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 bd9d7cd6d6..ba9db5f49c 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 new file mode 100644 index 0000000000..0f78707f3c --- /dev/null +++ b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/data/minecraft/living/ScaleData.kt @@ -0,0 +1,35 @@ +package com.typewritermc.entity.entries.data.minecraft.living + +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.LivingEntityData +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, +) : LivingEntityData { + 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: 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 48fdbd1b6d..be5b35edde 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 { 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/custom/EntityTypeProperty.kt b/extensions/EntityExtension/src/main/kotlin/com/typewritermc/entity/entries/entity/custom/EntityTypeProperty.kt index 94cafb54d7..385c752d82 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("无法找到 $this 的眼睛高度,请在TypeWriter Discord上报告这个问题!") } 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 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 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 2dab392bd9..661004c0db 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", "示例声源条目。", 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 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/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) : 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