[add] Lobby
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { BusinessEnum } from "@/_BusinessTypeSetting/BusinessTypeSetting";
|
||||
import MainControl from "@/Common/MainControl/MainControl";
|
||||
import BusinessTypeSetting, { BusinessEnum } from "@/_BusinessTypeSetting/BusinessTypeSetting";
|
||||
import { PlayerData } from "@/define/playerData";
|
||||
import { IGameItems } from "@/types";
|
||||
import { LineTools } from "@/utils/LineTools";
|
||||
import { ReactNode, createContext, useContext, useState } from "react";
|
||||
|
||||
type GameItemsProviderProps = {
|
||||
@@ -15,26 +16,70 @@ export let gameObj: IGameItems = null;
|
||||
|
||||
export function GameItemsProvider({ children }: GameItemsProviderProps) {
|
||||
const [gameId, setGameId] = useState<number>(null);
|
||||
const [player, setPlayer] = useState<PlayerData>({
|
||||
token: "",
|
||||
});
|
||||
|
||||
const game: IGameItems = gameObj = {
|
||||
onLoad,
|
||||
gameId,
|
||||
setGameId
|
||||
setGameId,
|
||||
player,
|
||||
setPlayer
|
||||
};
|
||||
|
||||
async function onLoad(serverType: BusinessEnum.ServerType) {
|
||||
new MainControl();
|
||||
await Promise.all([
|
||||
// // 設定執行環境
|
||||
// setBusinessType(),
|
||||
// 設定執行環境
|
||||
setBusinessType(serverType),
|
||||
|
||||
// // 設定LineTools環境
|
||||
// await setLineTools(),
|
||||
]);
|
||||
}
|
||||
|
||||
/** 設定LineTools環境 */
|
||||
async function setLineTools() {
|
||||
await LineTools.onLoad();
|
||||
/** 設定執行環境 */
|
||||
function setBusinessType(useServerType: BusinessEnum.ServerType): void {
|
||||
// 連線參數自定義
|
||||
const queryParameters = new URLSearchParams(location.search);
|
||||
const servertype: string = queryParameters.get("servertype") ?? useServerType.toString();
|
||||
const host: string = queryParameters.get("host");
|
||||
const port: string = queryParameters.get("port");
|
||||
const patch: string = queryParameters.get("patch");
|
||||
const downloadurl: string = queryParameters.get("downloadurl");
|
||||
const liffid: string = queryParameters.get("liffid");
|
||||
if (servertype) {
|
||||
// 自定預設環境
|
||||
BusinessTypeSetting.UseServerType = +servertype;
|
||||
BusinessTypeSetting.UseHost = BusinessTypeSetting.GetHostUrl(BusinessTypeSetting.UseServerType);
|
||||
BusinessTypeSetting.UsePort = BusinessTypeSetting.GetPortNum(BusinessTypeSetting.UseServerType);
|
||||
BusinessTypeSetting.UsePatch = BusinessTypeSetting.GetPatchUrl(BusinessTypeSetting.UseServerType);
|
||||
BusinessTypeSetting.UseDownloadUrl = BusinessTypeSetting.GetDownloadUrl(BusinessTypeSetting.UseServerType);
|
||||
BusinessTypeSetting.UseLiffID = BusinessTypeSetting.GetLiffID(BusinessTypeSetting.UseServerType);
|
||||
BusinessTypeSetting.UseLineID = BusinessTypeSetting.GetLineID(BusinessTypeSetting.UseServerType);
|
||||
}
|
||||
if (host) {
|
||||
// 自定連線1(有自定則無視UseServerType)
|
||||
BusinessTypeSetting.UseHost = host;
|
||||
}
|
||||
if (port) {
|
||||
// 自定連線2(有自定則無視UseServerType)
|
||||
BusinessTypeSetting.UsePort = +port;
|
||||
}
|
||||
if (patch) {
|
||||
// 自定連資源伺服器(有自定則無視UseServerType)
|
||||
BusinessTypeSetting.UsePatch = patch;
|
||||
}
|
||||
if (downloadurl) {
|
||||
// 自定連靜態伺服器(有自定則無視UseServerType)
|
||||
BusinessTypeSetting.UseDownloadUrl = downloadurl;
|
||||
}
|
||||
if (liffid) {
|
||||
// 自定連Line Liff(有自定則無視UseServerType)
|
||||
BusinessTypeSetting.UseLiffID = liffid;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user