ChancellorCeti

Untitled

Feb 9th, 2022 (edited)
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const CLIENT_ID = 'keECa1lpVtgABa1F';
  2. const splash=document.querySelector('.splash');
  3. const stuffjs=document.querySelector('.stuff');
  4. var yourname;
  5.  
  6. /*function createMenuItem(name) {
  7.   let inputname = document.createElement('input');
  8.   inputname.placeholder = name;
  9.   inputname.className='inputnamefield';
  10.   return inputname;
  11. }*/
  12. /*function createButton(btnname){
  13.   let btn = document.createElement('input');
  14.   btn.type = 'submit';
  15.   btn.className='submitbtn';
  16.   return btn;
  17. }*/
  18. const inputnameagain=document.querySelector('.inputnamefield');
  19. const buttoon=document.querySelector('.submitbtn');
  20. buttoon.addEventListener('click',(e) => {
  21.   setTimeout(()=>{
  22.   yourname=inputboxstuff.value()
  23.   },1);
  24. });
  25.  
  26.  
  27.  
  28.  
  29.  
  30. /*document.addEventListener('DOMContentLoaded',(e)=>{
  31.   setTimeout(()=>{
  32.     splash.classList.add('display-none');
  33.    
  34.   },2000);
  35. })
  36. splash.addEventListener('mousedown',
  37. (e)=>{
  38.   setTimeout(()=>{
  39.     splash.parentElement.removeChild(splash);
  40.    
  41.   },1);
  42. })*/
  43.  
  44.  
  45. const drone = new ScaleDrone(CLIENT_ID, {
  46.   data: { // Will be sent out as clientData via events
  47.     name: yourname,
  48.     color: getRandomColor(),
  49.   },
  50. });
  51.  
  52. let members = [];
  53.  
  54. drone.on('open', error => {
  55.   if (error) {
  56.     return console.error(error);
  57.   }
  58.   console.log('Successfully connected to Scaledrone');
  59.  
  60.   const room = drone.subscribe('observable-room');
  61.   room.on('open', error => {
  62.     if (error) {
  63.       return console.error(error);
  64.     }
  65.     console.log('Successfully joined room');
  66.   });
  67.  
  68.   room.on('members', m => {
  69.     members = m;
  70.     updateMembersDOM();
  71.   });
  72.  
  73.   room.on('member_join', member => {
  74.     members.push(member);
  75.     updateMembersDOM();
  76.   });
  77.  
  78.   room.on('member_leave', ({id}) => {
  79.     const index = members.findIndex(member => member.id === id);
  80.     members.splice(index, 1);
  81.     updateMembersDOM();
  82.   });
  83.  
  84.   room.on('data', (text, member) => {
  85.     if (member) {
  86.       addMessageToListDOM(text, member);
  87.     } else {
  88.       // Message is from server
  89.     }
  90.   });
  91. });
  92.  
  93. drone.on('close', event => {
  94.   console.log('Connection was closed', event);
  95. });
  96.  
  97. drone.on('error', error => {
  98.   console.error(error);
  99. });
  100.  
  101. function getRandomName() {
  102.   const adjs = ["autumn", "hidden", "bitter", "misty", "silent", "empty", "dry", "dark", "summer", "icy", "delicate", "quiet", "white", "cool", "spring", "winter", "patient", "twilight", "dawn", "crimson", "wispy", "weathered", "blue", "billowing", "broken", "cold", "damp", "falling", "frosty", "green", "long", "late", "lingering", "bold", "little", "morning", "muddy", "old", "red", "rough", "still", "small", "sparkling", "throbbing", "shy", "wandering", "withered", "wild", "black", "young", "holy", "solitary", "fragrant", "aged", "snowy", "proud", "floral", "restless", "divine", "polished", "ancient", "purple", "lively", "nameless"];
  103.   const nouns = ["waterfall", "river", "breeze", "moon", "rain", "wind", "sea", "morning", "snow", "lake", "sunset", "pine", "shadow", "leaf", "dawn", "glitter", "forest", "hill", "cloud", "meadow", "sun", "glade", "bird", "brook", "butterfly", "bush", "dew", "dust", "field", "fire", "flower", "firefly", "feather", "grass", "haze", "mountain", "night", "pond", "darkness", "snowflake", "silence", "sound", "sky", "shape", "surf", "thunder", "violet", "water", "wildflower", "wave", "water", "resonance", "sun", "wood", "dream", "cherry", "tree", "fog", "frost", "voice", "paper", "frog", "smoke", "star"];
  104.   return (
  105.     adjs[Math.floor(Math.random() * adjs.length)] +
  106.     "_" +
  107.     nouns[Math.floor(Math.random() * nouns.length)]
  108.   );
  109. }
  110.  
  111. function getRandomColor() {
  112.   return '#' + Math.floor(Math.random() * 0xFFFFFF).toString(16);
  113. }
  114.  
  115. //------------- DOM STUFF
  116.  
  117. const DOM = {
  118.   membersCount: document.querySelector('.members-count'),
  119.   membersList: document.querySelector('.members-list'),
  120.   messages: document.querySelector('.messages'),
  121.   input: document.querySelector('.message-form__input'),
  122.   form: document.querySelector('.message-form'),
  123. };
  124.  
  125. DOM.form.addEventListener('submit', sendMessage);
  126.  
  127. function sendMessage() {
  128.   const value = DOM.input.value;
  129.   if (value === '') {
  130.     return;
  131.   }
  132.   DOM.input.value = '';
  133.   drone.publish({
  134.     room: 'observable-room',
  135.     message: value,
  136.   });
  137. }
  138.  
  139. function createMemberElement(member) {
  140.   const { name, color } = member.clientData;
  141.   const el = document.createElement('div');
  142.   el.appendChild(document.createTextNode(name));
  143.   el.className = 'member';
  144.   el.style.color = color;
  145.   return el;
  146. }
  147.  
  148. function updateMembersDOM() {
  149.   DOM.membersCount.innerText = `${members.length} users in room:`;
  150.   DOM.membersList.innerHTML = '';
  151.   members.forEach(member =>
  152.     DOM.membersList.appendChild(createMemberElement(member))
  153.   );
  154. }
  155.  
  156. function createMessageElement(text, member) {
  157.   const el = document.createElement('div');
  158.   el.appendChild(createMemberElement(member));
  159.   el.appendChild(document.createTextNode(text));
  160.   el.className = 'message';
  161.   return el;
  162. }
  163.  
  164. function addMessageToListDOM(text, member) {
  165.   const el = DOM.messages;
  166.   const wasTop = el.scrollTop === el.scrollHeight - el.clientHeight;
  167.   el.appendChild(createMessageElement(text, member));
  168.   if (wasTop) {
  169.     el.scrollTop = el.scrollHeight - el.clientHeight;
  170.   }
  171. }
Add Comment
Please, Sign In to add comment