Matrix-Discord
Näin siltaat olemassaolevan Discord-kanavan olemassaolevalle Matrix-kanavalle. Matrix-kanava ei saa olla päästä päähän salattu.
t2bot.io -palvelun avulla
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?)
Mautrix-discord
Sillalle on suht hyvät ohjeet täällä.
Lue ohjeet "relaying with webhooks"-kohdasta. Suosittelen tekemään oman Matrix-tunnuksen välitysbotille, jolla siltausta hallitaan. Kutsutaan tässä ohjeessa sitä nimellä relaybot.
Valmistelut
- Ota silta käyttöön. Sillan komentobottia kutsutaan tässä ohjeessa discordbot-nimellä.
- Tee discordbotti ohjeiden mukaan ja kutsu se Discord-kiltaan. Anna ohjeiden neuvomat oikeudet.
- Autentikoidu webhookeilla discordiin (tee relaybot-tunnuksella)
- Jos kanavalla on jo vanha Discord-silta, aja se alas (tai tulee karmea ikikiersiö)
- Liity relaybotilla kanavalle, anna relaybotille Moderator-oikeudet
- Kutsu discordbot kanavalle (ei vaadi oikeuksia)
- Selvitä discord-kanavan id. Saa selville discordin käyttöliittymästä jos ei muuten.
- Sano relaybottina !discord bridge <kanavaid>
- Discordin pitäisi nyt siltautua
- Määrittele relaybot-toiminto kanavalle: Sano relaybottina !discord set-relay --create Matrix
- Voit laskea relaybotin oikeustasoa alemmaksi jos haluat
- Voit myös poistua relaybotilla kanavalta, mutta (tällä hetkellä) se kutsutaan sinne takaisin kun silta käynnistetään uudestaan.
mx-puppet-discord (Vanhentunut silta jota ei kehitetä, älä käytä)
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.
Huoneen päivitys
Tämä Discord-silta EI osaa ainakaan toistaisemsi seurata huonepäivityksiä (room upgrade). Jos päivität huoneen, tee seuraavasti:
- Botin komentohuoneessa epäsiltaa k.o huone: unbridge 3 87xxxxxxxxx91
- Päivitä huone (ei haittaa jos se on jo päivitetty)
- Kutsu siltabotti uuteen huoneeseen
- Siltaa uudestaan, huoneessa: !discord bridge 3 87xxxxxxxxx91
Numero 3 on esimerkissä puppet id ja 87xxxxxxxxx91 kanavan id discordista.
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ä.