diff --git a/.gitignore b/.gitignore index 90f9f23..6a1dbe8 100644 --- a/.gitignore +++ b/.gitignore @@ -92,3 +92,4 @@ sw.* .vercel .turbo .output +.data diff --git a/apps/web/app/assets/css/nuxt-content.css b/apps/web/app/assets/css/nuxt-content.css index 1629b66..ecf2e1e 100644 --- a/apps/web/app/assets/css/nuxt-content.css +++ b/apps/web/app/assets/css/nuxt-content.css @@ -52,7 +52,7 @@ } } - pre { + .shiki { @apply p-4 mt-5 mb-6 bg-neutral-200 dark:bg-neutral-800 border border-neutral-300 dark:border-neutral-700 rounded-lg overflow-hidden hover:overflow-auto; } diff --git a/apps/web/app/components/ContentLinks.vue b/apps/web/app/components/ContentLinks.vue index a2283b0..9a7de2b 100644 --- a/apps/web/app/components/ContentLinks.vue +++ b/apps/web/app/components/ContentLinks.vue @@ -54,6 +54,6 @@ const { mod } = useDocsMetadata(); const editURL = computed( () => - `https://github.com/blakesmods/web/edit/main/apps/web/content${props.page._path}.${props.page._extension}` + `https://github.com/blakesmods/web/edit/main/apps/web/content${props.page.path}.${props.page.extension}` ); diff --git a/apps/web/app/components/content/ProseCode.vue b/apps/web/app/components/content/ProseCode.vue deleted file mode 100644 index 2bf3b98..0000000 --- a/apps/web/app/components/content/ProseCode.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - {{ filename }} - - - - - - - diff --git a/apps/web/app/components/docs/Pagination.vue b/apps/web/app/components/docs/Pagination.vue index ce69965..c314fb6 100644 --- a/apps/web/app/components/docs/Pagination.vue +++ b/apps/web/app/components/docs/Pagination.vue @@ -5,7 +5,7 @@ > queryContent(parts[0], parts[1]).findSurround(props.current._path) + "docs/" + props.current.path + "/pagination", + () => queryCollectionItemSurroundings("docs", props.current.path) ); const previous = computed(() => data.value[0]); @@ -57,22 +55,19 @@ const next = computed(() => data.value[1]); // the latest version doesn't have the version in the url if (isLatestVersion.value) { if (previous.value) { - previous.value._path = removeDocsVersionFromPath( - previous.value._path, + previous.value.path = removeDocsVersionFromPath( + previous.value.path, version.value ); } if (next.value) { - next.value._path = removeDocsVersionFromPath( - next.value._path, - version.value - ); + next.value.path = removeDocsVersionFromPath(next.value.path, version.value); } } function formatModName(document) { - const modID = document._path.split("/")[isLatestVersion.value ? 2 : 3]; + const modID = document.path.split("/")[isLatestVersion.value ? 2 : 3]; const mod = getMod(modID); return mod ? mod.name : modID; } diff --git a/apps/web/app/components/docs/SidebarContent.vue b/apps/web/app/components/docs/SidebarContent.vue index 83f4270..9e575c5 100644 --- a/apps/web/app/components/docs/SidebarContent.vue +++ b/apps/web/app/components/docs/SidebarContent.vue @@ -39,10 +39,10 @@ v-for="document in documents[category]" class="relative pl-2 py-0.5 text-sm first:mt-2 hover:text-dimmed border-l border-neutral-300 dark:border-neutral-700" :class="{ - '!text-primary-500 dark:!text-primary-400 font-semibold': - document._path === route.path + 'text-primary-500! dark:text-primary-400! font-semibold': + document.path === route.path }" - :to="document._path" + :to="document.path" > {{ document.title }} diff --git a/apps/web/app/components/global/DocsSectionList.vue b/apps/web/app/components/global/DocsSectionList.vue index cefeb4b..856dd3b 100644 --- a/apps/web/app/components/global/DocsSectionList.vue +++ b/apps/web/app/components/global/DocsSectionList.vue @@ -4,7 +4,7 @@ {{ page.title }} @@ -17,15 +17,16 @@ const { version, mod, isLatestVersion } = useDocsMetadata(); const { data } = await useAsyncData( `${mod.value?.mod_id}-${version.value}-docs-listing`, () => - queryContent("docs", version.value, mod.value?.mod_id ?? "") - .only(["title", "_path"]) - .find() + queryCollection("docs") + .where("path", "LIKE", createDocsPathSQL(version.value, mod.value.mod_id)) + .select("title", "path") + .all() ); const pages = computed(() => data.value.slice(1).map(doc => { - if (isLatestVersion.value && doc._path) { - doc._path = removeDocsVersionFromPath(doc._path, version.value); + if (isLatestVersion.value && doc.path) { + doc.path = removeDocsVersionFromPath(doc.path, version.value); } return doc; diff --git a/apps/web/app/components/wiki/ArticleLink.vue b/apps/web/app/components/wiki/ArticleLink.vue index 5cb8f7f..035663e 100644 --- a/apps/web/app/components/wiki/ArticleLink.vue +++ b/apps/web/app/components/wiki/ArticleLink.vue @@ -1,7 +1,7 @@ @@ -61,7 +61,7 @@ You are viewing the wiki for an older version. View Latest ({{ getWikiLatestVersion() }}) diff --git a/apps/web/app/components/wiki/ListingSidebarContent.vue b/apps/web/app/components/wiki/ListingSidebarContent.vue index 434d8e9..d368c8d 100644 --- a/apps/web/app/components/wiki/ListingSidebarContent.vue +++ b/apps/web/app/components/wiki/ListingSidebarContent.vue @@ -11,7 +11,7 @@ class="w-full" trailing-icon="i-heroicons-chevron-down-20-solid" > - + {{ mod.name }} @@ -41,7 +41,7 @@ class="flex items-center gap-1 truncate" > - - {{ article._dir }} + - {{ article.category }} diff --git a/apps/web/app/components/wiki/Mods.vue b/apps/web/app/components/wiki/Mods.vue index 8e8253c..cc28804 100644 --- a/apps/web/app/components/wiki/Mods.vue +++ b/apps/web/app/components/wiki/Mods.vue @@ -10,7 +10,7 @@ alt="" /> - + {{ mod.title }} @@ -31,13 +31,17 @@ const { version, isLatestVersion } = useWikiMetadata(); const { data } = await useAsyncData( `wiki-mod-directory/${version.value}`, - () => queryContent("wiki", version.value).only(["_path"]).find(), + () => + queryCollection("wiki") + .where("path", "LIKE", createWikiPathSQL(version.value)) + .select("path") + .all(), { watch: [version] } ); const articles = computed(() => data.value.reduce((acc, val) => { - const parts = val._path.split("/"); + const parts = val.path.split("/"); if (!acc[parts[3]]) { acc[parts[3]] = 0; diff --git a/apps/web/app/components/wiki/Pagination.vue b/apps/web/app/components/wiki/Pagination.vue index 01eab36..1761e04 100644 --- a/apps/web/app/components/wiki/Pagination.vue +++ b/apps/web/app/components/wiki/Pagination.vue @@ -5,7 +5,7 @@ > - queryContent("wiki", version.value, mod.value.mod_id, category.value) - .sort({ sort: 1, $numeric: true }) - .findSurround(props.current._path) + queryCollectionItemSurroundings("wiki", props.current.path) + .where( + "path", + "LIKE", + createWikiPathSQL(version.value, mod.value.mod_id, category.value) + ) + .order("sort", "ASC") ); const previous = computed(() => data.value[0]); @@ -58,22 +62,19 @@ const next = computed(() => data.value[1]); // the latest version doesn't have the version in the url if (isLatestVersion.value) { if (previous.value) { - previous.value._path = removeWikiVersionFromPath( - previous.value._path, + previous.value.path = removeWikiVersionFromPath( + previous.value.path, version.value ); } if (next.value) { - next.value._path = removeWikiVersionFromPath( - next.value._path, - version.value - ); + next.value.path = removeWikiVersionFromPath(next.value.path, version.value); } } function formatModName(document) { - const modID = document._path.split("/")[isLatestVersion.value ? 2 : 3]; + const modID = document.path.split("/")[isLatestVersion.value ? 2 : 3]; const mod = getMod(modID); return mod ? mod.name : modID; } diff --git a/apps/web/app/components/wiki/SidebarContent.vue b/apps/web/app/components/wiki/SidebarContent.vue index ed93206..5ab05e0 100644 --- a/apps/web/app/components/wiki/SidebarContent.vue +++ b/apps/web/app/components/wiki/SidebarContent.vue @@ -11,7 +11,7 @@ class="w-full" trailing-icon="i-heroicons-chevron-down-20-solid" > - + {{ mod.name }} @@ -56,8 +56,8 @@ v-for="article in articles[category]" :article="article" :class="{ - '!text-primary-500 dark:!text-primary-400 font-semibold': - article._path === route.path, + 'text-primary-500! dark:text-primary-400! font-semibold': + article.path === route.path, 'first:mt-2': true }" /> diff --git a/apps/web/app/composables/api.ts b/apps/web/app/composables/api.ts index 4e0158a..be756bd 100644 --- a/apps/web/app/composables/api.ts +++ b/apps/web/app/composables/api.ts @@ -15,7 +15,7 @@ export const useAPI = async ( const toast = useToast(); toast.add({ - color: "red", + color: "error", title: "An unknown error occurred.", description: "Please try again later." }); diff --git a/apps/web/app/composables/docs.ts b/apps/web/app/composables/docs.ts index 4866af0..1da23df 100644 --- a/apps/web/app/composables/docs.ts +++ b/apps/web/app/composables/docs.ts @@ -16,13 +16,11 @@ export const useDocsMetadata = () => { export const useDoc = async () => { const route = useRoute(); const { version, mod, slug } = useDocsMetadata(); - const { data: page } = await useAsyncData("doc/" + route.path, () => - queryContent( - "docs", - version.value, - mod.value?.mod_id ?? "", - slug.value - ).findOne() + + const { data: page } = await useAsyncData(route.path, () => + queryCollection("docs") + .path(createDocsPath(version.value, mod.value?.mod_id, slug.value)) + .first() ); return page; @@ -35,14 +33,12 @@ export const useDocsLatestArticleURL = async () => { const { data } = await useAsyncData( () => `docs-latest-article-url-${route.path}`, () => - queryContent( - "docs", - getDocsLatestVersion(), - mod.value?.mod_id ?? "", - slug.value - ) + queryCollection("docs") + .path( + createDocsPath(getDocsLatestVersion(), mod.value?.mod_id, slug.value) + ) .limit(1) - .count(), + .first(), { watch: [version, mod, slug] } ); @@ -51,7 +47,7 @@ export const useDocsLatestArticleURL = async () => { return "/docs"; } - if (data.value !== 1 || !slug.value) { + if (!data.value || !slug.value) { return `/docs/${mod.value.mod_id}`; } @@ -66,9 +62,10 @@ export const useDocsSidebarLinks = async () => { const { data } = await useAsyncData( () => `docs-sidebar-${version.value}`, () => - queryContent("docs", version.value) - .only(["title", "category", "hidden", "_path"]) - .find(), + queryCollection("docs") + .where("path", "LIKE", createDocsPathSQL(version.value)) + .select("title", "category", "hidden", "path") + .all(), { watch: [version] } ); @@ -85,8 +82,8 @@ export const useDocsSidebarLinks = async () => { } // the latest version doesn't have the version in the url - if (doc._path && version.value === versions.value[0]![0]!.label) { - doc._path = removeDocsVersionFromPath(doc._path, version.value); + if (doc.path && version.value === versions.value[0]![0]!.label) { + doc.path = removeDocsVersionFromPath(doc.path, version.value); } documents[doc.category]!.push(doc); @@ -107,9 +104,8 @@ export const useDocsVersions = () => { onSelect: async () => { const { mod, slug } = useDocsMetadata(); - const doc = await queryContent( - `/docs/${v}/${mod.value?.mod_id}/${slug.value}` - ) + const doc = await queryCollection("docs") + .path(`/docs/${v}/${mod.value?.mod_id}/${slug.value}`) .limit(1) .count(); @@ -122,7 +118,8 @@ export const useDocsVersions = () => { await router.push(link); } else { - const doc = await queryContent(`/docs/${v}/${mod.value?.mod_id}`) + const doc = await queryCollection("docs") + .path(`/docs/${v}/${mod.value?.mod_id}`) .limit(1) .count(); @@ -151,7 +148,8 @@ export const useDocsVersions = () => { export const useDocsSearch = async () => { const { version, isLatestVersion } = useDocsMetadata(); const query = computed(() => ({ - search: `docs/${version.value}` + collection: "docs", + version: version.value })); const { data } = await useFetch("/api/search", { diff --git a/apps/web/app/composables/wiki.ts b/apps/web/app/composables/wiki.ts index 47106bc..4ac6b7d 100644 --- a/apps/web/app/composables/wiki.ts +++ b/apps/web/app/composables/wiki.ts @@ -18,16 +18,17 @@ export const useWiki = async () => { const route = useRoute(); const { version, mod, category, slug } = useWikiMetadata(); - const { data: page } = await useAsyncData( - () => `wiki-${route.path}`, - () => - queryContent( - "wiki", - version.value, - mod.value?.mod_id ?? "", - category.value, - slug.value - ).findOne() + const { data: page } = await useAsyncData(route.path, () => + queryCollection("wiki") + .path( + createWikiPath( + version.value, + mod.value?.mod_id, + category.value, + slug.value + ) + ) + .first() ); return page; @@ -40,9 +41,14 @@ export const useWikiModArticles = async () => { const { data: pages } = await useAsyncData( () => `wiki-mod-articles-${route.path}`, () => - queryContent("wiki", version.value, mod.value?.mod_id ?? "") - .sort({ sort: 1, $numeric: true }) - .find(), + queryCollection("wiki") + .where( + "path", + "LIKE", + `${createWikiPath(version.value, mod.value?.mod_id)}%` + ) + .order("sort", "ASC") + .all(), { watch: [version, mod] } ); @@ -55,11 +61,16 @@ export const useWikiModLatestArticles = async () => { const { data } = await useAsyncData( () => `wiki-mod-latest-articles-${route.path}`, () => - queryContent("wiki", version.value, mod.value?.mod_id ?? "") - .where({ version: { $exists: true } }) - .sort({ version: -1, $numeric: true }) + queryCollection("wiki") + .where( + "path", + "LIKE", + `${createWikiPath(version.value, mod.value?.mod_id)}/%` + ) + .where("version", "IS NOT NULL") + .order("version", "DESC") .limit(8) - .find(), + .all(), { watch: [version, mod] } ); @@ -69,8 +80,8 @@ export const useWikiModLatestArticles = async () => { } for (const article of data.value) { - if (article._path && isLatestVersion.value) { - article._path = removeWikiVersionFromPath(article._path, version.value); + if (article.path && isLatestVersion.value) { + article.path = removeWikiVersionFromPath(article.path, version.value); } } @@ -85,15 +96,17 @@ export const useWikiLatestArticleURL = async () => { const { data } = await useAsyncData( () => `wiki-latest-article-url-${route.path}`, () => - queryContent( - "wiki", - getWikiLatestVersion(), - mod.value?.mod_id ?? "", - category.value, - slug.value - ) - .limit(1) - .count(), + queryCollection("wiki") + .path( + createWikiPath( + getWikiLatestVersion(), + mod.value?.mod_id, + category.value, + slug.value + ) + ) + .select("path") + .first(), { watch: [version, mod, category, slug] } ); @@ -102,7 +115,7 @@ export const useWikiLatestArticleURL = async () => { return "/wiki"; } - if (data.value !== 1 || !category.value || !slug.value) { + if (!data.value || !category.value || !slug.value) { return `/wiki/${mod.value.mod_id}`; } @@ -117,10 +130,14 @@ export const useWikiSidebarLinks = async () => { const { data } = await useAsyncData( () => `wiki-sidebar-${version.value}-${mod.value?.mod_id ?? ""}`, () => - queryContent("wiki", version.value, mod.value?.mod_id ?? "") - .only(["title", "category", "icon", "_path", "_dir"]) - .sort({ sort: 1, $numeric: true }) - .find(), + queryCollection("wiki") + .where( + "path", + "LIKE", + createWikiPathSQL(version.value, mod.value?.mod_id) + ) + .order("sort", "ASC") + .all(), { watch: [version, mod] } ); @@ -134,20 +151,23 @@ export const useWikiSidebarLinks = async () => { } for (const doc of data.value) { - if (!doc._path) { + if (!doc.path) { continue; } - if (!articles[doc._dir]) { - articles[doc._dir] = []; + const parts = doc.path.split("/").slice(1); + const dir = parts.at(-2)!; + + if (!articles[dir]) { + articles[dir] = []; } // the latest version doesn't have the version in the url - if (doc._path && version.value === versions.value[0]![0]!.label) { - doc._path = removeWikiVersionFromPath(doc._path, version.value); + if (doc.path && version.value === versions.value[0]![0]!.label) { + doc.path = removeWikiVersionFromPath(doc.path, version.value); } - articles[doc._dir]!.push(doc); + articles[dir]!.push(doc); } for (const [category, documents] of Object.entries(articles)) { @@ -177,9 +197,10 @@ export const useWikiMods = () => { const { version, category, slug, isLatestVersion } = useWikiMetadata(); - const doc = await queryContent( - `/wiki/${version.value}/${m.mod_id}/${category.value}/${slug.value}` - ) + const doc = await queryCollection("wiki") + .path( + `/wiki/${version.value}/${m.mod_id}/${category.value}/${slug.value}` + ) .limit(1) .count(); @@ -191,9 +212,12 @@ export const useWikiMods = () => { await router.push(link); } else { - const doc = await queryContent( - `/wiki/${version.value}/${m.mod_id}` - ) + const doc = await queryCollection("wiki") + .where( + "path", + "LIKE", + createWikiPathSQL(version.value, m.mod_id) + ) .limit(1) .count(); @@ -231,9 +255,10 @@ export const useWikiVersions = () => { onClick: async () => { const { mod, category, slug } = useWikiMetadata(); - const doc = await queryContent( - `/wiki/${v}/${mod.value?.mod_id}/${category.value}/${slug.value}` - ) + const doc = await queryCollection("wiki") + .path( + `/wiki/${v}/${mod.value?.mod_id}/${category.value}/${slug.value}` + ) .limit(1) .count(); @@ -246,7 +271,8 @@ export const useWikiVersions = () => { await router.push(link); } else { - const doc = await queryContent(`/wiki/${v}/${mod.value?.mod_id}`) + const doc = await queryCollection("wiki") + .where("path", "LIKE", createWikiPathSQL(v, mod.value?.mod_id)) .limit(1) .count(); @@ -275,7 +301,8 @@ export const useWikiVersions = () => { export const useWikiSearch = async () => { const { version, isLatestVersion } = useWikiMetadata(); const query = computed(() => ({ - search: `wiki/${version.value}` + collection: "wiki", + version: version.value })); const { data } = await useFetch("/api/search", { diff --git a/apps/web/app/pages/docs/[[version]]/[[mod]]/[...slug].vue b/apps/web/app/pages/docs/[[version]]/[[mod]]/[...slug].vue index 96bdf90..1fc0716 100644 --- a/apps/web/app/pages/docs/[[version]]/[[mod]]/[...slug].vue +++ b/apps/web/app/pages/docs/[[version]]/[[mod]]/[...slug].vue @@ -7,7 +7,7 @@ - - - + Last Updated: {{ lastUpdated }} @@ -80,7 +78,11 @@ const toggleSidebar = useEventBus("docs:toggleSidebar"); const page = await useDoc(); if (!page.value) { - throw createError({ statusCode: 404, statusMessage: "Page Not Found" }); + throw createError({ + statusCode: 404, + statusMessage: "Page Not Found", + fatal: true + }); } const title = page.value.category @@ -91,12 +93,14 @@ const description = page.value.description; useSeoMeta({ title, ogTitle: title, + twitterTitle: title, description, - ogDescription: description + ogDescription: description, + twitterDescription: description }); const toc = ref(false); -const pathParts = page.value._path.split("/"); +const pathParts = page.value.path.split("/"); const { version, isLatestVersion } = useDocsMetadata(); diff --git a/apps/web/app/pages/wiki/[[version]]/[mod]/[category]/[slug].vue b/apps/web/app/pages/wiki/[[version]]/[mod]/[category]/[slug].vue index 416c3d1..a1d4f0f 100644 --- a/apps/web/app/pages/wiki/[[version]]/[mod]/[category]/[slug].vue +++ b/apps/web/app/pages/wiki/[[version]]/[mod]/[category]/[slug].vue @@ -7,7 +7,7 @@ - - - + This page is currently empty. Check back soon! ๐ @@ -106,7 +104,11 @@ const { version, mod, isLatestVersion } = useWikiMetadata(); const page = await useWiki(); if (!page.value) { - throw createError({ statusCode: 404, statusMessage: "Page Not Found" }); + throw createError({ + statusCode: 404, + statusMessage: "Page Not Found", + fatal: true + }); } const title = `${page.value.title} ยท ${mod.value.name} Wiki`; @@ -115,15 +117,14 @@ const description = parseDescription(page.value); useSeoMeta({ title, ogTitle: title, + twitterTitle: title, description, ogDescription: description, - robots: { - noindex: page.value._empty - } + twitterDescription: description }); const toc = ref(false); -const pathParts = page.value._path.split("/"); +const pathParts = page.value.path.split("/"); const breadcrumbs = computed(() => [ @@ -167,16 +168,15 @@ function parseDescription(page) { return page.description; } - const index = page.body.children.findIndex( - c => c.tag === "h2" && c.children[0]?.value === "Overview" + const index = page.body.value.findIndex( + c => c[0] === "h2" && c[2] === "Overview" ); - if (index > -1 && index + 1 < page.body.children.length) { + if (index > -1 && index + 1 < page.body.value.length) { // the special case for the second nested children is for links - return page.body.children[index + 1].children?.reduce( - (a, b) => a + (b.children ? b.children[0].value : b.value), - "" - ); + return page.body.value[index + 1] + .slice(2) + .reduce((a, b) => a + (Array.isArray(b) ? b.slice(2).join(" ") : b), ""); } } diff --git a/apps/web/app/pages/wiki/[[version]]/[mod]/index.vue b/apps/web/app/pages/wiki/[[version]]/[mod]/index.vue index bb06fe5..af156d3 100644 --- a/apps/web/app/pages/wiki/[[version]]/[mod]/index.vue +++ b/apps/web/app/pages/wiki/[[version]]/[mod]/index.vue @@ -2,7 +2,7 @@ @@ -54,7 +54,11 @@ const toggleSidebar = useEventBus("wiki:toggleSidebar"); const { version, mod, isLatestVersion } = useWikiMetadata(); if (!mod) { - throw createError({ statusCode: 404, statusMessage: "Page Not Found" }); + throw createError({ + statusCode: 404, + statusMessage: "Page Not Found", + fatal: true + }); } const title = mod.value.name + " Wiki"; @@ -70,7 +74,11 @@ useSeoMeta({ const data = await useWikiModArticles(); if (data.value.length === 0) { - throw createError({ statusCode: 404, statusMessage: "Page Not Found" }); + throw createError({ + statusCode: 404, + statusMessage: "Page Not Found", + fatal: true + }); } const articles = ref( @@ -81,16 +89,16 @@ const articles = ref( ); for (const article of data.value) { - if (!articles.value[article._dir]) { - articles.value[article._dir] = []; + if (!articles.value[article.category]) { + articles.value[article.category] = []; } // the latest version doesn't have the version in the url - if (article._path && isLatestVersion.value) { - article._path = removeWikiVersionFromPath(article._path, version.value); + if (article.path && isLatestVersion.value) { + article.path = removeWikiVersionFromPath(article.path, version.value); } - articles.value[article._dir].push(article); + articles.value[article.category].push(article); } const breadcrumbs = computed(() => [ @@ -107,7 +115,9 @@ const breadcrumbs = computed(() => [ ]); const categories = computed(() => - Object.keys(articles.value).filter(c => articles.value[c].length > 0) + Object.values(getWikiCategories()).filter( + c => articles.value[c] && articles.value[c].length > 0 + ) ); function onToggleSidebar() { diff --git a/apps/web/app/pages/wiki/[[version]]/index.vue b/apps/web/app/pages/wiki/[[version]]/index.vue index 147e801..f5096db 100644 --- a/apps/web/app/pages/wiki/[[version]]/index.vue +++ b/apps/web/app/pages/wiki/[[version]]/index.vue @@ -1,7 +1,7 @@ , powerCost, , [inputs]); mods.extendedcrafting.CombinationCrafting.addRecipe(, powerCost, powerRate, , [inputs]); ``` @@ -28,13 +28,13 @@ mods.extendedcrafting.CombinationCrafting.addRecipe(, powerCost, powerRa #### Example -```java +```zenscript mods.extendedcrafting.CombinationCrafting.addRecipe( * 10, 10000, 100, , [, ]); ``` ### Removing Recipes -```java +```zenscript mods.extendedcrafting.CombinationCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.12/extendedcrafting/compression-recipes.md b/apps/web/content/docs/1.12/extendedcrafting/compression-recipes.md index c2e5d05..6f74d6d 100644 --- a/apps/web/content/docs/1.12/extendedcrafting/compression-recipes.md +++ b/apps/web/content/docs/1.12/extendedcrafting/compression-recipes.md @@ -12,7 +12,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Recipe -```java +```zenscript mods.extendedcrafting.CompressionCrafting.addRecipe(, , inputCount, , powerCost); mods.extendedcrafting.CompressionCrafting.addRecipe(, , inputCount, , powerCost, powerRate); ``` @@ -33,13 +33,13 @@ The amount of time (in ticks) a Compression recipe takes to complete is powerCos #### Example -```java +```zenscript mods.extendedcrafting.CompressionCrafting.addRecipe(, , 50000, , 2000000, 200); ``` ### Removing Recipes -```java +```zenscript mods.extendedcrafting.CompressionCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.12/extendedcrafting/ender-crafting-recipes.md b/apps/web/content/docs/1.12/extendedcrafting/ender-crafting-recipes.md index 188d404..752ad06 100644 --- a/apps/web/content/docs/1.12/extendedcrafting/ender-crafting-recipes.md +++ b/apps/web/content/docs/1.12/extendedcrafting/ender-crafting-recipes.md @@ -12,7 +12,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Shaped Recipe -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShaped(, [[<>, <>, <>], [<>, <>, <>], [<>, <>, <>]], seconds); ``` @@ -28,7 +28,7 @@ Crafting Time will decrease depending on how many Alternators are in range. See #### Example -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShaped(, [ [, , ], [, , ], @@ -38,7 +38,7 @@ mods.extendedcrafting.EnderCrafting.addShaped(, [ ### Adding A Shapeless Recipe -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShapeless(, [inputs], seconds); ``` @@ -54,7 +54,7 @@ Crafting Time will decrease depending on how many Alternators are in range. See #### Example -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShapeless(, [ , , , , , ], 30); @@ -62,7 +62,7 @@ mods.extendedcrafting.EnderCrafting.addShapeless(, [ ### Removing Recipes -```java +```zenscript mods.extendedcrafting.EnderCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.12/extendedcrafting/table-recipes.md b/apps/web/content/docs/1.12/extendedcrafting/table-recipes.md index 71bfb29..76eff90 100644 --- a/apps/web/content/docs/1.12/extendedcrafting/table-recipes.md +++ b/apps/web/content/docs/1.12/extendedcrafting/table-recipes.md @@ -12,7 +12,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Shaped Recipe -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped(, [[<>, <>, <>], [<>, <>, <>], [<>, <>, <>]]); mods.extendedcrafting.TableCrafting.addShaped(, [[<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>]]); mods.extendedcrafting.TableCrafting.addShaped(, [[<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>]]); @@ -32,7 +32,7 @@ mods.extendedcrafting.TableCrafting.addShaped(tier, , [[<>, <>, <>, <>, #### Example -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped(2, , [ [, , ], [, , ], @@ -42,7 +42,7 @@ mods.extendedcrafting.TableCrafting.addShaped(2, , [ ### Adding A Shapeless Recipe -```java +```zenscript mods.extendedcrafting.TableCrafting.addShapeless(, [, ]); mods.extendedcrafting.TableCrafting.addShapeless(tier, , [, ]); ``` @@ -55,7 +55,7 @@ mods.extendedcrafting.TableCrafting.addShapeless(tier, , [, , [ , , , ]); @@ -63,7 +63,7 @@ mods.extendedcrafting.TableCrafting.addShaped(2, , [ ### Removing Recipes -```java +```zenscript mods.extendedcrafting.TableCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.15/extendedcrafting/combination-recipes.md b/apps/web/content/docs/1.15/extendedcrafting/combination-recipes.md index a023526..41be4f4 100644 --- a/apps/web/content/docs/1.15/extendedcrafting/combination-recipes.md +++ b/apps/web/content/docs/1.15/extendedcrafting/combination-recipes.md @@ -77,7 +77,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Recipe -```java +```zenscript mods.extendedcrafting.CombinationCrafting.addRecipe(name, , powerCost, [inputs]); mods.extendedcrafting.CombinationCrafting.addRecipe(name, , powerCost, [inputs], powerRate); ``` @@ -92,13 +92,13 @@ mods.extendedcrafting.CombinationCrafting.addRecipe(name, , powerCost, [ #### Example -```java +```zenscript mods.extendedcrafting.CombinationCrafting.addRecipe("test", * 10, 10000, [, , ], 100); ``` ### Removing Recipes -```java +```zenscript mods.extendedcrafting.CombinationCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.15/extendedcrafting/compression-recipes.md b/apps/web/content/docs/1.15/extendedcrafting/compression-recipes.md index 0a2b7ec..18a037b 100644 --- a/apps/web/content/docs/1.15/extendedcrafting/compression-recipes.md +++ b/apps/web/content/docs/1.15/extendedcrafting/compression-recipes.md @@ -56,7 +56,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Recipe -```java +```zenscript mods.extendedcrafting.CompressionCrafting.addRecipe(name, , , inputCount, , powerCost); mods.extendedcrafting.CompressionCrafting.addRecipe(name, , , inputCount, , powerCost, powerRate); ``` @@ -78,13 +78,13 @@ The amount of time (in ticks) a Compression recipe takes to complete is powerCos #### Example -```java +```zenscript mods.extendedcrafting.CompressionCrafting.addRecipe("test", , , 50000, , 2000000, 200); ``` ### Removing Recipes -```java +```zenscript mods.extendedcrafting.CompressionCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.15/extendedcrafting/ender-crafting-recipes.md b/apps/web/content/docs/1.15/extendedcrafting/ender-crafting-recipes.md index 6204f5c..e36c526 100644 --- a/apps/web/content/docs/1.15/extendedcrafting/ender-crafting-recipes.md +++ b/apps/web/content/docs/1.15/extendedcrafting/ender-crafting-recipes.md @@ -87,7 +87,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Shaped Recipe -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShaped(name, , [[<>, <>, <>], [<>, <>, <>], [<>, <>, <>]], seconds); ``` @@ -104,7 +104,7 @@ Crafting Time will decrease depending on how many Alternators are in range. See #### Example -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShaped("test_shaped", , [ [, , ], [, , ], @@ -114,7 +114,7 @@ mods.extendedcrafting.EnderCrafting.addShaped("test_shaped", , [inputs], seconds); ``` @@ -131,7 +131,7 @@ Crafting Time will decrease depending on how many Alternators are in range. See #### Example -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShapeless("test_shapeless", , [ , , , , , ], 30); @@ -139,7 +139,7 @@ mods.extendedcrafting.EnderCrafting.addShapeless("test_shapeless", ); ``` diff --git a/apps/web/content/docs/1.15/extendedcrafting/table-recipes.md b/apps/web/content/docs/1.15/extendedcrafting/table-recipes.md index 726e3bd..4330f54 100644 --- a/apps/web/content/docs/1.15/extendedcrafting/table-recipes.md +++ b/apps/web/content/docs/1.15/extendedcrafting/table-recipes.md @@ -159,7 +159,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Shaped Recipe -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped(name, , [[<>, <>, <>], [<>, <>, <>], [<>, <>, <>]]); mods.extendedcrafting.TableCrafting.addShaped(name, , [[<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>]]); mods.extendedcrafting.TableCrafting.addShaped(name, , [[<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>]]); @@ -180,7 +180,7 @@ mods.extendedcrafting.TableCrafting.addShaped(name, tier, , [[<>, <>, <> #### Example -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2, , [ [, , ], [, , ], @@ -190,7 +190,7 @@ mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2, , [, ]); mods.extendedcrafting.TableCrafting.addShapeless(name, tier, , [, ]); ``` @@ -204,7 +204,7 @@ mods.extendedcrafting.TableCrafting.addShapeless(name, tier, , [, #### Example -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2, , [ , , , ]); @@ -212,7 +212,7 @@ mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2, ); ``` diff --git a/apps/web/content/docs/1.15/mysticalagriculture/infusion-recipes.md b/apps/web/content/docs/1.15/mysticalagriculture/infusion-recipes.md index 365ae12..1a575b5 100644 --- a/apps/web/content/docs/1.15/mysticalagriculture/infusion-recipes.md +++ b/apps/web/content/docs/1.15/mysticalagriculture/infusion-recipes.md @@ -61,7 +61,7 @@ Mystical Agriculture allows you easily add your own Infusion Crafting recipes us ### Adding A Recipe -```java +```zenscript mods.mysticalagriculture.InfusionCrafting.addRecipe(name, , [inputs]); ``` @@ -73,13 +73,13 @@ mods.mysticalagriculture.InfusionCrafting.addRecipe(name, , [inputs]); #### Example -```java +```zenscript mods.mysticalagriculture.InfusionCrafting.addRecipe("test", * 10, [, , ]); ``` ### Removing Recipes -```java +```zenscript mods.mysticalagriculture.InfusionCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.15/mysticalagriculture/reprocessor-recipes.md b/apps/web/content/docs/1.15/mysticalagriculture/reprocessor-recipes.md index abec29e..98af90c 100644 --- a/apps/web/content/docs/1.15/mysticalagriculture/reprocessor-recipes.md +++ b/apps/web/content/docs/1.15/mysticalagriculture/reprocessor-recipes.md @@ -43,7 +43,7 @@ Mystical Agriculture allows you easily add your own Reprocessor Crafting recipes ### Adding A recipe -```java +```zenscript mods.mysticalagriculture.ReprocessorCrafting.addRecipe(name, , ); ``` @@ -55,13 +55,13 @@ mods.mysticalagriculture.ReprocessorCrafting.addRecipe(name, , ); #### Example -```java +```zenscript mods.mysticalagriculture.ReprocessorCrafting.addRecipe("test_reprocessor", , ); ``` ### Removing Recipes -```java +```zenscript mods.mysticalagriculture.ReprocessorCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.16/extendedcrafting/combination-recipes.md b/apps/web/content/docs/1.16/extendedcrafting/combination-recipes.md index a023526..41be4f4 100644 --- a/apps/web/content/docs/1.16/extendedcrafting/combination-recipes.md +++ b/apps/web/content/docs/1.16/extendedcrafting/combination-recipes.md @@ -77,7 +77,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Recipe -```java +```zenscript mods.extendedcrafting.CombinationCrafting.addRecipe(name, , powerCost, [inputs]); mods.extendedcrafting.CombinationCrafting.addRecipe(name, , powerCost, [inputs], powerRate); ``` @@ -92,13 +92,13 @@ mods.extendedcrafting.CombinationCrafting.addRecipe(name, , powerCost, [ #### Example -```java +```zenscript mods.extendedcrafting.CombinationCrafting.addRecipe("test", * 10, 10000, [, , ], 100); ``` ### Removing Recipes -```java +```zenscript mods.extendedcrafting.CombinationCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.16/extendedcrafting/compression-recipes.md b/apps/web/content/docs/1.16/extendedcrafting/compression-recipes.md index 0a2b7ec..18a037b 100644 --- a/apps/web/content/docs/1.16/extendedcrafting/compression-recipes.md +++ b/apps/web/content/docs/1.16/extendedcrafting/compression-recipes.md @@ -56,7 +56,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Recipe -```java +```zenscript mods.extendedcrafting.CompressionCrafting.addRecipe(name, , , inputCount, , powerCost); mods.extendedcrafting.CompressionCrafting.addRecipe(name, , , inputCount, , powerCost, powerRate); ``` @@ -78,13 +78,13 @@ The amount of time (in ticks) a Compression recipe takes to complete is powerCos #### Example -```java +```zenscript mods.extendedcrafting.CompressionCrafting.addRecipe("test", , , 50000, , 2000000, 200); ``` ### Removing Recipes -```java +```zenscript mods.extendedcrafting.CompressionCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.16/extendedcrafting/ender-crafting-recipes.md b/apps/web/content/docs/1.16/extendedcrafting/ender-crafting-recipes.md index 6204f5c..e36c526 100644 --- a/apps/web/content/docs/1.16/extendedcrafting/ender-crafting-recipes.md +++ b/apps/web/content/docs/1.16/extendedcrafting/ender-crafting-recipes.md @@ -87,7 +87,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Shaped Recipe -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShaped(name, , [[<>, <>, <>], [<>, <>, <>], [<>, <>, <>]], seconds); ``` @@ -104,7 +104,7 @@ Crafting Time will decrease depending on how many Alternators are in range. See #### Example -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShaped("test_shaped", , [ [, , ], [, , ], @@ -114,7 +114,7 @@ mods.extendedcrafting.EnderCrafting.addShaped("test_shaped", , [inputs], seconds); ``` @@ -131,7 +131,7 @@ Crafting Time will decrease depending on how many Alternators are in range. See #### Example -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShapeless("test_shapeless", , [ , , , , , ], 30); @@ -139,7 +139,7 @@ mods.extendedcrafting.EnderCrafting.addShapeless("test_shapeless", ); ``` diff --git a/apps/web/content/docs/1.16/extendedcrafting/table-recipes.md b/apps/web/content/docs/1.16/extendedcrafting/table-recipes.md index 726e3bd..4330f54 100644 --- a/apps/web/content/docs/1.16/extendedcrafting/table-recipes.md +++ b/apps/web/content/docs/1.16/extendedcrafting/table-recipes.md @@ -159,7 +159,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Shaped Recipe -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped(name, , [[<>, <>, <>], [<>, <>, <>], [<>, <>, <>]]); mods.extendedcrafting.TableCrafting.addShaped(name, , [[<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>]]); mods.extendedcrafting.TableCrafting.addShaped(name, , [[<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>]]); @@ -180,7 +180,7 @@ mods.extendedcrafting.TableCrafting.addShaped(name, tier, , [[<>, <>, <> #### Example -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2, , [ [, , ], [, , ], @@ -190,7 +190,7 @@ mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2, , [, ]); mods.extendedcrafting.TableCrafting.addShapeless(name, tier, , [, ]); ``` @@ -204,7 +204,7 @@ mods.extendedcrafting.TableCrafting.addShapeless(name, tier, , [, #### Example -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2, , [ , , , ]); @@ -212,7 +212,7 @@ mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2, ); ``` diff --git a/apps/web/content/docs/1.16/mysticalagriculture/infusion-recipes.md b/apps/web/content/docs/1.16/mysticalagriculture/infusion-recipes.md index 365ae12..1a575b5 100644 --- a/apps/web/content/docs/1.16/mysticalagriculture/infusion-recipes.md +++ b/apps/web/content/docs/1.16/mysticalagriculture/infusion-recipes.md @@ -61,7 +61,7 @@ Mystical Agriculture allows you easily add your own Infusion Crafting recipes us ### Adding A Recipe -```java +```zenscript mods.mysticalagriculture.InfusionCrafting.addRecipe(name, , [inputs]); ``` @@ -73,13 +73,13 @@ mods.mysticalagriculture.InfusionCrafting.addRecipe(name, , [inputs]); #### Example -```java +```zenscript mods.mysticalagriculture.InfusionCrafting.addRecipe("test", * 10, [, , ]); ``` ### Removing Recipes -```java +```zenscript mods.mysticalagriculture.InfusionCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.16/mysticalagriculture/reprocessor-recipes.md b/apps/web/content/docs/1.16/mysticalagriculture/reprocessor-recipes.md index abec29e..98af90c 100644 --- a/apps/web/content/docs/1.16/mysticalagriculture/reprocessor-recipes.md +++ b/apps/web/content/docs/1.16/mysticalagriculture/reprocessor-recipes.md @@ -43,7 +43,7 @@ Mystical Agriculture allows you easily add your own Reprocessor Crafting recipes ### Adding A recipe -```java +```zenscript mods.mysticalagriculture.ReprocessorCrafting.addRecipe(name, , ); ``` @@ -55,13 +55,13 @@ mods.mysticalagriculture.ReprocessorCrafting.addRecipe(name, , ); #### Example -```java +```zenscript mods.mysticalagriculture.ReprocessorCrafting.addRecipe("test_reprocessor", , ); ``` ### Removing Recipes -```java +```zenscript mods.mysticalagriculture.ReprocessorCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.18/extendedcrafting/combination-recipes.md b/apps/web/content/docs/1.18/extendedcrafting/combination-recipes.md index a023526..41be4f4 100644 --- a/apps/web/content/docs/1.18/extendedcrafting/combination-recipes.md +++ b/apps/web/content/docs/1.18/extendedcrafting/combination-recipes.md @@ -77,7 +77,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Recipe -```java +```zenscript mods.extendedcrafting.CombinationCrafting.addRecipe(name, , powerCost, [inputs]); mods.extendedcrafting.CombinationCrafting.addRecipe(name, , powerCost, [inputs], powerRate); ``` @@ -92,13 +92,13 @@ mods.extendedcrafting.CombinationCrafting.addRecipe(name, , powerCost, [ #### Example -```java +```zenscript mods.extendedcrafting.CombinationCrafting.addRecipe("test", * 10, 10000, [, , ], 100); ``` ### Removing Recipes -```java +```zenscript mods.extendedcrafting.CombinationCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.18/extendedcrafting/compression-recipes.md b/apps/web/content/docs/1.18/extendedcrafting/compression-recipes.md index 0a2b7ec..18a037b 100644 --- a/apps/web/content/docs/1.18/extendedcrafting/compression-recipes.md +++ b/apps/web/content/docs/1.18/extendedcrafting/compression-recipes.md @@ -56,7 +56,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Recipe -```java +```zenscript mods.extendedcrafting.CompressionCrafting.addRecipe(name, , , inputCount, , powerCost); mods.extendedcrafting.CompressionCrafting.addRecipe(name, , , inputCount, , powerCost, powerRate); ``` @@ -78,13 +78,13 @@ The amount of time (in ticks) a Compression recipe takes to complete is powerCos #### Example -```java +```zenscript mods.extendedcrafting.CompressionCrafting.addRecipe("test", , , 50000, , 2000000, 200); ``` ### Removing Recipes -```java +```zenscript mods.extendedcrafting.CompressionCrafting.remove(); ``` diff --git a/apps/web/content/docs/1.18/extendedcrafting/ender-crafting-recipes.md b/apps/web/content/docs/1.18/extendedcrafting/ender-crafting-recipes.md index 6204f5c..e36c526 100644 --- a/apps/web/content/docs/1.18/extendedcrafting/ender-crafting-recipes.md +++ b/apps/web/content/docs/1.18/extendedcrafting/ender-crafting-recipes.md @@ -87,7 +87,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Shaped Recipe -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShaped(name, , [[<>, <>, <>], [<>, <>, <>], [<>, <>, <>]], seconds); ``` @@ -104,7 +104,7 @@ Crafting Time will decrease depending on how many Alternators are in range. See #### Example -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShaped("test_shaped", , [ [, , ], [, , ], @@ -114,7 +114,7 @@ mods.extendedcrafting.EnderCrafting.addShaped("test_shaped", , [inputs], seconds); ``` @@ -131,7 +131,7 @@ Crafting Time will decrease depending on how many Alternators are in range. See #### Example -```java +```zenscript mods.extendedcrafting.EnderCrafting.addShapeless("test_shapeless", , [ , , , , , ], 30); @@ -139,7 +139,7 @@ mods.extendedcrafting.EnderCrafting.addShapeless("test_shapeless", ); ``` diff --git a/apps/web/content/docs/1.18/extendedcrafting/table-recipes.md b/apps/web/content/docs/1.18/extendedcrafting/table-recipes.md index 726e3bd..4330f54 100644 --- a/apps/web/content/docs/1.18/extendedcrafting/table-recipes.md +++ b/apps/web/content/docs/1.18/extendedcrafting/table-recipes.md @@ -159,7 +159,7 @@ Extended Crafting comes with CraftTweaker support built-in. You can make use of ### Adding A Shaped Recipe -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped(name, , [[<>, <>, <>], [<>, <>, <>], [<>, <>, <>]]); mods.extendedcrafting.TableCrafting.addShaped(name, , [[<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>], [<>, <>, <>, <>, <>]]); mods.extendedcrafting.TableCrafting.addShaped(name, , [[<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>], [<>, <>, <>, <>, <>, <>, <>]]); @@ -180,7 +180,7 @@ mods.extendedcrafting.TableCrafting.addShaped(name, tier, , [[<>, <>, <> #### Example -```java +```zenscript mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2, , [ [, , ], [, , ], @@ -190,7 +190,7 @@ mods.extendedcrafting.TableCrafting.addShaped("test_shaped", 2,