Finished up with toke logic.
This commit is contained in:
parent
d85f906a69
commit
ffd2094f16
|
|
@ -88,6 +88,10 @@ module.exports = class{
|
||||||
this.server.io.in(chan).emit("chatMessage", {user, flair, highLevel, msg, type});
|
this.server.io.in(chan).emit("chatMessage", {user, flair, highLevel, msg, type});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
relayServerWisper(socket, user, flair, highLevel, msg, type){
|
||||||
|
socket.emit("chatMessage", {user, flair, highLevel, msg, type});
|
||||||
|
}
|
||||||
|
|
||||||
relayGlobalChat(user, flair, highLevel, msg, type = 'chat'){
|
relayGlobalChat(user, flair, highLevel, msg, type = 'chat'){
|
||||||
this.server.io.emit("chatMessage", {user, flair, highLevel, msg, type});
|
this.server.io.emit("chatMessage", {user, flair, highLevel, msg, type});
|
||||||
}
|
}
|
||||||
|
|
@ -96,6 +100,14 @@ module.exports = class{
|
||||||
this.relayGlobalChat("Tokebot", "", 10, msg, "toke");
|
this.relayGlobalChat("Tokebot", "", 10, msg, "toke");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
relayTokeWhisper(socket, msg){
|
||||||
|
this.relayServerWisper(socket, "Tokebot", "", 10, msg, "tokewhisper");
|
||||||
|
}
|
||||||
|
|
||||||
|
relayGlobalTokeWhisper(msg){
|
||||||
|
this.relayGlobalChat("Tokebot", "", 10, msg, "tokewhisper");
|
||||||
|
}
|
||||||
|
|
||||||
relayServerAnnouncement(msg){
|
relayServerAnnouncement(msg){
|
||||||
//This codebase is always at a 10
|
//This codebase is always at a 10
|
||||||
this.relayGlobalChat("Server", "", 10, msg, "announcement");
|
this.relayGlobalChat("Server", "", 10, msg, "announcement");
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ module.exports = class tokebot{
|
||||||
|
|
||||||
//Create counter variable
|
//Create counter variable
|
||||||
this.tokeCounter = 0;
|
this.tokeCounter = 0;
|
||||||
|
this.cooldownCounter = 0;
|
||||||
|
|
||||||
//Create tokers list
|
//Create tokers list
|
||||||
this.tokers = [];
|
this.tokers = [];
|
||||||
|
|
@ -77,12 +78,12 @@ module.exports = class tokebot{
|
||||||
//Add the toking user to
|
//Add the toking user to
|
||||||
this.tokers.push(commandObj.socket.user.user);
|
this.tokers.push(commandObj.socket.user.user);
|
||||||
}else{
|
}else{
|
||||||
console.log('already in toke');
|
this.chatHandler.relayTokeWhisper(commandObj.socket, "You're already taking part in this toke!");
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
//if the cooldownTimer exists (we're cooling down the toke)
|
//if the cooldownTimer exists (we're cooling down the toke)
|
||||||
console.log('cooldown toke');
|
this.chatHandler.relayTokeWhisper(commandObj.socket, `Please wait ${this.cooldownCounter} seconds before starting a new group toke.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Toke command found, don't send as chat
|
//Toke command found, don't send as chat
|
||||||
|
|
@ -94,22 +95,25 @@ module.exports = class tokebot{
|
||||||
}
|
}
|
||||||
|
|
||||||
countdown(){
|
countdown(){
|
||||||
//if we have more time to go
|
//If we're in the last three seconds
|
||||||
if(this.tokeCounter > 3){
|
if(this.tokeCounter <= 3 && this.tokeCounter > 0){
|
||||||
console.log(`toke in: ${this.tokeCounter}`);
|
|
||||||
}else if(this.tokeCounter > 0){
|
|
||||||
//Callout the last three seconds
|
//Callout the last three seconds
|
||||||
this.chatHandler.relayTokeCallout(`${this.tokeCounter}...`);
|
this.chatHandler.relayTokeCallout(`${this.tokeCounter}...`);
|
||||||
}else{
|
//if the toke is over
|
||||||
//If we have more than one toker
|
}else if(this.tokeCounter < 0){
|
||||||
|
//if we only had one toker
|
||||||
if(this.tokers.length > 1){
|
if(this.tokers.length > 1){
|
||||||
|
//call out the solo toke
|
||||||
this.chatHandler.relayTokeCallout(`Take a toke ${this.tokers.join(', ')}! ${this.tokers.length} tokers!`);
|
this.chatHandler.relayTokeCallout(`Take a toke ${this.tokers.join(', ')}! ${this.tokers.length} tokers!`);
|
||||||
|
//if we had multiple tokers
|
||||||
}else{
|
}else{
|
||||||
|
//call out the toke
|
||||||
this.chatHandler.relayTokeCallout(`Take a toke ${this.tokers[0]}.`);
|
this.chatHandler.relayTokeCallout(`Take a toke ${this.tokers[0]}.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Set the cooldown timer
|
//Set the toke cooldown
|
||||||
this.cooldownTimer = setTimeout(this.endCooldown.bind(this), 1000 * this.cooldownTime);
|
this.cooldownCounter = this.cooldownTime;
|
||||||
|
this.cooldownTimer = setTimeout(this.cooldown.bind(this), 1000);
|
||||||
|
|
||||||
//Empty out the tokers array
|
//Empty out the tokers array
|
||||||
this.tokers = [];
|
this.tokers = [];
|
||||||
|
|
@ -127,8 +131,18 @@ module.exports = class tokebot{
|
||||||
this.tokeTimer = setTimeout(this.countdown.bind(this), 1000)
|
this.tokeTimer = setTimeout(this.countdown.bind(this), 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
endCooldown(){
|
cooldown(){
|
||||||
this.cooldownTimer = null;
|
//If the cooldown timer isn't over
|
||||||
|
if(this.cooldownCounter > 0){
|
||||||
|
//Decrement toke time
|
||||||
|
this.cooldownCounter--;
|
||||||
|
//try again in another second
|
||||||
|
this.cooldownTimer = setTimeout(this.cooldown.bind(this), 1000);
|
||||||
|
//If the cooldown is over
|
||||||
|
}else{
|
||||||
|
//Null out the cooldown timer
|
||||||
|
this.cooldownTimer = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -151,6 +151,7 @@ p.panel-head-element{
|
||||||
.chat-entry{
|
.chat-entry{
|
||||||
display: flex;
|
display: flex;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
|
font-size: 10pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat-entry-username{
|
.chat-entry-username{
|
||||||
|
|
@ -196,7 +197,7 @@ span.user-entry{
|
||||||
}
|
}
|
||||||
|
|
||||||
.whisper{
|
.whisper{
|
||||||
font-size: 0.7em;
|
font-size: 7pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
.announcement{
|
.announcement{
|
||||||
|
|
@ -260,3 +261,12 @@ span.user-entry{
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0.5em;
|
margin: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.toke{
|
||||||
|
text-align: center;
|
||||||
|
font-size: 9pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tokewhisper{
|
||||||
|
font-size: 9pt;
|
||||||
|
}
|
||||||
|
|
@ -228,7 +228,6 @@ p.channel-guide-entry-item{
|
||||||
.chat-entry{
|
.chat-entry{
|
||||||
background-color: var(--bg2);
|
background-color: var(--bg2);
|
||||||
border-bottom: 1px solid var(--bg2-alt1);
|
border-bottom: 1px solid var(--bg2-alt1);
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.userlist-color0{/*green0*/
|
.userlist-color0{/*green0*/
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,7 @@ class chatPostprocessor{
|
||||||
|
|
||||||
handleChatType(){
|
handleChatType(){
|
||||||
if(this.rawData.type == "whisper"){
|
if(this.rawData.type == "whisper"){
|
||||||
|
//add whisper class
|
||||||
this.chatBody.classList.add('whisper');
|
this.chatBody.classList.add('whisper');
|
||||||
}else if(this.rawData.type == "announcement"){
|
}else if(this.rawData.type == "announcement"){
|
||||||
//Squash the high-level
|
//Squash the high-level
|
||||||
|
|
@ -88,11 +89,21 @@ class chatPostprocessor{
|
||||||
//Get the username and make it into an announcement title (little hacky but this *IS* postprocessing)
|
//Get the username and make it into an announcement title (little hacky but this *IS* postprocessing)
|
||||||
const userNode = this.chatEntry.querySelector('.chat-entry-username');
|
const userNode = this.chatEntry.querySelector('.chat-entry-username');
|
||||||
userNode.innerHTML = `${userNode.innerHTML.slice(0,-2)} Announcement`;
|
userNode.innerHTML = `${userNode.innerHTML.slice(0,-2)} Announcement`;
|
||||||
|
|
||||||
//Add/remove relevant classes
|
//Add/remove relevant classes
|
||||||
userNode.classList.remove('chat-entry-username');
|
userNode.classList.remove('chat-entry-username');
|
||||||
userNode.classList.add('announcement-title');
|
userNode.classList.add('announcement-title');
|
||||||
this.chatBody.classList.add('announcement-body');
|
this.chatBody.classList.add('announcement-body');
|
||||||
this.chatEntry.classList.add('announcement');
|
this.chatEntry.classList.add('announcement');
|
||||||
|
}else if(this.rawData.type == "toke" || this.rawData.type == "tokewhisper"){
|
||||||
|
//Squash the high-level
|
||||||
|
this.chatEntry.querySelector('.high-level').remove();
|
||||||
|
|
||||||
|
//remove the username
|
||||||
|
this.chatEntry.querySelector('.chat-entry-username').remove();
|
||||||
|
|
||||||
|
//Add toke/tokewhisper class
|
||||||
|
this.chatEntry.classList.add(this.rawData.type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue