Cansado de depender de hospedagens grátis que ficam mais offline do que ficam online? Querendo aprender a como hospedar o seu bot em uma VPS? Então você chegou ao lugar certo! Neste tutorial você irá aprender a como escolher uma VPS, proteger ela, como copiar arquivos e rodar o seu bot!


Eu já recebi várias mensagens de pessoas me perguntando se eu recomendo a CookieHosting, e eu nunca soube porque ficam me perguntando isto, afinal, eu nunca usei ela e eu não tenho nenhum post público falando que eu recomendo ela!

...e aí eu descobri que no website da CookieHosting aparece uma citação minha parecendo que eu estou falando bem da hospedagem, mas aquilo é mentira, e neste post irei explicar porque eles decidiram me colocar lá e algumas hospedagens que eu realmente recomendo.


O clipe original foi postado no website do HampsterDance (hampsterdance.com) lá em 2001, mas ninguém fez um reupload do clipe original em alta qualidade para o YouTube... Mas graças ao Wayback Machine, foi possível baixar o SWF original e renderizar com o Swivel em uma resolução maior!

Eu também editei um pouco o clipe para colocar a versão de CD da música (já que a música no SWF original estava em baixa qualidade) e também alterei alguns cortes que estavam meio ruim, como se fosse uma versão "remasterizada" do clipe. Se você é purista e quer ver a versão original do clipe, então clique aqui.

Futuramente eu quero tentar aumentar o FPS do vídeo utilizando AI (por exemplo: DAIN APP) mas infelizmente não tenho as specs necessárias para fazer esse tipo de coisa, mas quem sabe algum dia, né?


A versão 7.0.0 (Minecraft 1.13) do WorldGuard deu problema no DreamCore (oof) e ninguém tinha mostrado como pegar uma região do WorldGuard na nova versão, já que teve mudanças na API e os dois exemplos que existiam na wiki do WorldGuard não funcionam mais... 😭

Então eu mesmo olhei nas mudanças do WorldGuard 7.0.0 para descobrir como é o novo jeito de pegar regiões!

fun isWithinRegion(loc: Location, region: String): Boolean {
    val regionContainer = WorldGuard.getInstance().platform.regionContainer
    val regionManager = regionContainer[BukkitAdapter.adapt(loc.world)] ?: return false
    val set = regionManager.getApplicableRegions(BukkitAdapter.adapt(loc).toVector())
    return set.any { it.id.equals(region, ignoreCase = true) }
}

A diferença que agora você deve pegar o container de regiões usando WorldGuard.getInstance().platform.regionContainer, e depois pegar o manager de regiões usando regionContainer[BukkitAdapter.adapt(loc.world)], depois disso é igual como era no WorldGuard 6.X.X. 😉



Hoje eu decidi usar o Script Engine do Kotlin na Loritta, afinal, usar o Nashorn estava meio chato e eu 💖 Kotlin, então eu decidi tentar usar.

Criei uma pequena classe de testes no meu projeto, rodei ele dentro do IntelliJ IDEA, nenhum erro! Agora vamos tentar rodar em produção... huh? unresolved reference? mas... como? Se essa classe não existivesse você nem poderia ter sido executado!

javax.script.ScriptException: error: unresolved reference: mrpowergamerbr
fun loritta(context: com.mrpowergamerbr.loritta.commands.CommandContext) {
                         ^

É, por algum motivo o Script Engine do Kotlin não consegue encontrar as minhas classes, ou qualquer outra classe na verdade, mas... porque? Elas existem durante o runtime porque, se não existissem, o aplicativo nem iria rodar!


Vídeo comemorando que eu fui rejeitado pelo YouTube no sistema de monetização deles. (pfv vejam meus vídeos porque eu to precisando de views na moralzinha bjs )


Jornal do Lumen

Postado às 30/03/2018

Lá em 2012/2013 (quando estava no oitado/novo ano da escola) eu e os meus amigos tivemos a ideia de criar um "jornal" da escola (mesmo que a ideia era só mostrar o cotidiano lá e não mostrar as novidades da escola), nós gravamos, enviamos para o YouTube e deixamos lá... até que eu resolvi trocar de canal e deixei todos os meus vídeos velhos como privado...

Mas recentemente eu pensei que seria legal pegar todos os vídeos da série, reeditar eles e enviar para o meu atual canal no YouTube, para que todos possam apreciar e assitir os vídeos (mesmo que nenhum deles seja uma obra de arte, mas é legal guardar como recordação já que foi um período da minha vida (quando eu me considerava "YouTuber"), sem contar que vira e mexe algum dos meus amigos resolve querer ver o Jornal do Lumen de novo.


Gabriela, a amiga da Loritta e seus dados

Após o post falando sobre a Gabriela, o meu clone do SimSimi, eu deixei a Gabriela pública para qualquer um usar na Loritta, para ver o que iriam achar e para ver se encontrariam problemas nela...

Neste post eu irei falar algumas mudanças que eu fiz na Gabriela para deixar ela melhor e mais parecida com o SimSimi!



Gabriela, o meu clone do SimSimi

Postado às 25/03/2018

Gabriela, a amiga da Loritta

Lembra da história que o SimSimi estava me ameaçando de atividade ilegal e que eu deveria parar de fazer engenheria reversa da API deles? É, bons tempos...

Infelizmente as pessoas não estão gostando muito do +cleverbot da Loritta, já que ele é muito... "seco", já que ele normalmente não tem muitas respostas em português e ele não tem muitas coisas engraçadas, comparadas com o nosso amiguinho SimSimi.

Como eu não posso usar a API "não pública" deles (porque eu ainda estou bloqueado (mesmo que seja possível burlar o bloqueio apenas trocando o nome do usuário usando o SimSimi... mas mesmo assim eu teria que usar vários proxies só para ficar burlando o bloqueio)) eu irei tentar criar o meu próprio clone do SimSimi. Não querem que eu use o SimSimi? Okay então, EU MESMO irei criar o meu próprio SimSimi!

Mas, será que é fácil criar o meu próprio clone do SimSimi?


owo vídeo

Todos nós sabemos que o YouTube demora para enviar novos vídeos para a "box" (e as vezes nem envia o vídeo!), ou seja, muitas pessoas que são inscritas no seu canal talvez nem estejam recebendo seus novos vídeos! Para resolver este problema (junto com o grande aumento de YouTubers no Discord) eu tinha resolvido fazer o sistema de sincronizações de novos vídeos para a Loritta.

Parece simples né: Apenas verificar se o canal enviou um novo vídeo e, se ele enviou, notificar no servidor. Infelizmente isto apenas parece simples, já que para criar isto é bem mais complicado...

Neste post irei explicar toda a "história" por trás do sistema de verificação de novos vídeos do YouTube da Loritta, junto com todas as dificuldades que eu tive e como eu resolvi elas... talvez seja interessante caso você esteja fazendo um sistema parecido ou apenas está curioso para saber como eu fiz um sistema que (as vezes!) notifica mais rápido que o YouTube!