GameQueryConfig.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * @Author: dgflash
  3. * @Date: 2022-04-14 17:08:01
  4. * @LastEditors: dgflash
  5. * @LastEditTime: 2022-08-02 14:25:37
  6. */
  7. import { warn } from "cc";
  8. import { Logger } from "../../../../../extensions/oops-plugin-framework/assets/core/common/log/Logger";
  9. import { guid } from "../../../../../extensions/oops-plugin-framework/assets/core/common/manager/TimerManager";
  10. import { UrlParse } from "./UrlParse";
  11. /* 获取和处理浏览器地址栏参数 */
  12. export class GameQueryConfig {
  13. /** 玩家帐号名 */
  14. public get username(): string {
  15. return this._data["username"];
  16. }
  17. /** 语言 */
  18. public get lang(): string {
  19. return this._data["lang"] || "zh";
  20. }
  21. /** 客户端ip */
  22. public get ip(): string {
  23. return this._data["ip"] || "";
  24. }
  25. /** 游戏服务器端口 */
  26. public get port(): string {
  27. return this._data["port"];
  28. }
  29. /** 测试模式开关 */
  30. public get debug(): string {
  31. return this._data["debug"];
  32. }
  33. /** 处理动态传递给游戏的服务器地址 */
  34. public getConfigServerInfo(): { ips: Array<string>, ssl: boolean, port: number } {
  35. let ret = {
  36. ips: [],
  37. ssl: false,
  38. port: 0
  39. }
  40. if (this.port) {
  41. ret.port = parseInt(this.port)
  42. }
  43. if (ret.ips.length < 1) {
  44. warn("请在地址栏输入游戏服务器ip");
  45. }
  46. if (ret.port < 1) {
  47. warn("请在地址栏输入端口号")
  48. }
  49. return ret;
  50. }
  51. // 浏览器地址栏原始参数,不可修改!
  52. private _data: any = null;
  53. public get data() {
  54. return this._data;
  55. }
  56. constructor() {
  57. let data: any = (new UrlParse()).query;
  58. if (!data) {
  59. return;
  60. }
  61. if (!data["username"]) {
  62. data["username"] = guid();
  63. }
  64. this._data = Object.freeze(data);
  65. Logger.logConfig(this._data, "查询参数");
  66. }
  67. }