From 7c78c5572fe48f5a1ab4e2f096332aa05d1fd48c Mon Sep 17 00:00:00 2001 From: Luna Date: Mon, 26 Jul 2021 15:02:20 -0700 Subject: [PATCH] Added command support --- chat.css | 7 +++++- chat.js | 65 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 62 insertions(+), 10 deletions(-) diff --git a/chat.css b/chat.css index 61eab92..8f5f87d 100644 --- a/chat.css +++ b/chat.css @@ -1,9 +1,14 @@ html { background: #F7A8B8; text-align: center; - font-family: "Lucida Console", "Courier New", monospace; + font-family: "Linotte", "Lucida Console", monospace; } +@font-face { + font-family: Linotte; + src: url(LinotteRegular.otf); + } + form { width: 100%; overflow:hidden; diff --git a/chat.js b/chat.js index 0c4794f..325a863 100644 --- a/chat.js +++ b/chat.js @@ -27,7 +27,7 @@ form.addEventListener("submit", async function (event) { localStorage.removeItem('username') form.reset() } - + return formMessage; }) //SEND MESSAGE FETCH FUNCTION @@ -42,6 +42,7 @@ async function sendMessage() { body: JSON.stringify(sendMessageInfo), }) form.reset() + modCommand() } @@ -55,7 +56,17 @@ async function fetchMessages() { document.getElementById("chatbox").innerHTML = "" for (const message of recievedMessages) { - printText(message.user.bold().toString() + ": " + message.body.toString()); + + let leftBracket = '(' + let rightBracket = ')' + let space = ' ' + + if (message.pronouns === '' || message.pronouns === 'none' || message.pronouns === null) { + leftBracket = '' + rightBracket = '' + space = '' + } + printText(message.user.bold().toString() + space + leftBracket.small() + message.pronouns.small().toString() + rightBracket.small() + ": " + message.body.toString()); } @@ -90,12 +101,48 @@ function loggedIn() { loggedIn() +//MODERATION + +async function modCommand() { +let action = '' +let target = '' + +if (formMessage.startsWith('/ban')) { + action = "Ban" + target = formMessage.replace('/ban ', '') + sendCommand() +} else if (formMessage.startsWith('/kick')) { + action = "Kick" + target = formMessage.replace('/kick ', '') + sendCommand() +} else if (formMessage.startsWith('/promote')) { + action = "Promote" + target = formMessage.replace('/promote ', '') + sendCommand() +} else if (formMessage.startsWith('/demote')) { + action = "Demote" + target = formMessage.replace('/demote ', '') + sendCommand() +} else { + return; +} + +async function sendCommand() { + let sendCommand = { "name": username, "action": action, "target": target } + const response = await fetch('/api/mod/', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(sendCommand), + }); + if (response.status === 'ok') { + return; + } else { + printText('Error Issuing Command. Are you an Admin or Mod?') + } + } +} + -//REVIECE USERS PRONOUNS -async function getPronouns() { -const response = await fetch(`api/users/${username}/`); -const data = await response.json(); -pronouns = data.pronouns -return pronouns; -} \ No newline at end of file