feat: Add Factorio support (#527)
* Update eco protocol to include player names and fixed problems when using eco webinterface behind a proxy * changelog + readability * Typo * Typo * Added Factorio * wrong comment * CHANGELOG
This commit is contained in:
parent
3416e8c21a
commit
2338b82307
|
@ -3,6 +3,7 @@
|
||||||
## 5.0.0-beta.3
|
## 5.0.0-beta.3
|
||||||
* Euro Truck Simulator 2 (2012) - Added support (By @podrivo #523)
|
* Euro Truck Simulator 2 (2012) - Added support (By @podrivo #523)
|
||||||
* Eco - Fixed querying servers using reverse queries and player names (By @Vito0912 #526)
|
* Eco - Fixed querying servers using reverse queries and player names (By @Vito0912 #526)
|
||||||
|
* Factorio (2016) - Added support (By @Vito0912 #527)
|
||||||
|
|
||||||
## 5.0.0-beta.2
|
## 5.0.0-beta.2
|
||||||
* Fixed support for projects using `require`.
|
* Fixed support for projects using `require`.
|
||||||
|
|
|
@ -119,6 +119,7 @@
|
||||||
| etqw | Enemy Territory: Quake Wars | |
|
| etqw | Enemy Territory: Quake Wars | |
|
||||||
| ets2 | Euro Truck Simulator 2 | [Valve Protocol](#valve) |
|
| ets2 | Euro Truck Simulator 2 | [Valve Protocol](#valve) |
|
||||||
| f1c9902 | F1 Challenge '99-'02 | |
|
| f1c9902 | F1 Challenge '99-'02 | |
|
||||||
|
| factorio | Factorio | |
|
||||||
| farcry | Far Cry | |
|
| farcry | Far Cry | |
|
||||||
| farcry2 | Far Cry 2 | |
|
| farcry2 | Far Cry 2 | |
|
||||||
| fear | F.E.A.R. | |
|
| fear | F.E.A.R. | |
|
||||||
|
|
|
@ -1161,6 +1161,14 @@ export const games = {
|
||||||
protocol: 'gamespy1'
|
protocol: 'gamespy1'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
factorio: {
|
||||||
|
name: 'Factorio',
|
||||||
|
release_year: 2016,
|
||||||
|
options: {
|
||||||
|
port_query: 34197,
|
||||||
|
protocol: 'factorio'
|
||||||
|
}
|
||||||
|
},
|
||||||
farcry: {
|
farcry: {
|
||||||
name: 'Far Cry',
|
name: 'Far Cry',
|
||||||
release_year: 2004,
|
release_year: 2004,
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
import Core from './core.js'
|
||||||
|
|
||||||
|
export default class factorio extends Core {
|
||||||
|
async run (state) {
|
||||||
|
if (!this.options.port) this.options.port = 34197
|
||||||
|
|
||||||
|
// Don't use the tcp ping probing
|
||||||
|
this.usedTcp = true
|
||||||
|
|
||||||
|
const request = await this.request({
|
||||||
|
url: `https://multiplayer.factorio.com/get-game-details/${this.options.address}:${this.options.port}`,
|
||||||
|
responseType: 'json'
|
||||||
|
})
|
||||||
|
|
||||||
|
const serverInfo = request
|
||||||
|
|
||||||
|
state.name = serverInfo.name
|
||||||
|
state.password = serverInfo.has_password
|
||||||
|
state.numplayers = serverInfo.players?.length || 0 // players is undefined if there are no players
|
||||||
|
state.maxplayers = serverInfo.max_players
|
||||||
|
state.players = serverInfo.players?.map(player => ({ name: player, raw: {} })) || []
|
||||||
|
|
||||||
|
state.raw = serverInfo
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@ import doom3 from './doom3.js'
|
||||||
import eco from './eco.js'
|
import eco from './eco.js'
|
||||||
import eldewrito from './eldewrito.js'
|
import eldewrito from './eldewrito.js'
|
||||||
import epic from './epic.js'
|
import epic from './epic.js'
|
||||||
|
import factorio from './factorio.js'
|
||||||
import ffow from './ffow.js'
|
import ffow from './ffow.js'
|
||||||
import fivem from './fivem.js'
|
import fivem from './fivem.js'
|
||||||
import gamespy1 from './gamespy1.js'
|
import gamespy1 from './gamespy1.js'
|
||||||
|
@ -55,7 +56,7 @@ import dayz from './dayz.js'
|
||||||
import theisleevrima from './theisleevrima.js'
|
import theisleevrima from './theisleevrima.js'
|
||||||
|
|
||||||
export {
|
export {
|
||||||
armagetron, ase, asa, assettocorsa, battlefield, buildandshoot, cs2d, discord, doom3, eco, epic, ffow, fivem, gamespy1,
|
armagetron, ase, asa, assettocorsa, battlefield, buildandshoot, cs2d, discord, doom3, eco, epic, factorio, ffow, fivem, gamespy1,
|
||||||
gamespy2, gamespy3, geneshift, goldsrc, hexen2, jc2mp, kspdmp, mafia2mp, mafia2online, minecraft,
|
gamespy2, gamespy3, geneshift, goldsrc, hexen2, jc2mp, kspdmp, mafia2mp, mafia2online, minecraft,
|
||||||
minecraftbedrock, minecraftvanilla, mumble, mumbleping, nadeo, openttd, palworld, quake1, quake2, quake3, rfactor, samp,
|
minecraftbedrock, minecraftvanilla, mumble, mumbleping, nadeo, openttd, palworld, quake1, quake2, quake3, rfactor, samp,
|
||||||
savage2, starmade, starsiege, teamspeak2, teamspeak3, terraria, tribes1, tribes1master, unreal2, ut3, valve,
|
savage2, starmade, starsiege, teamspeak2, teamspeak3, terraria, tribes1, tribes1master, unreal2, ut3, valve,
|
||||||
|
|
Loading…
Reference in New Issue