Por causa de alterações na forma como o Medium funciona, não vou continuar a manter este blog. Você pode encontrar meu novo blog em https://www.resonantdrifter.com e um link direto para este artigo em https://www.resonantdrifter.com/blog/ankhbot-%E2%80%80%94-criando-um-mais-completamente-autônomo-criado-usuário-criado-pessoa-personalizado-programa de mensagens/
Por causa da fusão de Ankhbot com Streamlabs, este artigo agora está ligeiramente desatualizado, então eu fiz um novo! Por favor vá até o apropriadamente chamado “Streamlabs Chatbot – Criando um (quase) programa de mensagens de boas vindas personalizado criado pelo usuário”!
A enquanto de volta eu decidi dar aos meus seguidores de Twitch, que eu chamo de Drifters, uma forma de criar sua própria mensagem de boas vindas que, por uma pequena soma de moeda (chamada de suprimentos no meu canal), os saudaria quando entrassem no chat. Isso lhes permitiria gastar alguns desses suprimentos em algo além de emboscadas (a versão dos assaltos do meu canal) e fazer a comunidade se sentir um pouco mais como a deles. É claro que isto também leva à ideia de que eles possam criar uma mensagem de boas-vindas para outros usuários – uma forma divertida de os seguidores se meterem com outros seguidores. Felizmente, Ankhbot incluiu uma forma de mensagens de boas vindas (entre outras coisas) para serem incluídas em usuários específicos entrando em seu canal.
Eu imediatamente pus este plano em movimento e foi um sucesso, pois pude usar o parâmetro $removepoints() para tirar Suprimentos deles e eles me sussurrariam a mensagem que eles queriam que sua mensagem de boas vindas fosse ou o nome de usuário e mensagem do outro Drifter. Entretanto, logo após esta descoberta (na minha mente), eu percebi que seria quase impossível para mim acompanhar a necessidade deles de uma maneira consistente sem interromper a jogabilidade repetidamente. Isso me levou ao caminho em busca de uma maneira de fazer uma maneira completamente autônoma para os usuários criarem e alterarem suas mensagens de boas-vindas à vontade.
Eu estarei à frente com você: não é possível criar uma mensagem de boas-vindas personalizada completamente autônoma criada pelo usuário no Ankhbot. Passando minha idéia pelo Marcin Swierzowski no Twitter, ele confirmou que minha idéia não foi capaz de dar frutos.
John Paul @resonantdrifter
Almost. Precisa de uma forma de definir automaticamente o evento On Join por utilizador para ler automaticamente o seu $user.txt específico… #ankhbot@AnkhHeart
>
>
>
Ankh Heart @AnkhHeart
>
@resonantdrifter Isso não é possível. Você terá que criar manualmente Eventos de Junção (On Join Events).
No entanto, minha teimosia persistiu e eu encontrei uma maneira que permitiria ao usuário criar e alterar sua (e outras) própria mensagem de boas vindas personalizada à vontade com MUITO LITTLE INITIAL SETUP. O seguinte é como eu criei a mensagem de boas-vindas personalizada (quase) completamente autónoma criada pelo utilizador!
Primeiro e acima de tudo, a parte mais intensiva desta configuração (especialmente se você já tem muitos seguidores ou recebe muitos seguidores diariamente) é configurar a lista de eventos On Join. A lista de Eventos On Join é onde você diz ao Ankhbot o que você quer que ele faça quando um usuário específico entra no chat. Infelizmente isto não pode ser automatizado e foi onde eu fiquei pendurado no meu grande esquema. Eu realmente queria que Ankhbot compilasse automaticamente esta lista dos meus seguidores atuais, mas automatizar este sistema simplesmente não é possível, então você terá que digitar manualmente uma entrada para cada seguidor. Felizmente, você só terá que fazer isso uma vez por seguidor. Depois disso, cada mensagem será automaticamente actualizada por si.
No sistema On Join Event terá de criar uma entrada para cada um dos seus seguidores ligando-o a um .txt que exibirá seu comando ao entrar no chat.
Primeiro, crie uma pasta onde você deseja armazenar todos os documentos .txt que o Ankhbot irá criar. Lembre-se, embora eles sejam pequenos (em termos de tamanho dos arquivos), haverá vários arquivos criados (assumindo que você obtenha muitos seguidores). Uma vez feito isso, volte ao Ankhbot e crie um comando para cada um dos seus seguidores da seguinte forma (dica: tudo permanece o mesmo exceto o Info slot):
- UserGroup: Mantenha este “User_Specific”
- Info: nome de usuário do seguidor individual
- Somente Cliente: “Falso” (Verdadeiro significa que somente o usuário poderá vê-lo)
- Ativado: “Verdadeiro” (Falso irá, obviamente, desligá-lo para aquele usuário)
- Vol: Definir para qualquer nível que seja confortável para você e seus espectadores
- Mensagem: $readline(C:\user\$user.txt)
Vamos ver mais de perto o slot “Message”:
$readline(C:\user\$user.txt)
O parâmetro $readline() simplesmente lê a primeira linha em qualquer documento de texto para o qual você aponte. O destino é colocado dentro dos parênteses. Esta é uma parte importante: nomear o documento de texto $user.txt permite ao Ankhbot procurar por um documento .txt rotulado com o nome do usuário (isto virá em círculo completo mais abaixo neste documento).
A partir do momento que digitarmos todos os seguidores atuais, estamos prontos. No entanto, à medida que obtemos mais seguidores temos de criar uma nova entrada para cada um deles. Este é o maior trabalho que teremos de fazer neste sistema quase autónomo.
CHAT COMMANDS
Agora temos a configuração do núcleo, vamos criar os comandos que permitirão aos utilizadores definir e alterar a sua mensagem de boas-vindas. Só para estarmos na mesma página, o meu comando para os seguidores criarem a sua própria mensagem de boas vindas é !buywelcome e a moeda no meu canal é supplies.
!BUYWELCOME
Para que isto funcione é preciso primeiro criar um .txt com dois parâmetros dentro: $removepoints(“target”, “min”, “max”, “succeed”, “fail”, “forceremove”) e $overwritefile(“FileLocation”, “Text”). Eu etiquetei o meu documento buywelcome.txt e preenchi-o assim:
$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.txt”,”$user: $msg”)
O primeiro parâmetro – $removepoints() – faz exatamente o que diz e remove pontos (ou moeda) do usuário que entra no comando. Neste caso ele remove 100 Supplies (se o usuário tiver suficientes) e retorna uma mensagem tanto se ele tiver ou não Supplies suficientes. Vamos dar uma olhada de perto:
- “$user” – conecta o parâmetro $removepoints() ao usuário digitando o comando
- “min”, “max” – no meu parâmetro define o pagamento mínimo e máximo em 100 suprimentos cada um para não variar
- “successful” – “$value supplies blah blah blah ‘$msg'” pega qualquer quantia que for removida da moeda (100) e a exibe na mensagem no chat junto com a mensagem de sucesso. O parâmetro $msg irá reimprimir qualquer mensagem que o usuário tenha definido para que ele possa vê-la. Eu incluí isto para que eles saibam que mudou.
- “fail” – “You do no blah blah” é a mensagem se o usuário não tiver 100 suprimentos (eles gostam de jogar)
- “forceremove” – “false” permite aos usuários não serem capazes de comprar se não tiverem suprimentos suficientes. Definindo isto como “True” permitiria ao usuário ir em moeda negativa.
O segundo parâmetro nos permite armazenar a mensagem em um documento .txt rotulado como o nome do usuário ($user.txt) usando o parâmetro $overwritefile(“FileLocation”, “Text”).
Antes de entrarmos nisto, quero explicar algo. Lembra-se de quando criamos a lista de eventos On Join? Criamos uma pasta para alojar todos os arquivos .txt do usuário, mas não criamos nenhum arquivo de texto real. Por quê? Isso garante que quando um usuário que não entrou nada como uma mensagem de boas-vindas não receberá uma quando entrar no chat. Vamos dar uma olhada de perto:
- $overwritefile(“FileLocation”) – usando $overwritefile ao invés de $savetofile o usuário pode alterar esta mensagem sempre que quiser.
- “text” – “$user: $msg” estes dois parâmetros salvam o nome do usuário e a mensagem que eles digitaram para imprimi-los na tela tanto mais tarde.
No comando !buywelcome atual você simplesmente coloca $readline(FileLocation) e aponta para o documento que você criou (no meu caso, o buywelcome.txt). Isso é tudo que você precisa fazer para que isso funcione.
!BUYOTHERWELCOME
Para criar uma experiência divertida e um pouco competitiva, eu queria permitir que meus seguidores fossem capazes de criar mensagens de boas-vindas para outros usuários. Eu sabia que isto seria muito parecido com o comando !buywelcome, mas apresentaria seus próprios obstáculos já que é um usuário criando uma mensagem para outro. Aqui está como eu configurei isto:
Tal como o comando anterior, você cria um documento .txt com os parâmetros $removepoints(“target”, “min”, “max”, “succeed”, “fail”, “forceremove”) e os parâmetros $overwritefile(“FileLocation”, “Text”) nele. Ao contrário do comando anterior, você terá que configurá-lo de forma ligeiramente diferente para que funcione. Aqui está como o meu parece:
$removepoints(“$user”, “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”)
O primeiro parâmetro – $removepoints() – faz exatamente o que diz e remove pontos (ou moeda) do usuário que entra no comando. Neste caso ele remove 100 Supplies (se o usuário tiver suficientes) e retorna uma mensagem tanto se ele tiver ou não Supplies suficientes. Onde difere é que ele entra um alvo para a mensagem. Vamos dar uma olhada de perto:
- “$user” – conecta o parâmetro $removepoints() ao usuário entrando com o comando
- “min”, “max” – no meu parâmetro define o pagamento mínimo e máximo em 100 suprimentos cada um para que não varie
- “successful” – “$value supplies blah blah $target blah ‘$msg'” pega o valor que for removido da moeda (100) e o exibe na mensagem no chat junto com a mensagem de sucesso. $target irá dizer ao sistema a quem você quer que a mensagem vá. O parâmetro $msg irá reimprimir qualquer mensagem que o usuário tenha definido para que ele possa vê-la. Eu incluí isto para que eles saibam que mudou.
- “fail” – “You do no blah blah” é a mensagem se o usuário não tiver 100 suprimentos (novamente, eles gostam de jogar)
- “forceremove” – “false” permite que os usuários não sejam capazes de comprar se não tiverem suprimentos suficientes. Definindo isto como “True” permitiria ao usuário ir em moeda negativa.
O segundo parâmetro nos permite armazenar a mensagem em um documento .txt rotulado como o nome do alvo desta vez ($target.txt) usando o parâmetro $overwritefile(“FileLocation”, “Text”). Vamos dar uma olhada mais detalhada:
- $overwritefile(“FileLocation”) – usando $overwritefile em vez de $savetofile o usuário pode alterar esta mensagem sempre que quiser.
- “text” – “$target: $msg” estes dois parâmetros salvam o nome de usuário do alvo e a mensagem que eles digitaram para imprimi-los na tela tanto mais tarde.
No comando !buyotherwelcome atual você simplesmente coloca $readline(FileLocation) e aponta para o documento que você criou (no meu caso, o arquivo buyotherwelcome.txt). E isso é tudo que você precisa fazer para fazer isso funcionar.
!MYWELCOME
Finalmente, eu queria uma maneira de meus seguidores verem sua mensagem, mesmo que fosse depois de terem entrado no chat, se pelo simples fato de eles quererem ver que funcionou. Isto é uma coisa muito simples de se preparar. Aqui está como:
Criar um comando, no meu caso é !mywelcome, e colocar dentro dele o parâmetro $readrandline(FileLocation). Dentro dele você simplesmente aponta para a pasta onde estão todas as mensagens de boas vindas do usuário (\user\ para mim) com $user.txt no final. Por exemplo, o meu parece:
$readrandline(C:\Users\JoininMotion\Documents\Ankhbot\users\$user.txt)
É isso. Agora quando um usuário digitar o comando !mywelcome, ele verá sua própria mensagem de boas-vindas.
A MÁQUINA AUTO-SUFICIENTE
Seguindo o caminho definido acima, você será capaz de criar sua própria mensagem de boas-vindas (quase) completamente autônoma, criada pelo usuário. Talvez algum dia no futuro, se Marcin decidir continuar atualizando Ankhbot, seremos capazes de criar um sistema verdadeiramente completamente autônomo. Até lá, para todos os fins intensivos, isto terá que fazer por agora.