Skip to content

Commit ac627cc

Browse files
committed
Merge ceifa/steamworks.js PR ceifa#178: Channel Messaging
2 parents a48c542 + 3457614 commit ac627cc

File tree

4 files changed

+31
-7
lines changed

4 files changed

+31
-7
lines changed

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ napi = { version = "2.16.8", features = ["tokio_rt", "napi6", "serde-json"] }
1111
napi-derive = "2.16.9"
1212
lazy_static = "1"
1313
tokio = { version = "1", features = ["sync", "time"] }
14-
steamworks = { git = "https://github.com/Noxime/steamworks-rs/", rev = "fbb79635b06b4feea8261e5ca3e8ea3ef42facf9", features = ["serde"] }
14+
steamworks = { git = "https://github.com/Noxime/steamworks-rs/", rev = "5fc8ef13d52e82068f031535446d786cf0bd60a8", features = ["serde"] }
1515
serde = "1"
1616
serde_json = "1"
1717

client.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,11 @@ export declare namespace networking {
185185
ReliableWithBuffering = 3
186186
}
187187
export function sendP2PPacket(steamId64: bigint, sendType: SendType, data: Buffer): boolean
188+
export function sendP2PPacketOnChannel(steamId64: bigint, sendType: SendType, data: Buffer, channel: number): boolean
188189
export function isP2PPacketAvailable(): number
190+
export function isP2PPacketAvailableOnChannel(channel: number): number
189191
export function readP2PPacket(size: number): P2PPacket
192+
export function readP2PPacketFromChannel(size: number, channel: number): P2PPacket
190193
export function acceptP2PSession(steamId64: bigint): void
191194
}
192195
export declare namespace overlay {

src/api/networking.rs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,19 @@ pub mod networking {
4141
steam_id64: BigInt,
4242
send_type: SendType,
4343
data: Buffer,
44+
) -> Result<bool, Error> {
45+
self::send_p2p_packet_on_channel(steam_id64, send_type, data, 0)
46+
}
47+
48+
#[napi]
49+
pub fn send_p2p_packet_on_channel(
50+
steam_id64: BigInt,
51+
send_type: SendType,
52+
data: Buffer,
53+
channel: i32,
4454
) -> Result<bool, Error> {
4555
let client = crate::client::get_client();
46-
let result = client.networking().send_p2p_packet(
56+
let result = client.networking().send_p2p_packet_on_channel(
4757
SteamId::from_raw(steam_id64.get_u64().1),
4858
match send_type {
4959
SendType::Unreliable => steamworks::SendType::Unreliable,
@@ -52,27 +62,38 @@ pub mod networking {
5262
SendType::ReliableWithBuffering => steamworks::SendType::ReliableWithBuffering,
5363
},
5464
&data,
65+
channel
5566
);
5667
Ok(result)
5768
}
5869

5970
#[napi]
6071
pub fn is_p2p_packet_available() -> i32 {
72+
self::is_p2p_packet_available_on_channel(0)
73+
}
74+
75+
#[napi]
76+
pub fn is_p2p_packet_available_on_channel(channel: i32) -> i32 {
6177
let client = crate::client::get_client();
6278
client
6379
.networking()
64-
.is_p2p_packet_available()
80+
.is_p2p_packet_available_on_channel(channel)
6581
.unwrap_or_default() as i32
6682
}
6783

6884
#[napi]
6985
pub fn read_p2p_packet(size: i32) -> Result<P2PPacket, Error> {
86+
self::read_p2p_packet_from_channel(size, 0)
87+
}
88+
89+
#[napi]
90+
pub fn read_p2p_packet_from_channel(size: i32, channel: i32) -> Result<P2PPacket, Error> {
7091
let client = crate::client::get_client();
7192
let mut buffer = vec![0; size as usize];
7293

7394
client
7495
.networking()
75-
.read_p2p_packet(&mut buffer)
96+
.read_p2p_packet_from_channel(&mut buffer, channel)
7697
.map(|(steam_id, read_size)| P2PPacket {
7798
data: buffer.into(),
7899
size: read_size as i32,

0 commit comments

Comments
 (0)