Skip to content

Add OSRS Voice Chat - #19372

Open
trippy22 wants to merge 3 commits into
runelite:masterfrom
trippy22:add-rs-vc
Open

trippy22 wants to merge 3 commits into
runelite:masterfrom
trippy22:add-rs-vc

Conversation

@trippy22

@trippy22 trippy22 commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Adds OSRS Voice Chat with 20-tile proximity voice and+ private invite-code rooms.
Includes the third-party server warning.

Edit:
Latest commit adds support for party plugin

@runelite-github-app

runelite-github-app Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

@runelite-github-app

runelite-github-app Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Feedback:

  • javax.sound.sampled.Mixer.isLineSupported: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.TargetDataLine.start: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.Mixer$Info: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.AudioSystem.getLine: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.DataLine.flush: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.TargetDataLine.open: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.Mixer$Info.getName: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.Line: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.DataLine$Info.<init>: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.AudioSystem.getMixer: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.AudioFormat: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.TargetDataLine.read: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.SourceDataLine.start: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.SourceDataLine.open: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.DataLine$Info: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.AudioSystem: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.SourceDataLine: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.Line$Info: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.Mixer.getLine: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • java.lang.System.out: system i/o, use a logger instead.
  • javax.sound.sampled.SourceDataLine.write: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.AudioFormat.<init>: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.TargetDataLine: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.DataLine.close: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.DataLine: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.AudioSystem.getMixerInfo: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead
  • javax.sound.sampled.Mixer: Use of javax.sound, use net.runelite.client.audio.AudioPlayer instead

A new scan will be automatically performed on the next push to the PR branch.

@trippy22

Copy link
Copy Markdown
Contributor Author

#11729 (comment)
Above comment states the explicit dep I have used (w/ same SHA-256 hash) is approved, and that is subsequently where System.out is used, not the plugin code itself

As for the AudioPlayer auto-suggestion:
-AudioPlayer lacks microphone capture, continuous PCM playback, and device selection, hence live voice requires the current usage w/ javax.sound

@rsbfox

rsbfox commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

Using build=gradle will require your plugin to undergo full manual review rather than being handled by the reviewbot. We strongly recommend switching to build=standard.

@rsbfox rsbfox added the manual review PR can't be merged by the reviewbot, requires review by a plugin hub maintainer label Oct 25, 2026
@trippy22

Copy link
Copy Markdown
Contributor Author

@rsbfox I really would prefer keeping the opus dependency. Trying to re-impl Opus all in source code without referencing the current dependency would most likely take the plugin over the 200k token limit which would prompt a manual review regardless

Opus provides too many benefits for voice (e.g lower bandwidth usage, lower delays, better silence detection w/ DTX etc). In my earlier reply I mentioned that concentus-1.0.2 was approved by another reviewer a few months ago, and I was using the exact dependency that had been previously approved, so at this point I think the only option is a manual review.

@rsbfox

rsbfox commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

You're welcome to wait for the manual review. I just wanted to make you aware that, while automated reviews can be completed within a day, manual reviews have limited capacity and may take several weeks. It also won't be handled by me.

In the meantime, please audit your codebase for any use of the forbidden language features.

Using any of these features will delay approval, as you'll need to remove them and wait for another review.

@trippy22

Copy link
Copy Markdown
Contributor Author

Thank you for the clarification; I did a second pass through my favorite LLM with that link + AGENTS.MD from the plugin-hub-tooling repo, and I actually did have a forbidden feature (java.awt.KeyboardFocusManager), which I've removed now

If there's any way I can save time for the (manual) reviewer or make things less of a hassle for them in general please let me know.

@trippy22

Copy link
Copy Markdown
Contributor Author

I had intended to defer support for party plugin initially, but including it now (it's part of the few latest commits)

If you are in a party and use the RS Voice Chat plugin you'll be able to break out into a party voice chat room

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

manual review PR can't be merged by the reviewbot, requires review by a plugin hub maintainer plugin added

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants