diff --git a/html/src/app.js b/html/src/app.js index 40040c3b..22d2fcd0 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -626,6 +626,7 @@ speechSynthesis.getVoices(); instanceId: '', instanceName: '', accessType: '', + region: '', userId: null, hiddenId: null, privateId: null, @@ -661,6 +662,8 @@ speechSynthesis.getVoices(); ctx.friendsId = value; } else if (key === 'canRequestInvite') { ctx.canRequestInvite = true; + } else if (key === 'region') { + ctx.region = value; } } else { ctx.instanceName = s; @@ -9755,6 +9758,7 @@ speechSynthesis.getVoices(); worldId: '', instanceId: '', accessType: '', + region: '', location: '', url: '' }; @@ -9786,6 +9790,16 @@ speechSynthesis.getVoices(); if (D.accessType === 'invite+') { tags.push('~canRequestInvite'); } + + } + if (D.region !== 'USA') { + if (D.region === 'Europe') { + tags.push(`~region(eu)`); + } else if (D.region === 'Japan') { + tags.push(`~region(jp)`); + } + } + if (D.accessType !== 'public') { tags.push(`~nonce(${uuidv4()})`); } D.instanceId = tags.join(''); @@ -9841,9 +9855,13 @@ speechSynthesis.getVoices(); var saveAccessType = function () { configRepository.setString('instanceDialogAccessType', this.newInstanceDialog.accessType); }; + var saveRegion = function () { + configRepository.setString('instanceRegion', this.newInstanceDialog.region); + }; $app.watch['newInstanceDialog.worldId'] = updateLocationURL; $app.watch['newInstanceDialog.instanceId'] = updateLocationURL; $app.watch['newInstanceDialog.accessType'] = saveAccessType; + $app.watch['newInstanceDialog.region'] = saveRegion; $app.methods.showNewInstanceDialog = function (tag) { this.$nextTick(() => adjustDialogZ(this.$refs.newInstanceDialog.$el)); @@ -9859,6 +9877,10 @@ speechSynthesis.getVoices(); if (configRepository.getString('instanceDialogAccessType') !== null) { D.accessType = configRepository.getString('instanceDialogAccessType'); } + D.region = 'USA'; + if (configRepository.getString('instanceRegion') !== null) { + D.region = configRepository.getString('instanceRegion'); + } this.buildInstance(); D.visible = true; }; diff --git a/html/src/index.pug b/html/src/index.pug index aecc7be1..b0608174 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -1099,11 +1099,16 @@ html div(v-if="userDialog.ref.location" style="display:flex;flex-direction:column;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #eee") div(style="flex:none") location(:location="userDialog.ref.location") - template(#default v-if="userDialog.instance.occupants") ({{ userDialog.instance.occupants }}) - el-button(v-if="userDialog.ref.location !== lastLocation.location && userDialog.ref.location !== 'private' && userDialog.ref.location !== 'offline'" @click="refreshInstancePlayerCount(userDialog.ref.location)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle) - launch(:location="userDialog.ref.location" style="margin-left:5px") - invite-yourself(:location="userDialog.ref.location" style="margin-left:5px") - el-button(v-if="copyLocationCheck(userDialog.ref.location)" @click="copyLocation(userDialog.ref.location)" size="mini" icon="el-icon-s-order" style="margin-left:5px" circle) + template(v-if="userDialog.ref.location && userDialog.ref.location !== 'private' && userDialog.ref.location !== 'offline'") + span.famfamfam-flags(v-if="userDialog.$location.region === 'eu'" class="europeanunion" style="display:inline-block;margin-left:5px") + span.famfamfam-flags(v-else-if="userDialog.$location.region === 'jp'" class="jp" style="display:inline-block;margin-left:5px") + span.famfamfam-flags(v-else class="us" style="display:inline-block;margin-left:5px") + template(v-if="userDialog.ref.location && userDialog.ref.location !== 'private' && userDialog.ref.location !== 'offline'") + launch(:location="userDialog.ref.location" style="margin-left:5px") + invite-yourself(:location="userDialog.ref.location" style="margin-left:5px") + el-button(v-if="copyLocationCheck(userDialog.ref.location)" @click="copyLocation(userDialog.ref.location)" size="mini" icon="el-icon-s-order" style="margin-left:5px" circle) + el-button(@click="refreshInstancePlayerCount(userDialog.ref.location)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle) + span(v-if="userDialog.instance.occupants" style="margin-left:5px") {{ userDialog.instance.occupants }} #[template(v-if="userDialog.users.length > 0") ({{ userDialog.users.length }})] .x-friend-list(style="flex:1;margin-top:10px") .x-friend-item(v-if="userDialog.$location.userId" @click="showUserDialog(userDialog.$location.userId)") template(v-if="userDialog.$location.user") @@ -1279,11 +1284,15 @@ html #[i.el-icon-check(style="margin-left:10px")] Capacity {{ worldDialog.ref.capacity | commaNumber }} div(v-for="room in worldDialog.rooms" :key="room.id") div(style="margin:5px 0") - span.x-link(@click="showLaunchDialog(room.$location.tag)"). - \#{{ room.$location.instanceName }} {{ room.$location.accessType }} #[template(v-if="room.occupants") ({{ room.occupants }})] - el-button(v-if="room.$location.tag !== lastLocation.location && room.$location.tag !== 'private' && room.$location.tag !== 'offline'" @click="refreshInstancePlayerCount(room.$location.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle) + span.x-link(@click="showLaunchDialog(room.$location.tag)") + span \#{{ room.$location.instanceName }} {{ room.$location.accessType }} + span.famfamfam-flags(v-if="room.$location.region === 'eu'" class="europeanunion" style="display:inline-block;margin-left:5px") + span.famfamfam-flags(v-else-if="room.$location.region === 'jp'" class="jp" style="display:inline-block;margin-left:5px") + span.famfamfam-flags(v-else class="us" style="display:inline-block;margin-left:5px") invite-yourself(:location="room.$location.tag" style="margin-left:5px") el-button(v-if="copyLocationCheck(room.$location.tag)" @click="copyLocation(room.$location.tag)" size="mini" icon="el-icon-s-order" style="margin-left:5px" circle) + el-button(@click="refreshInstancePlayerCount(room.$location.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle) + span(v-if="room.occupants" style="margin-left:5px") {{ room.occupants }} #[template(v-if="room.users.length > 0") ({{ room.users.length }})] .x-friend-list(style="margin:10px 0" v-if="room.$location.userId || room.users.length") .x-friend-item(v-if="room.$location.userId" @click="showUserDialog(room.$location.userId)") template(v-if="room.$location.user") @@ -1545,6 +1554,11 @@ html el-radio-button(label="friends") el-radio-button(label="invite+") el-radio-button(label="invite") + el-form-item(label="Region") + el-radio-group(v-model="newInstanceDialog.region" size="mini" @change="buildInstance") + el-radio-button(label="USA") + el-radio-button(label="Europe") + el-radio-button(label="Japan") el-form-item(label="World ID") el-input(v-model="newInstanceDialog.worldId" size="mini" @click.native="$event.target.tagName === 'INPUT' && $event.target.select()") el-form-item(label="Instance ID")