async def _(event): if event.fwd_from: return reply_message = event if event.reply_to_msg_id: reply_message = await event.get_reply_message() emoticon = event.pattern_match.group(1) input_str = event.pattern_match.group(2) await event.delete() if emoticon == "bb": emoticon = "🏀" r = await reply_message.reply(file=InputMediaDice(emoticon=emoticon)) if input_str: try: required_number = int(input_str) while r.media.value != required_number: await r.delete() r = await reply_message.reply(file=InputMediaDice( emoticon=emoticon)) except BaseException: pass else: if event.sender_id == event.client.uid: await event.edit(file=InputMediaDice(emoticon=emoticon)) else: await event.reply(file=InputMediaDice(emoticon=emoticon))
async def _(event): "To get specific jackpot emoji animation" reply_message = event if event.reply_to_msg_id: reply_message = await event.get_reply_message() emoticon = event.pattern_match.group(1) input_str = int(event.pattern_match.group(2)) if not 0 < input_str < 65: return await event.delete() if emoticon == "jp": emoticon = "🎰" r = await reply_message.reply(file=InputMediaDice(emoticon=emoticon)) if input_str: try: required_number = int(input_str) while r.media.value != required_number: await r.delete() r = await reply_message.reply(file=InputMediaDice( emoticon=emoticon)) except BaseException: pass elif event.sender_id == event.client.uid: await event.edit(file=InputMediaDice(emoticon=emoticon)) else: await event.reply(file=InputMediaDice(emoticon=emoticon))
async def _(event): if event.fwd_from: return input_str = print(randrange(6)) r = await event.reply(file=InputMediaDice("🏀")) if input_str: try: required_number = int(input_str) while r.media.value != required_number: await r.delete() r = await event.reply(file=InputMediaDice("🏀")) except BaseException: pass
async def _(event): if event.fwd_from: return input_str = print(randrange(7)) await event.delete() r = await event.reply(file=InputMediaDice()) if input_str: try: required_number = int(input_str) while not r.media.value == required_number: await r.delete() r = await event.reply(file=InputMediaDice()) except: pass
async def _(event): if event.fwd_from: return input_str = event.pattern_match.group(1) await event.delete() r = await event.reply(file=InputMediaDice('')) if input_str: try: required_number = int(input_str) while not r.media.value == required_number: await r.delete() r = await event.reply(file=InputMediaDice('')) except BaseException: pass
async def dicecmd(self, message): """Бросает кубик (опционально с указанным значением) .dice <смайлик> <результат> <количество>""" args = utils.get_args(message) if await self.allmodules.check_security(message, security.OWNER | security.SUDO): try: emoji = args[0] except IndexError: emoji = "🎲" possible = self.config["POSSIBLE_VALUES"].get(emoji, None) if possible is None: emoji = "🎲" possible = self.config["POSSIBLE_VALUES"][emoji] values = set() try: for val in args[1].split(","): value = int(val) if value in possible: values.add(value) except (ValueError, IndexError): values.clear() try: count = int(args[2]) except (ValueError, IndexError): count = 1 rolled = -1 done = 0 chat = message.to_id client = message.client while True: task = client.send_message(chat, file=InputMediaDice(emoji)) if message: message = (await asyncio.gather(message.delete(), task))[1] else: message = await task rolled = message.media.value logger.debug("Rolled %d", rolled) if rolled in values or not values: done += 1 message = None if done == count: break else: try: emoji = args[0] except IndexError: emoji = "🎲" await message.reply(file=InputMediaDice(emoji))
async def dicecmd(self, message): """Rolls a die (optionally with the specified value) .dice <emoji> <outcomes> <count>""" args = utils.get_args(message) if await self.allmodules.check_security(message, security.OWNER | security.SUDO): try: emoji = args[0] except IndexError: emoji = "🎲" possible = self.config["POSSIBLE_VALUES"].get(emoji, None) if possible is None: emoji = "🎲" possible = self.config["POSSIBLE_VALUES"][emoji] values = set() try: for val in args[1].split(","): value = int(val) if value in possible: values.add(value) except (ValueError, IndexError): values.clear() try: count = int(args[2]) except (ValueError, IndexError): count = 1 rolled = -1 done = 0 chat = message.to_id client = message.client while True: task = client.send_message(chat, file=InputMediaDice(emoji)) if message: message = (await asyncio.gather(message.delete(), task))[1] else: message = await task rolled = message.media.value logger.debug("Rolled %d", rolled) if rolled in values or not values: done += 1 message = None if done == count: break else: try: emoji = args[0] except IndexError: emoji = "🎲" await message.reply(file=InputMediaDice(emoji))
async def send_message(self, client: TelegramClient, chat_id: int, target: Message = None) -> Message: return await client.send_message( chat_id, f"Dice caption {uuid4()}", file=InputMediaDice(self.emoji), reply_to=target )
async def dartscmd(self, message): """Rolls a darts (optionally with the specified value)(edited by @mpamop)""" args = utils.get_args(message) values = set() try: for val in args[0].split(","): value = int(val) if value >= 1 and value <= 6: values.add(value) except (ValueError, IndexError): values.clear() try: count = int(args[1]) except (ValueError, IndexError): count = 1 rolled = -1 done = 0 chat = message.to_id client = message.client while True: task = client.send_message(chat, file=InputMediaDice( self.config["DICE_EMOJI"])) if message: message = (await asyncio.gather(message.delete(), task))[1] else: message = await task rolled = message.media.value logger.debug("Rolled %d", rolled) if rolled in values or not values: done += 1 message = None if done == count: break
async def _(event): if event.fwd_from: return input_str = event.pattern_match.group(1) r = await event.reply(file=InputMediaDice("")) input_int = int(input_str) if input_int > 6: await event.reply("hey n***a use number 1 to 6 only") else: try: required_number = input_int while r.media.value != required_number: await r.delete() r = await event.reply(file=InputMediaDice("")) except BaseException: pass
async def send_message(self, client: TelegramClient, chat_id: int, target: Message = None) -> Message: from telethon.tl.types import InputMediaDice return await client.send_message(chat_id, f"Dice caption {uuid4()}", file=InputMediaDice(), reply_to=target)
async def _(event): if event.fwd_from: return input_str = event.pattern_match.group(1) await event.delete() r = await event.reply(file=InputMediaDice("🎲")) if input_str: try: required_number = int(input_str) if required_number >= 7: required_number = 6 if required_number <= 0: required_number = 1 while not r.media.value == required_number: await r.delete() r = await event.reply(file=InputMediaDice("🎲")) except: pass
async def _(event): if event.fwd_from: return if event.is_group: if not (await is_register_admin(event.input_chat, event.message.sender_id)): await event.reply("") return input_str = print(randrange(7)) r = await event.reply(file=InputMediaDice('🎯')) if input_str: try: required_number = int(input_str) while not r.media.value == required_number: await r.delete() r = await event.reply(file=InputMediaDice('🎯')) except: pass
async def _(event): if event.fwd_from: return reply_message = event if event.reply_to_msg_id: reply_message = await event.get_reply_message() emoticon = event.pattern_match.group(1) input_str = event.pattern_match.group(2) await event.delete() r = await reply_message.reply(file=InputMediaDice(emoticon=emoticon)) if input_str: try: required_number = int(input_str) while not r.media.value == required_number: await r.delete() r = await reply_message.reply(file=InputMediaDice(emoticon=emoticon)) except: pass
async def random(evt: CommandEvent) -> EventID: if not evt.is_portal: return await evt.reply("You can only roll dice in portal rooms") portal = po.Portal.get_by_mxid(evt.room_id) arg = evt.args[0] if len(evt.args) > 0 else "dice" emoticon = { "dart": "\U0001F3AF", "dice": "\U0001F3B2", }.get(arg, arg) try: await evt.sender.client.send_media(await portal.get_input_entity(evt.sender), InputMediaDice(emoticon)) except EmoticonInvalidError: return await evt.reply("Invalid emoji for randomization")
async def fake_dice(rolling): argums = rolling.text.split(" ") if len(argums) != 2: await rolling.edit("`Invalid arguments!`") return try: objective = int(argums[1]) except ValueError: await rolling.edit("`Invalid destination value!`") return possible_vals = [1, 2, 3, 4, 5, 6] if objective not in possible_vals: await rolling.edit("`Invalid destination value!`") return await rolling.delete() while True: newdice = await rolling.client.send_message( rolling.to_id, file=InputMediaDice("🎲")) rolled_val = newdice.media.value if rolled_val == objective: return else: await newdice.delete() time.sleep(0.25)
async def _(event): if event.fwd_from: return await event.reply(file=InputMediaDice("🎰"))
async def dice(rolling): await rolling.client.send_message(rolling.to_id, file=InputMediaDice("🎲")) await rolling.delete() return
async def send_dice(event: Message): await bot.send_message(event.chat.id, file=InputMediaDice('?'))