discordwrapper.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Work in progress
  2. const {Client} = require('discord-rpc')
  3. let client
  4. let activity
  5. exports.initRPC = function(genSettings, servSettings, initialDetails = 'Waiting for Client..'){
  6. client = new Client({ transport: 'ipc' })
  7. activity = {
  8. details: initialDetails,
  9. state: 'Server: ' + servSettings.shortId,
  10. largeImageKey: servSettings.largeImageKey,
  11. largeImageText: servSettings.largeImageText,
  12. smallImageKey: genSettings.smallImageKey,
  13. smallImageText: genSettings.smallImageText,
  14. startTimestamp: new Date().getTime() / 1000,
  15. instance: false
  16. }
  17. client.on('ready', () => {
  18. console.log('%c[Discord Wrapper]', 'color: #a02d2a; font-weight: bold', 'Discord RPC Connected')
  19. client.setActivity(activity)
  20. })
  21. client.login({clientId: genSettings.clientId}).catch(error => {
  22. if(error.message.includes('ENOENT')) {
  23. console.log('%c[Discord Wrapper]', 'color: #a02d2a; font-weight: bold', 'Unable to initialize Discord Rich Presence, no client detected.')
  24. } else {
  25. console.log('%c[Discord Wrapper]', 'color: #a02d2a; font-weight: bold', 'Unable to initialize Discord Rich Presence: ' + error.message, error)
  26. }
  27. })
  28. }
  29. exports.updateDetails = function(details){
  30. activity.details = details
  31. client.setActivity(activity)
  32. }
  33. exports.shutdownRPC = function(){
  34. if(!client) return
  35. client.clearActivity()
  36. client.destroy()
  37. client = null
  38. activity = null
  39. }