init
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 780 KiB |
@@ -0,0 +1,46 @@
|
||||
import { _decorator, Component } from "cc";
|
||||
import li_EventManager from "./li_EventManager";
|
||||
|
||||
const { ccclass } = _decorator;
|
||||
|
||||
@ccclass
|
||||
export default class hg_Component extends Component {
|
||||
protected m_config = {};
|
||||
public ExitViewFunc = null;
|
||||
|
||||
|
||||
//----以下接口由子类实现-----------------------------
|
||||
openUIDataCT(data) {
|
||||
}
|
||||
|
||||
|
||||
onDestroy() {
|
||||
li_EventManager.I.removeAllInnerEL(this);
|
||||
li_EventManager.I.removeAllNetEL(this);
|
||||
this.ExitViewFunc && this.ExitViewFunc();
|
||||
this.onNodeDestroy();
|
||||
this.onSceenDestroy();
|
||||
// li_EventManager.I.onInnerEL(InnerMsgCode.Node_Destroy_Release, this.node);
|
||||
}
|
||||
/**页面传值接收方法 */
|
||||
openUIData(data) {
|
||||
if (data && data.ExitViewFunc) {
|
||||
this.ExitViewFunc = data.ExitViewFunc;
|
||||
}
|
||||
|
||||
//设置截图背景纹理
|
||||
if (data && data.screenShotTex){
|
||||
// let blurMask = this.node.getComponentInChildren(BlurMask);
|
||||
// if (blurMask){
|
||||
// blurMask.setScreenShotTexture(data.screenShotTex)
|
||||
// }
|
||||
}
|
||||
|
||||
this.openUIDataCT(data)
|
||||
}
|
||||
onNodeDestroy() {
|
||||
}
|
||||
onSceenDestroy() {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "3d41420a-b8bf-4823-a313-4a7f7f8207fb",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "3d41420a-b8bf-4823-a313-4a7f7f8207fb@6c48a",
|
||||
"displayName": "amy_disgust",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "3d41420a-b8bf-4823-a313-4a7f7f8207fb",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "3d41420a-b8bf-4823-a313-4a7f7f8207fb@f9941",
|
||||
"displayName": "amy_disgust",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "none",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 925,
|
||||
"height": 1189,
|
||||
"rawWidth": 925,
|
||||
"rawHeight": 1189,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-462.5,
|
||||
-594.5,
|
||||
0,
|
||||
462.5,
|
||||
-594.5,
|
||||
0,
|
||||
-462.5,
|
||||
594.5,
|
||||
0,
|
||||
462.5,
|
||||
594.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
1189,
|
||||
925,
|
||||
1189,
|
||||
0,
|
||||
0,
|
||||
925,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-462.5,
|
||||
-594.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
462.5,
|
||||
594.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "3d41420a-b8bf-4823-a313-4a7f7f8207fb@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "3d41420a-b8bf-4823-a313-4a7f7f8207fb@6c48a"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 150 KiB |
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 164 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 405 KiB |
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "df666d82-f3c5-4e99-802e-126cf428ca85",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "df666d82-f3c5-4e99-802e-126cf428ca85@6c48a",
|
||||
"displayName": "lv_7",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "df666d82-f3c5-4e99-802e-126cf428ca85",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "df666d82-f3c5-4e99-802e-126cf428ca85@f9941",
|
||||
"displayName": "lv_7",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": -0.5,
|
||||
"offsetY": 0,
|
||||
"trimX": 1,
|
||||
"trimY": 0,
|
||||
"width": 205,
|
||||
"height": 56,
|
||||
"rawWidth": 208,
|
||||
"rawHeight": 56,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-102.5,
|
||||
-28,
|
||||
0,
|
||||
102.5,
|
||||
-28,
|
||||
0,
|
||||
-102.5,
|
||||
28,
|
||||
0,
|
||||
102.5,
|
||||
28,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
1,
|
||||
56,
|
||||
206,
|
||||
56,
|
||||
1,
|
||||
0,
|
||||
206,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0.004807692307692308,
|
||||
0,
|
||||
0.9903846153846154,
|
||||
0,
|
||||
0.004807692307692308,
|
||||
1,
|
||||
0.9903846153846154,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-102.5,
|
||||
-28,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
102.5,
|
||||
28,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "df666d82-f3c5-4e99-802e-126cf428ca85@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "df666d82-f3c5-4e99-802e-126cf428ca85@6c48a"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "76c070bf-f7c6-41ca-9d75-83f35bb97ab8",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
import { _decorator, AudioClip, Button, Component, ImageAsset, JsonAsset, Label, Node, Prefab, ProgressBar, Sprite, SpriteFrame } from 'cc';
|
||||
import { GButton } from '../../Main/Common/GButton';
|
||||
import ResManager from '../../Main/Manager/ResManager';
|
||||
import Resource from '../../Main/Config/Resource';
|
||||
import { SDKManager } from '../../Main/Channel/SDKManager';
|
||||
import HttpUnit from '../../Main/Common/HttpUnit';
|
||||
import GlobalValue from '../../Main/Common/GlobalValue';
|
||||
import Utils from '../../Main/Common/Utils';
|
||||
import { InnerMsgCode } from '../../Main/Config/InnerMsgCode';
|
||||
import { promptItem } from '../Item/promptItem';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('PreloadUI')
|
||||
export class PreloadUI extends Component {
|
||||
|
||||
private checkFinish = true; //检查完成
|
||||
private preloadFinish = false; //资源加载完成
|
||||
private loginFinish = false; //登录完成
|
||||
|
||||
private jinduBar: Node = null;
|
||||
private jinduFilled: Sprite = null;
|
||||
private LabProgress: Label = null;
|
||||
private btnLogin: Sprite = null; //登录按钮
|
||||
|
||||
start() {
|
||||
Utils.addInnerEL(InnerMsgCode.UI_ShowPrompt, this, this.resiveShowPrompt)
|
||||
|
||||
this.jinduBar = this.node.getChildByName("jinduBar");
|
||||
this.jinduFilled = this.jinduBar.getChildByName("jinduFilled").getComponent(Sprite);
|
||||
this.LabProgress = this.node.getChildByName("LabProgress").getComponent(Label);
|
||||
this.btnLogin = this.node.getChildByName("btnLogin").getComponent(Sprite);
|
||||
|
||||
//适配背景图
|
||||
let BG = this.node.getChildByName("BG");
|
||||
Utils.adjustBgPixelRatio(BG, 1)
|
||||
|
||||
this.jinduFilled.fillRange = 0;
|
||||
this.btnLogin.node.active = false;
|
||||
|
||||
this.preloadFiles()
|
||||
}
|
||||
|
||||
protected onDestroy(): void {
|
||||
Utils.removeInnerEL(InnerMsgCode.UI_ShowPrompt, this, this.resiveShowPrompt)
|
||||
}
|
||||
|
||||
update(deltaTime: number) {
|
||||
if (this.checkFinish) {
|
||||
if (this.preloadFinish && this.loginFinish) {
|
||||
this.checkFinish = false
|
||||
this.enterGame()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**收到飘字消息 */
|
||||
resiveShowPrompt(data: any) {
|
||||
let msg = data.text
|
||||
let self = this
|
||||
ResManager.I.loadSubpackagePrefab("item/promptItem", (n_node: Node)=>{
|
||||
self.node.addChild(n_node)
|
||||
let pItem = n_node.getComponent(promptItem)
|
||||
pItem.setLabel(msg)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//预加载文件
|
||||
preloadFiles() {
|
||||
let preloadTab = [
|
||||
{path:"Music/music_interface", bundleName: "Audio", ftype: AudioClip},
|
||||
{path:"bg/mengli_stage_bg", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"cg0/mengli_0_cg", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"cg1/mengli_1_cg", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"cg2/mengli_2_cg", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"cg3/mengli_3_cg", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"emo_1/mengli_shy", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"emo_2/mengli_laugh", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"emo_3/mengli_disgust", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"role/mengli_default", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"Zjm/raw1", bundleName: "Raw", ftype: ImageAsset},
|
||||
{path:"touming", bundleName: "common", ftype: ImageAsset},
|
||||
// {path:"chanpin_1_0", bundleName: "daoju", ftype: ImageAsset}, //有合图加载失败
|
||||
{path:"zjm_1", bundleName: "Zhujiemian", ftype: ImageAsset},
|
||||
{path:"UI/GM_UI", bundleName: "PB", ftype: Prefab},
|
||||
{path:"commonGlobal", bundleName: "DataTable", ftype: JsonAsset},
|
||||
];
|
||||
let num_prefab = 0; //已加载数量
|
||||
let num_succeed = 0;//加载成功数量
|
||||
let preloadFunc = () => {
|
||||
if (num_prefab < preloadTab.length) {
|
||||
let cfg = preloadTab[num_prefab]
|
||||
ResManager.I.preLoadSubpackageFile(cfg.path, cfg.bundleName, cfg.ftype, (ret) => {
|
||||
num_prefab++;
|
||||
num_succeed++;
|
||||
let percent = 0.45 * (num_prefab / preloadTab.length)
|
||||
this.showLoadProgress(0.55 + percent);
|
||||
console.log("加载成功:", cfg.path);
|
||||
preloadFunc();
|
||||
}, (err)=>{
|
||||
num_prefab++;
|
||||
console.log("加载失败:", err);
|
||||
});
|
||||
} else {
|
||||
if (num_succeed >= num_prefab) {
|
||||
this.loadDataTable();
|
||||
}
|
||||
}
|
||||
}
|
||||
preloadFunc();
|
||||
}
|
||||
|
||||
//加载配置表
|
||||
loadDataTable(){
|
||||
let dataArr = [
|
||||
"commonGlobal",
|
||||
// "levelHole",
|
||||
"Music",
|
||||
"Sound",
|
||||
]
|
||||
|
||||
//配置表使用方法: let cfgs = Resource.getConfig("Sound")
|
||||
let num_prefab = 0;
|
||||
let preloadFunc = () => {
|
||||
if (num_prefab < dataArr.length) {
|
||||
let cfgname = dataArr[num_prefab]
|
||||
ResManager.I.loadSubpackageDataTable(cfgname, (ret: JsonAsset) => {
|
||||
num_prefab++;
|
||||
Resource.addSubJsonConfig(cfgname, ret.json)
|
||||
preloadFunc();
|
||||
});
|
||||
} else {
|
||||
this.preloadFinish = true;
|
||||
this.onLogin();
|
||||
}
|
||||
}
|
||||
preloadFunc();
|
||||
}
|
||||
|
||||
//显示加载进度
|
||||
showLoadProgress(percent) {
|
||||
this.jinduFilled.fillRange = percent;
|
||||
}
|
||||
|
||||
//登录
|
||||
onLogin() {
|
||||
//初始化SDK信息
|
||||
SDKManager.init(() => {
|
||||
//检测是否有授权,有授权直接登录,没有授权就先进主界面,到主界面获取权限
|
||||
SDKManager.checkAutoSetting("userInfo", (ishave) => {
|
||||
if (ishave) {
|
||||
console.log("有授权,直接登录")
|
||||
HttpUnit.ins.login((loginData) => {
|
||||
if (loginData == null) {
|
||||
//登录失败,这里处理重复登录的逻辑
|
||||
} else {
|
||||
this.loginFinish = true
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log("没有授权,等待授权后登录")
|
||||
// this.loginFinish = true
|
||||
this.jinduBar.active = false
|
||||
this.LabProgress.node.active = false
|
||||
//登录按钮
|
||||
this.btnLogin.node.active = true
|
||||
let loginPath = ""
|
||||
if (SDKManager.isWenxin()) {
|
||||
loginPath = "login1"
|
||||
} else if (SDKManager.isByteDance()) {
|
||||
loginPath = "login2"
|
||||
} else if (SDKManager.isKuaishou()) {
|
||||
loginPath = "login3"
|
||||
}
|
||||
ResManager.I.changeResourceSpriteFrame(this.btnLogin, loginPath)
|
||||
|
||||
HttpUnit.ins.login((loginData) => {
|
||||
if (loginData == null) {
|
||||
//登录失败,这里处理重复登录的逻辑
|
||||
} else {
|
||||
this.loginFinish = true
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
enterGame() {
|
||||
let islogin = HttpUnit.IsLogin();
|
||||
console.log("进入游戏,登录状态:", islogin);
|
||||
this.jinduBar.active = false
|
||||
this.LabProgress.node.active = false
|
||||
this.btnLogin.node.active = false
|
||||
if (islogin) {
|
||||
} else {
|
||||
//没登录成功,先进主界面,在主界面里进行登录
|
||||
}
|
||||
ResManager.I.goMainScene(); //进入下一个场景
|
||||
// ResManager.I.goCustomScene("Test2DScene"); //进入自定义场景
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 760 KiB |
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "45ae01d0-ef53-4be6-b797-ae5209d770d2",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "45ae01d0-ef53-4be6-b797-ae5209d770d2@6c48a",
|
||||
"displayName": "zeiterin_portrait",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "45ae01d0-ef53-4be6-b797-ae5209d770d2",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "45ae01d0-ef53-4be6-b797-ae5209d770d2@f9941",
|
||||
"displayName": "zeiterin_portrait",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": -15,
|
||||
"trimX": 0,
|
||||
"trimY": 30,
|
||||
"width": 276,
|
||||
"height": 334,
|
||||
"rawWidth": 276,
|
||||
"rawHeight": 364,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-138,
|
||||
-167,
|
||||
0,
|
||||
138,
|
||||
-167,
|
||||
0,
|
||||
-138,
|
||||
167,
|
||||
0,
|
||||
138,
|
||||
167,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
334,
|
||||
276,
|
||||
334,
|
||||
0,
|
||||
0,
|
||||
276,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0.9175824175824175,
|
||||
1,
|
||||
0.9175824175824175
|
||||
],
|
||||
"minPos": [
|
||||
-138,
|
||||
-167,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
138,
|
||||
167,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "45ae01d0-ef53-4be6-b797-ae5209d770d2@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "45ae01d0-ef53-4be6-b797-ae5209d770d2@6c48a"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user