diff --git a/404.html b/404.html index cd70879ca..026db6dc6 100644 --- a/404.html +++ b/404.html @@ -4,8 +4,8 @@ 페이지를 찾을 수 없습니다. | NeoForged 비공식 한글 문서 - - + +
본문으로 건너뛰기

페이지를 찾을 수 없습니다.

원하는 페이지를 찾을 수 없습니다.

사이트 관리자에게 링크가 깨진 것을 알려주세요.

diff --git a/assets/js/0131da9c.a4b75cbf.js b/assets/js/0131da9c.a4b75cbf.js deleted file mode 100644 index 7cf1f363a..000000000 --- a/assets/js/0131da9c.a4b75cbf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[9192],{5588:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var o=t(5893),r=t(1151);const i={},s="\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0",c={id:"networking/index",title:"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0",description:"\uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac04\uc758 \uc18c\ud1b5\uc740 \uc131\uacf5\uc801\uc778 \ubaa8\ub4dc\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574 \ud544\uc218\uc801\uc73c\ub85c \ub4e4\uc5b4\uac00\ub294 \uc694\uc18c\uc911 \ud558\ub098\uc785\ub2c8\ub2e4.",source:"@site/docs/networking/index.md",sourceDirName:"networking",slug:"/networking/",permalink:"/Neoforge-Korean-Documentation/docs/networking/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\ud3ec\uc9c0 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8 \uc2dc\uc2a4\ud15c",permalink:"/Neoforge-Korean-Documentation/docs/misc/updatechecker"},next:{title:"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0",permalink:"/Neoforge-Korean-Documentation/docs/networking/entities"}},l={},d=[];function a(e){const n={a:"a",h1:"h1",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"\ub124\ud2b8\uc6cc\ud06c-\ud1b5\uc2e0",children:"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0"}),"\n",(0,o.jsx)(n.p,{children:"\uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac04\uc758 \uc18c\ud1b5\uc740 \uc131\uacf5\uc801\uc778 \ubaa8\ub4dc\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574 \ud544\uc218\uc801\uc73c\ub85c \ub4e4\uc5b4\uac00\ub294 \uc694\uc18c\uc911 \ud558\ub098\uc785\ub2c8\ub2e4."}),"\n",(0,o.jsx)(n.p,{children:"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0\uc744 \ud558\ub294\ub370\uc5d0\ub294 \ub450 \uc8fc \ubaa9\uc801\uc774 \uc788\uc2b5\ub2c8\ub2e4:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:['\ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ud45c\uc2dc\ub418\ub294 \ub0b4\uc6a9\uc774 \uc11c\ubc84\uc640 "\ub3d9\uae30\ud654" \ub418\ub3c4\ub85d \ud558\ub294 \uac83',"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"(X, Y, Z) \uc5d0 \ubc29\uae08 \uc790\ub780 \uaf43\uc774 \ubc14\ub85c \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ud45c\uc2dc\ub418\ub3c4\ub85d \ud558\ub294 \uac83"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc11c\ubc84\uc5d0\uac8c \ud50c\ub808\uc774\uc5b4\uc758 \uc0c1\ud0dc\uac00 \ubcc0\ud588\ub2e4\uace0 \uc54c\ub824\uc8fc\ub294 \uc218\ub2e8\uc774 \ub418\ub294 \uac83","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"\ud50c\ub808\uc774\uc5b4\uac00 \ud0a4\ub97c \ub20c\ub800\uc744 \ub54c \uc11c\ubc84\uc5d0 \uc54c\ub824\uc8fc\ub294 \uac83"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"\uc774\ub97c \uad6c\ud604\ud558\ub294 \uac00\uc7a5 \uc77c\ubc18\uc801\uc778 \ubc29\ubc95\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc11c\ubc84\uac00 \uc11c\ub85c \uba54\uc2dc\uc9c0\ub97c \uc8fc\uace0 \ubc1b\ub294 \uac83\uc785\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c, \uc774 \uba54\uc2dc\uc9c0\ub4e4\uc740 \ud1b5\uc2e0 \uacfc\uc815\uc744 \ud3b8\ud558\uac8c \ud558\uae30 \uc704\ud574 \uc5ec\ub7ec \ub370\uc774\ud130\uac00 \uc21c\uc11c\ub300\ub85c \ub4e4\uc5b4\uc788\ub294 \uad6c\uc870\ub97c \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,o.jsxs)(n.p,{children:["Forge \uc5d0\uc11c\ub294 ",(0,o.jsx)(n.a,{href:"https://netty.io",title:"Netty \uacf5\uc2dd \uc0ac\uc774\ud2b8",children:"netty"}),"\ub97c \uae30\ubc18\uc73c\ub85c \ub9cc\ub4e0 \ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0\uc744 \uc870\uae08 \ub354 \uac04\ud3b8\ud558\uac8c \uc4f8 \uc218 \uc788\ub294 \uc5ec\ub7ec \uac00\uc9c0 \ubc29\ubc95\ub4e4\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4."]}),"\n",(0,o.jsxs)(n.p,{children:["\uadf8\uc911 \uc2e0\uc0dd \ubaa8\ub4dc\ub97c \uc704\ud55c \uac00\uc7a5 \uac04\ub2e8\ud55c \ubc29\ubc95\uc740 ",(0,o.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/networking/simpleimpl",title:"SimpleImpl \uc774\ub780?",children:"SimpleImpl"}),"\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4, ",(0,o.jsx)(n.a,{href:"https://netty.io",title:"Netty \uacf5\uc2dd \uc0ac\uc774\ud2b8",children:"netty"})," \uc758 \ubcf5\uc7a1\ud55c \uc2dc\uc2a4\ud15c\uc744 \ucd94\uc0c1\ud654 \ud558\uace0 \uba54\uc2dc\uc9c0\uc640 \ud578\ub4e4\ub7ec\ub9cc \uc0ac\uc6a9\ud558\uc5ec \ud1b5\uc2e0\uc744 \uad6c\ud604\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4."]})]})}function u(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>s});var o=t(7294);const r={},i=o.createContext(r);function s(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0131da9c.e11b141a.js b/assets/js/0131da9c.e11b141a.js new file mode 100644 index 000000000..c0aa9badc --- /dev/null +++ b/assets/js/0131da9c.e11b141a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[9192],{5588:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>a});var o=t(5893),r=t(1151);const i={},s="\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0",c={id:"networking/index",title:"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0",description:"\uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac04\uc758 \uc18c\ud1b5\uc740 \uc131\uacf5\uc801\uc778 \ubaa8\ub4dc\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574 \ud544\uc218\uc801\uc73c\ub85c \ub4e4\uc5b4\uac00\ub294 \uc694\uc18c\uc911 \ud558\ub098\uc785\ub2c8\ub2e4.",source:"@site/docs/networking/index.md",sourceDirName:"networking",slug:"/networking/",permalink:"/Neoforge-Korean-Documentation/docs/networking/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\ud3ec\uc9c0 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8 \uc2dc\uc2a4\ud15c",permalink:"/Neoforge-Korean-Documentation/docs/misc/updatechecker"},next:{title:"\uc0ac\uc804 \uc124\uc815",permalink:"/Neoforge-Korean-Documentation/docs/networking/configuration-tasks"}},l={},a=[];function d(n){const e={a:"a",code:"code",h1:"h1",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.a)(),...n.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h1,{id:"\ub124\ud2b8\uc6cc\ud06c-\ud1b5\uc2e0",children:"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0"}),"\n",(0,o.jsx)(e.p,{children:"\uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac04\uc758 \uc18c\ud1b5\uc740 \uc131\uacf5\uc801\uc778 \ubaa8\ub4dc\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574 \ud544\uc218\uc801\uc73c\ub85c \ub4e4\uc5b4\uac00\ub294 \uc694\uc18c\uc911 \ud558\ub098\uc785\ub2c8\ub2e4."}),"\n",(0,o.jsx)(e.p,{children:"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0\uc744 \ud558\ub294\ub370\uc5d0\ub294 \ub450 \uc8fc \ubaa9\uc801\uc774 \uc788\uc2b5\ub2c8\ub2e4:"}),"\n",(0,o.jsxs)(e.ol,{children:["\n",(0,o.jsxs)(e.li,{children:['\ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ud45c\uc2dc\ub418\ub294 \ub0b4\uc6a9\uc774 \uc11c\ubc84\uc640 "\ub3d9\uae30\ud654" \ub418\ub3c4\ub85d \ud558\ub294 \uac83',"\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsx)(e.li,{children:"(X, Y, Z) \uc5d0 \ubc29\uae08 \uc790\ub780 \uaf43\uc774 \ubc14\ub85c \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ud45c\uc2dc\ub418\ub3c4\ub85d \ud558\ub294 \uac83"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(e.li,{children:["\ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc11c\ubc84\uc5d0\uac8c \ud50c\ub808\uc774\uc5b4\uc758 \uc0c1\ud0dc\uac00 \ubcc0\ud588\ub2e4\uace0 \uc54c\ub824\uc8fc\ub294 \uc218\ub2e8\uc774 \ub418\ub294 \uac83","\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsx)(e.li,{children:"\ud50c\ub808\uc774\uc5b4\uac00 \ud0a4\ub97c \ub20c\ub800\uc744 \ub54c \uc11c\ubc84\uc5d0 \uc54c\ub824\uc8fc\ub294 \uac83"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(e.p,{children:"\uc774\ub97c \uad6c\ud604\ud558\ub294 \uac00\uc7a5 \uc77c\ubc18\uc801\uc778 \ubc29\ubc95\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc11c\ubc84\uac00 \uc11c\ub85c \uba54\uc2dc\uc9c0\ub97c \uc8fc\uace0 \ubc1b\ub294 \uac83\uc785\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c, \uc774 \uba54\uc2dc\uc9c0\ub4e4\uc740 \ud1b5\uc2e0 \uacfc\uc815\uc744 \ud3b8\ud558\uac8c \ud558\uae30 \uc704\ud574 \uc5ec\ub7ec \ub370\uc774\ud130\uac00 \uc21c\uc11c\ub300\ub85c \ub4e4\uc5b4\uc788\ub294 \uad6c\uc870\ub97c \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,o.jsxs)(e.p,{children:["\uc0c8\ub85c\uc6b4 ",(0,o.jsx)(e.a,{href:"/Neoforge-Korean-Documentation/docs/networking/payload",title:"\uc0c8\ub85c\uc6b4 \ud328\ud0b7 \uc815\uc758\ud558\uae30",children:"\ud328\ud0b7"}),"\uc740 \ub124\uc624 \ud3ec\uc9c0\uc758 ",(0,o.jsx)(e.code,{children:"RegisterPayloadHandlerEvent"}),"\ub97c \ud1b5\ud574 \ub4f1\ub85d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc2dc\uc2a4\ud15c\uc740 ",(0,o.jsx)(e.a,{href:"https://netty.io",title:"Netty \uacf5\uc2dd \uc0ac\uc774\ud2b8",children:"netty"})," \uae30\ubc18\uc73c\ub85c \uc81c\uc791\ub418\uc5c8\uc73c\uba70 \ub4f1\ub85d\uc2dc \ud328\ud0b7\uc758 \uc774\ub984, \ud328\ud0b7\uc744 \ub124\ud2b8\uc6cc\ud06c \ubc84\ud37c\uc5d0\uc11c \uc77d\uace0 \uc4f0\ub294 \ubc95, \ud328\ud0b7 \uc218\uc2e0\uc2dc \uc2e4\ud589\ud560 \ub3d9\uc791\uc774 \ud544\uc694\ud569\ub2c8\ub2e4."]})]})}function u(n={}){const{wrapper:e}={...(0,r.a)(),...n.components};return e?(0,o.jsx)(e,{...n,children:(0,o.jsx)(d,{...n})}):d(n)}},1151:(n,e,t)=>{t.d(e,{Z:()=>c,a:()=>s});var o=t(7294);const r={},i=o.createContext(r);function s(n){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:s(n.components),o.createElement(i.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/4b5e0f3b.52262463.js b/assets/js/4b5e0f3b.52262463.js new file mode 100644 index 000000000..0ea3e92be --- /dev/null +++ b/assets/js/4b5e0f3b.52262463.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[4057],{2303:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=t(5893),o=t(1151);const r={},d="\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0",a={id:"networking/entities",title:"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0",description:"\ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ud1b5\uc2e0\ud558\ub294 \uac83 \ub9d0\uace0\ub3c4 \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\uc2dc\ucf1c\uc8fc\ub294 \uc2dc\uc2a4\ud15c\uc740 \ub2e4\uc591\ud569\ub2c8\ub2e4.",source:"@site/docs/networking/entities.md",sourceDirName:"networking",slug:"/networking/entities",permalink:"/Neoforge-Korean-Documentation/docs/networking/entities",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\uc0ac\uc804 \uc124\uc815",permalink:"/Neoforge-Korean-Documentation/docs/networking/configuration-tasks"},next:{title:"\uc0c8\ub85c\uc6b4 \ud328\ud0b7 \ub4f1\ub85d\ud558\uae30",permalink:"/Neoforge-Korean-Documentation/docs/networking/payload"}},s={},c=[{value:"\uc2a4\ud3f0 \ub370\uc774\ud130",id:"\uc2a4\ud3f0-\ub370\uc774\ud130",level:2},{value:"IEntityAdditionalSpawnData",id:"ientityadditionalspawndata",level:3},{value:"\ub3d9\uc801\uc778 \ub370\uc774\ud130",id:"\ub3d9\uc801\uc778-\ub370\uc774\ud130",level:2},{value:"\ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130",id:"\ub370\uc774\ud130-\ud30c\ub77c\ubbf8\ud130",level:3}];function l(e){const n={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",strong:"strong",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"\uc5d4\ud2f0\ud2f0-\ud1b5\uc2e0",children:"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0"}),"\n",(0,i.jsx)(n.p,{children:"\ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ud1b5\uc2e0\ud558\ub294 \uac83 \ub9d0\uace0\ub3c4 \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\uc2dc\ucf1c\uc8fc\ub294 \uc2dc\uc2a4\ud15c\uc740 \ub2e4\uc591\ud569\ub2c8\ub2e4."}),"\n",(0,i.jsx)(n.h2,{id:"\uc2a4\ud3f0-\ub370\uc774\ud130",children:"\uc2a4\ud3f0 \ub370\uc774\ud130"}),"\n",(0,i.jsx)(n.p,{children:"1.20.2 \uc774\ud6c4 \uc5ec\ub7ec \ud328\ud0b7\uc744 \uafb8\ub7ec\ubbf8\ub85c \ubcf4\ub0bc \uc218 \uc788\uac8c \ub418\uc5b4 \uc5d4\ud2f0\ud2f0 \uc18c\ud658\uc2dc \ucd94\uac00 \ub370\uc774\ud130\ub97c \uac19\uc774 \ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud65c\uc6a9\ud574 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc815\uc758\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,i.jsx)(n.h3,{id:"ientityadditionalspawndata",children:"IEntityAdditionalSpawnData"}),"\n",(0,i.jsxs)(n.p,{children:["\ub9cc\uc57d \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uc804\uc1a1\ud55c \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\uac00 \ubcc0\ud558\uc9c0 \uc54a\ub294\ub2e4\uba74 \uc774 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc18c\ud658\uc2dc\uc5d0\ub9cc \ucd94\uac00 \ub370\uc774\ud130\ub97c \ubcf4\ub0b4\ub294 \uac83\uc774 \uad8c\uc7a5\ub429\ub2c8\ub2e4. ",(0,i.jsx)(n.code,{children:"#writeSpawnData"}),"\uc640 ",(0,i.jsx)(n.code,{children:"#readSpawnData"}),"\ub97c \uc7ac\uc815\uc758\ud558\uc5ec \ubc84\ud37c\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \ub2f4\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c ",(0,i.jsx)(n.code,{children:"sendPairingData(...)"}),"\ub97c \ud1b5\ud574 \uc5d4\ud2f0\ud2f0\uac00 \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc9dd\uc744 \uc774\ub8f0 \ub54c \uc2a4\ud3f0 \ud328\ud0b7\uacfc \ud568\uaed8 \ub2e4\ub978 \ud328\ud0b7\uc744 \uc804\uc1a1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,i.jsx)(n.h2,{id:"\ub3d9\uc801\uc778-\ub370\uc774\ud130",children:"\ub3d9\uc801\uc778 \ub370\uc774\ud130"}),"\n",(0,i.jsx)(n.h3,{id:"\ub370\uc774\ud130-\ud30c\ub77c\ubbf8\ud130",children:"\ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130"}),"\n",(0,i.jsx)(n.p,{children:"\ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130\ub294 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uac00 \uc790\ub3d9\uc73c\ub85c \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654 \uc2dc\ud0ac\ub54c \uc8fc\ub85c \uc0ac\uc6a9\ud558\ub294 \uc2dc\uc2a4\ud15c\uc785\ub2c8\ub2e4. \ubc14\ub2d0\ub77c \ucf54\ub4dc\uc5d0\uc11c \uc0ac\uc6a9\ubc95\uc744 \ucc38\uace0\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,i.jsxs)(n.p,{children:["\uba3c\uc800, \ub3d9\uae30\ud654\ud560 \ub370\uc774\ud130\ub97c \ub2f4\ub294 ",(0,i.jsx)(n.code,{children:"EntityDataAccessor"}),"\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc774 \uac1d\uccb4\ub294 \uc5d4\ud2f0\ud2f0\uc758 ",(0,i.jsx)(n.code,{children:"static final"})," \ud544\ub4dc\uc5d0 \ud560\ub2f9\ud558\uc138\uc694. ",(0,i.jsx)(n.code,{children:"SynchedEntityData#defineId"}),"\uc5d0 \uc5d4\ud2f0\ud2f0\uc758 \ud074\ub798\uc2a4\uc640 \ub370\uc774\ud130\ub97c \uc9c1\ub82c\ud654\ud560 ",(0,i.jsx)(n.code,{children:"EntityDataSerializer"}),"\ub97c \uc804\ub2ec\ud558\uc5ec \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. ",(0,i.jsx)(n.code,{children:"EntityDataSerializers"}),"\uc5d0\uc11c \uc0ac\uc804 \uc815\uc758\ub41c ",(0,i.jsx)(n.code,{children:"EntityDataSerializer"}),"\ub4e4\uc744 \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsxs)(n.p,{children:["\ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130\ub294 ",(0,i.jsx)(n.strong,{children:"\ubb34\uc870\uac74"})," \uc9c1\uc811 \ub9cc\ub4dc\uc2dc\ub294 \uc5d4\ud2f0\ud2f0\uc5d0\ub9cc, ",(0,i.jsx)(n.strong,{children:"\uadf8 \uc5d4\ud2f0\ud2f0 \ud074\ub798\uc2a4 \uc548\uc5d0\uc11c\ub9cc"})," \uc0ac\uc6a9\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. \ub2e4\ub978 \uc5d4\ud2f0\ud2f0\uc5d0 \ud30c\ub77c\ubbf8\ud130\ub97c \ucd94\uac00\ud558\uc2dc\uba74 \uadf8 \ub370\uc774\ud130\ub97c \ubcf4\ub0bc\ub54c \uc0ac\uc6a9\ud558\ub294 ID\uc758 \ub3d9\uae30\ud654\ub97c \uae68\ubc84\ub9b4 \uc218 \uc788\uc73c\uba70 \uace0\uce58\uae30 \uc5b4\ub824\uc6b4 \ubb38\uc81c\ub97c \uc720\ubc1c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]})}),"\n",(0,i.jsxs)(n.p,{children:["\uadf8 \ub2e4\uc74c ",(0,i.jsx)(n.code,{children:"Entity#defineSynchedData"}),"\ub97c \uc7ac\uc815\uc758\ud574 ",(0,i.jsx)(n.code,{children:"this.entityData.define(...)"}),"\uc744 \uac01\uac01\uc758 ",(0,i.jsx)(n.code,{children:"EntityDataAccessor"}),"\uc640 \uae30\ubcf8\uac12\uc744 \uc804\ub2ec\ud558\uc5ec \ud638\ucd9c\ud558\uc138\uc694. \ub298 ",(0,i.jsx)(n.code,{children:"super"})," \uba54\uc11c\ub4dc\ub97c \uba3c\uc800 \ud638\ucd9c\ud558\uc2dc\ub294 \uac83\uc744 \uc78a\uc9c0 \ub9c8\uc138\uc694!"]}),"\n",(0,i.jsxs)(n.p,{children:["\uadf8\ub2e4\uc74c\uc5d0\ub294 \uc5d4\ud2f0\ud2f0\uc758 ",(0,i.jsx)(n.code,{children:"entityData"})," \uc778\uc2a4\ud134\uc2a4\ub97c \ud1b5\ud574 \ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130\uc758 \uac12\uc744 \ubcc0\uacbd\ud558\uace0 \uc77d\uc73c\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\ub294 \ubcc0\uacbd\uc0ac\ud56d\uc774 \uc790\ub3d9\uc73c\ub85c \ubcf4\ub0b4\uc9d1\ub2c8\ub2e4."]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>d});var i=t(7294);const o={},r=i.createContext(o);function d(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4b5e0f3b.91b6e13d.js b/assets/js/4b5e0f3b.91b6e13d.js deleted file mode 100644 index 2f1e3be36..000000000 --- a/assets/js/4b5e0f3b.91b6e13d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[4057],{2303:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var i=t(5893),r=t(1151);const o={},d="\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0",c={id:"networking/entities",title:"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0",description:"\ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ud1b5\uc2e0\ud558\ub294 \uac83 \ub9d0\uace0\ub3c4 \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\uc2dc\ucf1c\uc8fc\ub294 \uc2dc\uc2a4\ud15c\uc740 \ub2e4\uc591\ud569\ub2c8\ub2e4.",source:"@site/docs/networking/entities.md",sourceDirName:"networking",slug:"/networking/entities",permalink:"/Neoforge-Korean-Documentation/docs/networking/entities",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0",permalink:"/Neoforge-Korean-Documentation/docs/networking/"},next:{title:"SimpleImpl",permalink:"/Neoforge-Korean-Documentation/docs/networking/simpleimpl"}},a={},s=[{value:"\uc2a4\ud3f0 \ub370\uc774\ud130",id:"\uc2a4\ud3f0-\ub370\uc774\ud130",level:2},{value:"IEntityAdditionalSpawnData",id:"ientityadditionalspawndata",level:3},{value:"\ub3d9\uc801\uc778 \ub370\uc774\ud130",id:"\ub3d9\uc801\uc778-\ub370\uc774\ud130",level:2},{value:"\ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130",id:"\ub370\uc774\ud130-\ud30c\ub77c\ubbf8\ud130",level:3}];function l(e){const n={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"\uc5d4\ud2f0\ud2f0-\ud1b5\uc2e0",children:"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0"}),"\n",(0,i.jsx)(n.p,{children:"\ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ud1b5\uc2e0\ud558\ub294 \uac83 \ub9d0\uace0\ub3c4 \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\uc2dc\ucf1c\uc8fc\ub294 \uc2dc\uc2a4\ud15c\uc740 \ub2e4\uc591\ud569\ub2c8\ub2e4."}),"\n",(0,i.jsx)(n.h2,{id:"\uc2a4\ud3f0-\ub370\uc774\ud130",children:"\uc2a4\ud3f0 \ub370\uc774\ud130"}),"\n",(0,i.jsxs)(n.p,{children:["\ubaa8\ub4dc\uc5d0\uc11c \ucd94\uac00\ud558\ub294 \uc5d4\ud2f0\ud2f0\uc758 \uc2a4\ud3f0 \ud328\ud0b7\uc5d0 \ub370\uc774\ud130\ub97c \ucd94\uac00\ud558\uac70\ub098, \uc0c1\uc18d\ud558\ub294 \ubc14\ub2d0\ub77c \uc5d4\ud2f0\ud2f0\uc758 \uc790\uccb4\uc801\uc778 \uc2a4\ud3f0 \ud328\ud0b7\uc744 \ubcc0\uacbd\ud558\ub294 \ub4f1 \uc2a4\ud3f0 \ud328\ud0b7\uc744 \uc218\uc815\ud558\ub824\uba74 ",(0,i.jsx)(n.code,{children:"Entity#getAddEntityPacket"}),"\ub97c \uc544\ub798\uc640 \uac19\uc774 \uc7ac\uc815\uc758\ud574 \uc2a4\ud3f0 \ud328\ud0b7\uc744 \ud3ec\uc9c0\uc5d0\uc11c \uad00\ub9ac\ud558\ub3c4\ub85d \ud558\ub294 \uac83\uc774 \uc77c\ubc18\uc801\uc785\ub2c8\ub2e4."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",children:"@Override\npublic Packet getAddEntityPacket()\n{\n return NetworkHooks.getEntitySpawningPacket(this/* \uc5d4\ud2f0\ud2f0\uc758 \uc778\uc2a4\ud134\uc2a4*/);\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"\uc774\ud6c4 \ub2e4\uc74c \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2a4\ud3f0 \ud328\ud0b7\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc2e4\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,i.jsx)(n.h3,{id:"ientityadditionalspawndata",children:"IEntityAdditionalSpawnData"}),"\n",(0,i.jsxs)(n.p,{children:["\ub9cc\uc57d \uc5d4\ud2f0\ud2f0\uac00 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uc2dc\uac04\uc5d0 \ub530\ub77c \ubcc0\ud558\uc9c4 \uc54a\ub294 \ub370\uc774\ud130\ub97c \uc804\uc1a1\ud574\uc57c \ud55c\ub2e4\uba74 \uc774 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2a4\ud3f0 \ud328\ud0b7\uc5d0 \ub2f4\uc544 \ubcf4\ub0b4\ub294 \uac83\uc774 \uad8c\uc7a5\ub429\ub2c8\ub2e4. ",(0,i.jsx)(n.code,{children:"#writeSpawnData"}),"\uc640 ",(0,i.jsx)(n.code,{children:"#readSpawnData"}),"\ub97c \uc7ac\uc815\uc758\ud558\uc5ec \uc2a4\ud3f0 \ud328\ud0b7\uc758 \ubc84\ud37c\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc77d\uace0 \uc4f8 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,i.jsx)(n.h2,{id:"\ub3d9\uc801\uc778-\ub370\uc774\ud130",children:"\ub3d9\uc801\uc778 \ub370\uc774\ud130"}),"\n",(0,i.jsx)(n.h3,{id:"\ub370\uc774\ud130-\ud30c\ub77c\ubbf8\ud130",children:"\ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130"}),"\n",(0,i.jsx)(n.p,{children:"\ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130\ub294 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uac00 \uc790\ub3d9\uc73c\ub85c \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654 \uc2dc\ud0ac\ub54c \uc8fc\ub85c \uc0ac\uc6a9\ud558\ub294 \uc2dc\uc2a4\ud15c\uc785\ub2c8\ub2e4. \ubc14\ub2d0\ub77c \ucf54\ub4dc\uc5d0\uc11c \uc0ac\uc6a9\ubc95\uc744 \ucc38\uace0\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,i.jsxs)(n.p,{children:["\uba3c\uc800, \ub3d9\uae30\ud654\ud560 \ub370\uc774\ud130\ub97c \ub2f4\ub294 ",(0,i.jsx)(n.code,{children:"EntityDataAccessor"}),"\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc774 \uac1d\uccb4\ub294 \uc5d4\ud2f0\ud2f0\uc758 ",(0,i.jsx)(n.code,{children:"static final"})," \ud544\ub4dc\uc5d0 \ud560\ub2f9\ud558\uc138\uc694. ",(0,i.jsx)(n.code,{children:"SynchedEntityData#defineId"}),"\uc5d0 \uc5d4\ud2f0\ud2f0\uc758 \ud074\ub798\uc2a4\uc640 \ub370\uc774\ud130\ub97c \uc9c1\ub82c\ud654\ud560 ",(0,i.jsx)(n.code,{children:"EntityDataSerializer"}),"\ub97c \uc804\ub2ec\ud558\uc5ec \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. ",(0,i.jsx)(n.code,{children:"EntityDataSerializers"}),"\uc5d0\uc11c \uc0ac\uc804 \uc815\uc758\ub41c ",(0,i.jsx)(n.code,{children:"EntityDataSerializer"}),"\ub4e4\uc744 \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsxs)(n.p,{children:["\ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130\ub294 ",(0,i.jsx)(n.strong,{children:"\ubb34\uc870\uac74"})," \uc9c1\uc811 \ub9cc\ub4dc\uc2dc\ub294 \uc5d4\ud2f0\ud2f0\uc5d0\ub9cc, ",(0,i.jsx)(n.strong,{children:"\uadf8 \uc5d4\ud2f0\ud2f0 \ud074\ub798\uc2a4 \uc548\uc5d0\uc11c\ub9cc"})," \uc0ac\uc6a9\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. \ub2e4\ub978 \uc5d4\ud2f0\ud2f0\uc5d0 \ud30c\ub77c\ubbf8\ud130\ub97c \ucd94\uac00\ud558\uc2dc\uba74 \uadf8 \ub370\uc774\ud130\ub97c \ubcf4\ub0bc\ub54c \uc0ac\uc6a9\ud558\ub294 ID\uc758 \ub3d9\uae30\ud654\ub97c \uae68\ubc84\ub9b4 \uc218 \uc788\uc73c\uba70 \uace0\uce58\uae30 \uc5b4\ub824\uc6b4 \ubb38\uc81c\ub97c \uc720\ubc1c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]})}),"\n",(0,i.jsxs)(n.p,{children:["\uadf8 \ub2e4\uc74c ",(0,i.jsx)(n.code,{children:"Entity#defineSynchedData"}),"\ub97c \uc7ac\uc815\uc758\ud574 ",(0,i.jsx)(n.code,{children:"this.entityData.define(...)"}),"\uc744 \uac01\uac01\uc758 ",(0,i.jsx)(n.code,{children:"EntityDataAccessor"}),"\uc640 \uae30\ubcf8\uac12\uc744 \uc804\ub2ec\ud558\uc5ec \ud638\ucd9c\ud558\uc138\uc694. \ub298 ",(0,i.jsx)(n.code,{children:"super"})," \uba54\uc11c\ub4dc\ub97c \uba3c\uc800 \ud638\ucd9c\ud558\uc2dc\ub294 \uac83\uc744 \uc78a\uc9c0 \ub9c8\uc138\uc694!"]}),"\n",(0,i.jsxs)(n.p,{children:["\uadf8\ub2e4\uc74c\uc5d0\ub294 \uc5d4\ud2f0\ud2f0\uc758 ",(0,i.jsx)(n.code,{children:"entityData"})," \uc778\uc2a4\ud134\uc2a4\ub97c \ud1b5\ud574 \ub370\uc774\ud130 \ud30c\ub77c\ubbf8\ud130\uc758 \uac12\uc744 \ubcc0\uacbd\ud558\uace0 \uc77d\uc73c\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\ub294 \ubcc0\uacbd\uc0ac\ud56d\uc774 \uc790\ub3d9\uc73c\ub85c \ubcf4\ub0b4\uc9d1\ub2c8\ub2e4."]})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>d});var i=t(7294);const r={},o=i.createContext(r);function d(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/55f9101b.bce1f9e4.js b/assets/js/55f9101b.bce1f9e4.js deleted file mode 100644 index 98e9c71ef..000000000 --- a/assets/js/55f9101b.bce1f9e4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[8407],{168:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>t,metadata:()=>a,toc:()=>s});var o=i(5893),d=i(1151);const t={},r="Dependencies",a={id:"docs/dependencies/index",title:"Dependencies",description:"Dependencies are not only used to develop interoperability between mods or add additional libraries to the game, but it also determines what version of Minecraft to develop for. This will provide a quick overview on how to modify the repositories and dependencies block to add dependencies to your development environment.",source:"@site/neogradle/docs/dependencies/index.md",sourceDirName:"docs/dependencies",slug:"/docs/dependencies/",permalink:"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"ngSidebar",previous:{title:"Run Configurations",permalink:"/Neoforge-Korean-Documentation/neogradle/docs/configuration/runs"},next:{title:"Jar-in-Jar",permalink:"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/jarinjar"}},c={},s=[{value:"minecraft",id:"minecraft",level:2},{value:"Mod Dependencies",id:"mod-dependencies",level:2},{value:"Local Mod Dependencies",id:"local-mod-dependencies",level:3},{value:"Non-Minecraft Dependencies",id:"non-minecraft-dependencies",level:2}];function l(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,d.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"dependencies",children:"Dependencies"}),"\n",(0,o.jsxs)(n.p,{children:["Dependencies are not only used to develop interoperability between mods or add additional libraries to the game, but it also determines what version of Minecraft to develop for. This will provide a quick overview on how to modify the ",(0,o.jsx)(n.code,{children:"repositories"})," and ",(0,o.jsx)(n.code,{children:"dependencies"})," block to add dependencies to your development environment."]}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["This will not explain Gradle concepts in depth. It is highly recommended to read the ",(0,o.jsx)(n.a,{href:"https://docs.gradle.org/8.1.1/userguide/dependency_management.html",children:"Gradle Dependency Management guide"})," before continuing."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"minecraft",children:(0,o.jsx)(n.code,{children:"minecraft"})}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"minecraft"})," dependency specifies the version of Minecraft to use and must be included in the ",(0,o.jsx)(n.code,{children:"dependencies"})," block. Any artifact, except artifacts which have the group ",(0,o.jsx)(n.code,{children:"net.minecraft"}),", will apply any patches provided with the dependency. This typically only specifies the ",(0,o.jsx)(n.code,{children:"net.minecraftforge:forge"})," artifact."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-gradle",children:"dependencies {\n // Version of Forge artifact is in the form '-'\n // 'mc_version' is the version of Minecraft to load (e.g., 1.19.4)\n // 'forge_version' is the version of Forge wanted for that Minecraft version (e.g., 45.0.23)\n // Vanilla can be compiled against using 'net.minecraft:joined:' instead\n minecraft 'net.minecraftforge:forge:1.19.4-45.0.23'\n}\n"})}),"\n",(0,o.jsx)(n.h2,{id:"mod-dependencies",children:"Mod Dependencies"}),"\n",(0,o.jsxs)(n.p,{children:["In a typical development environment, Minecraft is deobfuscated to intermediate mappings, used in production, and then transformed into whatever ",(0,o.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/neogradle/docs/configuration/#human-readable-mappings",children:"human-readable mappings"})," the modder specified. Mod artifacts, when built, are obfuscated to production mappings (SRG), and as such, are unable to be used directly as a Gradle dependency."]}),"\n",(0,o.jsxs)(n.p,{children:["As such, all mod dependencies need to be wrapped with ",(0,o.jsx)(n.code,{children:"fg.deobf"})," before being added to the intended configuration."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-gradle",children:"dependencies {\n // Assume we have already specified the 'minecraft' dependency\n\n // Assume we have some artifact 'examplemod' that can be obtained from a specified repository\n implementation fg.deobf('com.example:examplemod:1.0')\n}\n"})}),"\n",(0,o.jsx)(n.h3,{id:"local-mod-dependencies",children:"Local Mod Dependencies"}),"\n",(0,o.jsxs)(n.p,{children:["If the mod you are trying to depend on is not available on a maven repository (e.g., ",(0,o.jsx)(n.a,{href:"https://central.sonatype.com/",children:"Maven Central"}),", ",(0,o.jsx)(n.a,{href:"https://cursemaven.com/",children:"CurseMaven"}),", ",(0,o.jsx)(n.a,{href:"https://docs.modrinth.com/docs/tutorials/maven/",children:"Modrinth"}),"), you can add a mod dependency using a [flat directory] instead:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-gradle",children:"repositories {\n // Adds the 'libs' folder in the project directory as a flat directory\n flatDir {\n dir 'libs'\n }\n}\n\ndependencies {\n // ...\n\n // Given some :::\n // with an extension \n // Artifacts in flat directories will be resolved in the following order:\n // - -.\n // - --.\n // - .\n // - -.\n\n // If a classifier is explicitly specified\n // artifacts with the classifier will take priority:\n // - examplemod-1.0-api.jar\n // - examplemod-api.jar\n // - examplemod-1.0.jar\n // - examplemod.jar\n implementation fg.deobf('com.example:examplemod:1.0:api')\n}\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsx)(n.p,{children:"The group name can be anything but must not be empty for flat directory entries as they are not checked when resolving the artifact file."})}),"\n",(0,o.jsx)(n.h2,{id:"non-minecraft-dependencies",children:"Non-Minecraft Dependencies"}),"\n",(0,o.jsxs)(n.p,{children:["Non-Minecraft dependencies are not loaded by Forge by default in the development environment. To get Forge to recognize the non-Minecraft dependency, they must be added to the ",(0,o.jsx)(n.code,{children:"minecraftLibrary"})," configuration. ",(0,o.jsx)(n.code,{children:"minecraftLibrary"})," works similarly to the ",(0,o.jsx)(n.code,{children:"implementation"})," configuration within Gradle, being applied during compile time and runtime."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-gradle",children:"dependencies {\n // ...\n\n // Assume there is some non-Minecraft library 'dummy-lib'\n minecraftLibrary 'com.dummy:dummy-lib:1.0'\n}\n"})}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Non-Minecraft dependencies added to the development environment will not be included in built artifact by default! You must use ",(0,o.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/jarinjar",children:"Jar-In-Jar"})," to include the dependencies within the artifact on build."]}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,d.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>a,a:()=>r});var o=i(7294);const d={},t=o.createContext(d);function r(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/55f9101b.ce786679.js b/assets/js/55f9101b.ce786679.js new file mode 100644 index 000000000..ce36a7c7f --- /dev/null +++ b/assets/js/55f9101b.ce786679.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[8407],{168:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>t,metadata:()=>a,toc:()=>s});var o=i(5893),d=i(1151);const t={},r="Dependencies",a={id:"docs/dependencies/index",title:"Dependencies",description:"Dependencies are not only used to develop interoperability between mods or add additional libraries to the game, but it also determines what version of Minecraft to develop for. This will provide a quick overview on how to modify the repositories and dependencies block to add dependencies to your development environment.",source:"@site/neogradle/docs/dependencies/index.md",sourceDirName:"docs/dependencies",slug:"/docs/dependencies/",permalink:"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"ngSidebar",previous:{title:"Run Configurations",permalink:"/Neoforge-Korean-Documentation/neogradle/docs/configuration/runs"},next:{title:"Jar-in-Jar",permalink:"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/jarinjar"}},c={},s=[{value:"minecraft",id:"minecraft",level:2},{value:"Mod Dependencies",id:"mod-dependencies",level:2},{value:"Local Mod Dependencies",id:"local-mod-dependencies",level:3},{value:"Non-Minecraft Dependencies",id:"non-minecraft-dependencies",level:2}];function l(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,d.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"dependencies",children:"Dependencies"}),"\n",(0,o.jsxs)(n.p,{children:["Dependencies are not only used to develop interoperability between mods or add additional libraries to the game, but it also determines what version of Minecraft to develop for. This will provide a quick overview on how to modify the ",(0,o.jsx)(n.code,{children:"repositories"})," and ",(0,o.jsx)(n.code,{children:"dependencies"})," block to add dependencies to your development environment."]}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["This will not explain Gradle concepts in depth. It is highly recommended to read the ",(0,o.jsx)(n.a,{href:"https://docs.gradle.org/8.1.1/userguide/dependency_management.html",children:"Gradle Dependency Management guide"})," before continuing."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"minecraft",children:(0,o.jsx)(n.code,{children:"minecraft"})}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"minecraft"})," dependency specifies the version of Minecraft to use and must be included in the ",(0,o.jsx)(n.code,{children:"dependencies"})," block. Any artifact, except artifacts which have the group ",(0,o.jsx)(n.code,{children:"net.minecraft"}),", will apply any patches provided with the dependency. This typically only specifies the ",(0,o.jsx)(n.code,{children:"net.minecraftforge:forge"})," artifact."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-gradle",children:"dependencies {\n // Version of Forge artifact is in the form '-'\n // 'mc_version' is the version of Minecraft to load (e.g., 1.19.4)\n // 'forge_version' is the version of Forge wanted for that Minecraft version (e.g., 45.0.23)\n // Vanilla can be compiled against using 'net.minecraft:joined:' instead\n minecraft 'net.minecraftforge:forge:1.19.4-45.0.23'\n}\n"})}),"\n",(0,o.jsx)(n.h2,{id:"mod-dependencies",children:"Mod Dependencies"}),"\n",(0,o.jsxs)(n.p,{children:["In a typical development environment, Minecraft is deobfuscated to intermediate mappings, used in production, and then transformed into whatever ",(0,o.jsx)(n.a,{href:"../configuration/index.md#human-readable-mappings",children:"human-readable mappings"})," the modder specified. Mod artifacts, when built, are obfuscated to production mappings (SRG), and as such, are unable to be used directly as a Gradle dependency."]}),"\n",(0,o.jsxs)(n.p,{children:["As such, all mod dependencies need to be wrapped with ",(0,o.jsx)(n.code,{children:"fg.deobf"})," before being added to the intended configuration."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-gradle",children:"dependencies {\n // Assume we have already specified the 'minecraft' dependency\n\n // Assume we have some artifact 'examplemod' that can be obtained from a specified repository\n implementation fg.deobf('com.example:examplemod:1.0')\n}\n"})}),"\n",(0,o.jsx)(n.h3,{id:"local-mod-dependencies",children:"Local Mod Dependencies"}),"\n",(0,o.jsxs)(n.p,{children:["If the mod you are trying to depend on is not available on a maven repository (e.g., ",(0,o.jsx)(n.a,{href:"https://central.sonatype.com/",children:"Maven Central"}),", ",(0,o.jsx)(n.a,{href:"https://cursemaven.com/",children:"CurseMaven"}),", ",(0,o.jsx)(n.a,{href:"https://docs.modrinth.com/docs/tutorials/maven/",children:"Modrinth"}),"), you can add a mod dependency using a [flat directory] instead:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-gradle",children:"repositories {\n // Adds the 'libs' folder in the project directory as a flat directory\n flatDir {\n dir 'libs'\n }\n}\n\ndependencies {\n // ...\n\n // Given some :::\n // with an extension \n // Artifacts in flat directories will be resolved in the following order:\n // - -.\n // - --.\n // - .\n // - -.\n\n // If a classifier is explicitly specified\n // artifacts with the classifier will take priority:\n // - examplemod-1.0-api.jar\n // - examplemod-api.jar\n // - examplemod-1.0.jar\n // - examplemod.jar\n implementation fg.deobf('com.example:examplemod:1.0:api')\n}\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsx)(n.p,{children:"The group name can be anything but must not be empty for flat directory entries as they are not checked when resolving the artifact file."})}),"\n",(0,o.jsx)(n.h2,{id:"non-minecraft-dependencies",children:"Non-Minecraft Dependencies"}),"\n",(0,o.jsxs)(n.p,{children:["Non-Minecraft dependencies are not loaded by Forge by default in the development environment. To get Forge to recognize the non-Minecraft dependency, they must be added to the ",(0,o.jsx)(n.code,{children:"minecraftLibrary"})," configuration. ",(0,o.jsx)(n.code,{children:"minecraftLibrary"})," works similarly to the ",(0,o.jsx)(n.code,{children:"implementation"})," configuration within Gradle, being applied during compile time and runtime."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-gradle",children:"dependencies {\n // ...\n\n // Assume there is some non-Minecraft library 'dummy-lib'\n minecraftLibrary 'com.dummy:dummy-lib:1.0'\n}\n"})}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Non-Minecraft dependencies added to the development environment will not be included in built artifact by default! You must use ",(0,o.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/jarinjar",children:"Jar-In-Jar"})," to include the dependencies within the artifact on build."]}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,d.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>a,a:()=>r});var o=i(7294);const d={},t=o.createContext(d);function r(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5d56015a.88a381cb.js b/assets/js/5d56015a.88a381cb.js deleted file mode 100644 index 23ea6efd1..000000000 --- a/assets/js/5d56015a.88a381cb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[7462],{6856:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>o});var s=i(5893),l=i(1151);const r={},c="SimpleImpl",t={id:"networking/simpleimpl",title:"SimpleImpl",description:"SimpleImpl \uc740 SimpleChannel\uc744 \uc0ac\uc6a9\ud558\ub294 \ud328\ud0b7 \ud1b5\uc2e0 \uc2dc\uc2a4\ud15c\uc5d0 \uc8fc\uc5b4\uc9c4 \uc774\ub984\uc785\ub2c8\ub2e4. \uc774 \uc2dc\uc2a4\ud15c\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \uac00\uc7a5 \uc27d\uac8c \uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac04 \ud1b5\uc2e0\uc744 \uad6c\ud604\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.",source:"@site/docs/networking/simpleimpl.md",sourceDirName:"networking",slug:"/networking/simpleimpl",permalink:"/Neoforge-Korean-Documentation/docs/networking/simpleimpl",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0",permalink:"/Neoforge-Korean-Documentation/docs/networking/entities"},next:{title:"Face Data",permalink:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/facedata"}},d={},o=[{value:"\uc2dc\uc791\ud558\uae30",id:"\uc2dc\uc791\ud558\uae30",level:2},{value:"\ubc84\uc804 \ud655\uc778",id:"\ubc84\uc804-\ud655\uc778",level:2},{value:"\ud328\ud0b7 \ub4f1\ub85d\ud558\uae30",id:"\ud328\ud0b7-\ub4f1\ub85d\ud558\uae30",level:2},{value:"\ud328\ud0b7 \ud578\ub4e4\ub9c1 \ud558\uae30",id:"\ud328\ud0b7-\ud578\ub4e4\ub9c1-\ud558\uae30",level:2},{value:"\ud328\ud0b7 \ubcf4\ub0b4\uae30",id:"\ud328\ud0b7-\ubcf4\ub0b4\uae30",level:2},{value:"\uc11c\ubc84\uc5d0 \ubcf4\ub0b4\uae30",id:"\uc11c\ubc84\uc5d0-\ubcf4\ub0b4\uae30",level:3},{value:"\ud074\ub77c\uc774\uc5b8\ud2b8(\ub4e4)\uc5d0 \ubcf4\ub0b4\uae30",id:"\ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\uc5d0-\ubcf4\ub0b4\uae30",level:3}];function a(e){const n={admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"simpleimpl",children:"SimpleImpl"}),"\n",(0,s.jsxs)(n.p,{children:["SimpleImpl \uc740 ",(0,s.jsx)(n.code,{children:"SimpleChannel"}),"\uc744 \uc0ac\uc6a9\ud558\ub294 \ud328\ud0b7 \ud1b5\uc2e0 \uc2dc\uc2a4\ud15c\uc5d0 \uc8fc\uc5b4\uc9c4 \uc774\ub984\uc785\ub2c8\ub2e4. \uc774 \uc2dc\uc2a4\ud15c\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \uac00\uc7a5 \uc27d\uac8c \uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac04 \ud1b5\uc2e0\uc744 \uad6c\ud604\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4."]}),"\n",(0,s.jsx)(n.h2,{id:"\uc2dc\uc791\ud558\uae30",children:"\uc2dc\uc791\ud558\uae30"}),"\n",(0,s.jsxs)(n.p,{children:["\uac00\uc7a5 \uccab\ubc88\uc9f8\ub85c ",(0,s.jsx)(n.code,{children:"SimpleChannel"})," \uac1d\uccb4\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc774\ub294 ",(0,s.jsx)(n.code,{children:"ModidPacketHandler"})," \ucc98\ub7fc \ub530\ub85c \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e0 \uc774\ud6c4 \uac70\uae30\uc11c \ud558\uc2dc\ub294 \uac83\uc744 \ucd94\ucc9c\ub4dc\ub9bd\ub2c8\ub2e4. \uc774\ub54c \ub9cc\ub4dc\uc2dc\ub294 ",(0,s.jsx)(n.code,{children:"SimpleChannel"})," \uac1d\uccb4\ub294 \ub2e4\uc74c\ucc98\ub7fc \uc815\uc801 \ud544\ub4dc\ub85c \ub9cc\ub4dc\uc138\uc694:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:'private static final String PROTOCOL_VERSION = "1";\npublic static final SimpleChannel INSTANCE = NetworkRegistry.newSimpleChannel(\n new ResourceLocation("mymodid", "main"),\n () -> PROTOCOL_VERSION,\n PROTOCOL_VERSION::equals,\n PROTOCOL_VERSION::equals\n);\n'})}),"\n",(0,s.jsxs)(n.p,{children:["\uccab\ubc88\uc9f8 \uc778\uc790\ub294 \ucc44\ub110\uc758 \uc774\ub984\uc785\ub2c8\ub2e4. \ub450\ubc88\uc9f8 \uc778\uc790\ub294 \ud604\uc7ac \ud504\ub85c\ud1a0\ucf5c \ubc84\uc804\uc744 \ubc18\ud658\ud558\ub294 ",(0,s.jsx)(n.code,{children:"Supplier"})," \uc785\ub2c8\ub2e4. \uc138\ubc88\uc9f8 \uc778\uc790\ub294 \uc5f0\uacb0\uc744 \uc2dc\ub3c4\ud558\ub294 \uce21\uc758 \ud504\ub85c\ud1a0\ucf5c \ubc84\uc804\uc774 \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ud638\ud658\ub418\ub294\uc9c0 \ud655\uc778\ud558\ub294 ",(0,s.jsx)(n.code,{children:"Predicate"}),", \ub124\ubc88\uc9f8 \uc778\uc790\ub294 \uc5f0\uacb0\uc744 \uc2dc\ub3c4\ud558\ub294 \uce21\uc758 \ud504\ub85c\ud1a0\ucf5c \ubc84\uc804\uc774 \uc11c\ubc84\uc640 \ud638\ud658\ub418\ub294\uc9c0 \ud655\uc778\ud558\ub294 ",(0,s.jsx)(n.code,{children:"Predicate"})," \uc785\ub2c8\ub2e4.\n\uc774 \uc608\uc81c\uc5d0\uc11c\ub294 \ub2e8\uc21c\ud558\uac8c \uc811\uc18d\ud558\ub294 \uce21\uc758 \ud504\ub85c\ud1a0\ucf5c \ubc84\uc804\uc774 ",(0,s.jsx)(n.code,{children:"PROTOCOL_VERSION"})," \uacfc \ub3d9\uc77c\ud55c\uc9c0 \ubc14\ub85c \ube44\uad50\ud569\ub2c8\ub2e4, \uc989 \uc774 \uacbd\uc6b0\uc5d0\uc11c\ub294 \uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 ",(0,s.jsx)(n.code,{children:"PROTOCOL_VERSION"})," \uc774 \uc77c\uce58\ud574\uc57c\ub9cc FML \uc774 \ub85c\uadf8\uc778\uc744 \ud5c8\uc6a9\ud574 \uc90d\ub2c8\ub2e4."]}),"\n",(0,s.jsx)(n.h2,{id:"\ubc84\uc804-\ud655\uc778",children:"\ubc84\uc804 \ud655\uc778"}),"\n",(0,s.jsxs)(n.p,{children:["\ub9cc\uc57d \ubaa8\ub4dc\uc5d0\uc11c \ub9cc\ub4e0 \ub124\ud2b8\uc6cc\ud06c \ucc44\ub110\uc774 \ubc18\ub300\ucabd\uc5d0 \uc5c6\uc5b4\ub3c4 \ub41c\ub2e4\uba74, \ub610\ub294 \uc544\uc608 \ud3ec\uc9c0\uac00 \uc5c6\uc5b4\ub3c4 \ub41c\ub2e4\uba74 \ubc84\uc804 \ud655\uc778\uc790\ub4e4 (",(0,s.jsx)(n.code,{children:"Predicate"}),' \ud30c\ub77c\ubbf8\ud130\ub4e4)\uc744 \uc801\uc808\ud558\uac8c \uc815\uc758\ud558\uc5ec \ucd94\uac00\uc801\uc778 "\uba54\ud0c0-\ubc84\uc804" \ub4e4 \ub610\ud55c \ucc98\ub9ac\ud558\ub3c4\ub85d \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4 (\uba54\ud0c0 \ubc84\uc804\ub4e4\uc740 ',(0,s.jsx)(n.code,{children:"NetworkRegistry"})," \uc5d0 \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4, \uc544\ub798 \ub098\uc640\uc788\ub294 \uac83\uc740 String \uc774 \uc544\ub2c8\uace0 \ud544\ub4dc \uc774\ub984\uc785\ub2c8\ub2e4). \uc774 \ubc84\uc804\ub4e4\uc758 \uc885\ub958\uc640 \uc758\ubbf8\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"ABSENT"})," - \ucc44\ub110\uc774 \ubc18\ub300\ucabd\uc5d0 \uc5c6\ub294 \uacbd\uc6b0, \uc774\ub54c \ubc18\ub300\ucabd\uc740 \ud3ec\uc9c0\uac00 \uc124\uce58\ub418\uc5b4 \uc788\uc73c\uba70 \ub2e4\ub978 \ubaa8\ub4dc\uac00 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"ACCEPTVANILLA"})," - \ubc18\ub300\ucabd\uc774 \ubc14\ub2d0\ub77c\uac70\ub098 \ud3ec\uc9c0\uac00 \uc5c6\ub294 \uacbd\uc6b0."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["\uc704 \ub450 \ud544\ub4dc\ub4e4\uc740 \ubc18\ub300\ucabd\uc5d0 \ucc44\ub110\uc774 \uc544\uc608 \uc5c6\uc5b4 \ubc84\uc804 \ud655\uc778\uc790\uc5d0\uc11c \ube44\uad50\ud560 \ud504\ub85c\ud1a0\ucf5c \ubc84\uc804\uc774 \uc5c6\ub294 \uacbd\uc6b0 \ub300\uc2e0 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc774 \ub450 \uacbd\uc6b0\uc5d0 \ub2e4 ",(0,s.jsx)(n.code,{children:"false"}),"\ub97c \ubc18\ud658\ud558\uba74 \ubc18\ub300\ucabd\uc5d0 \ucc44\ub110\uc774 \uc788\ub3c4\ub85d \uac15\uc81c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc704\uc5d0 \uc608\uc81c \ucf54\ub4dc\ub97c \uadf8\ub300\ub85c \ubcf5\uc0ac\ud574\uc11c \uc4f0\uc2dc\uba74 \ubc18\ub300\ucabd\uc5d0 \ucc44\ub110\uc774 \uc788\ub3c4\ub85d \uac15\uc81c\ud569\ub2c8\ub2e4. \uc774 \ubc84\uc804 \ud655\uc778 \ubc29\uc2dd\uc740 \uc11c\ubc84 \ubaa9\ub85d \ud654\uba74\uc5d0\uc11c \ud638\ud658\uc131 \uccb4\ud06c\ub97c \ud560 \ub54c\uc5d0\ub3c4 \uc0ac\uc6a9\ub429\ub2c8\ub2e4, \uc774\ub85c \uc778\ud574 \ucd08\ub85d\uc0c9 \uccb4\ud06c \ubaa8\uc591 \ub610\ub294 \ube68\uac04\uc0c9 X\uac00 \uc11c\ubc84 \ubaa9\ub85d\uc5d0 \ud45c\uc2dc\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,s.jsx)(n.h2,{id:"\ud328\ud0b7-\ub4f1\ub85d\ud558\uae30",children:"\ud328\ud0b7 \ub4f1\ub85d\ud558\uae30"}),"\n",(0,s.jsxs)(n.p,{children:["\uadf8 \ub2e4\uc74c\uc73c\ub85c \uc8fc\uace0 \ubc1b\uc744 \uba54\uc2dc\uc9c0\ub4e4\uc744 \uc815\uc758\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub294 ",(0,s.jsx)(n.code,{children:"INSTANCE#registerMessage"}),"\ub97c \uc774\uc6a9\ud574 \ud560 \uc218 \uc788\ub294\ub370, \uc774 \uba54\uc11c\ub4dc\ub294 5\uac1c\uc758 \uc778\uc790\ub97c \ubc1b\uc2b5\ub2c8\ub2e4:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\uccab\ubc88\uc9f8 \uc778\uc790\ub294 \ud328\ud0b7\uc744 \ud310\ubcc4\ud560 \ub54c \uc0ac\uc6a9\ud560 \ud310\ubcc4\uc790 \uc785\ub2c8\ub2e4. ID \ub77c\uace0 \ubd80\ub974\uae30\ub3c4 \ud569\ub2c8\ub2e4. \uc774 \ud310\ubcc4\uc790\ub294 \uac19\uc740 \ucc44\ub110\uc5d0\uc11c\ub294 \uace0\uc720\ud558\uc5ec\uc57c \ud569\ub2c8\ub2e4, \ub2e4\ub978 \ucc44\ub110\ub07c\ub9ac\ub294 \ud310\ubcc4\uc790\uac00 \uac19\uc544\ub3c4 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ud310\ubcc4\uc790\ub85c\ub294 \uc5b4\ub5a4 \uac12\uc744 \uc0ac\uc6a9\ud558\uc154\ub3c4 \uace0\uc720\ud558\uae30\ub9cc \ud55c\ub2e4\uba74 \uc0c1\uad00\uc5c6\uc73c\ub2c8 \uc9c0\uc5ed \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \uba54\uc2dc\uc9c0 \ud558\ub098 \ub4f1\ub85d\ud560 \ub54c\ub9c8\ub2e4 ",(0,s.jsx)(n.code,{children:"id++"}),"\ub97c \ud558\uc5ec \ub298 \uace0\uc720\ud55c \uac12\uc774 \ub098\uc624\ub3c4\ub85d \ud558\uc138\uc694."]}),"\n",(0,s.jsxs)(n.li,{children:["\ub450\ubc88\uc9f8 \uc778\uc790\ub294 \ud328\ud0b7 \ud074\ub798\uc2a4 ",(0,s.jsx)(n.code,{children:"MSG"})," \uc785\ub2c8\ub2e4."]}),"\n",(0,s.jsxs)(n.li,{children:["\uc138\ubc88\uc9f8 \uc778\uc790\ub294 ",(0,s.jsx)(n.code,{children:"BiConsumer"})," \uc785\ub2c8\ub2e4, \ud328\ud0b7 \ud074\ub798\uc2a4\ub97c ",(0,s.jsx)(n.code,{children:"FriendlyByteBuf"})," \uc5d0 \uc791\uc131\ud558\ub294 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4."]}),"\n",(0,s.jsxs)(n.li,{children:["\ub124\ubc88\uc9f8 \uc778\uc790\ub294 ",(0,s.jsx)(n.code,{children:"Function"})," \uc785\ub2c8\ub2e4, ",(0,s.jsx)(n.code,{children:"FriendlyByteBuf"})," \ub85c \ubd80\ud130 \ud328\ud0b7 \ud074\ub798\uc2a4\ub97c \uc77d\uc5b4\ub4e4\uc774\ub294 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4."]}),"\n",(0,s.jsxs)(n.li,{children:["\ub9c8\uc9c0\ub9c9 \uc778\uc790\ub294 ",(0,s.jsx)(n.code,{children:"BiConsumer>"})," \uc785\ub2c8\ub2e4, \ud328\ud0b7\uc744 \ubc1b\uc744\uc2dc \uc0ac\uc6a9\ud560 \ud578\ub4e4\ub7ec \uc785\ub2c8\ub2e4."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["\ub4a4 3\uac1c\uc758 \uc778\uc790\ub4e4\uc740 \uc815\uc801 \ub610\ub294 \uc778\uc2a4\ud134\uc2a4 \uba54\uc11c\ub4dc\uc758 \ub808\ud37c\ub7f0\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec\ub3c4 \ub429\ub2c8\ub2e4. \uae30\uc5b5\ud574\ub450\uc154\uc57c \ud560 \uc810\uc740 ",(0,s.jsx)(n.code,{children:"MSG#encode(FriendlyByteBuf)"})," \uc778\uc2a4\ud134\uc2a4 \uba54\uc11c\ub4dc\ub294 ",(0,s.jsx)(n.code,{children:"BiConsumer"})," \ub85c \uc0ac\uc6a9\ud558\uc2e4 \uc218 \uc788\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4; ",(0,s.jsx)(n.code,{children:"MSG"})," \uc758 \uc778\uc2a4\ud134\uc2a4\ub294 \uc554\ubb35\uc801\uc73c\ub85c ",(0,s.jsx)(n.code,{children:"BiConsumer"}),"\uc758 \uccab\ubc88\uc9f8 \uc778\uc790\ub85c \uc0ac\uc6a9\ub429\ub2c8\ub2e4."]}),"\n",(0,s.jsx)(n.h2,{id:"\ud328\ud0b7-\ud578\ub4e4\ub9c1-\ud558\uae30",children:"\ud328\ud0b7 \ud578\ub4e4\ub9c1 \ud558\uae30"}),"\n",(0,s.jsx)(n.p,{children:"\ud328\ud0b7 \ud578\ub4e4\ub7ec\uc5d0\ub294 \uba87\uac00\uc9c0 \uac15\uc870\ud560 \uc0ac\ud56d\uc774 \uc788\uc2b5\ub2c8\ub2e4: \ud328\ud0b7 \ud578\ub4e4\ub7ec\ub294 \uba54\uc2dc\uc9c0 \ud074\ub798\uc2a4 \ubfd0\ub9cc \uc544\ub2c8\ub77c, \ub124\ud2b8\uc6cc\ud06c \ucf58\ud14d\uc2a4\ud2b8\ub3c4 \uac19\uc774 \ubc18\uc2b5\ub2c8\ub2e4. \uc774 \ucf58\ud14d\uc2a4\ud2b8\ub97c \uc0ac\uc6a9\ud574\uc11c, (\uc11c\ubc84\uc5d0\uc11c \ud328\ud0b7\uc744 \ubc1b\uc558\ub2e4\uba74) \ud328\ud0b7\uc744 \ubcf4\ub0b8 \ud50c\ub808\uc774\uc5b4\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\uace0 \uc2a4\ub808\ub4dc \uc548\uc804\uc131\uc744 \uc900\uc218\ud574\uc57c\ub9cc \ud558\ub294 \uc791\uc5c5\ub4e4\uc744 \uc694\uccad\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"public static void handle(MyMessage msg, Supplier ctx) {\n ctx.get().enqueueWork(() -> {\n // \uc2a4\ub808\ub4dc \uc548\uc804\uc131\uc744 \uc900\uc218\ud574\uc57c \ud558\ub294 \uc791\uc5c5\ub4e4 (\ub300\ubd80\ubd84\uc758 \uc791\uc5c5\ub4e4\uc774 \uc774\uc5d0 \ud3ec\ud568\ub420 \uac83\uc785\ub2c8\ub2e4)\n ServerPlayerEntity sender = ctx.get().getSender(); // the client that sent this packet\n // \ubb34\uc5b8\uac00 \uc544\ubb34\uac70\ub098 \ub354 \ud558\uae30\n });\n ctx.get().setPacketHandled(true);\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["\uc11c\ubc84\uc5d0\uc11c \ud074\ub77c\uc774\uc5b8\ud2b8\ub85c \ubcf4\ub0b8 \ud328\ud0b7\uc740 \uc544\uc608 \ub2e4\ub978 \ud074\ub798\uc2a4\uc5d0\uc11c \ud578\ub4e4\ub9c1 \ud574\uc57c \ud558\uba70, ",(0,s.jsx)(n.code,{children:"DistExecutor#unsafeRunWhenOn"})," \uc640 \uac19\uc740 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud574 \ubb3c\ub9ac \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c\ub9cc \uc2e4\ud589\ub418\ub3c4\ub85d \ud558\uc5ec\uc57c \ud569\ub2c8\ub2e4."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"// In Packet class\npublic static void handle(MyClientMessage msg, Supplier ctx) {\n ctx.get().enqueueWork(() ->\n // \ud655\uc2e4\ud558\uac8c \ubb3c\ub9ac \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c\ub9cc \uc2e4\ud589\ub418\ub3c4\ub85d \ud569\ub2c8\ub2e4.\n DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> ClientPacketHandlerClass.handlePacket(msg, ctx))\n );\n ctx.get().setPacketHandled(true);\n}\n\n// ClientPacketHandlerClass \ub0b4\uc6a9\npublic static void handlePacket(MyClientMessage msg, Supplier ctx) {\n // \ubb34\uc5b8\uac00 \ud558\uae30\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"#setPacketHandled"}),"\ub97c \uc5ec\ub7ec\ubc88 \uc0ac\uc6a9\ud558\ub294 \uac83\uc744 \ubcf4\uc168\uc744\ud150\ub370, \uc774\ub294 \ub124\ud2b8\uc6cc\ud06c \uc2dc\uc2a4\ud15c\uc5d0\uac8c \ud328\ud0b7\uc774 \uc131\uacf5\uc801\uc73c\ub85c \ucc98\ub9ac\ub418\uc5c8\uc74c\uc744 \uc54c\ub9ac\ub294 \uac83\uc785\ub2c8\ub2e4."]}),"\n",(0,s.jsxs)(n.admonition,{type:"caution",children:[(0,s.jsx)(n.p,{children:"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8 1.8 \uc774\ud6c4\ub85c\ub294 \ud328\ud0b7\uc740 \ub124\ud2b8\uc6cc\ud06c \uc2a4\ub808\ub4dc\uc5d0\uc11c \ucc98\ub9ac\ub429\ub2c8\ub2e4."}),(0,s.jsxs)(n.p,{children:["\uc989 \ud328\ud0b7 \ud578\ub4e4\ub7ec\ub294 \uac8c\uc784\uacfc \uc9c1\uc811\uc801\uc73c\ub85c \uc0c1\ud638\uc791\uc6a9\ud560 \uc218 ",(0,s.jsx)(n.em,{children:"\uc5c6\uc2b5\ub2c8\ub2e4"}),". \ud3ec\uc9c0\uc5d0\uc11c\ub294 ",(0,s.jsx)(n.code,{children:"NetworkEvent$Context"}),"\ub97c \ud1b5\ud574 \uac04\ub2e8\ud558\uac8c \ucf54\ub4dc\ub97c \uba54\uc778 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\ub294 \ub2e8\uc21c\ud558\uac8c ",(0,s.jsx)(n.code,{children:"NetworkEvent$Context#enqueueWork(Runnable)"}),"\uc744 \ud638\ucd9c\ud558\ub294 \uac83\uc778\ub370, \uba54\uc778 \uc2a4\ub808\ub4dc\ub294 \uc774\ub54c \uc804\ub2ec\ub41c ",(0,s.jsx)(n.code,{children:"Runnable"}),"\uc744 \ube60\ub978 \uc2dc\uc77c\ub0b4\uc5d0 \uc2e4\ud589\ud569\ub2c8\ub2e4."]})]}),"\n",(0,s.jsxs)(n.admonition,{type:"caution",children:[(0,s.jsx)(n.p,{children:"\uc11c\ubc84\uc5d0\uc11c \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \ubcf4\ub0b8 \ud328\ud0b7\uc744 \ucc98\ub9ac\ud558\ub294 \ud328\ud0b7 \ud578\ub4e4\ub7ec\ub97c \ub9cc\ub4e4 \ub54c \uc8fc\uc758\ud558\ub3c4\ub85d \ud558\uc138\uc694, \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc11c\ubc84\uc5d0\uc11c \uc608\uae30\uce58 \ubabb\ud55c \ub370\uc774\ud130\ub97c \ubcf4\ub0b4 \ucde8\uc57d\uc810\uc744 \uc545\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),(0,s.jsxs)(n.p,{children:["\uac00\uc7a5 \ud754\ud55c \uc0ac\ub840\ub294 ",(0,s.jsx)(n.strong,{children:"\ubb34\uc791\uc704 \uccad\ud06c \uc0dd\uc131"})," \uc785\ub2c8\ub2e4. \uc11c\ubc84\uac00 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \ubcf4\ub0b8 \ube14\ub85d\uc758 \uc704\uce58\ub97c \uadf8\ub300\ub85c \ubbff\uace0 \uc774\ub97c \uc774\uc6a9\ud574 \ube14\ub85d/\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \uc811\uadfc\ud558\ub824\uace0 \ud560 \ub54c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294\ub370, \ub9cc\uc57d \uc544\uc9c1 \uccad\ud06c\uac00 \uba54\ubaa8\ub9ac \uc0c1\uc5d0 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294 \uacf3\uc5d0 \uc788\ub294 \ube14\ub85d/\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \uc811\uadfc\ud558\ub824\uace0 \ud558\uba74 \uc11c\ubc84\uc5d0\uc11c\ub294 \ub514\uc2a4\ud06c\uc5d0\uc11c \ubd88\ub7ec\uc624\uac70\ub098 \uc0c8\ub85c \uccad\ud06c\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc774\ub294 ",(0,s.jsx)(n.strong,{children:"\uc2ec\uac01\ud55c"})," \ubcf4\uc548 \ucde8\uc57d\uc810\uc911 \ud558\ub098\ub85c, \ud754\uc801\ub3c4 \ub0a8\uae30\uc9c0 \uc54a\uace0 \uc11c\ubc84 \uc131\ub2a5\uacfc \ub514\uc2a4\ud06c \uc6a9\ub7c9\uc5d0 ",(0,s.jsx)(n.strong,{children:"\ub9e4\uc6b0 \ud070"})," \ud53c\ud574\ub97c \ub07c\uce60 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),(0,s.jsxs)(n.p,{children:["\uc774\ub7ec\ud55c \uacf5\uaca9\uc744 \ub9c9\uae30 \uc704\ud574 \uc77c\ubc18\uc801\uc73c\ub85c \ub9ce\uc774 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc740 ",(0,s.jsx)(n.code,{children:"Level#hasChunkAt"})," \uc774 \ucc38\uc778 \uacf3\ub9cc\uc758 \ube14\ub85d/\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \uc811\uadfc\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uba54\ubaa8\ub9ac\uc0c1\uc5d0 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294 \uccad\ud06c\uc5d0 \uc811\uadfc\ud558\ub294 \uac83\uc744 \ub9c9\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]})]}),"\n",(0,s.jsx)(n.h2,{id:"\ud328\ud0b7-\ubcf4\ub0b4\uae30",children:"\ud328\ud0b7 \ubcf4\ub0b4\uae30"}),"\n",(0,s.jsx)(n.h3,{id:"\uc11c\ubc84\uc5d0-\ubcf4\ub0b4\uae30",children:"\uc11c\ubc84\uc5d0 \ubcf4\ub0b4\uae30"}),"\n",(0,s.jsxs)(n.p,{children:["\uc11c\ubc84\ub85c \ud328\ud0b7\uc744 \ubcf4\ub0b4\ub294 \ubc29\ubc95\uc740 \ud558\ub098\ubc16\uc5d0 \uc5c6\uc2b5\ub2c8\ub2e4. \uc65c\ub0d0\ud558\uba74 \ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \ud55c\ubc88\uc5d0 ",(0,s.jsx)(n.em,{children:"\ud558\ub098\uc758"})," \uc11c\ubc84\uc5d0\ub9cc \uc811\uc18d\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \ud328\ud0b7\uc744 \ubcf4\ub0b4\uae30 \uc704\ud574\uc11c\ub294 \uc774\uc804\uc5d0 \uc815\uc758\ud55c ",(0,s.jsx)(n.code,{children:"SimpleChannel"}),"\uc744 \ub2e4\uc2dc \uc0ac\uc6a9\ud560 \uac83\uc778\ub370, \ub2e8\uc21c\ud788 ",(0,s.jsx)(n.code,{children:"INSTANCE.sendToServer(new MyMessage())"}),"\ub97c \ud638\ucd9c\ud558\uc138\uc694. \uc774 \uba54\uc2dc\uc9c0\ub294 \ud328\ud0b7\uc5d0 \uc54c\ub9de\ub294 \ud578\ub4e4\ub7ec\ub85c (\ub9cc\uc57d \uc788\ub2e4\uba74)\ubcf4\ub0b4\uc9d1\ub2c8\ub2e4."]}),"\n",(0,s.jsx)(n.h3,{id:"\ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\uc5d0-\ubcf4\ub0b4\uae30",children:"\ud074\ub77c\uc774\uc5b8\ud2b8(\ub4e4)\uc5d0 \ubcf4\ub0b4\uae30"}),"\n",(0,s.jsxs)(n.p,{children:["\ud328\ud0b7\uc744 ",(0,s.jsx)(n.code,{children:"SimpleChannel"}),"\uc744 \uc0ac\uc6a9\ud574 \uc9c1\uc811\uc801\uc73c\ub85c \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uc804\uc1a1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"INSTANCE.sendTo(new MyClientMessage(), serverPlayer.connection.getConnection(), NetworkDirection.PLAY_TO_CLIENT)"}),". \uadf8\ub7ec\ub098 \uc774 \ubc29\uc2dd\uc740 \uc0ac\uc6a9\ud558\uae30 \ubd88\ud3b8\ud560 \uc218 \uc788\ub294\ub370, \ud3ec\uc9c0\uc5d0\uc11c\ub294 \uc870\uae08 \ub354 \uc27d\uac8c \ud328\ud0b7\uc744 \ubcf4\ub0b4\uc8fc\ub294 \ud568\uc218\ub4e4\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:"// \ud50c\ub808\uc774\uc5b4 \ud55c\uba85\uc5d0\uac8c \ubcf4\ub0b4\uae30\nINSTANCE.send(PacketDistributor.PLAYER.with(serverPlayer), new MyMessage());\n\n// \uc774 \ub808\ubca8 \uccad\ud06c\ub97c \ucd94\uc801\ud558\uace0 \uc788\ub294 \ubaa8\ub4e0 \ud50c\ub808\uc774\uc5b4\uc5d0\uac8c \ubcf4\ub0b4\uae30\nINSTANCE.send(PacketDistributor.TRACKING_CHUNK.with(levelChunk), new MyMessage());\n\n// \ubaa8\ub4e0 \ud50c\ub808\uc774\uc5b4\uc5d0\uac8c \ubcf4\ub0b4\uae30\nINSTANCE.send(PacketDistributor.ALL.noArg(), new MyMessage());\n"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"PacketDistributor"})," \ub294 \uc704\uc5d0 \ub098\uc628 \uac83 \ub9d0\uace0\ub3c4 \ub354 \ub9ce\uc740 \uc885\ub958\uac00 \uc788\uc2b5\ub2c8\ub2e4; ",(0,s.jsx)(n.code,{children:"PacketDistributor"})," \ud074\ub798\uc2a4\uc758 \ubb38\uc11c\ub97c \ud1b5\ud574 \ub354 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]})]})}function h(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>t,a:()=>c});var s=i(7294);const l={},r=s.createContext(l);function c(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:c(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/904d57f9.1c3ad8d3.js b/assets/js/904d57f9.1c3ad8d3.js new file mode 100644 index 000000000..6879d421d --- /dev/null +++ b/assets/js/904d57f9.1c3ad8d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[3105],{5501:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>d});var a=t(5893),i=t(1151);const l={},o="Face Data",s={id:"rendering/modelextensions/facedata",title:"Face Data",description:"In a vanilla \"elements\" model, additional data about an element's faces can be specified at either the element level or the face level. Faces which do not specify their own face data will fall back to the element's face data or a default if no face data is specified at the element level.",source:"@site/docs/rendering/modelextensions/facedata.md",sourceDirName:"rendering/modelextensions",slug:"/rendering/modelextensions/facedata",permalink:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/facedata",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\uc0c8\ub85c\uc6b4 \ud328\ud0b7 \ub4f1\ub85d\ud558\uae30",permalink:"/Neoforge-Korean-Documentation/docs/networking/payload"},next:{title:"Render Types",permalink:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/rendertypes"}},r={},d=[{value:"Elements Model",id:"elements-model",level:2},{value:"Generated Item Model",id:"generated-item-model",level:2},{value:"Parameters",id:"parameters",level:2},{value:"Color",id:"color",level:3},{value:"Block and Sky Light",id:"block-and-sky-light",level:3},{value:"Ambient Occlusion",id:"ambient-occlusion",level:3}];function c(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h1,{id:"face-data",children:"Face Data"}),"\n",(0,a.jsx)(n.p,{children:"In a vanilla \"elements\" model, additional data about an element's faces can be specified at either the element level or the face level. Faces which do not specify their own face data will fall back to the element's face data or a default if no face data is specified at the element level."}),"\n",(0,a.jsxs)(n.p,{children:["To use this extension for a generated item model, the model must be loaded through the ",(0,a.jsx)(n.code,{children:"forge:item_layers"})," model loader due to the vanilla item model generator not being extended to read this additional data."]}),"\n",(0,a.jsx)(n.p,{children:"All values of the face data are optional."}),"\n",(0,a.jsx)(n.h2,{id:"elements-model",children:"Elements Model"}),"\n",(0,a.jsx)(n.p,{children:'In vanilla "elements" models, the face data applies to the face it is specified in or all faces of the element it is specified in which don\'t have their own face data.'}),"\n",(0,a.jsx)(n.admonition,{type:"note",children:(0,a.jsxs)(n.p,{children:["If ",(0,a.jsx)(n.code,{children:"forge_data"})," is specified on a face, it will not inherit any parameters from the element-level ",(0,a.jsx)(n.code,{children:"forge_data"})," declaration."]})}),"\n",(0,a.jsx)(n.p,{children:"The additional data can be specified in the two ways shown in this example:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-js",children:'{\n "elements": [\n {\n "forge_data": {\n "color": "0xFFFF0000",\n "block_light": 15,\n "sky_light": 15,\n "ambient_occlusion": false\n },\n "faces": {\n "north": {\n "forge_data": {\n "color": "0xFFFF0000",\n "block_light": 15,\n "sky_light": 15,\n "ambient_occlusion": false\n },\n // ...\n },\n // ...\n },\n // ...\n }\n ]\n}\n'})}),"\n",(0,a.jsx)(n.h2,{id:"generated-item-model",children:"Generated Item Model"}),"\n",(0,a.jsxs)(n.p,{children:["In item models generated using the ",(0,a.jsx)(n.code,{children:"forge:item_layers"})," loader, face data is specified for each texture layer and applies to all of the geometry (front/back facing quads and edge quads)."]}),"\n",(0,a.jsxs)(n.p,{children:["The ",(0,a.jsx)(n.code,{children:"forge_data"})," field must be located at the top level of the model JSON, with each key-value pair associating a face data object to a layer index."]}),"\n",(0,a.jsx)(n.p,{children:"In the following example, layer 1 will be tinted red and glow at full brightness:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-js",children:'{\n "textures": {\n "layer0": "minecraft:item/stick",\n "layer1": "minecraft:item/glowstone_dust"\n },\n "forge_data": {\n "1": {\n "color": "0xFFFF0000",\n "block_light": 15,\n "sky_light": 15,\n "ambient_occlusion": false\n }\n }\n}\n'})}),"\n",(0,a.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,a.jsx)(n.h3,{id:"color",children:"Color"}),"\n",(0,a.jsxs)(n.p,{children:["Specifying a color value with the ",(0,a.jsx)(n.code,{children:"color"})," entry will apply that color as a tint to the quads. Defaults to ",(0,a.jsx)(n.code,{children:"0xFFFFFFFF"})," (white, fully opaque). The color must be in the ",(0,a.jsx)(n.code,{children:"ARGB"})," format packed into a 32-bit integer and can be specified as either a hexadecimal string (",(0,a.jsx)(n.code,{children:'"0xAARRGGBB"'}),") or as a decimal integer literal (JSON does not support hexadecimal integer literals)."]}),"\n",(0,a.jsx)(n.admonition,{type:"caution",children:(0,a.jsx)(n.p,{children:"The four color components are multiplied with the texture's pixels. Omitting the alpha component is equivalent to making it 0, which will make the geometry fully transparent."})}),"\n",(0,a.jsxs)(n.p,{children:["This can be used as a replacement for tinting with ",(0,a.jsxs)(n.a,{href:"/Neoforge-Korean-Documentation/docs/resources/client/models/tinting",children:[(0,a.jsx)(n.code,{children:"BlockColor"})," and ",(0,a.jsx)(n.code,{children:"ItemColor"})]})," if the color values are constant."]}),"\n",(0,a.jsx)(n.h3,{id:"block-and-sky-light",children:"Block and Sky Light"}),"\n",(0,a.jsxs)(n.p,{children:["Specifying a block and/or sky light value with the ",(0,a.jsx)(n.code,{children:"block_light"})," and ",(0,a.jsx)(n.code,{children:"sky_light"})," entry respectively will override the respective light value of the quads. Both values default to 0. The values must be in the range 0-15 (inclusive) and are treated as a minimum value for the respective light type when the face is rendered, meaning that a higher in-world value of the respective light type will override the specified value."]}),"\n",(0,a.jsx)(n.p,{children:"The specified light values are purely client-side and affect neither the server's light level nor the brightness of surrounding blocks."}),"\n",(0,a.jsx)(n.h3,{id:"ambient-occlusion",children:"Ambient Occlusion"}),"\n",(0,a.jsxs)(n.p,{children:["Specifying the ",(0,a.jsx)(n.code,{children:"ambient_occlusion"})," flag will configure ",(0,a.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Ambient_occlusion",children:"AO"})," for the quads. Defaults to ",(0,a.jsx)(n.code,{children:"true"}),". The behaviour of this flag is equivalent to the top-level ",(0,a.jsx)(n.code,{children:"ambientocclusion"})," flag of the vanilla format."]}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.img,{src:"/img/ambientocclusion_annotated.png",alt:"Ambient occlusion in action"}),(0,a.jsx)(n.br,{}),"\n",(0,a.jsx)(n.em,{children:"Ambient occlusion enabled on the left and disabled on the right, demonstrated with the Smooth Lighting graphics setting"})]}),"\n",(0,a.jsxs)(n.admonition,{type:"note",children:[(0,a.jsx)(n.p,{children:"If the top-level AO flag is set to false, specifying this flag as true on an element or face won't be able to override the top-level flag."}),(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-js",children:'{\n "ambientocclusion": false,\n "elements": [\n {\n "forge_data": {\n "ambient_occlusion": true // Has no effect\n }\n }\n ]\n}\n'})})]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>o});var a=t(7294);const i={},l=a.createContext(i);function o(e){const n=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/904d57f9.b5e3bde9.js b/assets/js/904d57f9.b5e3bde9.js deleted file mode 100644 index 8650fb0a7..000000000 --- a/assets/js/904d57f9.b5e3bde9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[3105],{5501:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>c});var a=t(5893),i=t(1151);const l={},o="Face Data",s={id:"rendering/modelextensions/facedata",title:"Face Data",description:"In a vanilla \"elements\" model, additional data about an element's faces can be specified at either the element level or the face level. Faces which do not specify their own face data will fall back to the element's face data or a default if no face data is specified at the element level.",source:"@site/docs/rendering/modelextensions/facedata.md",sourceDirName:"rendering/modelextensions",slug:"/rendering/modelextensions/facedata",permalink:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/facedata",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"SimpleImpl",permalink:"/Neoforge-Korean-Documentation/docs/networking/simpleimpl"},next:{title:"Render Types",permalink:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/rendertypes"}},r={},c=[{value:"Elements Model",id:"elements-model",level:2},{value:"Generated Item Model",id:"generated-item-model",level:2},{value:"Parameters",id:"parameters",level:2},{value:"Color",id:"color",level:3},{value:"Block and Sky Light",id:"block-and-sky-light",level:3},{value:"Ambient Occlusion",id:"ambient-occlusion",level:3}];function d(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h1,{id:"face-data",children:"Face Data"}),"\n",(0,a.jsx)(n.p,{children:"In a vanilla \"elements\" model, additional data about an element's faces can be specified at either the element level or the face level. Faces which do not specify their own face data will fall back to the element's face data or a default if no face data is specified at the element level."}),"\n",(0,a.jsxs)(n.p,{children:["To use this extension for a generated item model, the model must be loaded through the ",(0,a.jsx)(n.code,{children:"forge:item_layers"})," model loader due to the vanilla item model generator not being extended to read this additional data."]}),"\n",(0,a.jsx)(n.p,{children:"All values of the face data are optional."}),"\n",(0,a.jsx)(n.h2,{id:"elements-model",children:"Elements Model"}),"\n",(0,a.jsx)(n.p,{children:'In vanilla "elements" models, the face data applies to the face it is specified in or all faces of the element it is specified in which don\'t have their own face data.'}),"\n",(0,a.jsx)(n.admonition,{type:"note",children:(0,a.jsxs)(n.p,{children:["If ",(0,a.jsx)(n.code,{children:"forge_data"})," is specified on a face, it will not inherit any parameters from the element-level ",(0,a.jsx)(n.code,{children:"forge_data"})," declaration."]})}),"\n",(0,a.jsx)(n.p,{children:"The additional data can be specified in the two ways shown in this example:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-js",children:'{\n "elements": [\n {\n "forge_data": {\n "color": "0xFFFF0000",\n "block_light": 15,\n "sky_light": 15,\n "ambient_occlusion": false\n },\n "faces": {\n "north": {\n "forge_data": {\n "color": "0xFFFF0000",\n "block_light": 15,\n "sky_light": 15,\n "ambient_occlusion": false\n },\n // ...\n },\n // ...\n },\n // ...\n }\n ]\n}\n'})}),"\n",(0,a.jsx)(n.h2,{id:"generated-item-model",children:"Generated Item Model"}),"\n",(0,a.jsxs)(n.p,{children:["In item models generated using the ",(0,a.jsx)(n.code,{children:"forge:item_layers"})," loader, face data is specified for each texture layer and applies to all of the geometry (front/back facing quads and edge quads)."]}),"\n",(0,a.jsxs)(n.p,{children:["The ",(0,a.jsx)(n.code,{children:"forge_data"})," field must be located at the top level of the model JSON, with each key-value pair associating a face data object to a layer index."]}),"\n",(0,a.jsx)(n.p,{children:"In the following example, layer 1 will be tinted red and glow at full brightness:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-js",children:'{\n "textures": {\n "layer0": "minecraft:item/stick",\n "layer1": "minecraft:item/glowstone_dust"\n },\n "forge_data": {\n "1": {\n "color": "0xFFFF0000",\n "block_light": 15,\n "sky_light": 15,\n "ambient_occlusion": false\n }\n }\n}\n'})}),"\n",(0,a.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,a.jsx)(n.h3,{id:"color",children:"Color"}),"\n",(0,a.jsxs)(n.p,{children:["Specifying a color value with the ",(0,a.jsx)(n.code,{children:"color"})," entry will apply that color as a tint to the quads. Defaults to ",(0,a.jsx)(n.code,{children:"0xFFFFFFFF"})," (white, fully opaque). The color must be in the ",(0,a.jsx)(n.code,{children:"ARGB"})," format packed into a 32-bit integer and can be specified as either a hexadecimal string (",(0,a.jsx)(n.code,{children:'"0xAARRGGBB"'}),") or as a decimal integer literal (JSON does not support hexadecimal integer literals)."]}),"\n",(0,a.jsx)(n.admonition,{type:"caution",children:(0,a.jsx)(n.p,{children:"The four color components are multiplied with the texture's pixels. Omitting the alpha component is equivalent to making it 0, which will make the geometry fully transparent."})}),"\n",(0,a.jsxs)(n.p,{children:["This can be used as a replacement for tinting with ",(0,a.jsxs)(n.a,{href:"/Neoforge-Korean-Documentation/docs/resources/client/models/tinting",children:[(0,a.jsx)(n.code,{children:"BlockColor"})," and ",(0,a.jsx)(n.code,{children:"ItemColor"})]})," if the color values are constant."]}),"\n",(0,a.jsx)(n.h3,{id:"block-and-sky-light",children:"Block and Sky Light"}),"\n",(0,a.jsxs)(n.p,{children:["Specifying a block and/or sky light value with the ",(0,a.jsx)(n.code,{children:"block_light"})," and ",(0,a.jsx)(n.code,{children:"sky_light"})," entry respectively will override the respective light value of the quads. Both values default to 0. The values must be in the range 0-15 (inclusive) and are treated as a minimum value for the respective light type when the face is rendered, meaning that a higher in-world value of the respective light type will override the specified value."]}),"\n",(0,a.jsx)(n.p,{children:"The specified light values are purely client-side and affect neither the server's light level nor the brightness of surrounding blocks."}),"\n",(0,a.jsx)(n.h3,{id:"ambient-occlusion",children:"Ambient Occlusion"}),"\n",(0,a.jsxs)(n.p,{children:["Specifying the ",(0,a.jsx)(n.code,{children:"ambient_occlusion"})," flag will configure ",(0,a.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Ambient_occlusion",children:"AO"})," for the quads. Defaults to ",(0,a.jsx)(n.code,{children:"true"}),". The behaviour of this flag is equivalent to the top-level ",(0,a.jsx)(n.code,{children:"ambientocclusion"})," flag of the vanilla format."]}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.img,{src:"/img/ambientocclusion_annotated.png",alt:"Ambient occlusion in action"}),(0,a.jsx)(n.br,{}),"\n",(0,a.jsx)(n.em,{children:"Ambient occlusion enabled on the left and disabled on the right, demonstrated with the Smooth Lighting graphics setting"})]}),"\n",(0,a.jsxs)(n.admonition,{type:"note",children:[(0,a.jsx)(n.p,{children:"If the top-level AO flag is set to false, specifying this flag as true on an element or face won't be able to override the top-level flag."}),(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-js",children:'{\n "ambientocclusion": false,\n "elements": [\n {\n "forge_data": {\n "ambient_occlusion": true // Has no effect\n }\n }\n ]\n}\n'})})]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>o});var a=t(7294);const i={},l=a.createContext(i);function o(e){const n=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.74501398.js b/assets/js/935f2afb.74501398.js deleted file mode 100644 index c089651b9..000000000 --- a/assets/js/935f2afb.74501398.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"1.20.x","banner":null,"badge":true,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"mainSidebar":[{"type":"category","label":"Getting Started with Neo","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\ubaa8\ub4dc \ud30c\uc77c","href":"/Neoforge-Korean-Documentation/docs/gettingstarted/modfiles","docId":"gettingstarted/modfiles","unlisted":false},{"type":"link","label":"\ubaa8\ub4dc \uad6c\uc870\ud654","href":"/Neoforge-Korean-Documentation/docs/gettingstarted/structuring","docId":"gettingstarted/structuring","unlisted":false},{"type":"link","label":"\ubc84\uc804 \uaddc\uc57d","href":"/Neoforge-Korean-Documentation/docs/gettingstarted/versioning","docId":"gettingstarted/versioning","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/gettingstarted/"},{"type":"category","label":"\uc2ec\ud654 \uc8fc\uc81c","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\uc811\uadfc \uc81c\uc5b4\uc790 \ubcc0\ud615\ud558\uae30","href":"/Neoforge-Korean-Documentation/docs/advanced/accesstransformers","docId":"advanced/accesstransformers","unlisted":false}]},{"type":"category","label":"\ube14\ub85d \uc5d4\ud2f0\ud2f0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"BlockEntityRenderer","href":"/Neoforge-Korean-Documentation/docs/blockentities/ber","docId":"blockentities/ber","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/blockentities/"},{"type":"category","label":"\ube14\ub85d","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\ube14\ub85d\uc758 \uc0c1\ud0dc","href":"/Neoforge-Korean-Documentation/docs/blocks/states","docId":"blocks/states","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/blocks/"},{"type":"category","label":"\ud575\uc2ec \uac1c\ub150\ub4e4","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\uc774\ubca4\ud2b8","href":"/Neoforge-Korean-Documentation/docs/concepts/events","docId":"concepts/events","unlisted":false},{"type":"link","label":"\ub2e4\uad6d\uc5b4 \uc9c0\uc6d0","href":"/Neoforge-Korean-Documentation/docs/concepts/internationalization","docId":"concepts/internationalization","unlisted":false},{"type":"link","label":"\ubaa8\ub4dc \uc0dd\uba85\uc8fc\uae30","href":"/Neoforge-Korean-Documentation/docs/concepts/lifecycle","docId":"concepts/lifecycle","unlisted":false},{"type":"link","label":"\ub808\uc9c0\uc2a4\ud2b8\ub9ac","href":"/Neoforge-Korean-Documentation/docs/concepts/registries","docId":"concepts/registries","unlisted":false},{"type":"link","label":"\ub9ac\uc18c\uc2a4\ub780","href":"/Neoforge-Korean-Documentation/docs/concepts/resources","docId":"concepts/resources","unlisted":false},{"type":"link","label":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \uc0ac\uc774\ub4dc","href":"/Neoforge-Korean-Documentation/docs/concepts/sides","docId":"concepts/sides","unlisted":false}]},{"type":"category","label":"\ub370\uc774\ud130 \uc0dd\uc131\uae30","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"\ud074\ub77c\uc774\uc5b8\ud2b8","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Language Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/client/localization","docId":"datagen/client/localization","unlisted":false},{"type":"link","label":"Model Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/client/modelproviders","docId":"datagen/client/modelproviders","unlisted":false},{"type":"link","label":"Sound Definition Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/client/sounds","docId":"datagen/client/sounds","unlisted":false}]},{"type":"category","label":"\uc11c\ubc84","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Advancement Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/advancements","docId":"datagen/server/advancements","unlisted":false},{"type":"link","label":"Datapack Registry Object Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/datapackregistries","docId":"datagen/server/datapackregistries","unlisted":false},{"type":"link","label":"Global Loot Modifier Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/glm","docId":"datagen/server/glm","unlisted":false},{"type":"link","label":"Loot Table Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/loottables","docId":"datagen/server/loottables","unlisted":false},{"type":"link","label":"Recipe Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/recipes","docId":"datagen/server/recipes","unlisted":false},{"type":"link","label":"Tag Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/tags","docId":"datagen/server/tags","unlisted":false}]}],"href":"/Neoforge-Korean-Documentation/docs/datagen/"},{"type":"category","label":"\ucd94\uac00 \ub370\uc774\ud130 \uc800\uc7a5","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\ub370\uc774\ud130 \ubd80\ucc29","href":"/Neoforge-Korean-Documentation/docs/datastorage/attachments","docId":"datastorage/attachments","unlisted":false},{"type":"link","label":"\uce90\ud328\ube4c\ub9ac\ud2f0","href":"/Neoforge-Korean-Documentation/docs/datastorage/capabilities","docId":"datastorage/capabilities","unlisted":false},{"type":"link","label":"\ucf54\ub371","href":"/Neoforge-Korean-Documentation/docs/datastorage/codecs","docId":"datastorage/codecs","unlisted":false},{"type":"link","label":"\ub808\ubca8 \uc800\uc7a5 \ub370\uc774\ud130","href":"/Neoforge-Korean-Documentation/docs/datastorage/saveddata","docId":"datastorage/saveddata","unlisted":false}]},{"type":"category","label":"\uc778\uac8c\uc784 \ud6a8\uacfc","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Particles","href":"/Neoforge-Korean-Documentation/docs/gameeffects/particles","docId":"gameeffects/particles","unlisted":false},{"type":"link","label":"\ud6a8\uacfc\uc74c","href":"/Neoforge-Korean-Documentation/docs/gameeffects/sounds","docId":"gameeffects/sounds","unlisted":false}]},{"type":"category","label":"GUIs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\uba54\ub274","href":"/Neoforge-Korean-Documentation/docs/gui/menus","docId":"gui/menus","unlisted":false},{"type":"link","label":"Screens","href":"/Neoforge-Korean-Documentation/docs/gui/screens","docId":"gui/screens","unlisted":false}]},{"type":"category","label":"\uc544\uc774\ud15c","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"BlockEntityWithoutLevelRenderer","href":"/Neoforge-Korean-Documentation/docs/items/bewlr","docId":"items/bewlr","unlisted":false},{"type":"link","label":"\uc0c1\ud638\uc791\uc6a9 \ud30c\uc774\ud504\ub77c\uc778","href":"/Neoforge-Korean-Documentation/docs/items/interactionpipeline","docId":"items/interactionpipeline","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/items/"},{"type":"category","label":"\uad6c\ubc84\uc804","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8 1.20\uc73c\ub85c \uc5c5\uadf8\ub808\uc774\ub4dc \ud558\uae30","href":"/Neoforge-Korean-Documentation/docs/legacy/porting","docId":"legacy/porting","unlisted":false}]},{"type":"category","label":"\uae30\ud0c0 \uae30\ub2a5","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Text Components","href":"/Neoforge-Korean-Documentation/docs/misc/components","docId":"misc/components","unlisted":false},{"type":"link","label":"\ubaa8\ub4dc \uc124\uc815 \ud30c\uc77c","href":"/Neoforge-Korean-Documentation/docs/misc/config","docId":"misc/config","unlisted":false},{"type":"link","label":"\ub514\ubc84\uadf8 \ud504\ub85c\ud30c\uc77c\ub7ec","href":"/Neoforge-Korean-Documentation/docs/misc/debugprofiler","docId":"misc/debugprofiler","unlisted":false},{"type":"link","label":"\uac8c\uc784 \ud14c\uc2a4\ud2b8","href":"/Neoforge-Korean-Documentation/docs/misc/gametest","docId":"misc/gametest","unlisted":false},{"type":"link","label":"\ud0a4 \ub9e4\ud551","href":"/Neoforge-Korean-Documentation/docs/misc/keymappings","docId":"misc/keymappings","unlisted":false},{"type":"link","label":"\ud3ec\uc9c0 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8 \uc2dc\uc2a4\ud15c","href":"/Neoforge-Korean-Documentation/docs/misc/updatechecker","docId":"misc/updatechecker","unlisted":false}]},{"type":"category","label":"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0","href":"/Neoforge-Korean-Documentation/docs/networking/entities","docId":"networking/entities","unlisted":false},{"type":"link","label":"SimpleImpl","href":"/Neoforge-Korean-Documentation/docs/networking/simpleimpl","docId":"networking/simpleimpl","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/networking/"},{"type":"category","label":"Rendering","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Model Extensions","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Face Data","href":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/facedata","docId":"rendering/modelextensions/facedata","unlisted":false},{"type":"link","label":"Render Types","href":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/rendertypes","docId":"rendering/modelextensions/rendertypes","unlisted":false},{"type":"link","label":"Root Transforms","href":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/transforms","docId":"rendering/modelextensions/transforms","unlisted":false},{"type":"link","label":"Part Visibility","href":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/visibility","docId":"rendering/modelextensions/visibility","unlisted":false}]},{"type":"category","label":"Custom Model Loaders","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"BakedModel","href":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/bakedmodel","docId":"rendering/modelloaders/bakedmodel","unlisted":false},{"type":"link","label":"ItemOverrides","href":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/itemoverrides","docId":"rendering/modelloaders/itemoverrides","unlisted":false},{"type":"link","label":"Transform","href":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/transform","docId":"rendering/modelloaders/transform","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/"}]},{"type":"category","label":"\ub9ac\uc18c\uc2a4","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"\ub9ac\uc18c\uc2a4 \ud329","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"\ubaa8\ub378","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Item Properties","href":"/Neoforge-Korean-Documentation/docs/resources/client/models/itemproperties","docId":"resources/client/models/itemproperties","unlisted":false},{"type":"link","label":"Coloring Textures","href":"/Neoforge-Korean-Documentation/docs/resources/client/models/tinting","docId":"resources/client/models/tinting","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/resources/client/models/"}],"href":"/Neoforge-Korean-Documentation/docs/resources/client/"},{"type":"category","label":"\ub370\uc774\ud130\ud329","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Advancements","href":"/Neoforge-Korean-Documentation/docs/resources/server/advancements","docId":"resources/server/advancements","unlisted":false},{"type":"link","label":"Conditionally-Loaded Data","href":"/Neoforge-Korean-Documentation/docs/resources/server/conditional","docId":"resources/server/conditional","unlisted":false},{"type":"link","label":"Global Loot Modifiers","href":"/Neoforge-Korean-Documentation/docs/resources/server/glm","docId":"resources/server/glm","unlisted":false},{"type":"link","label":"Loot Tables","href":"/Neoforge-Korean-Documentation/docs/resources/server/loottables","docId":"resources/server/loottables","unlisted":false},{"type":"category","label":"Recipes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Custom Recipes","href":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/custom","docId":"resources/server/recipes/custom","unlisted":false},{"type":"link","label":"Non-Datapack Recipes","href":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/incode","docId":"resources/server/recipes/incode","unlisted":false},{"type":"link","label":"Ingredients","href":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/ingredients","docId":"resources/server/recipes/ingredients","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/"},{"type":"link","label":"Tags","href":"/Neoforge-Korean-Documentation/docs/resources/server/tags","docId":"resources/server/tags","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/resources/server/"}]}]},"docs":{"advanced/accesstransformers":{"id":"advanced/accesstransformers","title":"\uc811\uadfc \uc81c\uc5b4\uc790 \ubcc0\ud615\ud558\uae30","description":"\uc811\uadfc \uc81c\uc5b4\uc790 \ubcc0\ud615\ud558\uae30","sidebar":"mainSidebar"},"blockentities/ber":{"id":"blockentities/ber","title":"BlockEntityRenderer","description":"BlockEntityRenderer, \ub610\ub294 BER \uc740 \uc815\uc801\uc778 \ubaa8\ub378(JSON, OBJ, B3D, others)\ub9cc\uc73c\ub860 \ud45c\ud604\ud558\uae30 \ud798\ub4e0 \ube14\ub85d\ub4e4\uc744 \ub80c\ub354\ub9c1\ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc774\ub54c \ud574\ub2f9 \ube14\ub85d\uc740 BlockEntity \uac00 \uc788\uc5b4\uc57c\ub9cc \ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"blockentities/index":{"id":"blockentities/index","title":"\ube14\ub85d \uc5d4\ud2f0\ud2f0","description":"\ube14\ub85d \uc5d4\ud2f0\ud2f0(BlockEntity)\ub294 \ube14\ub85d\uc5d0 \uc885\uc18d\ub41c \uc5d4\ud2f0\ud2f0\uc785\ub2c8\ub2e4. \ub3d9\uc801\uc73c\ub85c \ubcc0\ud558\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uac70\ub098, \ub9e4 \ud2f1\ub9c8\ub2e4 \uc218\ud589\ub3fc\uc57c \ud558\ub294 \uc791\uc5c5\uc744 \ud558\uac70\ub098, \ub3d9\uc801 \ub80c\ub354\ub9c1\uc744 \ud574\uc57c \ud560 \ub54c \ub4f1, BlockState \ub9cc\uc73c\ub85c\ub294 \uad6c\ud604\ud558\uae30 \uc5b4\ub824\uc6b4 \uae30\ub2a5\ub4e4\uc744 \ub9cc\ub4e4 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc0c1\uc790 \uc778\ubca4\ud1a0\ub9ac, \ud654\ub85c \uc81c\ub828, \uc2e0\ud638\uae30\uc758 \uad11\uc5ed \ud3ec\uc158 \ud6a8\uacfc\ub97c \uad6c\ud604\ud558\ub294 \ub370\uc5d0 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub354 \ubcf5\uc7a1\ud55c \uc608\uc81c\ub4e4\uc740 \uad74\ucc29\uae30, \uc544\uc774\ud15c \uc815\ub82c\ud558\ub294 \uae30\uacc4, \ud30c\uc774\ud504, \ub514\uc2a4\ud50c\ub808\uc774 \ub4f1 \ub2e4\ub978 \ubaa8\ub4dc\uc5d0\uc11c \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"blocks/index":{"id":"blocks/index","title":"\ube14\ub85d","description":"\ube14\ub85d\uc740 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \ud575\uc2ec \ud6a8\uc18c\ub85c \ub808\ubca8\uc758 \ud544\uc218\uc801 \uad6c\uc131 \uc694\uc18c\uc785\ub2c8\ub2e4. \uc9c0\ud615\uacfc \uad6c\uc870\ubb3c, \uadf8\ub9ac\uace0 \uae30\uacc4\ub4e4 \uc804\ubd80 \ube14\ub85d\ub4e4\ub85c \uc774\ub8e8\uc5b4\uc838 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ubc88\uc7a5\uc5d0\uc11c\ub294 \ube14\ub85d \uc81c\uc791\uc758 \ud575\uc2ec\uacfc \uc751\uc6a9 \ubc29\uc548\ub4e4\uc5d0 \ub300\ud574 \ub2e4\ub8e8\uaca0\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"blocks/states":{"id":"blocks/states","title":"\ube14\ub85d\uc758 \uc0c1\ud0dc","description":"\uc810\uc9c4\uc801\uc73c\ub85c \uc790\ub77c\ub294 \uc2dd\ubb3c, \ub2e4\uc591\ud55c \ubc30\uce58\uac00 \uac00\ub2a5\ud55c \ubc18\ube14\ub85d \ub4f1, \ud558\ub098\uc758 \ube14\ub85d\uc5d0 \uc5ec\ub7ec \uac00\uc9c0\uc758 \\"\uc0c1\ud0dc\\"\ub97c \ubd80\uc5ec\ud574\uc57c \ud560 \ub584\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 Blockstate\ub97c \ud1b5\ud574 \ud558\ub098\uc758 \ube14\ub85d\uc5d0 \uc5ec\ub7ec \uc0c1\ud0dc\ub97c \ubd80\uc5ec\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/events":{"id":"concepts/events","title":"\uc774\ubca4\ud2b8","description":"\ud3ec\uc9c0\ub294 \uc774\ubca4\ud2b8 \ubc84\uc2a4\ub97c \uc774\uc6a9\ud558\uc5ec \uc5ec\ub7ec \ubaa8\ub4dc\ub4e4\uc774 \ubc14\ub2d0\ub77c \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \uc5ec\ub7ec \uc774\ubca4\ud2b8\uc5d0 \ubc18\uc751\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/internationalization":{"id":"concepts/internationalization","title":"\ub2e4\uad6d\uc5b4 \uc9c0\uc6d0","description":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ub2e4\uad6d\uc5b4\ub97c \uad6d\uc81c\ud654(Internationalization, i18n\ub77c\uace0 \ud558\uae30\ub3c4 \ud569\ub2c8\ub2e4.)\uc640 \ud604\uc9c0\ud654\ub97c \ud1b5\ud574 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uad6d\uc81c\ud654\ub294 \ub2e4\uc591\ud55c \uc5b8\uc5b4\ub97c \uc9c0\uc6d0\ud560\ub54c \ucf54\ub4dc\uc758 \ubcc0\uacbd\uc774 \ud544\uc694\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud558\ub294 \uc124\uacc4 \ubc29\ubc95\uc785\ub2c8\ub2e4, \uadf8\ub9ac\uace0 \ud604\uc9c0\ud654\ub294 \ud45c\uc2dc\ub418\ub294 \uae00\uc790\ub4e4\uc744 \uc720\uc800\uc758 \uc5b8\uc5b4\uc5d0 \ub9de\uac8c \ubc14\uafb8\ub294 \uacfc\uc815\uc785\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/lifecycle":{"id":"concepts/lifecycle","title":"\ubaa8\ub4dc \uc0dd\uba85\uc8fc\uae30","description":"\ubaa8\ub4dc\ub97c \ubd88\ub7ec\uc624\ub294 \uacfc\uc815\uc740 \uc0dd\uba85\uc8fc\uae30\ub77c\uace0 \ud558\ub294 \uc5ec\ub7ec \ub2e8\uacc4\ub85c \ub098\ub20c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc0dd\uba85\uc8fc\uae30\ub294 \uac1d\uccb4 \ub4f1\ub85d, \ub370\uc774\ud130 \uc0dd\uc131 \uc900\ube44, \ub610\ub294 \ub2e4\ub978 \ubaa8\ub4dc\uc640\uc758 \ud1b5\uc2e0 \ub4f1\uc73c\ub85c \ub098\ub258\uba70, \uac01 \uc0dd\uba85\uc8fc\uae30 \ub2e8\uacc4\ub294 \ubaa8\ub4dc\ubcc4 \ubc84\uc2a4\uc5d0 \uc774\ubca4\ud2b8\ub97c \ubc29\uc1a1\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/registries":{"id":"concepts/registries","title":"\ub808\uc9c0\uc2a4\ud2b8\ub9ac","description":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\ub97c \uc774\uc6a9\ud574 \ube14\ub85d \ubc0f \uc544\uc774\ud15c\uacfc \uac19\uc740 \uac1d\uccb4\ub4e4\uc5d0 \uc811\uadfc\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uac1d\uccb4\ub4e4\uc740 \ubaa8\ub450 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0 \ub4f1\ub85d\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4; \ub4f1\ub85d\ub418\uc9c0 \uc54a\uc740 \uac1d\uccb4\ub4e4\uc740 \uac8c\uc784\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/resources":{"id":"concepts/resources","title":"\ub9ac\uc18c\uc2a4\ub780","description":"\ub9ac\uc18c\uc2a4\ub294 \uac8c\uc784\uc774 \uc0ac\uc6a9\ud558\ub294 \ucd94\uac00\uc801\uc778 \ub370\uc774\ud130 \uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ucf54\ub4dc \uc548\uc5d0 \uc788\uc9c0 \uc54a\uace0 \ub370\uc774\ud130 \ud30c\uc77c \ud615\uc2dd\uc73c\ub85c \uc800\uc7a5\ub429\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/sides":{"id":"concepts/sides","title":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \uc0ac\uc774\ub4dc","description":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8 \ubaa8\ub4dc\ub97c \uac1c\ubc1c\ud558\uba74\uc11c \uc219\uc9c0\ud574\uc57c \ud560 \ub9e4\uc6b0 \uc911\uc694\ud55c \uac1c\ub150\uc740 \\"\ud074\ub77c\uc774\uc5b8\ud2b8 \uc0ac\uc774\ub4dc\\" \uc640 \\"\uc11c\ubc84 \uc0ac\uc774\ub4dc\\" \uc785\ub2c8\ub2e4. \uc774\uc5d0 \ub300\ud574 \ub9ce\uc740 \uc0ac\ub78c\ub4e4\uc774 \uc624\ud574\ud558\uace0 \uc788\uace0, \uc774\ub85c \uc778\ud574 \uac8c\uc784\uc744 \ud295\uae30\uac8c \ud558\uc9c4 \uc54a\uc9c0\ub9cc \uc608\uae30\uce58 \ubabb\ud55c \ub3d9\uc791\uc744 \ud558\ub3c4\ub85d \ub9cc\ub4e4 \uc218 \uc788\ub294 \ud574\uacb0\ud558\uae30 \uae4c\ub2e4\ub85c\uc6b4 \uc624\ub958\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datagen/client/localization":{"id":"datagen/client/localization","title":"Language Generation","description":"Language files can be generated for a mod by subclassing LanguageProvider and implementing #addTranslations. Each LanguageProvider subclass created represents a separate locale] (enus represents American English, eses represents Spanish, etc.). After implementation, the provider must be [added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/client/modelproviders":{"id":"datagen/client/modelproviders","title":"Model Generation","description":"Models] can be generated for models or block states by default. Each provides a method of generating the necessary JSONs (ModelBuilder#toJson for models and IGeneratedBlockState#toJson for block states). After implementation, the [associated providers must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/client/sounds":{"id":"datagen/client/sounds","title":"Sound Definition Generation","description":"The sounds.json file can be generated for a mod by subclassing SoundDefinitionsProvider and implementing #registerSounds. After implementation, the provider must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/index":{"id":"datagen/index","title":"\ub370\uc774\ud130 \uc0dd\uc131\uae30","description":"\ub370\uc774\ud130 \uc0dd\uc131\uae30\ub294 \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud574 \ubaa8\ub4dc\uc5d0 \ud544\uc694\ud55c \uc5d0\uc14b\uacfc \ub370\uc774\ud130\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc5d0\uc14b\uacfc \ub370\uc774\ud130\ub4e4\uc744 \ucf54\ub4dc\uc5d0\uc11c \uc815\uc758\ud558\uace0 \ubb38\ubc95\uc774\ub098 \uaddc\uaca9\uc5d0 \uc0c1\uad00\uc5c6\uc774 \ud3b8\ud558\uac8c \uc0dd\uc131\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datagen/server/advancements":{"id":"datagen/server/advancements","title":"Advancement Generation","description":"Advancements] can be generated for a mod by constructing a new AdvancementProvider and providing AdvancementSubProviders. Advancements can either be created and supplied manually or, for convenience, created using Advancement$Builder. The provider must be [added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/server/datapackregistries":{"id":"datagen/server/datapackregistries","title":"Datapack Registry Object Generation","description":"Datapack registry objects can be generated for a mod by constructing a new DatapackBuiltinEntriesProvider and providing a RegistrySetBuilder with the new objects to register. The provider must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/server/glm":{"id":"datagen/server/glm","title":"Global Loot Modifier Generation","description":"Global Loot Modifiers (GLMs) can be generated for a mod by subclassing GlobalLootModifierProvider and implementing #start. Each GLM can be added generated by calling #add and specifying the name of the modifier and the modifier instance to be serialized. After implementation, the provider must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/server/loottables":{"id":"datagen/server/loottables","title":"Loot Table Generation","description":"Loot tables can be generated for a mod by constructing a new LootTableProvider and providing LootTableProvider$SubProviderEntrys. The provider must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/server/recipes":{"id":"datagen/server/recipes","title":"Recipe Generation","description":"Recipes can be generated for a mod by subclassing RecipeProvider and implementing #buildRecipes. A recipe is supplied for data generation once a FinishedRecipe view is accepted by the consumer. FinishedRecipes can either be created and supplied manually or, for convenience, created using a RecipeBuilder.","sidebar":"mainSidebar"},"datagen/server/tags":{"id":"datagen/server/tags","title":"Tag Generation","description":"Tags] can be generated for a mod by subclassing TagsProvider and implementing #addTags. After implementation, the provider must be [added to the DataGenerator.","sidebar":"mainSidebar"},"datastorage/attachments":{"id":"datastorage/attachments","title":"\ub370\uc774\ud130 \ubd80\ucc29","description":"\ub370\uc774\ud130 \ubd80\ucc29 \uc2dc\uc2a4\ud15c\uc740 \ube14\ub85d \uc5d4\ud2f0\ud2f0, \uccad\ud06c, \uc5d4\ud2f0\ud2f0, \uadf8\ub9ac\uace0 \uc544\uc774\ud15c \uc2a4\ud0dd\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datastorage/capabilities":{"id":"datastorage/capabilities","title":"\uce90\ud328\ube4c\ub9ac\ud2f0","description":"\uce90\ud328\ube4c\ub9ac\ud2f0\ub294 \uc218\uc2ed \uac1c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc2e0\uacbd \uc4f8 \ud544\uc694 \uc5c6\uc774 \ud2b9\uc815 \uae30\ub2a5\uc744 \uc720\uc5f0\ud558\uace0 \ub3d9\uc801\uc73c\ub85c \uc81c\uacf5\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datastorage/codecs":{"id":"datastorage/codecs","title":"\ucf54\ub371","description":"\ucf54\ub371(Codec)\uc740 \ubaa8\uc7a5\uc758 DataFixerUpper(DFU)\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uc9c1\ub82c\ud654 \ub3c4\uad6c\ub85c, \uac1d\uccb4\ub97c JsonElement \ub610\ub294 Tag\uc640 \uac19\uc740 \uc5ec\ub7ec \ub370\uc774\ud130 \ud3ec\ub9f7\uc73c\ub85c \ubcc0\ud658\ud558\ub294 \ubc29\ubc95\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. DFU\ub294 \ud568\uc218\ud615 \uc5b8\uc5b4\uc778 \ud558\uc2a4\ucf08\uc5d0\uc11c \uc601\uac10\uc744 \ubc1b\uc544 \uc81c\uc791\ub418\uc5b4 \ub9ce\uc740 \uac1c\ub150\uc774 \uc0dd\uc18c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datastorage/saveddata":{"id":"datastorage/saveddata","title":"\ub808\ubca8 \uc800\uc7a5 \ub370\uc774\ud130","description":"\ub808\ubca8 \uc800\uc7a5 \ub370\uc774\ud130\ub294 (\ub610\ub294 Saved Data, SD) \ub808\ubca8 \uc790\uccb4\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub294\ub370 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gameeffects/particles":{"id":"gameeffects/particles","title":"Particles","description":"Particles are an effect within the game used as polish to better improve immersion. Their usefulness also requires great caution because of their methods of creation and reference.","sidebar":"mainSidebar"},"gameeffects/sounds":{"id":"gameeffects/sounds","title":"\ud6a8\uacfc\uc74c","description":"\ud6a8\uacfc\uc74c\uc740 \uac8c\uc784\uc18d \uc0c1\ud669\uc744 \uc624\ub514\uc624\ub85c \uac8c\uc784\uc18d \uc0c1\ud669\uc744 \uc0dd\ub3d9\uac10 \uc788\uac8c \uc804\ub2ec\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gettingstarted/index":{"id":"gettingstarted/index","title":"\ub124\uc624 \ud3ec\uc9c0 \uc2dc\uc791\ud558\uae30","description":"\uc774 \uc139\uc158\uc740 \ub124\uc624 \ud3ec\uc9c0\ub97c \ud1b5\ud55c \ubaa8\ub4dc \uac1c\ubc1c \ud658\uacbd \uad6c\uc131\uacfc \ubaa8\ub4dc \uc2e4\ud589 \ubc0f \ud14c\uc2a4\ud2b8 \ubc29\ubc95\uc5d0 \ub300\ud574 \ub2e4\ub8f9\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gettingstarted/modfiles":{"id":"gettingstarted/modfiles","title":"\ubaa8\ub4dc \ud30c\uc77c","description":"\ubaa8\ub4dc \ud30c\uc77c\uc740 JAR\uc5d0 \uc5b4\ub5a4 \ubaa8\ub4dc\uac00 \ub4e4\uc5b4\uc788\ub294\uc9c0, \'\ubaa8\ub4dc\' \uba54\ub274\uc5d0 \ud45c\uc2dc\ud560 \uc815\ubcf4\ub294 \ubb34\uc5c7\uc778\uc9c0, \uac8c\uc784\uc5d0\uc11c \ubaa8\ub4dc\ub97c \ubd88\ub7ec\uc624\ub294 \ubc29\ubc95\uc744 \uacb0\uc815\ud558\ub294 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gettingstarted/structuring":{"id":"gettingstarted/structuring","title":"\ubaa8\ub4dc \uad6c\uc870\ud654","description":"\ubaa8\ub4dc\uc758 \ucf54\ub4dc\ubca0\uc774\uc2a4\ub294 \uc720\uc9c0 \uad00\ub9ac \ubc0f \uae30\uc5ec\ud560 \ub54c \uba85\ud655\ud558\uac8c \uc774\ud574\ud558\uae30 \uc26c\uc6b4 \uad6c\uc870\ub97c \uac00\uc838\uc57c \ud569\ub2c8\ub2e4. Java, Minecraft \ubc0f Forge\uc758 \uad8c\uc7a5 \uc0ac\ud56d\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gettingstarted/versioning":{"id":"gettingstarted/versioning","title":"\ubc84\uc804 \uaddc\uc57d","description":"\uc774 \ubb38\uc11c\ub294 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc640 \ub124\uc624 \ud3ec\uc9c0\uc758 \ubc84\uc804 \uaddc\uc57d\uc5d0 \ub300\ud574 \ub2e4\ub8e8\uace0, \ubaa8\ub4dc\uc758 \ubc84\uc804 \uad00\ub9ac\ub97c \uc704\ud55c \ub3c4\uc6c0\ub9d0\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gui/menus":{"id":"gui/menus","title":"\uba54\ub274","description":"\uba54\ub274\ub294 \uadf8\ub798\ud53d \uc720\uc800 \uc778\ud130\ud398\uc774\uc2a4(GUI)\uc758 \ubca1\uc5d4\ub4dc\uc911 \ud558\ub098\ub85c, \uc678\ubd80 \ub370\uc774\ud130\uc640 \uc0c1\ud638\uc791\uc6a9\ud569\ub2c8\ub2e4. \uba54\ub274 \uc790\uccb4\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uc9c0 \uc54a\uace0, \uc624\uc9c1 \uc0ac\uc6a9\uc790\uac00 \ub370\uc774\ud130\uc640 \uac04\uc811\uc801\uc73c\ub85c \uc0c1\ud638\uc791\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. \ub2e4\uc2dc \ub9d0\ud574\uc11c \ub370\uc774\ud130\ub294 \ud2b9\uc815 \uba54\ub274\ub791 \uacb0\ud569(coupling)\ud558\uc9c0 \ub9d0\uc544\uc57c \ud558\uba70 \uadf8 \ucc38\uc870\ub9cc \uc804\ub2ec\ud574\uc57c \ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gui/screens":{"id":"gui/screens","title":"Screens","description":"Screens are typically the base of all Graphical User Interfaces (GUIs) in Minecraft: taking in user input, verifying it on the server, and syncing the resulting action back to the client. They can be combined with [menus] to create an communication network for inventory-like views, or they can be standalone which modders can handle through their own [network] implementations.","sidebar":"mainSidebar"},"items/bewlr":{"id":"items/bewlr","title":"BlockEntityWithoutLevelRenderer","description":"BlockEntityWithoutLevelRenderer\ub294 \uc544\uc774\ud15c\uc744 \ub3d9\uc801\uc73c\ub85c \ub80c\ub354\ub9c1\ud558\ub294 \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. \uc774 \uc2dc\uc2a4\ud15c\uc740 \uc774\uc804\uc5d0 ItemStack\uc744 \uae30\ubc18\uc73c\ub85c \ub9cc\ub4e0 \uc624\ub798\ub41c \uc2dc\uc2a4\ud15c\ubcf4\ub2e4 \uac04\ub2e8\ud55c\ub370, \uadf8\ub54c\ub294 BlockEntity\ub97c \uc0ac\uc6a9\ud588\uc5b4\uc57c\ub9cc \ud588\uace0, ItemStack\uc5d0 \uc811\uadfc\ud560 \uc218 \uc5c6\uc5c8\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"items/index":{"id":"items/index","title":"\uc544\uc774\ud15c","description":"\uc544\uc774\ud15c\uc740 \ube14\ub85d\ub4e4\uacfc \ub9c8\ucc2c\uac00\uc9c0\ub85c \ubaa8\ub4dc\uc758 \ud575\uc2ec\uc774 \ub418\ub294 \uc694\uc18c\uc785\ub2c8\ub2e4. \ube14\ub85d\uc774 \ud50c\ub808\uc774\uc5b4 \uc8fc\ubcc0\uc758 \ub808\ubca8\uc744 \uad6c\uc131\ud55c\ub2e4\uba74 \uc544\uc774\ud15c\uc740 \ud50c\ub808\uc774\uc5b4\uc758 \uc778\ubca4\ud1a0\ub9ac\ub97c \uad6c\uc131\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"items/interactionpipeline":{"id":"items/interactionpipeline","title":"\uc0c1\ud638\uc791\uc6a9 \ud30c\uc774\ud504\ub77c\uc778","description":"\uc774 \ud398\uc774\uc9c0\ub294 \uc6b0\ud074\ub9ad\uc744 \ud1b5\ud55c \uc0c1\ud638\uc791\uc6a9 \uacfc\uc815, \uadf8\ub9ac\uace0 \uacb0\uacfc(Result)\uac00 \ubb34\uc5c7\uc778\uc9c0, \uc5b4\ub514\uc5d0 \uc4f0\ub294\uc9c0\uc5d0 \ub300\ud574 \ub2e4\ub8f9\ub2c8\ub2e4.","sidebar":"mainSidebar"},"legacy/porting":{"id":"legacy/porting","title":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8 1.20\uc73c\ub85c \uc5c5\uadf8\ub808\uc774\ub4dc \ud558\uae30","description":"\uc544\ub798 \uad6c\ubc84\uc804 \ubaa8\ub4dc\ub97c \uc2e0\ubc84\uc804\uc73c\ub85c \uc5c5\uadf8\ub808\uc774\ub4dc\ud558\ub294 \uac00\uc774\ub4dc\ub4e4\uc744 \uc815\ub9ac\ud574 \ub450\uc5c8\uc2b5\ub2c8\ub2e4. \uba87\uba87 \ubc84\uc804\uc740 \uadf8\ub9ac \uc720\uba85\ud558\uc9c0 \uc54a\uc544 \ud558\ub098\ub85c \ubb36\uc5c8\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/components":{"id":"misc/components","title":"Text Components","description":"\ucef4\ud3ec\ub128\ud2b8(Component)\ub294 \ud14d\uc2a4\ud2b8\ub97c \uc800\uc7a5\ud558\ub294 \ud0c0\uc785\uc785\ub2c8\ub2e4, \ud558\uc704 \ud0c0\uc785\uc778 MutableComponent\ub97c \uc774\uc6a9\ud574 \ub2e4\ub978 \ucef4\ud3ec\ub128\ud2b8\uc640 \uc5f0\uacb0 \ubc0f \uc11c\uc2dd\uc744 \uc801\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucef4\ud3ec\ub128\ud2b8\ub294 \uc544\ub798 \uc815\uc801 \uba54\uc11c\ub4dc\ub4e4\ub85c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:","sidebar":"mainSidebar"},"misc/config":{"id":"misc/config","title":"\ubaa8\ub4dc \uc124\uc815 \ud30c\uc77c","description":"\uc124\uc815 \ud30c\uc77c\uc740 \ubaa8\ub4dc\ub97c \uc124\uc815\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\uace0 \uae30\ubcf8\uac12\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. \ub124\uc624 \ud3ec\uc9c0\ub294 \uc124\uc815 \ud30c\uc77c\ub85c TOML\uc744 \uc0ac\uc6a9\ud558\uba70, NightConfig\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc124\uc815 \ud30c\uc77c\uc744 \uc77d\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/debugprofiler":{"id":"misc/debugprofiler","title":"\ub514\ubc84\uadf8 \ud504\ub85c\ud30c\uc77c\ub7ec","description":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ub514\ubc84\uadf8 \ud504\ub85c\ud30c\uc77c\ub7ec\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2dc\uc2a4\ud15c \ub370\uc774\ud130, \ud604\uc7ac \uac8c\uc784 \uc124\uc815, JVM \ub370\uc774\ud130, \ub808\ubca8 \ub370\uc774\ud130, \uc0ac\uc774\ub4dc \ud2f1 \uc815\ubcf4 \ub4f1\uc744 \ud65c\uc6a9\ud574 \ud2b9\uc815 \ucf54\ub4dc\uac00 \uc5bc\ub9c8\ub098 \uc2dc\uac04\uc744 \uc18c\uc694\ud558\ub294\uc9c0 \uce21\uc815\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. TickEvent\ub098 \ube14\ub85d \uc5d4\ud2f0\ud2f0 tick \ucc98\ub9ac \ub4f1\uc5d0\uc11c \uc774\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc720\uc6a9\ud560 \uc218 \uc788\ub294\ub370, \ubaa8\ub4dc \uac1c\ubc1c\uc790 \ub610\ub294 \uc11c\ubc84 \uc5b4\ub4dc\ubbfc\uc774 \ub799\uc758 \uc6d0\uc778\uc744 \uc27d\uac8c \ud30c\uc545\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/gametest":{"id":"misc/gametest","title":"\uac8c\uc784 \ud14c\uc2a4\ud2b8","description":"\uac8c\uc784 \ud14c\uc2a4\ud2b8\ub294 \uac8c\uc784 \uc18d\uc5d0\uc11c \ub2e8\uc704 \ud14c\uc2a4\ud2b8\ub97c \uc218\ud589\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4. \uc774 \uc2dc\uc2a4\ud15c\uc740 \ud655\uc7a5\ud558\uae30 \uc27d\uace0 \ud55c \ubc88\uc5d0 \uc5ec\ub7ec \ud14c\uc2a4\ud2b8\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud504\ub808\uc784\uc6cc\ud06c\ub294 \uc5ec\ub7ec \uac8c\uc784 \uc18d \uac1d\uccb4\uc758 \uc0c1\ud638 \uc791\uc6a9\uc744 \ud14c\uc2a4\ud2b8\ud560 \ub54c \uc720\uc6a9\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/keymappings":{"id":"misc/keymappings","title":"\ud0a4 \ub9e4\ud551","description":"\ud0a4 \ub9e4\ud551(\ub610\ub294 \ud0a4 \ubc14\uc778\ub529)\uc740 \uc785\ub825\uc5d0 \ub530\ub77c \ud2b9\uc815 \ub3d9\uc791\uc744 \uc218\ud589\ud558\ub294 \uac83\uc744 \ub73b\ud569\ub2c8\ub2e4. \uac01 \ub3d9\uc791\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc785\ub825\uc744 \ucc98\ub9ac\ud560 \ub54c \uc218\ud589\ub418\uba70 \uc870\uc791 \uba54\ub274\uc5d0\uc11c \uc544\ubb34 \ud0a4\uc5d0\ub098 \ud560\ub2f9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/updatechecker":{"id":"misc/updatechecker","title":"\ud3ec\uc9c0 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8 \uc2dc\uc2a4\ud15c","description":"\ud3ec\uc9c0\ub294 \uac00\ubcbc\uc6b4 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8 \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub9cc\uc57d \uc5c5\ub370\uc774\ud2b8\uac00 \uac00\ub2a5\ud55c \ubaa8\ub4dc\uac00 \uc788\ub2e4\uba74, \uba54\uc778 \uba54\ub274\uc758 \\"\ubaa8\ub4dc\\" \ubc84\ud2bc\uacfc \ubaa8\ub4dc \ubaa9\ub85d\uc5d0 \uc544\uc774\ucf58\uc774 \ud45c\uc2dc\ub418\uace0, \ubcc0\uacbd \uc0ac\ud56d\ub3c4 \uadf8 \uc606\uc5d0 \uac19\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc5c5\ub370\uc774\ud2b8\ub97c \uc790\ub3d9\uc73c\ub85c \uc124\uce58\ud558\uc9c4 \uc54a\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"networking/entities":{"id":"networking/entities","title":"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0","description":"\ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ud1b5\uc2e0\ud558\ub294 \uac83 \ub9d0\uace0\ub3c4 \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\uc2dc\ucf1c\uc8fc\ub294 \uc2dc\uc2a4\ud15c\uc740 \ub2e4\uc591\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"networking/index":{"id":"networking/index","title":"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0","description":"\uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac04\uc758 \uc18c\ud1b5\uc740 \uc131\uacf5\uc801\uc778 \ubaa8\ub4dc\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574 \ud544\uc218\uc801\uc73c\ub85c \ub4e4\uc5b4\uac00\ub294 \uc694\uc18c\uc911 \ud558\ub098\uc785\ub2c8\ub2e4.","sidebar":"mainSidebar"},"networking/simpleimpl":{"id":"networking/simpleimpl","title":"SimpleImpl","description":"SimpleImpl \uc740 SimpleChannel\uc744 \uc0ac\uc6a9\ud558\ub294 \ud328\ud0b7 \ud1b5\uc2e0 \uc2dc\uc2a4\ud15c\uc5d0 \uc8fc\uc5b4\uc9c4 \uc774\ub984\uc785\ub2c8\ub2e4. \uc774 \uc2dc\uc2a4\ud15c\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \uac00\uc7a5 \uc27d\uac8c \uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac04 \ud1b5\uc2e0\uc744 \uad6c\ud604\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.","sidebar":"mainSidebar"},"rendering/modelextensions/facedata":{"id":"rendering/modelextensions/facedata","title":"Face Data","description":"In a vanilla \\"elements\\" model, additional data about an element\'s faces can be specified at either the element level or the face level. Faces which do not specify their own face data will fall back to the element\'s face data or a default if no face data is specified at the element level.","sidebar":"mainSidebar"},"rendering/modelextensions/rendertypes":{"id":"rendering/modelextensions/rendertypes","title":"Render Types","description":"Adding the render_type entry at the top level of the JSON suggests to the loader what render type the model should use. If not specified, the loader gets to pick the render type(s) used, often falling back to the render types returned by ItemBlockRenderTypes#getRenderLayers().","sidebar":"mainSidebar"},"rendering/modelextensions/transforms":{"id":"rendering/modelextensions/transforms","title":"Root Transforms","description":"Adding the transform entry at the top level of a model JSON suggests to the loader that a transformation should be applied to all geometry right before the rotations in the blockstate] file in the case of a block model, and before the [display transforms in the case of an item model. The transformation is available through IGeometryBakingContext#getRootTransform() in IUnbakedGeometry#bake().","sidebar":"mainSidebar"},"rendering/modelextensions/visibility":{"id":"rendering/modelextensions/visibility","title":"Part Visibility","description":"Adding the visibility entry at the top level of a model JSON allows control over the visibility of different parts of the model to decide whether they should be baked into the final BakedModel. The definition of a \\"part\\" is dependent on the model loader loading this model and custom model loaders are free to ignore this entry completely. Out of the model loaders provided by Forge only the composite model loader and the OBJ model loader make use of this functionality. The visibility entries are specified as \\"part name\\": boolean entries.","sidebar":"mainSidebar"},"rendering/modelloaders/bakedmodel":{"id":"rendering/modelloaders/bakedmodel","title":"BakedModel","description":"BakedModel is the result of calling UnbakedModel#bake for the vanilla model loader or IUnbakedGeometry#bake for custom model loaders. Unlike UnbakedModel or IUnbakedGeometry, which purely represents a shape without any concept of items or blocks, BakedModel is not as abstract. It represents geometry that has been optimized and reduced to a form where it is (almost) ready to go to the GPU. It can also process the state of an item or block to change the model.","sidebar":"mainSidebar"},"rendering/modelloaders/index":{"id":"rendering/modelloaders/index","title":"Custom Model Loaders","description":"A \\"model\\" is simply a shape. It can be a simple cube, it can be several cubes, it can be a truncated icosidodecahedron, or anything in between. Most models you\'ll see will be in the vanilla JSON format. Models in other formats are loaded into IUnbakedGeometrys by an IGeometryLoader at runtime. Forge provides default implementations for WaveFront OBJ files, buckets, composite models, models in different render layers, and a reimplementation of Vanilla\'s builtin/generated item model. Most things do not care about what loaded the model or what format it\'s in as they are all eventually represented by an BakedModel in code.","sidebar":"mainSidebar"},"rendering/modelloaders/itemoverrides":{"id":"rendering/modelloaders/itemoverrides","title":"ItemOverrides","description":"ItemOverrides provides a way for an BakedModel to process the state of an ItemStack and return a new BakedModel; thereafter, the returned model replaces the old one. ItemOverrides represents an arbitrary function (BakedModel, ItemStack, ClientLevel, LivingEntity, int) \u2192 BakedModel, making it useful for dynamic models. In vanilla, it is used to implement item property overrides.","sidebar":"mainSidebar"},"rendering/modelloaders/transform":{"id":"rendering/modelloaders/transform","title":"Transform","description":"When an BakedModel is being rendered as an item, it can apply special handling depending on which transform it is being rendered in. \\"Transform\\" means in what context the model is being rendered. The possible transforms are represented in code by the ItemDisplayContext enum. There are two systems for handling transform: the deprecated vanilla system, constituted by BakedModel#getTransforms, ItemTransforms, and ItemTransform, and the Forge system, embodied by the method IForgeBakedModel#applyTransform. The vanilla code is patched to favor using applyTransform over the vanilla system whenever possible.","sidebar":"mainSidebar"},"resources/client/index":{"id":"resources/client/index","title":"\ub9ac\uc18c\uc2a4 \ud329","description":"\ub9ac\uc18c\uc2a4 \ud329 \uc740 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \uc5d0\uc14b \ub370\uc774\ud130\ub97c assets \ud3f4\ub354\ub97c \ud1b5\ud574 \ub9c8\uc74c\ub300\ub85c \ubcc0\uacbd\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uc0c8\ub85c\uc6b4 \ud14d\uc2a4\uccd0, \ubaa8\ub378, \uc18c\ub9ac, \uc5b8\uc5b4 \ud30c\uc77c \ub4f1\uc744 \ucd94\uac00\ud558\ub294\ub370 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud3ec\uc9c0\ub791 \ubaa8\ub4dc\ub4e4 \ub610\ud55c \ub9ac\uc18c\uc2a4\ud329\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uace0, \uc774\ub807\uac8c \ucd94\uac00\ub41c \uc5d0\uc14b \ud30c\uc77c\ub4e4 \ub610\ud55c \uc720\uc800\ub4e4\uc774 \ub9ac\uc18c\uc2a4 \ud329\uc744 \ud1b5\ud574 \ub9c8\uc74c\ub300\ub85c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"resources/client/models/index":{"id":"resources/client/models/index","title":"\ubaa8\ub378","description":"\ubaa8\ub378 \uc2dc\uc2a4\ud15c\uc740 \ub9ac\uc18c\uc2a4\ud329\uc744 \ud1b5\ud574 \ube14\ub85d\uacfc \uc544\uc774\ud15c\uc5d0 \ubaa8\uc591\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4. \ubaa8\ub378 \uc2dc\uc2a4\ud15c\uc758 \uae30\ub2a5 \uc911 \ud558\ub098\ub294 \ube14\ub85d\uacfc \uc544\uc774\ud15c\uc758 \ud14d\uc2a4\uccd0\ubfd0 \uc544\ub2c8\ub77c \uc804\uccb4 \ubaa8\uc591\uae4c\uc9c0 \ub9ac\uc18c\uc2a4\ud329\uc73c\ub85c \ub2e4\ub8e8\ub294 \uac83\uc774\uae30\uc5d0, \uc544\uc774\ud15c \ubc0f \ube14\ub85d\uc744 \ucd94\uac00\ud558\ub294 \ubaa8\ub4dc\ub4e4\uc740 \uc790\uccb4\uc801\uc73c\ub85c \uc791\uc740 \ub9ac\uc18c\uc2a4\ud329\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"resources/client/models/itemproperties":{"id":"resources/client/models/itemproperties","title":"Item Properties","description":"Item properties are a way for the \\"properties\\" of items to be exposed to the model system. An example is the bow, where the most important property is how far the bow has been pulled. This information is then used to choose a model for the bow, creating an animation for pulling it.","sidebar":"mainSidebar"},"resources/client/models/tinting":{"id":"resources/client/models/tinting","title":"Coloring Textures","description":"Many blocks and items in vanilla change their texture color depending on where they are or what properties they have, such as grass. Models support specifying \\"tint indices\\" on faces, which are integers that can then be handled by BlockColors and ItemColors. See the wiki for information on how tint indices are defined in vanilla models.","sidebar":"mainSidebar"},"resources/server/advancements":{"id":"resources/server/advancements","title":"Advancements","description":"Advancements are tasks that can be achieved by the player which may advance the progress of the game. Advancements can trigger based on any action the player may be directly involved in.","sidebar":"mainSidebar"},"resources/server/conditional":{"id":"resources/server/conditional","title":"Conditionally-Loaded Data","description":"There are times when modders may want to include data-driven objects using information from another mod without having to explicitly make that mod a dependency. Other cases may be to swap out certain objects with other modded entries when they are present. This can be done through the conditional subsystem.","sidebar":"mainSidebar"},"resources/server/glm":{"id":"resources/server/glm","title":"Global Loot Modifiers","description":"Global Loot Modifiers are a data-driven method of handling modification of harvested drops without the need to overwrite dozens to hundreds of vanilla loot tables or to handle effects that would require interactions with another mod\'s loot tables without knowing what mods may be loaded. Global Loot Modifiers are also stacking, rather than last-load-wins, similar to tags.","sidebar":"mainSidebar"},"resources/server/index":{"id":"resources/server/index","title":"\ub370\uc774\ud130\ud329","description":"\ubaa8\uc7a5\uc740 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8 \ubc84\uc804 1.13\uc5d0 \ub370\uc774\ud130\ud329\uc744 \ucd94\uac00\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774\ub294 data \ud3f4\ub354\ub97c \ud1b5\ud558\uc5ec \ub17c\ub9ac \uc11c\ubc84\ub97c \ubcf4\ub2e4 \uc27d\uac8c \uc218\uc815\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc8fc\uc5c8\uc2b5\ub2c8\ub2e4. \uc218\uc815\uac00\ub2a5\ud55c \ud56d\ubaa9\ub4e4\uc5d0\ub294, \ub3c4\uc804\uacfc\uc81c, \ub178\ud68d\ubb3c \ubaa9\ub85d, \uad6c\uc870\ubb3c, \uc870\ud569\ubc95, \ud0dc\uadf8 \ub4f1\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub2f9\uc2e0\uc774 \uac1c\ubc1c\ud558\ub294 \ubaa8\ub4dc\uc640 \ud3ec\uc9c0 \ub610\ud55c \uc790\uae30\ub9cc\uc758 \ub370\uc774\ud130\ud329\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30\uc5d0 \ub370\uc774\ud130\ud329\uc744 \uc774\uc6a9\ud558\uba74 \ub204\uad6c\ub098 \ub2e4\ub978 \ubaa8\ub4dc\uc5d0\uc11c \uc81c\uacf5\ub418\ub294 \uac83\ub4e4\uc744 \ud3ec\ud568\ud55c \ubaa8\ub4e0 \uc870\ud569\ubc95, \ub178\ud68d\ubb3c \ubaa9\ub85d, \uadf8\ub9ac\uace0 \ub2e4\ub978 \ub370\uc774\ud130\ub4e4\uc744 \uc218\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"resources/server/loottables":{"id":"resources/server/loottables","title":"Loot Tables","description":"Loot tables are logic files which dictate what should happen when various actions or scenarios occur. Although the vanilla system deals purely with item generation, the system can be expanded to perform any number of defined actions.","sidebar":"mainSidebar"},"resources/server/recipes/custom":{"id":"resources/server/recipes/custom","title":"Custom Recipes","description":"Every recipe definition is made up of three components: the Recipe implementation which holds the data and handles the execution logic with the provided inputs, the RecipeType which represents the category or context the recipe will be used in, and the RecipeSerializer which handles decoding and network communication of the recipe data. How one chooses to use the recipe is up to the implementor.","sidebar":"mainSidebar"},"resources/server/recipes/incode":{"id":"resources/server/recipes/incode","title":"Non-Datapack Recipes","description":"Not all recipes are simplistic enough or migrated to using data-driven recipes. Some subsystems still need to be patched within the codebase to provide support for adding new recipes.","sidebar":"mainSidebar"},"resources/server/recipes/index":{"id":"resources/server/recipes/index","title":"Recipes","description":"Recipes are a way to transform some number of objects into other objects within a Minecraft world. Although the vanilla system deals purely with item transformations, the system as a whole can be expanded to use any object the programmer creates.","sidebar":"mainSidebar"},"resources/server/recipes/ingredients":{"id":"resources/server/recipes/ingredients","title":"Ingredients","description":"Ingredients are predicate handlers for item-based inputs which check whether a certain ItemStack meets the condition to be a valid input in a recipe. All vanilla recipes that take inputs use an Ingredient or a list of Ingredients, which is then merged into a single Ingredient.","sidebar":"mainSidebar"},"resources/server/tags":{"id":"resources/server/tags","title":"Tags","description":"Tags are generalized sets of objects in the game used for grouping related things together and providing fast membership checks.","sidebar":"mainSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.cd0918a5.js b/assets/js/935f2afb.cd0918a5.js new file mode 100644 index 000000000..19ba00aa4 --- /dev/null +++ b/assets/js/935f2afb.cd0918a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"1.20.x","banner":null,"badge":true,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"mainSidebar":[{"type":"category","label":"Getting Started with Neo","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\ubaa8\ub4dc \ud30c\uc77c","href":"/Neoforge-Korean-Documentation/docs/gettingstarted/modfiles","docId":"gettingstarted/modfiles","unlisted":false},{"type":"link","label":"\ubaa8\ub4dc \uad6c\uc870\ud654","href":"/Neoforge-Korean-Documentation/docs/gettingstarted/structuring","docId":"gettingstarted/structuring","unlisted":false},{"type":"link","label":"\ubc84\uc804 \uaddc\uc57d","href":"/Neoforge-Korean-Documentation/docs/gettingstarted/versioning","docId":"gettingstarted/versioning","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/gettingstarted/"},{"type":"category","label":"\uc2ec\ud654 \uc8fc\uc81c","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\uc811\uadfc \uc81c\uc5b4\uc790 \ubcc0\ud615\ud558\uae30","href":"/Neoforge-Korean-Documentation/docs/advanced/accesstransformers","docId":"advanced/accesstransformers","unlisted":false}]},{"type":"category","label":"\ube14\ub85d \uc5d4\ud2f0\ud2f0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"BlockEntityRenderer","href":"/Neoforge-Korean-Documentation/docs/blockentities/ber","docId":"blockentities/ber","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/blockentities/"},{"type":"category","label":"\ube14\ub85d","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\ube14\ub85d\uc758 \uc0c1\ud0dc","href":"/Neoforge-Korean-Documentation/docs/blocks/states","docId":"blocks/states","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/blocks/"},{"type":"category","label":"\ud575\uc2ec \uac1c\ub150\ub4e4","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\uc774\ubca4\ud2b8","href":"/Neoforge-Korean-Documentation/docs/concepts/events","docId":"concepts/events","unlisted":false},{"type":"link","label":"\ub2e4\uad6d\uc5b4 \uc9c0\uc6d0","href":"/Neoforge-Korean-Documentation/docs/concepts/internationalization","docId":"concepts/internationalization","unlisted":false},{"type":"link","label":"\ubaa8\ub4dc \uc0dd\uba85\uc8fc\uae30","href":"/Neoforge-Korean-Documentation/docs/concepts/lifecycle","docId":"concepts/lifecycle","unlisted":false},{"type":"link","label":"\ub808\uc9c0\uc2a4\ud2b8\ub9ac","href":"/Neoforge-Korean-Documentation/docs/concepts/registries","docId":"concepts/registries","unlisted":false},{"type":"link","label":"\ub9ac\uc18c\uc2a4\ub780","href":"/Neoforge-Korean-Documentation/docs/concepts/resources","docId":"concepts/resources","unlisted":false},{"type":"link","label":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \uc0ac\uc774\ub4dc","href":"/Neoforge-Korean-Documentation/docs/concepts/sides","docId":"concepts/sides","unlisted":false}]},{"type":"category","label":"\ub370\uc774\ud130 \uc0dd\uc131\uae30","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"\ud074\ub77c\uc774\uc5b8\ud2b8","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Language Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/client/localization","docId":"datagen/client/localization","unlisted":false},{"type":"link","label":"Model Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/client/modelproviders","docId":"datagen/client/modelproviders","unlisted":false},{"type":"link","label":"Sound Definition Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/client/sounds","docId":"datagen/client/sounds","unlisted":false}]},{"type":"category","label":"\uc11c\ubc84","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Advancement Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/advancements","docId":"datagen/server/advancements","unlisted":false},{"type":"link","label":"Datapack Registry Object Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/datapackregistries","docId":"datagen/server/datapackregistries","unlisted":false},{"type":"link","label":"Global Loot Modifier Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/glm","docId":"datagen/server/glm","unlisted":false},{"type":"link","label":"Loot Table Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/loottables","docId":"datagen/server/loottables","unlisted":false},{"type":"link","label":"Recipe Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/recipes","docId":"datagen/server/recipes","unlisted":false},{"type":"link","label":"Tag Generation","href":"/Neoforge-Korean-Documentation/docs/datagen/server/tags","docId":"datagen/server/tags","unlisted":false}]}],"href":"/Neoforge-Korean-Documentation/docs/datagen/"},{"type":"category","label":"\ucd94\uac00 \ub370\uc774\ud130 \uc800\uc7a5","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\ub370\uc774\ud130 \ubd80\ucc29","href":"/Neoforge-Korean-Documentation/docs/datastorage/attachments","docId":"datastorage/attachments","unlisted":false},{"type":"link","label":"\uce90\ud328\ube4c\ub9ac\ud2f0","href":"/Neoforge-Korean-Documentation/docs/datastorage/capabilities","docId":"datastorage/capabilities","unlisted":false},{"type":"link","label":"\ucf54\ub371","href":"/Neoforge-Korean-Documentation/docs/datastorage/codecs","docId":"datastorage/codecs","unlisted":false},{"type":"link","label":"\ub808\ubca8 \uc800\uc7a5 \ub370\uc774\ud130","href":"/Neoforge-Korean-Documentation/docs/datastorage/saveddata","docId":"datastorage/saveddata","unlisted":false}]},{"type":"category","label":"\uc778\uac8c\uc784 \ud6a8\uacfc","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Particles","href":"/Neoforge-Korean-Documentation/docs/gameeffects/particles","docId":"gameeffects/particles","unlisted":false},{"type":"link","label":"\ud6a8\uacfc\uc74c","href":"/Neoforge-Korean-Documentation/docs/gameeffects/sounds","docId":"gameeffects/sounds","unlisted":false}]},{"type":"category","label":"GUIs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\uba54\ub274","href":"/Neoforge-Korean-Documentation/docs/gui/menus","docId":"gui/menus","unlisted":false},{"type":"link","label":"Screens","href":"/Neoforge-Korean-Documentation/docs/gui/screens","docId":"gui/screens","unlisted":false}]},{"type":"category","label":"\uc544\uc774\ud15c","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"BlockEntityWithoutLevelRenderer","href":"/Neoforge-Korean-Documentation/docs/items/bewlr","docId":"items/bewlr","unlisted":false},{"type":"link","label":"\uc0c1\ud638\uc791\uc6a9 \ud30c\uc774\ud504\ub77c\uc778","href":"/Neoforge-Korean-Documentation/docs/items/interactionpipeline","docId":"items/interactionpipeline","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/items/"},{"type":"category","label":"\uad6c\ubc84\uc804","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8 1.20\uc73c\ub85c \uc5c5\uadf8\ub808\uc774\ub4dc \ud558\uae30","href":"/Neoforge-Korean-Documentation/docs/legacy/porting","docId":"legacy/porting","unlisted":false}]},{"type":"category","label":"\uae30\ud0c0 \uae30\ub2a5","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Text Components","href":"/Neoforge-Korean-Documentation/docs/misc/components","docId":"misc/components","unlisted":false},{"type":"link","label":"\ubaa8\ub4dc \uc124\uc815 \ud30c\uc77c","href":"/Neoforge-Korean-Documentation/docs/misc/config","docId":"misc/config","unlisted":false},{"type":"link","label":"\ub514\ubc84\uadf8 \ud504\ub85c\ud30c\uc77c\ub7ec","href":"/Neoforge-Korean-Documentation/docs/misc/debugprofiler","docId":"misc/debugprofiler","unlisted":false},{"type":"link","label":"\uac8c\uc784 \ud14c\uc2a4\ud2b8","href":"/Neoforge-Korean-Documentation/docs/misc/gametest","docId":"misc/gametest","unlisted":false},{"type":"link","label":"\ud0a4 \ub9e4\ud551","href":"/Neoforge-Korean-Documentation/docs/misc/keymappings","docId":"misc/keymappings","unlisted":false},{"type":"link","label":"\ud3ec\uc9c0 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8 \uc2dc\uc2a4\ud15c","href":"/Neoforge-Korean-Documentation/docs/misc/updatechecker","docId":"misc/updatechecker","unlisted":false}]},{"type":"category","label":"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\uc0ac\uc804 \uc124\uc815","href":"/Neoforge-Korean-Documentation/docs/networking/configuration-tasks","docId":"networking/configuration-tasks","unlisted":false},{"type":"link","label":"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0","href":"/Neoforge-Korean-Documentation/docs/networking/entities","docId":"networking/entities","unlisted":false},{"type":"link","label":"\uc0c8\ub85c\uc6b4 \ud328\ud0b7 \ub4f1\ub85d\ud558\uae30","href":"/Neoforge-Korean-Documentation/docs/networking/payload","docId":"networking/payload","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/networking/"},{"type":"category","label":"Rendering","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Model Extensions","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Face Data","href":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/facedata","docId":"rendering/modelextensions/facedata","unlisted":false},{"type":"link","label":"Render Types","href":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/rendertypes","docId":"rendering/modelextensions/rendertypes","unlisted":false},{"type":"link","label":"Root Transforms","href":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/transforms","docId":"rendering/modelextensions/transforms","unlisted":false},{"type":"link","label":"Part Visibility","href":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/visibility","docId":"rendering/modelextensions/visibility","unlisted":false}]},{"type":"category","label":"Custom Model Loaders","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"BakedModel","href":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/bakedmodel","docId":"rendering/modelloaders/bakedmodel","unlisted":false},{"type":"link","label":"ItemOverrides","href":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/itemoverrides","docId":"rendering/modelloaders/itemoverrides","unlisted":false},{"type":"link","label":"Transform","href":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/transform","docId":"rendering/modelloaders/transform","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/"}]},{"type":"category","label":"\ub9ac\uc18c\uc2a4","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"\ub9ac\uc18c\uc2a4 \ud329","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"\ubaa8\ub378","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Item Properties","href":"/Neoforge-Korean-Documentation/docs/resources/client/models/itemproperties","docId":"resources/client/models/itemproperties","unlisted":false},{"type":"link","label":"Coloring Textures","href":"/Neoforge-Korean-Documentation/docs/resources/client/models/tinting","docId":"resources/client/models/tinting","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/resources/client/models/"}],"href":"/Neoforge-Korean-Documentation/docs/resources/client/"},{"type":"category","label":"\ub370\uc774\ud130\ud329","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Advancements","href":"/Neoforge-Korean-Documentation/docs/resources/server/advancements","docId":"resources/server/advancements","unlisted":false},{"type":"link","label":"Conditionally-Loaded Data","href":"/Neoforge-Korean-Documentation/docs/resources/server/conditional","docId":"resources/server/conditional","unlisted":false},{"type":"link","label":"Global Loot Modifiers","href":"/Neoforge-Korean-Documentation/docs/resources/server/glm","docId":"resources/server/glm","unlisted":false},{"type":"link","label":"Loot Tables","href":"/Neoforge-Korean-Documentation/docs/resources/server/loottables","docId":"resources/server/loottables","unlisted":false},{"type":"category","label":"Recipes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Custom Recipes","href":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/custom","docId":"resources/server/recipes/custom","unlisted":false},{"type":"link","label":"Non-Datapack Recipes","href":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/incode","docId":"resources/server/recipes/incode","unlisted":false},{"type":"link","label":"Ingredients","href":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/ingredients","docId":"resources/server/recipes/ingredients","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/"},{"type":"link","label":"Tags","href":"/Neoforge-Korean-Documentation/docs/resources/server/tags","docId":"resources/server/tags","unlisted":false}],"href":"/Neoforge-Korean-Documentation/docs/resources/server/"}]}]},"docs":{"advanced/accesstransformers":{"id":"advanced/accesstransformers","title":"\uc811\uadfc \uc81c\uc5b4\uc790 \ubcc0\ud615\ud558\uae30","description":"\uc811\uadfc \uc81c\uc5b4\uc790 \ubcc0\ud615\ud558\uae30","sidebar":"mainSidebar"},"blockentities/ber":{"id":"blockentities/ber","title":"BlockEntityRenderer","description":"BlockEntityRenderer, \ub610\ub294 BER \uc740 \uc815\uc801\uc778 \ubaa8\ub378(JSON, OBJ, B3D, others)\ub9cc\uc73c\ub860 \ud45c\ud604\ud558\uae30 \ud798\ub4e0 \ube14\ub85d\ub4e4\uc744 \ub80c\ub354\ub9c1\ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc774\ub54c \ud574\ub2f9 \ube14\ub85d\uc740 BlockEntity \uac00 \uc788\uc5b4\uc57c\ub9cc \ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"blockentities/index":{"id":"blockentities/index","title":"\ube14\ub85d \uc5d4\ud2f0\ud2f0","description":"\ube14\ub85d \uc5d4\ud2f0\ud2f0(BlockEntity)\ub294 \ube14\ub85d\uc5d0 \uc885\uc18d\ub41c \uc5d4\ud2f0\ud2f0\uc785\ub2c8\ub2e4. \ub3d9\uc801\uc73c\ub85c \ubcc0\ud558\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uac70\ub098, \ub9e4 \ud2f1\ub9c8\ub2e4 \uc218\ud589\ub3fc\uc57c \ud558\ub294 \uc791\uc5c5\uc744 \ud558\uac70\ub098, \ub3d9\uc801 \ub80c\ub354\ub9c1\uc744 \ud574\uc57c \ud560 \ub54c \ub4f1, BlockState \ub9cc\uc73c\ub85c\ub294 \uad6c\ud604\ud558\uae30 \uc5b4\ub824\uc6b4 \uae30\ub2a5\ub4e4\uc744 \ub9cc\ub4e4 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc0c1\uc790 \uc778\ubca4\ud1a0\ub9ac, \ud654\ub85c \uc81c\ub828, \uc2e0\ud638\uae30\uc758 \uad11\uc5ed \ud3ec\uc158 \ud6a8\uacfc\ub97c \uad6c\ud604\ud558\ub294 \ub370\uc5d0 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub354 \ubcf5\uc7a1\ud55c \uc608\uc81c\ub4e4\uc740 \uad74\ucc29\uae30, \uc544\uc774\ud15c \uc815\ub82c\ud558\ub294 \uae30\uacc4, \ud30c\uc774\ud504, \ub514\uc2a4\ud50c\ub808\uc774 \ub4f1 \ub2e4\ub978 \ubaa8\ub4dc\uc5d0\uc11c \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"blocks/index":{"id":"blocks/index","title":"\ube14\ub85d","description":"\ube14\ub85d\uc740 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \ud575\uc2ec \ud6a8\uc18c\ub85c \ub808\ubca8\uc758 \ud544\uc218\uc801 \uad6c\uc131 \uc694\uc18c\uc785\ub2c8\ub2e4. \uc9c0\ud615\uacfc \uad6c\uc870\ubb3c, \uadf8\ub9ac\uace0 \uae30\uacc4\ub4e4 \uc804\ubd80 \ube14\ub85d\ub4e4\ub85c \uc774\ub8e8\uc5b4\uc838 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ubc88\uc7a5\uc5d0\uc11c\ub294 \ube14\ub85d \uc81c\uc791\uc758 \ud575\uc2ec\uacfc \uc751\uc6a9 \ubc29\uc548\ub4e4\uc5d0 \ub300\ud574 \ub2e4\ub8e8\uaca0\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"blocks/states":{"id":"blocks/states","title":"\ube14\ub85d\uc758 \uc0c1\ud0dc","description":"\uc810\uc9c4\uc801\uc73c\ub85c \uc790\ub77c\ub294 \uc2dd\ubb3c, \ub2e4\uc591\ud55c \ubc30\uce58\uac00 \uac00\ub2a5\ud55c \ubc18\ube14\ub85d \ub4f1, \ud558\ub098\uc758 \ube14\ub85d\uc5d0 \uc5ec\ub7ec \uac00\uc9c0\uc758 \\"\uc0c1\ud0dc\\"\ub97c \ubd80\uc5ec\ud574\uc57c \ud560 \ub584\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 Blockstate\ub97c \ud1b5\ud574 \ud558\ub098\uc758 \ube14\ub85d\uc5d0 \uc5ec\ub7ec \uc0c1\ud0dc\ub97c \ubd80\uc5ec\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/events":{"id":"concepts/events","title":"\uc774\ubca4\ud2b8","description":"\ud3ec\uc9c0\ub294 \uc774\ubca4\ud2b8 \ubc84\uc2a4\ub97c \uc774\uc6a9\ud558\uc5ec \uc5ec\ub7ec \ubaa8\ub4dc\ub4e4\uc774 \ubc14\ub2d0\ub77c \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \uc5ec\ub7ec \uc774\ubca4\ud2b8\uc5d0 \ubc18\uc751\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/internationalization":{"id":"concepts/internationalization","title":"\ub2e4\uad6d\uc5b4 \uc9c0\uc6d0","description":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ub2e4\uad6d\uc5b4\ub97c \uad6d\uc81c\ud654(Internationalization, i18n\ub77c\uace0 \ud558\uae30\ub3c4 \ud569\ub2c8\ub2e4.)\uc640 \ud604\uc9c0\ud654\ub97c \ud1b5\ud574 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uad6d\uc81c\ud654\ub294 \ub2e4\uc591\ud55c \uc5b8\uc5b4\ub97c \uc9c0\uc6d0\ud560\ub54c \ucf54\ub4dc\uc758 \ubcc0\uacbd\uc774 \ud544\uc694\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud558\ub294 \uc124\uacc4 \ubc29\ubc95\uc785\ub2c8\ub2e4, \uadf8\ub9ac\uace0 \ud604\uc9c0\ud654\ub294 \ud45c\uc2dc\ub418\ub294 \uae00\uc790\ub4e4\uc744 \uc720\uc800\uc758 \uc5b8\uc5b4\uc5d0 \ub9de\uac8c \ubc14\uafb8\ub294 \uacfc\uc815\uc785\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/lifecycle":{"id":"concepts/lifecycle","title":"\ubaa8\ub4dc \uc0dd\uba85\uc8fc\uae30","description":"\ubaa8\ub4dc\ub97c \ubd88\ub7ec\uc624\ub294 \uacfc\uc815\uc740 \uc0dd\uba85\uc8fc\uae30\ub77c\uace0 \ud558\ub294 \uc5ec\ub7ec \ub2e8\uacc4\ub85c \ub098\ub20c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc0dd\uba85\uc8fc\uae30\ub294 \uac1d\uccb4 \ub4f1\ub85d, \ub370\uc774\ud130 \uc0dd\uc131 \uc900\ube44, \ub610\ub294 \ub2e4\ub978 \ubaa8\ub4dc\uc640\uc758 \ud1b5\uc2e0 \ub4f1\uc73c\ub85c \ub098\ub258\uba70, \uac01 \uc0dd\uba85\uc8fc\uae30 \ub2e8\uacc4\ub294 \ubaa8\ub4dc\ubcc4 \ubc84\uc2a4\uc5d0 \uc774\ubca4\ud2b8\ub97c \ubc29\uc1a1\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/registries":{"id":"concepts/registries","title":"\ub808\uc9c0\uc2a4\ud2b8\ub9ac","description":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\ub97c \uc774\uc6a9\ud574 \ube14\ub85d \ubc0f \uc544\uc774\ud15c\uacfc \uac19\uc740 \uac1d\uccb4\ub4e4\uc5d0 \uc811\uadfc\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uac1d\uccb4\ub4e4\uc740 \ubaa8\ub450 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0 \ub4f1\ub85d\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4; \ub4f1\ub85d\ub418\uc9c0 \uc54a\uc740 \uac1d\uccb4\ub4e4\uc740 \uac8c\uc784\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/resources":{"id":"concepts/resources","title":"\ub9ac\uc18c\uc2a4\ub780","description":"\ub9ac\uc18c\uc2a4\ub294 \uac8c\uc784\uc774 \uc0ac\uc6a9\ud558\ub294 \ucd94\uac00\uc801\uc778 \ub370\uc774\ud130 \uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ucf54\ub4dc \uc548\uc5d0 \uc788\uc9c0 \uc54a\uace0 \ub370\uc774\ud130 \ud30c\uc77c \ud615\uc2dd\uc73c\ub85c \uc800\uc7a5\ub429\ub2c8\ub2e4.","sidebar":"mainSidebar"},"concepts/sides":{"id":"concepts/sides","title":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \uc0ac\uc774\ub4dc","description":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8 \ubaa8\ub4dc\ub97c \uac1c\ubc1c\ud558\uba74\uc11c \uc219\uc9c0\ud574\uc57c \ud560 \ub9e4\uc6b0 \uc911\uc694\ud55c \uac1c\ub150\uc740 \\"\ud074\ub77c\uc774\uc5b8\ud2b8 \uc0ac\uc774\ub4dc\\" \uc640 \\"\uc11c\ubc84 \uc0ac\uc774\ub4dc\\" \uc785\ub2c8\ub2e4. \uc774\uc5d0 \ub300\ud574 \ub9ce\uc740 \uc0ac\ub78c\ub4e4\uc774 \uc624\ud574\ud558\uace0 \uc788\uace0, \uc774\ub85c \uc778\ud574 \uac8c\uc784\uc744 \ud295\uae30\uac8c \ud558\uc9c4 \uc54a\uc9c0\ub9cc \uc608\uae30\uce58 \ubabb\ud55c \ub3d9\uc791\uc744 \ud558\ub3c4\ub85d \ub9cc\ub4e4 \uc218 \uc788\ub294 \ud574\uacb0\ud558\uae30 \uae4c\ub2e4\ub85c\uc6b4 \uc624\ub958\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datagen/client/localization":{"id":"datagen/client/localization","title":"Language Generation","description":"Language files can be generated for a mod by subclassing LanguageProvider and implementing #addTranslations. Each LanguageProvider subclass created represents a separate locale] (enus represents American English, eses represents Spanish, etc.). After implementation, the provider must be [added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/client/modelproviders":{"id":"datagen/client/modelproviders","title":"Model Generation","description":"Models] can be generated for models or block states by default. Each provides a method of generating the necessary JSONs (ModelBuilder#toJson for models and IGeneratedBlockState#toJson for block states). After implementation, the [associated providers must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/client/sounds":{"id":"datagen/client/sounds","title":"Sound Definition Generation","description":"The sounds.json file can be generated for a mod by subclassing SoundDefinitionsProvider and implementing #registerSounds. After implementation, the provider must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/index":{"id":"datagen/index","title":"\ub370\uc774\ud130 \uc0dd\uc131\uae30","description":"\ub370\uc774\ud130 \uc0dd\uc131\uae30\ub294 \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud574 \ubaa8\ub4dc\uc5d0 \ud544\uc694\ud55c \uc5d0\uc14b\uacfc \ub370\uc774\ud130\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc5d0\uc14b\uacfc \ub370\uc774\ud130\ub4e4\uc744 \ucf54\ub4dc\uc5d0\uc11c \uc815\uc758\ud558\uace0 \ubb38\ubc95\uc774\ub098 \uaddc\uaca9\uc5d0 \uc0c1\uad00\uc5c6\uc774 \ud3b8\ud558\uac8c \uc0dd\uc131\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datagen/server/advancements":{"id":"datagen/server/advancements","title":"Advancement Generation","description":"Advancements] can be generated for a mod by constructing a new AdvancementProvider and providing AdvancementSubProviders. Advancements can either be created and supplied manually or, for convenience, created using Advancement$Builder. The provider must be [added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/server/datapackregistries":{"id":"datagen/server/datapackregistries","title":"Datapack Registry Object Generation","description":"Datapack registry objects can be generated for a mod by constructing a new DatapackBuiltinEntriesProvider and providing a RegistrySetBuilder with the new objects to register. The provider must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/server/glm":{"id":"datagen/server/glm","title":"Global Loot Modifier Generation","description":"Global Loot Modifiers (GLMs) can be generated for a mod by subclassing GlobalLootModifierProvider and implementing #start. Each GLM can be added generated by calling #add and specifying the name of the modifier and the modifier instance to be serialized. After implementation, the provider must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/server/loottables":{"id":"datagen/server/loottables","title":"Loot Table Generation","description":"Loot tables can be generated for a mod by constructing a new LootTableProvider and providing LootTableProvider$SubProviderEntrys. The provider must be added to the DataGenerator.","sidebar":"mainSidebar"},"datagen/server/recipes":{"id":"datagen/server/recipes","title":"Recipe Generation","description":"Recipes can be generated for a mod by subclassing RecipeProvider and implementing #buildRecipes. A recipe is supplied for data generation once a FinishedRecipe view is accepted by the consumer. FinishedRecipes can either be created and supplied manually or, for convenience, created using a RecipeBuilder.","sidebar":"mainSidebar"},"datagen/server/tags":{"id":"datagen/server/tags","title":"Tag Generation","description":"Tags] can be generated for a mod by subclassing TagsProvider and implementing #addTags. After implementation, the provider must be [added to the DataGenerator.","sidebar":"mainSidebar"},"datastorage/attachments":{"id":"datastorage/attachments","title":"\ub370\uc774\ud130 \ubd80\ucc29","description":"\ub370\uc774\ud130 \ubd80\ucc29 \uc2dc\uc2a4\ud15c\uc740 \ube14\ub85d \uc5d4\ud2f0\ud2f0, \uccad\ud06c, \uc5d4\ud2f0\ud2f0, \uadf8\ub9ac\uace0 \uc544\uc774\ud15c \uc2a4\ud0dd\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datastorage/capabilities":{"id":"datastorage/capabilities","title":"\uce90\ud328\ube4c\ub9ac\ud2f0","description":"\uce90\ud328\ube4c\ub9ac\ud2f0\ub294 \uc218\uc2ed \uac1c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc2e0\uacbd \uc4f8 \ud544\uc694 \uc5c6\uc774 \ud2b9\uc815 \uae30\ub2a5\uc744 \uc720\uc5f0\ud558\uace0 \ub3d9\uc801\uc73c\ub85c \uc81c\uacf5\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datastorage/codecs":{"id":"datastorage/codecs","title":"\ucf54\ub371","description":"\ucf54\ub371(Codec)\uc740 \ubaa8\uc7a5\uc758 DataFixerUpper(DFU)\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uc9c1\ub82c\ud654 \ub3c4\uad6c\ub85c, \uac1d\uccb4\ub97c JsonElement \ub610\ub294 Tag\uc640 \uac19\uc740 \uc5ec\ub7ec \ub370\uc774\ud130 \ud3ec\ub9f7\uc73c\ub85c \ubcc0\ud658\ud558\ub294 \ubc29\ubc95\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. DFU\ub294 \ud568\uc218\ud615 \uc5b8\uc5b4\uc778 \ud558\uc2a4\ucf08\uc5d0\uc11c \uc601\uac10\uc744 \ubc1b\uc544 \uc81c\uc791\ub418\uc5b4 \ub9ce\uc740 \uac1c\ub150\uc774 \uc0dd\uc18c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"datastorage/saveddata":{"id":"datastorage/saveddata","title":"\ub808\ubca8 \uc800\uc7a5 \ub370\uc774\ud130","description":"\ub808\ubca8 \uc800\uc7a5 \ub370\uc774\ud130\ub294 (\ub610\ub294 Saved Data, SD) \ub808\ubca8 \uc790\uccb4\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub294\ub370 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gameeffects/particles":{"id":"gameeffects/particles","title":"Particles","description":"Particles are an effect within the game used as polish to better improve immersion. Their usefulness also requires great caution because of their methods of creation and reference.","sidebar":"mainSidebar"},"gameeffects/sounds":{"id":"gameeffects/sounds","title":"\ud6a8\uacfc\uc74c","description":"\ud6a8\uacfc\uc74c\uc740 \uac8c\uc784\uc18d \uc0c1\ud669\uc744 \uc624\ub514\uc624\ub85c \uac8c\uc784\uc18d \uc0c1\ud669\uc744 \uc0dd\ub3d9\uac10 \uc788\uac8c \uc804\ub2ec\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gettingstarted/index":{"id":"gettingstarted/index","title":"\ub124\uc624 \ud3ec\uc9c0 \uc2dc\uc791\ud558\uae30","description":"\uc774 \uc139\uc158\uc740 \ub124\uc624 \ud3ec\uc9c0\ub97c \ud1b5\ud55c \ubaa8\ub4dc \uac1c\ubc1c \ud658\uacbd \uad6c\uc131\uacfc \ubaa8\ub4dc \uc2e4\ud589 \ubc0f \ud14c\uc2a4\ud2b8 \ubc29\ubc95\uc5d0 \ub300\ud574 \ub2e4\ub8f9\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gettingstarted/modfiles":{"id":"gettingstarted/modfiles","title":"\ubaa8\ub4dc \ud30c\uc77c","description":"\ubaa8\ub4dc \ud30c\uc77c\uc740 JAR\uc5d0 \uc5b4\ub5a4 \ubaa8\ub4dc\uac00 \ub4e4\uc5b4\uc788\ub294\uc9c0, \'\ubaa8\ub4dc\' \uba54\ub274\uc5d0 \ud45c\uc2dc\ud560 \uc815\ubcf4\ub294 \ubb34\uc5c7\uc778\uc9c0, \uac8c\uc784\uc5d0\uc11c \ubaa8\ub4dc\ub97c \ubd88\ub7ec\uc624\ub294 \ubc29\ubc95\uc744 \uacb0\uc815\ud558\ub294 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gettingstarted/structuring":{"id":"gettingstarted/structuring","title":"\ubaa8\ub4dc \uad6c\uc870\ud654","description":"\ubaa8\ub4dc\uc758 \ucf54\ub4dc\ubca0\uc774\uc2a4\ub294 \uc720\uc9c0 \uad00\ub9ac \ubc0f \uae30\uc5ec\ud560 \ub54c \uba85\ud655\ud558\uac8c \uc774\ud574\ud558\uae30 \uc26c\uc6b4 \uad6c\uc870\ub97c \uac00\uc838\uc57c \ud569\ub2c8\ub2e4. Java, Minecraft \ubc0f Forge\uc758 \uad8c\uc7a5 \uc0ac\ud56d\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gettingstarted/versioning":{"id":"gettingstarted/versioning","title":"\ubc84\uc804 \uaddc\uc57d","description":"\uc774 \ubb38\uc11c\ub294 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc640 \ub124\uc624 \ud3ec\uc9c0\uc758 \ubc84\uc804 \uaddc\uc57d\uc5d0 \ub300\ud574 \ub2e4\ub8e8\uace0, \ubaa8\ub4dc\uc758 \ubc84\uc804 \uad00\ub9ac\ub97c \uc704\ud55c \ub3c4\uc6c0\ub9d0\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gui/menus":{"id":"gui/menus","title":"\uba54\ub274","description":"\uba54\ub274\ub294 \uadf8\ub798\ud53d \uc720\uc800 \uc778\ud130\ud398\uc774\uc2a4(GUI)\uc758 \ubca1\uc5d4\ub4dc\uc911 \ud558\ub098\ub85c, \uc678\ubd80 \ub370\uc774\ud130\uc640 \uc0c1\ud638\uc791\uc6a9\ud569\ub2c8\ub2e4. \uba54\ub274 \uc790\uccb4\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uc9c0 \uc54a\uace0, \uc624\uc9c1 \uc0ac\uc6a9\uc790\uac00 \ub370\uc774\ud130\uc640 \uac04\uc811\uc801\uc73c\ub85c \uc0c1\ud638\uc791\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. \ub2e4\uc2dc \ub9d0\ud574\uc11c \ub370\uc774\ud130\ub294 \ud2b9\uc815 \uba54\ub274\ub791 \uacb0\ud569(coupling)\ud558\uc9c0 \ub9d0\uc544\uc57c \ud558\uba70 \uadf8 \ucc38\uc870\ub9cc \uc804\ub2ec\ud574\uc57c \ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"gui/screens":{"id":"gui/screens","title":"Screens","description":"Screens are typically the base of all Graphical User Interfaces (GUIs) in Minecraft: taking in user input, verifying it on the server, and syncing the resulting action back to the client. They can be combined with [menus] to create an communication network for inventory-like views, or they can be standalone which modders can handle through their own [network] implementations.","sidebar":"mainSidebar"},"items/bewlr":{"id":"items/bewlr","title":"BlockEntityWithoutLevelRenderer","description":"BlockEntityWithoutLevelRenderer\ub294 \uc544\uc774\ud15c\uc744 \ub3d9\uc801\uc73c\ub85c \ub80c\ub354\ub9c1\ud558\ub294 \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. \uc774 \uc2dc\uc2a4\ud15c\uc740 \uc774\uc804\uc5d0 ItemStack\uc744 \uae30\ubc18\uc73c\ub85c \ub9cc\ub4e0 \uc624\ub798\ub41c \uc2dc\uc2a4\ud15c\ubcf4\ub2e4 \uac04\ub2e8\ud55c\ub370, \uadf8\ub54c\ub294 BlockEntity\ub97c \uc0ac\uc6a9\ud588\uc5b4\uc57c\ub9cc \ud588\uace0, ItemStack\uc5d0 \uc811\uadfc\ud560 \uc218 \uc5c6\uc5c8\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"items/index":{"id":"items/index","title":"\uc544\uc774\ud15c","description":"\uc544\uc774\ud15c\uc740 \ube14\ub85d\ub4e4\uacfc \ub9c8\ucc2c\uac00\uc9c0\ub85c \ubaa8\ub4dc\uc758 \ud575\uc2ec\uc774 \ub418\ub294 \uc694\uc18c\uc785\ub2c8\ub2e4. \ube14\ub85d\uc774 \ud50c\ub808\uc774\uc5b4 \uc8fc\ubcc0\uc758 \ub808\ubca8\uc744 \uad6c\uc131\ud55c\ub2e4\uba74 \uc544\uc774\ud15c\uc740 \ud50c\ub808\uc774\uc5b4\uc758 \uc778\ubca4\ud1a0\ub9ac\ub97c \uad6c\uc131\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"items/interactionpipeline":{"id":"items/interactionpipeline","title":"\uc0c1\ud638\uc791\uc6a9 \ud30c\uc774\ud504\ub77c\uc778","description":"\uc774 \ud398\uc774\uc9c0\ub294 \uc6b0\ud074\ub9ad\uc744 \ud1b5\ud55c \uc0c1\ud638\uc791\uc6a9 \uacfc\uc815, \uadf8\ub9ac\uace0 \uacb0\uacfc(Result)\uac00 \ubb34\uc5c7\uc778\uc9c0, \uc5b4\ub514\uc5d0 \uc4f0\ub294\uc9c0\uc5d0 \ub300\ud574 \ub2e4\ub8f9\ub2c8\ub2e4.","sidebar":"mainSidebar"},"legacy/porting":{"id":"legacy/porting","title":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8 1.20\uc73c\ub85c \uc5c5\uadf8\ub808\uc774\ub4dc \ud558\uae30","description":"\uc544\ub798 \uad6c\ubc84\uc804 \ubaa8\ub4dc\ub97c \uc2e0\ubc84\uc804\uc73c\ub85c \uc5c5\uadf8\ub808\uc774\ub4dc\ud558\ub294 \uac00\uc774\ub4dc\ub4e4\uc744 \uc815\ub9ac\ud574 \ub450\uc5c8\uc2b5\ub2c8\ub2e4. \uba87\uba87 \ubc84\uc804\uc740 \uadf8\ub9ac \uc720\uba85\ud558\uc9c0 \uc54a\uc544 \ud558\ub098\ub85c \ubb36\uc5c8\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/components":{"id":"misc/components","title":"Text Components","description":"\ucef4\ud3ec\ub128\ud2b8(Component)\ub294 \ud14d\uc2a4\ud2b8\ub97c \uc800\uc7a5\ud558\ub294 \ud0c0\uc785\uc785\ub2c8\ub2e4, \ud558\uc704 \ud0c0\uc785\uc778 MutableComponent\ub97c \uc774\uc6a9\ud574 \ub2e4\ub978 \ucef4\ud3ec\ub128\ud2b8\uc640 \uc5f0\uacb0 \ubc0f \uc11c\uc2dd\uc744 \uc801\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucef4\ud3ec\ub128\ud2b8\ub294 \uc544\ub798 \uc815\uc801 \uba54\uc11c\ub4dc\ub4e4\ub85c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:","sidebar":"mainSidebar"},"misc/config":{"id":"misc/config","title":"\ubaa8\ub4dc \uc124\uc815 \ud30c\uc77c","description":"\uc124\uc815 \ud30c\uc77c\uc740 \ubaa8\ub4dc\ub97c \uc124\uc815\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\uace0 \uae30\ubcf8\uac12\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. \ub124\uc624 \ud3ec\uc9c0\ub294 \uc124\uc815 \ud30c\uc77c\ub85c TOML\uc744 \uc0ac\uc6a9\ud558\uba70, NightConfig\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc124\uc815 \ud30c\uc77c\uc744 \uc77d\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/debugprofiler":{"id":"misc/debugprofiler","title":"\ub514\ubc84\uadf8 \ud504\ub85c\ud30c\uc77c\ub7ec","description":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ub514\ubc84\uadf8 \ud504\ub85c\ud30c\uc77c\ub7ec\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2dc\uc2a4\ud15c \ub370\uc774\ud130, \ud604\uc7ac \uac8c\uc784 \uc124\uc815, JVM \ub370\uc774\ud130, \ub808\ubca8 \ub370\uc774\ud130, \uc0ac\uc774\ub4dc \ud2f1 \uc815\ubcf4 \ub4f1\uc744 \ud65c\uc6a9\ud574 \ud2b9\uc815 \ucf54\ub4dc\uac00 \uc5bc\ub9c8\ub098 \uc2dc\uac04\uc744 \uc18c\uc694\ud558\ub294\uc9c0 \uce21\uc815\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. TickEvent\ub098 \ube14\ub85d \uc5d4\ud2f0\ud2f0 tick \ucc98\ub9ac \ub4f1\uc5d0\uc11c \uc774\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc720\uc6a9\ud560 \uc218 \uc788\ub294\ub370, \ubaa8\ub4dc \uac1c\ubc1c\uc790 \ub610\ub294 \uc11c\ubc84 \uc5b4\ub4dc\ubbfc\uc774 \ub799\uc758 \uc6d0\uc778\uc744 \uc27d\uac8c \ud30c\uc545\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/gametest":{"id":"misc/gametest","title":"\uac8c\uc784 \ud14c\uc2a4\ud2b8","description":"\uac8c\uc784 \ud14c\uc2a4\ud2b8\ub294 \uac8c\uc784 \uc18d\uc5d0\uc11c \ub2e8\uc704 \ud14c\uc2a4\ud2b8\ub97c \uc218\ud589\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4. \uc774 \uc2dc\uc2a4\ud15c\uc740 \ud655\uc7a5\ud558\uae30 \uc27d\uace0 \ud55c \ubc88\uc5d0 \uc5ec\ub7ec \ud14c\uc2a4\ud2b8\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud504\ub808\uc784\uc6cc\ud06c\ub294 \uc5ec\ub7ec \uac8c\uc784 \uc18d \uac1d\uccb4\uc758 \uc0c1\ud638 \uc791\uc6a9\uc744 \ud14c\uc2a4\ud2b8\ud560 \ub54c \uc720\uc6a9\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/keymappings":{"id":"misc/keymappings","title":"\ud0a4 \ub9e4\ud551","description":"\ud0a4 \ub9e4\ud551(\ub610\ub294 \ud0a4 \ubc14\uc778\ub529)\uc740 \uc785\ub825\uc5d0 \ub530\ub77c \ud2b9\uc815 \ub3d9\uc791\uc744 \uc218\ud589\ud558\ub294 \uac83\uc744 \ub73b\ud569\ub2c8\ub2e4. \uac01 \ub3d9\uc791\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc785\ub825\uc744 \ucc98\ub9ac\ud560 \ub54c \uc218\ud589\ub418\uba70 \uc870\uc791 \uba54\ub274\uc5d0\uc11c \uc544\ubb34 \ud0a4\uc5d0\ub098 \ud560\ub2f9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"misc/updatechecker":{"id":"misc/updatechecker","title":"\ud3ec\uc9c0 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8 \uc2dc\uc2a4\ud15c","description":"\ud3ec\uc9c0\ub294 \uac00\ubcbc\uc6b4 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8 \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub9cc\uc57d \uc5c5\ub370\uc774\ud2b8\uac00 \uac00\ub2a5\ud55c \ubaa8\ub4dc\uac00 \uc788\ub2e4\uba74, \uba54\uc778 \uba54\ub274\uc758 \\"\ubaa8\ub4dc\\" \ubc84\ud2bc\uacfc \ubaa8\ub4dc \ubaa9\ub85d\uc5d0 \uc544\uc774\ucf58\uc774 \ud45c\uc2dc\ub418\uace0, \ubcc0\uacbd \uc0ac\ud56d\ub3c4 \uadf8 \uc606\uc5d0 \uac19\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc5c5\ub370\uc774\ud2b8\ub97c \uc790\ub3d9\uc73c\ub85c \uc124\uce58\ud558\uc9c4 \uc54a\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"networking/configuration-tasks":{"id":"networking/configuration-tasks","title":"\uc0ac\uc804 \uc124\uc815","description":"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ud50c\ub808\uc774\uc5b4\uac00 \uc11c\ubc84\uc5d0 \uc811\uc18d\ud558\uae30 \uc804, \uc11c\ubc84\uac00 \ud074\ub77c\uc774\uc5b8\ud2b8\ub97c \uc124\uc815\ud558\ub294 \ub2e8\uacc4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub2e8\uacc4\ub294 \uc0ac\uc804 \uc124\uc815 \ub2e8\uacc4\ub77c \ubd88\ub9ac\uba70, \ubc14\ub2d0\ub77c\uc5d0\uc120 \ub9ac\uc18c\uc2a4\ud329 \uc815\ubcf4\ub97c \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ubcf4\ub0bc \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"networking/entities":{"id":"networking/entities","title":"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0","description":"\ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ud1b5\uc2e0\ud558\ub294 \uac83 \ub9d0\uace0\ub3c4 \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\uc2dc\ucf1c\uc8fc\ub294 \uc2dc\uc2a4\ud15c\uc740 \ub2e4\uc591\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"networking/index":{"id":"networking/index","title":"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0","description":"\uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac04\uc758 \uc18c\ud1b5\uc740 \uc131\uacf5\uc801\uc778 \ubaa8\ub4dc\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574 \ud544\uc218\uc801\uc73c\ub85c \ub4e4\uc5b4\uac00\ub294 \uc694\uc18c\uc911 \ud558\ub098\uc785\ub2c8\ub2e4.","sidebar":"mainSidebar"},"networking/payload":{"id":"networking/payload","title":"\uc0c8\ub85c\uc6b4 \ud328\ud0b7 \ub4f1\ub85d\ud558\uae30","description":"\ud328\ud0b7\uc740 \uc784\uc758\uc758 \ub370\uc774\ud130\ub97c \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc11c\ubc84\uac00 \uc11c\ub85c \uc8fc\uace0\ubc1b\uc744 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uac01 \ud328\ud0b7\uc740 \ud55c \ub124\uc784 \uc2a4\ud398\uc774\uc2a4 \uc544\ub798 IPayloadRegistrar(\ud328\ud0b7 \uc9d1\ud569)\uc5d0 \ub4f1\ub85d\ud558\uba70, \uc774\ub294 RegisterPayloadHandlerEvent\ub97c \ud1b5\ud574 \ubc1b\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"rendering/modelextensions/facedata":{"id":"rendering/modelextensions/facedata","title":"Face Data","description":"In a vanilla \\"elements\\" model, additional data about an element\'s faces can be specified at either the element level or the face level. Faces which do not specify their own face data will fall back to the element\'s face data or a default if no face data is specified at the element level.","sidebar":"mainSidebar"},"rendering/modelextensions/rendertypes":{"id":"rendering/modelextensions/rendertypes","title":"Render Types","description":"Adding the render_type entry at the top level of the JSON suggests to the loader what render type the model should use. If not specified, the loader gets to pick the render type(s) used, often falling back to the render types returned by ItemBlockRenderTypes#getRenderLayers().","sidebar":"mainSidebar"},"rendering/modelextensions/transforms":{"id":"rendering/modelextensions/transforms","title":"Root Transforms","description":"Adding the transform entry at the top level of a model JSON suggests to the loader that a transformation should be applied to all geometry right before the rotations in the blockstate] file in the case of a block model, and before the [display transforms in the case of an item model. The transformation is available through IGeometryBakingContext#getRootTransform() in IUnbakedGeometry#bake().","sidebar":"mainSidebar"},"rendering/modelextensions/visibility":{"id":"rendering/modelextensions/visibility","title":"Part Visibility","description":"Adding the visibility entry at the top level of a model JSON allows control over the visibility of different parts of the model to decide whether they should be baked into the final BakedModel. The definition of a \\"part\\" is dependent on the model loader loading this model and custom model loaders are free to ignore this entry completely. Out of the model loaders provided by Forge only the composite model loader and the OBJ model loader make use of this functionality. The visibility entries are specified as \\"part name\\": boolean entries.","sidebar":"mainSidebar"},"rendering/modelloaders/bakedmodel":{"id":"rendering/modelloaders/bakedmodel","title":"BakedModel","description":"BakedModel is the result of calling UnbakedModel#bake for the vanilla model loader or IUnbakedGeometry#bake for custom model loaders. Unlike UnbakedModel or IUnbakedGeometry, which purely represents a shape without any concept of items or blocks, BakedModel is not as abstract. It represents geometry that has been optimized and reduced to a form where it is (almost) ready to go to the GPU. It can also process the state of an item or block to change the model.","sidebar":"mainSidebar"},"rendering/modelloaders/index":{"id":"rendering/modelloaders/index","title":"Custom Model Loaders","description":"A \\"model\\" is simply a shape. It can be a simple cube, it can be several cubes, it can be a truncated icosidodecahedron, or anything in between. Most models you\'ll see will be in the vanilla JSON format. Models in other formats are loaded into IUnbakedGeometrys by an IGeometryLoader at runtime. Forge provides default implementations for WaveFront OBJ files, buckets, composite models, models in different render layers, and a reimplementation of Vanilla\'s builtin/generated item model. Most things do not care about what loaded the model or what format it\'s in as they are all eventually represented by an BakedModel in code.","sidebar":"mainSidebar"},"rendering/modelloaders/itemoverrides":{"id":"rendering/modelloaders/itemoverrides","title":"ItemOverrides","description":"ItemOverrides provides a way for an BakedModel to process the state of an ItemStack and return a new BakedModel; thereafter, the returned model replaces the old one. ItemOverrides represents an arbitrary function (BakedModel, ItemStack, ClientLevel, LivingEntity, int) \u2192 BakedModel, making it useful for dynamic models. In vanilla, it is used to implement item property overrides.","sidebar":"mainSidebar"},"rendering/modelloaders/transform":{"id":"rendering/modelloaders/transform","title":"Transform","description":"When an BakedModel is being rendered as an item, it can apply special handling depending on which transform it is being rendered in. \\"Transform\\" means in what context the model is being rendered. The possible transforms are represented in code by the ItemDisplayContext enum. There are two systems for handling transform: the deprecated vanilla system, constituted by BakedModel#getTransforms, ItemTransforms, and ItemTransform, and the Forge system, embodied by the method IForgeBakedModel#applyTransform. The vanilla code is patched to favor using applyTransform over the vanilla system whenever possible.","sidebar":"mainSidebar"},"resources/client/index":{"id":"resources/client/index","title":"\ub9ac\uc18c\uc2a4 \ud329","description":"\ub9ac\uc18c\uc2a4 \ud329 \uc740 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\uc758 \uc5d0\uc14b \ub370\uc774\ud130\ub97c assets \ud3f4\ub354\ub97c \ud1b5\ud574 \ub9c8\uc74c\ub300\ub85c \ubcc0\uacbd\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uc0c8\ub85c\uc6b4 \ud14d\uc2a4\uccd0, \ubaa8\ub378, \uc18c\ub9ac, \uc5b8\uc5b4 \ud30c\uc77c \ub4f1\uc744 \ucd94\uac00\ud558\ub294\ub370 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud3ec\uc9c0\ub791 \ubaa8\ub4dc\ub4e4 \ub610\ud55c \ub9ac\uc18c\uc2a4\ud329\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uace0, \uc774\ub807\uac8c \ucd94\uac00\ub41c \uc5d0\uc14b \ud30c\uc77c\ub4e4 \ub610\ud55c \uc720\uc800\ub4e4\uc774 \ub9ac\uc18c\uc2a4 \ud329\uc744 \ud1b5\ud574 \ub9c8\uc74c\ub300\ub85c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"resources/client/models/index":{"id":"resources/client/models/index","title":"\ubaa8\ub378","description":"\ubaa8\ub378 \uc2dc\uc2a4\ud15c\uc740 \ub9ac\uc18c\uc2a4\ud329\uc744 \ud1b5\ud574 \ube14\ub85d\uacfc \uc544\uc774\ud15c\uc5d0 \ubaa8\uc591\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4. \ubaa8\ub378 \uc2dc\uc2a4\ud15c\uc758 \uae30\ub2a5 \uc911 \ud558\ub098\ub294 \ube14\ub85d\uacfc \uc544\uc774\ud15c\uc758 \ud14d\uc2a4\uccd0\ubfd0 \uc544\ub2c8\ub77c \uc804\uccb4 \ubaa8\uc591\uae4c\uc9c0 \ub9ac\uc18c\uc2a4\ud329\uc73c\ub85c \ub2e4\ub8e8\ub294 \uac83\uc774\uae30\uc5d0, \uc544\uc774\ud15c \ubc0f \ube14\ub85d\uc744 \ucd94\uac00\ud558\ub294 \ubaa8\ub4dc\ub4e4\uc740 \uc790\uccb4\uc801\uc73c\ub85c \uc791\uc740 \ub9ac\uc18c\uc2a4\ud329\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4.","sidebar":"mainSidebar"},"resources/client/models/itemproperties":{"id":"resources/client/models/itemproperties","title":"Item Properties","description":"Item properties are a way for the \\"properties\\" of items to be exposed to the model system. An example is the bow, where the most important property is how far the bow has been pulled. This information is then used to choose a model for the bow, creating an animation for pulling it.","sidebar":"mainSidebar"},"resources/client/models/tinting":{"id":"resources/client/models/tinting","title":"Coloring Textures","description":"Many blocks and items in vanilla change their texture color depending on where they are or what properties they have, such as grass. Models support specifying \\"tint indices\\" on faces, which are integers that can then be handled by BlockColors and ItemColors. See the wiki for information on how tint indices are defined in vanilla models.","sidebar":"mainSidebar"},"resources/server/advancements":{"id":"resources/server/advancements","title":"Advancements","description":"Advancements are tasks that can be achieved by the player which may advance the progress of the game. Advancements can trigger based on any action the player may be directly involved in.","sidebar":"mainSidebar"},"resources/server/conditional":{"id":"resources/server/conditional","title":"Conditionally-Loaded Data","description":"There are times when modders may want to include data-driven objects using information from another mod without having to explicitly make that mod a dependency. Other cases may be to swap out certain objects with other modded entries when they are present. This can be done through the conditional subsystem.","sidebar":"mainSidebar"},"resources/server/glm":{"id":"resources/server/glm","title":"Global Loot Modifiers","description":"Global Loot Modifiers are a data-driven method of handling modification of harvested drops without the need to overwrite dozens to hundreds of vanilla loot tables or to handle effects that would require interactions with another mod\'s loot tables without knowing what mods may be loaded. Global Loot Modifiers are also stacking, rather than last-load-wins, similar to tags.","sidebar":"mainSidebar"},"resources/server/index":{"id":"resources/server/index","title":"\ub370\uc774\ud130\ud329","description":"\ubaa8\uc7a5\uc740 \ub9c8\uc778\ud06c\ub798\ud504\ud2b8 \ubc84\uc804 1.13\uc5d0 \ub370\uc774\ud130\ud329\uc744 \ucd94\uac00\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774\ub294 data \ud3f4\ub354\ub97c \ud1b5\ud558\uc5ec \ub17c\ub9ac \uc11c\ubc84\ub97c \ubcf4\ub2e4 \uc27d\uac8c \uc218\uc815\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc8fc\uc5c8\uc2b5\ub2c8\ub2e4. \uc218\uc815\uac00\ub2a5\ud55c \ud56d\ubaa9\ub4e4\uc5d0\ub294, \ub3c4\uc804\uacfc\uc81c, \ub178\ud68d\ubb3c \ubaa9\ub85d, \uad6c\uc870\ubb3c, \uc870\ud569\ubc95, \ud0dc\uadf8 \ub4f1\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub2f9\uc2e0\uc774 \uac1c\ubc1c\ud558\ub294 \ubaa8\ub4dc\uc640 \ud3ec\uc9c0 \ub610\ud55c \uc790\uae30\ub9cc\uc758 \ub370\uc774\ud130\ud329\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30\uc5d0 \ub370\uc774\ud130\ud329\uc744 \uc774\uc6a9\ud558\uba74 \ub204\uad6c\ub098 \ub2e4\ub978 \ubaa8\ub4dc\uc5d0\uc11c \uc81c\uacf5\ub418\ub294 \uac83\ub4e4\uc744 \ud3ec\ud568\ud55c \ubaa8\ub4e0 \uc870\ud569\ubc95, \ub178\ud68d\ubb3c \ubaa9\ub85d, \uadf8\ub9ac\uace0 \ub2e4\ub978 \ub370\uc774\ud130\ub4e4\uc744 \uc218\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","sidebar":"mainSidebar"},"resources/server/loottables":{"id":"resources/server/loottables","title":"Loot Tables","description":"Loot tables are logic files which dictate what should happen when various actions or scenarios occur. Although the vanilla system deals purely with item generation, the system can be expanded to perform any number of defined actions.","sidebar":"mainSidebar"},"resources/server/recipes/custom":{"id":"resources/server/recipes/custom","title":"Custom Recipes","description":"Every recipe definition is made up of three components: the Recipe implementation which holds the data and handles the execution logic with the provided inputs, the RecipeType which represents the category or context the recipe will be used in, and the RecipeSerializer which handles decoding and network communication of the recipe data. How one chooses to use the recipe is up to the implementor.","sidebar":"mainSidebar"},"resources/server/recipes/incode":{"id":"resources/server/recipes/incode","title":"Non-Datapack Recipes","description":"Not all recipes are simplistic enough or migrated to using data-driven recipes. Some subsystems still need to be patched within the codebase to provide support for adding new recipes.","sidebar":"mainSidebar"},"resources/server/recipes/index":{"id":"resources/server/recipes/index","title":"Recipes","description":"Recipes are a way to transform some number of objects into other objects within a Minecraft world. Although the vanilla system deals purely with item transformations, the system as a whole can be expanded to use any object the programmer creates.","sidebar":"mainSidebar"},"resources/server/recipes/ingredients":{"id":"resources/server/recipes/ingredients","title":"Ingredients","description":"Ingredients are predicate handlers for item-based inputs which check whether a certain ItemStack meets the condition to be a valid input in a recipe. All vanilla recipes that take inputs use an Ingredient or a list of Ingredients, which is then merged into a single Ingredient.","sidebar":"mainSidebar"},"resources/server/tags":{"id":"resources/server/tags","title":"Tags","description":"Tags are generalized sets of objects in the game used for grouping related things together and providing fast membership checks.","sidebar":"mainSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/c0e956e0.f9869e16.js b/assets/js/c0e956e0.f9869e16.js new file mode 100644 index 000000000..0553dd656 --- /dev/null +++ b/assets/js/c0e956e0.f9869e16.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[2868],{6654:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var a=i(5893),o=i(1151);const r={},t="\uc0ac\uc804 \uc124\uc815",s={id:"networking/configuration-tasks",title:"\uc0ac\uc804 \uc124\uc815",description:"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ud50c\ub808\uc774\uc5b4\uac00 \uc11c\ubc84\uc5d0 \uc811\uc18d\ud558\uae30 \uc804, \uc11c\ubc84\uac00 \ud074\ub77c\uc774\uc5b8\ud2b8\ub97c \uc124\uc815\ud558\ub294 \ub2e8\uacc4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub2e8\uacc4\ub294 \uc0ac\uc804 \uc124\uc815 \ub2e8\uacc4\ub77c \ubd88\ub9ac\uba70, \ubc14\ub2d0\ub77c\uc5d0\uc120 \ub9ac\uc18c\uc2a4\ud329 \uc815\ubcf4\ub97c \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ubcf4\ub0bc \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.",source:"@site/docs/networking/configuration-tasks.md",sourceDirName:"networking",slug:"/networking/configuration-tasks",permalink:"/Neoforge-Korean-Documentation/docs/networking/configuration-tasks",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0",permalink:"/Neoforge-Korean-Documentation/docs/networking/"},next:{title:"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0",permalink:"/Neoforge-Korean-Documentation/docs/networking/entities"}},c={},l=[{value:"\uc0ac\uc804 \uc124\uc815 \ucd94\uac00\ud558\uae30",id:"\uc0ac\uc804-\uc124\uc815-\ucd94\uac00\ud558\uae30",level:2},{value:"\uc0ac\uc804 \uc124\uc815 \uad6c\ud604\ud558\uae30",id:"\uc0ac\uc804-\uc124\uc815-\uad6c\ud604\ud558\uae30",level:2},{value:"\uc0ac\uc804 \uc124\uc815 \uc2b9\uc778\ud558\uae30",id:"\uc0ac\uc804-\uc124\uc815-\uc2b9\uc778\ud558\uae30",level:2},{value:"\ub9ac\uc2a4\ub108 \uc7ac\uc0ac\uc6a9\ud558\uae30",id:"\ub9ac\uc2a4\ub108-\uc7ac\uc0ac\uc6a9\ud558\uae30",level:3},{value:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \uc0ac\uc804 \uc124\uc815 \uc2b9\uc778\ud558\uae30",id:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c-\uc0ac\uc804-\uc124\uc815-\uc2b9\uc778\ud558\uae30",level:3},{value:"\ub85c\uadf8\uc778 \uc9c0\uc5f0",id:"\ub85c\uadf8\uc778-\uc9c0\uc5f0",level:2}];function d(n){const e={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...n.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e.h1,{id:"\uc0ac\uc804-\uc124\uc815",children:"\uc0ac\uc804 \uc124\uc815"}),"\n",(0,a.jsx)(e.p,{children:"\ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ud50c\ub808\uc774\uc5b4\uac00 \uc11c\ubc84\uc5d0 \uc811\uc18d\ud558\uae30 \uc804, \uc11c\ubc84\uac00 \ud074\ub77c\uc774\uc5b8\ud2b8\ub97c \uc124\uc815\ud558\ub294 \ub2e8\uacc4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub2e8\uacc4\ub294 \uc0ac\uc804 \uc124\uc815 \ub2e8\uacc4\ub77c \ubd88\ub9ac\uba70, \ubc14\ub2d0\ub77c\uc5d0\uc120 \ub9ac\uc18c\uc2a4\ud329 \uc815\ubcf4\ub97c \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ubcf4\ub0bc \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4."}),"\n",(0,a.jsx)(e.p,{children:"\ubaa8\ub4dc\ub4e4\ub3c4 \uc774 \ub2e8\uacc4\uc5d0 \ud328\ud0b7\uc744 \uc804\uc1a1\ud558\uc5ec \ucd94\uac00 \uc124\uc815 \uc815\ubcf4\ub97c \ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,a.jsx)(e.h2,{id:"\uc0ac\uc804-\uc124\uc815-\ucd94\uac00\ud558\uae30",children:"\uc0ac\uc804 \uc124\uc815 \ucd94\uac00\ud558\uae30"}),"\n",(0,a.jsxs)(e.p,{children:["\uc124\uc815 \ub2e8\uacc4\uc5d0 \ud328\ud0b7\uc744 \ubcf4\ub0b4\uc2dc\ub824\uba74 \uba3c\uc800 ",(0,a.jsx)(e.code,{children:"OnGameConfigurationEvent"}),"\ub97c \ud1b5\ud574 \uc0ac\uc804 \uc124\uc815\uc744 \ub4f1\ub85d\ud558\uc154\uc57c \ud569\ub2c8\ub2e4."]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"@SubscribeEvent\npublic static void register(final OnGameConfigurationEvent event) {\n event.register(new MyConfigurationTask());\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.code,{children:"OnGameConfigurationEvent"}),"\ub294 \ubaa8\ub4dc\ubcc4 \ubc84\uc2a4\uc5d0 \ubc29\uc1a1\ub418\uba70, \uc0c8\ub85c \uc811\uc18d\ud558\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ud1b5\uc2e0\ud558\ub294 \ud328\ud0b7 \ub9ac\uc2a4\ub108\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774 \ub9ac\uc2a4\ub108\ub97c \ud65c\uc6a9\ud574 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uadc0\ud558\uc758 \ubaa8\ub4dc\uac00 \uc788\ub294\uc9c0 \ud655\uc778\ud558\uace0, \uc774\uc5d0 \ub9de\ub294 \uc0ac\uc804 \uc124\uc815\uc744 \ucd94\uac00\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,a.jsx)(e.h2,{id:"\uc0ac\uc804-\uc124\uc815-\uad6c\ud604\ud558\uae30",children:"\uc0ac\uc804 \uc124\uc815 \uad6c\ud604\ud558\uae30"}),"\n",(0,a.jsxs)(e.p,{children:["\uc0ac\uc804 \uc124\uc815\uc740 ",(0,a.jsx)(e.code,{children:"ICustomConfigurationTask"}),"\ub85c \ud45c\ud604\ub418\uba70, \ub450 \uac1c\uc758 \uba54\uc11c\ub4dc ",(0,a.jsx)(e.code,{children:"void run(Consumer sender);"}),", ",(0,a.jsx)(e.code,{children:"ConfigurationTask.Type type();"}),"\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"#run"}),"\uc740 \uc0ac\uc804 \uc124\uc815\uc774 \uc218\ud589\ub418\uba74 \ud638\ucd9c\ub418\ub294 \uba54\uc11c\ub4dc\uc785\ub2c8\ub2e4. \uc778\uc790 ",(0,a.jsx)(e.code,{children:"sender"}),"\ub97c \ud1b5\ud574 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ud328\ud0b7\uc744 \ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"#type"}),"\uc740 \uac01 \uc0ac\uc804 \uc124\uc815\uc744 \uad6c\ubd84\ud558\uae30 \uc704\ud55c ",(0,a.jsx)(e.code,{children:"$Type"}),"\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4.\n\uc608\uc2dc\ub85c \ub9cc\ub4e0 \uc0ac\uc804 \uc124\uc815\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:"]}),"\n"]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:'// \uc0ac\uc804 \uc124\uc815 MyConfigurationTask\npublic record MyConfigurationTask implements ICustomConfigurationTask {\n public static final ConfigurationTask.Type TYPE = new ConfigurationTask.Type(new ResourceLocation("mymod:my_task"));\n \n @Override\n public void run(final Consumer sender) {\n final MyData payload = new MyData();\n sender.accept(payload); // \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uc0ac\uc804 \uc124\uc815 \ud328\ud0b7 MyData \uc804\uc1a1\n }\n\n @Override\n public ConfigurationTask.Type type() {\n return TYPE; // \ub2e4\ub978 \uc0ac\uc804 \uc124\uc815\uacfc \uad6c\ubd84\ud558\uae30 \uc704\ud55c Type\n }\n}\n'})}),"\n",(0,a.jsx)(e.h2,{id:"\uc0ac\uc804-\uc124\uc815-\uc2b9\uc778\ud558\uae30",children:"\uc0ac\uc804 \uc124\uc815 \uc2b9\uc778\ud558\uae30"}),"\n",(0,a.jsx)(e.p,{children:"\uc11c\ubc84\ub294 \uac01 \uc0ac\uc804 \uc124\uc815\uc744 \ud558\ub098\uc529 \uc218\ud589\ud569\ub2c8\ub2e4, \uc124\uc815\uc774 \uc644\ub8cc\ub418\uc5c8\ub2e4\uace0 \uc2b9\uc778\ub418\uc5b4\uc57c \ub2e4\uc74c \uc124\uc815\uc73c\ub85c \ub118\uc5b4\uac11\ub2c8\ub2e4."}),"\n",(0,a.jsx)(e.p,{children:"\uc0ac\uc804 \uc124\uc815\uc744 \uc2b9\uc778\ud558\ub294 \ub370\ub294 \ub450 \uac00\uc9c0 \ubc29\ubc95\uc774 \uc788\uc2b5\ub2c8\ub2e4:"}),"\n",(0,a.jsx)(e.h3,{id:"\ub9ac\uc2a4\ub108-\uc7ac\uc0ac\uc6a9\ud558\uae30",children:"\ub9ac\uc2a4\ub108 \uc7ac\uc0ac\uc6a9\ud558\uae30"}),"\n",(0,a.jsx)(e.p,{children:"\uc0ac\uc804 \uc124\uc815\uc5d0 \uc788\uc5b4 \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 \uc751\ub2f5\uc774 \ud544\uc694 \uc5c6\uc744 \uacbd\uc6b0 \ub2e8\uc21c\ud788 \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 \ub9ac\uc2a4\ub108\ub97c \ud1b5\ud574 \uc11c\ubc84\uc5d0\uc11c \uc644\ub8cc\ub85c \uc2b9\uc778\ud558\uba74 \ub429\ub2c8\ub2e4."}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:'public record MyConfigurationTask(ServerConfigurationListener listener) implements ICustomConfigurationTask {\n public static final ConfigurationTask.Type TYPE = new ConfigurationTask.Type(new ResourceLocation("mymod:my_task"));\n \n @Override\n public void run(final Consumer sender) {\n final MyData payload = new MyData();\n sender.accept(payload);\n listener.finishCurrentTask(type()); // \ud604\uc7ac \uc0ac\uc804 \uc124\uc815\uc774 \uc644\ub8cc\ub418\uc5c8\ub2e4\uace0 \ud45c\uc2dc\ud568\n }\n\n @Override\n public ConfigurationTask.Type type() {\n return TYPE;\n }\n}\n'})}),"\n",(0,a.jsxs)(e.p,{children:["\ud074\ub77c\uc774\uc5b8\ud2b8\uc758 \ub9ac\uc2a4\ub108\ub294 \uc544\ub798\uc640 \uac19\uc774 ",(0,a.jsx)(e.code,{children:"OnGameConfigurationEvent"}),"\uc5d0\uc11c \ubc1b\uc544\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"@SubscribeEvent\npublic static void register(final OnGameConfigurationEvent event) {\n event.register(new MyConfigurationTask(event.listener()));\n}\n"})}),"\n",(0,a.jsx)(e.p,{children:"\uc774\ub7ec\uba74 \ub2e4\uc74c \uc0ac\uc804 \uc124\uc815\uc774 \ubc14\ub85c \uc218\ud589\ub418\uba70 \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 \uc751\ub2f5\uc740 \ud544\uc694 \uc5c6\uc2b5\ub2c8\ub2e4, \ub2e4\uc2dc \ub9d0\ud574\uc11c \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc0ac\uc804 \uc124\uc815\uc744 \uc644\ub8cc\ud558\uae30\uae4c\uc9c0 \uae30\ub2e4\ub9ac\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4."}),"\n",(0,a.jsx)(e.h3,{id:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c-\uc0ac\uc804-\uc124\uc815-\uc2b9\uc778\ud558\uae30",children:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \uc0ac\uc804 \uc124\uc815 \uc2b9\uc778\ud558\uae30"}),"\n",(0,a.jsx)(e.p,{children:"\ub9cc\uc57d \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c\ub3c4 \uc0ac\uc804 \uc124\uc815\uc774 \uc131\uacf5\ud588\ub2e4\uace0 \uc2b9\uc778\ud574\uc57c \ud55c\ub2e4\uba74, \uc544\ub798\uc640 \uac19\uc774 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc124\uc815 \uc131\uacf5\uc2dc \ub300\ub2f5\ud560 \ub54c \uc0ac\uc6a9\ud560 \ud328\ud0b7\uc744 \uc815\uc758\ud558\uc138\uc694:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:'public record AckPayload() implements CustomPacketPayload {\n public static final ResourceLocation ID = new ResourceLocation("mymod:ack");\n \n @Override\n public void write(final FriendlyByteBuf buffer) {\n // \uc804\uc1a1\ud560 \ub370\uc774\ud130 \uc5c6\uc74c\n }\n\n @Override\n public ResourceLocation id() {\n return ID;\n }\n}\n'})}),"\n",(0,a.jsx)(e.p,{children:"\ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \uc11c\ubc84\uc5d0\uc11c \ubcf4\ub0b8 \uc0ac\uc804 \uc124\uc815 \ud328\ud0b7\uc744 \uc644\uc804\ud788 \ucc98\ub9ac\ud55c \uc774\ud6c4, \uc704 \ud328\ud0b7\uc744 \uc11c\ubc84\uc5d0 \uc804\uc1a1\ud558\uc5ec \uc124\uc815\uc774 \uc644\ub8cc\ub418\uc5c8\uc74c\uc744 \uc54c\ub9b4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:'public void onMyData(MyData data, ConfigurationPayloadContext context) {\n context.submitAsync(() -> {\n blah(data.name());\n })\n .exceptionally(e -> {\n // \uc608\uc678 \ucc98\ub9ac\n context.packetHandler().disconnect(Component.translatable("my_mod.configuration.failed", e.getMessage()));\n return null;\n })\n .thenAccept(v -> {\n context.replyHandler().send(new AckPayload()); // \ud328\ud0b7 \ucc98\ub9ac \uc774\ud6c4 AckPayload\ub85c \ub300\ub2f5\ud558\uae30\n }); \n}\n'})}),"\n",(0,a.jsxs)(e.p,{children:["\uc5ec\uae30\uc11c ",(0,a.jsx)(e.code,{children:"onMyData"}),"\ub294 \uc11c\ubc84\uac00 \uc0ac\uc804 \uc124\uc815 \ub3c4\uc911 \ubcf4\ub0b8 \ud328\ud0b7\uc744 \ucc98\ub9ac\ud558\ub294 \ud568\uc218\uc785\ub2c8\ub2e4."]}),"\n",(0,a.jsx)(e.p,{children:"\uc11c\ubc84\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 \ub300\ub2f5\uc744 \ubc1b\uc73c\uba74 \uc0ac\uc804 \uc124\uc815\uc774 \uc644\ub8cc\ub418\uc5c8\ub2e4\uace0 \uc2b9\uc778\ud558\uace0, \uc774\uc81c \ub2e4\uc74c \uc124\uc815 \uc791\uc5c5\uc73c\ub85c \ub118\uc5b4\uac11\ub2c8\ub2e4:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public void onAck(AckPayload payload, ConfigurationPayloadContext context) {\n context.taskCompletedHandler().onTaskCompleted(MyConfigurationTask.TYPE);\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:["\uc5ec\uae30\uc11c ",(0,a.jsx)(e.code,{children:"onAck"}),"\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \ubcf4\ub0b8 \uc2b9\uc778 \ud328\ud0b7\uc744 \ucc98\ub9ac\ud558\ub294 \ud568\uc218\uc785\ub2c8\ub2e4."]}),"\n",(0,a.jsx)(e.h2,{id:"\ub85c\uadf8\uc778-\uc9c0\uc5f0",children:"\ub85c\uadf8\uc778 \uc9c0\uc5f0"}),"\n",(0,a.jsx)(e.p,{children:"\uc0ac\uc804 \uc124\uc815\uc774 \uc2b9\uc778\ub418\uc9c0 \uc54a\ub294\ub2e4\uba74 \uc11c\ubc84\ub294 \uacc4\uc18d \uae30\ub2e4\ub9ac\uace0, \ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \uac8c\uc784\uc5d0 \uc811\uc18d\ud558\uc9c0 \ubabb\ud569\ub2c8\ub2e4. \uadf8\ub7ec\uae30\uc5d0 \uc124\uc815 \uc131\uacf5 \uc2dc \ubb34\uc870\uac74 \uc644\ub8cc\ub85c \ud45c\uc2dc\ub418\uc5b4\uc57c \ud558\uace0, \uc2e4\ud328 \uc2dc \ubc14\ub85c \ud074\ub77c\uc774\uc5b8\ud2b8\uc640\uc758 \uc5f0\uacb0\uc744 \ub04a\uc5b4\uc57c \ud569\ub2c8\ub2e4."})]})}function u(n={}){const{wrapper:e}={...(0,o.a)(),...n.components};return e?(0,a.jsx)(e,{...n,children:(0,a.jsx)(d,{...n})}):d(n)}},1151:(n,e,i)=>{i.d(e,{Z:()=>s,a:()=>t});var a=i(7294);const o={},r=a.createContext(o);function t(n){const e=a.useContext(r);return a.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function s(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(o):n.components||o:t(n.components),a.createElement(r.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/d8e62455.43e5d6f2.js b/assets/js/d8e62455.fba3ed75.js similarity index 91% rename from assets/js/d8e62455.43e5d6f2.js rename to assets/js/d8e62455.fba3ed75.js index d2c4ade3c..81485d706 100644 --- a/assets/js/d8e62455.43e5d6f2.js +++ b/assets/js/d8e62455.fba3ed75.js @@ -1 +1 @@ -"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[5898],{1119:(e,n,c)=>{c.r(n),c.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>r});var t=c(5893),l=c(1151);const i={},o="\ube14\ub85d \uc5d4\ud2f0\ud2f0",d={id:"blockentities/index",title:"\ube14\ub85d \uc5d4\ud2f0\ud2f0",description:"\ube14\ub85d \uc5d4\ud2f0\ud2f0(BlockEntity)\ub294 \ube14\ub85d\uc5d0 \uc885\uc18d\ub41c \uc5d4\ud2f0\ud2f0\uc785\ub2c8\ub2e4. \ub3d9\uc801\uc73c\ub85c \ubcc0\ud558\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uac70\ub098, \ub9e4 \ud2f1\ub9c8\ub2e4 \uc218\ud589\ub3fc\uc57c \ud558\ub294 \uc791\uc5c5\uc744 \ud558\uac70\ub098, \ub3d9\uc801 \ub80c\ub354\ub9c1\uc744 \ud574\uc57c \ud560 \ub54c \ub4f1, BlockState \ub9cc\uc73c\ub85c\ub294 \uad6c\ud604\ud558\uae30 \uc5b4\ub824\uc6b4 \uae30\ub2a5\ub4e4\uc744 \ub9cc\ub4e4 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc0c1\uc790 \uc778\ubca4\ud1a0\ub9ac, \ud654\ub85c \uc81c\ub828, \uc2e0\ud638\uae30\uc758 \uad11\uc5ed \ud3ec\uc158 \ud6a8\uacfc\ub97c \uad6c\ud604\ud558\ub294 \ub370\uc5d0 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub354 \ubcf5\uc7a1\ud55c \uc608\uc81c\ub4e4\uc740 \uad74\ucc29\uae30, \uc544\uc774\ud15c \uc815\ub82c\ud558\ub294 \uae30\uacc4, \ud30c\uc774\ud504, \ub514\uc2a4\ud50c\ub808\uc774 \ub4f1 \ub2e4\ub978 \ubaa8\ub4dc\uc5d0\uc11c \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",source:"@site/docs/blockentities/index.md",sourceDirName:"blockentities",slug:"/blockentities/",permalink:"/Neoforge-Korean-Documentation/docs/blockentities/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\uc811\uadfc \uc81c\uc5b4\uc790 \ubcc0\ud615\ud558\uae30",permalink:"/Neoforge-Korean-Documentation/docs/advanced/accesstransformers"},next:{title:"BlockEntityRenderer",permalink:"/Neoforge-Korean-Documentation/docs/blockentities/ber"}},s={},r=[{value:"\ub4f1\ub85d\ud558\uae30",id:"\ub4f1\ub85d\ud558\uae30",level:2},{value:"\ube14\ub85d \uc5d4\ud2f0\ud2f0 \ub9cc\ub4e4\uae30",id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0-\ub9cc\ub4e4\uae30",level:2},{value:"\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \ub370\uc774\ud130 \ub2f4\uae30",id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0\uc5d0-\ub370\uc774\ud130-\ub2f4\uae30",level:2},{value:"\ube14\ub85d \uc5d4\ud2f0\ud2f0 \ud2f1 \ucc98\ub9ac",id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0-\ud2f1-\ucc98\ub9ac",level:2},{value:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ub370\uc774\ud130 \ub3d9\uae30\ud654\ud558\uae30",id:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640-\ub370\uc774\ud130-\ub3d9\uae30\ud654\ud558\uae30",level:2},{value:"LevelChunk \ubd88\ub7ec\uc62c \ub54c \ub3d9\uae30\ud654\ud558\uae30",id:"levelchunk-\ubd88\ub7ec\uc62c-\ub54c-\ub3d9\uae30\ud654\ud558\uae30",level:3},{value:"\ube14\ub85d\uc774 \uc5c5\ub370\uc774\ud2b8\ub420 \ub54c \ub3d9\uae30\ud654\ud558\uae30",id:"\ube14\ub85d\uc774-\uc5c5\ub370\uc774\ud2b8\ub420-\ub54c-\ub3d9\uae30\ud654\ud558\uae30",level:3},{value:"\ucee4\uc2a4\ud140 \ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ub3d9\uae30\ud654\ud558\uae30",id:"\ucee4\uc2a4\ud140-\ub124\ud2b8\uc6cc\ud06c-\uba54\uc2dc\uc9c0\ub85c-\ub3d9\uae30\ud654\ud558\uae30",level:3}];function a(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0",children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0"}),"\n",(0,t.jsxs)(n.p,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0(",(0,t.jsx)(n.code,{children:"BlockEntity"}),")\ub294 \ube14\ub85d\uc5d0 \uc885\uc18d\ub41c \uc5d4\ud2f0\ud2f0\uc785\ub2c8\ub2e4. \ub3d9\uc801\uc73c\ub85c \ubcc0\ud558\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uac70\ub098, \ub9e4 \ud2f1\ub9c8\ub2e4 \uc218\ud589\ub3fc\uc57c \ud558\ub294 \uc791\uc5c5\uc744 \ud558\uac70\ub098, \ub3d9\uc801 \ub80c\ub354\ub9c1\uc744 \ud574\uc57c \ud560 \ub54c \ub4f1, ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/blocks/states",children:(0,t.jsx)(n.code,{children:"BlockState"})})," \ub9cc\uc73c\ub85c\ub294 \uad6c\ud604\ud558\uae30 \uc5b4\ub824\uc6b4 \uae30\ub2a5\ub4e4\uc744 \ub9cc\ub4e4 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc0c1\uc790 \uc778\ubca4\ud1a0\ub9ac, \ud654\ub85c \uc81c\ub828, \uc2e0\ud638\uae30\uc758 \uad11\uc5ed \ud3ec\uc158 \ud6a8\uacfc\ub97c \uad6c\ud604\ud558\ub294 \ub370\uc5d0 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub354 \ubcf5\uc7a1\ud55c \uc608\uc81c\ub4e4\uc740 \uad74\ucc29\uae30, \uc544\uc774\ud15c \uc815\ub82c\ud558\ub294 \uae30\uacc4, \ud30c\uc774\ud504, \ub514\uc2a4\ud50c\ub808\uc774 \ub4f1 \ub2e4\ub978 \ubaa8\ub4dc\uc5d0\uc11c \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsx)(n.p,{children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0\ub294 \ubaa8\ub4e0 \ubb38\uc81c\uc758 \ub9cc\ub2a5 \ud574\uacb0 \ubc29\ubc95\uc774 \uc544\ub2c8\uba70, \ub0a8\uc6a9\ud560 \uacbd\uc6b0 \uc11c\ubc84\uc5d0 \ud070 \ub809\uc744 \uc720\ubc1c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\uac00\ub2a5\ud558\ub2e4\uba74 \ub2e4\ub978 \ubc29\uc548\uc744 \uba3c\uc800 \ucc3e\uc544\ubcf4\uc138\uc694."})}),"\n",(0,t.jsx)(n.h2,{id:"\ub4f1\ub85d\ud558\uae30",children:"\ub4f1\ub85d\ud558\uae30"}),"\n",(0,t.jsxs)(n.p,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0\ub294 \uc5bc\ub9c8\ub4e0\uc9c0 \uc0dd\uc131\ub418\uace0 \uc81c\uac70\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4, \uadf8\ub7ec\ub2e4 \ubcf4\ub2c8 ",(0,t.jsx)(n.code,{children:"BlockEntity"})," \uc790\uccb4\ub97c \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0 \ub4f1\ub85d\ud558\ub294 \ub300\uc2e0 \uadf8 ",(0,t.jsx)(n.em,{children:"\uc885\ub958"}),"\ub97c \ud45c\ud604\ud558\ub294 ",(0,t.jsx)(n.code,{children:"BlockEntityType"}),"\uc744 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0 \ub4f1\ub85d\ud569\ub2c8\ub2e4."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"BlockEntityType"}),"\uc740 \ub2e4\ub978 \ub808\uc9c0\uc2a4\ud2b8\ub9ac \uac1d\uccb4\ub4e4\uacfc \ub611\uac19\uc774 ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/concepts/registries#%EA%B0%9D%EC%B2%B4-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0",children:"\ub4f1\ub85d"}),"\ub429\ub2c8\ub2e4. ",(0,t.jsx)(n.code,{children:"BlockEntityType"}),"\uc744 \ub9cc\ub4e4\uae30 \uc704\ud574\uc120 \uba3c\uc800 ",(0,t.jsx)(n.code,{children:"BlockEntityType$Builder"})," \uac00 \ud544\uc694\ud55c\ub370, ",(0,t.jsx)(n.code,{children:"BlockEntityType$Builder#of"}),"\ub97c \ud638\ucd9c\ud558\uc5ec \ube4c\ub354\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\ub294 ",(0,t.jsx)(n.code,{children:"BlockPos"}),"\uc640 ",(0,t.jsx)(n.code,{children:"BlockState"}),"\ub97c \uc778\uc790\ub85c \ubc1b\uc544 \uc0c8\ub85c\uc6b4 ",(0,t.jsx)(n.code,{children:"BlockEntity"})," \uc778\uc2a4\ud134\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ud568\uc218, \uadf8\ub9ac\uace0 \ud574\ub2f9 ",(0,t.jsx)(n.code,{children:"BlockEntity"}),"\ub97c \ubd80\ucc29\ud560 \ube14\ub85d\ub4e4\uc758 \uac00\ubcc0 \uc778\uc790\ub97c \ubc1b\uc2b5\ub2c8\ub2e4. \uc774\ud6c4, ",(0,t.jsx)(n.code,{children:"BlockEntityType$Builder#build"}),"\ub97c \ud638\ucd9c\ud558\uc5ec ",(0,t.jsx)(n.code,{children:"BlockEntityType"}),"\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\ub294 ",(0,t.jsx)(n.code,{children:"DataFixer"}),"\uc5d0\uc11c \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \ud45c\ud604\ud574 \uc904 ",(0,t.jsx)(n.code,{children:"Type"}),"\uc744 \uc778\uc790\ub85c \ubc1b\ub294\ub370, ",(0,t.jsx)(n.code,{children:"DataFixer"}),"\ub294 \uc644\uc804\ud788 \uc120\ud0dd\uc0ac\ud56d\uc774\uae30\uc5d0 ",(0,t.jsx)(n.code,{children:"null"}),"\uc744 \uc804\ub2ec\ud558\uc154\ub3c4 \ub429\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:'// DeferredRegister> REGISTER\uac00 \uc774\ubbf8 \uc815\uc758\ub418\uc5b4 \uc788\ub2e4\uace0 \ud560 \ub54c\npublic static final RegistryObject> MY_BE = REGISTER.register("mybe", () -> BlockEntityType.Builder.of(MyBE::new, validBlocks).build(null));\n\n\n// BlockEntity\ub97c \uc0c1\uc18d\ud558\ub294 MyBE \ud074\ub798\uc2a4 \ub0b4\uc5d0\uc11c\npublic MyBE(BlockPos pos, BlockState state) {\n super(MY_BE.get(), pos, state);\n}\n'})}),"\n",(0,t.jsx)(n.h2,{id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0-\ub9cc\ub4e4\uae30",children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0 \ub9cc\ub4e4\uae30"}),"\n",(0,t.jsxs)(n.p,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \ubd99\uc77c \ube14\ub85d\uc740 ",(0,t.jsx)(n.code,{children:"EntityBlock"}),"\uc744 \uad6c\ud604\ud574\uc57c \ud569\ub2c8\ub2e4. ",(0,t.jsx)(n.code,{children:"#newBlockEntity(BlockPos, BlockState)"}),"\uc5d0\uc11c \ube14\ub85d\uc5d0 \ubd80\ucc29\ud560 \uc0c8 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud574\uc57c \ud569\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.h2,{id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0\uc5d0-\ub370\uc774\ud130-\ub2f4\uae30",children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \ub370\uc774\ud130 \ub2f4\uae30"}),"\n",(0,t.jsx)(n.p,{children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \ub370\uc774\ud130\ub97c \ub2f4\uae30 \uc704\ud574\uc120 \uc544\ub798 \ub450 \uba54\uc11c\ub4dc\ub97c \uc7ac\uc815\uc758\ud558\uc154\uc57c \ud569\ub2c8\ub2e4:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"BlockEntity#saveAdditional(CompoundTag tag) // \uc804\ub2ec\ub41c tag\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud568\n\nBlockEntity#load(CompoundTag tag) // \uc804\ub2ec\ub41c tag\uc5d0\uc11c \ub370\uc774\ud130\ub97c \ubd88\ub7ec\uc624\uace0 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \uc801\uc6a9\ud568\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\uc704 \ub450 \uba54\uc11c\ub4dc\ub294 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uac00 \ub4e4\uc5b4\uc788\ub294 ",(0,t.jsx)(n.code,{children:"LevelChunk"}),"\ub97c \ubd88\ub7ec\uc62c \ub54c \ud638\ucd9c\ub429\ub2c8\ub2e4. \uc774\ub4e4\uc744 \ud65c\uc6a9\ud558\uc5ec NBT\ub85c\ubd80\ud130 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uace0 \ubd88\ub7ec\uc624\uc138\uc694."]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\uac00 \ubcc0\ud560 \uacbd\uc6b0 ",(0,t.jsx)(n.code,{children:"BlockEntity#setChanged"}),"\ub97c \ud638\ucd9c\ud574 ",(0,t.jsx)(n.code,{children:"LevelChunk"}),"\uac00 \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc800\uc7a5\ud558\ub3c4\ub85d \ud574\uc57c \ud569\ub2c8\ub2e4."]})}),"\n",(0,t.jsxs)(n.admonition,{type:"danger",children:[(0,t.jsxs)(n.p,{children:["\uc704 \uba54\uc11c\ub4dc\ub97c \uc7ac\uc815\uc758\ud560 \ub54c\ub294 ",(0,t.jsx)(n.code,{children:"super"}),"\ub97c \ubb34\uc870\uac74 \ud638\ucd9c\ud558\uc138\uc694! \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \ud544\uc218 \uc815\ubcf4\uac00 \ub204\ub77d\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4!"]}),(0,t.jsxs)(n.p,{children:["\uadf8\ub9ac\uace0, ",(0,t.jsx)(n.code,{children:"id"}),", ",(0,t.jsx)(n.code,{children:"x"}),", ",(0,t.jsx)(n.code,{children:"y"}),", ",(0,t.jsx)(n.code,{children:"z"}),", ",(0,t.jsx)(n.code,{children:"ForgeData"}),", \uadf8\ub9ac\uace0 ",(0,t.jsx)(n.code,{children:"ForgeCaps"}),"\ub294 ",(0,t.jsx)(n.code,{children:"super"}),"\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \ud0dc\uadf8\ub4e4\uc758 \uc774\ub984\uc785\ub2c8\ub2e4!"]})]}),"\n",(0,t.jsx)(n.h2,{id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0-\ud2f1-\ucc98\ub9ac",children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0 \ud2f1 \ucc98\ub9ac"}),"\n",(0,t.jsxs)(n.p,{children:["\uc544\uc774\ud15c\uc744 \uad7d\ub294 \ud654\ub85c\ucc98\ub7fc, 1 \ud2f1\ub9c8\ub2e4 \uc218\ud589\ub418\ub294 \uc791\uc5c5\uc744 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \uad6c\ud604\ud558\uae30 \uc704\ud574\uc120 ",(0,t.jsx)(n.code,{children:"EntityBlock#getTicker(Level, BlockState, BlockEntityType)"}),"\ub97c \uc7ac\uc815\uc758 \ud558\uc138\uc694. \uc774\ub54c \ub17c\ub9ac \uc0ac\uc774\ub4dc\uc5d0 \ub530\ub77c \ub2e4\ub978 ticker\ub97c \ubc18\ud658\ud558\uc154\ub3c4 \ub429\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\ub294 \ub808\ubca8, \ube14\ub85d \uc704\uce58, ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/blocks/states",children:"\ube14\ub85d \uc0c1\ud0dc"}),", \uadf8\ub9ac\uace0 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc778\uc790\ub85c \ubc1b\ub294 \ud568\uc218\ub97c \ubc18\ud658\ud558\uba70, \uc5ec\uae30\uc11c \ubc18\ud658\ud55c \ud568\uc218\ub294 \ub9e4 \ud2f1\ub9c8\ub2e4 \uc2e4\ud589\ub429\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"// Block\uc758 \uc790\uc2dd \ud074\ub798\uc2a4 \ub0b4\ubd80\n@Nullable\n@Override\npublic BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) {\n return type == MyBlockEntityTypes.MYBE.get() ? MyBlockEntity::tick : null;\n}\n\n// MyBlockEntity \ud074\ub798\uc2a4 \ub0b4\ubd80\npublic static void tick(Level level, BlockPos pos, BlockState state, MyBlockEntity blockEntity) {\n // \ub9e4\ud2f1\ub9c8\ub2e4 \ud574\uc57c \ud558\ub294 \uc791\uc5c5 \ucc98\ub9ac\n}\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsx)(n.p,{children:"\ubcf5\uc7a1\ud55c \uc5f0\uc0b0\uc744 \uc5ec\uae30\uc11c \ud558\ub294 \uac83\uc740 \ud53c\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8 \ub300\uc2e0\uc5d0, \ubcf5\uc7a1\ud55c \uc5f0\uc0b0\uc740 \ub9e4 X \ud2f1 \ub9c8\ub2e4 \ud558\ub3c4\ub85d \ub9cc\ub4dc\ub294 \uac83\ub3c4 \uace0\ub824\ud558\uc5ec \uc8fc\uc138\uc694. (\ucd08\ub2f9 \ud2f1 \ud69f\uc218(tps)\ub294 \ucd5c\ub300 20\uc785\ub2c8\ub2e4.)"})}),"\n",(0,t.jsx)(n.h2,{id:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640-\ub370\uc774\ud130-\ub3d9\uae30\ud654\ud558\uae30",children:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ub370\uc774\ud130 \ub3d9\uae30\ud654\ud558\uae30"}),"\n",(0,t.jsx)(n.p,{children:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\uc2dc\ud0ac \ubc29\ubc95\uc740 \ucd1d 3\uac00\uc9c0\uac00 \uc788\ub294\ub370: \uccad\ud06c\ub97c \ubd88\ub7ec\uc62c \ub54c \ub3d9\uae30\ud654\ud558\uae30, \ube14\ub85d \uc5c5\ub370\uc774\ud2b8\uc2dc \ub3d9\uae30\ud654 \ud558\uae30, \uadf8\ub9ac\uace0 \ucee4\uc2a4\ud140 \ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0 \ubcf4\ub0b4\uae30\uc785\ub2c8\ub2e4."}),"\n",(0,t.jsxs)(n.h3,{id:"levelchunk-\ubd88\ub7ec\uc62c-\ub54c-\ub3d9\uae30\ud654\ud558\uae30",children:[(0,t.jsx)(n.code,{children:"LevelChunk"})," \ubd88\ub7ec\uc62c \ub54c \ub3d9\uae30\ud654\ud558\uae30"]}),"\n",(0,t.jsx)(n.p,{children:"\uc774\ub97c \uc704\ud574\uc120 \ub2e4\uc74c \ub450 \uba54\uc11c\ub4dc\ub97c \uc7ac\uc815\uc758\ud558\uc138\uc694:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"BlockEntity#getUpdateTag()\n\nIForgeBlockEntity#handleUpdateTag(CompoundTag tag)\n"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"#getUpdateTag"}),"\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\ub85c \uc804\uc1a1\ub418\uc5b4\uc57c \ud560 \ub370\uc774\ud130\ub4e4\uc744 \uc218\uc9d1\ud569\ub2c8\ub2e4,"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"handleUpdateTag"}),"\ub294 \uc218\uc9d1\ud55c \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud569\ub2c8\ub2e4. \ub9cc\uc57d \ud574\ub2f9 ",(0,t.jsx)(n.code,{children:"BlockEntity"}),"\uc5d0 \ub370\uc774\ud130\uac00 \ub9ce\uc9c0 \uc54a\ub2e4\uba74 ",(0,t.jsxs)(n.a,{href:"#%EB%B8%94%EB%A1%9D-%EC%97%94%ED%8B%B0%ED%8B%B0%EC%97%90-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%8B%B4%EA%B8%B0",children:[(0,t.jsx)(n.code,{children:"BlockEntity"}),"\ub97c \ud65c\uc6a9\ud55c \ub370\uc774\ud130 \uc800\uc7a5"]}),"\uc5d0\uc11c \uc18c\uac1c\ub41c \uba54\uc11c\ub4dc\ub4e4\uc744 \uc751\uc6a9\ud558\uc5ec ",(0,t.jsx)(n.code,{children:"BlockEntity"})," \uc804\uccb4\ub97c \uc7ac\uc804\uc1a1\ud558\uc154\ub3c4 \ub429\ub2c8\ub2e4."]}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{type:"caution",children:(0,t.jsxs)(n.p,{children:["\ud544\uc694\uc5c6\ub294 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\ud558\ub294 \uac83\uc740 \ub124\ud2b8\uc6cc\ud06c\ub97c \ud63c\uc7a1\ud558\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30\uc5d0 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \ud544\uc694\ud55c \uc815\ubcf4\ub4e4\uc744 \ud544\uc694\ud560 \ub54c\ub9cc \ubcf4\ub0b4\ub3c4\ub85d \ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ud65c\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc758 \uc778\ubca4\ud1a0\ub9ac\uac00 \ubcc0\uacbd\ub420 \ub54c\ub9c8\ub2e4 \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ub3d9\uae30\ud654\ub97c \ud558\ub294 \ub300\uc2e0 ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/gui/menus",children:(0,t.jsx)(n.code,{children:"AbstractContainerMenu"})}),"\uc5d0\uc11c \ub3d9\uae30\ud654\ub97c \uc218\ud589\ud574 \ube14\ub85d\uc758 \uba54\ub274\ub97c \uc5f4 \ub54c\ub9cc \ub3d9\uae30\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]})}),"\n",(0,t.jsx)(n.h3,{id:"\ube14\ub85d\uc774-\uc5c5\ub370\uc774\ud2b8\ub420-\ub54c-\ub3d9\uae30\ud654\ud558\uae30",children:"\ube14\ub85d\uc774 \uc5c5\ub370\uc774\ud2b8\ub420 \ub54c \ub3d9\uae30\ud654\ud558\uae30"}),"\n",(0,t.jsx)(n.p,{children:"\uc774 \ubc29\ubc95\uc740 \uc0b4\uc9dd \ub354 \ubcf5\uc7a1\ud558\uc9c0\ub9cc, \uc544\ub798 \uba54\uc11c\ub4dc 3\uac1c\ub9cc \uc7ac\uc815\uc758\ud558\uba74 \ub429\ub2c8\ub2e4."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"BlockEntity#getUpdateTag()\n\nBlockEntity#getUpdatePacket()\n\nIForgeBlockEntity#onDataPacket\n"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"#getUpdatePacket"}),"\uc740 \ud328\ud0b7\uc744 \ud3ec\uc9c0\uc5d0\uc11c \uad00\ub9ac\ud558\ub3c4\ub85d \ub2e4\ub978 \ud328\ud0b7\uc73c\ub85c \ub300\uccb4\ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"#onDataPacket"}),"\uc740 \ud328\ud0b7\uc774 \ub3c4\ucc29\ud560 \ub54c \ud638\ucd9c\ub429\ub2c8\ub2e4. \ub17c\ub9ac \uc11c\ubc84 \ubc0f \ud074\ub77c\uc774\uc5b8\ud2b8 \ub458 \ub2e4 \ud638\ucd9c\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"@Override\npublic CompoundTag getUpdateTag() {\n CompoundTag tag = new CompoundTag();\n // tag\uc5d0 \ube14\ub85d \uc5d4\ud2f0\ud2f0 \ub370\uc774\ud130 \uc791\uc131\n return tag;\n}\n\n@Override\npublic Packet getUpdatePacket() {\n // #getUpdateTag\ub97c \ud638\ucd9c\ud558\uc5ec \uc804\uc1a1\ud560 tag\ub97c \uac00\uc838\uc635\ub2c8\ub2e4\n return ClientboundBlockEntityDataPacket.create(this);\n}\n\n// IForgeBlockEntity#onDataPacket\uc744 \uc7ac\uc815\uc758\ud558\ub294 \uac83\uc740 \uc120\ud0dd\uc0ac\ud56d\uc785\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c #load\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4.\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\uc774\ub54c \uc5ec\uae30\uc11c \uc0ac\uc6a9\ub41c \uc815\uc801 \uc0dd\uc131\uc790 ",(0,t.jsx)(n.code,{children:"ClientboundBlockEntityDataPacket#create"}),"\ub294 \uc544\ub798 2\uac1c\uc758 \uc778\uc790\ub97c \ubc1b\uc2b5\ub2c8\ub2e4:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"BlockEntity"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0\ub85c ",(0,t.jsx)(n.code,{children:"CompoundTag"}),"\ub97c \ub9cc\ub4dc\ub294 \ud568\uc218(",(0,t.jsx)(n.code,{children:"Function"}),"). \uae30\ubcf8\uac12\uc73c\ub85c ",(0,t.jsx)(n.code,{children:"BlockEntity#getUpdateTag"}),"\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"\uc774\uc81c \uc11c\ubc84\uce21\uc5d0\uc11c \ube14\ub85d \uc5c5\ub370\uc774\ud2b8\ub97c \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\uc5d0 \uc804\uc1a1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"Level#sendBlockUpdated(BlockPos pos, BlockState oldState, BlockState newState, int flags)\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"pos"}),"\ub294 \uc5c5\ub370\uc774\ud2b8\ud560 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc758 \uc704\uce58\uc785\ub2c8\ub2e4.\n",(0,t.jsx)(n.code,{children:"oldState"}),"\ub791 ",(0,t.jsx)(n.code,{children:"newState"}),"\ub294 \ud574\ub2f9 \uc704\uce58\uc758 ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/blocks/states",children:"\ube14\ub85d \uc0c1\ud0dc"}),"\ub97c \uc804\ub2ec\ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4.\n",(0,t.jsx)(n.code,{children:"flags"}),"\ub294 \ubb34\uc2a8 \uc815\ubcf4\ub97c \ubcf4\ub0b4\uace0 \uc5c5\ub370\uc774\ud2b8\ud560\uc9c0 \uc124\uc815\ud558\ub294 \ube44\ud2b8 \ub9c8\uc2a4\ud06c\ub4e4\ub85c, ",(0,t.jsx)(n.code,{children:"2"}),"(LSB \ub450 \ubc88\uc9f8 \ube44\ud2b8), \ub610\ub294 ",(0,t.jsx)(n.code,{children:"Block#UPDATE_CLIENTS"}),"\ub97c \ud3ec\ud568\ud558\uace0 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub798\uc57c \uc11c\ubc84\uac00 \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\uc5d0 \uc5c5\ub370\uc774\ud2b8 \ud328\ud0b7\uc744 \uc804\uc1a1\ud569\ub2c8\ub2e4. ",(0,t.jsx)(n.code,{children:"Block"})," \ud074\ub798\uc2a4\ub97c \ucc38\uace0\ud558\uc5ec \ub2e4\ub978 \ud50c\ub798\uadf8\ub4e4\uc758 \uc5ed\ud560 \ub610\ud55c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.h3,{id:"\ucee4\uc2a4\ud140-\ub124\ud2b8\uc6cc\ud06c-\uba54\uc2dc\uc9c0\ub85c-\ub3d9\uae30\ud654\ud558\uae30",children:"\ucee4\uc2a4\ud140 \ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ub3d9\uae30\ud654\ud558\uae30"}),"\n",(0,t.jsxs)(n.p,{children:["\uc774 \ubc29\ubc95\uc740 \uac00\uc7a5 \ubcf5\uc7a1\ud558\uc9c0\ub9cc, \uadf8\ub7ec\uae30\uc5d0 \ub3d9\uae30\ud654\ub97c \ud574\uc57c \ud558\ub294 \uc815\ubcf4\ub4e4\ub9cc \uc2e4\uc81c\ub85c \ub3d9\uae30\ud654\uac00 \ub418\ub3c4\ub85d \uc138\ubc00\ud558\uac8c \uc870\uc808\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uba3c\uc800 ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/networking/",children:"\ub124\ud2b8\uc6cc\ud0b9"}),"\uc5d0 \ub300\ud574 \ubbf8\ub9ac \uc219\uc9c0\ud558\uc2dc\ub294 \uac78 \uad8c\uc7a5\ub4dc\ub9bd\ub2c8\ub2e4, \ud2b9\ud788 ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/networking/simpleimpl",children:(0,t.jsx)(n.code,{children:"SimpleImpl"})}),"\uc5d0 \ub300\ud574 \uc798 \uc54c\uace0 \uacc4\uc154\uc57c \ud569\ub2c8\ub2e4."]}),"\n",(0,t.jsxs)(n.p,{children:["\ucee4\uc2a4\ud140 \uba54\uc2dc\uc9c0\ub294 \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \ucd94\uc801\ud558\uace0 \uc788\ub294 \ubaa8\ub4e0 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 ",(0,t.jsx)(n.code,{children:"SimpleChannel#send(PacketDistributor$PacketTarget, MSG)"}),"\ub97c \ud1b5\ud574 \ub2e8\ubc88\uc5d0 \ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\uc774\ub54c \uc0ac\uc6a9\ud558\ub294 ",(0,t.jsx)(n.code,{children:"PacketDistributor"}),"\ub294 ",(0,t.jsx)(n.code,{children:"TRACKING_ENTITY"}),"\uc785\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.admonition,{type:"caution",children:(0,t.jsxs)(n.p,{children:["\ud50c\ub808\uc774\uc5b4\uc5d0\uac8c \ud328\ud0b7\uc774 \uc804\ub2ec\ub418\uc5c8\uc744 \ub54c\ub294 \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uac00 \ubd80\uc11c\uc9c0\uac70\ub098 \ub2e4\ub978 \ube14\ub85d\uc73c\ub85c \ub300\uccb4\ub418\uc5b4 \ub808\ubca8\uc5d0 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc744 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30 \ub54c\ubb38\uc5d0 \ube14\ub85d\uc774 \uc9c4\uc9dc \uc874\uc7ac\ud558\ub294\uc9c0 \ubb34\uc870\uac74 \ud655\uc778\ud558\uc154\uc57c \ud569\ub2c8\ub2e4! \ub610\ud55c \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uac00 \ub4e4\uc5b4\uc788\ub294 \uccad\ud06c\uac00 \uc874\uc7ac\ud558\ub294\uc9c0\ub3c4 \ud655\uc778\ud558\uc154\uc57c \ud569\ub2c8\ub2e4! (",(0,t.jsx)(n.code,{children:"Level#hasChunkAt(BlockPos)"}),")."]})})]})}function h(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},1151:(e,n,c)=>{c.d(n,{Z:()=>d,a:()=>o});var t=c(7294);const l={},i=t.createContext(l);function o(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[5898],{1119:(e,n,c)=>{c.r(n),c.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>r});var t=c(5893),l=c(1151);const i={},o="\ube14\ub85d \uc5d4\ud2f0\ud2f0",d={id:"blockentities/index",title:"\ube14\ub85d \uc5d4\ud2f0\ud2f0",description:"\ube14\ub85d \uc5d4\ud2f0\ud2f0(BlockEntity)\ub294 \ube14\ub85d\uc5d0 \uc885\uc18d\ub41c \uc5d4\ud2f0\ud2f0\uc785\ub2c8\ub2e4. \ub3d9\uc801\uc73c\ub85c \ubcc0\ud558\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uac70\ub098, \ub9e4 \ud2f1\ub9c8\ub2e4 \uc218\ud589\ub3fc\uc57c \ud558\ub294 \uc791\uc5c5\uc744 \ud558\uac70\ub098, \ub3d9\uc801 \ub80c\ub354\ub9c1\uc744 \ud574\uc57c \ud560 \ub54c \ub4f1, BlockState \ub9cc\uc73c\ub85c\ub294 \uad6c\ud604\ud558\uae30 \uc5b4\ub824\uc6b4 \uae30\ub2a5\ub4e4\uc744 \ub9cc\ub4e4 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc0c1\uc790 \uc778\ubca4\ud1a0\ub9ac, \ud654\ub85c \uc81c\ub828, \uc2e0\ud638\uae30\uc758 \uad11\uc5ed \ud3ec\uc158 \ud6a8\uacfc\ub97c \uad6c\ud604\ud558\ub294 \ub370\uc5d0 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub354 \ubcf5\uc7a1\ud55c \uc608\uc81c\ub4e4\uc740 \uad74\ucc29\uae30, \uc544\uc774\ud15c \uc815\ub82c\ud558\ub294 \uae30\uacc4, \ud30c\uc774\ud504, \ub514\uc2a4\ud50c\ub808\uc774 \ub4f1 \ub2e4\ub978 \ubaa8\ub4dc\uc5d0\uc11c \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",source:"@site/docs/blockentities/index.md",sourceDirName:"blockentities",slug:"/blockentities/",permalink:"/Neoforge-Korean-Documentation/docs/blockentities/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\uc811\uadfc \uc81c\uc5b4\uc790 \ubcc0\ud615\ud558\uae30",permalink:"/Neoforge-Korean-Documentation/docs/advanced/accesstransformers"},next:{title:"BlockEntityRenderer",permalink:"/Neoforge-Korean-Documentation/docs/blockentities/ber"}},s={},r=[{value:"\ub4f1\ub85d\ud558\uae30",id:"\ub4f1\ub85d\ud558\uae30",level:2},{value:"\ube14\ub85d \uc5d4\ud2f0\ud2f0 \ub9cc\ub4e4\uae30",id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0-\ub9cc\ub4e4\uae30",level:2},{value:"\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \ub370\uc774\ud130 \ub2f4\uae30",id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0\uc5d0-\ub370\uc774\ud130-\ub2f4\uae30",level:2},{value:"\ube14\ub85d \uc5d4\ud2f0\ud2f0 \ud2f1 \ucc98\ub9ac",id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0-\ud2f1-\ucc98\ub9ac",level:2},{value:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ub370\uc774\ud130 \ub3d9\uae30\ud654\ud558\uae30",id:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640-\ub370\uc774\ud130-\ub3d9\uae30\ud654\ud558\uae30",level:2},{value:"LevelChunk \ubd88\ub7ec\uc62c \ub54c \ub3d9\uae30\ud654\ud558\uae30",id:"levelchunk-\ubd88\ub7ec\uc62c-\ub54c-\ub3d9\uae30\ud654\ud558\uae30",level:3},{value:"\ube14\ub85d\uc774 \uc5c5\ub370\uc774\ud2b8\ub420 \ub54c \ub3d9\uae30\ud654\ud558\uae30",id:"\ube14\ub85d\uc774-\uc5c5\ub370\uc774\ud2b8\ub420-\ub54c-\ub3d9\uae30\ud654\ud558\uae30",level:3},{value:"\ucee4\uc2a4\ud140 \ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ub3d9\uae30\ud654\ud558\uae30",id:"\ucee4\uc2a4\ud140-\ub124\ud2b8\uc6cc\ud06c-\uba54\uc2dc\uc9c0\ub85c-\ub3d9\uae30\ud654\ud558\uae30",level:3}];function a(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0",children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0"}),"\n",(0,t.jsxs)(n.p,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0(",(0,t.jsx)(n.code,{children:"BlockEntity"}),")\ub294 \ube14\ub85d\uc5d0 \uc885\uc18d\ub41c \uc5d4\ud2f0\ud2f0\uc785\ub2c8\ub2e4. \ub3d9\uc801\uc73c\ub85c \ubcc0\ud558\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uac70\ub098, \ub9e4 \ud2f1\ub9c8\ub2e4 \uc218\ud589\ub3fc\uc57c \ud558\ub294 \uc791\uc5c5\uc744 \ud558\uac70\ub098, \ub3d9\uc801 \ub80c\ub354\ub9c1\uc744 \ud574\uc57c \ud560 \ub54c \ub4f1, ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/blocks/states",children:(0,t.jsx)(n.code,{children:"BlockState"})})," \ub9cc\uc73c\ub85c\ub294 \uad6c\ud604\ud558\uae30 \uc5b4\ub824\uc6b4 \uae30\ub2a5\ub4e4\uc744 \ub9cc\ub4e4 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub9c8\uc778\ud06c\ub798\ud504\ud2b8\ub294 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc0c1\uc790 \uc778\ubca4\ud1a0\ub9ac, \ud654\ub85c \uc81c\ub828, \uc2e0\ud638\uae30\uc758 \uad11\uc5ed \ud3ec\uc158 \ud6a8\uacfc\ub97c \uad6c\ud604\ud558\ub294 \ub370\uc5d0 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub354 \ubcf5\uc7a1\ud55c \uc608\uc81c\ub4e4\uc740 \uad74\ucc29\uae30, \uc544\uc774\ud15c \uc815\ub82c\ud558\ub294 \uae30\uacc4, \ud30c\uc774\ud504, \ub514\uc2a4\ud50c\ub808\uc774 \ub4f1 \ub2e4\ub978 \ubaa8\ub4dc\uc5d0\uc11c \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsx)(n.p,{children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0\ub294 \ubaa8\ub4e0 \ubb38\uc81c\uc758 \ub9cc\ub2a5 \ud574\uacb0 \ubc29\ubc95\uc774 \uc544\ub2c8\uba70, \ub0a8\uc6a9\ud560 \uacbd\uc6b0 \uc11c\ubc84\uc5d0 \ud070 \ub809\uc744 \uc720\ubc1c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\uac00\ub2a5\ud558\ub2e4\uba74 \ub2e4\ub978 \ubc29\uc548\uc744 \uba3c\uc800 \ucc3e\uc544\ubcf4\uc138\uc694."})}),"\n",(0,t.jsx)(n.h2,{id:"\ub4f1\ub85d\ud558\uae30",children:"\ub4f1\ub85d\ud558\uae30"}),"\n",(0,t.jsxs)(n.p,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0\ub294 \uc5bc\ub9c8\ub4e0\uc9c0 \uc0dd\uc131\ub418\uace0 \uc81c\uac70\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4, \uadf8\ub7ec\ub2e4 \ubcf4\ub2c8 ",(0,t.jsx)(n.code,{children:"BlockEntity"})," \uc790\uccb4\ub97c \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0 \ub4f1\ub85d\ud558\ub294 \ub300\uc2e0 \uadf8 ",(0,t.jsx)(n.em,{children:"\uc885\ub958"}),"\ub97c \ud45c\ud604\ud558\ub294 ",(0,t.jsx)(n.code,{children:"BlockEntityType"}),"\uc744 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0 \ub4f1\ub85d\ud569\ub2c8\ub2e4."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"BlockEntityType"}),"\uc740 \ub2e4\ub978 \ub808\uc9c0\uc2a4\ud2b8\ub9ac \uac1d\uccb4\ub4e4\uacfc \ub611\uac19\uc774 ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/concepts/registries#%EA%B0%9D%EC%B2%B4-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0",children:"\ub4f1\ub85d"}),"\ub429\ub2c8\ub2e4. ",(0,t.jsx)(n.code,{children:"BlockEntityType"}),"\uc744 \ub9cc\ub4e4\uae30 \uc704\ud574\uc120 \uba3c\uc800 ",(0,t.jsx)(n.code,{children:"BlockEntityType$Builder"})," \uac00 \ud544\uc694\ud55c\ub370, ",(0,t.jsx)(n.code,{children:"BlockEntityType$Builder#of"}),"\ub97c \ud638\ucd9c\ud558\uc5ec \ube4c\ub354\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\ub294 ",(0,t.jsx)(n.code,{children:"BlockPos"}),"\uc640 ",(0,t.jsx)(n.code,{children:"BlockState"}),"\ub97c \uc778\uc790\ub85c \ubc1b\uc544 \uc0c8\ub85c\uc6b4 ",(0,t.jsx)(n.code,{children:"BlockEntity"})," \uc778\uc2a4\ud134\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ud568\uc218, \uadf8\ub9ac\uace0 \ud574\ub2f9 ",(0,t.jsx)(n.code,{children:"BlockEntity"}),"\ub97c \ubd80\ucc29\ud560 \ube14\ub85d\ub4e4\uc758 \uac00\ubcc0 \uc778\uc790\ub97c \ubc1b\uc2b5\ub2c8\ub2e4. \uc774\ud6c4, ",(0,t.jsx)(n.code,{children:"BlockEntityType$Builder#build"}),"\ub97c \ud638\ucd9c\ud558\uc5ec ",(0,t.jsx)(n.code,{children:"BlockEntityType"}),"\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\ub294 ",(0,t.jsx)(n.code,{children:"DataFixer"}),"\uc5d0\uc11c \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \ud45c\ud604\ud574 \uc904 ",(0,t.jsx)(n.code,{children:"Type"}),"\uc744 \uc778\uc790\ub85c \ubc1b\ub294\ub370, ",(0,t.jsx)(n.code,{children:"DataFixer"}),"\ub294 \uc644\uc804\ud788 \uc120\ud0dd\uc0ac\ud56d\uc774\uae30\uc5d0 ",(0,t.jsx)(n.code,{children:"null"}),"\uc744 \uc804\ub2ec\ud558\uc154\ub3c4 \ub429\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:'// DeferredRegister> REGISTER\uac00 \uc774\ubbf8 \uc815\uc758\ub418\uc5b4 \uc788\ub2e4\uace0 \ud560 \ub54c\npublic static final RegistryObject> MY_BE = REGISTER.register("mybe", () -> BlockEntityType.Builder.of(MyBE::new, validBlocks).build(null));\n\n\n// BlockEntity\ub97c \uc0c1\uc18d\ud558\ub294 MyBE \ud074\ub798\uc2a4 \ub0b4\uc5d0\uc11c\npublic MyBE(BlockPos pos, BlockState state) {\n super(MY_BE.get(), pos, state);\n}\n'})}),"\n",(0,t.jsx)(n.h2,{id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0-\ub9cc\ub4e4\uae30",children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0 \ub9cc\ub4e4\uae30"}),"\n",(0,t.jsxs)(n.p,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \ubd99\uc77c \ube14\ub85d\uc740 ",(0,t.jsx)(n.code,{children:"EntityBlock"}),"\uc744 \uad6c\ud604\ud574\uc57c \ud569\ub2c8\ub2e4. ",(0,t.jsx)(n.code,{children:"#newBlockEntity(BlockPos, BlockState)"}),"\uc5d0\uc11c \ube14\ub85d\uc5d0 \ubd80\ucc29\ud560 \uc0c8 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud574\uc57c \ud569\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.h2,{id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0\uc5d0-\ub370\uc774\ud130-\ub2f4\uae30",children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \ub370\uc774\ud130 \ub2f4\uae30"}),"\n",(0,t.jsx)(n.p,{children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \ub370\uc774\ud130\ub97c \ub2f4\uae30 \uc704\ud574\uc120 \uc544\ub798 \ub450 \uba54\uc11c\ub4dc\ub97c \uc7ac\uc815\uc758\ud558\uc154\uc57c \ud569\ub2c8\ub2e4:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"BlockEntity#saveAdditional(CompoundTag tag) // \uc804\ub2ec\ub41c tag\uc5d0 \ucd94\uac00 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud568\n\nBlockEntity#load(CompoundTag tag) // \uc804\ub2ec\ub41c tag\uc5d0\uc11c \ub370\uc774\ud130\ub97c \ubd88\ub7ec\uc624\uace0 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \uc801\uc6a9\ud568\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\uc704 \ub450 \uba54\uc11c\ub4dc\ub294 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uac00 \ub4e4\uc5b4\uc788\ub294 ",(0,t.jsx)(n.code,{children:"LevelChunk"}),"\ub97c \ubd88\ub7ec\uc62c \ub54c \ud638\ucd9c\ub429\ub2c8\ub2e4. \uc774\ub4e4\uc744 \ud65c\uc6a9\ud558\uc5ec NBT\ub85c\ubd80\ud130 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uace0 \ubd88\ub7ec\uc624\uc138\uc694."]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0\uc758 \ub370\uc774\ud130\uac00 \ubcc0\ud560 \uacbd\uc6b0 ",(0,t.jsx)(n.code,{children:"BlockEntity#setChanged"}),"\ub97c \ud638\ucd9c\ud574 ",(0,t.jsx)(n.code,{children:"LevelChunk"}),"\uac00 \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc800\uc7a5\ud558\ub3c4\ub85d \ud574\uc57c \ud569\ub2c8\ub2e4."]})}),"\n",(0,t.jsxs)(n.admonition,{type:"danger",children:[(0,t.jsxs)(n.p,{children:["\uc704 \uba54\uc11c\ub4dc\ub97c \uc7ac\uc815\uc758\ud560 \ub54c\ub294 ",(0,t.jsx)(n.code,{children:"super"}),"\ub97c \ubb34\uc870\uac74 \ud638\ucd9c\ud558\uc138\uc694! \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \ud544\uc218 \uc815\ubcf4\uac00 \ub204\ub77d\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4!"]}),(0,t.jsxs)(n.p,{children:["\uadf8\ub9ac\uace0, ",(0,t.jsx)(n.code,{children:"id"}),", ",(0,t.jsx)(n.code,{children:"x"}),", ",(0,t.jsx)(n.code,{children:"y"}),", ",(0,t.jsx)(n.code,{children:"z"}),", ",(0,t.jsx)(n.code,{children:"ForgeData"}),", \uadf8\ub9ac\uace0 ",(0,t.jsx)(n.code,{children:"ForgeCaps"}),"\ub294 ",(0,t.jsx)(n.code,{children:"super"}),"\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \ud0dc\uadf8\ub4e4\uc758 \uc774\ub984\uc785\ub2c8\ub2e4!"]})]}),"\n",(0,t.jsx)(n.h2,{id:"\ube14\ub85d-\uc5d4\ud2f0\ud2f0-\ud2f1-\ucc98\ub9ac",children:"\ube14\ub85d \uc5d4\ud2f0\ud2f0 \ud2f1 \ucc98\ub9ac"}),"\n",(0,t.jsxs)(n.p,{children:["\uc544\uc774\ud15c\uc744 \uad7d\ub294 \ud654\ub85c\ucc98\ub7fc, 1 \ud2f1\ub9c8\ub2e4 \uc218\ud589\ub418\ub294 \uc791\uc5c5\uc744 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc5d0 \uad6c\ud604\ud558\uae30 \uc704\ud574\uc120 ",(0,t.jsx)(n.code,{children:"EntityBlock#getTicker(Level, BlockState, BlockEntityType)"}),"\ub97c \uc7ac\uc815\uc758 \ud558\uc138\uc694. \uc774\ub54c \ub17c\ub9ac \uc0ac\uc774\ub4dc\uc5d0 \ub530\ub77c \ub2e4\ub978 ticker\ub97c \ubc18\ud658\ud558\uc154\ub3c4 \ub429\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\ub294 \ub808\ubca8, \ube14\ub85d \uc704\uce58, ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/blocks/states",children:"\ube14\ub85d \uc0c1\ud0dc"}),", \uadf8\ub9ac\uace0 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \uc778\uc790\ub85c \ubc1b\ub294 \ud568\uc218\ub97c \ubc18\ud658\ud558\uba70, \uc5ec\uae30\uc11c \ubc18\ud658\ud55c \ud568\uc218\ub294 \ub9e4 \ud2f1\ub9c8\ub2e4 \uc2e4\ud589\ub429\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"// Block\uc758 \uc790\uc2dd \ud074\ub798\uc2a4 \ub0b4\ubd80\n@Nullable\n@Override\npublic BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) {\n return type == MyBlockEntityTypes.MYBE.get() ? MyBlockEntity::tick : null;\n}\n\n// MyBlockEntity \ud074\ub798\uc2a4 \ub0b4\ubd80\npublic static void tick(Level level, BlockPos pos, BlockState state, MyBlockEntity blockEntity) {\n // \ub9e4\ud2f1\ub9c8\ub2e4 \ud574\uc57c \ud558\ub294 \uc791\uc5c5 \ucc98\ub9ac\n}\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsx)(n.p,{children:"\ubcf5\uc7a1\ud55c \uc5f0\uc0b0\uc744 \uc5ec\uae30\uc11c \ud558\ub294 \uac83\uc740 \ud53c\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8 \ub300\uc2e0\uc5d0, \ubcf5\uc7a1\ud55c \uc5f0\uc0b0\uc740 \ub9e4 X \ud2f1 \ub9c8\ub2e4 \ud558\ub3c4\ub85d \ub9cc\ub4dc\ub294 \uac83\ub3c4 \uace0\ub824\ud558\uc5ec \uc8fc\uc138\uc694. (\ucd08\ub2f9 \ud2f1 \ud69f\uc218(tps)\ub294 \ucd5c\ub300 20\uc785\ub2c8\ub2e4.)"})}),"\n",(0,t.jsx)(n.h2,{id:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640-\ub370\uc774\ud130-\ub3d9\uae30\ud654\ud558\uae30",children:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ub370\uc774\ud130 \ub3d9\uae30\ud654\ud558\uae30"}),"\n",(0,t.jsx)(n.p,{children:"\ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\uc2dc\ud0ac \ubc29\ubc95\uc740 \ucd1d 3\uac00\uc9c0\uac00 \uc788\ub294\ub370: \uccad\ud06c\ub97c \ubd88\ub7ec\uc62c \ub54c \ub3d9\uae30\ud654\ud558\uae30, \ube14\ub85d \uc5c5\ub370\uc774\ud2b8\uc2dc \ub3d9\uae30\ud654 \ud558\uae30, \uadf8\ub9ac\uace0 \ucee4\uc2a4\ud140 \ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0 \ubcf4\ub0b4\uae30\uc785\ub2c8\ub2e4."}),"\n",(0,t.jsxs)(n.h3,{id:"levelchunk-\ubd88\ub7ec\uc62c-\ub54c-\ub3d9\uae30\ud654\ud558\uae30",children:[(0,t.jsx)(n.code,{children:"LevelChunk"})," \ubd88\ub7ec\uc62c \ub54c \ub3d9\uae30\ud654\ud558\uae30"]}),"\n",(0,t.jsx)(n.p,{children:"\uc774\ub97c \uc704\ud574\uc120 \ub2e4\uc74c \ub450 \uba54\uc11c\ub4dc\ub97c \uc7ac\uc815\uc758\ud558\uc138\uc694:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"BlockEntity#getUpdateTag()\n\nIForgeBlockEntity#handleUpdateTag(CompoundTag tag)\n"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"#getUpdateTag"}),"\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\ub85c \uc804\uc1a1\ub418\uc5b4\uc57c \ud560 \ub370\uc774\ud130\ub4e4\uc744 \uc218\uc9d1\ud569\ub2c8\ub2e4,"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"handleUpdateTag"}),"\ub294 \uc218\uc9d1\ud55c \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud569\ub2c8\ub2e4. \ub9cc\uc57d \ud574\ub2f9 ",(0,t.jsx)(n.code,{children:"BlockEntity"}),"\uc5d0 \ub370\uc774\ud130\uac00 \ub9ce\uc9c0 \uc54a\ub2e4\uba74 ",(0,t.jsxs)(n.a,{href:"#%EB%B8%94%EB%A1%9D-%EC%97%94%ED%8B%B0%ED%8B%B0%EC%97%90-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%8B%B4%EA%B8%B0",children:[(0,t.jsx)(n.code,{children:"BlockEntity"}),"\ub97c \ud65c\uc6a9\ud55c \ub370\uc774\ud130 \uc800\uc7a5"]}),"\uc5d0\uc11c \uc18c\uac1c\ub41c \uba54\uc11c\ub4dc\ub4e4\uc744 \uc751\uc6a9\ud558\uc5ec ",(0,t.jsx)(n.code,{children:"BlockEntity"})," \uc804\uccb4\ub97c \uc7ac\uc804\uc1a1\ud558\uc154\ub3c4 \ub429\ub2c8\ub2e4."]}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{type:"caution",children:(0,t.jsxs)(n.p,{children:["\ud544\uc694\uc5c6\ub294 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\ud558\ub294 \uac83\uc740 \ub124\ud2b8\uc6cc\ud06c\ub97c \ud63c\uc7a1\ud558\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30\uc5d0 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \ud544\uc694\ud55c \uc815\ubcf4\ub4e4\uc744 \ud544\uc694\ud560 \ub54c\ub9cc \ubcf4\ub0b4\ub3c4\ub85d \ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ud65c\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc758 \uc778\ubca4\ud1a0\ub9ac\uac00 \ubcc0\uacbd\ub420 \ub54c\ub9c8\ub2e4 \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \ub3d9\uae30\ud654\ub97c \ud558\ub294 \ub300\uc2e0 ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/gui/menus",children:(0,t.jsx)(n.code,{children:"AbstractContainerMenu"})}),"\uc5d0\uc11c \ub3d9\uae30\ud654\ub97c \uc218\ud589\ud574 \ube14\ub85d\uc758 \uba54\ub274\ub97c \uc5f4 \ub54c\ub9cc \ub3d9\uae30\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]})}),"\n",(0,t.jsx)(n.h3,{id:"\ube14\ub85d\uc774-\uc5c5\ub370\uc774\ud2b8\ub420-\ub54c-\ub3d9\uae30\ud654\ud558\uae30",children:"\ube14\ub85d\uc774 \uc5c5\ub370\uc774\ud2b8\ub420 \ub54c \ub3d9\uae30\ud654\ud558\uae30"}),"\n",(0,t.jsx)(n.p,{children:"\uc774 \ubc29\ubc95\uc740 \uc0b4\uc9dd \ub354 \ubcf5\uc7a1\ud558\uc9c0\ub9cc, \uc544\ub798 \uba54\uc11c\ub4dc 3\uac1c\ub9cc \uc7ac\uc815\uc758\ud558\uba74 \ub429\ub2c8\ub2e4."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"BlockEntity#getUpdateTag()\n\nBlockEntity#getUpdatePacket()\n\nIForgeBlockEntity#onDataPacket\n"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"#getUpdatePacket"}),"\uc740 \ud328\ud0b7\uc744 \ud3ec\uc9c0\uc5d0\uc11c \uad00\ub9ac\ud558\ub3c4\ub85d \ub2e4\ub978 \ud328\ud0b7\uc73c\ub85c \ub300\uccb4\ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"#onDataPacket"}),"\uc740 \ud328\ud0b7\uc774 \ub3c4\ucc29\ud560 \ub54c \ud638\ucd9c\ub429\ub2c8\ub2e4. \ub17c\ub9ac \uc11c\ubc84 \ubc0f \ud074\ub77c\uc774\uc5b8\ud2b8 \ub458 \ub2e4 \ud638\ucd9c\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"@Override\npublic CompoundTag getUpdateTag() {\n CompoundTag tag = new CompoundTag();\n // tag\uc5d0 \ube14\ub85d \uc5d4\ud2f0\ud2f0 \ub370\uc774\ud130 \uc791\uc131\n return tag;\n}\n\n@Override\npublic Packet getUpdatePacket() {\n // #getUpdateTag\ub97c \ud638\ucd9c\ud558\uc5ec \uc804\uc1a1\ud560 tag\ub97c \uac00\uc838\uc635\ub2c8\ub2e4\n return ClientboundBlockEntityDataPacket.create(this);\n}\n\n// IForgeBlockEntity#onDataPacket\uc744 \uc7ac\uc815\uc758\ud558\ub294 \uac83\uc740 \uc120\ud0dd\uc0ac\ud56d\uc785\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c #load\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4.\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\uc774\ub54c \uc5ec\uae30\uc11c \uc0ac\uc6a9\ub41c \uc815\uc801 \uc0dd\uc131\uc790 ",(0,t.jsx)(n.code,{children:"ClientboundBlockEntityDataPacket#create"}),"\ub294 \uc544\ub798 2\uac1c\uc758 \uc778\uc790\ub97c \ubc1b\uc2b5\ub2c8\ub2e4:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"BlockEntity"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["\ube14\ub85d \uc5d4\ud2f0\ud2f0\ub85c ",(0,t.jsx)(n.code,{children:"CompoundTag"}),"\ub97c \ub9cc\ub4dc\ub294 \ud568\uc218(",(0,t.jsx)(n.code,{children:"Function"}),"). \uae30\ubcf8\uac12\uc73c\ub85c ",(0,t.jsx)(n.code,{children:"BlockEntity#getUpdateTag"}),"\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"\uc774\uc81c \uc11c\ubc84\uce21\uc5d0\uc11c \ube14\ub85d \uc5c5\ub370\uc774\ud2b8\ub97c \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\uc5d0 \uc804\uc1a1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"Level#sendBlockUpdated(BlockPos pos, BlockState oldState, BlockState newState, int flags)\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"pos"}),"\ub294 \uc5c5\ub370\uc774\ud2b8\ud560 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uc758 \uc704\uce58\uc785\ub2c8\ub2e4.\n",(0,t.jsx)(n.code,{children:"oldState"}),"\ub791 ",(0,t.jsx)(n.code,{children:"newState"}),"\ub294 \ud574\ub2f9 \uc704\uce58\uc758 ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/blocks/states",children:"\ube14\ub85d \uc0c1\ud0dc"}),"\ub97c \uc804\ub2ec\ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4.\n",(0,t.jsx)(n.code,{children:"flags"}),"\ub294 \ubb34\uc2a8 \uc815\ubcf4\ub97c \ubcf4\ub0b4\uace0 \uc5c5\ub370\uc774\ud2b8\ud560\uc9c0 \uc124\uc815\ud558\ub294 \ube44\ud2b8 \ub9c8\uc2a4\ud06c\ub4e4\ub85c, ",(0,t.jsx)(n.code,{children:"2"}),"(LSB \ub450 \ubc88\uc9f8 \ube44\ud2b8), \ub610\ub294 ",(0,t.jsx)(n.code,{children:"Block#UPDATE_CLIENTS"}),"\ub97c \ud3ec\ud568\ud558\uace0 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub798\uc57c \uc11c\ubc84\uac00 \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\uc5d0 \uc5c5\ub370\uc774\ud2b8 \ud328\ud0b7\uc744 \uc804\uc1a1\ud569\ub2c8\ub2e4. ",(0,t.jsx)(n.code,{children:"Block"})," \ud074\ub798\uc2a4\ub97c \ucc38\uace0\ud558\uc5ec \ub2e4\ub978 \ud50c\ub798\uadf8\ub4e4\uc758 \uc5ed\ud560 \ub610\ud55c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.h3,{id:"\ucee4\uc2a4\ud140-\ub124\ud2b8\uc6cc\ud06c-\uba54\uc2dc\uc9c0\ub85c-\ub3d9\uae30\ud654\ud558\uae30",children:"\ucee4\uc2a4\ud140 \ub124\ud2b8\uc6cc\ud06c \uba54\uc2dc\uc9c0\ub85c \ub3d9\uae30\ud654\ud558\uae30"}),"\n",(0,t.jsxs)(n.p,{children:["\uc774 \ubc29\ubc95\uc740 \uac00\uc7a5 \ubcf5\uc7a1\ud558\uc9c0\ub9cc, \uadf8\ub7ec\uae30\uc5d0 \ub3d9\uae30\ud654\ub97c \ud574\uc57c \ud558\ub294 \uc815\ubcf4\ub4e4\ub9cc \uc2e4\uc81c\ub85c \ub3d9\uae30\ud654\uac00 \ub418\ub3c4\ub85d \uc138\ubc00\ud558\uac8c \uc870\uc808\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uba3c\uc800 ",(0,t.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/networking/",children:"\ub124\ud2b8\uc6cc\ud0b9"}),"\uc5d0 \ub300\ud574 \ubbf8\ub9ac \uc219\uc9c0\ud558\uc2dc\ub294 \uac78 \uad8c\uc7a5\ub4dc\ub9bd\ub2c8\ub2e4, \ud2b9\ud788 ",(0,t.jsx)(n.a,{href:"../networking/simpleimpl.md",children:(0,t.jsx)(n.code,{children:"SimpleImpl"})}),"\uc5d0 \ub300\ud574 \uc798 \uc54c\uace0 \uacc4\uc154\uc57c \ud569\ub2c8\ub2e4."]}),"\n",(0,t.jsxs)(n.p,{children:["\ucee4\uc2a4\ud140 \uba54\uc2dc\uc9c0\ub294 \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\ub97c \ucd94\uc801\ud558\uace0 \uc788\ub294 \ubaa8\ub4e0 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 ",(0,t.jsx)(n.code,{children:"SimpleChannel#send(PacketDistributor$PacketTarget, MSG)"}),"\ub97c \ud1b5\ud574 \ub2e8\ubc88\uc5d0 \ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\uc774\ub54c \uc0ac\uc6a9\ud558\ub294 ",(0,t.jsx)(n.code,{children:"PacketDistributor"}),"\ub294 ",(0,t.jsx)(n.code,{children:"TRACKING_ENTITY"}),"\uc785\ub2c8\ub2e4."]}),"\n",(0,t.jsx)(n.admonition,{type:"caution",children:(0,t.jsxs)(n.p,{children:["\ud50c\ub808\uc774\uc5b4\uc5d0\uac8c \ud328\ud0b7\uc774 \uc804\ub2ec\ub418\uc5c8\uc744 \ub54c\ub294 \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uac00 \ubd80\uc11c\uc9c0\uac70\ub098 \ub2e4\ub978 \ube14\ub85d\uc73c\ub85c \ub300\uccb4\ub418\uc5b4 \ub808\ubca8\uc5d0 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc744 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30 \ub54c\ubb38\uc5d0 \ube14\ub85d\uc774 \uc9c4\uc9dc \uc874\uc7ac\ud558\ub294\uc9c0 \ubb34\uc870\uac74 \ud655\uc778\ud558\uc154\uc57c \ud569\ub2c8\ub2e4! \ub610\ud55c \ud574\ub2f9 \ube14\ub85d \uc5d4\ud2f0\ud2f0\uac00 \ub4e4\uc5b4\uc788\ub294 \uccad\ud06c\uac00 \uc874\uc7ac\ud558\ub294\uc9c0\ub3c4 \ud655\uc778\ud558\uc154\uc57c \ud569\ub2c8\ub2e4! (",(0,t.jsx)(n.code,{children:"Level#hasChunkAt(BlockPos)"}),")."]})})]})}function h(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},1151:(e,n,c)=>{c.d(n,{Z:()=>d,a:()=>o});var t=c(7294);const l={},i=t.createContext(l);function o(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/eaa2d6c3.fa290867.js b/assets/js/eaa2d6c3.fa290867.js new file mode 100644 index 000000000..c982eda14 --- /dev/null +++ b/assets/js/eaa2d6c3.fa290867.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[8515],{1535:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>s});var a=r(5893),i=r(1151);const t={},l="\uc0c8\ub85c\uc6b4 \ud328\ud0b7 \ub4f1\ub85d\ud558\uae30",c={id:"networking/payload",title:"\uc0c8\ub85c\uc6b4 \ud328\ud0b7 \ub4f1\ub85d\ud558\uae30",description:"\ud328\ud0b7\uc740 \uc784\uc758\uc758 \ub370\uc774\ud130\ub97c \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc11c\ubc84\uac00 \uc11c\ub85c \uc8fc\uace0\ubc1b\uc744 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uac01 \ud328\ud0b7\uc740 \ud55c \ub124\uc784 \uc2a4\ud398\uc774\uc2a4 \uc544\ub798 IPayloadRegistrar(\ud328\ud0b7 \uc9d1\ud569)\uc5d0 \ub4f1\ub85d\ud558\uba70, \uc774\ub294 RegisterPayloadHandlerEvent\ub97c \ud1b5\ud574 \ubc1b\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",source:"@site/docs/networking/payload.md",sourceDirName:"networking",slug:"/networking/payload",permalink:"/Neoforge-Korean-Documentation/docs/networking/payload",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"mainSidebar",previous:{title:"\uc5d4\ud2f0\ud2f0 \ud1b5\uc2e0",permalink:"/Neoforge-Korean-Documentation/docs/networking/entities"},next:{title:"Face Data",permalink:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/facedata"}},d={},s=[];function o(e){const n={a:"a",code:"code",h1:"h1",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h1,{id:"\uc0c8\ub85c\uc6b4-\ud328\ud0b7-\ub4f1\ub85d\ud558\uae30",children:"\uc0c8\ub85c\uc6b4 \ud328\ud0b7 \ub4f1\ub85d\ud558\uae30"}),"\n",(0,a.jsxs)(n.p,{children:["\ud328\ud0b7\uc740 \uc784\uc758\uc758 \ub370\uc774\ud130\ub97c \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc11c\ubc84\uac00 \uc11c\ub85c \uc8fc\uace0\ubc1b\uc744 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uac01 \ud328\ud0b7\uc740 \ud55c \ub124\uc784 \uc2a4\ud398\uc774\uc2a4 \uc544\ub798 ",(0,a.jsx)(n.code,{children:"IPayloadRegistrar"}),"(\ud328\ud0b7 \uc9d1\ud569)\uc5d0 \ub4f1\ub85d\ud558\uba70, \uc774\ub294 ",(0,a.jsx)(n.code,{children:"RegisterPayloadHandlerEvent"}),"\ub97c \ud1b5\ud574 \ubc1b\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",children:'@SubscribeEvent\npublic static void register(final RegisterPacketHandlerEvent event) {\n final IPayloadRegistrar registrar = event.registrar("mymod");\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"\uc608\ub97c \ub4e4\uc5b4 \uc544\ub798 \ub370\uc774\ud130\ub97c \uc804\uc1a1\ud55c\ub2e4\uace0 \ud560 \ub54c:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",children:"public record MyData(String name, int age) {}\n"})}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.code,{children:"CustomPacketPayload"}),"\uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c\ub85c \uc804\uc1a1\ub420 \uc218 \uc788\ub3c4\ub85d \ub9cc\ub4dc\uc138\uc694."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",children:'public record MyData(String name, int age) implements CustomPacketPayload {\n \n public static final ResourceLocation ID = new ResourceLocation("mymod", "my_data");\n \n public MyData(final FriendlyByteBuf buffer) {\n this(buffer.readUtf(), buffer.readInt());\n }\n \n @Override\n public void write(final FriendlyByteBuf buffer) {\n buffer.writeUtf(name());\n buffer.writeInt(age());\n }\n \n @Override\n public ResourceLocation id() {\n return ID;\n }\n}\n'})}),"\n",(0,a.jsxs)(n.p,{children:["\uc704 \uc608\uc2dc\uc5d0 \ub098\uc628 \uac83\ucc98\ub7fc ",(0,a.jsx)(n.code,{children:"CustomPacketPayload"}),"\ub294 ",(0,a.jsx)(n.code,{children:"write"}),", ",(0,a.jsx)(n.code,{children:"id"})," \uba54\uc11c\ub4dc\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. ",(0,a.jsx)(n.code,{children:"write"}),"\ub294 \ubc84\ud37c\uc5d0 \ub370\uc774\ud130\ub97c \uc791\uc131\ud560 \ub54c \uc0ac\uc6a9\ud558\uace0, ",(0,a.jsx)(n.code,{children:"id"}),"\ub294 \uac01 \ud328\ud0b7\uc744 \uad6c\ubd84\ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc774\ubfd0\ub9cc \uc544\ub2c8\ub77c \ubc84\ud37c\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc77d\uc5b4 \ud328\ud0b7\uc744 \ubcf5\ud638\ud654\ud558\ub294 \uba54\uc11c\ub4dc\ub3c4 \ud544\uc694\ud569\ub2c8\ub2e4. \uc704 \uc608\uc81c\uc5d0\uc120 \uc0dd\uc131\uc790\ub97c \ud1b5\ud574 \ubc84\ud37c\ub97c \uc77d\uc2b5\ub2c8\ub2e4."]}),"\n",(0,a.jsx)(n.p,{children:"\ub9c8\uc9c0\ub9c9\uc73c\ub85c, \uc704 \ud328\ud0b7 \uc9d1\ud569\uc5d0 \ub4f1\ub85d\ud558\uc138\uc694:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",children:'@SubscribeEvent\npublic static void register(final RegisterPacketHandlerEvent event) {\n final IPayloadRegistrar registrar = event.registrar("mymod");\n registar.play(MyData.ID, MyData::new, handler -> handler\n .client(ClientPayloadHandler.getInstance()::handleData)\n .server(ServerPayloadHandler.getInstance()::handleData));\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"\uc704 \ucf54\ub4dc\ub97c \ub4e4\uc5ec\ub2e4\ubcf4\uba74 \uba87 \uac00\uc9c0 \uc911\uc694 \uc0ac\ud56d\uc744 \ubc1c\uacac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["\ud328\ud0b7 \uc9d1\ud569\uc5d4 ",(0,a.jsx)(n.code,{children:"play"})," \uba54\uc11c\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4, \uc774\ub294 \uac8c\uc784 \ud50c\ub808\uc774 \uc911 \uc804\uc1a1\ub420 \ud328\ud0b7\uc744 \ub4f1\ub85d\ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"play"})," \ub9d0\uace0\ub3c4 \ub85c\uadf8\uc778 \uc774\uc804 \uc0ac\uc804 \uc124\uc815\uc5d0 \uc0ac\uc6a9\ud558\ub294 ",(0,a.jsx)(n.code,{children:"configuration"}),"\ub3c4 \uc788\uc73c\uba70, \uac8c\uc784 \ud50c\ub808\uc774\uc640 \uc0ac\uc804 \uc124\uc815 \ub2e8\uacc4\uc5d0\uc11c \ub3d9\uc2dc\uc5d0 \uc0ac\uc6a9\ud560 \ud328\ud0b7\uc744 \ub4f1\ub85d\ud558\ub294 ",(0,a.jsx)(n.code,{children:"common"}),"\ub3c4 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"MyData"}),"\ub97c \ubc84\ud37c\uc5d0\uc11c \uc77d\ub294 \uba54\uc11c\ub4dc\ub85c \uc0dd\uc131\uc790\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4."]}),"\n",(0,a.jsxs)(n.li,{children:["\uc704 \uba54\uc11c\ub4dc\uc758 \uc138 \ubc88\uc9f8 \uc778\uc790\ub294 \ud328\ud0b7\uc774 \ud074\ub77c\uc774\uc5b8\ud2b8, \ub610\ub294 \uc11c\ubc84\uc5d0 \ub3c4\ucc29\ud588\uc744 \ub54c \uc2e4\ud589\ud560 \ub3d9\uc791\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"client"})," \uba54\uc11c\ub4dc\ub294 \ud328\ud0b7\uc774 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ub3c4\ucc29\ud588\uc744 \ub54c \uc2e4\ud589\ud560 \ub3d9\uc791\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"server"})," \uba54\uc11c\ub4dc\ub294 \ud328\ud0b7\uc774 \uc11c\ubc84\uc5d0 \ub3c4\ucc29\ud588\uc744 \ub54c \uc2e4\ud589\ud560 \ub3d9\uc791\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4."]}),"\n",(0,a.jsxs)(n.li,{children:["\ub610\ud55c, ",(0,a.jsx)(n.code,{children:"play"}),"\ub294 \ud55c \ubc88\uc5d0 \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc11c\ubc84\uc5d0\uc11c \ub3d9\uc77c\ud55c \ub3d9\uc791\uc744 \uc9c0\uc815\ud574 \uc8fc\ub294 \ub3d9\uba85 \uba54\uc11c\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"\uc774\uc81c \uc0c8\ub85c\uc6b4 \ud328\ud0b7\uc744 \ub4f1\ub85d\ud588\uc73c\ub2c8 \uc218\uc2e0 \uc2dc \uc218\ud589\ud560 \ub3d9\uc791\uc744 \uad6c\ud604\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uac04\uacb0\ud568\uc744 \uc704\ud574 \ud074\ub77c\uc774\uc5b8\ud2b8 \uc218\uc2e0\uc2dc \ub3d9\uc791\ub9cc \ub2e4\ub8e8\uaca0\uc9c0\ub9cc, \uc11c\ubc84\ub3c4 \uc774\uc640 \ub3d9\uc77c\ud569\ub2c8\ub2e4."}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",children:'public class ClientPayloadHandler {\n \n private static final ClientPayloadHandler INSTANCE = new ClientPayloadHandler();\n \n public static ClientPayloadHandler getInstance() {\n return INSTANCE;\n }\n \n public void handleData(final MyData data, final PlayPayloadContext context) {\n // \ub124\ud2b8\uc6cc\ud06c \uc2a4\ub808\ub4dc\uc5d0\uc11c \ud328\ud0b7 \ub370\uc774\ud130 \uc0ac\uc6a9\n blah(data.name());\n \n // \uba54\uc778 \uc2a4\ub808\ub4dc\uc5d0\uc11c \ub370\uc774\ud130 \uc0ac\uc6a9\n context.workHandler().submitAsync(() -> {\n blah(data.age());\n })\n .exceptionally(e -> {\n // \uc608\uc678 \ucc98\ub9ac\n context.packetHandler().disconnect(Component.translatable("my_mod.networking.failed", e.getMessage()));\n return null;\n });\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"\uc704 \uc608\uc2dc\uc5d0\uc11c \uc8fc\ubaa9\ud558\uc2e4 \uc810\uc740:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["\ud328\ud0b7 \ucc98\ub9ac \ud568\uc218\ub294 \ud328\ud0b7\ub9cc \ubc1b\ub294 \uac8c \uc544\ub2c8\ub77c, \ud328\ud0b7\uc744 \ub204\uac00 \uc218\uc2e0\ud588\ub294\uc9c0, \ubcf4\ub0b8 \uc0ac\ub78c\uc740 \ub204\uad70\uc9c0 \ub4f1\uc744 \ub0b4\ud3ec\ud558\ub294 \ub9e5\ub77d(context)\ub3c4 \uc804\ub2ec\ubc1b\uc2b5\ub2c8\ub2e4. ",(0,a.jsx)(n.code,{children:"#play"}),"\ub85c \ub4f1\ub85d\ud55c \ud328\ud0b7\uacfc ",(0,a.jsx)(n.code,{children:"#configuration"}),"\uc73c\ub85c \ub4f1\ub85d\ud55c \ud328\ud0b7\uc740 \uc804\ub2ec\ubc1b\ub294 \ub9e5\ub77d\uc758 \ud0c0\uc785\uc774 \ub2e4\ub974\uae30 \ub54c\ubb38\uc5d0(",(0,a.jsx)(n.code,{children:"PlayPayloadContext"})," vs ",(0,a.jsx)(n.code,{children:"ConfigurationPayloadContext"}),"), \ud328\ud0b7 \uc9d1\ud569\uc5d0 ",(0,a.jsx)(n.code,{children:"#common"}),"\uc744 \ud1b5\ud574 \ub4f1\ub85d\ud558\uc168\ub2e4\uba74 ",(0,a.jsx)(n.code,{children:"IPayloadContext"}),"\ub97c \ub300\uc2e0 \uc778\uc790\ub85c \ubc1b\uc73c\uc154\uc57c \ud569\ub2c8\ub2e4."]}),"\n",(0,a.jsx)(n.li,{children:"\ud328\ud0b7 \ucc98\ub9ac \ud568\uc218\ub294 \ub124\ud2b8\uc6cc\ud06c \uc2a4\ub808\ub4dc\uc5d0\uc11c \ud638\ucd9c\ub429\ub2c8\ub2e4. \ubcf8 \uac8c\uc784\uacfc \ubcd1\ub82c\uc801\uc73c\ub85c \uc2e4\ud589\ub418\uae30 \ub54c\ubb38\uc5d0 \ubd80\ud558\uac00 \ud070 \uc791\uc5c5\uc740 \uc5ec\uae30\uc11c \uc218\ud589\ud558\uc138\uc694."}),"\n",(0,a.jsxs)(n.li,{children:["\ub9cc\uc57d \uba54\uc778 \uc2a4\ub808\ub4dc\uc5d0\uc11c \ucf54\ub4dc\ub97c \uc2e4\ud589\ud574\uc57c \ud55c\ub2e4\uba74 ",(0,a.jsx)(n.code,{children:"workHandler"}),"\ub97c \ud1b5\ud574 \uba54\uc778 \uc2a4\ub808\ub4dc\uc5d0 \uc791\uc5c5\uc744 \uc804\uc1a1\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"workHandler"}),"\ub294 \uba54\uc778 \uc2a4\ub808\ub4dc\uc5d0 \uc791\uc5c5\uc744 \uc804\uc1a1\ud560 ",(0,a.jsx)(n.code,{children:"ISynchronizedWorkHandler"}),"\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"submitAsync"}),"\ub294 ",(0,a.jsx)(n.code,{children:"CompletableFuture"}),"\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. \ud55c\ubc88\uc5d0 \ub2e4\ub978 ",(0,a.jsx)(n.code,{children:"Future"}),"\uc640 \uc5ee\uace0 \uc608\uc678\ucc98\ub9ac\ub97c \ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"CompletableFuture"}),"\uc758 \uc608\uc678\ub97c \ucc98\ub9ac\ud558\uc9c0 \uc54a\uc73c\uc2dc\uba74 \ubb34\uc2dc\ub418\uc5b4 ",(0,a.jsx)(n.strong,{children:"\uc624\ub958\uac00 \ub0ac\ub294\uc9c0\ub3c4 \ubaa8\ub97c \uc218 \uc788\uc2b5\ub2c8\ub2e4"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["\uc774\uc81c \ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc11c\ubc84 \uac04 \ud1b5\uc2e0\ud558\ub294 \ubc95\uc744 \uc54c\uc558\uc73c\ub2c8 \uc0c8\ub85c\uc6b4 \ud328\ud0b7\uc744 \ub9cc\ub4e4\uc5b4 \ubcf4\uc138\uc694. \uc9c1\uc811 \ub9cc\ub4e0 \ud328\ud0b7\uc744 \uc0ac\uc804 \uc124\uc815 \ub2e8\uacc4\uc5d0\uc11c \uc0ac\uc6a9\ud558\uc2dc\ub824\uba74 ",(0,a.jsx)(n.a,{href:"/Neoforge-Korean-Documentation/docs/networking/configuration-tasks",children:"\uc5ec\uae30"}),"\ub97c \ucc38\uace0\ud558\uc138\uc694."]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(o,{...e})}):o(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>c,a:()=>l});var a=r(7294);const i={},t=a.createContext(i);function l(e){const n=a.useContext(t);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),a.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.8934e6bc.js b/assets/js/main.8934e6bc.js new file mode 100644 index 000000000..87a4dc440 --- /dev/null +++ b/assets/js/main.8934e6bc.js @@ -0,0 +1,2 @@ +/*! For license information please see main.8934e6bc.js.LICENSE.txt */ +(self.webpackChunkneoforged_docs=self.webpackChunkneoforged_docs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>o});var r=n(7294);function o(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});n(7294);var r=n(8356),o=n.n(r),a=n(6887);const i={"0097bd4c":[()=>n.e(6300).then(n.bind(n,3414)),"@site/docs/concepts/resources.md",3414],"0131da9c":[()=>n.e(9192).then(n.bind(n,5588)),"@site/docs/networking/index.md",5588],"0189a554":[()=>n.e(6196).then(n.bind(n,3258)),"@site/docs/datastorage/saveddata.md",3258],"022ffcac":[()=>n.e(1901).then(n.t.bind(n,7285,19)),"/home/runner/work/Neoforge-Korean-Documentation/Neoforge-Korean-Documentation/.docusaurus/docusaurus-plugin-content-docs/neogradle/plugin-route-context-module-100.json",7285],"04c77a21":[()=>n.e(366).then(n.bind(n,7035)),"@site/docs/resources/server/index.md",7035],"072cfdcc":[()=>n.e(749).then(n.bind(n,8054)),"@site/docs/misc/gametest.mdx",8054],"07a72aed":[()=>n.e(2299).then(n.bind(n,3230)),"@site/docs/items/index.md",3230],"095e83d5":[()=>n.e(5795).then(n.bind(n,386)),"@site/docs/resources/server/recipes/incode.md",386],"0ba55bb0":[()=>n.e(1278).then(n.bind(n,2527)),"@site/docs/concepts/internationalization.md",2527],"0cc823e2":[()=>n.e(2331).then(n.bind(n,2020)),"@site/docs/resources/client/models/itemproperties.md",2020],"0d423446":[()=>n.e(6926).then(n.bind(n,7816)),"@site/neogradle/docs/dependencies/jarinjar.md",7816],"10ec48ec":[()=>n.e(5232).then(n.t.bind(n,7085,19)),"/home/runner/work/Neoforge-Korean-Documentation/Neoforge-Korean-Documentation/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"11be1d26":[()=>n.e(3709).then(n.bind(n,400)),"@site/neogradle/docs/index.md",400],"11d540dd":[()=>n.e(2461).then(n.bind(n,3543)),"@site/neogradle_versioned_docs/version-5.x/docs/index.md",3543],"1438dee7":[()=>n.e(9766).then(n.bind(n,823)),"@site/docs/datagen/server/advancements.md",823],"15e87076":[()=>n.e(7095).then(n.t.bind(n,3769,19)),"/home/runner/work/Neoforge-Korean-Documentation/Neoforge-Korean-Documentation/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"160751bc":[()=>n.e(4985).then(n.bind(n,3146)),"@site/docs/resources/server/recipes/ingredients.md",3146],17896441:[()=>Promise.all([n.e(532),n.e(325),n.e(7918)]).then(n.bind(n,9707)),"@theme/DocItem",9707],"179db744":[()=>n.e(5404).then(n.bind(n,3746)),"@site/docs/gui/menus.md",3746],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,6675)),"@theme/SearchPage",6675],"1d422a1c":[()=>n.e(2951).then(n.bind(n,2221)),"@site/docs/datagen/server/loottables.md",2221],"1d752bcb":[()=>n.e(7114).then(n.bind(n,374)),"@site/neogradle/docs/configuration/runs.md",374],"1d76c034":[()=>n.e(1090).then(n.bind(n,5610)),"@site/docs/gettingstarted/modfiles.md",5610],"1f391b9e":[()=>Promise.all([n.e(532),n.e(325),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"22d52f60":[()=>n.e(3395).then(n.bind(n,942)),"@site/docs/datagen/server/recipes.md",942],"241b0f7d":[()=>n.e(2415).then(n.bind(n,6023)),"@site/docs/resources/client/models/tinting.md",6023],"248153b2":[()=>n.e(4260).then(n.bind(n,5488)),"@site/docs/gui/screens.md",5488],"2549da2a":[()=>n.e(5951).then(n.bind(n,5940)),"@site/docs/resources/server/conditional.md",5940],"2a2823cb":[()=>n.e(558).then(n.bind(n,3590)),"@site/neogradle_versioned_docs/version-5.x/docs/dependencies/index.md",3590],"33f3190e":[()=>n.e(8102).then(n.bind(n,7086)),"@site/docs/items/bewlr.md",7086],"384a51cc":[()=>n.e(7515).then(n.bind(n,9538)),"@site/docs/datagen/client/localization.md",9538],"3a611a55":[()=>n.e(7352).then(n.bind(n,6418)),"@site/docs/resources/server/tags.md",6418],"40d3623b":[()=>n.e(989).then(n.bind(n,624)),"@site/neogradle/docs/5.x_to_6.0.md",624],"4513e4cb":[()=>n.e(5803).then(n.bind(n,3751)),"@site/docs/gameeffects/particles.md",3751],"45a7df03":[()=>n.e(9603).then(n.bind(n,297)),"@site/docs/blocks/index.md",297],"4b5e0f3b":[()=>n.e(4057).then(n.bind(n,2303)),"@site/docs/networking/entities.md",2303],"4c20fa2e":[()=>n.e(9862).then(n.bind(n,1603)),"@site/docs/blockentities/ber.md",1603],"4d22dbdd":[()=>n.e(2894).then(n.bind(n,5175)),"@site/docs/rendering/modelloaders/itemoverrides.md",5175],"4f1d60f3":[()=>n.e(6116).then(n.bind(n,1570)),"@site/versioned_docs/version-1.19.x/intro.md",1570],"50dde990":[()=>n.e(9542).then(n.bind(n,783)),"@site/docs/items/interactionpipeline.md",783],"528c92b9":[()=>n.e(119).then(n.bind(n,4831)),"@site/docs/resources/server/advancements.md",4831],"5473c81d":[()=>n.e(7041).then(n.bind(n,5210)),"@site/docs/concepts/registries.md",5210],"55f9101b":[()=>n.e(8407).then(n.bind(n,168)),"@site/neogradle/docs/dependencies/index.md",168],"5b1e1c4d":[()=>n.e(30).then(n.bind(n,5961)),"@site/docs/gameeffects/sounds.md",5961],"5bd81942":[()=>n.e(4359).then(n.bind(n,2996)),"@site/docs/datastorage/attachments.md",2996],"5c71eac8":[()=>n.e(4739).then(n.bind(n,4652)),"@site/docs/datagen/server/glm.md",4652],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5fa5be60":[()=>n.e(2536).then(n.bind(n,9625)),"@site/docs/resources/client/models/index.md",9625],"675a8f04":[()=>n.e(359).then(n.bind(n,4913)),"@site/docs/rendering/modelextensions/transforms.md",4913],"681cd5f4":[()=>n.e(6219).then(n.t.bind(n,5745,19)),"/home/runner/work/Neoforge-Korean-Documentation/Neoforge-Korean-Documentation/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"68c38b76":[()=>n.e(3629).then(n.bind(n,59)),"@site/docs/resources/server/glm.md",59],"6b9e6fe0":[()=>n.e(7875).then(n.bind(n,2374)),"@site/docs/misc/config.md",2374],"6edf9e17":[()=>n.e(9082).then(n.bind(n,9855)),"@site/docs/datagen/client/modelproviders.md",9855],"720589e9":[()=>n.e(9906).then(n.bind(n,6821)),"@site/docs/rendering/modelextensions/visibility.md",6821],"760eb251":[()=>n.e(3299).then(n.bind(n,1617)),"@site/docs/gettingstarted/structuring.md",1617],"762e5ad5":[()=>n.e(7554).then(n.t.bind(n,363,19)),"~docs/neogradle/version-current-metadata-prop-751.json",363],"7a6a0aa7":[()=>n.e(2879).then(n.bind(n,1429)),"@site/docs/concepts/sides.md",1429],"7b80a335":[()=>Promise.all([n.e(532),n.e(6729)]).then(n.bind(n,1261)),"@site/neogradle/docs/configuration/index.mdx",1261],"7be5470e":[()=>Promise.all([n.e(532),n.e(8418)]).then(n.bind(n,3723)),"@site/docs/advanced/accesstransformers.mdx",3723],"80d75105":[()=>n.e(3233).then(n.bind(n,534)),"@site/docs/blocks/states.md",534],"832702d3":[()=>n.e(6561).then(n.t.bind(n,6440,19)),"~docs/default/version-1-19-x-metadata-prop-6ee.json",6440],"83ed465d":[()=>n.e(8006).then(n.bind(n,8483)),"@site/docs/datagen/client/sounds.md",8483],"863fbef3":[()=>n.e(1085).then(n.bind(n,3034)),"@site/docs/rendering/modelloaders/transform.md",3034],"87db7a35":[()=>n.e(2668).then(n.bind(n,4738)),"@site/neogradle_versioned_docs/version-5.x/docs/dependencies/jarinjar.md",4738],"8a5f5176":[()=>n.e(9774).then(n.bind(n,2085)),"@site/docs/datagen/index.md",2085],"8cea675d":[()=>n.e(2895).then(n.bind(n,4282)),"@site/docs/concepts/events.md",4282],"904d57f9":[()=>n.e(3105).then(n.bind(n,5501)),"@site/docs/rendering/modelextensions/facedata.md",5501],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"97e60370":[()=>n.e(6702).then(n.bind(n,5691)),"@site/docs/misc/keymappings.md",5691],"9b0ea4f7":[()=>n.e(2413).then(n.bind(n,6531)),"@site/neogradle_versioned_docs/version-5.x/docs/configuration/index.md",6531],"9faf133f":[()=>n.e(5241).then(n.bind(n,6290)),"@site/docs/datastorage/codecs.md",6290],a342c8c4:[()=>Promise.all([n.e(532),n.e(9547)]).then(n.bind(n,893)),"@site/src/pages/contributing.mdx",893],a342e5b2:[()=>n.e(141).then(n.bind(n,8552)),"@site/docs/resources/server/recipes/custom.md",8552],a681cd85:[()=>n.e(5630).then(n.bind(n,2802)),"@site/docs/rendering/modelloaders/bakedmodel.md",2802],a6879afe:[()=>n.e(3687).then(n.bind(n,6444)),"@site/docs/gettingstarted/index.md",6444],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a9095bdd:[()=>n.e(9546).then(n.bind(n,6960)),"@site/docs/datagen/server/datapackregistries.md",6960],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],aa866dc7:[()=>n.e(8379).then(n.bind(n,8140)),"@site/docs/misc/components.md",8140],b13e79e2:[()=>n.e(7140).then(n.bind(n,1306)),"@site/docs/resources/client/index.md",1306],b41a5de4:[()=>n.e(545).then(n.bind(n,256)),"@site/neogradle_versioned_docs/version-5.x/docs/configuration/runs.md",256],b7fece95:[()=>n.e(8266).then(n.bind(n,8478)),"@site/docs/gettingstarted/versioning.md",8478],ba76e36f:[()=>n.e(4517).then(n.bind(n,4500)),"@site/docs/resources/server/loottables.md",4500],bdb1c5be:[()=>n.e(7722).then(n.t.bind(n,9887,19)),"~docs/neogradle/version-5-x-metadata-prop-e8f.json",9887],c00384f4:[()=>n.e(1869).then(n.bind(n,9044)),"@site/neogradle/docs/configuration/advanced.md",9044],c0e956e0:[()=>n.e(2868).then(n.bind(n,6654)),"@site/docs/networking/configuration-tasks.md",6654],c415381c:[()=>n.e(563).then(n.bind(n,2917)),"@site/docs/rendering/modelloaders/index.md",2917],cc670278:[()=>n.e(8757).then(n.bind(n,9587)),"@site/docs/misc/debugprofiler.md",9587],d44d21ac:[()=>n.e(4221).then(n.bind(n,4645)),"@site/neogradle/docs/gettingstarted/index.md",4645],d8e62455:[()=>n.e(5898).then(n.bind(n,1119)),"@site/docs/blockentities/index.md",1119],dc56d44e:[()=>n.e(6876).then(n.bind(n,9306)),"@site/docs/datastorage/capabilities.md",9306],de198839:[()=>n.e(1077).then(n.bind(n,1745)),"@site/docs/concepts/lifecycle.md",1745],dece9cb5:[()=>n.e(6783).then(n.bind(n,7216)),"@site/docs/resources/server/recipes/index.md",7216],e79c83f8:[()=>n.e(6298).then(n.bind(n,8141)),"@site/docs/datagen/server/tags.md",8141],e7ce6630:[()=>n.e(5668).then(n.bind(n,3627)),"@site/src/pages/index.mdx",3627],e9853959:[()=>n.e(3756).then(n.bind(n,1462)),"@site/docs/legacy/porting.md",1462],eaa2d6c3:[()=>n.e(8515).then(n.bind(n,1535)),"@site/docs/networking/payload.md",1535],eabd4908:[()=>n.e(6803).then(n.bind(n,6932)),"@site/neogradle_versioned_docs/version-5.x/docs/gettingstarted/index.md",6932],f524fbc0:[()=>n.e(47).then(n.bind(n,3891)),"@site/docs/rendering/modelextensions/rendertypes.md",3891],f5474045:[()=>n.e(1957).then(n.bind(n,9265)),"@site/docs/misc/updatechecker.md",9265]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(9670),u=n(226);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},f=[],p=[],m=(0,c.Z)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],f.push(r[1]),p.push(r[2]))})),o().Map({loading:l,loader:d,modules:f,webpack:()=>p,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(a,{...o,...n})})}})}const f=[{path:"/Neoforge-Korean-Documentation/contributing",component:d("/Neoforge-Korean-Documentation/contributing","b2e"),exact:!0},{path:"/Neoforge-Korean-Documentation/search",component:d("/Neoforge-Korean-Documentation/search","432"),exact:!0},{path:"/Neoforge-Korean-Documentation/docs",component:d("/Neoforge-Korean-Documentation/docs","3b4"),routes:[{path:"/Neoforge-Korean-Documentation/docs/1.19.x",component:d("/Neoforge-Korean-Documentation/docs/1.19.x","b94"),routes:[{path:"/Neoforge-Korean-Documentation/docs/1.19.x",component:d("/Neoforge-Korean-Documentation/docs/1.19.x","88e"),routes:[{path:"/Neoforge-Korean-Documentation/docs/1.19.x/intro",component:d("/Neoforge-Korean-Documentation/docs/1.19.x/intro","29c"),exact:!0,sidebar:"tutorialSidebar"}]}]},{path:"/Neoforge-Korean-Documentation/docs",component:d("/Neoforge-Korean-Documentation/docs","518"),routes:[{path:"/Neoforge-Korean-Documentation/docs",component:d("/Neoforge-Korean-Documentation/docs","35c"),routes:[{path:"/Neoforge-Korean-Documentation/docs/advanced/accesstransformers",component:d("/Neoforge-Korean-Documentation/docs/advanced/accesstransformers","544"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/blockentities/",component:d("/Neoforge-Korean-Documentation/docs/blockentities/","ea9"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/blockentities/ber",component:d("/Neoforge-Korean-Documentation/docs/blockentities/ber","802"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/blocks/",component:d("/Neoforge-Korean-Documentation/docs/blocks/","7e6"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/blocks/states",component:d("/Neoforge-Korean-Documentation/docs/blocks/states","99d"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/concepts/events",component:d("/Neoforge-Korean-Documentation/docs/concepts/events","67d"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/concepts/internationalization",component:d("/Neoforge-Korean-Documentation/docs/concepts/internationalization","ae2"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/concepts/lifecycle",component:d("/Neoforge-Korean-Documentation/docs/concepts/lifecycle","600"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/concepts/registries",component:d("/Neoforge-Korean-Documentation/docs/concepts/registries","0ff"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/concepts/resources",component:d("/Neoforge-Korean-Documentation/docs/concepts/resources","934"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/concepts/sides",component:d("/Neoforge-Korean-Documentation/docs/concepts/sides","af8"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/",component:d("/Neoforge-Korean-Documentation/docs/datagen/","aca"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/client/localization",component:d("/Neoforge-Korean-Documentation/docs/datagen/client/localization","7a8"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/client/modelproviders",component:d("/Neoforge-Korean-Documentation/docs/datagen/client/modelproviders","c6d"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/client/sounds",component:d("/Neoforge-Korean-Documentation/docs/datagen/client/sounds","1e9"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/server/advancements",component:d("/Neoforge-Korean-Documentation/docs/datagen/server/advancements","f4c"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/server/datapackregistries",component:d("/Neoforge-Korean-Documentation/docs/datagen/server/datapackregistries","b42"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/server/glm",component:d("/Neoforge-Korean-Documentation/docs/datagen/server/glm","ef2"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/server/loottables",component:d("/Neoforge-Korean-Documentation/docs/datagen/server/loottables","7f1"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/server/recipes",component:d("/Neoforge-Korean-Documentation/docs/datagen/server/recipes","598"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datagen/server/tags",component:d("/Neoforge-Korean-Documentation/docs/datagen/server/tags","d74"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datastorage/attachments",component:d("/Neoforge-Korean-Documentation/docs/datastorage/attachments","0da"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datastorage/capabilities",component:d("/Neoforge-Korean-Documentation/docs/datastorage/capabilities","8ae"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datastorage/codecs",component:d("/Neoforge-Korean-Documentation/docs/datastorage/codecs","420"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/datastorage/saveddata",component:d("/Neoforge-Korean-Documentation/docs/datastorage/saveddata","588"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/gameeffects/particles",component:d("/Neoforge-Korean-Documentation/docs/gameeffects/particles","041"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/gameeffects/sounds",component:d("/Neoforge-Korean-Documentation/docs/gameeffects/sounds","a06"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/gettingstarted/",component:d("/Neoforge-Korean-Documentation/docs/gettingstarted/","86d"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/gettingstarted/modfiles",component:d("/Neoforge-Korean-Documentation/docs/gettingstarted/modfiles","8de"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/gettingstarted/structuring",component:d("/Neoforge-Korean-Documentation/docs/gettingstarted/structuring","aa3"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/gettingstarted/versioning",component:d("/Neoforge-Korean-Documentation/docs/gettingstarted/versioning","547"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/gui/menus",component:d("/Neoforge-Korean-Documentation/docs/gui/menus","0c5"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/gui/screens",component:d("/Neoforge-Korean-Documentation/docs/gui/screens","8a5"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/items/",component:d("/Neoforge-Korean-Documentation/docs/items/","260"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/items/bewlr",component:d("/Neoforge-Korean-Documentation/docs/items/bewlr","377"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/items/interactionpipeline",component:d("/Neoforge-Korean-Documentation/docs/items/interactionpipeline","59d"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/legacy/porting",component:d("/Neoforge-Korean-Documentation/docs/legacy/porting","fb6"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/misc/components",component:d("/Neoforge-Korean-Documentation/docs/misc/components","325"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/misc/config",component:d("/Neoforge-Korean-Documentation/docs/misc/config","1f0"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/misc/debugprofiler",component:d("/Neoforge-Korean-Documentation/docs/misc/debugprofiler","69e"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/misc/gametest",component:d("/Neoforge-Korean-Documentation/docs/misc/gametest","b3e"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/misc/keymappings",component:d("/Neoforge-Korean-Documentation/docs/misc/keymappings","12c"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/misc/updatechecker",component:d("/Neoforge-Korean-Documentation/docs/misc/updatechecker","387"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/networking/",component:d("/Neoforge-Korean-Documentation/docs/networking/","977"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/networking/configuration-tasks",component:d("/Neoforge-Korean-Documentation/docs/networking/configuration-tasks","dd4"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/networking/entities",component:d("/Neoforge-Korean-Documentation/docs/networking/entities","8fd"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/networking/payload",component:d("/Neoforge-Korean-Documentation/docs/networking/payload","3c4"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/facedata",component:d("/Neoforge-Korean-Documentation/docs/rendering/modelextensions/facedata","31e"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/rendertypes",component:d("/Neoforge-Korean-Documentation/docs/rendering/modelextensions/rendertypes","d38"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/transforms",component:d("/Neoforge-Korean-Documentation/docs/rendering/modelextensions/transforms","9ed"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/visibility",component:d("/Neoforge-Korean-Documentation/docs/rendering/modelextensions/visibility","f3a"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/",component:d("/Neoforge-Korean-Documentation/docs/rendering/modelloaders/","02e"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/bakedmodel",component:d("/Neoforge-Korean-Documentation/docs/rendering/modelloaders/bakedmodel","392"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/itemoverrides",component:d("/Neoforge-Korean-Documentation/docs/rendering/modelloaders/itemoverrides","d9b"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/transform",component:d("/Neoforge-Korean-Documentation/docs/rendering/modelloaders/transform","fdc"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/client/",component:d("/Neoforge-Korean-Documentation/docs/resources/client/","b3f"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/client/models/",component:d("/Neoforge-Korean-Documentation/docs/resources/client/models/","277"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/client/models/itemproperties",component:d("/Neoforge-Korean-Documentation/docs/resources/client/models/itemproperties","d85"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/client/models/tinting",component:d("/Neoforge-Korean-Documentation/docs/resources/client/models/tinting","d75"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/",component:d("/Neoforge-Korean-Documentation/docs/resources/server/","187"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/advancements",component:d("/Neoforge-Korean-Documentation/docs/resources/server/advancements","09f"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/conditional",component:d("/Neoforge-Korean-Documentation/docs/resources/server/conditional","a6e"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/glm",component:d("/Neoforge-Korean-Documentation/docs/resources/server/glm","65c"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/loottables",component:d("/Neoforge-Korean-Documentation/docs/resources/server/loottables","bf0"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/recipes/",component:d("/Neoforge-Korean-Documentation/docs/resources/server/recipes/","928"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/recipes/custom",component:d("/Neoforge-Korean-Documentation/docs/resources/server/recipes/custom","4fa"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/recipes/incode",component:d("/Neoforge-Korean-Documentation/docs/resources/server/recipes/incode","6b1"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/recipes/ingredients",component:d("/Neoforge-Korean-Documentation/docs/resources/server/recipes/ingredients","beb"),exact:!0,sidebar:"mainSidebar"},{path:"/Neoforge-Korean-Documentation/docs/resources/server/tags",component:d("/Neoforge-Korean-Documentation/docs/resources/server/tags","4e7"),exact:!0,sidebar:"mainSidebar"}]}]}]},{path:"/Neoforge-Korean-Documentation/neogradle",component:d("/Neoforge-Korean-Documentation/neogradle","2b5"),routes:[{path:"/Neoforge-Korean-Documentation/neogradle/5.x",component:d("/Neoforge-Korean-Documentation/neogradle/5.x","21b"),routes:[{path:"/Neoforge-Korean-Documentation/neogradle/5.x",component:d("/Neoforge-Korean-Documentation/neogradle/5.x","f7f"),routes:[{path:"/Neoforge-Korean-Documentation/neogradle/5.x/docs/",component:d("/Neoforge-Korean-Documentation/neogradle/5.x/docs/","ba5"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/5.x/docs/configuration/",component:d("/Neoforge-Korean-Documentation/neogradle/5.x/docs/configuration/","ec5"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/5.x/docs/configuration/runs",component:d("/Neoforge-Korean-Documentation/neogradle/5.x/docs/configuration/runs","a07"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/5.x/docs/dependencies/",component:d("/Neoforge-Korean-Documentation/neogradle/5.x/docs/dependencies/","518"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/5.x/docs/dependencies/jarinjar",component:d("/Neoforge-Korean-Documentation/neogradle/5.x/docs/dependencies/jarinjar","aea"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/5.x/docs/gettingstarted/",component:d("/Neoforge-Korean-Documentation/neogradle/5.x/docs/gettingstarted/","a36"),exact:!0,sidebar:"ngSidebar"}]}]},{path:"/Neoforge-Korean-Documentation/neogradle",component:d("/Neoforge-Korean-Documentation/neogradle","b07"),routes:[{path:"/Neoforge-Korean-Documentation/neogradle",component:d("/Neoforge-Korean-Documentation/neogradle","37b"),routes:[{path:"/Neoforge-Korean-Documentation/neogradle/docs/",component:d("/Neoforge-Korean-Documentation/neogradle/docs/","c17"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/docs/configuration/",component:d("/Neoforge-Korean-Documentation/neogradle/docs/configuration/","53b"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/docs/configuration/advanced",component:d("/Neoforge-Korean-Documentation/neogradle/docs/configuration/advanced","d92"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/docs/configuration/runs",component:d("/Neoforge-Korean-Documentation/neogradle/docs/configuration/runs","a0a"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/",component:d("/Neoforge-Korean-Documentation/neogradle/docs/dependencies/","f74"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/jarinjar",component:d("/Neoforge-Korean-Documentation/neogradle/docs/dependencies/jarinjar","f57"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/docs/gettingstarted/",component:d("/Neoforge-Korean-Documentation/neogradle/docs/gettingstarted/","f15"),exact:!0,sidebar:"ngSidebar"},{path:"/Neoforge-Korean-Documentation/neogradle/docs/x_to_6.0",component:d("/Neoforge-Korean-Documentation/neogradle/docs/x_to_6.0","d75"),exact:!0,sidebar:"ngSidebar"}]}]}]},{path:"/Neoforge-Korean-Documentation/",component:d("/Neoforge-Korean-Documentation/","1d3"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),o=n(745),a=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790),f=n(5893);function p(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var m=n(5742),g=n(2263),h=n(4996),b=n(6668),y=n(833),v=n(4711),w=n(9727),x=n(3320),k=n(8780),S=n(197);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,g.Z)(),r=(0,v.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,f.jsxs)(m.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function N(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,g.Z)(),{pathname:r}=(0,u.TH)();return e+(0,k.applyTrailingSlash)((0,h.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,f.jsxs)(m.Z,{children:[(0,f.jsx)("meta",{property:"og:url",content:o}),(0,f.jsx)("link",{rel:"canonical",href:o})]})}function E(){const{i18n:{currentLocale:e}}=(0,g.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(m.Z,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:w.h})]}),n&&(0,f.jsx)(y.d,{image:n}),(0,f.jsx)(N,{}),(0,f.jsx)(_,{}),(0,f.jsx)(S.Z,{tag:x.HX,locale:e}),(0,f.jsx)(m.Z,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const C=new Map;function D(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var T=n(8934),L=n(8940),A=n(469);function j(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,A.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),j("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?j("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=j("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(P,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(u.AW,{location:t,render:()=>e})})}}const I=O,M="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",K="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const Q=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),R(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(i.B6,{children:(0,f.jsx)(a.VK,{children:(0,f.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};R(window.location.pathname).then(s)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>f});var r=n(7294),o=n(6809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/Neoforge-Korean-Documentation/docs","versions":[{"name":"current","label":"1.20.x","isLast":true,"path":"/Neoforge-Korean-Documentation/docs","mainDocId":"gettingstarted/index","docs":[{"id":"advanced/accesstransformers","path":"/Neoforge-Korean-Documentation/docs/advanced/accesstransformers","sidebar":"mainSidebar"},{"id":"blockentities/ber","path":"/Neoforge-Korean-Documentation/docs/blockentities/ber","sidebar":"mainSidebar"},{"id":"blockentities/index","path":"/Neoforge-Korean-Documentation/docs/blockentities/","sidebar":"mainSidebar"},{"id":"blocks/index","path":"/Neoforge-Korean-Documentation/docs/blocks/","sidebar":"mainSidebar"},{"id":"blocks/states","path":"/Neoforge-Korean-Documentation/docs/blocks/states","sidebar":"mainSidebar"},{"id":"concepts/events","path":"/Neoforge-Korean-Documentation/docs/concepts/events","sidebar":"mainSidebar"},{"id":"concepts/internationalization","path":"/Neoforge-Korean-Documentation/docs/concepts/internationalization","sidebar":"mainSidebar"},{"id":"concepts/lifecycle","path":"/Neoforge-Korean-Documentation/docs/concepts/lifecycle","sidebar":"mainSidebar"},{"id":"concepts/registries","path":"/Neoforge-Korean-Documentation/docs/concepts/registries","sidebar":"mainSidebar"},{"id":"concepts/resources","path":"/Neoforge-Korean-Documentation/docs/concepts/resources","sidebar":"mainSidebar"},{"id":"concepts/sides","path":"/Neoforge-Korean-Documentation/docs/concepts/sides","sidebar":"mainSidebar"},{"id":"datagen/client/localization","path":"/Neoforge-Korean-Documentation/docs/datagen/client/localization","sidebar":"mainSidebar"},{"id":"datagen/client/modelproviders","path":"/Neoforge-Korean-Documentation/docs/datagen/client/modelproviders","sidebar":"mainSidebar"},{"id":"datagen/client/sounds","path":"/Neoforge-Korean-Documentation/docs/datagen/client/sounds","sidebar":"mainSidebar"},{"id":"datagen/index","path":"/Neoforge-Korean-Documentation/docs/datagen/","sidebar":"mainSidebar"},{"id":"datagen/server/advancements","path":"/Neoforge-Korean-Documentation/docs/datagen/server/advancements","sidebar":"mainSidebar"},{"id":"datagen/server/datapackregistries","path":"/Neoforge-Korean-Documentation/docs/datagen/server/datapackregistries","sidebar":"mainSidebar"},{"id":"datagen/server/glm","path":"/Neoforge-Korean-Documentation/docs/datagen/server/glm","sidebar":"mainSidebar"},{"id":"datagen/server/loottables","path":"/Neoforge-Korean-Documentation/docs/datagen/server/loottables","sidebar":"mainSidebar"},{"id":"datagen/server/recipes","path":"/Neoforge-Korean-Documentation/docs/datagen/server/recipes","sidebar":"mainSidebar"},{"id":"datagen/server/tags","path":"/Neoforge-Korean-Documentation/docs/datagen/server/tags","sidebar":"mainSidebar"},{"id":"datastorage/attachments","path":"/Neoforge-Korean-Documentation/docs/datastorage/attachments","sidebar":"mainSidebar"},{"id":"datastorage/capabilities","path":"/Neoforge-Korean-Documentation/docs/datastorage/capabilities","sidebar":"mainSidebar"},{"id":"datastorage/codecs","path":"/Neoforge-Korean-Documentation/docs/datastorage/codecs","sidebar":"mainSidebar"},{"id":"datastorage/saveddata","path":"/Neoforge-Korean-Documentation/docs/datastorage/saveddata","sidebar":"mainSidebar"},{"id":"gameeffects/particles","path":"/Neoforge-Korean-Documentation/docs/gameeffects/particles","sidebar":"mainSidebar"},{"id":"gameeffects/sounds","path":"/Neoforge-Korean-Documentation/docs/gameeffects/sounds","sidebar":"mainSidebar"},{"id":"gettingstarted/index","path":"/Neoforge-Korean-Documentation/docs/gettingstarted/","sidebar":"mainSidebar"},{"id":"gettingstarted/modfiles","path":"/Neoforge-Korean-Documentation/docs/gettingstarted/modfiles","sidebar":"mainSidebar"},{"id":"gettingstarted/structuring","path":"/Neoforge-Korean-Documentation/docs/gettingstarted/structuring","sidebar":"mainSidebar"},{"id":"gettingstarted/versioning","path":"/Neoforge-Korean-Documentation/docs/gettingstarted/versioning","sidebar":"mainSidebar"},{"id":"gui/menus","path":"/Neoforge-Korean-Documentation/docs/gui/menus","sidebar":"mainSidebar"},{"id":"gui/screens","path":"/Neoforge-Korean-Documentation/docs/gui/screens","sidebar":"mainSidebar"},{"id":"items/bewlr","path":"/Neoforge-Korean-Documentation/docs/items/bewlr","sidebar":"mainSidebar"},{"id":"items/index","path":"/Neoforge-Korean-Documentation/docs/items/","sidebar":"mainSidebar"},{"id":"items/interactionpipeline","path":"/Neoforge-Korean-Documentation/docs/items/interactionpipeline","sidebar":"mainSidebar"},{"id":"legacy/porting","path":"/Neoforge-Korean-Documentation/docs/legacy/porting","sidebar":"mainSidebar"},{"id":"misc/components","path":"/Neoforge-Korean-Documentation/docs/misc/components","sidebar":"mainSidebar"},{"id":"misc/config","path":"/Neoforge-Korean-Documentation/docs/misc/config","sidebar":"mainSidebar"},{"id":"misc/debugprofiler","path":"/Neoforge-Korean-Documentation/docs/misc/debugprofiler","sidebar":"mainSidebar"},{"id":"misc/gametest","path":"/Neoforge-Korean-Documentation/docs/misc/gametest","sidebar":"mainSidebar"},{"id":"misc/keymappings","path":"/Neoforge-Korean-Documentation/docs/misc/keymappings","sidebar":"mainSidebar"},{"id":"misc/updatechecker","path":"/Neoforge-Korean-Documentation/docs/misc/updatechecker","sidebar":"mainSidebar"},{"id":"networking/configuration-tasks","path":"/Neoforge-Korean-Documentation/docs/networking/configuration-tasks","sidebar":"mainSidebar"},{"id":"networking/entities","path":"/Neoforge-Korean-Documentation/docs/networking/entities","sidebar":"mainSidebar"},{"id":"networking/index","path":"/Neoforge-Korean-Documentation/docs/networking/","sidebar":"mainSidebar"},{"id":"networking/payload","path":"/Neoforge-Korean-Documentation/docs/networking/payload","sidebar":"mainSidebar"},{"id":"rendering/modelextensions/facedata","path":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/facedata","sidebar":"mainSidebar"},{"id":"rendering/modelextensions/rendertypes","path":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/rendertypes","sidebar":"mainSidebar"},{"id":"rendering/modelextensions/transforms","path":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/transforms","sidebar":"mainSidebar"},{"id":"rendering/modelextensions/visibility","path":"/Neoforge-Korean-Documentation/docs/rendering/modelextensions/visibility","sidebar":"mainSidebar"},{"id":"rendering/modelloaders/bakedmodel","path":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/bakedmodel","sidebar":"mainSidebar"},{"id":"rendering/modelloaders/index","path":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/","sidebar":"mainSidebar"},{"id":"rendering/modelloaders/itemoverrides","path":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/itemoverrides","sidebar":"mainSidebar"},{"id":"rendering/modelloaders/transform","path":"/Neoforge-Korean-Documentation/docs/rendering/modelloaders/transform","sidebar":"mainSidebar"},{"id":"resources/client/index","path":"/Neoforge-Korean-Documentation/docs/resources/client/","sidebar":"mainSidebar"},{"id":"resources/client/models/index","path":"/Neoforge-Korean-Documentation/docs/resources/client/models/","sidebar":"mainSidebar"},{"id":"resources/client/models/itemproperties","path":"/Neoforge-Korean-Documentation/docs/resources/client/models/itemproperties","sidebar":"mainSidebar"},{"id":"resources/client/models/tinting","path":"/Neoforge-Korean-Documentation/docs/resources/client/models/tinting","sidebar":"mainSidebar"},{"id":"resources/server/advancements","path":"/Neoforge-Korean-Documentation/docs/resources/server/advancements","sidebar":"mainSidebar"},{"id":"resources/server/conditional","path":"/Neoforge-Korean-Documentation/docs/resources/server/conditional","sidebar":"mainSidebar"},{"id":"resources/server/glm","path":"/Neoforge-Korean-Documentation/docs/resources/server/glm","sidebar":"mainSidebar"},{"id":"resources/server/index","path":"/Neoforge-Korean-Documentation/docs/resources/server/","sidebar":"mainSidebar"},{"id":"resources/server/loottables","path":"/Neoforge-Korean-Documentation/docs/resources/server/loottables","sidebar":"mainSidebar"},{"id":"resources/server/recipes/custom","path":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/custom","sidebar":"mainSidebar"},{"id":"resources/server/recipes/incode","path":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/incode","sidebar":"mainSidebar"},{"id":"resources/server/recipes/index","path":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/","sidebar":"mainSidebar"},{"id":"resources/server/recipes/ingredients","path":"/Neoforge-Korean-Documentation/docs/resources/server/recipes/ingredients","sidebar":"mainSidebar"},{"id":"resources/server/tags","path":"/Neoforge-Korean-Documentation/docs/resources/server/tags","sidebar":"mainSidebar"}],"draftIds":[],"sidebars":{"mainSidebar":{"link":{"path":"/Neoforge-Korean-Documentation/docs/gettingstarted/","label":"Getting Started with Neo"}}}},{"name":"1.19.x","label":"1.19.x","isLast":false,"path":"/Neoforge-Korean-Documentation/docs/1.19.x","mainDocId":"intro","docs":[{"id":"intro","path":"/Neoforge-Korean-Documentation/docs/1.19.x/intro","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/Neoforge-Korean-Documentation/docs/1.19.x/intro","label":"intro"}}}}],"breadcrumbs":true},"neogradle":{"path":"/Neoforge-Korean-Documentation/neogradle","versions":[{"name":"current","label":"FG6","isLast":true,"path":"/Neoforge-Korean-Documentation/neogradle","mainDocId":"docs/index","docs":[{"id":"docs/configuration/advanced","path":"/Neoforge-Korean-Documentation/neogradle/docs/configuration/advanced","sidebar":"ngSidebar"},{"id":"docs/configuration/index","path":"/Neoforge-Korean-Documentation/neogradle/docs/configuration/","sidebar":"ngSidebar"},{"id":"docs/configuration/runs","path":"/Neoforge-Korean-Documentation/neogradle/docs/configuration/runs","sidebar":"ngSidebar"},{"id":"docs/dependencies/index","path":"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/","sidebar":"ngSidebar"},{"id":"docs/dependencies/jarinjar","path":"/Neoforge-Korean-Documentation/neogradle/docs/dependencies/jarinjar","sidebar":"ngSidebar"},{"id":"docs/gettingstarted/index","path":"/Neoforge-Korean-Documentation/neogradle/docs/gettingstarted/","sidebar":"ngSidebar"},{"id":"docs/index","path":"/Neoforge-Korean-Documentation/neogradle/docs/","sidebar":"ngSidebar"},{"id":"docs/x_to_6.0","path":"/Neoforge-Korean-Documentation/neogradle/docs/x_to_6.0","sidebar":"ngSidebar"}],"draftIds":[],"sidebars":{"ngSidebar":{"link":{"path":"/Neoforge-Korean-Documentation/neogradle/docs/","label":"docs/index"}}}},{"name":"5.x","label":"FG5","isLast":false,"path":"/Neoforge-Korean-Documentation/neogradle/5.x","mainDocId":"docs/index","docs":[{"id":"docs/configuration/index","path":"/Neoforge-Korean-Documentation/neogradle/5.x/docs/configuration/","sidebar":"ngSidebar"},{"id":"docs/configuration/runs","path":"/Neoforge-Korean-Documentation/neogradle/5.x/docs/configuration/runs","sidebar":"ngSidebar"},{"id":"docs/dependencies/index","path":"/Neoforge-Korean-Documentation/neogradle/5.x/docs/dependencies/","sidebar":"ngSidebar"},{"id":"docs/dependencies/jarinjar","path":"/Neoforge-Korean-Documentation/neogradle/5.x/docs/dependencies/jarinjar","sidebar":"ngSidebar"},{"id":"docs/gettingstarted/index","path":"/Neoforge-Korean-Documentation/neogradle/5.x/docs/gettingstarted/","sidebar":"ngSidebar"},{"id":"docs/index","path":"/Neoforge-Korean-Documentation/neogradle/5.x/docs/","sidebar":"ngSidebar"}],"draftIds":[],"sidebars":{"ngSidebar":{"link":{"path":"/Neoforge-Korean-Documentation/neogradle/5.x/docs/","label":"ForgeGradle Documentation"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"ko","locales":["ko","en"],"path":"i18n","currentLocale":"ko","localeConfigs":{"ko":{"label":"\ud55c\uad6d\uc5b4","direction":"ltr","htmlLang":"ko","calendar":"gregory","path":"ko"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.0.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.0.0"}}}');var c=n(5893);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function f(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),o=n(412),a=n(5742),i=n(8780),s=n(3117),l=n(5893);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(p,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(a.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const f=e=>(0,l.jsx)(d,{...e});class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??f)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);var r=n(405),o=n(5893);function a(e){return(0,o.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),o=n(3727),a=n(8780),i=n(2263),s=n(3919),l=n(412),c=n(5893);const u=r.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:x}=(0,d.C)(),k=(0,r.useContext)(u),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const _=f||p;const N=(0,s.Z)(_),E=_?.replace("pathname://","");let C=void 0!==E?(D=E,b&&(e=>e.startsWith("/"))(D)?x(D):D):void 0;var D;C&&N&&(C=(0,a.applyTrailingSlash)(C,{trailingSlash:v,baseUrl:w}));const T=(0,r.useRef)(!1),L=n?o.OL:o.rU,A=l.Z.canUseIntersectionObserver,j=(0,r.useRef)(),P=()=>{T.current||null==C||(window.docusaurus.preload(C),T.current=!0)};(0,r.useEffect)((()=>(!A&&N&&null!=C&&window.docusaurus.prefetch(C),()=>{A&&j.current&&j.current.disconnect()})),[j,C,A,N]);const R=C?.startsWith("#")??!1,O=!C||!N||R;return O||h||k.collectLink(C),O?(0,c.jsx)("a",{ref:S,href:C,..._&&!N&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,c.jsx)(L,{...y,onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,A&&e&&N&&(j.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=C&&window.docusaurus.prefetch(C))}))})),j.current.observe(e))},to:C,...n&&{isActive:g,activeClassName:m}})}const p=r.forwardRef(f)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>l});var r=n(7294),o=n(5893);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),o=n(2263),a=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8940);function a(){return(0,r.useContext)(o._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8934);function a(){return(0,r.useContext)(o._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const o=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>y,zh:()=>f,yW:()=>h,gB:()=>g});var r=n(6550),o=n(2263),a=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=l(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,f=e=>function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function g(e){return f(e).versions}function h(e){const t=f(e);return s(t)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return c(t,n)}function y(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(2573),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(45)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},7955:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(6010),o=n(5999),a=n(6668),i=n(9960);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var l=n(5893);function c(e){let{as:t,id:n,...c}=e;const{navbar:{hideOnScroll:u}}=(0,a.L)();if("h1"===t||!n)return(0,l.jsx)(t,{...c,id:void 0});const d=(0,o.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,l.jsxs)(t,{...c,className:(0,r.Z)("anchor",u?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,l.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(5893);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},3117:(e,t,n)=>{"use strict";n.d(t,{Z:()=>jt});var r=n(7294),o=n(6010),a=n(4763),i=n(833),s=n(6550),l=n(5999),c=n(5936),u=n(5893);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:r}=p();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(5281),b=n(9727);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(g,{className:y.skipToContent})}var w=n(6668),x=n(9689);function k(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function _(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.Z)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(k,{width:14,height:14,strokeWidth:3.1})})}const N={content:"content_knG7"};function E(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.Z)(N.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const C={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function D(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,x.nT)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:C.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:C.announcementBarPlaceholder}),(0,u.jsx)(E,{className:C.announcementBarContent}),a&&(0,u.jsx)(_,{onClick:n,className:C.announcementBarClose})]})}var T=n(3163),L=n(2466);var A=n(902),j=n(3102);const P=r.createContext(null);function R(e){let{children:t}=e;const n=function(){const e=(0,T.e)(),t=(0,j.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,A.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(P.Provider,{value:n,children:t})}function O(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(P);if(!e)throw new A.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,j.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:O(a)})),[o,a,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=I();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(2949),K=n(2389);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function z(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function U(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,K.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.Z)($.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.Z)("clean-btn",$.toggleButton,!i&&$.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,o.Z)($.toggleIcon,$.lightToggleIcon)}),(0,u.jsx)(z,{className:(0,o.Z)($.toggleIcon,$.darkToggleIcon)})]})})}const Z=r.memo(U),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,F.I)();return r?null:(0,u.jsx)(Z,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var W=n(1327);function q(){return(0,u.jsx)(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,T.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(k,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(q,{}),(0,u.jsx)(V,{className:"margin-right--md"}),(0,u.jsx)(G,{})]})}var Q=n(9960),X=n(4996),J=n(3919),ee=n(8022),te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Z)(r),f=(0,X.Z)(t),p=(0,X.Z)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,J.Z)(o),g=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,m&&(0,u.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(Q.Z,{href:l?p:o,...c,...g}):(0,u.jsx)(Q.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(f)},...c,...g})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.Z)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),se=n(8596),le=n(2263);function ce(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.Z)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ze,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function de(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),p()},children:l.children??l.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:t.map(((e,t)=>(0,r.createElement)(Ze,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?de:ue;return(0,u.jsx)(r,{...n})}var pe=n(4711);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";function he(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ye=["translations"];function ve(){return ve=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Se="Ctrl";var _e=r.forwardRef((function(e,t){var n=e.translations,o=void 0===n?{}:n,a=ke(e,ye),i=o.buttonText,s=void 0===i?"Search":i,l=o.buttonAriaLabel,c=void 0===l?"Search":l,u=we((0,r.useState)(null),2),d=u[0],f=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Se))}),[]),r.createElement("button",ve({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},a,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Se?r.createElement(he,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),Ne=n(5742),Ee=n(6177),Ce=n(239),De=n(3320);var Te=n(3935);const Le={button:{buttonText:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,l.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Ae=null;function je(e){let{hit:t,children:n}=e;return(0,u.jsx)(Q.Z,{to:t.url,children:n})}function Pe(e){let{state:t,onClose:n}=e;const r=(0,Ee.M)();return(0,u.jsx)(Q.Z,{to:r(t.query),onClick:n,children:(0,u.jsx)(l.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits},children:"See all {count} results"})})}function Re(e){let{contextualSearch:t,externalUrlRegex:o,...a}=e;const{siteMetadata:i}=(0,le.Z)(),l=(0,Ce.l)(),c=function(){const{locale:e,tags:t}=(0,De._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=a.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,p={...a.searchParameters,facetFilters:f},m=(0,s.k6)(),g=(0,r.useRef)(null),h=(0,r.useRef)(null),[b,y]=(0,r.useState)(!1),[v,w]=(0,r.useState)(void 0),x=(0,r.useCallback)((()=>Ae?Promise.resolve():Promise.all([n.e(1426).then(n.bind(n,1426)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,8894))]).then((e=>{let[{DocSearchModal:t}]=e;Ae=t}))),[]),k=(0,r.useCallback)((()=>{x().then((()=>{g.current=document.createElement("div"),document.body.insertBefore(g.current,document.body.firstChild),y(!0)}))}),[x,y]),S=(0,r.useCallback)((()=>{y(!1),g.current?.remove()}),[y]),_=(0,r.useCallback)((e=>{x().then((()=>{y(!0),w(e.key)}))}),[x,y,w]),N=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(o,t)?window.location.href=t:m.push(t)}}).current,E=(0,r.useRef)((e=>a.transformItems?a.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,C=(0,r.useMemo)((()=>e=>(0,u.jsx)(Pe,{...e,onClose:S})),[S]),D=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,o=e.onClose,a=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?o():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&a&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&a(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,o,a,i])}({isOpen:b,onOpen:k,onClose:S,onInput:_,searchButtonRef:h}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ne.Z,{children:(0,u.jsx)("link",{rel:"preconnect",href:`https://${a.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,u.jsx)(_e,{onTouchStart:x,onFocus:x,onMouseOver:x,onClick:k,ref:h,translations:Le.button}),b&&Ae&&g.current&&(0,Te.createPortal)((0,u.jsx)(Ae,{onClose:S,initialScrollY:window.scrollY,initialQuery:v,navigator:N,transformItems:E,hitComponent:je,transformSearchClient:D,...a.searchPagePath&&{resultsFooterComponent:C},...a,searchParameters:p,placeholder:Le.placeholder,translations:Le.modal}),g.current)]})}function Oe(){const{siteConfig:e}=(0,le.Z)();return(0,u.jsx)(Re,{...e.themeConfig.algolia})}const Ie={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Me(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.Z)(n,Ie.navbarSearchContainer),children:t})}var Fe=n(143),Ke=n(3438);var Be=n(373);const ze=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),g=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(me,{className:ge}),h]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(Me,{className:n,children:(0,u.jsx)(Oe,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.Z)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,Fe.Iw)(r),i=(0,Ke.vY)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,Fe.Iw)(r),i=(0,Ke.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,Ke.lO)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.TH)(),f=(0,Fe.Iw)(n),p=(0,Fe.gB)(n),{savePreferredVersionName:m}=(0,Be.J)(n),g=[...o,...p.map((e=>{const t=f.alternateDocVersions[e.name]??ze(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===f.activeVersion,onClick:()=>m(e.name)}})),...a],h=(0,Ke.lO)(n)[0],b=t&&g.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&g.length>1?void 0:ze(h).path;return g.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:b,to:y,items:g,isActive:r?()=>!1:void 0})}};function Ue(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function Ze(e){const{docsPluginId:t,type:n}=e,{activeDoc:r}=(0,Fe.Iw)(t);return"docsVersionDropdown"!==n||r?(0,u.jsx)(Ue,{...e}):null}function He(){const e=(0,T.e)(),t=(0,w.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ze,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ve(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function We(){const e=0===(0,w.L)().navbar.items.length,t=I();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ve,{onClick:()=>t.hide()}),t.content]})}function qe(){const e=(0,T.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(M,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(He,{}),secondaryMenu:(0,u.jsx)(We,{})}):null}const Ge={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ye(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.Z)("navbar-sidebar__backdrop",e.className)})}function Qe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.L)(),i=(0,T.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,L.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[Ge.navbarHideable,!d&&Ge.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ye,{onClick:i.toggle}),(0,u.jsx)(qe,{})]})}var Xe=n(8780);const Je={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function et(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function tt(e){let{error:t}=e;const n=(0,Xe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Je.errorBoundaryError,children:n})}class nt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const rt="right";function ot(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function at(){const{toggle:e,shown:t}=(0,T.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(ot,{})})}const it={colorModeToggle:"colorModeToggle_DEke"};function st(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(nt,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(Ze,{...e})},t)))})}function lt(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function ct(){const e=(0,T.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??rt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(lt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(at,{}),(0,u.jsx)(q,{}),(0,u.jsx)(st,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(st,{items:r}),(0,u.jsx)(V,{className:it.colorModeToggle}),!o&&(0,u.jsx)(Me,{children:(0,u.jsx)(Oe,{})})]})})}function ut(){return(0,u.jsx)(Qe,{children:(0,u.jsx)(ct,{})})}function dt(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Q.Z,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:[o,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function ft(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(dt,{item:t})},t.href??t.to)}function pt(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(ft,{item:e},t)))})]})}function mt(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(pt,{column:e},t)))})}function gt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function ht(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(dt,{item:t})}function bt(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(ht,{item:e}),t.length!==n+1&&(0,u.jsx)(gt,{})]},n)))})})}function yt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(mt,{columns:t}):(0,u.jsx)(bt,{links:t})}var vt=n(9965);const wt={footerLogoLink:"footerLogoLink_BH7S"};function xt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(vt.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Q.Z,{href:t.href,className:wt.footerLogoLink,target:t.target,children:(0,u.jsx)(xt,{logo:t})}):(0,u.jsx)(xt,{logo:t})}function St(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function _t(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function Nt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(_t,{style:o,links:n&&n.length>0&&(0,u.jsx)(yt,{links:n}),logo:r&&(0,u.jsx)(kt,{logo:r}),copyright:t&&(0,u.jsx)(St,{copyright:t})})}const Et=r.memo(Nt),Ct=(0,A.Qc)([F.S,x.pl,L.OC,Be.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(j.n2,{children:(0,u.jsx)(T.M,{children:(0,u.jsx)(R,{children:t})})})}]);function Dt(e){let{children:t}=e;return(0,u.jsx)(Ct,{children:t})}var Tt=n(7955);function Lt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(Tt.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(et,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(tt,{error:t})})]})})})}const At={mainWrapper:"mainWrapper_z2l0"};function jt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.t)(),(0,u.jsxs)(Dt,{children:[(0,u.jsx)(i.d,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(D,{}),(0,u.jsx)(ut,{}),(0,u.jsx)("div",{id:d,className:(0,o.Z)(h.k.wrapper.main,At.mainWrapper,r),children:(0,u.jsx)(a.Z,{fallback:e=>(0,u.jsx)(Lt,{...e}),children:t})}),!n&&(0,u.jsx)(Et,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(9960),o=n(4996),a=n(2263),i=n(6668),s=n(9965),l=n(5893);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...f}=e,p=(0,o.Z)(s?.href||"/"),m=n?"":t,g=s?.alt??m;return(0,l.jsxs)(r.Z,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:g,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);var r=n(5742),o=n(5893);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.Z,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7294),o=n(6010),a=n(2389),i=n(2949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(5893);function c(e){let{className:t,children:n}=e;const c=(0,a.Z)(),{colorMode:u}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>b});var r=n(7294),o=n(412),a=n(469),i=n(1442),s=n(5893);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function f(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return f(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.Z.canUseDOM)return e?u:d}function g(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(f(u.current,n),i?.(n))},className:l,children:o})}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.Z)((()=>{t||i(!0)}),[t]),(0,a.Z)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(g,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?h:g;return(0,s.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>g,pl:()=>m});var r=n(7294),o=n(2389),a=n(12),i=n(902),s=n(6668),l=n(5893);const c=(0,a.WA)("docusaurus.announcement.dismiss"),u=(0,a.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),f=e=>c.set(String(e)),p=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{f(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&f(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(p.Provider,{value:n,children:t})}function g(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>h});var r=n(7294),o=n(412),a=n(902),i=n(12),s=n(6668),l=n(5893);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),f={light:"light",dark:"dark"},p=e=>e===f.dark?f.dark:f.light,m=e=>o.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),g=e=>{d.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&g(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f.dark:f.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===f.dark},setLightTheme(){i(f.light)},setDarkTheme(){i(f.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>b,Oh:()=>w});var r=n(7294),o=n(143),a=n(9935),i=n(6668),s=n(3438),l=n(902),c=n(12),u=n(5893);const d=e=>`docs-preferred-version-${e}`,f={save:(e,t,n)=>{(0,c.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(d(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function g(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=f.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){f.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=g();return(0,u.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.cE?(0,u.jsx)(h,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(m);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=y(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,o._r)(),[t]=y();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>l});var r=n(7294),o=n(902),a=n(5893);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(7294),o=n(902),a=n(5893);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.i6("DocsVersionProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(7294),o=n(3102),a=n(7524),i=n(1980),s=n(6668),l=n(902),c=n(5893);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(l)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:l})),[e,n,u,l])}function f(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function p(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>c,n2:()=>s});var r=n(7294),o=n(902),a=n(5893);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(7294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},6177:(e,t,n)=>{"use strict";n.d(t,{K:()=>s,M:()=>l});var r=n(7294),o=n(2263),a=n(1980);const i="q";function s(){return(0,a.Nc)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,o.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(7294),o=n(412);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!o.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?a.desktop:a.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3438:(e,t,n)=>{"use strict";n.d(t,{LM:()=>p,SN:()=>_,_F:()=>h,cE:()=>f,f:()=>y,lO:()=>x,oz:()=>k,s1:()=>w,vY:()=>S});var r=n(7294),o=n(6550),a=n(8790),i=n(143),s=n(373),l=n(4477),c=n(1116),u=n(7392),d=n(8596);const f=!!i._r;function p(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=p(t);if(e)return e}}(e):void 0:e.href}const m=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),g=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||g(e.items,t))}function b(e,t){switch(e.type){case"category":return h(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||h(e,t);default:return!1}}function y(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function w(){const e=(0,c.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function x(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,o].filter(Boolean))),[t,n,o])}function k(e,t){const n=x(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=x(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,u.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function _(e){let{route:t}=e;const n=(0,o.TH)(),r=(0,l.E)(),i=t.routes,s=i.find((e=>(0,o.LX)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.H)(i),sidebarName:c,sidebarItems:u}}},2128:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(2263);function o(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:o}=t;return e?.trim().length?`${e.trim()} ${o} ${n}`:n}},1980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>l,Rb:()=>i,_X:()=>s});var r=n(7294),o=n(6550),a=n(902);function i(e){!function(e){const t=(0,o.k6)(),n=(0,a.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,o.k6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function l(e){const t=s(e)??"",n=function(){const e=(0,o.k6)();return(0,r.useCallback)(((t,n,r)=>{const o=new URLSearchParams(e.location.search);n?o.set(t,n):o.delete(t),(r?.push?e.push:e.replace)({search:o.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},7392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{j:()=>o,l:()=>r})},833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>d,VC:()=>m});var r=n(7294),o=n(6010),a=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),c=n(2128),u=n(5893);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const s=(0,c.p)(t),{withBaseUrl:d}=(0,l.C)(),f=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.Z,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),f&&(0,u.jsx)("meta",{property:"og:image",content:f}),f&&(0,u.jsx)("meta",{name:"twitter:image",content:f}),i]})}const f=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(f),s=(0,o.Z)(i,t);return(0,u.jsxs)(f.Provider,{value:s,children:[(0,u.jsx)(a.Z,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(p,{className:(0,o.Z)(r,a),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>u,Ql:()=>c,i6:()=>l,zX:()=>i});var r=n(7294),o=n(469),a=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,o.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},8022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),o=n(723),a=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>g,OC:()=>u,RF:()=>p,o5:()=>m});var r=n(7294),o=n(412),a=n(2389),i=n(469),s=n(902),l=n(5893);const c=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function d(){const e=(0,r.useContext)(c);if(null==e)throw new s.i6("ScrollControllerProvider");return e}const f=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),o=(0,r.useRef)(f()),a=(0,s.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=f();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function m(){const e=d(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),o=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,i.Z)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:o}}function g(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>l,os:()=>s});var r=n(143),o=n(2263),a=n(373);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,o.Z)(),t=(0,r._r)(),n=(0,r.WS)(),l=(0,a.Oh)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=l[e],a=t[e].versions.find((e=>e.isLast));return s(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:c}}},12:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>u,WA:()=>c});var r=n(7294);const o="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function i(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=i(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function u(e,t){const n=(0,r.useRef)((()=>null===e?l:c(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,r.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),o=n(6550),a=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,o.TH)(),c=(0,a.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),o=n(6550),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(2263);function o(){return(0,r.Z)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(2263);function o(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(7294),o=n(8022),a=n(4996),i=n(6278);function s(){const{withBaseUrl:e}=(0,a.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const a=new URL(r);if((0,o.F)(t,a.href))return r;const i=`${a.pathname+a.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to});const o=function(){for(var e,t,n=0,o="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>E,ob:()=>p,PP:()=>D,Ep:()=>f});var r=n(7462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;f--){var p=i[f];"."===p?a(i,f):".."===p?(a(i,f),d++):d&&(a(i,f),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function p(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,g(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=p(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),g=l(n),h=0;h{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&p(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},4779:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],f=n[1],p=n.index;if(s+=e.slice(i,p),i=p+d.length,f)s+=f[1];else{var m=e[i],g=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var x=null!=g&&null!=m&&m!==g,k="+"===v||"*"===v,S="?"===v||"*"===v,_=n[2]||u,N=b||y;r.push({name:h||a++,prefix:g||"",delimiter:_,optional:S,repeat:k,partial:x,asterisk:!!w,pattern:N?c(N):w?".*":"[^"+l(_)+"]+?"})}}return i{!function(e){var t={pattern:/((?:^|[^\\$])(?:\\{2})*)\$(?:\w+|\{[^{}]*\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}};e.languages.gradle=e.languages.extend("clike",{string:{pattern:/'''(?:[^\\]|\\[\s\S])*?'''|'(?:\\.|[^\\'\r\n])*'/,greedy:!0},keyword:/\b(?:apply|def|dependencies|else|if|implementation|import|plugin|plugins|project|repositories|repository|sourceSets|tasks|val)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("gradle","string",{shebang:{pattern:/#!.+/,alias:"comment",greedy:!0},"interpolation-string":{pattern:/"""(?:[^\\]|\\[\s\S])*?"""|(["/])(?:\\.|(?!\1)[^\\\r\n])*\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}}}),e.languages.insertBefore("gradle","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),e.languages.insertBefore("gradle","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),t.inside.expression.inside=e.languages.gradle}(Prism)},485:()=>{!function(e){var t={pattern:/((?:^|[^\\$])(?:\\{2})*)\$(?:\w+|\{[^{}]*\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}};e.languages.groovy=e.languages.extend("clike",{string:{pattern:/'''(?:[^\\]|\\[\s\S])*?'''|'(?:\\.|[^\\'\r\n])*'/,greedy:!0},keyword:/\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment",greedy:!0},"interpolation-string":{pattern:/"""(?:[^\\]|\\[\s\S])*?"""|(["/])(?:\\.|(?!\1)[^\\\r\n])*\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}}}),e.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),e.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),t.inside.expression.inside=e.languages.groovy}(Prism)},2503:()=>{!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:r.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},2334:()=>{!function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(Prism)},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],f="string"==typeof c?c:c.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++o;var g=f.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),y=[];g&&y.push.apply(y,i([g])),y.push(h),b&&y.push.apply(y,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},9930:()=>{!function(e){var t=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function n(e){return e.replace(/__/g,(function(){return t}))}e.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(n(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(n(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}}(Prism)},45:(e,t,n)=>{var r={"./prism-gradle":1565,"./prism-groovy":485,"./prism-java":2503,"./prism-kotlin":2334,"./prism-toml":9930};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=45},2703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),o=n(3840);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n