improved tokebot whispers/pm's, mod/admin commands added(reset cooldown,
tokesay/tokeyell/tokewhisper, reloadtoke)
This commit is contained in:
parent
a048e2094c
commit
46bcb040f2
|
|
@ -1,19 +1,54 @@
|
||||||
|
/*
|
||||||
|
fore.st is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
fore.st is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with fore.st. If not, see < http://www.gnu.org/licenses/ >.
|
||||||
|
(C) 2022- by rainbownapkin, <ourforest@420blaze.it>
|
||||||
|
*/
|
||||||
|
import fs from 'fs';
|
||||||
|
|
||||||
var ChannelModule = require("./module");
|
var ChannelModule = require("./module");
|
||||||
|
|
||||||
|
|
||||||
|
function loadTokes(){
|
||||||
|
const rawContents = fs.readFileSync("tokebot/tokes").toString('utf8');
|
||||||
|
var spcReg = /^\s*$/g;
|
||||||
|
var t = rawContents.split("\n").filter(function(i){
|
||||||
|
return !spcReg.test(i);
|
||||||
|
});
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
var tokes = loadTokes();
|
||||||
|
|
||||||
function TokebotModule(_channel){
|
function TokebotModule(_channel){
|
||||||
ChannelModule.apply(this, arguments);
|
ChannelModule.apply(this, arguments);
|
||||||
|
|
||||||
if(this.channel.modules.chat){
|
|
||||||
this.channel.modules.chat.registerCommand("!toke", this.toke.bind(this));
|
//mod command registration
|
||||||
}
|
this.channel.modules.chat.registerCommand("!resettoke", this.resettoke.bind(this));
|
||||||
|
|
||||||
|
//admin command registration
|
||||||
|
this.channel.modules.chat.registerCommand("!updatetokes", this.updatetokesCmd.bind(this));
|
||||||
|
this.channel.modules.chat.registerCommand("!tokesay", this.tokesayCmd.bind(this));
|
||||||
|
this.channel.modules.chat.registerCommand("!tokeannounce", this.tokeyellCmd.bind(this));
|
||||||
|
this.channel.modules.chat.registerCommand("!tokeyell", this.tokeyellCmd.bind(this));
|
||||||
|
this.channel.modules.chat.registerCommand("!tokewhisper", this.tokewhisperCmd.bind(this));
|
||||||
|
|
||||||
|
//!toke command registration
|
||||||
|
this.updatetokes();
|
||||||
}
|
}
|
||||||
|
|
||||||
TokebotModule.prototype = Object.create(ChannelModule.prototype);
|
TokebotModule.prototype = Object.create(ChannelModule.prototype);
|
||||||
|
|
||||||
TokebotModule.prototype.handleEchoTest = function(user, msg, _meta){
|
|
||||||
this.tokesay(msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
TokebotModule.prototype.toking = 0;
|
TokebotModule.prototype.toking = 0;
|
||||||
TokebotModule.prototype.tokers = [];
|
TokebotModule.prototype.tokers = [];
|
||||||
TokebotModule.prototype.cdown = 3;
|
TokebotModule.prototype.cdown = 3;
|
||||||
|
|
@ -21,6 +56,48 @@ TokebotModule.prototype.cdel = 120;
|
||||||
TokebotModule.prototype.ctime = 120;
|
TokebotModule.prototype.ctime = 120;
|
||||||
TokebotModule.prototype.solotokes = ["", "https://ourfore.st/img/femotes/onetoker.jpg","https://ourfore.st/img/femotes/solotoke.jpg","https://ourfore.st/img/femotes/1toker.gif"];
|
TokebotModule.prototype.solotokes = ["", "https://ourfore.st/img/femotes/onetoker.jpg","https://ourfore.st/img/femotes/solotoke.jpg","https://ourfore.st/img/femotes/1toker.gif"];
|
||||||
|
|
||||||
|
//mod commands
|
||||||
|
TokebotModule.prototype.resettoke = function(user, msg, _meta){
|
||||||
|
if(user.account.effectiveRank >= 2 && this.toking == 2){
|
||||||
|
//this.toking = 0;
|
||||||
|
this.ctime = 0;
|
||||||
|
this.tokewhisper("!toke cooldown reset.", user.account.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//siteowner commands
|
||||||
|
TokebotModule.prototype.updatetokesCmd = function(user, msg, _meta){
|
||||||
|
if(user.account.effectiveRank >= 256){
|
||||||
|
this.updatetokes();
|
||||||
|
this.tokewhisper("Reloading !toke commands...", user.account.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TokebotModule.prototype.tokesayCmd = function(user, msg, _meta){
|
||||||
|
if(user.account.effectiveRank >= 256){
|
||||||
|
var fmsg = msg.split(" ");
|
||||||
|
fmsg.shift();
|
||||||
|
this.tokesay(fmsg.join(' '), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TokebotModule.prototype.tokeyellCmd = function(user, msg, _meta){
|
||||||
|
if(user.account.effectiveRank >= 256){
|
||||||
|
var fmsg = msg.split(" ");
|
||||||
|
fmsg.shift();
|
||||||
|
this.tokesay(fmsg.join(' '), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TokebotModule.prototype.tokewhisperCmd = function(user, msg, _meta){
|
||||||
|
if(user.account.effectiveRank >= 256){
|
||||||
|
var fmsg = msg.split(" ");
|
||||||
|
fmsg.shift();
|
||||||
|
this.tokewhisper(fmsg.join(' '));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//main toke logic (adapted from chozobot implementation)
|
//main toke logic (adapted from chozobot implementation)
|
||||||
TokebotModule.prototype.toke = function (user, msg, _meta){
|
TokebotModule.prototype.toke = function (user, msg, _meta){
|
||||||
var name = user.getName()
|
var name = user.getName()
|
||||||
|
|
@ -37,15 +114,15 @@ TokebotModule.prototype.toke = function (user, msg, _meta){
|
||||||
break;
|
break;
|
||||||
case 1://taking toke
|
case 1://taking toke
|
||||||
if(this.tokers.includes(name)){
|
if(this.tokers.includes(name)){
|
||||||
this.tokesay(name + " You're already taking part in this toke!");
|
this.tokewhisper(" You're already taking part in this toke!", name);
|
||||||
}else{
|
}else{
|
||||||
this.tokesay(name + " joined the toke! Post " + msg + " to take part!");
|
this.tokesay("joined the toke! Post " + msg + " to take part!");
|
||||||
this.tokers.push(name);
|
this.tokers.push(name);
|
||||||
this.cdown = 3;
|
this.cdown = 3;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2://cooldown
|
case 2://cooldown
|
||||||
this.tokesay(name + " Please wait " + this.ctime + " before starting a new group toke.");
|
this.tokewhisper(" Please wait " + this.ctime + " seconds before starting a new group toke.", name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -99,13 +176,29 @@ TokebotModule.prototype.cooldown = function (tb){
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//helper functions
|
//helper functions(mostly just syntactic sugar)
|
||||||
TokebotModule.prototype.tokesay = function (msg){
|
TokebotModule.prototype.updatetokes = function (){
|
||||||
|
tokes = loadTokes();
|
||||||
|
|
||||||
|
if(this.channel.modules.chat){//register !toke commands
|
||||||
|
if(tokes == null){//if for some reason tokes file couldnt be loaded
|
||||||
|
this.channel.modules.chat.registerCommand("!toke", this.toke.bind(this));
|
||||||
|
console.log("[tokebot] Unable to load toke commands from ./tokebot/tokes, defaulting to !toke definition");
|
||||||
|
}else{//if we we're able to pull toke commands
|
||||||
|
var _this = this;//we need to use this, might put this up higher to replace the tb parameter in other member functions
|
||||||
|
tokes.forEach(function(tokec){
|
||||||
|
_this.channel.modules.chat.registerCommand("!" + tokec, _this.toke.bind(_this));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TokebotModule.prototype.tokesay = function (msg,quiet){
|
||||||
var msgobj = {
|
var msgobj = {
|
||||||
username: "tokebot",
|
username: "tokebot",
|
||||||
msg: msg,
|
msg: msg,
|
||||||
meta:{
|
meta:{
|
||||||
addClass: "shout",
|
addClass: (quiet ? null : "shout"),
|
||||||
addClassToNameAndTimestamp: true,
|
addClassToNameAndTimestamp: true,
|
||||||
forceShowName: true,
|
forceShowName: true,
|
||||||
modflair: 3
|
modflair: 3
|
||||||
|
|
@ -118,6 +211,19 @@ TokebotModule.prototype.tokesay = function (msg){
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
TokebotModule.prototype.tokewhisper = function (msg, usr){//(msg, username)
|
||||||
|
if(this.channel.modules.chat != null){
|
||||||
|
if(usr != null){
|
||||||
|
this.channel.modules.chat.sendModMessage(msg,-1,"tokebot",usr);
|
||||||
|
}else{
|
||||||
|
var _this = this
|
||||||
|
this.channel.users.forEach(function(u){
|
||||||
|
_this.channel.modules.chat.sendModMessage(msg,-1,"tokebot",u.account.name);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TokebotModule.prototype.getRandomInt = function (min, max) {
|
TokebotModule.prototype.getRandomInt = function (min, max) {
|
||||||
min = Math.ceil(min);
|
min = Math.ceil(min);
|
||||||
max = Math.floor(max);
|
max = Math.floor(max);
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,7 @@ mixin us-chat
|
||||||
+rcheckbox("us-sort-rank", "Sort userlist by rank")
|
+rcheckbox("us-sort-rank", "Sort userlist by rank")
|
||||||
+rcheckbox("us-sort-afk", "Sort AFKers to bottom")
|
+rcheckbox("us-sort-afk", "Sort AFKers to bottom")
|
||||||
+rcheckbox("us-legacy-emote", "Use legacy Cytube emote menu")
|
+rcheckbox("us-legacy-emote", "Use legacy Cytube emote menu")
|
||||||
|
+rcheckbox("us-toke-pm", "Legacy Tokebot Notifications (PM)")
|
||||||
.form-group
|
.form-group
|
||||||
label.control-label.col-sm-4(for="#us-blink-title",title="Only applies when not active window/tab.") Blink page title on new messages
|
label.control-label.col-sm-4(for="#us-blink-title",title="Only applies when not active window/tab.") Blink page title on new messages
|
||||||
.col-sm-8
|
.col-sm-8
|
||||||
|
|
|
||||||
83
tokebot/tokes
Normal file
83
tokebot/tokes
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
toak
|
||||||
|
666
|
||||||
|
420
|
||||||
|
toke
|
||||||
|
tokem
|
||||||
|
toek
|
||||||
|
hailsatan
|
||||||
|
cheers
|
||||||
|
toast
|
||||||
|
toastem
|
||||||
|
burn
|
||||||
|
burnem
|
||||||
|
lightem
|
||||||
|
dab
|
||||||
|
dabem
|
||||||
|
smoke
|
||||||
|
smokem
|
||||||
|
blaze
|
||||||
|
blazeit
|
||||||
|
blazem
|
||||||
|
drink
|
||||||
|
shot
|
||||||
|
weed
|
||||||
|
marijuana
|
||||||
|
cannabis
|
||||||
|
jazzcabbage
|
||||||
|
oktem
|
||||||
|
puff
|
||||||
|
hit
|
||||||
|
tjoke
|
||||||
|
tjokem
|
||||||
|
devilslettuce
|
||||||
|
tokem
|
||||||
|
toakem
|
||||||
|
grass
|
||||||
|
liftoff
|
||||||
|
420blazeit
|
||||||
|
smokeweed420blazeit
|
||||||
|
smokeweed420blazem
|
||||||
|
boof
|
||||||
|
boofem
|
||||||
|
tonk
|
||||||
|
tonkem
|
||||||
|
tonker
|
||||||
|
bonghits4jesus
|
||||||
|
tedcruzdid911
|
||||||
|
epsteindidntkillhimself
|
||||||
|
zillatoke
|
||||||
|
ekot
|
||||||
|
mekot
|
||||||
|
smonk
|
||||||
|
smonkem
|
||||||
|
hash
|
||||||
|
kush
|
||||||
|
cheeseit
|
||||||
|
munch
|
||||||
|
munchem
|
||||||
|
vape
|
||||||
|
vapem
|
||||||
|
fire
|
||||||
|
firemup
|
||||||
|
sacrifice
|
||||||
|
710
|
||||||
|
roast
|
||||||
|
nukem
|
||||||
|
shit
|
||||||
|
hydrate
|
||||||
|
eat
|
||||||
|
edible
|
||||||
|
justgirlythings
|
||||||
|
heyrainbowaddthis
|
||||||
|
inhale
|
||||||
|
ignite
|
||||||
|
THEPLANT
|
||||||
|
spark
|
||||||
|
sparkone
|
||||||
|
sparkem
|
||||||
|
smokeweederryday
|
||||||
|
robotoke
|
||||||
|
witness
|
||||||
|
roastem
|
||||||
|
crabpeople
|
||||||
|
shootthemoon
|
||||||
|
|
@ -512,6 +512,7 @@ Callbacks = {
|
||||||
|
|
||||||
/* REGION Chat */
|
/* REGION Chat */
|
||||||
usercount: function(count) {
|
usercount: function(count) {
|
||||||
|
count++;//add one fer tokebot :P
|
||||||
CHANNEL.usercount = count;
|
CHANNEL.usercount = count;
|
||||||
var text = count + " connected user";
|
var text = count + " connected user";
|
||||||
if(count != 1) {
|
if(count != 1) {
|
||||||
|
|
@ -521,6 +522,11 @@ Callbacks = {
|
||||||
},
|
},
|
||||||
|
|
||||||
chatMsg: function(data) {
|
chatMsg: function(data) {
|
||||||
|
if(data.username === "tokebot" && data.meta.addClass === "server-whisper" && USEROPTS.toke_pm){
|
||||||
|
data.meta = {};
|
||||||
|
window.Callbacks.pm(data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
addChatMessage(data);
|
addChatMessage(data);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -552,8 +558,6 @@ Callbacks = {
|
||||||
},
|
},
|
||||||
|
|
||||||
clearchat: function(data) {
|
clearchat: function(data) {
|
||||||
console.log(data);
|
|
||||||
|
|
||||||
if(data.target == null){
|
if(data.target == null){
|
||||||
$("#messagebuffer").html("");
|
$("#messagebuffer").html("");
|
||||||
}else{
|
}else{
|
||||||
|
|
@ -573,6 +577,7 @@ Callbacks = {
|
||||||
|
|
||||||
addUser: function(data) {
|
addUser: function(data) {
|
||||||
CyTube._internal_do_not_use_or_you_will_be_banned.addUserToList(data, true);
|
CyTube._internal_do_not_use_or_you_will_be_banned.addUserToList(data, true);
|
||||||
|
console.log(data);
|
||||||
sortUserlist();
|
sortUserlist();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,7 @@ var USEROPTS = {
|
||||||
sort_rank : getOrDefault("sort_rank", true),
|
sort_rank : getOrDefault("sort_rank", true),
|
||||||
sort_afk : getOrDefault("sort_afk", false),
|
sort_afk : getOrDefault("sort_afk", false),
|
||||||
legacy_emote : getOrDefault("legacy_emote", false),
|
legacy_emote : getOrDefault("legacy_emote", false),
|
||||||
|
toke_pm : getOrDefault("toke_pm", false),
|
||||||
yt_source : getOrDefault("yt_source", "vid.puffyan.us"),
|
yt_source : getOrDefault("yt_source", "vid.puffyan.us"),
|
||||||
show_seconds : getOrDefault("show_seconds", false),
|
show_seconds : getOrDefault("show_seconds", false),
|
||||||
default_quality : getOrDefault("default_quality", "auto"),
|
default_quality : getOrDefault("default_quality", "auto"),
|
||||||
|
|
|
||||||
|
|
@ -341,8 +341,13 @@ fpset.ocall = function(){
|
||||||
processOpts();
|
processOpts();
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
|
$("<form>").append(
|
||||||
|
$("<label>").prop("for","qs-toke-pm").html("Legacy Toke Notification: "),
|
||||||
|
$("<input>").prop("id","qs-toke-pm").prop("type","checkbox").addClass("qs-form").change(function() {
|
||||||
|
USEROPTS.toke_pm = $("#qs-toke-pm").prop("checked");
|
||||||
|
processOpts();
|
||||||
|
}),
|
||||||
|
),
|
||||||
])
|
])
|
||||||
fpset.loadSettings();
|
fpset.loadSettings();
|
||||||
}
|
}
|
||||||
|
|
@ -364,6 +369,7 @@ fpset.loadSettings = function(){
|
||||||
$("#qs-show-timestamp").prop("checked", USEROPTS.show_timestamps);
|
$("#qs-show-timestamp").prop("checked", USEROPTS.show_timestamps);
|
||||||
$("#qs-timestamp-second").parent().toggle(USEROPTS.show_timestamps);
|
$("#qs-timestamp-second").parent().toggle(USEROPTS.show_timestamps);
|
||||||
$("#qs-timestamp-second").prop("checked", USEROPTS.show_seconds);
|
$("#qs-timestamp-second").prop("checked", USEROPTS.show_seconds);
|
||||||
|
$("#qs-toke-pm").prop("checked", USEROPTS.toke_pm);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -244,13 +244,15 @@ function addUserDropdown(entry) {
|
||||||
.appendTo(entry)
|
.appendTo(entry)
|
||||||
.hide();
|
.hide();
|
||||||
|
|
||||||
|
var istokebot = (name === "tokebot");
|
||||||
|
|
||||||
$("<strong/>").text(name).appendTo(menu);
|
$("<strong/>").text(name).appendTo(menu);
|
||||||
$("<br/>").appendTo(menu);
|
$("<br/>").appendTo(menu);
|
||||||
|
|
||||||
var btngroup = $("<div/>").addClass("btn-group-vertical").appendTo(menu);
|
var btngroup = $("<div/>").addClass("btn-group-vertical").appendTo(menu);
|
||||||
|
|
||||||
/* give/remove leader (moderator+ only) */
|
/* give/remove leader (moderator+ only) */
|
||||||
if (hasPermission("leaderctl")) {
|
if (hasPermission("leaderctl") && !istokebot) {
|
||||||
var ldr = $("<button/>").addClass("btn btn-xs btn-default")
|
var ldr = $("<button/>").addClass("btn btn-xs btn-default")
|
||||||
.appendTo(btngroup);
|
.appendTo(btngroup);
|
||||||
if(leader) {
|
if(leader) {
|
||||||
|
|
@ -304,7 +306,7 @@ function addUserDropdown(entry) {
|
||||||
});
|
});
|
||||||
|
|
||||||
/* ignore button */
|
/* ignore button */
|
||||||
if (name !== CLIENT.name) {
|
if (name !== CLIENT.name && !istokebot) {
|
||||||
var ignore = $("<button/>").addClass("btn btn-xs btn-default")
|
var ignore = $("<button/>").addClass("btn btn-xs btn-default")
|
||||||
.appendTo(btngroup)
|
.appendTo(btngroup)
|
||||||
.click(function () {
|
.click(function () {
|
||||||
|
|
@ -329,7 +331,7 @@ function addUserDropdown(entry) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* mute buttons */
|
/* mute buttons */
|
||||||
if (hasPermission("mute")) {
|
if (hasPermission("mute") && !istokebot) {
|
||||||
var mute = $("<button/>").addClass("btn btn-xs btn-default")
|
var mute = $("<button/>").addClass("btn btn-xs btn-default")
|
||||||
.text("Mute")
|
.text("Mute")
|
||||||
.click(function () {
|
.click(function () {
|
||||||
|
|
@ -366,7 +368,7 @@ function addUserDropdown(entry) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* kick button */
|
/* kick button */
|
||||||
if(hasPermission("kick")) {
|
if(hasPermission("kick") && !istokebot) {
|
||||||
$("<button/>").addClass("btn btn-xs btn-default")
|
$("<button/>").addClass("btn btn-xs btn-default")
|
||||||
.text("Kick")
|
.text("Kick")
|
||||||
.click(function () {
|
.click(function () {
|
||||||
|
|
@ -383,7 +385,7 @@ function addUserDropdown(entry) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ban buttons */
|
/* ban buttons */
|
||||||
if(hasPermission("ban")) {
|
if(hasPermission("ban") && !istokebot) {
|
||||||
$("<button/>").addClass("btn btn-xs btn-default")
|
$("<button/>").addClass("btn btn-xs btn-default")
|
||||||
.text("Name Ban")
|
.text("Name Ban")
|
||||||
.click(function () {
|
.click(function () {
|
||||||
|
|
@ -477,6 +479,30 @@ function calcUserBreakdown() {
|
||||||
function sortUserlist() {
|
function sortUserlist() {
|
||||||
var slice = Array.prototype.slice;
|
var slice = Array.prototype.slice;
|
||||||
var list = slice.call($("#userlist .userlist_item"));
|
var list = slice.call($("#userlist .userlist_item"));
|
||||||
|
if(//check if tokebot listing is present
|
||||||
|
list.filter(function(u,i){
|
||||||
|
return($(u).children()[1].innerHTML === "tokebot");
|
||||||
|
}).length <= 0
|
||||||
|
){//inject tokebot userlist entry
|
||||||
|
CyTube._internal_do_not_use_or_you_will_be_banned.addUserToList(
|
||||||
|
{
|
||||||
|
name: "tokebot",
|
||||||
|
rank: 3,
|
||||||
|
profile: {
|
||||||
|
test: "!TOKE OR DIE!",
|
||||||
|
image: window.location.origin + "/img/femotes/tokebot.jpg"
|
||||||
|
},
|
||||||
|
meta: {
|
||||||
|
afk: false,
|
||||||
|
aliases: [],
|
||||||
|
ip: "127.0.0.1",
|
||||||
|
muted: false,
|
||||||
|
smuted: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
var list = slice.call($("#userlist .userlist_item"));//pull list again, make sure tokebot gets sorted
|
||||||
|
}
|
||||||
list.sort(function (a, b) {
|
list.sort(function (a, b) {
|
||||||
var r1 = $(a).data("rank");
|
var r1 = $(a).data("rank");
|
||||||
var r2 = $(b).data("rank");
|
var r2 = $(b).data("rank");
|
||||||
|
|
@ -721,6 +747,7 @@ function showUserOptions() {
|
||||||
$("#us-sort-rank").prop("checked", USEROPTS.sort_rank);
|
$("#us-sort-rank").prop("checked", USEROPTS.sort_rank);
|
||||||
$("#us-sort-afk").prop("checked", USEROPTS.sort_afk);
|
$("#us-sort-afk").prop("checked", USEROPTS.sort_afk);
|
||||||
$("#us-legacy-emote").prop("checked", USEROPTS.legacy_emote);
|
$("#us-legacy-emote").prop("checked", USEROPTS.legacy_emote);
|
||||||
|
$("#us-toke-pm").prop("checked", USEROPTS.toke_pm);
|
||||||
$("#us-blink-title").val(USEROPTS.blink_title);
|
$("#us-blink-title").val(USEROPTS.blink_title);
|
||||||
$("#us-ping-sound").val(USEROPTS.boop);
|
$("#us-ping-sound").val(USEROPTS.boop);
|
||||||
$("#us-notifications").val(USEROPTS.notifications);
|
$("#us-notifications").val(USEROPTS.notifications);
|
||||||
|
|
@ -762,6 +789,7 @@ function saveUserOptions() {
|
||||||
USEROPTS.sort_rank = $("#us-sort-rank").prop("checked");
|
USEROPTS.sort_rank = $("#us-sort-rank").prop("checked");
|
||||||
USEROPTS.sort_afk = $("#us-sort-afk").prop("checked");
|
USEROPTS.sort_afk = $("#us-sort-afk").prop("checked");
|
||||||
USEROPTS.legacy_emote = $("#us-legacy-emote").prop("checked");
|
USEROPTS.legacy_emote = $("#us-legacy-emote").prop("checked");
|
||||||
|
USEROPTS.toke_pm = $("#us-toke-pm").prop("checked");
|
||||||
USEROPTS.blink_title = $("#us-blink-title").val();
|
USEROPTS.blink_title = $("#us-blink-title").val();
|
||||||
USEROPTS.boop = $("#us-ping-sound").val();
|
USEROPTS.boop = $("#us-ping-sound").val();
|
||||||
USEROPTS.notifications = $("#us-notifications").val();
|
USEROPTS.notifications = $("#us-notifications").val();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue