A Fabric mod that connects to the Mumble Link plugin.
Current features:
Planned features:
If you have issues, try these steps first: https://github.com/magneticflux-/fabric-mumblelink-mod/wiki/Troubleshooting
The plugin is not required on servers, but having it on the server will allow clients to automatically join a VoIP server of your choosing.
Trivial configuring of the server may be done by specifying the host and port. Clients will simply join the root of the VoIP server. For dimension, team, and server separation, see below.
Dimension separation may also be accomplished by users setting the "Y-Axis multiplier for dimension IDs" to a value above 512. This makes users in the Nether and End appear 512 blocks below and above users in the Overworld, respectively. This approach is not recommended for larger servers, but it may work fine for servers with < 5 people.
Before going any further, make sure you understand RFC 3986! Most of the non-trivial configuration is done through the use of templated strings. The userinfo
, path
, query
, and fragment
strings of the URI sent to clients to be opened are template strings, so parts of them may be replaced by user- and server-specific information. Below is a table of available template values:
Template index | Value source | Example values |
---|---|---|
{0} |
Full dimension ID | "Minecraft Overworld", "Minecraft The Nether", "Minecraft The End", "Simplevoidworld Void", "Ezwastelands Wastelands" |
{1} |
Dimension namespace | "Minecraft", "Simplevoidworld", "Ezwastelands" |
{2} |
Dimension path | "Overworld", "The Nether", "The End" |
{3} |
Team name | "Red Team", "Team 1", "" |
Some example paths:
/My Server/{2}
/My Server
and a subchannel that matches their dimension. The server should have channels /My Server/Overworld
, /My Server/The Nether
, and /My Server/The End
to support the vanilla Minecraft dimensions./PvP Teams/{2}/{3}
/PvP Teams
, a subchannel that matches the dimension, and a sub-subchannel that matches their team name. The server should have channels for all combinations of dimension and team.If a server does not have a channel for a certain path, the user will remain in their previous channel until their client receives a path that exists.
For more reference on Mumble URIs, see their wiki page.
For more reference on TeamSpeak URIs, see their FAQ.
In Mumble, the channel path should go in the URI path.
In TeamSpeak, the channel path should go in a query parameter called channel
.
Servers with this mod will be able to open Mumble or TeamSpeak URIs through your client. Servers cannot open arbitrary URLs, because only the required information (userinfo, host, port, path, query, and fragment) is sent to the client. It is important to note that a full URL is not sent to the client; the scheme is hard-coded. Only vulnerabilities in Mumble or TeamSpeak may be exploited, and only by servers trusted by the player.
The client-side URI construction is this snippet from ClientMumbleLinkMod.kt
:
val uri = URI(voipClient.scheme, userinfo, host, port, path, query, fragment)
If you feel generous or want to encourage my work, you can throw a few dollars my way here: