Version 1.1.1 #8

Closed
opened 2023-05-06 03:48:16 +02:00 by boyan_k · 1 comment
Owner

Background Update (1.1.1)

User experience changes

  1. A dialog for when the user is not registered yet.
  2. A dialog for when the user is in the process of registration.
  3. A tray icon, from which the user can stop the program or do a manual refresh. (Including a tooltip which points the user to the icon in the tray)
  4. When game creation is initialized, the game is created and joined automatically.
    • Game creation
    • Host waits for players to join
    • Server-client communication regarding new game
    • Automatic team-switching
    • Make team 1 join first and then team 2
  5. Implement websocket communication for full game creation and joining

Implementation changes

The once simple TUI-based client will now be transformed into a simple ||foreshadowing|| tray icon. This means that there needs to be a change in the libraries used to create the client.

The implementation of automatic creation/joining a game inside of the league of legends client also needs to be addressed. The implementation map of said feature goes as follows:

  1. Server-side page which indicates whether a game is currently taking place/serves the ID of the game that is currently taking place.
  2. Discord bot implementation which orchestrates the creation of said game(that includes picking the user who is going to create the game).
  3. Client-side LCU1 call, which executes orders given by the server. In other words, whether we should create or join a game(given its ID by the server).

Flowchart here:

Flowchart

Notes

Lobby creation

A POST call is needed to create a lobby. FUCK YOU Riot Games for making me brute force my way into creating this.

curl --insecure -X 'POST' \
  'https://127.0.0.1:49954/lol-lobby/v2/lobby' \
  -H 'accept: application/json' \
  -H 'Authorization: Basic cmlvdDpQQ0RfdU5zSU1LNG9kRlFyUUxwRC1R' \
  -H 'Content-Type: application/json' \
  -d '{
  "customGameLobby": {
    "configuration": {
      "gameMode": "PRACTICETOOL", "gameServerRegion": "", "mapId": 11, "mutators": {"id": 6}, "spectatorPolicy": "AllAllowed", "teamSize": 5
    },
    "lobbyName": "CustoMM Instance #3",
    "lobbyPassword": null
  },
  "isCustom": true
}'

ALSO LOOK AT THE GOD FORSAKEN GAMEMODE. YES. YOU HAVE TO SET IT AS PRACTICE TOOL SO THAT IT CREATES A CUSTOM GAME(???????????????????????????????).

Lobby information

A GET request is required for this(which is idiotic, given that we have to do TWO SEPARATE REQUESTS for the same process, namely, creating a game, JUST SO THAT WE CAN KNOW WHAT THE ID IS). It looks like this:

curl --insecure -X 'GET' \
  'https://127.0.0.1:49954/lol-lobby/v2/lobby' \
  -H 'accept: application/json' \
  -H 'Authorization: Basic cmlvdDpQQ0RfdU5zSU1LNG9kRlFyUUxwRC1R'

Lobby joining

ID = custom_game_id
curl --insecure -X 'POST' \
  'https://127.0.0.1:49954/lol-lobby/v1/custom-games/{$ID}/join' \
  -H 'accept: application/json' \
  -H 'Authorization: Basic cmlvdDpQQ0RfdU5zSU1LNG9kRlFyUUxwRC1R' \
  -H 'Content-Type: application/json' \

NNOTICE HOW WE ARE AT A COMPLETELY DIFFERENT ENDPOINT. DIFFERENT VERSION EVEN. RIOT, PLEASE.

Quick love letter to Riot

Fuck you. Fuck you. Fuck you. Fuck you. Fuck you. Also fuck whoever made the LCU "documentation" viewer.


  1. LCU - League of Legends local API ↩︎

## Background Update (1.1.1) ### User experience changes 1. [x]A dialog for when the user is not registered yet. 2. [x] A dialog for when the user is in the process of registration. 3. [x]A tray icon, from which the user can stop the program or do a manual refresh. (Including a tooltip which points the user to the icon in the tray) 4. [ ]When game creation is initialized, the game is created and joined automatically. * [x] Game creation * [x] Host waits for players to join * [x] Server-client communication regarding new game * [x] Automatic team-switching * [ ] Make team 1 join first and then team 2 5. [ ] Implement websocket communication for full game creation and joining ### Implementation changes The once simple TUI-based client will now be transformed into a **simple** ||foreshadowing|| tray icon. This means that there needs to be a change in the libraries used to create the client. The implementation of automatic creation/joining a game inside of the league of legends client also needs to be addressed. The implementation map of said feature goes as follows: 1. Server-side page which indicates whether a game is currently taking place/serves the ID of the game that is currently taking place. 2. Discord bot implementation which orchestrates the creation of said game(that includes picking the user who is going to create the game). 3. Client-side LCU[^1] call, which executes orders given by the server. In other words, whether we should create or join a game(given its ID by the server). Flowchart here: ![Flowchart](https://git.confest.im/boyan_k/custoMM/raw/branch/main/images/bob.png) ### Notes #### Lobby creation A `POST` call is needed to create a lobby. FUCK YOU Riot Games for making me brute force my way into creating this. ```bash curl --insecure -X 'POST' \ 'https://127.0.0.1:49954/lol-lobby/v2/lobby' \ -H 'accept: application/json' \ -H 'Authorization: Basic cmlvdDpQQ0RfdU5zSU1LNG9kRlFyUUxwRC1R' \ -H 'Content-Type: application/json' \ -d '{ "customGameLobby": { "configuration": { "gameMode": "PRACTICETOOL", "gameServerRegion": "", "mapId": 11, "mutators": {"id": 6}, "spectatorPolicy": "AllAllowed", "teamSize": 5 }, "lobbyName": "CustoMM Instance #3", "lobbyPassword": null }, "isCustom": true }' ``` <sub>ALSO LOOK AT THE GOD FORSAKEN GAMEMODE. YES. YOU HAVE TO SET IT AS PRACTICE TOOL SO THAT IT CREATES A CUSTOM GAME(???????????????????????????????).</sub> #### Lobby information A `GET` request is required for this(which is idiotic, given that we have to do TWO SEPARATE REQUESTS for the same process, namely, creating a game, JUST SO THAT WE CAN KNOW WHAT THE ID IS). It looks like this: ```bash curl --insecure -X 'GET' \ 'https://127.0.0.1:49954/lol-lobby/v2/lobby' \ -H 'accept: application/json' \ -H 'Authorization: Basic cmlvdDpQQ0RfdU5zSU1LNG9kRlFyUUxwRC1R' ``` #### Lobby joining ```bash ID = custom_game_id curl --insecure -X 'POST' \ 'https://127.0.0.1:49954/lol-lobby/v1/custom-games/{$ID}/join' \ -H 'accept: application/json' \ -H 'Authorization: Basic cmlvdDpQQ0RfdU5zSU1LNG9kRlFyUUxwRC1R' \ -H 'Content-Type: application/json' \ ``` NNOTICE HOW WE ARE AT A COMPLETELY DIFFERENT ENDPOINT. DIFFERENT VERSION EVEN. RIOT, PLEASE. ### Quick love letter to Riot Fuck you. Fuck you. Fuck you. Fuck you. Fuck you. Also fuck whoever made the LCU "documentation" viewer. [^1]: LCU - League of Legends local API
208 KiB
boyan_k changed title from Make client work in the background to Version 1.1.1 2023-05-06 03:51:07 +02:00
boyan_k added the
Feature
Client
Server
Discord
labels 2023-05-06 03:51:23 +02:00
boyan_k reopened this issue 2023-05-06 03:53:24 +02:00
Author
Owner

Released version 1.1.1

Released version [1.1.1](https://git.confest.im/boyan_k/custoMM/releases/tag/1.1.1)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: custoMM/custoMM#8
No description provided.