mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-09-30 14:52:36 -05:00
Allow /hidejoins [room] to override /showjoins (#699)
Also merge showjoins and showroomjoins and provide automatic conversion from the old format to the new one. Additionally, have each server use their own namespace for showroomjoins.
This commit is contained in:
@@ -561,29 +561,40 @@
|
||||
return false;
|
||||
|
||||
case 'showjoins':
|
||||
var showjoins = Tools.prefs('showjoins') || {};
|
||||
var serverShowjoins = showjoins[Config.server.id] || {};
|
||||
if (target) {
|
||||
var showJoins = Tools.prefs('showroomjoins') || {};
|
||||
var room = toId(target);
|
||||
showJoins[room] = true;
|
||||
if (serverShowjoins['global']) {
|
||||
delete serverShowjoins[room];
|
||||
} else {
|
||||
serverShowjoins[room] = 1;
|
||||
}
|
||||
this.add('Join/leave messages on room ' + room + ': ON');
|
||||
Tools.prefs('showroomjoins', showJoins);
|
||||
} else {
|
||||
serverShowjoins = {global: 1};
|
||||
this.add('Join/leave messages: ON');
|
||||
Tools.prefs('showjoins', true);
|
||||
}
|
||||
showjoins[Config.server.id] = serverShowjoins;
|
||||
Tools.prefs('showjoins', showjoins);
|
||||
return false;
|
||||
case 'hidejoins':
|
||||
var showjoins = Tools.prefs('showjoins') || {};
|
||||
var serverShowjoins = showjoins[Config.server.id] || {};
|
||||
if (target) {
|
||||
var showJoins = Tools.prefs('showroomjoins') || {};
|
||||
var room = toId(target);
|
||||
delete showJoins[room];
|
||||
if (!serverShowjoins['global']) {
|
||||
delete serverShowjoins[room];
|
||||
} else {
|
||||
serverShowjoins[room] = 0;
|
||||
}
|
||||
this.add('Join/leave messages on room ' + room + ': HIDDEN');
|
||||
Tools.prefs('showroomjoins', showJoins);
|
||||
} else {
|
||||
serverShowjoins = {global: 0};
|
||||
this.add('Join/leave messages: HIDDEN');
|
||||
Tools.prefs('showroomjoins', {});
|
||||
Tools.prefs('showjoins', false);
|
||||
}
|
||||
showjoins[Config.server.id] = serverShowjoins;
|
||||
Tools.prefs('showjoins', showjoins);
|
||||
return false;
|
||||
|
||||
case 'showbattles':
|
||||
@@ -1298,7 +1309,11 @@
|
||||
this.userList.add(userid);
|
||||
return;
|
||||
}
|
||||
if (silent && (!Tools.prefs('showroomjoins') || !Tools.prefs('showroomjoins')[this.id]) && !Tools.prefs('showjoins')) return;
|
||||
var allShowjoins = Tools.prefs('showjoins') || {};
|
||||
var showjoins = allShowjoins[Config.server.id];
|
||||
if (silent && (!showjoins || (!showjoins['global'] && !showjoins[this.id]) || showjoins[this.id] === 0)) {
|
||||
return;
|
||||
}
|
||||
if (!this.$joinLeave) {
|
||||
this.$chat.append('<div class="message"><small>Loading...</small></div>');
|
||||
this.$joinLeave = this.$chat.children().last();
|
||||
|
||||
@@ -241,6 +241,23 @@ Storage.whenPrefsLoaded = Tools.makeLoadTracker();
|
||||
Storage.whenTeamsLoaded = Tools.makeLoadTracker();
|
||||
Storage.whenAppLoaded = Tools.makeLoadTracker();
|
||||
|
||||
var convertShowjoins = function () {
|
||||
var oldShowjoins = Storage.prefs('showjoins');
|
||||
if (typeof oldShowjoins === 'undefined') return;
|
||||
if (typeof oldShowjoins !== 'object') {
|
||||
var showjoins = {};
|
||||
var serverShowjoins = {global: (oldShowjoins ? 1 : 0)};
|
||||
var showroomjoins = Storage.prefs('showroomjoins');
|
||||
for (var roomid in showroomjoins) {
|
||||
serverShowjoins[roomid] = (showroomjoins[roomid] ? 1 : 0);
|
||||
}
|
||||
Storage.prefs('showroomjoins', null);
|
||||
showjoins[Config.server.id] = serverShowjoins;
|
||||
Storage.prefs('showjoins', showjoins, true);
|
||||
}
|
||||
};
|
||||
Storage.whenPrefsLoaded(convertShowjoins);
|
||||
|
||||
Storage.initPrefs = function () {
|
||||
Storage.loadTeams();
|
||||
if (Config.testclient) {
|
||||
|
||||
Reference in New Issue
Block a user