<commit_before>package com.mrpowergamerbr.loritta.commands.vanilla.economy

import com.mrpowergamerbr.loritta.Loritta.Companion.RANDOM
import com.mrpowergamerbr.loritta.commands.AbstractCommand
import com.mrpowergamerbr.loritta.commands.CommandContext
import com.mrpowergamerbr.loritta.network.Databases
import com.mrpowergamerbr.loritta.utils.Constants
import com.mrpowergamerbr.loritta.utils.LoriReply
import com.mrpowergamerbr.loritta.utils.locale.LegacyBaseLocale
import com.mrpowergamerbr.loritta.utils.loritta
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.asCoroutineDispatcher
import kotlinx.coroutines.launch
import net.perfectdreams.loritta.api.commands.CommandCategory
import net.perfectdreams.loritta.tables.BomDiaECiaWinners
import net.perfectdreams.loritta.tables.SonhosTransaction
import net.perfectdreams.loritta.utils.SonhosPaymentReason
import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.transactions.transaction
import java.util.concurrent.Executors

class LigarCommand : AbstractCommand("ligar", category = CommandCategory.ECONOMY) {
	companion object {
		val coroutineExecutor = Executors.newSingleThreadExecutor().asCoroutineDispatcher()
	}

	override fun getDescription(locale: LegacyBaseLocale): String {
		return "Experimental"
	}

	override fun canUseInPrivateChannel(): Boolean {
		return false
	}

	override suspend fun run(context: CommandContext, locale: LegacyBaseLocale) {
		val phoneNumber = context.args.getOrNull(0)?.replace("-", "")

		if (phoneNumber != null) {
			if (phoneNumber == "40028922") {
				val profile = context.lorittaUser.profile

				if (75 > profile.money) {
					context.reply(
							"Você não tem sonhos suficientes para completar esta ligação!",
							Constants.ERROR
					)
					return
				}

				transaction(Databases.loritta) {
					profile.money -= 75

					SonhosTransaction.insert {
						it[givenBy] = context.userHandle.idLong
						it[receivedBy] = null
						it[givenAt] = System.currentTimeMillis()
						it[quantity] = 75.toBigDecimal()
						it[reason] = SonhosPaymentReason.BOM_DIA_E_CIA
					}
				}

				GlobalScope.launch(coroutineExecutor) {
					if (loritta.bomDiaECia.available) {
						val args = context.args.toMutableList()
						args.removeAt(0)
						val text = args.joinToString(" ")
								.toLowerCase()

						if (text.contains("\u200B") || text.contains("\u200C") || text.contains("\u200D")) {
							context.reply(
									LoriReply(
											"Poxa, não foi dessa vez amiguinho... mas não desista, ligue somente durante o programa, tá? Valeu! Aliás, não utilize CTRL-C e CTRL-V para você tentar vencer mais rápido. :^)",
											"<:yudi:446394608256024597>"
									)
							)
							loritta.bomDiaECia.triedToCall.add(context.userHandle.idLong)
							return@launch
						}

						if (text != loritta.bomDiaECia.currentText) {
							context.reply(
									LoriReply(
											"Poxa, não foi dessa vez amiguinho... mas não desista, ligue somente durante o programa, tá? Valeu! Não se esqueça de escrever a nossa frase para que você possa ganhar o prêmio!",
											"<:yudi:446394608256024597>"
									)
							)
							loritta.bomDiaECia.triedToCall.add(context.userHandle.idLong)
							return@launch
						}

						loritta.bomDiaECia.available = false

						val randomPrize = RANDOM.nextInt(150, 376)
						val guild = context.guild
						val user = context.userHandle
						val prizeAsBigDecimal = randomPrize.toBigDecimal()

						transaction(Databases.loritta) {
							profile.money += randomPrize
<commit_msg>Aumentar prêmio do "+ligar"<commit_after>package com.mrpowergamerbr.loritta.commands.vanilla.economy

import com.mrpowergamerbr.loritta.Loritta.Companion.RANDOM
import com.mrpowergamerbr.loritta.commands.AbstractCommand
import com.mrpowergamerbr.loritta.commands.CommandContext
import com.mrpowergamerbr.loritta.network.Databases
import com.mrpowergamerbr.loritta.utils.Constants
import com.mrpowergamerbr.loritta.utils.LoriReply
import com.mrpowergamerbr.loritta.utils.locale.LegacyBaseLocale
import com.mrpowergamerbr.loritta.utils.loritta
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.asCoroutineDispatcher
import kotlinx.coroutines.launch
import net.perfectdreams.loritta.api.commands.CommandCategory
import net.perfectdreams.loritta.tables.BomDiaECiaWinners
import net.perfectdreams.loritta.tables.SonhosTransaction
import net.perfectdreams.loritta.utils.SonhosPaymentReason
import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.transactions.transaction
import java.util.concurrent.Executors

class LigarCommand : AbstractCommand("ligar", category = CommandCategory.ECONOMY) {
	companion object {
		val coroutineExecutor = Executors.newSingleThreadExecutor().asCoroutineDispatcher()
	}

	override fun getDescription(locale: LegacyBaseLocale): String {
		return "Experimental"
	}

	override fun canUseInPrivateChannel(): Boolean {
		return false
	}

	override suspend fun run(context: CommandContext, locale: LegacyBaseLocale) {
		val phoneNumber = context.args.getOrNull(0)?.replace("-", "")

		if (phoneNumber != null) {
			if (phoneNumber == "40028922") {
				val profile = context.lorittaUser.profile

				if (75 > profile.money) {
					context.reply(
							"Você não tem sonhos suficientes para completar esta ligação!",
							Constants.ERROR
					)
					return
				}

				transaction(Databases.loritta) {
					profile.money -= 75

					SonhosTransaction.insert {
						it[givenBy] = context.userHandle.idLong
						it[receivedBy] = null
						it[givenAt] = System.currentTimeMillis()
						it[quantity] = 75.toBigDecimal()
						it[reason] = SonhosPaymentReason.BOM_DIA_E_CIA
					}
				}

				GlobalScope.launch(coroutineExecutor) {
					if (loritta.bomDiaECia.available) {
						val args = context.args.toMutableList()
						args.removeAt(0)
						val text = args.joinToString(" ")
								.toLowerCase()

						if (text.contains("\u200B") || text.contains("\u200C") || text.contains("\u200D")) {
							context.reply(
									LoriReply(
											"Poxa, não foi dessa vez amiguinho... mas não desista, ligue somente durante o programa, tá? Valeu! Aliás, não utilize CTRL-C e CTRL-V para você tentar vencer mais rápido. :^)",
											"<:yudi:446394608256024597>"
									)
							)
							loritta.bomDiaECia.triedToCall.add(context.userHandle.idLong)
							return@launch
						}

						if (text != loritta.bomDiaECia.currentText) {
							context.reply(
									LoriReply(
											"Poxa, não foi dessa vez amiguinho... mas não desista, ligue somente durante o programa, tá? Valeu! Não se esqueça de escrever a nossa frase para que você possa ganhar o prêmio!",
											"<:yudi:446394608256024597>"
									)
							)
							loritta.bomDiaECia.triedToCall.add(context.userHandle.idLong)
							return@launch
						}

						loritta.bomDiaECia.available = false

						val randomPrize = RANDOM.nextInt(450, 701)
						val guild = context.guild
						val user = context.userHandle
						val prizeAsBigDecimal = randomPrize.toBigDecimal()

						transaction(Databases.loritta) {
							profile.money += randomPrize

{'fraction_non_alphanumeric': 0.09680582796301485, 'fraction_numerical': 0.018772765480526758, 'mean_word_length': 3.5821566110397947, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5401219', 'n_tokens_mistral': 3037, 'n_tokens_neox': 2302, 'n_words': 431}