diff --git a/CHANGELOG.md b/CHANGELOG.md index e4fafad..0337327 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * Fix: Minetest - server filtering replace missing field ip with address (By @hjri #678) * Docs: Arma Reforger does not provide players data (#680) * Feat: Farming Simulator add response to raw object (#682) +* Feat: Renown (2025) - Added support (#684 By @anthonyphysgun) ## 5.2.0 * Fix: Palworld not respecting query output players schema (#666) diff --git a/GAMES_LIST.md b/GAMES_LIST.md index 9a0f544..020dabe 100644 --- a/GAMES_LIST.md +++ b/GAMES_LIST.md @@ -248,6 +248,7 @@ | redorchestra | Red Orchestra | | | redorchestra2 | Red Orchestra 2 | [Valve Protocol](#valve) | | renegade10 | Renegade X | | +| renown | Renown | [EOS Protocol](#epic) | | rfactor | rFactor | | | rfactor2 | rFactor 2 | [Valve Protocol](#valve) | | ricochet | Ricochet | [Valve Protocol](#valve) | diff --git a/lib/games.js b/lib/games.js index 582c072..0429e74 100644 --- a/lib/games.js +++ b/lib/games.js @@ -2451,6 +2451,13 @@ export const games = { protocol: 'renegadex' } }, + renown: { + name: 'Renown', + release_year: 2025, + options: { + protocol: 'renown' + } + }, rdr2r: { name: 'Red Dead Redemption 2 - RedM', release_year: 2018, diff --git a/protocols/index.js b/protocols/index.js index b4ec99d..6eb7531 100644 --- a/protocols/index.js +++ b/protocols/index.js @@ -43,6 +43,7 @@ import quake2 from './quake2.js' import quake3 from './quake3.js' import renegadex from './renegadex.js' import renegadexmaster from './renegadexmaster.js' +import renown from './renown.js' import rfactor from './rfactor.js' import samp from './samp.js' import satisfactory from './satisfactory.js' @@ -75,7 +76,7 @@ import vintagestory from './vintagestory.js' export { armagetron, ase, asa, assettocorsa, battlefield, brokeprotocol, brokeprotocolmaster, buildandshoot, cs2d, discord, doom3, eco, epic, factorio, farmingsimulator, ffow, fivem, gamespy1, gamespy2, gamespy3, geneshift, goldsrc, gtasao, hawakening, hawakeningmaster, hexen2, jc2mp, kspdmp, mafia2mp, mafia2online, minecraft, - minecraftbedrock, minecraftvanilla, minetest, mumble, mumbleping, nadeo, openttd, palworld, quake1, quake2, quake3, renegadex, renegadexmaster, rfactor, ragemp, samp, + minecraftbedrock, minecraftvanilla, minetest, mumble, mumbleping, nadeo, openttd, palworld, quake1, quake2, quake3, renegadex, renegadexmaster, renown, rfactor, ragemp, samp, satisfactory, soldat, savage2, starmade, starsiege, teamspeak2, teamspeak3, terraria, toxikk, tribes1, tribes1master, unreal2, ut3, valve, vcmp, ventrilo, warsow, eldewrito, beammpmaster, beammp, dayz, theisleevrima, xonotic, altvmp, vintagestorymaster, vintagestory } diff --git a/protocols/renown.js b/protocols/renown.js new file mode 100644 index 0000000..7a38651 --- /dev/null +++ b/protocols/renown.js @@ -0,0 +1,20 @@ +import Epic from './epic.js' + +export default class renown extends Epic { + constructor () { + super() + + // OAuth2 credentials provided by the game developer. + this.clientId = 'xyza7891XjE03sj3B404z0iQfQ4efjUj' + this.clientSecret = '2YY7STKJ5wJuFIyR8TaXaBPfhHZiAY13YuNPSIn+0WY' + this.deploymentId = '472a8286c61c408ca5ca1ec0401f07b7' + this.authByExternalToken = true + } + + async run (state) { + await super.run(state) + state.name = state.raw.attributes.SERVERNAME_s + state.password = state.raw.attributes.PASSWORD_b + state.version = state.raw.attributes.SERVERVERSION_s + } +} diff --git a/tools/generate_games_list.js b/tools/generate_games_list.js index 65793b6..7212ec1 100644 --- a/tools/generate_games_list.js +++ b/tools/generate_games_list.js @@ -58,7 +58,7 @@ Object.entries(sortedGames).forEach(([id, game]) => { if (game.options.protocol === 'valve' || game.options.protocol === 'dayz') { notes.push('[Valve Protocol](#valve)') } - if (game.options.protocol === 'epic' || game.options.protocol === 'asa' || game.options.protocol === 'theisleevrima') { + if (game.options.protocol === 'epic' || game.options.protocol === 'asa' || game.options.protocol === 'theisleevrima' || game.options.protocol === 'renown') { notes.push('[EOS Protocol](#epic)') } lineArray[HeaderType.Notes] = notes.join(', ')