Matrix-Discord
Näin siltaat olemassaolevan Discord-kanavan olemassaolevalle Matrix-kanavalle. Matrix-kanava ei saa olla päästä päähän salattu.
T2bot.io -palvelu tarjoaa kaikille avoimen Discord-sillan jota tässäkin käytetään esimerkkinä. Lisätietoja täältä. Silta ajaa matrix-appservice-discord-siltatoteutusta. Muitakin Discord-siltatoteutuksia on, kts alta.
Tarvittavat tiedot
- Discord-kanavan serverid- ja channelid-numerot. Nämä pitäisi näkyä webbidiscordin URLeissa muodossa https://discordapp.com/channels/ServerID/ChannelID
- Siltabotin kutsulinkki - esim t2bot.io -palvelun botti kutsutaan linkillä https://discordapp.com/api/oauth2/authorize?client_id=309408702530846730&scope=bot&permissions=607251456
- Siltabotin Matrix-käyttäjä - esim t2bot.io -palvelun botti on @_discord_bot:t2bot.io
- Matrix-kanava, jossa siltaajalla täytyy olla admin-oikeudet. Huomaa, että portaalisillatulla IRC-kanavalla näitä ei saa kuin sillan ylläpitäjän avustuksella! Jos kanava on vanhaa huoneversiota (esim versio 1), kannattaa Matrix-kanava päivittää ennen siltausta.
Discord-puoli
- Lisää siltabotti kiltaan ja kanavalle linkin avulla. Anna sen pyytämät oikeudet.
Matrix-puoli
- Kutsu siltabotti kanavalle: /invite @_discord_bot:t2bot.io
- Sano kanavalla !discord bridge <serverid> <channelid>
Tässä vaiheessa silta kysyy discord-kanavan ylläpitäjältä vahvistuksen. Kun vahvistus on annettu, silta nousee pystyyn.
Discordsilta EI osaa seurata room upgradea. Eli sano !discord unbridge, potki botti pois Matrix-kanavalta, tee room upgrade ja siltaa uusi kanava uudestaan. (TODO: Varmista oliko näin?)
Vaihtoehtoinen silta: mx-puppet-discord
mx-puppet-discord on monipuolisempi mutta samalla haastavampi siltatoteutus. Siitä ei ole tiedossa julkisia instansseja, joten joudut asentamaan sen omalle kotipalvelimellesi tai käyttämään palvelinta jossa se on (esim hacklab.fi).
Osa sillan dokumentaatiosta on sillan käyttämän kirjaston github-repossa ettei olisi liian helppoa.
Sillan asennus ja konfigurointi
Asenna silta.
Konfiguraatiotiedostossa huolehdi, että relay-toiminto on sallittu kaikille. Muuten silta asettaa muille kuin sallituille käyttäjille PL -1 jolloin he eivät voi puhua.
Botin teko discordiin
Seuraa tätä ohjetta
Lisää botti Discord-kiltaan kutsulinkillä. Kutsulinkin formaatti on suunnilleen:
Sillan yhdistäminen bottiin
Siltabotin mxid on tyyliin @_discordpuppet_bot:yourserver.com. Juttele sille.
Siltabottiin voi liittää useita Discord-botteja tai Discord-käyttäjiä link-komennolla, jolloin niille saadaan puppet id-numero jota käytetään jatkossa monessa paikkaa.
Selvitä botin token Discordista. Anna komento link bot NjM0NDYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxBIQ0To
Silta vastaa "Created new link with ID 3" (ID-numero on pupped id)
Botin säätö
Katso ensin lista komennoista sanomalla: help
Disabloi auto invite: setautoinvite 3 0
Aseta sillatut kanavat julkiseksi: setispublic 3 true
Aseta silta relayksi: settype 3 relay
Listaa killat joissa botti on: listguilds 3
Siltaa kilta: bridgeguild 3 872xxxxxxxxx791
Ennen kanavien siltausta täytyy sillata kilta.
Jos haluat sillata koko killan uusille matrix-kanaville, se onnistuu kerralla: joinentireguild 3 87xxxxxxxxx91
Muuten siltaa käsipelillä kilta (ei siltaa yksittäisiä kanavia): bridgeguild 3 87xxxxxxxxx91 - tämän jälkeen voit sillata yksittäisiä kanavia.
Jos haluat sillata yksittäisen kanavan joka on jo matrixissa, kutsu matrix-botti kanavalle ja anna komento !discord bridge 8725xxxxxxx913 Kanavan numeron saa kaivettua discordissa webbiselaimella kuten toisen sillan tapauksessa.
Yleisiä ongelmia
Discordin puolelle viestit tulevat "laatikoissa"
- Varmista että Discord-admin antoi botin vaatimat oikeudet
- Varmista, että killassa ei ole toista siltabottia, jolla olisi samoja oikeuksia (ilmeisesti vain yksi voi lähettää viestejä käyttäjien puolesta)
- Discord voi vaatia, että botin omistajalla on 2fa käytössä. Eli vaativat puhelinnumeron antamisen ja google authenticatorin käytön. Jos sillan lokiin tulee "warn: Missing webhook permissions DiscordAPIError: Two factor is required for this operation", täytyy tämä tehdä.