ModernUO/assets/js/1df93b7f.68fbff14.js

1 line
No EOL
8.9 KiB
JavaScript

"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[583],{9365(e,n,r){r.d(n,{A:()=>l});r(6540);var a=r(4164);const t="tabItem_Ymn6";var s=r(4848);function l({children:e,hidden:n,className:r}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.A)(t,r),hidden:n,children:e})}},1470(e,n,r){r.d(n,{A:()=>N});var a=r(6540),t=r(4164),s=r(7559),l=r(3104),o=r(6347),i=r(205),u=r(7485),c=r(1682),d=r(679);function h(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function m(e){const{values:n,children:r}=e;return(0,a.useMemo)(()=>{const e=n??function(e){return h(e).map(({props:{value:e,label:n,attributes:r,default:a}})=>({value:e,label:n,attributes:r,default:a}))}(r);return function(e){const n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,r])}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}function b({queryString:e=!1,groupId:n}){const r=(0,o.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,u.aZ)(t),(0,a.useCallback)(e=>{if(!t)return;const n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}function f(e){const{defaultValue:n,queryString:r=!1,groupId:t}=e,s=m(e),[l,o]=(0,a.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const r=n.find(e=>e.default)??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:s})),[u,c]=b({queryString:r,groupId:t}),[h,f]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[r,t]=(0,d.Dv)(n);return[r,(0,a.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:t}),g=(()=>{const e=u??h;return p({value:e,tabValues:s})?e:null})();(0,i.A)(()=>{g&&o(g)},[g]);return{selectedValue:l,selectValue:(0,a.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),f(e)},[c,f,s]),tabValues:s}}var g=r(2303);const v="tabList__CuJ",x="tabItem_LNqP";var j=r(4848);function w({className:e,block:n,selectedValue:r,selectValue:a,tabValues:s}){const o=[],{blockElementScrollPositionUntilNextRender:i}=(0,l.a_)(),u=e=>{const n=e.currentTarget,t=o.indexOf(n),l=s[t].value;l!==r&&(i(n),a(l))},c=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const r=o.indexOf(e.currentTarget)+1;n=o[r]??o[0];break}case"ArrowLeft":{const r=o.indexOf(e.currentTarget)-1;n=o[r]??o[o.length-1];break}}n?.focus()};return(0,j.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.A)("tabs",{"tabs--block":n},e),children:s.map(({value:e,label:n,attributes:a})=>(0,j.jsx)("li",{role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>{o.push(e)},onKeyDown:c,onClick:u,...a,className:(0,t.A)("tabs__item",x,a?.className,{"tabs__item--active":r===e}),children:n??e},e))})}function y({lazy:e,children:n,selectedValue:r}){const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=s.find(e=>e.props.value===r);return e?(0,a.cloneElement)(e,{className:(0,t.A)("margin-top--md",e.props.className)}):null}return(0,j.jsx)("div",{className:"margin-top--md",children:s.map((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))})}function A(e){const n=f(e);return(0,j.jsxs)("div",{className:(0,t.A)(s.G.tabs.container,"tabs-container",v),children:[(0,j.jsx)(w,{...n,...e}),(0,j.jsx)(y,{...n,...e})]})}function N(e){const n=(0,g.A)();return(0,j.jsx)(A,{...e,children:h(e.children)},String(n))}},5103(e,n,r){r.d(n,{A:()=>l});var a=r(1470),t=r(9365),s=r(4848);function l({children:e}){const n=function(){if("undefined"==typeof navigator)return"linux";const e=(navigator.platform??"").toLowerCase(),n=navigator.userAgent.toLowerCase();return e.startsWith("win")||n.includes("windows")?"windows":e.startsWith("mac")||n.includes("macintosh")?"macos":"linux"}();return(0,s.jsxs)(a.A,{groupId:"os",defaultValue:n,children:[e.windows&&(0,s.jsx)(t.A,{value:"windows",label:"Windows",children:e.windows}),e.macos&&(0,s.jsx)(t.A,{value:"macos",label:"macOS",children:e.macos}),e.linux&&(0,s.jsx)(t.A,{value:"linux",label:"Linux",children:e.linux})]})}},8412(e,n,r){r.r(n),r.d(n,{default:()=>S});var a=r(8774),t=r(663),s=r(1107);const l="features_t9lD",o="grid_cAvf",i="featureCard_QAQr",u="featureHeader_Epcy",c="featureIcon_GA8l";var d=r(4848);const h=[{title:"Modern .NET Platform",icon:"\u26a1",description:(0,d.jsx)(d.Fragment,{children:"Built on the latest .NET with native Linux support and cross-platform compatibility out of the box. OS-level networking and minimal memory overhead keep your shard lean and responsive."})},{title:"Code-Generated Serialization",icon:"\ud83d\udd27",description:(0,d.jsx)(d.Fragment,{children:"Automatic persistence powered by C# source generators. Annotate your fields and get version migrations, dirty tracking, and zero-boilerplate world saves\u2014no manual serialization code required."})},{title:"Active Development & Community",icon:"\ud83d\udc65",description:(0,d.jsx)(d.Fragment,{children:"Actively maintained with regular updates and a growing contributor base. Get help on Discord, collaborate on GitHub, and be part of a community that\u2019s pushing UO emulation forward."})},{title:"Built for Performance at Scale",icon:"\ud83d\ude80",description:(0,d.jsx)(d.Fragment,{children:"Engineered for large shards. Optimized data structures, a lock-free architecture, and parallel world saves ensure your server stays smooth under heavy player load."})}];function m({title:e,icon:n,description:r}){return(0,d.jsxs)("div",{className:i,children:[(0,d.jsxs)("div",{className:u,children:[(0,d.jsx)("span",{className:c,children:n}),(0,d.jsx)(s.A,{as:"h3",children:e})]}),(0,d.jsx)("p",{children:r})]})}function p(){return(0,d.jsx)("section",{className:l,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsx)("div",{className:o,children:h.map((e,n)=>(0,d.jsx)(m,{...e},n))})})})}var b=r(3457),f=r(5103);const g="quickStart_Hmyg",v="content_W6Uh",x="heading_VnJC",j="subheading_EZR2",w="codeWrapper_yVx7";function y(){return(0,d.jsx)("section",{className:g,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:v,children:[(0,d.jsx)("h2",{className:x,children:"Up and running in minutes"}),(0,d.jsx)("p",{className:j,children:"Clone, build, and launch your server with three commands."}),(0,d.jsx)("div",{className:w,children:(0,d.jsx)(f.A,{children:{linux:(0,d.jsx)(b.A,{language:"bash",children:"git clone https://github.com/modernuo/modernuo\ncd modernuo\n./publish.sh release linux x64"}),macos:(0,d.jsx)(b.A,{language:"bash",children:"git clone https://github.com/modernuo/modernuo\ncd modernuo\n./publish.sh release osx x64"}),windows:(0,d.jsx)(b.A,{language:"bash",children:"git clone https://github.com/modernuo/modernuo\ncd modernuo\n./publish.cmd release win x64"})}})}),(0,d.jsx)(a.A,{className:"button button--lg button--outline-gold",to:"/docs/getting-started/installation",children:"View full setup guide"})]})})})}const A="hero_aEcG",N="logoWrapper_lGCO",_="glow_rLah",V="logo_Ukns",k="tagline_Bqj_",E="buttons_AeoN";function T(){return(0,d.jsx)("header",{className:A,children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsxs)("div",{className:N,children:[(0,d.jsx)("div",{className:_}),(0,d.jsx)("img",{src:"/branding/logo.svg",alt:"ModernUO",className:V})]}),(0,d.jsx)("p",{className:k,children:"The Ultima Online server emulator for the modern era"}),(0,d.jsx)("div",{className:E,children:(0,d.jsx)(a.A,{className:"button button--lg button--gold",to:"/docs/getting-started/installation",children:"Get Started"})})]})})}function S(){return(0,d.jsxs)(t.A,{title:"Ultima Online Server Emulator",description:"ModernUO is a modern, open-source Ultima Online server emulator built on .NET 10. High performance, code-generated serialization, and an active community.",children:[(0,d.jsx)(T,{}),(0,d.jsxs)("main",{children:[(0,d.jsx)(p,{}),(0,d.jsx)(y,{})]})]})}}}]);