import {Status} from './status'; // Only for testing as of right now -> Experimental const ClientId = '551884486351126528'; const DiscordRPC = require('discord-rich-presence')(ClientId); const slogans = [ 'free OpenSource 2D MMORPG', 'Community made', 'Join a Server or start your own' ] const dataSet: {[key:string]:{name:string, logo:string, description:string}} = { 'server.tmw2.org':{ name: 'Moubootaur Legends', logo: 'tmw2', description: 'Playing on Moubootaur Legends ⎛tmw2.org⎠' }, 'world.evolonline.org':{ name: 'Evol Online', logo: 'evol', description: 'Playing on Evol Online ⎛evolonline.org⎠' }, 'server.themanaworld.org':{ name: 'The Mana World', logo: 'tmw', description: 'Playing on The Mana World ⎛themanaworld.org⎠' }, 'noServer':{ name: 'Manaplus', logo: 'manaplus', description: 'Playing on any of the M+ servers' } } async function setActivity() { const status = Status.getStatus() const slogan = slogans[Math.floor(Math.random() * slogans.length)] const data = dataSet[status.gameStatus.server] const details = status.gameStatus.server === 'Launcher' ? 'in Launcher Menu' : `🎮 ${data.name} 🎮` const logo = data && data.logo DiscordRPC.updatePresence({ state: `»${slogan}«`, details, largeImageKey: logo, largeImageText: data && data.description, //smallImageKey: , //smallImageText: 'string', //partyId: 'ae488379-351d-4a4f-ad32-2b9b01c91657', //partySize: 1, //partyMax: 999, //matchSecret: 'string', //joinSecret: 'string', //spectateSecret: 'string', //startTimestamp }); } DiscordRPC.on('connected', () => { setActivity(); // activity can only be set every 15 seconds setInterval(() => { setActivity(); }, 15e3); }); DiscordRPC.on("error", console.log); DiscordRPC.on('join', (secret:string) => { console.log('we should join with', secret); }); DiscordRPC.on('spectate', (secret:string) => { console.log('we should spectate with', secret); }); // DiscordRPC.on('joinRequest', (user) => { // if (user.discriminator === '1337') { // DiscordRPC.reply(user, 'YES'); // } else { // DiscordRPC.reply(user, 'IGNORE'); // } // }); export function quit(){ DiscordRPC.disconnect(); console.log("Shutting down Discord RPC integration"); } process.on('unhandledRejection', console.error);