mirror of
				https://github.com/ninjamuffin99/Funkin.git
				synced 2025-10-31 00:14:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| package funkin.api.discord;
 | |
| 
 | |
| import Sys.sleep;
 | |
| #if FEATURE_DISCORD_RPC
 | |
| import discord_rpc.DiscordRpc;
 | |
| #end
 | |
| 
 | |
| class DiscordClient
 | |
| {
 | |
|   #if FEATURE_DISCORD_RPC
 | |
|   public function new()
 | |
|   {
 | |
|     trace("Discord Client starting...");
 | |
|     DiscordRpc.start(
 | |
|       {
 | |
|         clientID: "814588678700924999",
 | |
|         onReady: onReady,
 | |
|         onError: onError,
 | |
|         onDisconnected: onDisconnected
 | |
|       });
 | |
|     trace("Discord Client started.");
 | |
| 
 | |
|     while (true)
 | |
|     {
 | |
|       DiscordRpc.process();
 | |
|       sleep(2);
 | |
|       // trace("Discord Client Update");
 | |
|     }
 | |
| 
 | |
|     DiscordRpc.shutdown();
 | |
|   }
 | |
| 
 | |
|   public static function shutdown()
 | |
|   {
 | |
|     DiscordRpc.shutdown();
 | |
|   }
 | |
| 
 | |
|   static function onReady()
 | |
|   {
 | |
|     DiscordRpc.presence(
 | |
|       {
 | |
|         details: "In the Menus",
 | |
|         state: null,
 | |
|         largeImageKey: 'icon',
 | |
|         largeImageText: "Friday Night Funkin'"
 | |
|       });
 | |
|   }
 | |
| 
 | |
|   static function onError(_code:Int, _message:String)
 | |
|   {
 | |
|     trace('Error! $_code : $_message');
 | |
|   }
 | |
| 
 | |
|   static function onDisconnected(_code:Int, _message:String)
 | |
|   {
 | |
|     trace('Disconnected! $_code : $_message');
 | |
|   }
 | |
| 
 | |
|   public static function initialize()
 | |
|   {
 | |
|     var DiscordDaemon = sys.thread.Thread.create(() -> {
 | |
|       new DiscordClient();
 | |
|     });
 | |
|     trace("Discord Client initialized");
 | |
|   }
 | |
| 
 | |
|   public static function changePresence(details:String, ?state:String, ?smallImageKey:String, ?hasStartTimestamp:Bool, ?endTimestamp:Float)
 | |
|   {
 | |
|     var startTimestamp:Float = if (hasStartTimestamp) Date.now().getTime() else 0;
 | |
| 
 | |
|     if (endTimestamp > 0)
 | |
|     {
 | |
|       endTimestamp = startTimestamp + endTimestamp;
 | |
|     }
 | |
| 
 | |
|     DiscordRpc.presence(
 | |
|       {
 | |
|         details: details,
 | |
|         state: state,
 | |
|         largeImageKey: 'icon',
 | |
|         largeImageText: "Friday Night Funkin'",
 | |
|         smallImageKey: smallImageKey,
 | |
|         // Obtained times are in milliseconds so they are divided so Discord can use it
 | |
|         startTimestamp: Std.int(startTimestamp / 1000),
 | |
|         endTimestamp: Std.int(endTimestamp / 1000)
 | |
|       });
 | |
| 
 | |
|     // trace('Discord RPC Updated. Arguments: $details, $state, $smallImageKey, $hasStartTimestamp, $endTimestamp');
 | |
|   }
 | |
|   #end
 | |
| }
 |