discordwrapper.js 1.5 KB

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