diff --git a/html/src/app.js b/html/src/app.js
index 6b59290f..3f952911 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -9052,6 +9052,9 @@ speechSynthesis.getVoices();
};
$app.methods.photonBotCheck = function (dtNow) {
+ if (this.photonLobbyCurrentUser === 0) {
+ return;
+ }
var photonBots = [];
this.photonLobbyCurrent.forEach((ref, id) => {
if (this.photonLobbyJointime.has(id)) {
@@ -9337,7 +9340,11 @@ speechSynthesis.getVoices();
joinTime: Date.parse(gameLogDate),
hasInstantiated,
inVRMode: user.inVRMode,
- avatarEyeHeight: user.avatarEyeHeight
+ avatarEyeHeight: user.avatarEyeHeight,
+ canModerateInstance: user.canModerateInstance,
+ groupOnNameplate: user.groupOnNameplate,
+ showGroupBadgeToOthers: user.showGroupBadgeToOthers,
+ showSocialRank: user.showSocialRank
});
this.photonUserJoin(id, user.avatarDict, gameLogDate);
}
@@ -9429,7 +9436,13 @@ speechSynthesis.getVoices();
joinTime: Date.parse(gameLogDate),
hasInstantiated,
inVRMode: data.Parameters[249].inVRMode,
- avatarEyeHeight: data.Parameters[249].avatarEyeHeight
+ avatarEyeHeight: data.Parameters[249].avatarEyeHeight,
+ canModerateInstance:
+ data.Parameters[249].canModerateInstance,
+ groupOnNameplate: data.Parameters[249].groupOnNameplate,
+ showGroupBadgeToOthers:
+ data.Parameters[249].showGroupBadgeToOthers,
+ showSocialRank: data.Parameters[249].showSocialRank
});
this.photonUserJoin(
data.Parameters[254],
@@ -9900,7 +9913,6 @@ speechSynthesis.getVoices();
var ref = API.cachedUsers.get(user.id);
var photonUser = {
id: user.id,
- username: user.username,
displayName: user.displayName,
developerType: user.developerType,
profilePicOverride: user.profilePicOverride,
@@ -17665,8 +17677,76 @@ speechSynthesis.getVoices();
$app.data.friendsListSearch = '';
$app.data.friendsListSearchFilterVIP = false;
$app.data.friendsListSearchFilters = [];
+ $app.data.friendsListSelectAllCheckbox = false;
+ $app.data.friendsListBulkUnfriendMode = false;
+
+ $app.methods.showBulkUnfriendSelectionConfirm = function () {
+ var elementsTicked = 0;
+ for (var ctx of this.friendsListTable.data) {
+ if (ctx.$selected) {
+ elementsTicked++;
+ }
+ }
+ if (elementsTicked === 0) {
+ return;
+ }
+ this.$confirm(
+ `Are you sure you want to delete ${elementsTicked} friends?
+ This can negatively affect your trust rank,
+ This action cannot be undone.`,
+ `Delete ${elementsTicked} friends?`,
+ {
+ confirmButtonText: 'Confirm',
+ cancelButtonText: 'Cancel',
+ type: 'info',
+ callback: (action) => {
+ if (action === 'confirm') {
+ this.bulkUnfriendSelection();
+ }
+ }
+ }
+ );
+ };
+
+ $app.methods.bulkUnfriendSelection = function () {
+ for (var ctx of this.friendsListTable.data) {
+ if (ctx.$selected) {
+ API.deleteFriend({
+ userId: ctx.id
+ });
+ }
+ }
+ };
+
+ // $app.methods.showBulkUnfriendAllConfirm = function () {
+ // this.$confirm(
+ // `Are you sure you want to delete all your friends?
+ // This can negatively affect your trust rank,
+ // This action cannot be undone.`,
+ // 'Delete all friends?',
+ // {
+ // confirmButtonText: 'Confirm',
+ // cancelButtonText: 'Cancel',
+ // type: 'info',
+ // callback: (action) => {
+ // if (action === 'confirm') {
+ // this.bulkUnfriendAll();
+ // }
+ // }
+ // }
+ // );
+ // };
+
+ // $app.methods.bulkUnfriendAll = function () {
+ // for (var ctx of this.friendsListTable.data) {
+ // API.deleteFriend({
+ // userId: ctx.id
+ // });
+ // }
+ // };
$app.methods.friendsListSearchChange = function () {
+ this.friendsListTable.data = [];
var filters = [...this.friendsListSearchFilters];
if (filters.length === 0) {
filters = ['Display Name', 'Rank', 'Status', 'Bio', 'Memo'];
@@ -17679,6 +17759,9 @@ speechSynthesis.getVoices();
if (typeof ctx.ref === 'undefined') {
continue;
}
+ if (typeof ctx.$selected === 'undefined') {
+ ctx.$selected = false;
+ }
if (this.friendsListSearchFilterVIP && !ctx.isVIP) {
continue;
}
@@ -20228,7 +20311,11 @@ speechSynthesis.getVoices();
joinTime: Date.parse(dateTime),
hasInstantiated,
inVRMode: user.inVRMode,
- avatarEyeHeight: user.avatarEyeHeight
+ avatarEyeHeight: user.avatarEyeHeight,
+ canModerateInstance: user.canModerateInstance,
+ groupOnNameplate: user.groupOnNameplate,
+ showGroupBadgeToOthers: user.showGroupBadgeToOthers,
+ showSocialRank: user.showSocialRank
});
}
}
diff --git a/html/src/index.pug b/html/src/index.pug
index 981f8631..f22e844d 100644
--- a/html/src/index.pug
+++ b/html/src/index.pug
@@ -133,8 +133,8 @@ html
span.name Created
span.extra {{ currentInstanceWorld.ref.created_at | formatDate('long') }}
div.photon-event-table(v-if="photonLoggingEnabled")
- div(style="position:absolute;margin-left:195px;z-index:1")
- el-select(v-model="photonEventTableTypeFilter" @change="photonEventTableFilterChange" multiple clearable collapse-tags style="flex:1;width:150px" placeholder="Filter")
+ div(style="position:absolute;width:600px;margin-left:195px;z-index:1")
+ el-select(v-model="photonEventTableTypeFilter" @change="photonEventTableFilterChange" multiple clearable collapse-tags style="flex:1;width:220px" placeholder="Filter")
el-option(v-once v-for="type in photonEventTableTypeFilterList" :key="type" :label="type" :value="type")
el-input(v-model="photonEventTableFilter" @input="photonEventTableFilterChange" placeholder="Search" clearable style="width:150px;margin-left:10px")
el-button(@click="showChatboxBlacklistDialog" style="margin-left:10px") Chatbox Blacklist
@@ -951,6 +951,12 @@ html
div.options-container(style="margin-top:0")
span.header Friends List
div(style="float:right;font-size:13px")
+ div(v-if="friendsListBulkUnfriendMode" style="display:inline-block;margin-right:10px")
+ el-button(size="small" @click="showBulkUnfriendSelectionConfirm") Bulk Unfriend Selection
+ //- el-button(size="small" @click="showBulkUnfriendAllConfirm" style="margin-right:5px") Bulk Unfriend All
+ div(style="display:inline-block;margin-right:10px")
+ span.name Bulk Unfriend Mode
+ el-switch(v-model="friendsListBulkUnfriendMode" style="margin-left:5px")
span Load missing entries
el-tooltip(placement="top" style="margin-left:5px" content="This takes a lot of API requests so use it sparingly")
i.el-icon-warning
@@ -973,6 +979,10 @@ html
el-tooltip(placement="top" content="Clear results" :disabled="hideTooltips")
el-button(type="default" @click="friendsListTable.data = []" icon="el-icon-delete" circle style="flex:none;margin-left:5px")
data-tables(v-bind="friendsListTable" @row-click="selectFriendsListRow" style="margin-top:10px;cursor:pointer")
+ el-table-column(v-if="friendsListBulkUnfriendMode" width="55" prop="$selected")
+ template(v-once #default="scope")
+ el-button(type="text" size="mini" @click.stop)
+ el-checkbox(v-model="scope.row.$selected")
el-table-column(label="No." width="70" prop="$friendNum" sortable="custom")
el-table-column(label="Avatar" width="70" prop="photo")
template(v-once #default="scope")