@minecraft-docker/mcctl-console 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/.next/standalone/package.json +1 -1
  2. package/.next/standalone/platform/services/mcctl-console/.next/BUILD_ID +1 -1
  3. package/.next/standalone/platform/services/mcctl-console/.next/app-build-manifest.json +78 -66
  4. package/.next/standalone/platform/services/mcctl-console/.next/app-path-routes-manifest.json +1 -1
  5. package/.next/standalone/platform/services/mcctl-console/.next/build-manifest.json +2 -2
  6. package/.next/standalone/platform/services/mcctl-console/.next/prerender-manifest.json +1 -1
  7. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/admin/users/page.js +1 -0
  8. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/admin/users/page.js.nft.json +1 -0
  9. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/admin/users/page_client-reference-manifest.js +1 -0
  10. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page.js +1 -1
  11. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page.js.nft.json +1 -1
  12. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page.js +1 -1
  14. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page.js.nft.json +1 -1
  15. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js +1 -1
  17. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
  18. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js +1 -1
  20. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js.nft.json +1 -1
  21. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js +1 -51
  23. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js.nft.json +1 -1
  24. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page.js +1 -1
  26. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page.js.nft.json +1 -1
  27. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js +1 -1
  29. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js.nft.json +1 -1
  30. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js +1 -1
  32. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js.nft.json +1 -1
  33. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page.js +1 -1
  35. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page.js.nft.json +1 -1
  36. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js +1 -1
  38. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js.nft.json +1 -1
  39. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page.js +1 -1
  41. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.html +1 -1
  43. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.rsc +1 -1
  44. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/ban/route.js +1 -1
  45. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/whitelist/route.js +1 -1
  46. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.html +1 -1
  47. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.rsc +3 -3
  48. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.html +1 -1
  49. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.rsc +3 -3
  50. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.html +1 -1
  51. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.rsc +3 -3
  52. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.html +1 -1
  53. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.rsc +1 -1
  54. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page.js +1 -1
  55. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page.js.nft.json +1 -1
  56. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.html +1 -1
  58. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.rsc +2 -2
  59. package/.next/standalone/platform/services/mcctl-console/.next/server/app/page.js +1 -1
  60. package/.next/standalone/platform/services/mcctl-console/.next/server/app/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.html +1 -1
  62. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.rsc +3 -3
  63. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.html +1 -1
  64. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.rsc +3 -3
  65. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.html +1 -1
  66. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.rsc +3 -3
  67. package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.html +1 -1
  68. package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.rsc +3 -3
  69. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page.js +1 -1
  70. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page.js.nft.json +1 -1
  71. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.html +1 -1
  73. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.rsc +2 -2
  74. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.html +1 -1
  75. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.rsc +3 -3
  76. package/.next/standalone/platform/services/mcctl-console/.next/server/app-paths-manifest.json +13 -13
  77. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1080.js +1 -0
  78. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1314.js +54 -0
  79. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/354.js +1 -1
  80. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/4533.js +1 -1
  81. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5019.js +1 -1
  82. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5068.js +1 -0
  83. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/701.js +1 -0
  84. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8243.js +1 -0
  85. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8402.js +1 -0
  86. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8847.js +74 -0
  87. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8913.js +51 -0
  88. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/9350.js +1 -0
  89. package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-manifest.json +5 -5
  90. package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.js +1 -1
  91. package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.json +1 -1
  92. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/404.html +1 -1
  93. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/500.html +1 -1
  94. package/.next/standalone/platform/services/mcctl-console/.next/server/server-reference-manifest.json +1 -1
  95. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/{1189-60aed59c0e82a63d.js → 1189-9b2b752dc97065ac.js} +1 -1
  96. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1854-71dbad60b363e57e.js +1 -0
  97. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/212-b904d9ae152f2360.js +1 -0
  98. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2777-90cc701b41e837af.js +1 -0
  99. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4668-f487c5c564e045d6.js +1 -0
  100. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/521-a5b59e2a19c8dd4f.js +1 -0
  101. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5511-7a419d84918a8d64.js +1 -0
  102. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/563-d87300cc5ef5920c.js +1 -0
  103. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/{6479-82b21daf8e380c4d.js → 6479-f31fbc0f2cf7ddd0.js} +1 -1
  104. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7359-45760f0e0e93f86b.js +1 -0
  105. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8558-4356df5e91ec7f4c.js +1 -0
  106. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/892-a0f20ea0df618c15.js +1 -0
  107. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/admin/layout-a902566886bf412c.js +1 -0
  108. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/{admin/users/page-f45f3cd30725a718.js → (main)/admin/users/page-48f4e3bdef6c2202.js} +1 -1
  109. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/{page-b879c927081e59a2.js → page-21b37416096d3cfc.js} +1 -1
  110. package/.next/{static/chunks/app/(main)/backups/page-7a59c9269da2d63e.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/page-a8606e93b4994f33.js} +1 -1
  111. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/dashboard/{page-d2d8cd0c7a0a54ec.js → page-fe3321721ddfe2a7.js} +1 -1
  112. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/layout-bc7b020e80bc6d8d.js +1 -0
  113. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/page-5bbed669a03279a3.js +1 -0
  114. package/.next/{static/chunks/app/(main)/routing/page-909690ecbe76f31c.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/page-ee0b47f2cc2bc235.js} +1 -1
  115. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/{page-96518534b90deb1c.js → page-b8d4a08a748e882d.js} +1 -1
  116. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/{page-c35bb5a99e6ff107.js → page-e47f9c34ab4e890d.js} +1 -1
  117. package/.next/{static/chunks/app/(main)/settings/page-a805f639e14a10b0.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/settings/page-dac4b25dde7b0719.js} +1 -1
  118. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-7e2bc35fda11d7c4.js +1 -0
  119. package/.next/{static/chunks/app/login/page-1665f285187a2a51.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-073a17485ca81f18.js} +1 -1
  120. package/.next/{static/chunks/app/signup/page-ae0638854e6bde34.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/page-bfb822f4c5c7ce99.js} +1 -1
  121. package/.next/standalone/platform/services/mcctl-console/package.json +1 -1
  122. package/.next/static/chunks/{1189-60aed59c0e82a63d.js → 1189-9b2b752dc97065ac.js} +1 -1
  123. package/.next/static/chunks/1854-71dbad60b363e57e.js +1 -0
  124. package/.next/static/chunks/212-b904d9ae152f2360.js +1 -0
  125. package/.next/static/chunks/2777-90cc701b41e837af.js +1 -0
  126. package/.next/static/chunks/4668-f487c5c564e045d6.js +1 -0
  127. package/.next/static/chunks/521-a5b59e2a19c8dd4f.js +1 -0
  128. package/.next/static/chunks/5511-7a419d84918a8d64.js +1 -0
  129. package/.next/static/chunks/563-d87300cc5ef5920c.js +1 -0
  130. package/.next/static/chunks/{6479-82b21daf8e380c4d.js → 6479-f31fbc0f2cf7ddd0.js} +1 -1
  131. package/.next/static/chunks/7359-45760f0e0e93f86b.js +1 -0
  132. package/.next/static/chunks/8558-4356df5e91ec7f4c.js +1 -0
  133. package/.next/static/chunks/892-a0f20ea0df618c15.js +1 -0
  134. package/.next/static/chunks/app/(main)/admin/layout-a902566886bf412c.js +1 -0
  135. package/.next/static/chunks/app/{admin/users/page-f45f3cd30725a718.js → (main)/admin/users/page-48f4e3bdef6c2202.js} +1 -1
  136. package/.next/static/chunks/app/(main)/audit-logs/{page-b879c927081e59a2.js → page-21b37416096d3cfc.js} +1 -1
  137. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/page-7a59c9269da2d63e.js → static/chunks/app/(main)/backups/page-a8606e93b4994f33.js} +1 -1
  138. package/.next/static/chunks/app/(main)/dashboard/{page-d2d8cd0c7a0a54ec.js → page-fe3321721ddfe2a7.js} +1 -1
  139. package/.next/static/chunks/app/(main)/layout-bc7b020e80bc6d8d.js +1 -0
  140. package/.next/static/chunks/app/(main)/players/page-5bbed669a03279a3.js +1 -0
  141. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/page-909690ecbe76f31c.js → static/chunks/app/(main)/routing/page-ee0b47f2cc2bc235.js} +1 -1
  142. package/.next/static/chunks/app/(main)/servers/[name]/{page-96518534b90deb1c.js → page-b8d4a08a748e882d.js} +1 -1
  143. package/.next/static/chunks/app/(main)/servers/{page-c35bb5a99e6ff107.js → page-e47f9c34ab4e890d.js} +1 -1
  144. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/settings/page-a805f639e14a10b0.js → static/chunks/app/(main)/settings/page-dac4b25dde7b0719.js} +1 -1
  145. package/.next/static/chunks/app/(main)/worlds/page-7e2bc35fda11d7c4.js +1 -0
  146. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-1665f285187a2a51.js → static/chunks/app/login/page-073a17485ca81f18.js} +1 -1
  147. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/page-ae0638854e6bde34.js → static/chunks/app/signup/page-bfb822f4c5c7ce99.js} +1 -1
  148. package/package.json +2 -2
  149. package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users/page.js +0 -1
  150. package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users/page.js.nft.json +0 -1
  151. package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users/page_client-reference-manifest.js +0 -1
  152. package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users.html +0 -1
  153. package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users.meta +0 -5
  154. package/.next/standalone/platform/services/mcctl-console/.next/server/app/admin/users.rsc +0 -12
  155. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/2572.js +0 -1
  156. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3029.js +0 -51
  157. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3048.js +0 -1
  158. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/6231.js +0 -74
  159. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/7057.js +0 -1
  160. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/7238.js +0 -1
  161. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/7453.js +0 -54
  162. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/7521.js +0 -1
  163. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/9250.js +0 -1
  164. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/190-9ecdd3c2ad7fadef.js +0 -1
  165. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4597-a66229d37b05fea9.js +0 -1
  166. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5386-a568e84580b1d208.js +0 -1
  167. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6571-0d9e629a91d9f630.js +0 -1
  168. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7073-46594e6380fdda11.js +0 -1
  169. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/765-8e911fe4e2959f8d.js +0 -1
  170. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7782-0f287c9ab0566879.js +0 -1
  171. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/787-91c6946656342fe4.js +0 -1
  172. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8625-b235421f69a178fb.js +0 -1
  173. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9485-9510025fbd9f9555.js +0 -1
  174. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9810-e8bf0b092d80a553.js +0 -1
  175. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/layout-2f8a2fe359953bbc.js +0 -1
  176. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/page-724151791dd69b93.js +0 -1
  177. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-704a3dafb5b8ec15.js +0 -1
  178. package/.next/static/chunks/190-9ecdd3c2ad7fadef.js +0 -1
  179. package/.next/static/chunks/4597-a66229d37b05fea9.js +0 -1
  180. package/.next/static/chunks/5386-a568e84580b1d208.js +0 -1
  181. package/.next/static/chunks/6571-0d9e629a91d9f630.js +0 -1
  182. package/.next/static/chunks/7073-46594e6380fdda11.js +0 -1
  183. package/.next/static/chunks/765-8e911fe4e2959f8d.js +0 -1
  184. package/.next/static/chunks/7782-0f287c9ab0566879.js +0 -1
  185. package/.next/static/chunks/787-91c6946656342fe4.js +0 -1
  186. package/.next/static/chunks/8625-b235421f69a178fb.js +0 -1
  187. package/.next/static/chunks/9485-9510025fbd9f9555.js +0 -1
  188. package/.next/static/chunks/9810-e8bf0b092d80a553.js +0 -1
  189. package/.next/static/chunks/app/(main)/layout-2f8a2fe359953bbc.js +0 -1
  190. package/.next/static/chunks/app/(main)/players/page-724151791dd69b93.js +0 -1
  191. package/.next/static/chunks/app/(main)/worlds/page-704a3dafb5b8ec15.js +0 -1
  192. /package/.next/standalone/platform/services/mcctl-console/.next/static/{FpqRAxF6tnqZ99-k8eKej → qKkyAhVhtEF8ACV2o3pRc}/_buildManifest.js +0 -0
  193. /package/.next/standalone/platform/services/mcctl-console/.next/static/{FpqRAxF6tnqZ99-k8eKej → qKkyAhVhtEF8ACV2o3pRc}/_ssgManifest.js +0 -0
  194. /package/.next/static/{FpqRAxF6tnqZ99-k8eKej → qKkyAhVhtEF8ACV2o3pRc}/_buildManifest.js +0 -0
  195. /package/.next/static/{FpqRAxF6tnqZ99-k8eKej → qKkyAhVhtEF8ACV2o3pRc}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4095],{16387:function(e,r,t){Promise.resolve().then(t.bind(t,6453))},6453:function(e,r,t){"use strict";t.r(r),t.d(r,{default:function(){return N}});var n=t(94655),i=t(35106),a=t(7281),s=t(74228),l=t(46725),o=t(56275),c=t(62108),d=t(79983),x=t(31317),h=t(78765),m=t(90158),u=t(58347),p=t(49954),f=t(17820),g=t(73424),b=t(61505),j=t(71185),y=t(76176),v=t(27171),Z=t(35847),w=t(29983),C=t(80620),k=t(84974),S=t(34675),P=t(407),z=t(85480),I=t(64779);function W(e){return(0,n.jsxs)(I.Z,{...e,viewBox:"0 0 32 32",children:[(0,n.jsx)("rect",{width:"32",height:"32",fill:"#5DA840"}),(0,n.jsx)("rect",{x:"4",y:"8",width:"8",height:"8",fill:"#000"}),(0,n.jsx)("rect",{x:"20",y:"8",width:"8",height:"8",fill:"#000"}),(0,n.jsx)("rect",{x:"12",y:"16",width:"8",height:"4",fill:"#000"}),(0,n.jsx)("rect",{x:"8",y:"20",width:"16",height:"8",fill:"#000"}),(0,n.jsx)("rect",{x:"8",y:"28",width:"4",height:"4",fill:"#000"}),(0,n.jsx)("rect",{x:"20",y:"28",width:"4",height:"4",fill:"#000"}),(0,n.jsx)("rect",{x:"0",y:"0",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"8",y:"4",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"24",y:"0",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"28",y:"8",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"0",y:"24",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"})]})}var A=t(8690),D=t(6986);let T=[{label:"Dashboard",href:"/dashboard",icon:(0,n.jsx)(y.Z,{})},{label:"Servers",href:"/servers",icon:(0,n.jsx)(v.Z,{})},{label:"Worlds",href:"/worlds",icon:(0,n.jsx)(k.Z,{})},{label:"Players",href:"/players",icon:(0,n.jsx)(Z.Z,{})},{label:"Audit Log",href:"/audit-logs",icon:(0,n.jsx)(C.Z,{})},{label:"Backups",href:"/backups",icon:(0,n.jsx)(S.Z,{})},{label:"Routing",href:"/routing",icon:(0,n.jsx)(w.Z,{})}],_={label:"Admin",href:"/admin",icon:(0,n.jsx)(P.Z,{})};function E(e){var r;let{mobileOpen:t,onMenuToggle:i}=e,y=(0,s.usePathname)(),{data:v}=(0,D.kP)(),Z=e=>"/dashboard"===e?"/dashboard"===y||"/"===y:y.startsWith(e),w=(null==v?void 0:null===(r=v.user)||void 0===r?void 0:r.role)==="admin"?[...T,_]:T;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.Z,{position:"fixed",elevation:0,sx:{backgroundColor:"background.paper",borderBottom:"1px solid",borderColor:"divider",zIndex:e=>e.zIndex.drawer+1},children:(0,n.jsxs)(c.Z,{sx:{maxWidth:"1400px",width:"100%",mx:"auto",px:{xs:2,sm:3}},children:[(0,n.jsx)(d.Z,{color:"inherit","aria-label":"open menu",edge:"start",onClick:i,sx:{mr:2,display:{md:"none"}},children:(0,n.jsx)(b.Z,{})}),(0,n.jsxs)(l.default,{href:"/",style:{textDecoration:"none",display:"flex",alignItems:"center"},children:[(0,n.jsx)(W,{sx:{fontSize:28,color:"primary.main",mr:1}}),(0,n.jsx)(x.Z,{variant:"h6",component:"span",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,color:"common.white",letterSpacing:"0.05em",fontSize:"1.1rem"},children:"Minecraft Console"})]}),(0,n.jsx)(a.Z,{component:"nav",sx:{display:{xs:"none",md:"flex"},alignItems:"center",gap:1,ml:4,flex:1},children:w.map(e=>{let r=Z(e.href);return(0,n.jsx)(l.default,{href:e.href,style:{textDecoration:"none"},onClick:()=>!r&&(0,A.Av)(),children:(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1,px:2,py:1,borderRadius:2,color:r?"primary.main":"text.secondary",backgroundColor:r?"action.selected":"transparent",transition:"all 0.2s ease","&:hover":{backgroundColor:"action.hover",color:r?"primary.main":"text.primary"}},children:[(0,n.jsx)(a.Z,{component:"span",sx:{display:"flex",alignItems:"center","& svg":{fontSize:20}},children:e.icon}),(0,n.jsx)(x.Z,{variant:"body2",sx:{fontWeight:r?600:400},children:e.label})]})},e.href)})}),(0,n.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:(0,n.jsx)(z.Ie,{})})]})}),(0,n.jsx)(h.ZP,{variant:"temporary",anchor:"left",open:t,onClose:i,ModalProps:{keepMounted:!0},sx:{display:{xs:"block",md:"none"},"& .MuiDrawer-paper":{boxSizing:"border-box",width:280,backgroundColor:"background.paper"}},children:(0,n.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:2,minHeight:64,borderBottom:"1px solid",borderColor:"divider"},children:[(0,n.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,n.jsx)(W,{sx:{fontSize:24,color:"primary.main",mr:1}}),(0,n.jsx)(x.Z,{variant:"h6",component:"span",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,color:"primary.main",letterSpacing:"0.05em",fontSize:"1rem"},children:"Minecraft Console"})]}),(0,n.jsx)(d.Z,{onClick:i,"aria-label":"close menu",children:(0,n.jsx)(j.Z,{})})]}),(0,n.jsx)(m.Z,{sx:{flex:1,px:1,py:2},children:w.map(e=>{let r=Z(e.href);return(0,n.jsx)(u.ZP,{disablePadding:!0,sx:{mb:.5},children:(0,n.jsxs)(p.Z,{component:l.default,href:e.href,onClick:()=>{i(),r||(0,A.Av)()},"aria-current":r?"page":void 0,sx:{borderRadius:2,backgroundColor:r?"action.selected":"transparent","&:hover":{backgroundColor:"action.hover"}},children:[(0,n.jsx)(f.Z,{sx:{color:r?"primary.main":"text.secondary",minWidth:40},children:e.icon}),(0,n.jsx)(g.Z,{primary:e.label,primaryTypographyProps:{fontWeight:r?600:400,color:r?"primary.main":"text.primary"}})]})},e.href)})})]})})]})}var q=t(67337),L=t(41261),M=t(69123),R=t(75845),H=t(43880);function U(e){return(0,n.jsx)(I.Z,{...e,viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M13.983 11.078h2.119a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.119a.185.185 0 00-.185.185v1.888c0 .102.083.185.185.185m-2.954-5.43h2.118a.186.186 0 00.186-.186V3.574a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.186m0 2.716h2.118a.187.187 0 00.186-.186V6.29a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.887c0 .102.082.185.185.186m-2.93 0h2.12a.186.186 0 00.184-.186V6.29a.185.185 0 00-.185-.185H8.1a.185.185 0 00-.185.185v1.887c0 .102.083.185.185.186m-2.964 0h2.119a.186.186 0 00.185-.186V6.29a.185.185 0 00-.185-.185H5.136a.186.186 0 00-.186.185v1.887c0 .102.084.185.186.186m5.893 2.715h2.118a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m-2.93 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.083.185.185.185m-2.964 0h2.119a.185.185 0 00.185-.185V9.006a.185.185 0 00-.184-.186h-2.12a.186.186 0 00-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.082.185.185.185M23.763 9.89c-.065-.051-.672-.51-1.954-.51-.338.001-.676.03-1.01.087-.248-1.7-1.653-2.53-1.716-2.566l-.344-.199-.226.327c-.284.438-.49.922-.612 1.43-.23.97-.09 1.882.403 2.661-.595.332-1.55.413-1.744.42H.751a.751.751 0 00-.75.748 11.376 11.376 0 00.692 4.062c.545 1.428 1.355 2.48 2.41 3.124 1.18.723 3.1 1.137 5.275 1.137.983.003 1.963-.086 2.93-.266a12.248 12.248 0 003.823-1.389c.98-.567 1.86-1.288 2.61-2.136 1.252-1.418 1.998-2.997 2.553-4.4h.221c1.372 0 2.215-.549 2.68-1.009.309-.293.55-.65.707-1.046l.098-.288z"})})}let B=[{title:"Resources",links:[{label:"Getting Started",href:"https://minecraft-server-manager.readthedocs.io/en/latest/getting-started/",external:!0},{label:"Configuration",href:"https://minecraft-server-manager.readthedocs.io/en/latest/configuration/",external:!0},{label:"Troubleshooting",href:"https://minecraft-server-manager.readthedocs.io/en/latest/troubleshooting/",external:!0}]},{title:"Documentation",links:[{label:"CLI Commands",href:"https://minecraft-server-manager.readthedocs.io/en/latest/cli/",external:!0},{label:"API Reference",href:"https://minecraft-server-manager.readthedocs.io/en/latest/console/",external:!0},{label:"itzg Reference",href:"https://minecraft-server-manager.readthedocs.io/en/latest/itzg-reference/",external:!0}]},{title:"Community",links:[{label:"GitHub",href:"https://github.com/smallmiro/minecraft-server-manager",external:!0},{label:"Issues",href:"https://github.com/smallmiro/minecraft-server-manager/issues",external:!0}]},{title:"About",links:[{label:"License",href:"https://github.com/smallmiro/minecraft-server-manager/blob/main/LICENSE",external:!0},{label:"Docker Hub",href:"https://hub.docker.com/r/itzg/minecraft-server",external:!0}]}];function V(){let e=new Date().getFullYear();return(0,n.jsx)(a.Z,{component:"footer",sx:{backgroundColor:"background.paper",borderTop:"1px solid",borderColor:"divider",mt:"auto"},children:(0,n.jsxs)(q.Z,{maxWidth:"lg",sx:{py:6},children:[(0,n.jsx)(a.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"repeat(2, 1fr)",sm:"repeat(4, 1fr)"},gap:4,mb:4},children:B.map(e=>(0,n.jsxs)(a.Z,{children:[(0,n.jsx)(x.Z,{variant:"subtitle2",sx:{fontWeight:600,color:"text.primary",mb:2},children:e.title}),(0,n.jsx)(a.Z,{component:"ul",sx:{listStyle:"none",p:0,m:0},children:e.links.map(e=>(0,n.jsx)(a.Z,{component:"li",sx:{mb:1},children:(0,n.jsx)(L.Z,{href:e.href,target:e.external?"_blank":void 0,rel:e.external?"noopener noreferrer":void 0,underline:"hover",sx:{color:"text.secondary",fontSize:"0.875rem",transition:"color 0.2s ease","&:hover":{color:"primary.main"}},children:e.label})},e.label))})]},e.title))}),(0,n.jsx)(M.Z,{sx:{mb:3}}),(0,n.jsxs)(a.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},justifyContent:"space-between",alignItems:{xs:"flex-start",sm:"center"},gap:2},children:[(0,n.jsxs)(x.Z,{variant:"body2",sx:{color:"text.tertiary"},children:[e," \xa9"," ",(0,n.jsx)(L.Z,{href:"https://github.com/smallmiro/minecraft-server-manager",target:"_blank",rel:"noopener noreferrer",underline:"hover",sx:{color:"primary.main"},children:"Minecraft Server Management Console"})]}),(0,n.jsxs)(a.Z,{sx:{display:"flex",gap:2},children:[(0,n.jsx)(L.Z,{href:"https://github.com/smallmiro/minecraft-server-manager",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",sx:{color:"text.secondary",transition:"color 0.2s ease","&:hover":{color:"text.primary"}},children:(0,n.jsx)(R.Z,{fontSize:"small"})}),(0,n.jsx)(L.Z,{href:"https://minecraft-server-manager.readthedocs.io/",target:"_blank",rel:"noopener noreferrer","aria-label":"Documentation",sx:{color:"text.secondary",transition:"color 0.2s ease","&:hover":{color:"text.primary"}},children:(0,n.jsx)(H.Z,{fontSize:"small"})}),(0,n.jsx)(L.Z,{href:"https://hub.docker.com/r/itzg/minecraft-server",target:"_blank",rel:"noopener noreferrer","aria-label":"Docker Hub",sx:{color:"text.secondary",transition:"color 0.2s ease","&:hover":{color:"text.primary"}},children:(0,n.jsx)(U,{fontSize:"small"})})]})]})]})})}function N(e){let{children:r}=e,[t,s]=(0,i.useState)(!1);return(0,n.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",minHeight:"100vh",backgroundColor:"background.default"},children:[(0,n.jsx)(E,{mobileOpen:t,onMenuToggle:()=>{s(!t)}}),(0,n.jsx)(a.Z,{component:"main",sx:{flexGrow:1,display:"flex",flexDirection:"column",pt:{xs:"".concat(88,"px"),sm:"".concat(96,"px")},pb:{xs:3,sm:4},px:{xs:2,sm:3,md:4},maxWidth:"1400px",width:"100%",mx:"auto"},children:r}),(0,n.jsx)(V,{})]})}},85480:function(e,r,t){"use strict";t.d(r,{U0:function(){return u},WS:function(){return p},Ie:function(){return I}});var n=t(94655),i=t(35106),a=t(7281),s=t(81071),l=t(97436),o=t(52082),c=t(79983),d=t(30417),x=t(36848),h=t(554),m=t(6986);function u(e){let{onSuccess:r}=e,[t,u]=(0,i.useState)(""),[p,f]=(0,i.useState)(""),[g,b]=(0,i.useState)(!1),[j,y]=(0,i.useState)({}),[v,Z]=(0,i.useState)(null),[w,C]=(0,i.useState)(!1),k=()=>{let e={};return t?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)||(e.email="Invalid email address"):e.email="Email is required",p||(e.password="Password is required"),y(e),0===Object.keys(e).length},S=async e=>{if(e.preventDefault(),Z(null),k()){C(!0);try{let e=await m.cg.email({email:t,password:p});if(e.error){Z(e.error.message||"Invalid credentials"),C(!1);return}r&&r()}catch(e){Z("An unexpected error occurred. Please try again."),C(!1)}}};return(0,n.jsxs)(a.Z,{component:"form",onSubmit:S,sx:{display:"flex",flexDirection:"column",gap:2},children:[v&&(0,n.jsx)(s.Z,{severity:"error",onClose:()=>Z(null),children:v}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:t,onChange:e=>u(e.target.value),error:!!j.email,helperText:j.email,disabled:w,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:g?"text":"password",value:p,onChange:e=>f(e.target.value),error:!!j.password,helperText:j.password,disabled:w,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(c.Z,{"aria-label":"toggle password visibility",onClick:()=>{b(!g)},edge:"end",children:g?(0,n.jsx)(x.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:w,fullWidth:!0,size:"large",children:w?"Signing in...":"Sign In"})]})}function p(e){let{onSuccess:r}=e,[t,u]=(0,i.useState)(""),[p,f]=(0,i.useState)(""),[g,b]=(0,i.useState)(""),[j,y]=(0,i.useState)(""),[v,Z]=(0,i.useState)(!1),[w,C]=(0,i.useState)(!1),[k,S]=(0,i.useState)({}),[P,z]=(0,i.useState)(null),[I,W]=(0,i.useState)(!1),A=()=>{let e={};return t||(e.name="Name is required"),p?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(p)||(e.email="Invalid email address"):e.email="Email is required",g?g.length<8&&(e.password="Password must be at least 8 characters"):e.password="Password is required",j?g!==j&&(e.confirmPassword="Passwords do not match"):e.confirmPassword="Please confirm your password",S(e),0===Object.keys(e).length},D=async e=>{if(e.preventDefault(),z(null),A()){W(!0);try{let e=await m.y1.email({email:p,password:g,name:t});if(e.error){z(e.error.message||"Registration failed"),W(!1);return}r&&r()}catch(e){z("An unexpected error occurred. Please try again."),W(!1)}}};return(0,n.jsxs)(a.Z,{component:"form",onSubmit:D,sx:{display:"flex",flexDirection:"column",gap:2},children:[P&&(0,n.jsx)(s.Z,{severity:"error",onClose:()=>z(null),children:P}),(0,n.jsx)(l.Z,{label:"Name",type:"text",value:t,onChange:e=>u(e.target.value),error:!!k.name,helperText:k.name,disabled:I,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:p,onChange:e=>f(e.target.value),error:!!k.email,helperText:k.email,disabled:I,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:v?"text":"password",value:g,onChange:e=>b(e.target.value),error:!!k.password,helperText:k.password,disabled:I,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(c.Z,{"aria-label":"toggle password visibility",onClick:()=>{Z(!v)},edge:"end",children:v?(0,n.jsx)(x.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(l.Z,{label:"Confirm Password",type:w?"text":"password",value:j,onChange:e=>y(e.target.value),error:!!k.confirmPassword,helperText:k.confirmPassword,disabled:I,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(c.Z,{"aria-label":"toggle password visibility",onClick:()=>{C(!w)},edge:"end",children:w?(0,n.jsx)(x.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:I,fullWidth:!0,size:"large",children:I?"Creating account...":"Sign Up"})]})}var f=t(74228),g=t(93017),b=t(86702),j=t(35694),y=t(31317),v=t(25333),Z=t(69123),w=t(7178),C=t(17820),k=t(73424),S=t(92710),P=t(41094),z=t(78319);function I(){let e=(0,f.useRouter)(),{data:r,isPending:t}=(0,m.kP)(),[s,l]=(0,i.useState)(null),o=()=>{l(null)},x=async()=>{o(),await (0,m.w7)(),e.push("/login")};if(t)return(0,n.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:(0,n.jsx)(g.Z,{size:24})});if(!(null==r?void 0:r.user))return(0,n.jsx)(d.Z,{variant:"contained",color:"primary",onClick:()=>{e.push("/login")},children:"Sign In"});let{user:h}=r,u=((e,r)=>{if(e){let r=e.split(" ");return r.length>=2?"".concat(r[0][0]).concat(r[1][0]).toUpperCase():e.substring(0,2).toUpperCase()}return r?r[0].toUpperCase():"?"})(h.name,h.email);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.Z,{onClick:e=>{l(e.currentTarget)},"aria-label":"user menu",children:(0,n.jsx)(b.Z,{sx:{bgcolor:"primary.main"},children:u})}),(0,n.jsxs)(j.Z,{anchorEl:s,open:!!s,onClose:o,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},sx:{mt:1},children:[(0,n.jsxs)(a.Z,{sx:{px:2,py:1.5,minWidth:200},children:[(0,n.jsx)(y.Z,{variant:"subtitle1",fontWeight:"600",children:h.name||"User"}),(0,n.jsx)(y.Z,{variant:"body2",color:"text.secondary",children:h.email}),"admin"===h.role&&(0,n.jsx)(v.Z,{label:"Admin",size:"small",color:"primary",sx:{mt:1}})]}),(0,n.jsx)(Z.Z,{}),"admin"===h.role&&(0,n.jsxs)(w.Z,{onClick:()=>{o(),e.push("/admin")},children:[(0,n.jsx)(C.Z,{children:(0,n.jsx)(S.Z,{fontSize:"small"})}),(0,n.jsx)(k.Z,{children:"Admin Panel"})]}),(0,n.jsxs)(w.Z,{onClick:()=>{o(),e.push("/settings")},children:[(0,n.jsx)(C.Z,{children:(0,n.jsx)(P.Z,{fontSize:"small"})}),(0,n.jsx)(k.Z,{children:"Settings"})]}),(0,n.jsxs)(w.Z,{onClick:x,children:[(0,n.jsx)(C.Z,{children:(0,n.jsx)(z.Z,{fontSize:"small"})}),(0,n.jsx)(k.Z,{children:"Logout"})]})]})]})}},3454:function(e,r,t){"use strict";t.d(r,{LoadingProvider:function(){return o},startLoading:function(){return c},stopLoading:function(){return d}});var n=t(94655),i=t(35106),a=t(74228),s=t(31477),l=t.n(s);function o(e){let{children:r}=e,t=(0,a.usePathname)(),s=(0,a.useSearchParams)();return(0,i.useEffect)(()=>{l().done()},[t,s]),(0,n.jsx)(n.Fragment,{children:r})}function c(){l().start()}function d(){l().done()}l().configure({showSpinner:!1,speed:300,minimum:.1})},8690:function(e,r,t){"use strict";t.d(r,{Av:function(){return n.startLoading}});var n=t(3454)},6986:function(e,r,t){"use strict";t.d(r,{Cp:function(){return h},Nq:function(){return x},cg:function(){return l},kP:function(){return d},w7:function(){return o},y1:function(){return c},zB:function(){return m}});var n=t(77054),i=t(61648),a=t(35016);let s=(0,n.X)({baseURL:a.env.NEXT_PUBLIC_BETTER_AUTH_URL||"",plugins:[(0,i.zB)()]}),{signIn:l,signOut:o,signUp:c,useSession:d,updateUser:x,changePassword:h}=s,m=s.admin}},function(e){e.O(0,[6812,9760,6758,680,1668,7436,1071,2542,55,6857,8347,1544,765,8918,9485,3669,2757,1744],function(){return e(e.s=16387)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[781],{31809:function(e,n,r){Promise.resolve().then(r.bind(r,38538))},38538:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return ed}});var t=r(94655),a=r(35106),s=r(7281),l=r(31317),o=r(84840),i=r(33402),c=r(60097),d=r(29793),u=r(75726),h=r(62328),y=r(7178),p=r(69899),x=r(76492),m=r(35847),v=r(628),j=r(41565),f=r(90158),Z=r(58347),b=r(73424),g=r(69783),C=r(86702),S=r(79983),w=r(30417),k=r(25333),E=r(99770),F=r(62508),I=r(5682),P=r(65087),O=r(76678),q=r(97436),D=r(93017),N=r(81071),L=r(66561),R=r(12795),K=r(96407),T=r(69366),U=r(11597),A=r(81960),W=r(30114);function Q(e){let{onPlayerKicked:n}=e,[r,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(!1),[p,x]=(0,a.useState)(null),[m,Q]=(0,a.useState)(""),[B,z]=(0,a.useState)(!1),J=(0,a.useCallback)(async()=>{o(!0),c(null);try{let e=await fetch("/api/players");if(!e.ok)throw Error("Failed to fetch players");let n=await e.json();u(n.servers)}catch(e){c("Failed to load players"),console.error("Error fetching players:",e)}finally{o(!1)}},[]);(0,a.useEffect)(()=>{J()},[J]);let M=(e,n)=>{x({player:e,server:n}),Q(""),y(!0)},_=async()=>{if(p){z(!0);try{if(!(await fetch("/api/players/kick",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:p.player.name,server:p.server,reason:m||"Kicked by administrator"})})).ok)throw Error("Failed to kick player");y(!1),x(null),null==n||n(p.player,p.server),await J()}catch(e){console.error("Error kicking player:",e)}finally{z(!1)}}},H=d.some(e=>e.players.length>0);return(0,t.jsx)(v.Z,{"data-testid":"player-list",children:(0,t.jsxs)(j.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,t.jsx)(l.Z,{variant:"h6",children:"Online Players"}),(0,t.jsx)(S.Z,{onClick:J,disabled:r,"aria-label":"Refresh",children:(0,t.jsx)(T.Z,{})})]}),r&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(D.Z,{})}),i&&(0,t.jsx)(N.Z,{severity:"error",sx:{mb:2},children:i}),!r&&!i&&!H&&(0,t.jsx)(l.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No players online"}),!r&&!i&&H&&(0,t.jsx)(s.Z,{children:d.map(e=>(0,t.jsxs)(L.Z,{defaultExpanded:e.players.length>0,children:[(0,t.jsx)(R.Z,{expandIcon:(0,t.jsx)(A.Z,{}),children:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:2,width:"100%"},children:[(0,t.jsx)(l.Z,{variant:"subtitle1",sx:{fontWeight:500},children:e.name}),(0,t.jsx)(k.Z,{label:"".concat(e.players.length," player").concat(1!==e.players.length?"s":""),size:"small",color:e.players.length>0?"success":"default"})]})}),(0,t.jsx)(K.Z,{children:0===e.players.length?(0,t.jsx)(l.Z,{color:"text.secondary",sx:{fontStyle:"italic"},children:"No players online on this server"}):(0,t.jsx)(f.Z,{dense:!0,children:e.players.map(n=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(S.Z,{edge:"end","aria-label":"Kick player",onClick:()=>M(n,e.name),color:"error",children:(0,t.jsx)(U.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:"https://mc-heads.net/avatar/".concat(n.uuid,"/40"),alt:n.name,children:(0,t.jsx)(W.Z,{})})}),(0,t.jsx)(b.Z,{primary:n.name,secondary:n.uuid.substring(0,8)+"..."})]},n.uuid))})})]},e.name))}),(0,t.jsxs)(E.Z,{open:h,onClose:()=>y(!1),children:[(0,t.jsx)(F.Z,{children:"Kick Player"}),(0,t.jsxs)(I.Z,{children:[(0,t.jsxs)(P.Z,{children:["Are you sure you want to kick ",null==p?void 0:p.player.name," from ",null==p?void 0:p.server,"?"]}),(0,t.jsx)(q.Z,{autoFocus:!0,margin:"dense",label:"Reason (optional)",fullWidth:!0,variant:"outlined",value:m,onChange:e=>Q(e.target.value),placeholder:"Kicked by administrator"})]}),(0,t.jsxs)(O.Z,{children:[(0,t.jsx)(w.Z,{onClick:()=>y(!1),disabled:B,children:"Cancel"}),(0,t.jsx)(w.Z,{onClick:_,color:"error",variant:"contained",disabled:B,"aria-label":"Confirm kick",children:B?(0,t.jsx)(D.Z,{size:20}):"Confirm"})]})]})]})})}var B=r(70115),z=r(21111),J=r(47606);function M(e){let{serverName:n}=e,[r,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(),[p,x]=(0,a.useState)(""),[m,k]=(0,a.useState)(!1),[E,F]=(0,a.useState)(null),I=(0,a.useCallback)(async()=>{o(!0),c(null);try{let e=await fetch("/api/players/whitelist?server=".concat(encodeURIComponent(n)));if(!e.ok)throw Error("Failed to fetch whitelist");let r=await e.json();u(r.players),y(r.source)}catch(e){c("Failed to load whitelist"),console.error("Error fetching whitelist:",e)}finally{o(!1)}},[n]);(0,a.useEffect)(()=>{I()},[I]);let P=async()=>{if(p.trim()){k(!0),c(null);try{if(!(await fetch("/api/players/whitelist",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:p.trim(),server:n})})).ok)throw Error("Failed to add player");x(""),await I()}catch(e){c("Failed to add player to whitelist"),console.error("Error adding player:",e)}finally{k(!1)}}},O=async e=>{F(e),c(null);try{if(!(await fetch("/api/players/whitelist?player=".concat(encodeURIComponent(e),"&server=").concat(encodeURIComponent(n)),{method:"DELETE"})).ok)throw Error("Failed to remove player");await I()}catch(e){c("Failed to remove player from whitelist"),console.error("Error removing player:",e)}finally{F(null)}};return(0,t.jsx)(v.Z,{"data-testid":"whitelist-manager",children:(0,t.jsxs)(j.Z,{children:[(0,t.jsx)(l.Z,{variant:"h6",gutterBottom:!0,children:"Whitelist"}),i&&(0,t.jsx)(N.Z,{severity:"error",sx:{mb:2},children:i}),!r&&h&&"rcon"!==h&&(0,t.jsxs)(N.Z,{severity:"info",sx:{mb:2},children:["Server is offline. Showing data from ","config"===h?"config.env":"whitelist.json",". Changes will apply on next server start."]}),(0,t.jsxs)(B.Z,{direction:"row",spacing:1,sx:{mb:2},children:[(0,t.jsx)(q.Z,{size:"small",placeholder:"Player name",value:p,onChange:e=>x(e.target.value),onKeyDown:e=>{"Enter"===e.key&&P()},disabled:m,fullWidth:!0}),(0,t.jsx)(w.Z,{variant:"contained",onClick:P,disabled:!p.trim()||m,startIcon:m?(0,t.jsx)(D.Z,{size:16}):(0,t.jsx)(J.Z,{}),"aria-label":"Add player to whitelist",children:"Add"})]}),r&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(D.Z,{})}),!r&&0===d.length&&(0,t.jsx)(l.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No players whitelisted"}),!r&&d.length>0&&(0,t.jsx)(f.Z,{dense:!0,children:d.map(e=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(S.Z,{edge:"end","aria-label":"Remove from whitelist",onClick:()=>O(e.name),disabled:E===e.name,color:"error",children:E===e.name?(0,t.jsx)(D.Z,{size:20}):(0,t.jsx)(z.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:e.uuid?"https://mc-heads.net/avatar/".concat(e.uuid,"/40"):void 0,alt:e.name,children:(0,t.jsx)(W.Z,{})})}),(0,t.jsx)(b.Z,{primary:e.name,secondary:e.uuid?e.uuid.substring(0,8)+"...":"UUID not available"})]},e.uuid||e.name))})]})})}var _=r(35694),H=r(37809),$=r(407),G=r(45813);let Y={1:{color:"info",label:"Moderator",icon:"\uD83D\uDEE1️"},2:{color:"success",label:"Gamemaster",icon:"\uD83C\uDFAE"},3:{color:"warning",label:"Admin",icon:"⚙️"},4:{color:"error",label:"Owner",icon:"\uD83D\uDC51"}};function V(e){let{level:n,showIcon:r=!1,compact:a=!1,size:l="medium",variant:o="filled"}=e,i=Y[n];if(!i)return null;let c=a?n.toString():"Level ".concat(n," - ").concat(i.label),d=r?(0,t.jsx)(s.Z,{component:"span",sx:{mr:.5},children:i.icon}):void 0;return(0,t.jsx)(k.Z,{label:(0,t.jsxs)(t.Fragment,{children:[d,c]}),color:i.color,size:l,variant:o})}var X=r(68038),ee=r(34080),en=r(40064),er=r(39181);let et=[{value:1,label:"Level 1 - Moderator",description:"Bypass spawn protection",icon:"\uD83D\uDEE1️"},{value:2,label:"Level 2 - Gamemaster",description:"Cheats, command blocks",icon:"\uD83C\uDFAE"},{value:3,label:"Level 3 - Admin",description:"Player management commands",icon:"⚙️"},{value:4,label:"Level 4 - Owner",description:"Full server control",icon:"\uD83D\uDC51"}];function ea(e){let{value:n,onChange:r,label:a,disabled:o=!1}=e;return(0,t.jsxs)(d.Z,{component:"fieldset",fullWidth:!0,disabled:o,children:[a&&(0,t.jsx)(X.Z,{component:"legend",sx:{mb:1},children:a}),(0,t.jsx)(ee.Z,{value:n,onChange:e=>{r(parseInt(e.target.value,10))},children:et.map(e=>(0,t.jsx)(en.Z,{value:e.value,control:(0,t.jsx)(er.Z,{}),label:(0,t.jsxs)(s.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,t.jsx)(l.Z,{component:"span",children:e.icon}),(0,t.jsx)(l.Z,{component:"span",fontWeight:"medium",children:e.label})]}),(0,t.jsx)(l.Z,{variant:"body2",color:"text.secondary",sx:{ml:4},children:e.description})]}),sx:{alignItems:"flex-start",py:1}},e.value))})]})}function es(e){let{serverName:n}=e,[r,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,p]=(0,a.useState)(),[x,m]=(0,a.useState)(""),[k,P]=(0,a.useState)(!1),[L,R]=(0,a.useState)(null),[K,T]=(0,a.useState)(!1),[U,A]=(0,a.useState)(4),[W,Q]=(0,a.useState)(!1),[B,M]=(0,a.useState)(null),[Y,X]=(0,a.useState)(4),[ee,en]=(0,a.useState)(!1),[er,et]=(0,a.useState)(null),[es,el]=(0,a.useState)(null),eo=(0,a.useCallback)(async()=>{o(!0),c(null);try{let e=await fetch("/api/players/op?server=".concat(encodeURIComponent(n)));if(!e.ok)throw Error("Failed to fetch operators");let r=await e.json();u(r.operators),p(r.source)}catch(e){c("Failed to load operators"),console.error("Error fetching operators:",e)}finally{o(!1)}},[n]);(0,a.useEffect)(()=>{eo()},[eo]);let ei=async()=>{if(x.trim()){P(!0),c(null);try{if(!(await fetch("/api/players/op",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:x.trim(),server:n,level:U})})).ok)throw Error("Failed to add operator");m(""),A(4),T(!1),await eo()}catch(e){c("Failed to add operator"),console.error("Error adding operator:",e)}finally{P(!1)}}},ec=async e=>{R(e),c(null),et(null),el(null);try{if(!(await fetch("/api/players/op?player=".concat(encodeURIComponent(e),"&server=").concat(encodeURIComponent(n)),{method:"DELETE"})).ok)throw Error("Failed to remove operator");await eo()}catch(e){c("Failed to remove operator"),console.error("Error removing operator:",e)}finally{R(null)}},ed=async()=>{if(B){en(!0),c(null);try{if(!(await fetch("/api/players/op/".concat(encodeURIComponent(B.name),"?server=").concat(encodeURIComponent(n)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:Y})})).ok)throw Error("Failed to change operator level");Q(!1),M(null),await eo()}catch(e){c("Failed to change operator level"),console.error("Error changing operator level:",e)}finally{en(!1)}}},eu=(e,n)=>{et(e.currentTarget),el(n)},eh=()=>{et(null),el(null)};return(0,t.jsxs)(v.Z,{"data-testid":"op-manager",children:[(0,t.jsxs)(j.Z,{children:[(0,t.jsx)(l.Z,{variant:"h6",gutterBottom:!0,children:"Operators"}),i&&(0,t.jsx)(N.Z,{severity:"error",sx:{mb:2},children:i}),!r&&h&&"rcon"!==h&&(0,t.jsxs)(N.Z,{severity:"info",sx:{mb:2},children:["Server is offline. Showing data from ","config"===h?"config.env":"ops.json",". Changes will apply on next server start."]}),(0,t.jsx)(s.Z,{sx:{mb:2},children:(0,t.jsx)(w.Z,{variant:"contained",onClick:()=>T(!0),startIcon:(0,t.jsx)(J.Z,{}),"aria-label":"Add operator",fullWidth:!0,children:"Add Operator"})}),r&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(D.Z,{})}),!r&&0===d.length&&(0,t.jsx)(l.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No operators configured"}),!r&&d.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.Z,{dense:!0,children:d.map(e=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(S.Z,{edge:"end","aria-label":"Operator actions",onClick:n=>eu(n,e),disabled:L===e.name,children:L===e.name?(0,t.jsx)(D.Z,{size:20}):(0,t.jsx)(H.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:e.uuid?"https://mc-heads.net/avatar/".concat(e.uuid,"/40"):void 0,alt:e.name,sx:{bgcolor:"warning.main"},children:(0,t.jsx)($.Z,{})})}),(0,t.jsx)(b.Z,{primary:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap"},children:[(0,t.jsx)(l.Z,{component:"span",children:e.name}),(0,t.jsx)(V,{level:e.level,showIcon:!0,size:"small"})]}),secondary:e.uuid?e.uuid.substring(0,8)+"...":"UUID not available"})]},e.uuid||e.name))}),(0,t.jsxs)(_.Z,{anchorEl:er,open:!!er,onClose:eh,children:[(0,t.jsxs)(y.Z,{onClick:()=>{es&&(M(es),X(es.level),Q(!0),eh())},children:[(0,t.jsx)(G.Z,{sx:{mr:1},fontSize:"small"}),"Change Level"]}),(0,t.jsxs)(y.Z,{onClick:()=>es&&ec(es.name),children:[(0,t.jsx)(z.Z,{sx:{mr:1},fontSize:"small",color:"error"}),"Remove OP"]})]})]})]}),(0,t.jsxs)(E.Z,{open:K,onClose:()=>!k&&T(!1),maxWidth:"sm",fullWidth:!0,children:[(0,t.jsx)(F.Z,{children:"Add Operator"}),(0,t.jsxs)(I.Z,{children:[(0,t.jsx)(q.Z,{autoFocus:!0,margin:"dense",label:"Player Name",placeholder:"Enter player name",fullWidth:!0,value:x,onChange:e=>m(e.target.value),disabled:k,sx:{mb:2}}),(0,t.jsx)(ea,{value:U,onChange:A,label:"OP Level",disabled:k})]}),(0,t.jsxs)(O.Z,{children:[(0,t.jsx)(w.Z,{onClick:()=>T(!1),disabled:k,children:"Cancel"}),(0,t.jsx)(w.Z,{variant:"contained",onClick:ei,disabled:!x.trim()||k,startIcon:k?(0,t.jsx)(D.Z,{size:16}):void 0,children:k?"Adding...":"Add OP"})]})]}),(0,t.jsxs)(E.Z,{open:W,onClose:()=>!ee&&Q(!1),maxWidth:"sm",fullWidth:!0,children:[(0,t.jsxs)(F.Z,{children:["Change OP Level - ",null==B?void 0:B.name]}),(0,t.jsx)(I.Z,{children:B&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(l.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:["Current: Level ",B.level," (",B.role,")"]}),(0,t.jsx)(ea,{value:Y,onChange:X,label:"New Level",disabled:ee})]})}),(0,t.jsxs)(O.Z,{children:[(0,t.jsx)(w.Z,{onClick:()=>Q(!1),disabled:ee,children:"Cancel"}),(0,t.jsx)(w.Z,{variant:"contained",onClick:ed,disabled:ee||Y===(null==B?void 0:B.level),startIcon:ee?(0,t.jsx)(D.Z,{size:16}):void 0,children:ee?"Saving...":"Save Changes"})]})]})]})}var el=r(397);function eo(e){let{serverName:n}=e,[r,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(),[p,x]=(0,a.useState)(!1),[m,k]=(0,a.useState)({player:"",reason:""}),[P,L]=(0,a.useState)(!1),[R,K]=(0,a.useState)(null),T=(0,a.useCallback)(async()=>{o(!0),c(null);try{let e=await fetch("/api/players/ban?server=".concat(encodeURIComponent(n)));if(!e.ok)throw Error("Failed to fetch bans");let r=await e.json();u(r.players),y(r.source)}catch(e){c("Failed to load ban list"),console.error("Error fetching bans:",e)}finally{o(!1)}},[n]);(0,a.useEffect)(()=>{T()},[T]);let U=()=>{x(!1),k({player:"",reason:""})},A=async()=>{if(m.player.trim()){L(!0),c(null);try{if(!(await fetch("/api/players/ban",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:m.player.trim(),reason:m.reason.trim()||"Banned by administrator",server:n})})).ok)throw Error("Failed to ban player");U(),await T()}catch(e){c("Failed to ban player"),console.error("Error banning player:",e)}finally{L(!1)}}},Q=async e=>{K(e),c(null);try{if(!(await fetch("/api/players/ban?player=".concat(encodeURIComponent(e),"&server=").concat(encodeURIComponent(n)),{method:"DELETE"})).ok)throw Error("Failed to unban player");await T()}catch(e){c("Failed to unban player"),console.error("Error unbanning player:",e)}finally{K(null)}},J=e=>{try{return new Date(e).toLocaleDateString()}catch(n){return e}};return(0,t.jsx)(v.Z,{"data-testid":"ban-manager",children:(0,t.jsxs)(j.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,t.jsx)(l.Z,{variant:"h6",children:"Ban List"}),(0,t.jsx)(w.Z,{variant:"outlined",color:"error",startIcon:(0,t.jsx)(el.Z,{}),onClick:()=>{k({player:"",reason:""}),x(!0)},"aria-label":"Ban player",children:"Ban Player"})]}),i&&(0,t.jsx)(N.Z,{severity:"error",sx:{mb:2},children:i}),!r&&h&&"rcon"!==h&&(0,t.jsxs)(N.Z,{severity:"info",sx:{mb:2},children:["Server is offline. Showing data from ","config"===h?"config.env":"banned-players.json",". Changes will apply on next server start."]}),r&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(D.Z,{})}),!r&&0===d.length&&(0,t.jsx)(l.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No players banned"}),!r&&d.length>0&&(0,t.jsx)(f.Z,{dense:!0,children:d.map(e=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(S.Z,{edge:"end","aria-label":"Unban player",onClick:()=>Q(e.name),disabled:R===e.name,color:"success",children:R===e.name?(0,t.jsx)(D.Z,{size:20}):(0,t.jsx)(z.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:e.uuid?"https://mc-heads.net/avatar/".concat(e.uuid,"/40"):void 0,alt:e.name,sx:{bgcolor:"error.main"},children:(0,t.jsx)(W.Z,{})})}),(0,t.jsx)(b.Z,{primary:e.name,secondary:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(l.Z,{component:"span",variant:"body2",color:"text.secondary",children:["Reason: ",e.reason||"No reason specified"]}),(0,t.jsx)("br",{}),(0,t.jsxs)(l.Z,{component:"span",variant:"caption",color:"text.secondary",children:["Banned: ",J(e.created)," by ",e.source||"Unknown"]})]})})]},e.uuid||e.name))}),(0,t.jsxs)(E.Z,{open:p,onClose:U,maxWidth:"sm",fullWidth:!0,children:[(0,t.jsx)(F.Z,{children:"Ban Player"}),(0,t.jsx)(I.Z,{children:(0,t.jsxs)(B.Z,{spacing:2,sx:{mt:1},children:[(0,t.jsx)(q.Z,{label:"Player Name",placeholder:"Enter player name",value:m.player,onChange:e=>k({...m,player:e.target.value}),fullWidth:!0,required:!0}),(0,t.jsx)(q.Z,{label:"Reason",placeholder:"Banned by administrator",value:m.reason,onChange:e=>k({...m,reason:e.target.value}),fullWidth:!0,multiline:!0,rows:2})]})}),(0,t.jsxs)(O.Z,{children:[(0,t.jsx)(w.Z,{onClick:U,disabled:P,children:"Cancel"}),(0,t.jsx)(w.Z,{onClick:A,color:"error",variant:"contained",disabled:!m.player.trim()||P,startIcon:P?(0,t.jsx)(D.Z,{size:16}):(0,t.jsx)(el.Z,{}),children:"Ban"})]})]})]})})}var ei=r(92666);function ec(e){let{children:n,value:r,index:a}=e;return(0,t.jsx)("div",{role:"tabpanel",hidden:r!==a,children:r===a&&(0,t.jsx)(s.Z,{sx:{py:3},children:n})})}function ed(){let[e,n]=(0,a.useState)(0),[r,v]=(0,a.useState)(""),{data:j,isLoading:f}=(0,ei.x$)(),Z=null==j?void 0:j.servers;return(0,a.useEffect)(()=>{!r&&Z&&Z.length>0&&v(Z[0].name)},[Z,r]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,x.Fq)(e.palette.info.main,.1)," 0%, ").concat((0,x.Fq)(e.palette.secondary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,x.Fq)(e.palette.info.main,.2))},children:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,t.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"info.main",color:"info.contrastText"},children:(0,t.jsx)(m.Z,{sx:{fontSize:32}})}),(0,t.jsxs)(s.Z,{children:[(0,t.jsx)(l.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Player Management"}),(0,t.jsx)(l.Z,{variant:"body1",color:"text.secondary",children:"Manage players, whitelist, operators, and bans across your servers"})]})]})}),(0,t.jsx)(s.Z,{sx:{mb:3},children:(0,t.jsxs)(d.Z,{sx:{minWidth:200},children:[(0,t.jsx)(u.Z,{id:"server-select-label",children:"Server"}),(0,t.jsx)(h.Z,{labelId:"server-select-label",value:r,label:"Server",onChange:e=>v(e.target.value),disabled:f,children:null==Z?void 0:Z.map(e=>(0,t.jsx)(y.Z,{value:e.name,children:e.name},e.name))})]})}),(0,t.jsx)(s.Z,{sx:{borderBottom:1,borderColor:"divider"},children:(0,t.jsxs)(i.Z,{value:e,onChange:(e,r)=>{n(r)},"aria-label":"Player management tabs",children:[(0,t.jsx)(c.Z,{label:"Online Players"}),(0,t.jsx)(c.Z,{label:"Whitelist",disabled:!r}),(0,t.jsx)(c.Z,{label:"Operators",disabled:!r}),(0,t.jsx)(c.Z,{label:"Ban List",disabled:!r})]})}),(0,t.jsx)(ec,{value:e,index:0,children:(0,t.jsx)(Q,{})}),(0,t.jsx)(ec,{value:e,index:1,children:r&&(0,t.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(o.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(M,{serverName:r})}),(0,t.jsx)(o.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{p:2,bgcolor:"background.paper",borderRadius:1},children:[(0,t.jsx)(l.Z,{variant:"subtitle2",color:"text.secondary",gutterBottom:!0,children:"About Whitelist"}),(0,t.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"The whitelist controls which players can join your server. When enabled, only players on the whitelist can connect. Add players by their Minecraft username."})]})})]})}),(0,t.jsx)(ec,{value:e,index:2,children:r&&(0,t.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(o.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(es,{serverName:r})}),(0,t.jsx)(o.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{p:2,bgcolor:"background.paper",borderRadius:1},children:[(0,t.jsx)(l.Z,{variant:"subtitle2",color:"text.secondary",gutterBottom:!0,children:"About Operators"}),(0,t.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"Operators (OPs) have elevated permissions on the server. They can use commands like /give, /gamemode, /tp, and more. OP levels range from 1-4, with 4 being the highest."}),(0,t.jsxs)(s.Z,{sx:{mt:2},children:[(0,t.jsx)(l.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 1: Can bypass spawn protection"}),(0,t.jsx)(l.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 2: Can use /clear, /gamemode, etc."}),(0,t.jsx)(l.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 3: Can use /ban, /kick, /op, etc."}),(0,t.jsx)(l.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 4: Can use /stop, full access"})]})]})})]})}),(0,t.jsx)(ec,{value:e,index:3,children:r&&(0,t.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(o.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(eo,{serverName:r})}),(0,t.jsx)(o.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{p:2,bgcolor:"background.paper",borderRadius:1},children:[(0,t.jsx)(l.Z,{variant:"subtitle2",color:"text.secondary",gutterBottom:!0,children:"About Bans"}),(0,t.jsx)(l.Z,{variant:"body2",color:"text.secondary",children:"Banned players cannot connect to your server. You can ban players by username and provide an optional reason. Bans can be removed (pardoned) at any time."})]})})]})})]})}},42936:function(e,n,r){"use strict";async function t(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={...n.headers};n.body&&(r["Content-Type"]="application/json");let t=await fetch(e,{...n,headers:r});if(!t.ok){let e=await t.json().catch(()=>({error:"UnknownError",message:t.statusText})),n=Error(e.message);throw n.statusCode=t.status,n.code=e.error,n}return t.json()}r.d(n,{SC:function(){return t}})},92666:function(e,n,r){"use strict";r.d(n,{$t:function(){return C},Aw:function(){return u},Fv:function(){return v},Hq:function(){return c},Hy:function(){return i},MH:function(){return f},Sr:function(){return y},_I:function(){return h},c5:function(){return S},g2:function(){return m},gx:function(){return Z},hy:function(){return p},iC:function(){return j},jM:function(){return d},mj:function(){return g},nq:function(){return x},nv:function(){return b},s8:function(){return w},x$:function(){return o}});var t=r(5632),a=r(58919),s=r(20367),l=r(42936);function o(){return(0,t.a)({queryKey:["servers"],queryFn:()=>(0,l.SC)("/api/servers"),refetchInterval:6e4})}function i(e,n){return(0,t.a)({queryKey:["servers",e],queryFn:()=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e))),enabled:(null==n?void 0:n.enabled)!==!1&&!!e,refetchInterval:3e4})}function c(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{name:n,force:r}=e;return(0,l.SC)("/api/servers/".concat(encodeURIComponent(n)).concat(r?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["servers"]})}})}function d(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/start"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function u(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/stop"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function h(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/restart"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function y(){return(0,t.a)({queryKey:["worlds"],queryFn:()=>(0,l.SC)("/api/worlds"),refetchInterval:3e4})}function p(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/worlds",{method:"POST",body:JSON.stringify(e)}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function x(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{worldName:n,serverName:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n),"/assign"),{method:"POST",body:JSON.stringify({serverName:r})})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}function m(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{worldName:n,force:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n),"/release").concat(r?"?force=true":""),{method:"POST"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function v(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{name:n,force:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n)).concat(r?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function j(e,n){return(0,t.a)({queryKey:["servers",e,"config"],queryFn:()=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/config")),enabled:(null==n?void 0:n.enabled)!==!1&&!!e})}function f(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{serverName:n,config:r}=e;return(0,l.SC)("/api/servers/".concat(encodeURIComponent(n),"/config"),{method:"PATCH",body:JSON.stringify(r)})},onSuccess:(n,r)=>{let{serverName:t}=r;e.invalidateQueries({queryKey:["servers",t,"config"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function Z(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/world/reset"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers",r]}),e.invalidateQueries({queryKey:["worlds"]})}})}function b(){return(0,t.a)({queryKey:["router-status"],queryFn:()=>(0,l.SC)("/api/router/status"),refetchInterval:3e4})}function g(){return(0,t.a)({queryKey:["backup-status"],queryFn:()=>(0,l.SC)("/api/backup"),refetchInterval:6e4})}function C(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20;return(0,t.a)({queryKey:["backup-history",e],queryFn:()=>(0,l.SC)("/api/backup/history?limit=".concat(e)),refetchInterval:6e4})}function S(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{message:n}=e;return(0,l.SC)("/api/backup",{method:"POST",body:JSON.stringify({message:n})})},onSuccess:()=>{e.invalidateQueries({queryKey:["backup-status"]}),e.invalidateQueries({queryKey:["backup-history"]})}})}function w(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,l.SC)("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}}},function(e){e.O(0,[6812,9760,6758,680,1668,7436,1071,540,4416,7073,880,6857,8347,1658,5381,4474,787,7782,3669,2757,1744],function(){return e(e.s=31809)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7701],{6199:function(e,n,r){Promise.resolve().then(r.bind(r,36405))},33104:function(e,n,r){"use strict";var t=r(8091);n.Z=void 0;var s=t(r(66758)),i=r(94655);n.Z=(0,s.default)([(0,i.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"},"0"),(0,i.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")],"AccessTime")},21111:function(e,n,r){"use strict";var t=r(8091);n.Z=void 0;var s=t(r(66758)),i=r(94655);n.Z=(0,s.default)((0,i.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete")},97812:function(e,n,r){"use strict";var t=r(8091);n.Z=void 0;var s=t(r(66758)),i=r(94655);n.Z=(0,s.default)((0,i.jsx)("path",{d:"M17 7h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1 0 1.43-.98 2.63-2.31 2.98l1.46 1.46C20.88 15.61 22 13.95 22 12c0-2.76-2.24-5-5-5m-1 4h-2.19l2 2H16zM2 4.27l3.11 3.11C3.29 8.12 2 9.91 2 12c0 2.76 2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1 0-1.59 1.21-2.9 2.76-3.07L8.73 11H8v2h2.73L13 15.27V17h1.73l4.01 4L20 19.74 3.27 3z"}),"LinkOff")},84974:function(e,n,r){"use strict";var t=r(8091);n.Z=void 0;var s=t(r(66758)),i=r(94655);n.Z=(0,s.default)((0,i.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39"}),"Public")},36405:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return E}});var t=r(94655),s=r(35106),i=r(7281),l=r(30417),o=r(81071),a=r(93017),c=r(69899),d=r(31317),u=r(99770),x=r(62508),h=r(5682),m=r(76678),f=r(97436),v=r(76492),y=r(32366),p=r(84974),j=r(84840),g=r(52082),Z=r(89923),b=r(10297),S=r(42431),C=r(628),w=r(41565),k=r(25935),q=r(79983),I=r(25333),F=r(95511),L=r(96292),D=r(97812),K=r(21111),N=r(78067),W=r(33104);function z(e){let{world:n,onAssign:r,onRelease:s,onDelete:l,loading:o=!1}=e,a=(e,r)=>{e.stopPropagation(),r(n.name)};return(0,t.jsxs)(C.Z,{role:"article",sx:{transition:"all 0.2s",height:200,display:"flex",flexDirection:"column","&:hover":{transform:"translateY(-2px)",boxShadow:4}},children:[(0,t.jsxs)(w.Z,{sx:{flex:1,pb:1},children:[(0,t.jsxs)(i.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,t.jsx)(d.Z,{variant:"h6",component:"h3",sx:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,mr:1},children:n.name}),(0,t.jsx)(I.Z,{label:n.isLocked?"Locked":"Available",size:"small",color:n.isLocked?"warning":"success",sx:{fontWeight:500,minWidth:80}})]}),(0,t.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,t.jsx)(N.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,t.jsx)(d.Z,{variant:"body2",color:"text.secondary",children:n.size||"Unknown size"})]}),n.isLocked&&n.lockedBy&&(0,t.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,t.jsx)(L.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,t.jsx)(F.Z,{title:"Assigned to ".concat(n.lockedBy),arrow:!0,children:(0,t.jsx)(d.Z,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.lockedBy})})]}),(0,t.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,t.jsx)(W.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,t.jsx)(d.Z,{variant:"body2",color:"text.secondary",children:(e=>{if(!e)return"-";try{return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch(n){return e}})(n.lastModified)})]})]}),(0,t.jsxs)(k.Z,{sx:{justifyContent:"flex-end",px:2,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:[!n.isLocked&&r&&(0,t.jsx)(F.Z,{title:"Assign to server",arrow:!0,children:(0,t.jsx)(q.Z,{"aria-label":"Assign world",color:"primary",onClick:e=>a(e,r),disabled:o,size:"small",children:(0,t.jsx)(L.Z,{})})}),n.isLocked&&s&&(0,t.jsx)(F.Z,{title:"Release from server",arrow:!0,children:(0,t.jsx)(q.Z,{"aria-label":"Release world",color:"warning",onClick:e=>a(e,s),disabled:o,size:"small",children:(0,t.jsx)(D.Z,{})})}),l&&(0,t.jsx)(F.Z,{title:"Delete world",arrow:!0,children:(0,t.jsx)(q.Z,{"aria-label":"Delete world",color:"error",onClick:e=>a(e,l),disabled:o,size:"small",children:(0,t.jsx)(K.Z,{})})})]})]})}function T(e){let{worlds:n,onAssign:r,onRelease:o,onDelete:a,onCreate:c,loadingWorlds:u=[]}=e,[x,h]=(0,s.useState)(""),[m,v]=(0,s.useState)("all"),p=(0,s.useMemo)(()=>n.filter(e=>(!x||!!e.name.toLowerCase().includes(x.toLowerCase()))&&("available"!==m||!e.isLocked)&&("locked"!==m||!!e.isLocked)),[n,x,m]);return 0===n.length?(0,t.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"400px",gap:2},children:[(0,t.jsx)(d.Z,{variant:"h6",color:"text.secondary",children:"No worlds found"}),c&&(0,t.jsx)(l.Z,{variant:"contained",startIcon:(0,t.jsx)(y.Z,{}),onClick:c,children:"Create World"})]}):(0,t.jsxs)(i.Z,{children:[(0,t.jsxs)(i.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:2,mb:3,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,t.jsxs)(b.Z,{value:m,exclusive:!0,onChange:(e,n)=>{null!==n&&v(n)},size:"small",sx:{flexShrink:0},children:[(0,t.jsx)(Z.Z,{value:"all",children:"All"}),(0,t.jsx)(Z.Z,{value:"available",children:"Available"}),(0,t.jsx)(Z.Z,{value:"locked",children:"Locked"})]}),(0,t.jsx)(f.Z,{size:"small",placeholder:"Search worlds...",value:x,onChange:e=>h(e.target.value),InputProps:{startAdornment:(0,t.jsx)(g.Z,{position:"start",children:(0,t.jsx)(S.Z,{})})},sx:{flexGrow:{xs:1,sm:0},minWidth:{sm:300}}})]}),(0,t.jsxs)(d.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:[p.length," ",1===p.length?"world":"worlds"]}),0===p.length?(0,t.jsx)(i.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"200px",gap:2},children:(0,t.jsx)(d.Z,{variant:"h6",color:"text.secondary",children:"No worlds found"})}):(0,t.jsx)(j.ZP,{container:!0,spacing:2,children:p.map(e=>(0,t.jsx)(j.ZP,{item:!0,xs:12,sm:6,md:4,children:(0,t.jsx)(z,{world:e,onAssign:r,onRelease:o,onDelete:a,loading:u.includes(e.name)})},e.name))})]})}let O={name:"",seed:""};function P(e){let{open:n,onClose:r,onSubmit:o,loading:c=!1}=e,[d,v]=(0,s.useState)(O),[y,p]=(0,s.useState)({});(0,s.useEffect)(()=>{n||(v(O),p({}))},[n]);let j=e=>e?/^[a-z0-9-]+$/.test(e)?null:"Only lowercase letters, numbers, and hyphens are allowed":"World name is required",g=e=>n=>{let r=n.target.value;v(n=>({...n,[e]:r})),y[e]&&p(n=>({...n,[e]:""}))};return(0,t.jsx)(u.Z,{open:n,onClose:c?void 0:r,maxWidth:"sm",fullWidth:!0,children:(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),p({});let n=j(d.name);if(n){p({name:n});return}o({name:d.name,...d.seed?{seed:d.seed}:{}})},children:[(0,t.jsx)(x.Z,{children:"Create New World"}),(0,t.jsx)(h.Z,{children:(0,t.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[(0,t.jsx)(f.Z,{label:"World Name",value:d.name,onChange:g("name"),error:!!y.name,helperText:y.name||"Only lowercase letters, numbers, and hyphens",fullWidth:!0,autoFocus:!0,disabled:c}),(0,t.jsx)(f.Z,{label:"Seed (optional)",value:d.seed||"",onChange:g("seed"),helperText:"Leave empty for a random seed",fullWidth:!0,disabled:c})]})}),(0,t.jsxs)(m.Z,{sx:{px:3,pb:2},children:[(0,t.jsx)(l.Z,{onClick:r,disabled:c,children:"Cancel"}),(0,t.jsx)(l.Z,{type:"submit",variant:"contained",disabled:c,startIcon:c?(0,t.jsx)(a.Z,{size:16}):null,children:c?"Creating...":"Create"})]})]})})}var Q=r(7178),A=r(92666);function R(e){let{open:n,worldName:r,onClose:c,onSubmit:v,loading:y=!1}=e,[p,j]=(0,s.useState)(""),{data:g,isLoading:Z}=(0,A.x$)();(0,s.useEffect)(()=>{n||j("")},[n]);let b=(null==g?void 0:g.servers)||[],S=b.filter(e=>"running"!==e.status),C=b.filter(e=>"running"===e.status);return(0,t.jsx)(u.Z,{open:n,onClose:y?void 0:c,maxWidth:"sm",fullWidth:!0,children:(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),p&&v(r,p)},children:[(0,t.jsxs)(x.Z,{children:["Assign World: ",r]}),(0,t.jsx)(h.Z,{children:(0,t.jsx)(i.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:Z?(0,t.jsx)(i.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(a.Z,{})}):0===b.length?(0,t.jsx)(d.Z,{color:"text.secondary",children:"No servers available. Create a server first."}):(0,t.jsxs)(t.Fragment,{children:[0===S.length&&C.length>0&&(0,t.jsx)(o.Z,{severity:"warning",children:"All servers are currently running. It is recommended to assign worlds to stopped servers."}),(0,t.jsxs)(f.Z,{label:"Select Server",select:!0,value:p,onChange:e=>j(e.target.value),fullWidth:!0,disabled:y,helperText:"Select a server to assign this world to",children:[S.length>0&&(0,t.jsx)(Q.Z,{disabled:!0,children:(0,t.jsx)(d.Z,{variant:"caption",color:"text.secondary",children:"Available Servers"})}),S.map(e=>(0,t.jsx)(Q.Z,{value:e.name,children:e.name},e.name)),C.length>0&&(0,t.jsx)(Q.Z,{disabled:!0,children:(0,t.jsx)(d.Z,{variant:"caption",color:"text.secondary",children:"Running Servers (not recommended)"})}),C.map(e=>(0,t.jsx)(Q.Z,{value:e.name,children:e.name},e.name))]})]})})}),(0,t.jsxs)(m.Z,{sx:{px:3,pb:2},children:[(0,t.jsx)(l.Z,{onClick:c,disabled:y,children:"Cancel"}),(0,t.jsx)(l.Z,{type:"submit",variant:"contained",disabled:y||!p||Z,startIcon:y?(0,t.jsx)(a.Z,{size:16}):null,children:y?"Assigning...":"Assign"})]})]})})}function E(){var e,n,r,j;let[g,Z]=(0,s.useState)(!1),[b,S]=(0,s.useState)(null),[C,w]=(0,s.useState)(null),[k,q]=(0,s.useState)(""),[I,F]=(0,s.useState)([]),{data:L,isLoading:D,error:K}=(0,A.Sr)(),N=(0,A.hy)(),W=(0,A.nq)(),z=(0,A.g2)(),O=(0,A.Fv)(),Q=async e=>{F(n=>[...n,e]);try{await z.mutateAsync({worldName:e})}catch(e){console.error("Failed to release world:",e)}finally{F(n=>n.filter(n=>n!==e))}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(c.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,v.Fq)(e.palette.success.main,.1)," 0%, ").concat((0,v.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,v.Fq)(e.palette.success.main,.2)),display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,t.jsx)(i.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"success.main",color:"success.contrastText"},children:(0,t.jsx)(p.Z,{sx:{fontSize:32}})}),(0,t.jsxs)(i.Z,{children:[(0,t.jsx)(d.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Worlds"}),(0,t.jsx)(d.Z,{variant:"body1",color:"text.secondary",children:"Manage your Minecraft worlds"})]})]}),(0,t.jsx)(l.Z,{variant:"contained",startIcon:(0,t.jsx)(y.Z,{}),onClick:()=>Z(!0),size:"large",children:"Create World"})]}),K&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to load worlds: ",K.message]}),N.isError&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to create world: ",null===(e=N.error)||void 0===e?void 0:e.message]}),W.isError&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to assign world: ",null===(n=W.error)||void 0===n?void 0:n.message]}),z.isError&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to release world: ",null===(r=z.error)||void 0===r?void 0:r.message]}),O.isError&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to delete world: ",null===(j=O.error)||void 0===j?void 0:j.message]}),D?(0,t.jsx)(i.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:(0,t.jsx)(a.Z,{})}):(0,t.jsx)(T,{worlds:(null==L?void 0:L.worlds)||[],onAssign:e=>S(e),onRelease:Q,onDelete:e=>{w(e),q("")},onCreate:()=>Z(!0),loadingWorlds:I}),(0,t.jsx)(P,{open:g,onClose:()=>{Z(!1),N.reset()},onSubmit:e=>{N.mutate(e,{onSuccess:()=>{Z(!1)}})},loading:N.isPending}),(0,t.jsx)(R,{open:!!b,worldName:b||"",onClose:()=>S(null),onSubmit:(e,n)=>{F(n=>[...n,e]),W.mutate({worldName:e,serverName:n},{onSuccess:()=>{S(null)},onSettled:()=>{F(n=>n.filter(n=>n!==e))}})},loading:W.isPending}),(0,t.jsxs)(u.Z,{open:!!C,onClose:()=>{w(null),q("")},maxWidth:"sm",fullWidth:!0,children:[(0,t.jsx)(x.Z,{children:"Delete World"}),(0,t.jsxs)(h.Z,{children:[(0,t.jsxs)(d.Z,{sx:{mb:2},children:["This action cannot be undone. Type ",(0,t.jsx)("strong",{children:C})," to confirm deletion."]}),(0,t.jsx)(f.Z,{label:"World name",value:k,onChange:e=>q(e.target.value),fullWidth:!0,autoFocus:!0})]}),(0,t.jsxs)(m.Z,{sx:{px:3,pb:2},children:[(0,t.jsx)(l.Z,{onClick:()=>{w(null),q("")},children:"Cancel"}),(0,t.jsx)(l.Z,{variant:"contained",color:"error",onClick:()=>{C&&k===C&&(F(e=>[...e,C]),O.mutate({name:C,force:!0},{onSuccess:()=>{w(null),q("")},onSettled:()=>{F(e=>e.filter(e=>e!==C))}}))},disabled:k!==C||O.isPending,startIcon:O.isPending?(0,t.jsx)(a.Z,{size:16}):null,children:O.isPending?"Deleting...":"Delete"})]})]})]})}},42936:function(e,n,r){"use strict";async function t(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={...n.headers};n.body&&(r["Content-Type"]="application/json");let t=await fetch(e,{...n,headers:r});if(!t.ok){let e=await t.json().catch(()=>({error:"UnknownError",message:t.statusText})),n=Error(e.message);throw n.statusCode=t.status,n.code=e.error,n}return t.json()}r.d(n,{SC:function(){return t}})},92666:function(e,n,r){"use strict";r.d(n,{$t:function(){return S},Aw:function(){return u},Fv:function(){return y},Hq:function(){return c},Hy:function(){return a},MH:function(){return j},Sr:function(){return h},_I:function(){return x},c5:function(){return C},g2:function(){return v},gx:function(){return g},hy:function(){return m},iC:function(){return p},jM:function(){return d},mj:function(){return b},nq:function(){return f},nv:function(){return Z},s8:function(){return w},x$:function(){return o}});var t=r(5632),s=r(58919),i=r(20367),l=r(42936);function o(){return(0,t.a)({queryKey:["servers"],queryFn:()=>(0,l.SC)("/api/servers"),refetchInterval:6e4})}function a(e,n){return(0,t.a)({queryKey:["servers",e],queryFn:()=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e))),enabled:(null==n?void 0:n.enabled)!==!1&&!!e,refetchInterval:3e4})}function c(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:n,force:r}=e;return(0,l.SC)("/api/servers/".concat(encodeURIComponent(n)).concat(r?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["servers"]})}})}function d(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/start"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function u(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/stop"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function x(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/restart"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function h(){return(0,t.a)({queryKey:["worlds"],queryFn:()=>(0,l.SC)("/api/worlds"),refetchInterval:3e4})}function m(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/worlds",{method:"POST",body:JSON.stringify(e)}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function f(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:n,serverName:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n),"/assign"),{method:"POST",body:JSON.stringify({serverName:r})})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}function v(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:n,force:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n),"/release").concat(r?"?force=true":""),{method:"POST"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function y(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:n,force:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n)).concat(r?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function p(e,n){return(0,t.a)({queryKey:["servers",e,"config"],queryFn:()=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/config")),enabled:(null==n?void 0:n.enabled)!==!1&&!!e})}function j(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{serverName:n,config:r}=e;return(0,l.SC)("/api/servers/".concat(encodeURIComponent(n),"/config"),{method:"PATCH",body:JSON.stringify(r)})},onSuccess:(n,r)=>{let{serverName:t}=r;e.invalidateQueries({queryKey:["servers",t,"config"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function g(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/world/reset"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers",r]}),e.invalidateQueries({queryKey:["worlds"]})}})}function Z(){return(0,t.a)({queryKey:["router-status"],queryFn:()=>(0,l.SC)("/api/router/status"),refetchInterval:3e4})}function b(){return(0,t.a)({queryKey:["backup-status"],queryFn:()=>(0,l.SC)("/api/backup"),refetchInterval:6e4})}function S(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20;return(0,t.a)({queryKey:["backup-history",e],queryFn:()=>(0,l.SC)("/api/backup/history?limit=".concat(e)),refetchInterval:6e4})}function C(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{message:n}=e;return(0,l.SC)("/api/backup",{method:"POST",body:JSON.stringify({message:n})})},onSuccess:()=>{e.invalidateQueries({queryKey:["backup-status"]}),e.invalidateQueries({queryKey:["backup-history"]})}})}function w(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/backup/restore",{method:"POST",body:JSON.stringify({commitHash:e})}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}}},function(e){e.O(0,[6812,9760,6758,680,1668,7436,1071,540,4416,9810,7073,880,6909,190,3669,2757,1744],function(){return e(e.s=6199)}),_N_E=e.O()}]);