Skip to content

Commit dc658c8

Browse files
authored
Merge pull request #15 from bronxbot/dev
> [documentation is here!](https://github.com/bronxbot/bot/blob/main/README.md)
2 parents 6f6e16c + 5fecee7 commit dc658c8

5 files changed

Lines changed: 279 additions & 107 deletions

File tree

README.md

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,3 +266,148 @@ Difficulty levels: 1-30
266266
`.emojify [text]`
267267
> turn text into 🔤 regional 🔤 indicators
268268
269+
# Giveaway commands
270+
Add comment
271+
More actions
272+
273+
274+
`.giveaway donate [amount]`
275+
> Donate to server balance
276+
277+
278+
`.giveaway balance`
279+
> Check server balance
280+
281+
282+
`.giveaway list`
283+
> View active giveaways
284+
285+
# Multiplayer
286+
> Fun multiplayer commands you can play with your friends
287+
288+
`.rockpaperscissors3 [opponent] [games=3]`
289+
> Best 2 out of 3 rock-paper-scissors
290+
> Can be extended to any amount of games if need be
291+
292+
`.rollfight [opponent]`
293+
> Challenge someone to a dice duel (highest roll wins)
294+
295+
`.slotbattle [opponent]`
296+
> Challenge someone to a slot battle! Winner takes all, or the house wins if both lose
297+
298+
`.twentyone [opponent]`
299+
> Take turns counting to 21 (who says 21 loses)
300+
301+
`.word_chain [opponent]`
302+
> Play a word chain game! Each word must start with the last letter of the prev...
303+
304+
`.yachtdice [opponent]`
305+
> Play a simplified Yacht dice game
306+
307+
308+
# Shop
309+
310+
`.buy [args]`
311+
> Buy items from the shop
312+
313+
`.daily-deals`
314+
> Show today's special deals
315+
316+
`.globalshop`
317+
> View available items in the global shop
318+
319+
`.inventory`
320+
> View your inventory
321+
322+
`.search <query>`
323+
> Search for items across all shop categories
324+
325+
`.shop_menu [category]`
326+
> View shop items by category
327+
328+
`.shopstats`
329+
> View shop statistics and trends
330+
331+
`.use <item_id>`
332+
> Use an item from your inventory
333+
334+
`.wishlist [action] [item_id]`
335+
> Manage your wishlist
336+
337+
338+
# UtilityAdd commentMore actions
339+
340+
`.afk [reason=AFK]`
341+
> set your AFK status
342+
343+
`.avatar [user]`
344+
> Show a user's avatar
345+
346+
`.banner [user]`
347+
> Show a user's banner.
348+
349+
`.botinfo`
350+
> Show bot statistics and info.
351+
352+
`.calculate <expression>`
353+
> Evaluate a math expression (basic operations only)
354+
355+
`.cleanup [limit=100]`
356+
> Deletes all command messages and bot messages in the channel
357+
358+
`.countdown <future_time>`
359+
> calculate time remaining
360+
361+
`.emojiinfo <emoji>`
362+
> Show info about a custom emoji.
363+
364+
`.emojisteal <emoji>`
365+
> Add an emoji to this server
366+
367+
`.firstmessage [channel]`
368+
> Fetch a channel's first message.
369+
370+
`.hexcolor <hex_code>`
371+
> Show a color preview
372+
373+
`.lottery [max_num=100] [picks=6]`
374+
> generate lottery numbers
375+
376+
`.multipoll <question> [options...]`
377+
> Create a poll with multiple options. Example: .multipoll "Favorite?" "Red" "Blue" "green"
378+
379+
`.ping`
380+
> Show bot latency
381+
382+
`.poll <question>`
383+
> Create a yes or no poll
384+
385+
`.remind [time]`
386+
> Set a reminder. Example: .remind 10m Take a break!
387+
388+
`.roleinfo <role>`
389+
> Show info about a role
390+
391+
`.serverbanner`
392+
> Get the server's banner
393+
394+
`.servericon`
395+
> Get the servers icon
396+
397+
`.serverinfo`
398+
> Get information about the server
399+
400+
`.snipe`
401+
> Show the last deleted message (Within 1 hour of it being deleted)
402+
403+
`.timestamp [style=f]`
404+
> Generate Discord timestamps
405+
406+
`.tinyurl <url>`
407+
> Shorten a URL using TinyURL
408+
409+
`.uptime`
410+
> Show bot uptime
411+
412+
`.userinfo [user]`
413+
> Get information about the user (Accout creation, roles, ID, etc)

bronxbot.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ async def before_update_guilds(self):
162162
"cogs.bronx.VoteBans": "other",
163163
"cogs.bronx.Welcoming": "other",
164164
"cogs.unique.Multiplayer": "fun",
165-
"cogs.Fun": "fun",
166-
"cogs.Giveaway": "fun",
165+
"cogs.fun.Fun": "fun",
166+
"cogs.fun.Text": "fun",
167167
"cogs.unique.SyncRoles": "success",
168168
"cogs.Help": "success",
169169
"cogs.ModMail": "success",
@@ -173,6 +173,7 @@ async def before_update_guilds(self):
173173
"cogs.economy.fishing.Fishing": "success",
174174
"cogs.economy.fishing.AutoFishing": "success",
175175
"cogs.economy.Shop": "success",
176+
"cogs.economy.Giveaway": "success",
176177
"cogs.economy.Trading": "success",
177178
"cogs.economy.Gambling": "success",
178179
"cogs.economy.Work": "success",
@@ -356,7 +357,7 @@ async def on_guild_join(guild):
356357
"**What I can do:**\n"
357358
"• Customizable welcome messages\n"
358359
"• Economy & *Fake* Gambling\n"
359-
"• Basic utility commands (!help)\n"
360+
"• Basic utility commands (.help)\n"
360361
"• Fun commands and games\n"
361362
"• Moderation tools\n\n"
362363
"*The bot is still in [active development](https://github.com/bronxbot/bot), so feel free to [suggest](https://github.com/bronxbot/bot) new features!*\n\n"

cogs/Fun.py renamed to cogs/fun/Fun.py

Lines changed: 1 addition & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,6 @@ def get_command_help(self) -> list[discord.Embed]:
2727
"""Get paginated help embeds for this cog"""
2828
pages = []
2929

30-
# Text Commands Page
31-
text_embed = discord.Embed(
32-
title="🎲 Fun Commands - Text Transformations",
33-
color=discord.Color.blue()
34-
)
35-
text_commands = ['spongebob', 'tinytext', 'reverse', 'owoify', 'emojify']
36-
for cmd_name in text_commands:
37-
cmd = self.bot.get_command(cmd_name)
38-
if cmd:
39-
text_embed.add_field(
40-
name=f"{cmd.name} {cmd.signature}",
41-
value=cmd.help or "No description",
42-
inline=False
43-
)
44-
pages.append(text_embed)
45-
4630
# Game Commands Page
4731
games_embed = discord.Embed(
4832
title="🎲 Fun Commands - Games",
@@ -93,15 +77,6 @@ def get_command_help(self) -> list[discord.Embed]:
9377

9478
return pages
9579

96-
# Text transformation commands
97-
@commands.command(aliases=['mock'])
98-
async def spongebob(self, ctx, *, text):
99-
"""mOcK sOmE tExT lIkE tHiS"""
100-
if len(text) > 500:
101-
return await ctx.reply("```text too long (max 500 chars)```")
102-
result = ''.join([char.upper() if i % 2 == 0 else char.lower() for i, char in enumerate(text)])
103-
await ctx.reply(f"```{result}```")
104-
10580
@commands.command(aliases=['choose', 'random'])
10681
async def pick(self, ctx, *options):
10782
"""pick a random option from your list
@@ -116,66 +91,6 @@ async def pick(self, ctx, *options):
11691
chosen = random.choice(options)
11792
await ctx.reply(f"🎲 ```i choose: {chosen}```")
11893

119-
@commands.command(aliases=['smallcaps', 'tiny'])
120-
async def tinytext(self, ctx, *, text: str):
121-
"""convert to ᵗⁱⁿʸ ˢᵘᵖᵉʳˢᶜʳⁱᵖᵗ"""
122-
if len(text) > 200:
123-
return await ctx.reply("```text too long (max 200 chars)```")
124-
125-
mapping = str.maketrans(
126-
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
127-
'ᵃᵇᶜᵈᵉᶠᵍʰⁱʲᵏˡᵐⁿᵒᵖᵠʳˢᵗᵘᵛʷˣʸᶻᴬᴮᶜᴰᴱᶠᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᵠᴿˢᵀᵁⱽᵂˣʸᶻ'
128-
)
129-
result = text.translate(mapping)
130-
await ctx.reply(f"```{result}```")
131-
132-
@commands.command(aliases=['textflip', 'tf'])
133-
async def reverse(self, ctx, *, text: str):
134-
"""ʇxǝʇ ruoy esreveɹ"""
135-
if len(text) > 500:
136-
return await ctx.reply("```text too long (max 500 chars)```")
137-
await ctx.reply(f"```{text[::-1]}```")
138-
139-
@commands.command(aliases=['owo', 'uwu'])
140-
async def owoify(self, ctx, *, text: str):
141-
"""uwu-ify youw text owo *nuzzles*"""
142-
if len(text) > 500:
143-
return await ctx.reply("```text too long (max 500 chars)```")
144-
145-
replacements = {
146-
'r': 'w', 'l': 'w', 'R': 'W', 'L': 'W',
147-
'no': 'nyo', 'No': 'Nyo', 'NO': 'NYO',
148-
'ove': 'uv', 'th': 'f', 'TH': 'F',
149-
'!': '! uwu', '?': '? owo'
150-
}
151-
152-
for k, v in replacements.items():
153-
text = text.replace(k, v)
154-
155-
# Add random uwu expressions
156-
if random.random() < 0.3:
157-
text += random.choice([' uwu', ' owo', ' >w<', ' ^w^'])
158-
159-
await ctx.reply(f"```{text}```")
160-
161-
@commands.command(aliases=['letters'])
162-
async def emojify(self, ctx, *, text: str):
163-
"""turn text into 🔤 regional 🔤 indicators"""
164-
if len(text) > 100:
165-
return await ctx.reply("```text too long (max 100 chars)```")
166-
167-
emoji_map = {
168-
'a': '🇦', 'b': '🇧', 'c': '🇨', 'd': '🇩', 'e': '🇪', 'f': '🇫',
169-
'g': '🇬', 'h': '🇭', 'i': '🇮', 'j': '🇯', 'k': '🇰', 'l': '🇱',
170-
'm': '🇲', 'n': '🇳', 'o': '🇴', 'p': '🇵', 'q': '🇶', 'r': '🇷',
171-
's': '🇸', 't': '🇹', 'u': '🇺', 'v': '🇻', 'w': '🇼', 'x': '🇽',
172-
'y': '🇾', 'z': '🇿', '0': '0️⃣', '1': '1️⃣', '2': '2️⃣', '3': '3️⃣',
173-
'4': '4️⃣', '5': '5️⃣', '6': '6️⃣', '7': '7️⃣', '8': '8️⃣', '9': '9️⃣',
174-
'!': '❗', '?': '❓', ' ': ' '
175-
}
176-
177-
result = ''.join([emoji_map.get(c.lower(), c) for c in text])
178-
await ctx.reply(result)
17994

18095
# Magic 8-ball with more responses
18196
@commands.command(aliases=['8ball', 'magic8ball'])
@@ -513,18 +428,6 @@ async def fireworks(self, ctx):
513428

514429
await msg.edit(content="🎉 ```celebration complete! 🎉```")
515430

516-
# Utility commands
517-
@commands.command()
518-
async def tableflip(self, ctx):
519-
"""(╯°□°)╯︵ ┻━┻"""
520-
reactions = [
521-
"(╯°□°)╯︵ ┻━┻",
522-
"┻━┻ ︵ヽ(`Д´)ノ︵ ┻━┻",
523-
"ಠ_ಠ ... ┬─┬ノ( º _ ºノ)",
524-
"(ノಥ益ಥ)ノ ┻━┻"
525-
]
526-
await ctx.reply(f"```{random.choice(reactions)}```")
527-
528431
@commands.command(aliases=['password', 'pwd'])
529432
async def genpass(self, ctx, length: int = 12):
530433
"""generate a random secure password"""
@@ -564,16 +467,10 @@ async def cooldown(self, ctx):
564467

565468
await ctx.reply(embed=embed)
566469

567-
# Error handling for missing arguments
568-
@spongebob.error
569-
@tinytext.error
570-
@reverse.error
571-
@owoify.error
572-
@emojify.error
573470
@ball8.error
574471
async def text_command_error(self, ctx, error):
575472
if isinstance(error, commands.MissingRequiredArgument):
576-
await ctx.reply("```please provide some text to transform```")
473+
await ctx.reply("```please provide some text to predict```")
577474

578475
@lovecalc.error
579476
@hack.error

0 commit comments

Comments
 (0)