På grund av förändringar i hur Medium fungerar kommer jag inte längre att hålla den här bloggen igång. Du hittar min nya blogg på https://www.resonantdrifter.com och en direktlänk till den här artikeln på https://www.resonantdrifter.com/blog/ankhbot-%E2%80%94-creating-an-almost-completous-autonomous-user-created-custom-welcome-message-program/
På grund av Ankhbots sammanslagning med Streamlabs är den här artikeln nu något föråldrad så jag har gjort en ny! Gå över till den passande titeln ”Streamlabs Chatbot – Creating an (almost) autonomous user-created custom welcome message program”!
För ett tag sedan bestämde jag mig för att ge mina Twitch-anhängare, som jag kallar Drifters, ett sätt att skapa ett eget välkomstmeddelande som för en liten summa valuta (som kallas förnödenheter i min kanal) skulle hälsa dem när de kom in i chatten. Detta skulle göra det möjligt för dem att spendera en del av dessa förnödenheter på något annat än bakhåll (min kanals version av heists) och få samhället att kännas lite mer som deras eget. Naturligtvis ledde detta också till idén om att de skulle kunna skapa ett välkomstmeddelande för andra användare – ett roligt sätt för anhängarna att jävlas med andra anhängare. Lyckligtvis har Ankhbot inkluderat ett sätt för välkomstmeddelanden (bland annat) att inkluderas när specifika användare kommer in i din kanal.
Jag satte genast igång denna plan och det blev en succé eftersom jag kunde använda parametern $removepoints() för att ta Supplies från dem och de viskade till mig det meddelande de ville att deras välkomstmeddelande skulle vara eller användarnamnet och meddelandet för den andra Drifter. Strax efter detta genombrott (i mitt sinne) insåg jag dock att det skulle bli nästintill omöjligt för mig att hålla jämna steg med deras behov på ett konsekvent sätt utan att avbryta spelandet upprepade gånger. Det ledde mig på vägen i sökandet efter ett sätt att göra ett helt autonomt sätt för användare att skapa och ändra sina välkomstmeddelanden efter behag.
Jag ska vara uppriktig mot dig: det är inte möjligt att skapa ett helt autonomt användarskapat anpassat välkomstmeddelande i Ankhbot. När jag körde min idé förbi Marcin Swierzowski på Twitter bekräftade han att min idé helt enkelt inte kunde bära frukt.
John Paul @resonantdrifter
Nästan. Behöver ett sätt att automatiskt ställa in On Join Event per användare för att läsa deras specifika $user.txt automatiskt… #ankhbot@AnkhHeart
Ankh Heart @AnkhHeart
@resonantdrifter Det är inte möjligt. Du måste skapa On Join Events manuellt.
Men min envishet höll i sig och jag kom på ett sätt som gör det möjligt för användaren att skapa och ändra sitt (och andras) egna anpassade välkomstmeddelande när som helst med mycket liten inledande inställning. Följande är hur jag skapade det (nästan) helt autonoma användarskapade anpassade välkomstmeddelandet!
Först och främst är den mest intensiva delen av den här inställningen (särskilt om du redan har många följare eller får många följare dagligen) att ställa in On Join Event-listan. Listan On Join Event är där du berättar för Ankhbot vad du vill att den ska göra när en specifik användare går in i chatten. Detta kan tyvärr inte automatiseras och det var där jag fastnade i mitt storslagna schema. Jag ville verkligen att Ankhbot automatiskt skulle sammanställa den här listan från mina nuvarande följare, men att automatisera det här systemet är helt enkelt inte möjligt, så du måste manuellt skriva in en post för varje följare. Lyckligtvis behöver du bara göra detta en gång per följare. Därefter kommer varje meddelande att uppdateras automatiskt på egen hand.
I On Join Event-systemet måste du skapa en post för var och en av dina följare och länka den till en .txt-dokument som kommer att visa deras kommando när de kommer in i chatten.
Skapa först en mapp där du vill lagra alla .txt-dokument som Ankhbot kommer att skapa. Kom ihåg att även om de kommer att vara små (filstorleksmässigt) kommer det att skapas många filer (förutsatt att du får många följare). När detta är gjort går du tillbaka till Ankhbot och skapar ett kommando för var och en av dina följare enligt följande (ledtråd: allt förblir detsamma utom Info slot):
- UserGroup: Håll detta ”User_Specific”
- Info: Individuellt användarnamn för en följare
- Client Only: ”False” (True betyder att endast användaren kan se det)
- Enabled: ”Enabled”: ”False” (True betyder att endast användaren kan se det)
- Enabled: ”False”: ”True” (False stänger naturligtvis av den för den användaren)
- Vol: Ställ in den nivå som är bekväm för dig och dina tittare
- Meddelande: Vi tar en närmare titt på ”Message”-platsen:
$readline(C:\user\$user.txt)
$readline(C:\user\$user.txt)
Parametern $readline() läser helt enkelt den första raden i det textdokument som du pekar den till. Destinationen sätts inom parentesen. Detta är en viktig del: genom att namnge textdokumentet $user.txt kan Ankhbot söka efter ett .txt-dokument som är märkt med användarens namn (detta kommer att gå i full cirkel längre ner i det här dokumentet).
När vi har skrivit in alla aktuella följare är vi klara. När vi får fler följare måste vi dock skapa en ny post för var och en av dem. Det är det mesta arbetet vi kommer att behöva göra på detta nästan autonoma system.
CHAT COMMANDS
Nu när vi har den centrala inställningen, låt oss skapa de kommandon som gör det möjligt för användarna att ställa in och ändra sitt välkomstmeddelande. Bara så att vi är på samma sida, mitt kommando för att följarna ska kunna skapa sitt eget välkomstmeddelande är !buywelcome och valutan i min kanal är supplies.
!BUYWELCOME
För att få detta att fungera måste du först skapa ett .txt-dokument med två parametrar inuti: $removepoints(”target”, ”min”, ”max”, ”succeed”, ”fail”, ”forceremove”) och $overwritefile(”FileLocation”, ”Text”). Jag gav mitt dokument namnet buywelcome.txt och fyllde i det på följande sätt:
$removepoints(”$user”, ”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örsta parametern – $removepoints() – gör precis vad den säger och tar bort poäng (eller valuta) från användaren som anger kommandot. I det här fallet tar den bort 100 förnödenheter (om användaren har tillräckligt många) och returnerar ett meddelande både om de har eller inte har tillräckligt med förnödenheter. Låt oss ta en närmare titt:
- ”$user” – kopplar parametern $removepoints() till användaren som anger kommandot
- ”min”, ”max” – i min parameter fastställs lägsta och högsta utbetalning till 100 förnödenheter vardera så att den inte varierar
- ”succeed” – ”$value supplies blah blah blah ’$msg'” tar det belopp som tas bort från valutan (100) och visar det i meddelandet i chatten tillsammans med meddelandet om att kommandot är framgångsrikt. Parametern $msg skriver ut det meddelande som användaren har ställt in så att de kan se det. Jag inkluderade detta så att de vet att det har ändrats.
- ”fail” – ”You do no blah blah blah” är meddelandet om användaren inte har 100 förnödenheter (de gillar att spela)
- ”forceremove” – ”false” gör att användarna inte kan köpa om de inte har tillräckligt med förnödenheter. Om du ställer in detta på ”True” kan de gå in i negativ valuta.
Den andra parametern gör det möjligt för oss att lagra meddelandet i ett .txt-dokument märkt med användarens namn ($user.txt) med hjälp av parametern $overwritefile(”FileLocation”, ”Text”).
Innan vi går in på det här, vill jag förklara en sak. Minns du när vi skapade listan On Join Event? Vi skapade en mapp för att hysa alla användarnas .txt-filer, men vi skapade inga egentliga textfiler. Varför? Detta säkerställer att när en användare som inte har angett något som välkomstmeddelande inte kommer att få ett sådant när de ansluter sig till chatten. Låt oss ta en närmare titt:
- $overwritefile(”FileLocation”) – genom att använda $overwritefile istället för $savetofile kan användaren ändra detta meddelande när de vill.
- ”text” – ”$user: $msg” dessa två parametrar sparar användarens användarnamn och det meddelande de skrivit för att skriva ut dem på skärmen båda senare.
I själva !buywelcome-kommandot sätter du helt enkelt in $readline(FileLocation) och pekar det mot det dokument du skapat (i mitt fall buywelcome.txt). Det är allt du behöver göra för att få detta att fungera.
!BUYOTHERWELCOME