Skip to content

Commit

Permalink
feat: backport 4.3.0 changes into master (#432)
Browse files Browse the repository at this point in the history
* chore: backport all 4.3.0 changes

* docs: remove changelog line that does not apply
  • Loading branch information
CosminPerRam authored Dec 3, 2023
1 parent d37c5b7 commit 89515cb
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 3 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ see next point) and `tshock` (which is `terraria`).
a placeholder in the `players` fields.
* Stabilized field `numplayers`.

### 4.3.0
* Fix `Post Scriptum` not being on the valve protocol.
* Added support for the Minecraft [Better Compatibility Checker](https://www.curseforge.com/minecraft/mc-mods/better-compatibility-checker) Mod.
* Halo Online (ElDewrito) - Added support (by @Sphyrna-029)

### 4.2.0
* Renamed `Counter Strike: 2D` to `CS2D` in [games.txt](games.txt) (why? see [this](https://cs2d.com/faq.php?show=misc_name#misc_name)).
* Updated `CS2D` protocol (by @ernestpasnik)
Expand Down
1 change: 1 addition & 0 deletions GAMES_LIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@
| `drakan` | Drakan: Order of the Flame (1999) | |
| `dystopia` | Dystopia (2005) | [Valve Protocol](#valve) |
| `eco` | Eco (2018) | |
| `eldewrito` | Halo Online - ElDewrito (2007) | |
| `empyrion` | Empyrion - Galactic Survival (2015) | [Valve Protocol](#valve) |
| `empiresmod` | Empires Mod (2008) | [Valve Protocol](#valve) |
| `etqw` | Enemy Territory: Quake Wars (2007) | |
Expand Down
9 changes: 8 additions & 1 deletion lib/games.js
Original file line number Diff line number Diff line change
Expand Up @@ -802,6 +802,13 @@ export const games = {
protocol: 'eco'
}
},
eldewrito: {
name: 'Halo Online (ElDewrito)',
options: {
port: 11775,
protocol: 'eldewrito'
}
},
em: {
name: 'Empires Mod (2008)',
options: {
Expand Down Expand Up @@ -1531,7 +1538,7 @@ export const games = {
name: 'Post Scriptum',
options: {
port: 10037,
protocol: 'squad'
protocol: 'valve'
}
},
postal2: {
Expand Down
21 changes: 21 additions & 0 deletions protocols/eldewrito.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import Core from './core.js'

export default class eldewrito extends Core {
async run (state) {
const json = await this.request({
url: 'http://' + this.options.address + ':' + this.options.port,
responseType: 'json'
})

for (const one of json.players) {
state.players.push({ name: one.name, team: one.team })
}

state.name = json.name
state.map = json.map
state.maxplayers = json.maxPlayers
state.connect = this.options.address + ':' + json.port

state.raw = json
}
}
3 changes: 2 additions & 1 deletion protocols/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import cs2d from './cs2d.js'
import discord from './discord.js'
import doom3 from './doom3.js'
import eco from './eco.js'
import eldewrito from './eldewrito.js'
import epic from './epic.js'
import ffow from './ffow.js'
import fivem from './fivem.js'
Expand Down Expand Up @@ -53,5 +54,5 @@ export {
gamespy2, gamespy3, geneshift, goldsrc, hexen2, jc2mp, kspdmp, mafia2mp, mafia2online, minecraft,
minecraftbedrock, minecraftvanilla, mumble, mumbleping, nadeo, openttd, quake1, quake2, quake3, rfactor, samp,
savage2, starmade, starsiege, teamspeak2, teamspeak3, terraria, tribes1, tribes1master, unreal2, ut3, valve,
vcmp, ventrilo, warsow
vcmp, ventrilo, warsow, eldewrito
}
12 changes: 11 additions & 1 deletion protocols/minecraftvanilla.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export default class minecraftvanilla extends Core {
const str = reader.rest().toString('utf8')
this.logger.debug(str)

const json = JSON.parse(str)
const json = JSON.parse(str.substring(0, strLen))
delete json.favicon

state.raw = json
Expand All @@ -57,6 +57,16 @@ export default class minecraftvanilla extends Core {
})
}
}

// Better Compatibility Checker mod support
let bccJson = {}

if (str.length > strLen) {
const bccStr = str.substring(strLen + 1)
bccJson = JSON.parse(bccStr)
}

state.raw.bcc = bccJson
}

varIntBuffer (num) {
Expand Down

0 comments on commit 89515cb

Please sign in to comment.