Add Discord Rich Presence
This commit is contained in:
@@ -93,6 +93,7 @@ rm -rf libs mono.tar.bz2
|
||||
build_appimage() {
|
||||
MOD_ID=${1}
|
||||
DISPLAY_NAME=${2}
|
||||
DISCORD_ID=${3}
|
||||
APPDIR="$(pwd)/${MOD_ID}.appdir"
|
||||
APPIMAGE="OpenRA-$(echo "${DISPLAY_NAME}" | sed 's/ /-/g')${SUFFIX}-x86_64.AppImage"
|
||||
|
||||
@@ -107,7 +108,7 @@ build_appimage() {
|
||||
sed "s/{MODID}/${MOD_ID}/g" AppRun.in | sed "s/{MODNAME}/${DISPLAY_NAME}/g" > AppRun.temp
|
||||
install -m 0755 AppRun.temp "${APPDIR}/AppRun"
|
||||
|
||||
sed "s/{MODID}/${MOD_ID}/g" openra.desktop.in | sed "s/{MODNAME}/${DISPLAY_NAME}/g" | sed "s/{TAG}/${TAG}/g" > temp.desktop
|
||||
sed "s/{MODID}/${MOD_ID}/g" openra.desktop.in | sed "s/{MODNAME}/${DISPLAY_NAME}/g" | sed "s/{TAG}/${TAG}/g" | sed "s/{DISCORDAPPID}/${DISCORD_ID}/g" > temp.desktop
|
||||
echo "StartupWMClass=openra-${MOD_ID}-${TAG}" >> temp.desktop
|
||||
|
||||
install -Dm 0755 temp.desktop "${APPDIR}/usr/share/applications/openra-${MOD_ID}.desktop"
|
||||
@@ -154,9 +155,9 @@ build_appimage() {
|
||||
rm -rf "${APPDIR}"
|
||||
}
|
||||
|
||||
build_appimage "ra" "Red Alert"
|
||||
build_appimage "cnc" "Tiberian Dawn"
|
||||
build_appimage "d2k" "Dune 2000"
|
||||
build_appimage "ra" "Red Alert" "699222659766026240"
|
||||
build_appimage "cnc" "Tiberian Dawn" "699223250181292033"
|
||||
build_appimage "d2k" "Dune 2000" "712711732770111550"
|
||||
|
||||
# Clean up
|
||||
rm -rf openra-mod.temp openra-mod-server.temp openra-mod-utility.temp temp.desktop temp.xml AppRun.temp appimagetool-x86_64.AppImage squashfs-root "${BUILTDIR}"
|
||||
|
||||
@@ -9,4 +9,4 @@ Icon=openra-{MODID}
|
||||
Exec=openra-{MODID} %U
|
||||
Terminal=false
|
||||
Categories=Game;StrategyGame;
|
||||
MimeType=x-scheme-handler/openra-{MODID}-{TAG};
|
||||
MimeType=x-scheme-handler/openra-{MODID}-{TAG};x-scheme-handler/discord-{DISCORDAPPID};
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# MACOS_DEVELOPER_PASSWORD: App-specific password for the developer account
|
||||
#
|
||||
|
||||
LAUNCHER_TAG="osx-launcher-20200328"
|
||||
LAUNCHER_TAG="osx-launcher-20200525"
|
||||
|
||||
if [ $# -ne "2" ]; then
|
||||
echo "Usage: $(basename "$0") tag outputdir"
|
||||
@@ -54,6 +54,7 @@ populate_bundle() {
|
||||
TEMPLATE_DIR="${BUILTDIR}/${1}"
|
||||
MOD_ID=${2}
|
||||
MOD_NAME=${3}
|
||||
DISCORD_APPID=${4}
|
||||
cp -r "${BUILTDIR}/OpenRA.app" "${TEMPLATE_DIR}"
|
||||
|
||||
# Assemble multi-resolution icon
|
||||
@@ -63,6 +64,7 @@ populate_bundle() {
|
||||
modify_plist "{MOD_ID}" "${MOD_ID}" "${TEMPLATE_DIR}/Contents/Info.plist"
|
||||
modify_plist "{MOD_NAME}" "${MOD_NAME}" "${TEMPLATE_DIR}/Contents/Info.plist"
|
||||
modify_plist "{JOIN_SERVER_URL_SCHEME}" "openra-${MOD_ID}-${TAG}" "${TEMPLATE_DIR}/Contents/Info.plist"
|
||||
modify_plist "{ADDITIONAL_URL_SCHEMES}" "<string>discord-${DISCORD_APPID}</string>" "${TEMPLATE_DIR}/Contents/Info.plist"
|
||||
}
|
||||
|
||||
# Deletes from the first argument's mod dirs all the later arguments
|
||||
@@ -98,15 +100,15 @@ make install-core gameinstalldir="/Contents/Resources/" DESTDIR="${BUILTDIR}/Ope
|
||||
make install-dependencies TARGETPLATFORM=osx-x64 gameinstalldir="/Contents/Resources/" DESTDIR="${BUILTDIR}/OpenRA.app"
|
||||
popd > /dev/null || exit 1
|
||||
|
||||
populate_bundle "OpenRA - Red Alert.app" "ra" "Red Alert"
|
||||
populate_bundle "OpenRA - Red Alert.app" "ra" "Red Alert" "699222659766026240"
|
||||
delete_mods "OpenRA - Red Alert.app" "cnc" "d2k"
|
||||
sign_bundle "OpenRA - Red Alert.app"
|
||||
|
||||
populate_bundle "OpenRA - Tiberian Dawn.app" "cnc" "Tiberian Dawn"
|
||||
populate_bundle "OpenRA - Tiberian Dawn.app" "cnc" "Tiberian Dawn" "699223250181292033"
|
||||
delete_mods "OpenRA - Tiberian Dawn.app" "ra" "d2k"
|
||||
sign_bundle "OpenRA - Tiberian Dawn.app"
|
||||
|
||||
populate_bundle "OpenRA - Dune 2000.app" "d2k" "Dune 2000"
|
||||
populate_bundle "OpenRA - Dune 2000.app" "d2k" "Dune 2000" "712711732770111550"
|
||||
delete_mods "OpenRA - Dune 2000.app" "ra" "cnc"
|
||||
sign_bundle "OpenRA - Dune 2000.app"
|
||||
|
||||
|
||||
@@ -62,6 +62,10 @@ Var StartMenuFolder
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
!define RA_DISCORDID 699222659766026240
|
||||
!define CNC_DISCORDID 699223250181292033
|
||||
!define D2K_DISCORDID 712711732770111550
|
||||
|
||||
;***************************
|
||||
;Section Definitions
|
||||
;***************************
|
||||
@@ -76,16 +80,31 @@ Section "-Reg" Reg
|
||||
WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}\DefaultIcon" "" "$INSTDIR\RedAlert.ico,0"
|
||||
WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}\Shell\Open\Command" "" "$INSTDIR\RedAlert.exe Launch.URI=%1"
|
||||
|
||||
WriteRegStr HKLM "Software\Classes\discord-${RA_DISCORDID}" "" "URL:Run game ${RA_DISCORDID} protocol"
|
||||
WriteRegStr HKLM "Software\Classes\discord-${RA_DISCORDID}" "URL Protocol" ""
|
||||
WriteRegStr HKLM "Software\Classes\discord-${RA_DISCORDID}\DefaultIcon" "" "$INSTDIR\RedAlert.ico,0"
|
||||
WriteRegStr HKLM "Software\Classes\discord-${RA_DISCORDID}\Shell\Open\Command" "" "$INSTDIR\RedAlert.exe"
|
||||
|
||||
WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}" "" "URL:Join OpenRA server"
|
||||
WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}" "URL Protocol" ""
|
||||
WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}\DefaultIcon" "" "$INSTDIR\TiberianDawn.ico,0"
|
||||
WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}\Shell\Open\Command" "" "$INSTDIR\TiberianDawn.exe Launch.URI=%1"
|
||||
|
||||
WriteRegStr HKLM "Software\Classes\discord-${CNC_DISCORDID}" "" "URL:Run game ${CNC_DISCORDID} protocol"
|
||||
WriteRegStr HKLM "Software\Classes\discord-${CNC_DISCORDID}" "URL Protocol" ""
|
||||
WriteRegStr HKLM "Software\Classes\discord-${CNC_DISCORDID}\DefaultIcon" "" "$INSTDIR\TiberianDawn.ico,0"
|
||||
WriteRegStr HKLM "Software\Classes\discord-${CNC_DISCORDID}\Shell\Open\Command" "" "$INSTDIR\TiberianDawn.exe"
|
||||
|
||||
WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}" "" "URL:Join OpenRA server"
|
||||
WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}" "URL Protocol" ""
|
||||
WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}\DefaultIcon" "" "$INSTDIR\Dune2000.ico,0"
|
||||
WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}\Shell\Open\Command" "" "$INSTDIR\Dune2000.exe Launch.URI=%1"
|
||||
|
||||
WriteRegStr HKLM "Software\Classes\discord-${D2K_DISCORDID}" "" "URL:Run game ${D2K_DISCORDID} protocol"
|
||||
WriteRegStr HKLM "Software\Classes\discord-${D2K_DISCORDID}" "URL Protocol" ""
|
||||
WriteRegStr HKLM "Software\Classes\discord-${D2K_DISCORDID}\DefaultIcon" "" "$INSTDIR\Dune2000.ico,0"
|
||||
WriteRegStr HKLM "Software\Classes\discord-${D2K_DISCORDID}\Shell\Open\Command" "" "$INSTDIR\Dune2000.exe"
|
||||
|
||||
; Remove obsolete file associations
|
||||
DeleteRegKey HKLM "Software\Classes\.orarep"
|
||||
DeleteRegKey HKLM "Software\Classes\OpenRA_replay"
|
||||
@@ -135,6 +154,8 @@ Section "Game" GAME
|
||||
File "${SRCDIR}\eluant.dll"
|
||||
File "${SRCDIR}\BeaconLib.dll"
|
||||
File "${SRCDIR}\soft_oal.dll"
|
||||
File "${SRCDIR}\DiscordRPC.dll"
|
||||
File "${SRCDIR}\Newtonsoft.Json.dll"
|
||||
File "${SRCDIR}\SDL2.dll"
|
||||
File "${SRCDIR}\freetype6.dll"
|
||||
File "${SRCDIR}\lua51.dll"
|
||||
@@ -254,6 +275,8 @@ Function ${UN}Clean
|
||||
Delete $INSTDIR\lua51.dll
|
||||
Delete $INSTDIR\eluant.dll
|
||||
Delete $INSTDIR\freetype6.dll
|
||||
Delete $INSTDIR\DiscordRPC.dll
|
||||
Delete $INSTDIR\Newtonsoft.Json.dll
|
||||
Delete $INSTDIR\SDL2-CS.dll
|
||||
Delete $INSTDIR\OpenAL-CS.Core.dll
|
||||
Delete $INSTDIR\BeaconLib.dll
|
||||
@@ -264,6 +287,10 @@ Function ${UN}Clean
|
||||
DeleteRegKey HKLM "Software\Classes\openra-cnc-${TAG}"
|
||||
DeleteRegKey HKLM "Software\Classes\openra-d2k-${TAG}"
|
||||
|
||||
DeleteRegKey HKLM "Software\Classes\discord-${RA_DISCORDID}"
|
||||
DeleteRegKey HKLM "Software\Classes\discord-${CNC_DISCORDID}"
|
||||
DeleteRegKey HKLM "Software\Classes\discord-${D2K_DISCORDID}"
|
||||
|
||||
Delete $INSTDIR\uninstaller.exe
|
||||
RMDir $INSTDIR
|
||||
|
||||
|
||||
Reference in New Issue
Block a user