diff --git a/404.html b/404.html index d8704b6..52f4a50 100644 --- a/404.html +++ b/404.html @@ -5,7 +5,7 @@ Page Not Found | Flamework - + diff --git a/assets/js/fb576837.dd604040.js b/assets/js/fb576837.dd604040.js deleted file mode 100644 index bd32664..0000000 --- a/assets/js/fb576837.dd604040.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkflamework=self.webpackChunkflamework||[]).push([[6179],{1533:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var o=t(5893),a=t(1151);const s={title:"Global Handlers"},r=void 0,i={id:"additional-modules/networking/global-handlers",title:"Global Handlers",description:"The GlobalEvents/GlobalFunctions APIs includes some optional events that you can connect to.",source:"@site/docs/additional-modules/networking/global-handlers.md",sourceDirName:"additional-modules/networking",slug:"/additional-modules/networking/global-handlers",permalink:"/docs/additional-modules/networking/global-handlers",draft:!1,unlisted:!1,editUrl:"https://github.com/rbxts-flamework/documentation/tree/master/docs/additional-modules/networking/global-handlers.md",tags:[],version:"current",frontMatter:{title:"Global Handlers"},sidebar:"flamework",previous:{title:"Middleware",permalink:"/docs/additional-modules/networking/middleware"},next:{title:"Namespaces",permalink:"/docs/additional-modules/networking/namespaces"}},l={},d=[{value:"Connection",id:"connection",level:2},{value:"Events",id:"events",level:2},{value:"onBadRequest",id:"onbadrequest",level:3},{value:"onBadResponse",id:"onbadresponse",level:3}];function c(e){const n={code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"GlobalEvents"}),"/",(0,o.jsx)(n.code,{children:"GlobalFunctions"})," APIs includes some optional events that you can connect to."]}),"\n",(0,o.jsx)(n.h2,{id:"connection",children:"Connection"}),"\n",(0,o.jsxs)(n.p,{children:["You can connect to one of these optional events by using ",(0,o.jsx)(n.code,{children:"GlobalEvents.registerHandler(name, callback)"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",children:'export const GlobalEvents = Networking.createEvent();\nexport const GlobalFunctions = Networking.createFunction();\n\n\nGlobalEvents.registerHandler("onBadRequest", (player) => print(player, "sent a bad request!"));\nGlobalEvents.registerHandler("onBadResponse", (player) => print(player, "returned a bad response!"));\n\n'})}),"\n",(0,o.jsx)(n.h2,{id:"events",children:"Events"}),"\n",(0,o.jsxs)(n.p,{children:["Every handler is fired with the player in question (on the client, this will always be ",(0,o.jsx)(n.code,{children:"Players.LocalPlayer"})," even when events are caused by the server) along with an event data object."]}),"\n",(0,o.jsxs)(n.p,{children:["Every event data object includes a ",(0,o.jsx)(n.code,{children:"networkInfo"})," field containing information about the RemoteEvent/RemoteFunction that caused this event."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",children:'export interface NetworkInfo {\n\t/**\n\t * The name provided for this event.\n\t */\n\tname: string;\n\n\t/**\n\t * The (generated) global name used for distinguishing different createEvent calls.\n\t */\n\tglobalName: string;\n\n\t/**\n\t * Whether this remote is an event or function.\n\t */\n\teventType: "Event" | "Function";\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:["Along with the ",(0,o.jsx)(n.code,{children:"networkInfo"})," field, each event also includes its own relevant data, specific to each event."]}),"\n",(0,o.jsx)(n.h3,{id:"onbadrequest",children:"onBadRequest"}),"\n",(0,o.jsx)(n.p,{children:"This event is fired when the server or client fires a remote but the arguments do not pass the generated type guards.\nIt is not recommended to use this for moderative action as false positives can happen in many ways."}),"\n",(0,o.jsx)(n.p,{children:"This event is fired for both RemoteEvents and RemoteFunctions."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",children:"interface BadRequestData {\n\t/**\n\t * The index of the argument that was incorrect.\n\t */\n\targIndex: number;\n\n\t/**\n\t * The value of the argument that was incorrect.\n\t */\n\targValue: unknown;\n}\n"})}),"\n",(0,o.jsx)(n.h3,{id:"onbadresponse",children:"onBadResponse"}),"\n",(0,o.jsx)(n.p,{children:"This event is fired when the server or client return a value from a RemoteFunction callback that does not pass the generated type guards.\nIt is not recommended to use this for moderative action as false positives can happen in many ways."}),"\n",(0,o.jsx)(n.p,{children:"This event is only fired for RemoteFunctions."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",children:"interface BadResponseData {\n\t/**\n\t * The value of the argument that was incorrect.\n\t */\n\tvalue: unknown;\n}\n"})})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>r});var o=t(7294);const a={},s=o.createContext(a);function r(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fb576837.e1fdffdb.js b/assets/js/fb576837.e1fdffdb.js new file mode 100644 index 0000000..8f09e80 --- /dev/null +++ b/assets/js/fb576837.e1fdffdb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkflamework=self.webpackChunkflamework||[]).push([[6179],{1533:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var o=t(5893),a=t(1151);const s={title:"Global Handlers"},r=void 0,i={id:"additional-modules/networking/global-handlers",title:"Global Handlers",description:"The GlobalEvents/GlobalFunctions APIs includes some optional events that you can connect to.",source:"@site/docs/additional-modules/networking/global-handlers.md",sourceDirName:"additional-modules/networking",slug:"/additional-modules/networking/global-handlers",permalink:"/docs/additional-modules/networking/global-handlers",draft:!1,unlisted:!1,editUrl:"https://github.com/rbxts-flamework/documentation/tree/master/docs/additional-modules/networking/global-handlers.md",tags:[],version:"current",frontMatter:{title:"Global Handlers"},sidebar:"flamework",previous:{title:"Middleware",permalink:"/docs/additional-modules/networking/middleware"},next:{title:"Namespaces",permalink:"/docs/additional-modules/networking/namespaces"}},l={},d=[{value:"Connection",id:"connection",level:2},{value:"Events",id:"events",level:2},{value:"onBadRequest",id:"onbadrequest",level:3},{value:"onBadResponse",id:"onbadresponse",level:3}];function c(e){const n={code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"GlobalEvents"}),"/",(0,o.jsx)(n.code,{children:"GlobalFunctions"})," APIs includes some optional events that you can connect to."]}),"\n",(0,o.jsx)(n.h2,{id:"connection",children:"Connection"}),"\n",(0,o.jsxs)(n.p,{children:["You can connect to one of these optional events by using ",(0,o.jsx)(n.code,{children:"GlobalEvents.registerHandler(name, callback)"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",children:'export const GlobalEvents = Networking.createEvent();\nexport const GlobalFunctions = Networking.createFunction();\n\n\nGlobalEvents.registerHandler("onBadRequest", (player) => print(player, "sent a bad request!"));\nGlobalFunctions.registerHandler("onBadResponse", (player) => print(player, "returned a bad response!"));\n\n'})}),"\n",(0,o.jsx)(n.h2,{id:"events",children:"Events"}),"\n",(0,o.jsxs)(n.p,{children:["Every handler is fired with the player in question (on the client, this will always be ",(0,o.jsx)(n.code,{children:"Players.LocalPlayer"})," even when events are caused by the server) along with an event data object."]}),"\n",(0,o.jsxs)(n.p,{children:["Every event data object includes a ",(0,o.jsx)(n.code,{children:"networkInfo"})," field containing information about the RemoteEvent/RemoteFunction that caused this event."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",children:'export interface NetworkInfo {\n\t/**\n\t * The name provided for this event.\n\t */\n\tname: string;\n\n\t/**\n\t * The (generated) global name used for distinguishing different createEvent calls.\n\t */\n\tglobalName: string;\n\n\t/**\n\t * Whether this remote is an event or function.\n\t */\n\teventType: "Event" | "Function";\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:["Along with the ",(0,o.jsx)(n.code,{children:"networkInfo"})," field, each event also includes its own relevant data, specific to each event."]}),"\n",(0,o.jsx)(n.h3,{id:"onbadrequest",children:"onBadRequest"}),"\n",(0,o.jsx)(n.p,{children:"This event is fired when the server or client fires a remote but the arguments do not pass the generated type guards.\nIt is not recommended to use this for moderative action as false positives can happen in many ways."}),"\n",(0,o.jsx)(n.p,{children:"This event is fired for both RemoteEvents and RemoteFunctions."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",children:"interface BadRequestData {\n\t/**\n\t * The index of the argument that was incorrect.\n\t */\n\targIndex: number;\n\n\t/**\n\t * The value of the argument that was incorrect.\n\t */\n\targValue: unknown;\n}\n"})}),"\n",(0,o.jsx)(n.h3,{id:"onbadresponse",children:"onBadResponse"}),"\n",(0,o.jsx)(n.p,{children:"This event is fired when the server or client return a value from a RemoteFunction callback that does not pass the generated type guards.\nIt is not recommended to use this for moderative action as false positives can happen in many ways."}),"\n",(0,o.jsx)(n.p,{children:"This event is only fired for RemoteFunctions."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",children:"interface BadResponseData {\n\t/**\n\t * The value of the argument that was incorrect.\n\t */\n\tvalue: unknown;\n}\n"})})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>r});var o=t(7294);const a={},s=o.createContext(a);function r(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.e02252d5.js b/assets/js/runtime~main.302478e3.js similarity index 99% rename from assets/js/runtime~main.e02252d5.js rename to assets/js/runtime~main.302478e3.js index d893b5d..38e1003 100644 --- a/assets/js/runtime~main.e02252d5.js +++ b/assets/js/runtime~main.302478e3.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,f,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(a,c,f,b)=>{if(!c){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",71:"0b3ceb4d",135:"e6a70738",154:"295b567d",205:"83d480e9",346:"c9d81204",522:"e0f3d0fa",533:"b2b675dd",742:"33f5990f",783:"bc37cd03",1011:"45a5bf2a",1165:"6548f0e2",1345:"941f2dc3",1396:"fcacc86c",1477:"b2f554cd",1611:"74fb7304",1713:"a7023ddc",2422:"ef9b40ec",2535:"814f3328",2729:"b7aa7bcd",2760:"73d5a737",3085:"1f391b9e",3089:"a6aa9e1f",3178:"64f4b5c6",3217:"3b8c55ea",3426:"54c1c858",3514:"1a27553a",3608:"9e4087bc",3663:"32c5640b",3800:"a193a73b",3834:"6c8b61eb",3978:"21dd788e",4013:"01a85c17",4128:"a09c2993",4193:"c4f5d8e4",4195:"01204bbb",4368:"a94703ab",4375:"5325a6d1",4508:"fd6184df",4691:"7e6ed2c4",5167:"aa26eac5",5366:"d5d30cd8",5522:"df057e49",5679:"f5a4b31c",5818:"21d9832a",5979:"64b6e27a",6103:"ccc49370",6179:"fb576837",6426:"8551e181",6614:"ff9e453d",6827:"4bbe28ff",7374:"ec93e687",7414:"393be207",7438:"9c021584",7470:"2a801064",7807:"3beaf863",7845:"65638adf",7918:"17896441",8221:"c8ebfe99",8323:"35cea5fc",8451:"aae32ccc",8518:"a7bd4aaa",8610:"6875c492",8666:"462993f7",8720:"5b5e5c50",8901:"d773f089",9063:"b1347f27",9136:"b6a7d23b",9175:"689c231b",9377:"54bd2843",9557:"956ba2e7",9661:"5e95c892",9907:"e7839cea"}[e]||e)+"."+{53:"be26d7b2",71:"797b89a9",135:"f2691d50",154:"8b31e272",205:"aa9a36da",346:"3ae112ae",522:"6dd5f19f",533:"323ce167",742:"131d9d82",783:"43b7f817",1011:"abc984b8",1165:"e2a0f1f2",1345:"51e0e6c0",1396:"d88ba914",1477:"8825c17f",1611:"c934540e",1713:"cc0d6c3c",1772:"43c10fea",2196:"afed106e",2422:"9d0806e7",2535:"79be6102",2729:"2cd9dbfe",2760:"1713e262",3085:"22ca7774",3089:"bbf95cbf",3178:"ed5618e4",3217:"fc6c35e0",3426:"54b07ff9",3514:"99f18e2a",3608:"1c45b1fc",3663:"899ad1be",3800:"ca733f7a",3834:"d82f7ea5",3978:"691c3130",4013:"01c593b7",4128:"814ceb4c",4193:"f88a4f1a",4195:"a50af722",4368:"1781516c",4375:"f4eb2d68",4508:"928f6950",4691:"37569c11",5167:"43f6f8c0",5366:"255d6a57",5522:"b237d6b5",5679:"6c9d2f0a",5818:"02e9c03a",5979:"7ae8b660",6103:"e2baf1f8",6179:"dd604040",6426:"e3b9e614",6614:"38ba553c",6827:"047cd5ee",7374:"14fed294",7414:"fbc3f6e4",7438:"1f0b67e2",7470:"510b76ec",7807:"ae8caf4c",7845:"d03ebf71",7918:"f1abe7d0",8221:"60a784ca",8323:"6e4bf559",8451:"7fbe5d58",8518:"ce467c50",8610:"7898b91a",8666:"32cd21be",8720:"9413bc65",8901:"c5cd6d74",9063:"8711c2f0",9136:"7c8ca244",9175:"320c44bd",9377:"33bb58fd",9557:"771487ac",9661:"1412bcf8",9677:"33a52867",9907:"7866292d"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="flamework:",r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918","935f2afb":"53","0b3ceb4d":"71",e6a70738:"135","295b567d":"154","83d480e9":"205",c9d81204:"346",e0f3d0fa:"522",b2b675dd:"533","33f5990f":"742",bc37cd03:"783","45a5bf2a":"1011","6548f0e2":"1165","941f2dc3":"1345",fcacc86c:"1396",b2f554cd:"1477","74fb7304":"1611",a7023ddc:"1713",ef9b40ec:"2422","814f3328":"2535",b7aa7bcd:"2729","73d5a737":"2760","1f391b9e":"3085",a6aa9e1f:"3089","64f4b5c6":"3178","3b8c55ea":"3217","54c1c858":"3426","1a27553a":"3514","9e4087bc":"3608","32c5640b":"3663",a193a73b:"3800","6c8b61eb":"3834","21dd788e":"3978","01a85c17":"4013",a09c2993:"4128",c4f5d8e4:"4193","01204bbb":"4195",a94703ab:"4368","5325a6d1":"4375",fd6184df:"4508","7e6ed2c4":"4691",aa26eac5:"5167",d5d30cd8:"5366",df057e49:"5522",f5a4b31c:"5679","21d9832a":"5818","64b6e27a":"5979",ccc49370:"6103",fb576837:"6179","8551e181":"6426",ff9e453d:"6614","4bbe28ff":"6827",ec93e687:"7374","393be207":"7414","9c021584":"7438","2a801064":"7470","3beaf863":"7807","65638adf":"7845",c8ebfe99:"8221","35cea5fc":"8323",aae32ccc:"8451",a7bd4aaa:"8518","6875c492":"8610","462993f7":"8666","5b5e5c50":"8720",d773f089:"8901",b1347f27:"9063",b6a7d23b:"9136","689c231b":"9175","54bd2843":"9377","956ba2e7":"9557","5e95c892":"9661",e7839cea:"9907"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>f=e[a]=[c,b]));c.push(f[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,b,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,f,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(a,c,f,b)=>{if(!c){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",71:"0b3ceb4d",135:"e6a70738",154:"295b567d",205:"83d480e9",346:"c9d81204",522:"e0f3d0fa",533:"b2b675dd",742:"33f5990f",783:"bc37cd03",1011:"45a5bf2a",1165:"6548f0e2",1345:"941f2dc3",1396:"fcacc86c",1477:"b2f554cd",1611:"74fb7304",1713:"a7023ddc",2422:"ef9b40ec",2535:"814f3328",2729:"b7aa7bcd",2760:"73d5a737",3085:"1f391b9e",3089:"a6aa9e1f",3178:"64f4b5c6",3217:"3b8c55ea",3426:"54c1c858",3514:"1a27553a",3608:"9e4087bc",3663:"32c5640b",3800:"a193a73b",3834:"6c8b61eb",3978:"21dd788e",4013:"01a85c17",4128:"a09c2993",4193:"c4f5d8e4",4195:"01204bbb",4368:"a94703ab",4375:"5325a6d1",4508:"fd6184df",4691:"7e6ed2c4",5167:"aa26eac5",5366:"d5d30cd8",5522:"df057e49",5679:"f5a4b31c",5818:"21d9832a",5979:"64b6e27a",6103:"ccc49370",6179:"fb576837",6426:"8551e181",6614:"ff9e453d",6827:"4bbe28ff",7374:"ec93e687",7414:"393be207",7438:"9c021584",7470:"2a801064",7807:"3beaf863",7845:"65638adf",7918:"17896441",8221:"c8ebfe99",8323:"35cea5fc",8451:"aae32ccc",8518:"a7bd4aaa",8610:"6875c492",8666:"462993f7",8720:"5b5e5c50",8901:"d773f089",9063:"b1347f27",9136:"b6a7d23b",9175:"689c231b",9377:"54bd2843",9557:"956ba2e7",9661:"5e95c892",9907:"e7839cea"}[e]||e)+"."+{53:"be26d7b2",71:"797b89a9",135:"f2691d50",154:"8b31e272",205:"aa9a36da",346:"3ae112ae",522:"6dd5f19f",533:"323ce167",742:"131d9d82",783:"43b7f817",1011:"abc984b8",1165:"e2a0f1f2",1345:"51e0e6c0",1396:"d88ba914",1477:"8825c17f",1611:"c934540e",1713:"cc0d6c3c",1772:"43c10fea",2196:"afed106e",2422:"9d0806e7",2535:"79be6102",2729:"2cd9dbfe",2760:"1713e262",3085:"22ca7774",3089:"bbf95cbf",3178:"ed5618e4",3217:"fc6c35e0",3426:"54b07ff9",3514:"99f18e2a",3608:"1c45b1fc",3663:"899ad1be",3800:"ca733f7a",3834:"d82f7ea5",3978:"691c3130",4013:"01c593b7",4128:"814ceb4c",4193:"f88a4f1a",4195:"a50af722",4368:"1781516c",4375:"f4eb2d68",4508:"928f6950",4691:"37569c11",5167:"43f6f8c0",5366:"255d6a57",5522:"b237d6b5",5679:"6c9d2f0a",5818:"02e9c03a",5979:"7ae8b660",6103:"e2baf1f8",6179:"e1fdffdb",6426:"e3b9e614",6614:"38ba553c",6827:"047cd5ee",7374:"14fed294",7414:"fbc3f6e4",7438:"1f0b67e2",7470:"510b76ec",7807:"ae8caf4c",7845:"d03ebf71",7918:"f1abe7d0",8221:"60a784ca",8323:"6e4bf559",8451:"7fbe5d58",8518:"ce467c50",8610:"7898b91a",8666:"32cd21be",8720:"9413bc65",8901:"c5cd6d74",9063:"8711c2f0",9136:"7c8ca244",9175:"320c44bd",9377:"33bb58fd",9557:"771487ac",9661:"1412bcf8",9677:"33a52867",9907:"7866292d"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="flamework:",r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918","935f2afb":"53","0b3ceb4d":"71",e6a70738:"135","295b567d":"154","83d480e9":"205",c9d81204:"346",e0f3d0fa:"522",b2b675dd:"533","33f5990f":"742",bc37cd03:"783","45a5bf2a":"1011","6548f0e2":"1165","941f2dc3":"1345",fcacc86c:"1396",b2f554cd:"1477","74fb7304":"1611",a7023ddc:"1713",ef9b40ec:"2422","814f3328":"2535",b7aa7bcd:"2729","73d5a737":"2760","1f391b9e":"3085",a6aa9e1f:"3089","64f4b5c6":"3178","3b8c55ea":"3217","54c1c858":"3426","1a27553a":"3514","9e4087bc":"3608","32c5640b":"3663",a193a73b:"3800","6c8b61eb":"3834","21dd788e":"3978","01a85c17":"4013",a09c2993:"4128",c4f5d8e4:"4193","01204bbb":"4195",a94703ab:"4368","5325a6d1":"4375",fd6184df:"4508","7e6ed2c4":"4691",aa26eac5:"5167",d5d30cd8:"5366",df057e49:"5522",f5a4b31c:"5679","21d9832a":"5818","64b6e27a":"5979",ccc49370:"6103",fb576837:"6179","8551e181":"6426",ff9e453d:"6614","4bbe28ff":"6827",ec93e687:"7374","393be207":"7414","9c021584":"7438","2a801064":"7470","3beaf863":"7807","65638adf":"7845",c8ebfe99:"8221","35cea5fc":"8323",aae32ccc:"8451",a7bd4aaa:"8518","6875c492":"8610","462993f7":"8666","5b5e5c50":"8720",d773f089:"8901",b1347f27:"9063",b6a7d23b:"9136","689c231b":"9175","54bd2843":"9377","956ba2e7":"9557","5e95c892":"9661",e7839cea:"9907"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>f=e[a]=[c,b]));c.push(f[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,b,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n September 14th Release | Flamework - + diff --git a/blog/2021/11/03/flamework-release/index.html b/blog/2021/11/03/flamework-release/index.html index 480ab39..09bbc17 100644 --- a/blog/2021/11/03/flamework-release/index.html +++ b/blog/2021/11/03/flamework-release/index.html @@ -5,7 +5,7 @@ November 3rd Release | Flamework - + diff --git a/blog/2022/05/15/flamework-release/index.html b/blog/2022/05/15/flamework-release/index.html index e004042..5d4ca2b 100644 --- a/blog/2022/05/15/flamework-release/index.html +++ b/blog/2022/05/15/flamework-release/index.html @@ -5,7 +5,7 @@ May 15th Modding Release | Flamework - + diff --git a/blog/2022/06/09/flamework-release/index.html b/blog/2022/06/09/flamework-release/index.html index 3c79820..150db85 100644 --- a/blog/2022/06/09/flamework-release/index.html +++ b/blog/2022/06/09/flamework-release/index.html @@ -5,7 +5,7 @@ June 9th Components Release | Flamework - + diff --git a/blog/2022/12/19/flamework-release/index.html b/blog/2022/12/19/flamework-release/index.html index 3640977..93b7d3b 100644 --- a/blog/2022/12/19/flamework-release/index.html +++ b/blog/2022/12/19/flamework-release/index.html @@ -5,7 +5,7 @@ December 19th Release | Flamework - + diff --git a/blog/2023/04/13/flamework-release/index.html b/blog/2023/04/13/flamework-release/index.html index 6d2f3dc..40ed79d 100644 --- a/blog/2023/04/13/flamework-release/index.html +++ b/blog/2023/04/13/flamework-release/index.html @@ -5,7 +5,7 @@ Flamework v1.0.0-beta.20 | Flamework - + diff --git a/blog/2023/08/13/flamework-release/index.html b/blog/2023/08/13/flamework-release/index.html index f1ac485..c92c53e 100644 --- a/blog/2023/08/13/flamework-release/index.html +++ b/blog/2023/08/13/flamework-release/index.html @@ -5,7 +5,7 @@ Flamework v1.0.0-beta.23 | Flamework - + diff --git a/blog/2023/12/18/flamework-release/index.html b/blog/2023/12/18/flamework-release/index.html index a0020f6..653f2dc 100644 --- a/blog/2023/12/18/flamework-release/index.html +++ b/blog/2023/12/18/flamework-release/index.html @@ -5,7 +5,7 @@ Flamework v1.0.0 | Flamework - + diff --git a/blog/2024/01/21/flamework-release/index.html b/blog/2024/01/21/flamework-release/index.html index 86bcc66..12af73a 100644 --- a/blog/2024/01/21/flamework-release/index.html +++ b/blog/2024/01/21/flamework-release/index.html @@ -5,7 +5,7 @@ Flamework v1.1.0 | Flamework - + diff --git a/blog/2024/03/21/flamework-release/index.html b/blog/2024/03/21/flamework-release/index.html index 36cd4f7..bdfdd35 100644 --- a/blog/2024/03/21/flamework-release/index.html +++ b/blog/2024/03/21/flamework-release/index.html @@ -5,7 +5,7 @@ Flamework v1.2.0 | Flamework - + diff --git a/blog/archive/index.html b/blog/archive/index.html index 99efb03..bf70191 100644 --- a/blog/archive/index.html +++ b/blog/archive/index.html @@ -5,7 +5,7 @@ Archive | Flamework - + diff --git a/blog/index.html b/blog/index.html index b75cefc..7757f6e 100644 --- a/blog/index.html +++ b/blog/index.html @@ -5,7 +5,7 @@ Blog | Flamework - + diff --git a/blog/tags/index.html b/blog/tags/index.html index 9259f66..6a03272 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -5,7 +5,7 @@ Tags | Flamework - + diff --git a/blog/tags/release/index.html b/blog/tags/release/index.html index 051a66d..fb7ac08 100644 --- a/blog/tags/release/index.html +++ b/blog/tags/release/index.html @@ -5,7 +5,7 @@ 5 posts tagged with "Release" | Flamework - + diff --git a/docs/additional-modules/components/attributes/index.html b/docs/additional-modules/components/attributes/index.html index cd509aa..a691dc8 100644 --- a/docs/additional-modules/components/attributes/index.html +++ b/docs/additional-modules/components/attributes/index.html @@ -5,7 +5,7 @@ Attributes | Flamework - + diff --git a/docs/additional-modules/components/configuration/index.html b/docs/additional-modules/components/configuration/index.html index da526d9..2783803 100644 --- a/docs/additional-modules/components/configuration/index.html +++ b/docs/additional-modules/components/configuration/index.html @@ -5,7 +5,7 @@ Configuration | Flamework - + diff --git a/docs/additional-modules/components/creating-a-component/index.html b/docs/additional-modules/components/creating-a-component/index.html index f9e1cf5..c6ff4c0 100644 --- a/docs/additional-modules/components/creating-a-component/index.html +++ b/docs/additional-modules/components/creating-a-component/index.html @@ -5,7 +5,7 @@ Creating a Component | Flamework - + diff --git a/docs/additional-modules/components/inheritance/index.html b/docs/additional-modules/components/inheritance/index.html index 971a11f..5e80c98 100644 --- a/docs/additional-modules/components/inheritance/index.html +++ b/docs/additional-modules/components/inheritance/index.html @@ -5,7 +5,7 @@ Inheritance | Flamework - + diff --git a/docs/additional-modules/components/scripting-api/index.html b/docs/additional-modules/components/scripting-api/index.html index 5413951..edbe3e2 100644 --- a/docs/additional-modules/components/scripting-api/index.html +++ b/docs/additional-modules/components/scripting-api/index.html @@ -5,7 +5,7 @@ Scripting API | Flamework - + diff --git a/docs/additional-modules/networking/configuration/index.html b/docs/additional-modules/networking/configuration/index.html index f497355..86cdd04 100644 --- a/docs/additional-modules/networking/configuration/index.html +++ b/docs/additional-modules/networking/configuration/index.html @@ -5,7 +5,7 @@ Configuration | Flamework - + diff --git a/docs/additional-modules/networking/global-handlers/index.html b/docs/additional-modules/networking/global-handlers/index.html index b41745e..73b501d 100644 --- a/docs/additional-modules/networking/global-handlers/index.html +++ b/docs/additional-modules/networking/global-handlers/index.html @@ -5,14 +5,14 @@ Global Handlers | Flamework - +

Global Handlers

The GlobalEvents/GlobalFunctions APIs includes some optional events that you can connect to.

Connection​

You can connect to one of these optional events by using GlobalEvents.registerHandler(name, callback).

-
export const GlobalEvents = Networking.createEvent<S, C>();
export const GlobalFunctions = Networking.createFunction<S, C>();


GlobalEvents.registerHandler("onBadRequest", (player) => print(player, "sent a bad request!"));
GlobalEvents.registerHandler("onBadResponse", (player) => print(player, "returned a bad response!"));

+
export const GlobalEvents = Networking.createEvent<S, C>();
export const GlobalFunctions = Networking.createFunction<S, C>();


GlobalEvents.registerHandler("onBadRequest", (player) => print(player, "sent a bad request!"));
GlobalFunctions.registerHandler("onBadResponse", (player) => print(player, "returned a bad response!"));

Events​

Every handler is fired with the player in question (on the client, this will always be Players.LocalPlayer even when events are caused by the server) along with an event data object.

Every event data object includes a networkInfo field containing information about the RemoteEvent/RemoteFunction that caused this event.

diff --git a/docs/additional-modules/networking/introduction/index.html b/docs/additional-modules/networking/introduction/index.html index 8748c61..297f609 100644 --- a/docs/additional-modules/networking/introduction/index.html +++ b/docs/additional-modules/networking/introduction/index.html @@ -5,7 +5,7 @@ Introduction | Flamework - + diff --git a/docs/additional-modules/networking/middleware/index.html b/docs/additional-modules/networking/middleware/index.html index c7fab7f..0d30cbb 100644 --- a/docs/additional-modules/networking/middleware/index.html +++ b/docs/additional-modules/networking/middleware/index.html @@ -5,7 +5,7 @@ Middleware | Flamework - + diff --git a/docs/additional-modules/networking/namespaces/index.html b/docs/additional-modules/networking/namespaces/index.html index e701f0c..b34d355 100644 --- a/docs/additional-modules/networking/namespaces/index.html +++ b/docs/additional-modules/networking/namespaces/index.html @@ -5,7 +5,7 @@ Namespaces | Flamework - + diff --git a/docs/additional-modules/networking/remote-events/index.html b/docs/additional-modules/networking/remote-events/index.html index a1bab3c..1b753a5 100644 --- a/docs/additional-modules/networking/remote-events/index.html +++ b/docs/additional-modules/networking/remote-events/index.html @@ -5,7 +5,7 @@ Remote Events | Flamework - + diff --git a/docs/additional-modules/networking/remote-functions/index.html b/docs/additional-modules/networking/remote-functions/index.html index e8b51f6..5aa07dc 100644 --- a/docs/additional-modules/networking/remote-functions/index.html +++ b/docs/additional-modules/networking/remote-functions/index.html @@ -5,7 +5,7 @@ Remote Functions | Flamework - + diff --git a/docs/frequently-asked/index.html b/docs/frequently-asked/index.html index 3ef5630..62589e6 100644 --- a/docs/frequently-asked/index.html +++ b/docs/frequently-asked/index.html @@ -5,7 +5,7 @@ Frequently Asked | Flamework - + diff --git a/docs/guides/configuration/index.html b/docs/guides/configuration/index.html index 0494e2c..8a5a591 100644 --- a/docs/guides/configuration/index.html +++ b/docs/guides/configuration/index.html @@ -5,7 +5,7 @@ Configuration | Flamework - + diff --git a/docs/guides/creating-a-singleton/index.html b/docs/guides/creating-a-singleton/index.html index 716ccc7..bfd87f8 100644 --- a/docs/guides/creating-a-singleton/index.html +++ b/docs/guides/creating-a-singleton/index.html @@ -5,7 +5,7 @@ Creating a Singleton | Flamework - + diff --git a/docs/guides/dependencies/index.html b/docs/guides/dependencies/index.html index 4d0e845..67bfbca 100644 --- a/docs/guides/dependencies/index.html +++ b/docs/guides/dependencies/index.html @@ -5,7 +5,7 @@ Dependencies | Flamework - + diff --git a/docs/guides/ignition/index.html b/docs/guides/ignition/index.html index 34e427b..d86a63e 100644 --- a/docs/guides/ignition/index.html +++ b/docs/guides/ignition/index.html @@ -5,7 +5,7 @@ Ignition! | Flamework - + diff --git a/docs/guides/lifecycle-events/index.html b/docs/guides/lifecycle-events/index.html index 8b34ad9..e34b93b 100644 --- a/docs/guides/lifecycle-events/index.html +++ b/docs/guides/lifecycle-events/index.html @@ -5,7 +5,7 @@ Lifecycle Events | Flamework - + diff --git a/docs/guides/utility-macros/index.html b/docs/guides/utility-macros/index.html index 2b02128..18211d3 100644 --- a/docs/guides/utility-macros/index.html +++ b/docs/guides/utility-macros/index.html @@ -5,7 +5,7 @@ Utility Macros | Flamework - + diff --git a/docs/installation/index.html b/docs/installation/index.html index 4612e68..cbc600f 100644 --- a/docs/installation/index.html +++ b/docs/installation/index.html @@ -5,7 +5,7 @@ Installation | Flamework - + diff --git a/docs/introduction/index.html b/docs/introduction/index.html index 2130651..2c0e8ae 100644 --- a/docs/introduction/index.html +++ b/docs/introduction/index.html @@ -5,7 +5,7 @@ Introduction | Flamework - + diff --git a/docs/migration/index.html b/docs/migration/index.html index c4da729..78baacf 100644 --- a/docs/migration/index.html +++ b/docs/migration/index.html @@ -5,7 +5,7 @@ Migration | Flamework - + diff --git a/docs/modding/guides/decorators/index.html b/docs/modding/guides/decorators/index.html index 95d50f7..4507c9e 100644 --- a/docs/modding/guides/decorators/index.html +++ b/docs/modding/guides/decorators/index.html @@ -5,7 +5,7 @@ Decorators | Flamework - + diff --git a/docs/modding/guides/dependency-resolution/index.html b/docs/modding/guides/dependency-resolution/index.html index b749648..ca713c8 100644 --- a/docs/modding/guides/dependency-resolution/index.html +++ b/docs/modding/guides/dependency-resolution/index.html @@ -5,7 +5,7 @@ Dependency Resolution | Flamework - + diff --git a/docs/modding/guides/lifecycle-events/index.html b/docs/modding/guides/lifecycle-events/index.html index af63b66..0e17dd2 100644 --- a/docs/modding/guides/lifecycle-events/index.html +++ b/docs/modding/guides/lifecycle-events/index.html @@ -5,7 +5,7 @@ Lifecycle Events | Flamework - + diff --git a/docs/modding/guides/listeners/index.html b/docs/modding/guides/listeners/index.html index a2d8016..4ada9af 100644 --- a/docs/modding/guides/listeners/index.html +++ b/docs/modding/guides/listeners/index.html @@ -5,7 +5,7 @@ Listeners | Flamework - + diff --git a/docs/modding/guides/singletons/index.html b/docs/modding/guides/singletons/index.html index e60f561..5abcb0b 100644 --- a/docs/modding/guides/singletons/index.html +++ b/docs/modding/guides/singletons/index.html @@ -5,7 +5,7 @@ Singletons | Flamework - + diff --git a/docs/modding/guides/user-macros/index.html b/docs/modding/guides/user-macros/index.html index f46eb35..73a839f 100644 --- a/docs/modding/guides/user-macros/index.html +++ b/docs/modding/guides/user-macros/index.html @@ -5,7 +5,7 @@ User Macros | Flamework - + diff --git a/docs/modding/index.html b/docs/modding/index.html index 4831c97..ef79ab0 100644 --- a/docs/modding/index.html +++ b/docs/modding/index.html @@ -5,7 +5,7 @@ Introduction | Flamework - + diff --git a/docs/modding/metadata/index.html b/docs/modding/metadata/index.html index 67d8fa2..b5605b4 100644 --- a/docs/modding/metadata/index.html +++ b/docs/modding/metadata/index.html @@ -5,7 +5,7 @@ Metadata | Flamework - + diff --git a/docs/modding/reflection/index.html b/docs/modding/reflection/index.html index 794ac1a..120cdcf 100644 --- a/docs/modding/reflection/index.html +++ b/docs/modding/reflection/index.html @@ -5,7 +5,7 @@ Reflection | Flamework - + diff --git a/index.html b/index.html index f43f735..ac57bc7 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ Flamework | Flamework - + diff --git a/markdown-page/index.html b/markdown-page/index.html index 622be0b..0d4fb80 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -5,7 +5,7 @@ Markdown page example | Flamework - +