Advertisement
SgtBreadStick

Untitled

Apr 9th, 2018
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. // EURO TRUCK SIMULATOR 2 - RICH PRESENCE
  2. // Version 2.0 BETA
  3. // Made by SgtBreadStick, Rein & Lasse
  4. // Edited by Josh Menzel to work with ETCARS
  5. // ETCARS plugin created by dowmeister, edited by Josh Menzel
  6.  
  7. const DiscordRPC = require('discord-rpc');
  8. var ip = require("ip");
  9. var ETCarsClient = require('etcars-node-client');
  10. var etcars = new ETCarsClient();
  11. const rpc = new DiscordRPC.Client({
  12. transport: 'ipc'
  13. });
  14.  
  15. etcars.on('data', function(data) {
  16. if (!rpc) console.log("Couldn't find discord-rpc!");
  17. //use a try / catch as sometimes the data isn't there when first connecting...plus it's json parsing...
  18. try{
  19. if(data.telemetry.trailerConnected === true) {
  20. //Game Connected - Job (Driving)
  21. //console.log("Yeah! A job!");
  22. if(data.telemetry.truck.lightsBeamLowOn === true) {
  23. rpc.setActivity({
  24. state: `Delivering from ${data.telemetry.job.sourceCity} to ${data.telemetry.job.destinationCity}`,
  25. details: `Driving at ${Math.round(data.telemetry.speed)} mph`,
  26. smallImageText: `${data.telemetry.make} ${data.telemetry.model} - At ${Math.round(data.telemetry.odometer)} Miles`,
  27. smallImageKey: `brand_${data.telemetry.truck.id}`,
  28. largeImageText: `Estimated Income: €${data.telemetry.income}`,
  29. largeImageKey: `ets2rpc_night`,
  30. })
  31. } else if(data.telemetry.truck.wipersOn === true) {
  32. rpc.setActivity({
  33. state: `Delivering from ${data.telemetry.job.sourceCity} to ${data.telemetry.job.destinationCity}`,
  34. details: `Driving at ${Math.round(data.telemetry.truck.speed)} mph`,
  35. smallImageText: `${data.telemetry.truck.make} ${data.telemetry.truck.model} - At ${Math.round(data.telemetry.truck.odometer)} Miles`,
  36. smallImageKey: `brand_${data.telemetry.truck.id}`,
  37. largeImageText: `Estimated Income: €${data.telemetry.job.income}`,
  38. largeImageKey: `ets2rpc_rain`,
  39. })
  40. } else {
  41. rpc.setActivity({
  42. state: `Delivering from ${data.truck.telemetry.job.sourceCity} to ${data.truck.telemetry.job.destinationCity}`,
  43. details: `Driving at ${Math.round(data.telemetry.speed)} km/h`,
  44. smallImageText: `${data.telemetry.truck.make} ${data.telemetry.truck.model} - At ${Math.round(data.telemetry.truck.odometer)} KMs`,
  45. smallImageKey: `brand_${data.telemetry.truck.id}`,
  46. largeImageText: `Estimated Income: €${data.telemetry.job.income}`,
  47. largeImageKey: `ets2rpc_day`,
  48. })
  49. }
  50. } else {
  51. //Game Connected - Driving
  52. //console.log("Game Connected - No Job");
  53. if(data.telemetry.truck.lightsBeamLowOn === true) {
  54. rpc.setActivity({
  55. state: `Freeroaming`,
  56. details: `Driving at ${Math.round(data.telemetry.truck.speed)} km/h`,
  57. smallImageText: `${data.telemetry.truck.make} ${data.telemetry.truck.model} - At ${Math.round(data.telemetry.truck.odometer)} KMs`,
  58. smallImageKey: `brand_${data.telemetry.truck.id}`,
  59. largeImageKey: `ets2rpc_night`,
  60. })
  61. } else if(data.telemetry.truck.wipersOn === true) {
  62. rpc.setActivity({
  63. state: `Freeroaming`,
  64. details: `Driving at ${Math.round(data.telemetry.truck.speed)} km/h`,
  65. smallImageText: `${data.telemetry.truck.make} ${data.telemetry.truck.model} - At ${Math.round(data.telemetry.truck.odometer)} KMs`,
  66. smallImageKey: `brand_${data.telemetry.truck.id}`,
  67. largeImageKey: `ets2rpc_rain`,
  68. })
  69. } else {
  70. rpc.setActivity({
  71. state: `Freeroaming`,
  72. details: `Driving at ${Math.round(data.telemetry.truck.speed)} km/h`,
  73. smallImageText: `${data.telemetry.truck.make} ${data.telemetry.truck.model} - At ${Math.round(data.telemetry.truck.odometer)} KMs`,
  74. smallImageKey: `brand_${data.telemetry.truck.id}`,
  75. largeImageKey: `ets2rpc_day`,
  76. })
  77. }
  78. }
  79. catch(error)
  80. {
  81. console.log(error);
  82. }
  83. });
  84.  
  85. etcars.on('connect', function(data) {
  86. rpc.setActivity({
  87. details: `Game Started`,
  88. state: `Waiting for data...`,
  89. largeImageKey: `ets2rpc_idle`,
  90. largeImageText: `Version: 2.0 BETA`,
  91. });
  92. });
  93.  
  94. etcars.on('error', function(data) {
  95. rpc.setActivity({
  96. details: `Plugin Error`,
  97. state: `Waiting for Game...`,
  98. largeImageKey: `ets2rpc_idle`,
  99. largeImageText: `Version: 2.0 BETA`,
  100. });
  101. });
  102.  
  103.  
  104.  
  105. rpc.on('ready', () => {
  106. console.log(`Starting Presence...`);
  107. rpc.setActivity({
  108. details: `Game Not Started`,
  109. state: `Waiting for Game...`,
  110. largeImageKey: `ets2rpc_idle`,
  111. largeImageText: `Version: 2.0 BETA`,
  112. });
  113. etcars.connect();
  114. });
  115.  
  116. rpc.login("426512878108016647").catch(console.error);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement