From 7f373212bbbd1a5b7292f36013205f6697749501 Mon Sep 17 00:00:00 2001 From: Guilherme Werner Date: Sun, 21 Jan 2024 18:15:09 -0300 Subject: [PATCH] feat: add support for The Isle Evrima (#501) * Add support for The Isle Evrima * Move specific attributes to game protocol * Update changelog and fix gid * Keep attributes in eos protocol --- CHANGELOG.md | 1 + GAMES_LIST.md | 1 + lib/games.js | 8 ++++++++ protocols/index.js | 3 ++- protocols/theisleevrima.js | 18 ++++++++++++++++++ 5 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 protocols/theisleevrima.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 086ef9d..045e729 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,7 @@ placeholders in the `players` fields. * Call of Duty: Black Ops 3 (2015) - Added support. * Unreal 2: The Awakening - XMP - Added support. * Palworld - Added support (By @jonathanprl, #495). +* The Isle Evrima - Added support (By @GuilhermeWerner, #501). ### 4.3.1 * Fixed support for the Minecraft [Better Compatibility Checker](https://www.curseforge.com/minecraft/mc-mods/better-compatibility-checker) Mod (By @Douile, #436). diff --git a/GAMES_LIST.md b/GAMES_LIST.md index 8163905..0ce4978 100644 --- a/GAMES_LIST.md +++ b/GAMES_LIST.md @@ -287,6 +287,7 @@ | thefront | The Front | [Valve Protocol](#valve) | | thehidden | The Hidden | [Valve Protocol](#valve) | | theisle | The Isle | [Valve Protocol](#valve) | +| tie | The Isle Evrima | | | theship | The Ship | [Valve Protocol](#valve) | | thespecialists | The Specialists | [Valve Protocol](#valve) | | thps3 | Tony Hawk's Pro Skater 3 | | diff --git a/lib/games.js b/lib/games.js index ad0354e..de80704 100644 --- a/lib/games.js +++ b/lib/games.js @@ -1328,6 +1328,14 @@ export const games = { }, release_year: 2015 }, + tie: { + name: 'The Isle Evrima', + options: { + port: 7777, + protocol: 'theisleevrima' + }, + release_year: 2020 + }, jb007n: { name: 'James Bond 007: Nightfire', options: { diff --git a/protocols/index.js b/protocols/index.js index 89571cf..2cf657d 100644 --- a/protocols/index.js +++ b/protocols/index.js @@ -52,11 +52,12 @@ import warsow from './warsow.js' import beammpmaster from './beammpmaster.js' import beammp from './beammp.js' import dayz from './dayz.js' +import theisleevrima from './theisleevrima.js' export { armagetron, ase, asa, assettocorsa, battlefield, buildandshoot, cs2d, discord, doom3, eco, epic, ffow, fivem, gamespy1, gamespy2, gamespy3, geneshift, goldsrc, hexen2, jc2mp, kspdmp, mafia2mp, mafia2online, minecraft, minecraftbedrock, minecraftvanilla, mumble, mumbleping, nadeo, openttd, palworld, quake1, quake2, quake3, rfactor, samp, savage2, starmade, starsiege, teamspeak2, teamspeak3, terraria, tribes1, tribes1master, unreal2, ut3, valve, - vcmp, ventrilo, warsow, eldewrito, beammpmaster, beammp, dayz + vcmp, ventrilo, warsow, eldewrito, beammpmaster, beammp, dayz, theisleevrima } diff --git a/protocols/theisleevrima.js b/protocols/theisleevrima.js new file mode 100644 index 0000000..59c0b8a --- /dev/null +++ b/protocols/theisleevrima.js @@ -0,0 +1,18 @@ +import Epic from './epic.js' + +export default class theisleevrima extends Epic { + constructor () { + super() + + // OAuth2 credentials extracted from The Isle Evrima files. + this.clientId = 'xyza7891gk5PRo3J7G9puCJGFJjmEguW' + this.clientSecret = 'pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8' + this.deploymentId = '6db6bea492f94b1bbdfcdfe3e4f898dc' + } + + async run (state) { + await super.run(state) + state.name = state.raw.attributes.SERVERNAME_s + state.map = state.raw.attributes.MAP_NAME_s + } +}