jspage.eta 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>ranked lobbies for osu!</title>
  7. <link rel="stylesheet" href="/styles.min.css?v=4">
  8. <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
  9. <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
  10. <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
  11. <script defer src="/twemoji.min.js"></script>
  12. <script defer src="/base.js?v=2" type="module"></script>
  13. <script defer src="/extra.js?v=3" type="module"></script>
  14. </head>
  15. <body class="bg-zinc-800">
  16. <header class="h-16 bg-zinc-900">
  17. <nav class="flex max-w-5xl m-auto p-1">
  18. <div>
  19. <a class="opacity-75 hover:opacity-100" href="/faq/">
  20. <img class="p-1 h-14" src="/images/o!RL-logo.png" />
  21. </a>
  22. </div>
  23. <div class="flex-auto self-center text-center">
  24. <a class="p-1 opacity-75 hover:opacity-100" href="/lobbies/">
  25. <span class="text-2xl">Lobbies</span>
  26. </a>
  27. <i class="border opacity-75 ml-1 mr-2"> </i>
  28. <a class="p-1 opacity-75 hover:opacity-100" href="/leaderboard/">
  29. <span class="text-2xl">Leaderboard</span>
  30. </a>
  31. </div>
  32. <div class="max-sm:absolute max-sm:top-16 max-sm:right-2 flex self-center">
  33. <a class="p-2 opacity-75 hover:opacity-100" href="https://kiwec.net/discord">
  34. <img class="h-8" src="/images/discord.png" />
  35. </a>
  36. <div class="relative">
  37. <button id="toggle-rulesets-dropdown-btn" class="p-2 opacity-75 hover:opacity-100">
  38. <img class="h-8" src="/images/mode-osu.png" />
  39. </button>
  40. <div id="rulesets-dropdown" class="absolute hidden z-10 mt-4 -ml-12 bg-zinc-700 rounded-md">
  41. <button class="choose-ruleset flex p-2 w-36 opacity-75 hover:opacity-100 hover:bg-zinc-900" data-ruleset="osu">
  42. <img class="h-8" src="/images/mode-osu.png" />
  43. <span class="px-2 leading-7">osu!</span>
  44. </button>
  45. <button class="choose-ruleset flex p-2 w-36 opacity-75 hover:opacity-100 hover:bg-zinc-900" data-ruleset="taiko">
  46. <img class="h-8" src="/images/mode-taiko.png" />
  47. <span class="px-2 leading-7">osu!taiko</span>
  48. </button>
  49. <button class="choose-ruleset flex p-2 w-36 opacity-75 hover:opacity-100 hover:bg-zinc-900" data-ruleset="catch">
  50. <img class="h-8" src="/images/mode-catch.png" />
  51. <span class="px-2 leading-7">osu!catch</span>
  52. </button>
  53. <button class="choose-ruleset flex p-2 w-36 opacity-75 hover:opacity-100 hover:bg-zinc-900" data-ruleset="mania">
  54. <img class="h-8" src="/images/mode-mania.png" />
  55. <span class="px-2 leading-7">osu!mania</span>
  56. </button>
  57. </div>
  58. </div>
  59. <a class="login-btn p-2 opacity-75 hover:opacity-100" href="/me/">
  60. <img class="h-8 rounded-full" src="/images/login.png" />
  61. </a>
  62. </div>
  63. </nav>
  64. </header>
  65. <main class="p-8 max-sm:pt-16">
  66. <div class="loading-placeholder text-center mt-24">
  67. <p>Loading...</p>
  68. <svg class="animate-spin m-auto my-4 h-10 w-10 text-orange-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
  69. <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
  70. <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
  71. </svg>
  72. </div>
  73. </main>
  74. <template id="lobbies-template">
  75. <div class="max-w-5xl m-auto">
  76. <div class="lobby-creation-banner border-2 border-orange-600 rounded-lg p-3 text-center mx-2 mb-2">
  77. <span class="pl-2 pr-4">Not satisfied?</span><button class="go-to-create-lobby default-btn">Create your own!</button>
  78. </div>
  79. <div class="open-lobby-list flex flex-wrap"></div>
  80. <h3 class="mt-4">Recently closed lobbies</h3>
  81. <div class="closed-lobby-list flex flex-wrap"></div>
  82. </div>
  83. </template>
  84. <template id="command-list-template">
  85. <div class="command-list">
  86. <ul>
  87. <li>
  88. !info or !discord - Display some information for new players.
  89. </li>
  90. <li>
  91. !start - Count down 30 seconds then start the map. Useful when some players are AFK or forget to ready up. Anybody can use this command.
  92. </li>
  93. <li>
  94. !wait - Cancel !start. Use it when you're not done downloading.
  95. </li>
  96. <li>
  97. !skip - Skip current map. You must have played 5 games in the lobby to unlock the command.
  98. </li>
  99. <li>
  100. !abort - Vote to abort the match. At least 1/4 of the lobby must vote to abort for a match to get aborted.
  101. </li>
  102. <li>
  103. !kick (player) - Vote to kick a player. You should probably use the in-game ignoring and reporting features instead.
  104. </li>
  105. <li>
  106. !rank (player) - Display your rank or the rank of another player.
  107. </li>
  108. <li>
  109. !close - Close the lobby. Only the lobby creator can use this command.
  110. </li>
  111. </ul>
  112. </div>
  113. </template>
  114. <template id="manual-lobby-creation-template">
  115. <div class="max-w-5xl m-auto">
  116. <p>Unfortunately, the bot couldn't create the lobby automatically. This happens when there are too many bot-created lobbies.</p>
  117. <p>But don't worry, you can still create it yourself! Just follow these steps:</p>
  118. <ul class="mb-2">
  119. <li>Create a lobby in osu!</li>
  120. <li>In the #multiplayer chat, send <strong>!mp addref botkiwec</strong></li>
  121. <li>BanchoBot should have sent a match history link. Copy the URL and paste it here.</li>
  122. </ul>
  123. <input class="mt-1 p-1.5 w-96 text-sm" type="text" name="tournament-url" placeholder="https://osu.ppy.sh/community/matches/123456789">
  124. <button class="create-lobby-with-ref-btn default-btn m-1 py-1">Create lobby</button>
  125. </div>
  126. </template>
  127. <template id="lobby-created-template">
  128. <div class="max-w-5xl m-auto">
  129. <h3 class="mt-4">Lobby created successfully!</h3>
  130. <div class="open-lobby-list flex flex-wrap mt-4">
  131. <div class="lobby"></div>
  132. </div>
  133. <div class="info mt-4"></div>
  134. </div>
  135. </template>
  136. <template id="lobby-creation-template">
  137. <div class="max-w-5xl m-auto">
  138. <h1 class="mb-6 font-bold">New lobby</h1>
  139. <div class="lobby-settings">
  140. <div class="title-settings">
  141. <div class="flex mt-2 cursor-pointer select-none">
  142. <div class="collapser"></div>
  143. <h3 class="underline">Title</h3>
  144. </div>
  145. <div class="hidden mb-4">
  146. <p>You can use <span class="mono">$min_xxx</span>, <span class="mono">$avg_xxx</span>, <span class="mono">$max_xxx</span> for <span class="mono">elo</span>, <span class="mono">pp</span> and <span class="mono">stars</span> to set the lobby title automatically.</p>
  147. <input class="mt-1 mb-1 p-1 w-72 text-sm" type="text" name="title" value="$min_stars-$max_stars* | o!RL (!info)">
  148. <p>Preview: <span class="mono preview">0-11* | o!RL (!info)</span></p>
  149. </div>
  150. </div>
  151. <div class="flex mt-2 cursor-pointer select-none">
  152. <div class="collapser"></div>
  153. <h3 class="underline">Map selection</h3>
  154. </div>
  155. <div class="hidden mb-4">
  156. <div class="radio-area flex border-2 border-orange-600 hover:bg-zinc-700 rounded-md m-1 max-w-xl cursor-pointer">
  157. <div class="radio flex align-center justify-center p-1.5 bg-orange-600"><input type="radio" name="map-selection-type" value="random"></div>
  158. <div class="info py-2 px-3 leading-5">
  159. <span class="font-bold">Random</span>
  160. <p>Pick any map that matches the given filters.</p>
  161. </div>
  162. </div>
  163. <div class="radio-area flex border-2 border-orange-600 hover:bg-zinc-700 rounded-md m-1 max-w-xl cursor-pointer">
  164. <div class="radio flex align-center justify-center p-1.5 bg-orange-600"><input type="radio" name="map-selection-type" value="pp" checked></div>
  165. <div class="info py-2 px-3 leading-5">
  166. <span class="font-bold">Performance Points</span>
  167. <p>Pick maps close to the lobby players's pp.</p>
  168. </div>
  169. </div>
  170. </div>
  171. <div class="flex mt-2 cursor-pointer select-none">
  172. <div class="collapser"></div>
  173. <h3 class="underline">Map pool</h3>
  174. </div>
  175. <div class="hidden mb-4">
  176. <div class="radio-area flex border-2 border-orange-600 hover:bg-zinc-700 rounded-md m-1 max-w-xl cursor-pointer">
  177. <div class="radio flex align-center justify-center p-1.5 bg-orange-600"><input type="radio" name="map-pool" value="leaderboarded" checked></div>
  178. <div class="info py-2 px-3 leading-5">
  179. <span class="font-bold">All maps with a leaderboard</span>
  180. <p>F2 gaming.</p>
  181. </div>
  182. </div>
  183. <div class="radio-area flex border-2 border-orange-600 hover:bg-zinc-700 rounded-md m-1 max-w-xl cursor-pointer">
  184. <div class="radio flex align-center justify-center p-1.5 bg-orange-600"><input type="radio" name="map-pool" value="collection"></div>
  185. <div class="info py-2 px-3 leading-5">
  186. <span class="font-bold">Custom <a href="https://osucollector.com/" target="_blank">osu!collector</a> collection</span>
  187. <input class="mt-1 p-1 w-72 text-sm" type="text" name="collection-url" placeholder="https://osucollector.com/collections/44">
  188. </div>
  189. </div>
  190. </div>
  191. <div class="mod-settings">
  192. <div class="flex mt-2 cursor-pointer select-none">
  193. <div class="collapser"></div>
  194. <h3 class="underline">Mods</h3>
  195. </div>
  196. <div class="hidden mb-4">
  197. <div>
  198. <div class="mod-btn nm">
  199. <img class="h-8" src="/images/[email protected]" title="None" alt="None" />
  200. <div>NM</div>
  201. </div>
  202. <div class="mod-btn ez">
  203. <img class="h-8" src="/images/[email protected]" title="Easy" alt="Easy" />
  204. <div>EZ</div>
  205. </div>
  206. <div class="mod-btn ht">
  207. <img class="h-8" src="/images/[email protected]" title="Half Time" alt="Half Time" />
  208. <div>HT</div>
  209. </div>
  210. <div class="mod-btn mr hidden">
  211. <img class="h-8" src="/images/[email protected]" title="Mirror" alt="Mirror" />
  212. <div>MR</div>
  213. </div>
  214. <div class="mod-btn co hidden">
  215. <img class="h-8" src="/images/[email protected]" title="Co-op" alt="Co-op" />
  216. <div>CO</div>
  217. </div>
  218. </div>
  219. <div>
  220. <div class="mod-btn">
  221. <img class="h-8" src="/images/[email protected]" title="Hidden" alt="Hidden" />
  222. <div>HD</div>
  223. </div>
  224. <div class="mod-btn hr">
  225. <img class="h-8" src="/images/[email protected]" title="Hard Rock" alt="Hard Rock" />
  226. <div>HR</div>
  227. </div>
  228. <div class="mod-btn dt">
  229. <img class="h-8" src="/images/[email protected]" title="Double Time" alt="Double Time" />
  230. <div>DT</div>
  231. </div>
  232. <div class="mod-btn nc hidden">
  233. <img class="h-8" src="/images/[email protected]" title="Nightcore" alt="Nightcore" />
  234. <div>NC</div>
  235. </div>
  236. <div class="mod-btn fi hidden">
  237. <img class="h-8" src="/images/[email protected]" title="Fade In" alt="Fade In" />
  238. <div>FI</div>
  239. </div>
  240. <div class="mod-btn">
  241. <img class="h-8" src="/images/[email protected]" title="Flashlight" alt="Flashlight" />
  242. <div>FL</div>
  243. </div>
  244. <div class="mod-btn">
  245. <img class="h-8" src="/images/[email protected]" title="Sudden Death" alt="Sudden Death" />
  246. <div>SD</div>
  247. </div>
  248. </div>
  249. <div class="mb-4">
  250. Enabling "NM" stops players from being able to pick the mods they want.
  251. </div>
  252. </div>
  253. </div>
  254. <div class="flex mt-2 cursor-pointer select-none">
  255. <div class="collapser"></div>
  256. <h3 class="underline">Filters</h3>
  257. </div>
  258. <div class="hidden mb-4">
  259. <div class="flex flex-wrap filter-list">
  260. </div>
  261. </div>
  262. <div class="mania-keycount-settings"></div>
  263. <button class="create-lobby-btn default-btn mt-8">Create lobby</button>
  264. </div>
  265. </div>
  266. </template>
  267. <footer class="p-4 text-center m-auto">o!rl is a hobby project and is not affiliated with <a href="https://osu.ppy.sh/" target="_blank">osu!</a>.</footer>
  268. </body>
  269. </html>