Ankhbot – Oprettelse af et (næsten) fuldstændig autonomt brugerskabt brugerdefineret velkomstprogram

På grund af ændringer i den måde, Medium fungerer på, vil jeg ikke længere vedligeholde denne blog. Du kan finde min nye blog på https://www.resonantdrifter.com og et direkte link til denne artikel på https://www.resonantdrifter.com/blog/ankhbot-%E2%80%94-creating-an-almost-completous-autonomous-user-created-custom-welcome-message-program/

På grund af Ankhbot’s fusion med Streamlabs er denne artikel nu en smule forældet, så jeg har lavet en ny! Gå venligst over til den passende navngivne “Streamlabs Chatbot – Creating an (almost) autonomous user-created custom welcome message program”!

For et stykke tid siden besluttede jeg at give mine Twitch-følgere, som jeg kalder Drifters, en måde at oprette deres egen velkomstbesked på, som for en lille sum penge (kaldet supplies i min kanal) ville hilse på dem, når de kom ind i chatten. Dette ville give dem mulighed for at bruge nogle af disse forsyninger på noget andet end ambushes (min kanals version af heists) og få fællesskabet til at føles lidt mere som deres eget. Selvfølgelig førte dette også til ideen om at de kunne oprette en velkomstbesked til andre brugere – en sjov måde for følgere at lave ballade med andre følgere på. Heldigvis har Ankhbot inkluderet en måde for velkomstbeskeder (blandt andre ting) at blive inkluderet på specifikke brugere, der kommer ind i din kanal.

Jeg satte straks denne plan i gang, og det var en succes, da jeg var i stand til at bruge $removepoints() parameteren til at tage Supplies fra dem, og de ville hviske mig den besked, de ønskede, at deres velkomstbesked skulle være, eller brugernavnet og beskeden for den anden Drifter. Kort efter dette gennembrud (i mit hoved) indså jeg dog, at det ville være næsten umuligt for mig at følge med i deres behov på en konsekvent måde uden at afbryde gameplayet gentagne gange. Det førte mig ned ad stien på jagt efter en måde at lave en helt autonom måde for brugerne at oprette og ændre deres velkomstbeskeder efter behag.

Jeg vil være ærlig over for dig: det er ikke muligt at oprette en helt autonom brugerskabt brugerdefineret velkomstbesked i Ankhbot. Da jeg kørte min idé forbi Marcin Swierzowski på Twitter, bekræftede han, at min idé bare ikke kunne bære frugt.

John Paul @resonantdrifter

næsten. Need a way to automatically set the On Join Event per user to read their specific $user.txt automatically… #ankhbot@AnkhHeart

Ankh Heart @AnkhHeart

@resonantdrifter That’s not possible. Du bliver nødt til manuelt at oprette On Join Events manuelt.

Men min stædighed holdt dog ved, og jeg kom på en måde, der ville tillade brugeren at oprette og ændre deres (og andres) egen brugerdefinerede velkomstbesked efter behag med MEGET LILLE INITIAL INDSTILLING. Nedenstående er hvordan jeg skabte den (næsten) helt autonome brugerskabte brugerdefinerede velkomstbesked!

Først og fremmest er den mest intensive del af denne opsætning (især hvis du allerede har mange følgere eller får mange følgere dagligt) at opsætte On Join Event-listen. On Join Event-listen er der, hvor du fortæller Ankhbot, hvad du ønsker, at den skal gøre, når en bestemt bruger går ind i chatten. Dette kan desværre ikke automatiseres, og det var her jeg blev hængt op i min store plan. Jeg ville virkelig gerne have Ankhbot til automatisk at sammensætte denne liste fra mine nuværende følgere, men at automatisere dette system er bare ikke muligt, så du bliver nødt til manuelt at indtaste en post for hver følger. Heldigvis behøver du kun at gøre det én gang pr. følgere. Derefter opdateres hver besked automatisk af sig selv.

I On Join Event-systemet skal du oprette en post for hver af dine følgere, der linker den til en .txt-dokument, som vil vise deres kommando, når de går ind i chatten.

Først skal du oprette en mappe, hvor du vil gemme alle de .txt-dokumenter, som Ankhbot vil oprette. Husk, at selv om de vil være små (filstørrelsesmæssigt), vil der blive oprettet mange filer (forudsat at du får mange følgere). Når dette er gjort, går du tilbage til Ankhbot og opretter en kommando for hver af dine følgere på følgende måde (hint: alt forbliver det samme undtagen Info slot):

  • UserGroup: Hold denne “User_Specific”
  • Info: Individuel follower brugernavn
  • Client Only: “False” (True betyder, at kun brugeren vil kunne se det)
  • Enabled: “True” (False vil naturligvis slå det fra for den pågældende bruger)
  • Vol: Indstil til det niveau, der er behageligt for dig og dine seere
  • Message: “True” (False vil naturligvis slå det fra for den pågældende bruger)
  • Vol:

Lad os kigge nærmere på “Message”-slottet:

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

Parameteren $readline() læser simpelthen den første linje i det tekstdokument, du peger den til. Destinationen sættes inden for parenteserne. Dette er en vigtig del: Ved at navngive tekstdokumentet $user.txt kan Ankhbot søge efter et .txt-dokument mærket med brugerens navn (dette vil komme til at indgå som en fuld cirkel længere nede i dette dokument).

Når vi indtaster alle aktuelle følgere er vi færdige. Men efterhånden som vi får flere følgere, skal vi oprette en ny post for hver af dem. Det er det meste arbejde, vi skal lave på dette næsten autonome system.

CHAT COMMANDS

Nu da vi har kerneopsætningen, lad os oprette de kommandoer, der vil give brugerne mulighed for at indstille og ændre deres velkomstbesked. Bare så vi er på samme side, min kommando for tilhængere til at oprette deres egen velkomstbesked er !buywelcome og valutaen i min kanal er forsyninger.

!BUYWELCOME

For at få dette til at virke skal du først oprette en .txt-dokument med to parametre indeni: $removepoints(“target”, “min”, “min”, “max”, “succeed”, “fail”, “forceremove”) og $overwritefile(“FileLocation”, “Text”). Jeg kaldte mit dokument buywelcome.txt og udfyldte det således:

$removepoints(“$user”, “100”, “100”, “100”,”$value supplies have been removed from your inventory and your welcome message has been changed to ‘$msg'”, “You do not have enough supplies in your inventory!”, “false”) $overwritefile(“C:\Ankhbot\user\user\$user.txt”,”$user: $msg”)

Den første parameter – $removepoints() – gør præcis, hvad den siger, og fjerner point (eller valuta) fra den bruger, der indtaster kommandoen. I dette tilfælde fjerner den 100 forsyninger (hvis brugeren har nok) og returnerer en besked, både hvis de har eller ikke har nok forsyninger. Lad os se nærmere på det:

  • “$user” – forbinder parameteren $removepoints() med den bruger, der indtaster kommandoen
  • “min”, “max” – i min parameter sættes minimums- og maksimumsudbetalingen til 100 forsyninger hver, så den ikke varierer
  • “succeed” – “$value supplies blah blah blah ‘$msg'” tager det beløb, der er fjernet af valuta (100), og viser det i in-chat-meddelelsen sammen med succesmeddelelsen. Parameteren $msg genoptrykker den besked, som brugeren har indstillet, så de kan se den. Jeg har inkluderet dette, så de ved, at det er ændret.
  • “fail” – “You do no blah blah blah” er beskeden, hvis brugeren ikke har 100 forsyninger (de kan lide at gamble)
  • “forceremove” – “false” giver brugerne mulighed for ikke at kunne købe, hvis de ikke har nok forsyninger. Indstilling af dette til “True” ville tillade at gå i negativ valuta.

Den anden parameter giver os mulighed for at gemme meddelelsen i et .txt-dokument mærket som brugerens navn ($user.txt) ved hjælp af parameteren $overwritefile(“FileLocation”, “Text”).

Hvor vi går i gang med dette, vil jeg gerne forklare noget. Kan du huske tilbage, da vi oprettede On Join Event-listen? Vi oprettede en mappe til at huse alle brugernes .txt-filer, men vi oprettede ikke nogen egentlige tekstfiler. Hvorfor? Dette sikrer, at når en bruger, der ikke har indtastet noget som en velkomstbesked, ikke får en sådan, når de tilmelder sig chatten. Lad os se nærmere på det:

  • $overwritefile(“FileLocation”) – ved at bruge $overwritefile i stedet for $savetofile kan brugeren ændre denne besked, når han/hun ønsker det.
  • “text” – “$user: $msg” disse to parametre gemmer brugerens brugernavn og den besked, de har skrevet, for at udskrive dem begge på skærmen senere.

I selve !buywelcome-kommandoen sætter du blot $readline(FileLocation) og peger den mod det dokument, du har oprettet (i mit tilfælde buywelcome.txt). Det er alt, hvad du skal gøre for at få det til at virke.

!BUYOTHERWELCOME

For at skabe en sjov og lidt konkurrencepræget oplevelse ønskede jeg at give mine følgere mulighed for at kunne oprette velkomstbeskeder til andre brugere. Jeg vidste, at dette ville ligne !buywelcome-kommandoen meget, men at det ville give sine egne forhindringer, da det er en bruger, der opretter en besked til en anden. Her er hvordan jeg satte det op:

Meget ligesom den foregående kommando opretter du et .txt-dokument med parametrene $removepoints(“target”, “min”, “max”, “succeed”, “fail”, “forceremove”) og $overwritefile(“FileLocation”, “Text”) i det. I modsætning til den foregående kommando skal du opsætte den lidt anderledes for at få den til at virke. Sådan ser min ud:

$removepoints(“$user”, “100”, “100”, “100”,”$value supplies have been removed from your inventory and $target’s welcome message has been changed to ‘$msg'”, “You do not have enough supplies in your inventory!”, “false”) $overwritefile(“C:\Users\JohninMotion\Documents\Ankhbot\user\$target.txt”,”$msg”)

Den første parameter – $removepoints() – gør præcis, hvad den siger, og fjerner point (eller valuta) fra den bruger, der indtaster kommandoen. I dette tilfælde fjerner den 100 forsyninger (hvis brugeren har nok) og returnerer en besked, både hvis brugeren har eller ikke har nok forsyninger. Der, hvor den adskiller sig, er, at den indtaster et mål for meddelelsen. Lad os se nærmere på det:

  • “$user” – forbinder parameteren $removepoints() med den bruger, der indtaster kommandoen
  • “min”, “max” – i min parameter sættes minimums- og maksimumsudbetalingen til 100 forsyninger hver, så den ikke varierer
  • “succeed” – “$value supplies blah blah $target blah ‘$msg'” tager det beløb, der fjernes fra valuta (100), og viser det i in-chat-meddelelsen sammen med succesmeddelelsen. $target fortæller systemet, hvem du ønsker, at beskeden skal gå til. Parameteren $msg vil genoptrykke den besked, som brugeren har indstillet, så de kan se den. Jeg har inkluderet dette, så de ved, at det er ændret.
  • “fail” – “You do no blah blah blah” er beskeden, hvis brugeren ikke har 100 forsyninger (igen, de kan lide at gamble)
  • “forceremove” – “false” giver brugerne mulighed for ikke at kunne købe, hvis de ikke har nok forsyninger. Hvis du indstiller dette til “True”, kan de gå i negativ valuta.

Den anden parameter giver os mulighed for at gemme meddelelsen i et .txt-dokument, der denne gang er mærket som målets navn ($target.txt) ved hjælp af parameteren $overwritefile(“FileLocation”, “Text”). Lad os se nærmere på det:

  • $overwritefile(“FileLocation”) – ved at bruge $overwritefile i stedet for $savetofile kan brugeren ændre denne meddelelse, når han/hun ønsker det.
  • “text” – “$target: $msg” disse to parametre gemmer brugernavnet på målet og den besked de har skrevet for at udskrive dem begge på skærmen senere.

I selve !buyotherwelcome-kommandoen sætter du blot $readline(FileLocation) og peger den mod det dokument du har oprettet (i mit tilfælde buyotherwelcome.txt). Og det er alt, hvad du behøver at gøre for at få det til at virke.

!MYWELCOME

Endeligt ville jeg have en måde, hvorpå mine følgere kunne se deres besked, selv om det var efter de var kommet ind i chatten, alene af den grund, at de gerne vil kunne se, at det virkede. Dette er en meget enkel ting at sætte op. Her er hvordan:

Opret en kommando, i mit tilfælde er det !mywelcome, og sæt inde i den parameteren $readrandline(FileLocation). Indeni skal du blot pege den mod den mappe, der indeholder alle brugerens velkomstbeskeder (\user\ for mig) med $user.txt til sidst. Mine ser f.eks. sådan ud:

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

Det er det. Når en bruger nu indtaster kommandoen !mywelcome, vil han/hun se sin egen velkomstbesked.

DEN SELVFØLGELIGE MASKINE

Ved at følge den ovenfor angivne vej vil du være i stand til at skabe din egen (næsten) helt autonome brugerskabte, brugerdefinerede velkomstbesked. Måske vil vi en dag i fremtiden, hvis Marcin beslutter sig for at fortsætte med at opgradere Ankhbot, være i stand til at skabe et virkelig fuldstændig autonomt system. Indtil da må dette indtil videre være tilstrækkeligt til alle intensive formål.

Skriv en kommentar