chuni: Imrpove GetGameSetting
request handling for different versions
This commit is contained in:
parent
f5c77f04fa
commit
1b3e43b918
@ -22,6 +22,7 @@ Documenting updates to ARTEMiS, to be updated every time the master branch is pu
|
|||||||
+ Add support for Sun+ [#78](https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/78) (Thanks EmmyHeart!)
|
+ Add support for Sun+ [#78](https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/78) (Thanks EmmyHeart!)
|
||||||
+ Add `matching` section to `chuni.yaml`
|
+ Add `matching` section to `chuni.yaml`
|
||||||
+ Change `udpHolePunchUri` and `reflectorUri` to be STUN and TURN servers
|
+ Change `udpHolePunchUri` and `reflectorUri` to be STUN and TURN servers
|
||||||
|
+ Imrpove `GetGameSetting` request handling for different versions
|
||||||
|
|
||||||
### maimai DX
|
### maimai DX
|
||||||
+ Fix user charges failing to save
|
+ Fix user charges failing to save
|
||||||
|
@ -11,7 +11,6 @@ from titles.chuni.database import ChuniData
|
|||||||
from titles.chuni.base import ChuniBase
|
from titles.chuni.base import ChuniBase
|
||||||
from titles.chuni.config import ChuniConfig
|
from titles.chuni.config import ChuniConfig
|
||||||
|
|
||||||
|
|
||||||
class ChuniNew(ChuniBase):
|
class ChuniNew(ChuniBase):
|
||||||
ITEM_TYPE = {"character": 20, "story": 21, "card": 22}
|
ITEM_TYPE = {"character": 20, "story": 21, "card": 22}
|
||||||
|
|
||||||
@ -23,6 +22,16 @@ class ChuniNew(ChuniBase):
|
|||||||
self.logger = logging.getLogger("chuni")
|
self.logger = logging.getLogger("chuni")
|
||||||
self.game = ChuniConstants.GAME_CODE
|
self.game = ChuniConstants.GAME_CODE
|
||||||
self.version = ChuniConstants.VER_CHUNITHM_NEW
|
self.version = ChuniConstants.VER_CHUNITHM_NEW
|
||||||
|
|
||||||
|
def _interal_ver_to_intver(self) -> str:
|
||||||
|
if self.version == ChuniConstants.VER_CHUNITHM_NEW:
|
||||||
|
return "200"
|
||||||
|
if self.version == ChuniConstants.VER_CHUNITHM_NEW_PLUS:
|
||||||
|
return "205"
|
||||||
|
if self.version == ChuniConstants.VER_CHUNITHM_SUN:
|
||||||
|
return "210"
|
||||||
|
if self.version == ChuniConstants.VER_CHUNITHM_SUN_PLUS:
|
||||||
|
return "215"
|
||||||
|
|
||||||
def handle_get_game_setting_api_request(self, data: Dict) -> Dict:
|
def handle_get_game_setting_api_request(self, data: Dict) -> Dict:
|
||||||
# use UTC time and convert it to JST time by adding +9
|
# use UTC time and convert it to JST time by adding +9
|
||||||
@ -73,8 +82,8 @@ class ChuniNew(ChuniBase):
|
|||||||
"matchErrorLimit": self.game_cfg.matching.match_error_limit,
|
"matchErrorLimit": self.game_cfg.matching.match_error_limit,
|
||||||
"romVersion": self.game_cfg.version.version(self.version)["rom"],
|
"romVersion": self.game_cfg.version.version(self.version)["rom"],
|
||||||
"dataVersion": self.game_cfg.version.version(self.version)["data"],
|
"dataVersion": self.game_cfg.version.version(self.version)["data"],
|
||||||
"matchingUri": f"http://{self.core_cfg.title.hostname}:{t_port}/SDHD/200/ChuniServlet/" if self.game_cfg.matching.enable else "",
|
"matchingUri": f"http://{self.core_cfg.title.hostname}:{t_port}/SDHD/{self._interal_ver_to_intver()}/ChuniServlet/" if self.game_cfg.matching.enable else "",
|
||||||
"matchingUriX": f"http://{self.core_cfg.title.hostname}:{t_port}/SDHD/200/ChuniServlet/" if self.game_cfg.matching.enable else "",
|
"matchingUriX": f"http://{self.core_cfg.title.hostname}:{t_port}/SDHD/{self._interal_ver_to_intver()}/ChuniServlet/" if self.game_cfg.matching.enable else "",
|
||||||
# might be really important for online battle to connect the cabs via UDP port 50201
|
# might be really important for online battle to connect the cabs via UDP port 50201
|
||||||
# Hay1tsme 01/08/2023: Pretty sure this is a stun and turn server respectivly...
|
# Hay1tsme 01/08/2023: Pretty sure this is a stun and turn server respectivly...
|
||||||
"udpHolePunchUri": self.game_cfg.matching.stun_uri if self.game_cfg.matching.enable else "",
|
"udpHolePunchUri": self.game_cfg.matching.stun_uri if self.game_cfg.matching.enable else "",
|
||||||
|
@ -1,38 +1,16 @@
|
|||||||
from typing import Dict, Any
|
from typing import Dict, Any
|
||||||
|
|
||||||
|
from core.utils import Utils
|
||||||
from core.config import CoreConfig
|
from core.config import CoreConfig
|
||||||
from titles.chuni.new import ChuniNew
|
from titles.chuni.new import ChuniNew
|
||||||
from titles.chuni.const import ChuniConstants
|
from titles.chuni.const import ChuniConstants
|
||||||
from titles.chuni.config import ChuniConfig
|
from titles.chuni.config import ChuniConfig
|
||||||
|
|
||||||
|
|
||||||
class ChuniNewPlus(ChuniNew):
|
class ChuniNewPlus(ChuniNew):
|
||||||
def __init__(self, core_cfg: CoreConfig, game_cfg: ChuniConfig) -> None:
|
def __init__(self, core_cfg: CoreConfig, game_cfg: ChuniConfig) -> None:
|
||||||
super().__init__(core_cfg, game_cfg)
|
super().__init__(core_cfg, game_cfg)
|
||||||
self.version = ChuniConstants.VER_CHUNITHM_NEW_PLUS
|
self.version = ChuniConstants.VER_CHUNITHM_NEW_PLUS
|
||||||
|
|
||||||
def handle_get_game_setting_api_request(self, data: Dict) -> Dict:
|
|
||||||
ret = super().handle_get_game_setting_api_request(data)
|
|
||||||
ret["gameSetting"]["romVersion"] = self.game_cfg.version.version(self.version)[
|
|
||||||
"rom"
|
|
||||||
]
|
|
||||||
ret["gameSetting"]["dataVersion"] = self.game_cfg.version.version(self.version)[
|
|
||||||
"data"
|
|
||||||
]
|
|
||||||
ret["gameSetting"][
|
|
||||||
"matchingUri"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/205/ChuniServlet/"
|
|
||||||
ret["gameSetting"][
|
|
||||||
"matchingUriX"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/205/ChuniServlet/"
|
|
||||||
ret["gameSetting"][
|
|
||||||
"udpHolePunchUri"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/205/ChuniServlet/"
|
|
||||||
ret["gameSetting"][
|
|
||||||
"reflectorUri"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/205/ChuniServlet/"
|
|
||||||
return ret
|
|
||||||
|
|
||||||
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
||||||
user_data = super().handle_cm_get_user_preview_api_request(data)
|
user_data = super().handle_cm_get_user_preview_api_request(data)
|
||||||
|
|
||||||
|
@ -11,24 +11,6 @@ class ChuniSun(ChuniNewPlus):
|
|||||||
super().__init__(core_cfg, game_cfg)
|
super().__init__(core_cfg, game_cfg)
|
||||||
self.version = ChuniConstants.VER_CHUNITHM_SUN
|
self.version = ChuniConstants.VER_CHUNITHM_SUN
|
||||||
|
|
||||||
def handle_get_game_setting_api_request(self, data: Dict) -> Dict:
|
|
||||||
ret = super().handle_get_game_setting_api_request(data)
|
|
||||||
ret["gameSetting"]["romVersion"] = self.game_cfg.version.version(self.version)["rom"]
|
|
||||||
ret["gameSetting"]["dataVersion"] = self.game_cfg.version.version(self.version)["data"]
|
|
||||||
ret["gameSetting"][
|
|
||||||
"matchingUri"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/210/ChuniServlet/"
|
|
||||||
ret["gameSetting"][
|
|
||||||
"matchingUriX"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/210/ChuniServlet/"
|
|
||||||
ret["gameSetting"][
|
|
||||||
"udpHolePunchUri"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/210/ChuniServlet/"
|
|
||||||
ret["gameSetting"][
|
|
||||||
"reflectorUri"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/210/ChuniServlet/"
|
|
||||||
return ret
|
|
||||||
|
|
||||||
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
||||||
user_data = super().handle_cm_get_user_preview_api_request(data)
|
user_data = super().handle_cm_get_user_preview_api_request(data)
|
||||||
|
|
||||||
|
@ -11,24 +11,6 @@ class ChuniSunPlus(ChuniSun):
|
|||||||
super().__init__(core_cfg, game_cfg)
|
super().__init__(core_cfg, game_cfg)
|
||||||
self.version = ChuniConstants.VER_CHUNITHM_SUN_PLUS
|
self.version = ChuniConstants.VER_CHUNITHM_SUN_PLUS
|
||||||
|
|
||||||
def handle_get_game_setting_api_request(self, data: Dict) -> Dict:
|
|
||||||
ret = super().handle_get_game_setting_api_request(data)
|
|
||||||
ret["gameSetting"]["romVersion"] = self.game_cfg.version.version(self.version)["rom"]
|
|
||||||
ret["gameSetting"]["dataVersion"] = self.game_cfg.version.version(self.version)["data"]
|
|
||||||
ret["gameSetting"][
|
|
||||||
"matchingUri"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/215/ChuniServlet/"
|
|
||||||
ret["gameSetting"][
|
|
||||||
"matchingUriX"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/215/ChuniServlet/"
|
|
||||||
ret["gameSetting"][
|
|
||||||
"udpHolePunchUri"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/215/ChuniServlet/"
|
|
||||||
ret["gameSetting"][
|
|
||||||
"reflectorUri"
|
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/215/ChuniServlet/"
|
|
||||||
return ret
|
|
||||||
|
|
||||||
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
||||||
user_data = super().handle_cm_get_user_preview_api_request(data)
|
user_data = super().handle_cm_get_user_preview_api_request(data)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user