xushiting 3 yıl önce
ebeveyn
işleme
ae9a29a9fb
4 değiştirilmiş dosya ile 48 ekleme ve 37 silme
  1. 7 0
      src/Signal.js
  2. 25 24
      src/XAvatarManager.js
  3. 13 10
      src/XverseAvatarManager.js
  4. 3 3
      src/main.js

+ 7 - 0
src/Signal.js

@@ -53,6 +53,12 @@ export default class Signal {
             logger.error("signal errcode: ", receiveSignal)
             this._room.emit("error", receiveSignal)
         }
+        if(!window.isUser && receiveSignal.newUserStates){
+            receiveSignal.newUserStates[0].userId = nickname
+            receiveSignal.newUserStates[0].playerState.nickName = nickname
+            window.isUser = true
+          }
+
         newUserStates = receiveSignal.newUserStates
         let currentUserStates = void 0 
         if(newUserStates != null){
@@ -68,6 +74,7 @@ export default class Signal {
                 logger.error(u)
             }
         }
+
         receiveSignal.newUserStates && receiveSignal.newUserStates.length > 0 && this._room.avatarManager.handleAvatar(receiveSignal);
         if (currentUserStates != null && currentUserStates.playerState) {
             this._room._currentClickingState = currentUserStates.playerState;

+ 25 - 24
src/XAvatarManager.js

@@ -177,31 +177,32 @@ export default class XAvatarManager {
                 avatarManager: n,
                 assets: o,
                 status: a
-            });
+            });            
             this.registerAvatar(u);
-            // if (r == 0)
-            //     this.setMainAvatar(u.id),
-            //     this.addAvatarToScene(u, 0).then(c=>(logger.debug(`[Engine] avatar ${u.id} has been added to scene`),
-            //     c ? (this._updateBillboardStatus(c, BillboardStatus.SHOW),
-            //     setTimeout(()=>{
-            //         this.launchProcessLoadingLoop()
-            //     }
-            //     , this._delayTime),
-            //     s(c)) : (u.removeAvatarFromScene(),
-            //     l(new AvatarAssetLoadingError)))).catch(c=>(u.removeAvatarFromScene(),
-            //     l(new AvatarAssetLoadingError(c))));
-            // else
-            //     return s(u)
-            this.setMainAvatar(u.id),
-            this.addAvatarToScene(u, 0).then(c=>(logger.debug(`[Engine] avatar ${u.id} has been added to scene`),
-            c ? (this._updateBillboardStatus(c, BillboardStatus.SHOW),
-            setTimeout(()=>{
-                this.launchProcessLoadingLoop()
-            }
-            , this._delayTime),
-            s(c)) : (u.removeAvatarFromScene(),
-            l(new AvatarAssetLoadingError)))).catch(c=>(u.removeAvatarFromScene(),
-            l(new AvatarAssetLoadingError(c))));
+            if (r == 0)
+                this.setMainAvatar(u.id),
+                this.addAvatarToScene(u, 0).then(c=>(logger.debug(`[Engine] avatar ${u.id} has been added to scene`),
+                c ? (this._updateBillboardStatus(c, BillboardStatus.SHOW),
+                setTimeout(()=>{
+                    this.launchProcessLoadingLoop()
+                }
+                , this._delayTime),
+                s(c)) : (u.removeAvatarFromScene(),
+                l(new AvatarAssetLoadingError)))).catch(c=>(u.removeAvatarFromScene(),
+                l(new AvatarAssetLoadingError(c))));
+            else
+                return s(u)
+
+            // this.setMainAvatar(u.id),
+            // this.addAvatarToScene(u, 0).then(c=>(logger.debug(`[Engine] avatar ${u.id} has been added to scene`),
+            // c ? (this._updateBillboardStatus(c, BillboardStatus.SHOW),
+            // setTimeout(()=>{
+            //     this.launchProcessLoadingLoop()
+            // }
+            // , this._delayTime),
+            // s(c)) : (u.removeAvatarFromScene(),
+            // l(new AvatarAssetLoadingError)))).catch(c=>(u.removeAvatarFromScene(),
+            // l(new AvatarAssetLoadingError(c))));
         }
         )
     }

+ 13 - 10
src/XverseAvatarManager.js

@@ -97,9 +97,9 @@ export default class XverseAvatarManager extends EventEmitter {
             const r = this._room.userId === t.userId;
             if (((n = t.event) == null ? void 0 : n.type) === SyncEventType.ET_RemoveVisitor) {
                 const d = (a = (o = t.event) == null ? void 0 : o.removeVisitorEvent) == null ? void 0 : a.removeVisitorEvent
-                  , _ = JSON.parse(safeDecodeURIComponent(((l = (s = t.event) == null ? void 0 : s.removeVisitorEvent) == null ? void 0 : l.extraInfo) || ""))
-                  , {code: g, msg: m} = _;
-                d === RemoveVisitorType.RVT_ChangeToObserver ? this._room.audienceViewModeHook() : d === RemoveVisitorType.RVT_MoveOutOfTheRoom && this._room.leave(),
+                const _ = JSON.parse(safeDecodeURIComponent(((l = (s = t.event) == null ? void 0 : s.removeVisitorEvent) == null ? void 0 : l.extraInfo) || ""))
+                const {code: g, msg: m} = _;
+                d === RemoveVisitorType.RVT_ChangeToObserver ? this._room.audienceViewModeHook() : d === RemoveVisitorType.RVT_MoveOutOfTheRoom && this._room.leave();
                 this._room.emit("visitorStatusChanged", {
                     code: g,
                     msg: m
@@ -121,15 +121,18 @@ export default class XverseAvatarManager extends EventEmitter {
                     }
                 } else {
                     const {position: _, angle: g} = t.playerState.player
-                      , m = t.playerState.avatarId
-                      , v = t.playerState.prioritySync
-                      , y = safelyJsonParse(t.playerState.extra);
-                    if (!m)
-                        return;
+                    let m = t.playerState.avatarId
+                    const v = t.playerState.prioritySync
+                    const y = safelyJsonParse(t.playerState.extra);
                     const b = safeParseComponents(t.playerState.avatarComponents)
-                      , T = safeDecodeURIComponent(t.playerState.nickName)
-                      , C = this.calculatePriority(t.userId, y);
+                    let T = safeDecodeURIComponent(t.playerState.nickName)
+                    let C = this.calculatePriority(t.userId, y);     
                     
+                    if (!m)
+                    {
+                        m = "KGe_Boy"
+                    }
+
                     this.addAvatar({
                         userId: t.userId,
                         isHost: t.playerState.isHost,

+ 3 - 3
src/main.js

@@ -26,18 +26,18 @@ const l = async () => {
     toast("\u8FDB\u5165\u5931\u8D25, \u8BF7\u91CD\u8BD5");
     return;
   }
-  //nickname = Math.random().toString(16).slice(2)
+  nickname = Math.random().toString(16).slice(2)
   try {
     let room = await xverse.joinRoom({
       canvas: document.getElementById("canvas"),
       skinId: "10089",
       avatarId: "KGe_Boy",
       roomId: "e629ef3e-022d-4e64-8654-703bb96410eb",
-      userId: "8e2515a18f449",//nickname,
+      userId: nickname,
       wsServerUrl: "wss://uat-eks.xverse.cn/ws",
       appId: "10016",
       token: " ",
-      nickname: "8e2515a18f449",//nickname,
+      nickname: nickname,
       firends: ["user1"],
       viewMode: "full",
       resolution: {