Ankhbot – (Lähes) täysin itsenäisen, käyttäjän luoman, mukautetun tervetuliaisviestiohjelman luominen

Mediumin toimintatapaan tehtyjen muutosten vuoksi en enää pidä tätä blogia yllä. Löydät uuden blogini osoitteesta https://www.resonantdrifter.com ja suoran linkin tähän artikkeliin osoitteesta https://www.resonantdrifter.com/blog/ankhbot-%E2%80%94-creating-an-almot-almotely-completely-completely-autonomous-user-created-custom-welcome-message-program/

Koska Ankhbot on fuusioitunut Streamlabsin kanssa, tämä artikkeli on nyt hiukan vanhentunut, joten tein uuden! Käykääpäs lukemassa osuvasti nimetty ”Streamlabs Chatbot – Creating an (almost) autonomous user-created custom welcome message program”!

Muutama aika sitten päätin antaa Twitch-seuraajilleni, joita kutsun nimellä Drifters, mahdollisuuden luoda oman tervetuliaisviestin, joka pientä valuuttasummaa vastaan (jota kutsutaan kanavallani tarvikkeiksi) tervehtisi heitä heidän astuessaan chattiin. Näin he voisivat käyttää osan tarvikkeista johonkin muuhun kuin väijytyksiin (kanavani versio ryöstöistä) ja saisivat yhteisön tuntumaan hieman enemmän omalta. Tämä johti tietysti myös ajatukseen siitä, että he voisivat luoda tervetuliaisviestin muille käyttäjille – hauska tapa, jolla seuraajat voisivat sotkea toisia seuraajia. Onneksi Ankhbot on sisällyttänyt keinon, jolla tervetuliaisviestit (muun muassa) voidaan sisällyttää, kun tietyt käyttäjät tulevat kanavallesi.

Loin tämän suunnitelman heti käyntiin, ja se oli menestys, sillä pystyin käyttämään $removepoints()-parametrin avulla ottamaan Suppliesin heiltä, ja he kuiskasivat minulle viestin, jonka he halusivat tervetuliaisviestin olevan, tai toisen Drifterin käyttäjänimen ja viestin. Kuitenkin pian tämän läpimurron jälkeen (mielessäni) tajusin, että minun olisi lähes mahdotonta pysyä heidän tarpeessaan johdonmukaisesti keskeyttämättä toistuvasti pelaamista. Tämä johti minut etsimään tapaa luoda täysin itsenäinen tapa, jolla käyttäjät voisivat luoda ja muuttaa tervetuliaisviestinsä mielensä mukaan.

Olen suoraan sanottuna rehellinen: Ankhbotissa ei ole mahdollista luoda täysin itsenäistä käyttäjän luomaa mukautettua tervetuliaisviestiä. Juoksutin ideani Twitterissä Marcin Swierzowskin ohi, ja hän vahvisti, että ideani ei vain pysty kantamaan hedelmää.

John Paul @resonantdrifter

Vähän. Tarvitaan keino asettaa On Join Event käyttäjäkohtaisesti automaattisesti lukemaan heidän tietty $user.txt automaattisesti… #ankhbot@AnkhHeart

AnkhSydän @AnkhSydänliitännäisliitännäisliitännäisliitännäisliitännäisliitännäisliitännäisliitännäisliitännäinenliitännäisliitännäinenliitännäinenliitännäinenliitännäinenliitännäinenliitännäinenliitännäinenliitännäinenliitännäinenliitännäisliittymässä. Sinun on luotava On Join Events -tapahtumat manuaalisesti.

Mutta itsepäisyyteni pysyi sitkeänä ja keksin tavan, jolla käyttäjä voi luoda ja muuttaa omaa (ja muiden) mukautettua tervetuliaisviestiään halutessaan hyvin pienellä alkuasennuksella. Seuraavassa kerrotaan, miten loin (Lähes) täysin itsenäisesti käyttäjän luoman mukautetun tervetuliaisviestin!

Ensisijaisesti tämän asennuksen intensiivisin osa (varsinkin jos sinulla on jo paljon seuraajia tai saat paljon seuraajia päivittäin) on On Join Event -listan luominen. On Join Event -listalla kerrot Ankhbotille, mitä haluat sen tekevän, kun tietty käyttäjä tulee chattiin. Tätä ei valitettavasti voi automatisoida, ja jäin jumiin suuressa suunnitelmassani. Halusin todella, että Ankhbot laatii tämän listan automaattisesti nykyisistä seuraajistani, mutta tämän järjestelmän automatisointi ei ole mahdollista, joten sinun on syötettävä manuaalisesti merkintä jokaiselle seuraajalle. Onneksi sinun tarvitsee tehdä tämä vain kerran per seuraaja. Sen jälkeen jokainen viesti päivittyy automaattisesti itsestään.

On Join Event -järjestelmässä sinun on luotava merkintä jokaiselle seuraajallesi linkittämällä se .txt-dokumenttiin, joka näyttää heidän komentonsa, kun he astuvat chattiin.

Luo ensin kansio, johon haluat tallentaa kaikki .txt-dokumentit, jotka Ankhbot luo. Muista, että vaikka ne ovat pieniä (tiedostokooltaan), niitä luodaan paljon (olettaen, että saat paljon seuraajia). Kun tämä on tehty, palaa takaisin Ankhbotiin ja luo komento jokaiselle seuraajallesi seuraavasti (vihje: kaikki pysyy samana paitsi Info-kenttä):

  • UserGroup: Pidä tämä ”User_Specific”
  • Info: yksittäisen seuraajan käyttäjätunnus
  • Vain asiakas: ”False” (True tarkoittaa, että vain käyttäjä näkee sen)
  • Enabled:
  • Vol: Aseta se taso, joka on mukava sinulle ja katsojillesi
  • Message: ”True” (False luonnollisesti poistaa sen käytöstä kyseiseltä käyttäjältä)
  • Vol: $readline(C:\user\$user.txt)

Katsotaanpa tarkemmin ”Message”-välilehteä:

$readline(C:\user\$user.txt)

Parametri $readline() yksinkertaisesti lukee ensimmäisen rivin siinä tekstidokumentissa, johon osoitat sen. Kohde asetetaan sulkujen sisään. Tämä on tärkeä osa: tekstidokumentin nimeäminen $user.txt antaa Ankhbotille mahdollisuuden etsiä .txt-dokumenttia, joka on merkitty käyttäjän nimellä (tämä tulee täyteen ympyrään myöhemmin tässä dokumentissa).

Kun olemme syöttäneet kaikki nykyiset seuraajat, olemme valmiit. Kun saamme kuitenkin lisää seuraajia, meidän on luotava jokaiselle uusi merkintä. Tämä on suurin työ, joka meidän on tehtävä tässä lähes itsenäisessä järjestelmässä.

KÄYTTÄJÄKOMENNOT

Nyt kun meillä on ydinasetukset, luodaan komennot, joiden avulla käyttäjät voivat asettaa ja muuttaa tervetuloviestinsä. Jotta olemme samalla sivulla, komentoni, jolla seuraajat voivat luoda oman tervetuliaisviestinsä, on !buywelcome ja kanavani valuutta on tarvikkeet.

!BUYWELCOME

Tämän saadaksesi toimimaan sinun täytyy ensin luoda .txt-dokumentti, jonka sisällä on kaksi parametria: $removepoints(”target”, ”min”, ”max”, ”succeed”, ”fail”, ”forceremove”) ja $overwritefile(”FileLocation”, ”Text”). Nimesin dokumenttini buywelcome.txt ja täytin sen näin:

$removepoints(”$user”, ”100”, ”100”,”$value tarvikkeita on poistettu inventaariostasi ja tervetuliaisviestisi on muutettu muotoon ’$msg'”, ”Varastossasi ei ole tarpeeksi tarvikkeita!”, ”false”) $overwritefile(”C:\Ankhbot\user\$user.txt”,”$user: $msg”)

Ensimmäinen parametri – $removepoints() – tekee juuri sen, mitä se sanoo, ja poistaa pisteitä (tai valuuttaa) komennon antaneelta käyttäjältä. Tässä tapauksessa se poistaa 100 tarviketta (jos käyttäjällä on tarpeeksi) ja palauttaa viestin sekä siitä, onko käyttäjällä tarpeeksi tarvikkeita vai ei. Katsotaanpa tarkemmin:

  • ”$user” – yhdistää $removepoints()-parametrin komennon syöttävään käyttäjään
  • ”min”, ”max” – omassa parametrissani asetetaan minimi- ja maksimipalkkioksi 100 tarviketta kumpikin, jotta se ei vaihtelisi
  • ”succeed” – ”$value tarvikkeita blaa blaa blaa blaa ’$msg ’$msg'” ottaa minkä tahansa summan, joka on poistettu valuuttana (100), ja näyttää sen chat-viestin yhteydessä onnistumisviestin kanssa. Parametri $msg tulostaa uudelleen käyttäjän asettaman viestin, jotta käyttäjä näkee sen. Lisäsin tämän, jotta he tietävät, että se on muuttunut.
  • ”fail” – ”You do no blah blah” on viesti, jos käyttäjällä ei ole 100 tarvikkeita (he tykkäävät pelata uhkapeliä)
  • ”forceremove” – ”false” sallii käyttäjille, että he eivät voi ostaa, jos heillä ei ole tarpeeksi tarvikkeita. Tämän asettaminen arvoon ”True” antaisi mahdollisuuden mennä negatiiviseen valuuttaan.

Toisen parametrin avulla voimme tallentaa viestin .txt-dokumenttiin, joka on merkitty käyttäjän nimellä ($user.txt) käyttämällä parametria $overwritefile(”FileLocation”, ”Text”).

Ennen kuin menemme tähän, haluan selittää jotain. Muistatko, kun loimme On Join Event -listan? Loimme kansion, johon sijoitimme kaikki käyttäjän .txt-tiedostot, mutta emme luoneet varsinaisia tekstitiedostoja. Miksi? Näin varmistetaan, että kun käyttäjä, joka ei ole syöttänyt mitään tervetuliaisviestiä, ei saa sellaista, kun hän liittyy chattiin. Katsotaanpa tarkemmin:

  • $overwritefile(”FileLocation”) – käyttämällä $overwritefileä $savetofilen sijasta käyttäjä voi muuttaa tätä viestiä milloin haluaa.
  • ”text” – ”$user: $msg” nämä kaksi parametria tallentavat käyttäjän käyttäjätunnuksen ja hänen kirjoittamansa viestin, jotta molemmat voidaan myöhemmin tulostaa ruudulle.

Todellisessa !buywelcome-komennossa laitat yksinkertaisesti $readline(FileLocation) ja osoitat sen kohti luomasi dokumenttia (minun tapauksessani buywelcome.txt). Muuta sinun ei tarvitse tehdä, jotta tämä toimii.

!BUYOTHERWELCOME

Luodakseni hauskan ja jokseenkin kilpailullisen kokemuksen halusin sallia, että seuraajani voivat luoda tervetuliaisviestejä muille käyttäjille. Tiesin, että tämä muistuttaisi läheisesti !buywelcome-komentoa, mutta aiheuttaisi omat esteensä, koska kyseessä on yksi käyttäjä, joka luo viestin toiselle. Määrittelin tämän näin:

Kuten edellisessä komennossa, luot .txt-dokumentin, jossa on parametrit $removepoints(”target”, ”min”, ”max”, ”succeed”, ”fail”, ”forceremove”) ja $overwritefile(”FileLocation”, ”Text”). Toisin kuin edellinen komento, sinun on asetettava se hieman eri tavalla saadaksesi sen toimimaan. Näin omani näyttää:

$removepoints(”$user”, ”100”, ”100”,”$value tarvikkeita on poistettu inventaariostasi ja $targetin tervetuliaisviesti on muutettu muotoon ’$msg'”, ”Varastossasi ei ole tarpeeksi tarvikkeita!”, ”false”) $overwritefile(”C:\Users\JohninMotion\Documents\Ankhbot\user\$target.txt”,”$msg”)

Ensimmäinen parametri – $removepoints() – tekee juuri sen, mitä sanotaan, ja poistaa pisteitä (tai valuuttaa) komennon antavalta käyttäjältä. Tässä tapauksessa se poistaa 100 tarviketta (jos käyttäjällä on tarpeeksi) ja palauttaa viestin sekä siitä, onko hänellä tarpeeksi tarvikkeita, että siitä, ettei hänellä ole tarpeeksi. Erona on se, että se syöttää viestille kohteen. Katsotaanpa tarkemmin:

  • ”$user” – yhdistää $removepoints()-parametrin käyttäjään, joka syöttää komennon
  • ”min”, ”max” – omassa parametrissani asetetaan minimi- ja maksimipalkkaukseksi 100 tarviketta kumpikin, jotta se ei vaihtele
  • ”succeed” – ”$value tarvikkeita blaa blaa $target blaa ’$msg'” ottaa mitä tahansa summaa, joka on poistettu valuutasta (100), ja näyttää sen chat-viestin yhteydessä onnistumisviestin kanssa. $target kertoo järjestelmälle, kenelle haluat viestin menevän. Parametri $msg tulostaa uudelleen käyttäjän asettaman viestin, jotta käyttäjä näkee sen. Lisäsin tämän, jotta he tietävät, että se on muuttunut.
  • ”fail” – ”You do no blah blah” on viesti, jos käyttäjällä ei ole 100 tarviketta (taas he haluavat pelata)
  • ”forceremove” – ”false” sallii käyttäjille, että he eivät voi ostaa, jos heillä ei ole tarpeeksi tarvikkeita. Tämän asettaminen arvoon ”True” antaisi mahdollisuuden mennä negatiiviseen valuuttaan.

Toisen parametrin avulla voimme tallentaa viestin .txt-dokumenttiin, joka on tällä kertaa merkitty kohteen nimellä ($target.txt) käyttämällä parametria $overwritefile(”FileLocation”, ”Text”). Katsotaanpa tarkemmin:

  • $overwritefile(”FileLocation”) – käyttämällä $overwritefilea $savetofile-parametrin sijasta käyttäjä voi muuttaa tätä viestiä milloin haluaa.
  • ”text” – ”$target: $msg” nämä kaksi parametria tallentavat kohteen käyttäjänimen ja hänen kirjoittamansa viestin, jotta molemmat voidaan myöhemmin tulostaa ruudulle.

Todellisessa !buyotherwelcome-komennossa laitetaan yksinkertaisesti $readline(FileLocation) ja osoitetaan se kohti luotua dokumenttia (minun tapauksessani buyotherwelcome.txt). Siinä kaikki, mitä sinun tarvitsee tehdä, jotta tämä toimii.

!MYWELCOME

Loppujen lopuksi halusin tavan, jolla seuraajani näkevät viestinsä, vaikka se olisikin ollut jo sen jälkeen, kun he olivat tulleet chattiin, jo pelkästään sen takia, että he haluaisivat pystyä näkemään, että viesti toimi. Tämä on hyvin yksinkertainen asia perustaa. Näin:

Luo komento, minun tapauksessani se on !mywelcome, ja laita sen sisään parametri $readrandline(FileLocation). Sisällä osoitat sen yksinkertaisesti kohti kansiota, jossa on kaikki käyttäjän tervetuliaisviestit (minun kohdallani \user\), ja lopussa on $user.txt. Omani näyttävät esimerkiksi seuraavalta:

$readrandline(C:\Users\JoininMotion\Documents\Ankhbot\users\$user.txt)

Juuri noin. Nyt kun käyttäjä kirjoittaa !mywelcome-komennon, hän näkee oman tervetuliaisviestinsä.

TOIMINTAA SELVITTÄVÄ KONE

Seuraamalla edellä määriteltyä polkua voit luoda oman (lähes) täysin itsenäisen käyttäjän luoman mukautetun tervetuliaisviestin. Ehkä joskus tulevaisuudessa, jos Marcin päättää jatkaa Ankhbotin päivittämistä, pystymme luomaan todella täysin autonomisen järjestelmän. Siihen asti, kaikkiin intensiivisiin tarkoituksiin, tämän täytyy riittää toistaiseksi.

Jätä kommentti