Skip to main content

Discord Bot Library - UI & Image Manipulation for Making Games

Project description

Discord Bot Library - UI & Image Manipulation for Making Games Essentially just a wrapper over discord.py and Pillow to make life a little easier for image-based, and gameplay focused Discord bots. Provides:

  • Image creation with a UI system, and sprite management
  • Out-of-the-box persistent data management for players with extensibility to handle anything
  • Various utilities for testing, and debugging to assist in development

Table of Contents

  1. Installation
  2. Troubleshooting
  3. Getting Help

Installation

Installing CordForge

pip install cordforge

Or install from source:

git clone https://github.com/Robert-DeForrest-Reynolds/CordForge
cd CordForge
pip install -e .

Create Your Bot Token

First, create a Discord application and bot at Discord Developer Portal.

Set Up Your Project

Create a keys file in your project directory: key_name~your_discord_bot_token_here

dev_name=OTk3MDA...

Create a settings file in your project directory

Env=.venv/Scripts/python
Entry=bot.py

Basic Bot Setup

bot.py

from CordForge import *


# Initial send of dashboard, all other functions are replys/edits of the sent message
async def entry(user_card:Card) -> Card:
    await user_card.new_image()
    panel:Panel = await user_card.panel(border=True)
    await user_card.text("Hello", Vector2(5, 5), parent=panel)
    await user_card.add_button("Some other thing", some_other_card, [])


async def some_other_card(user_card:Card, interaction) -> None:
    await user_card.new_image()
    await user_card.add_button("Home", roc.home, [])
    await roc.reply(user_card, interaction)


bot = Cord(entry_command="cmd", entry=entry)
# any necessary setup, loading images into memory, data management, etc.
bot.launch()

Launch & Use Bot

cordforge dev_name

Type cmd into the Discord server where Bot is a member.

Use stop to stop the bot completely. Use restart to restart the Discord bot, implementing any changes in scripts. Use exit to exit the launcher. The launcher will not let you exit with a running bot. Use // to emergency stop the bot. Easy to type in cases of wild loops, or other problems.

Player Data & Persistence

A players profile is created, and saved as soon as they use their first panel. You can add traits to their Player object, and they will automatically be saved and reloaded.

from CordForge import *


# Initial send of dashboard, all other functions are replys/edits of the sent message
async def entry(user_card:Card) -> Card:
    await user_card.add_button(f"Money: {user_card.user.wallet}", give_money, [])


async def give_money(user_card:Card, interaction) -> None:
    user_card.user.wallet += 1
    await bot.home(user_card, interaction)


player_traits = [
    # [trait name, trait value]
    ["wallet", 0.00],
]
bot = Cord(entry_command="cmd",
           entry=entry,
           player_traits=player_traits,
           autosave=True)
bot.data.autosave_interval = 3
bot.launch()

Version Control Recommendation

Ensure your Keys file is hidden, here is a recommend .gitignore for example:

__pycache__
.venv
Keys
Data

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cordforge-0.2.6.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cordforge-0.2.6-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file cordforge-0.2.6.tar.gz.

File metadata

  • Download URL: cordforge-0.2.6.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cordforge-0.2.6.tar.gz
Algorithm Hash digest
SHA256 433e4f9e7ecb3ed867e4d0ba5c1f9a43450e39bfa2fcbe5dfc01f33d28c7851f
MD5 56c9f46c41cb569cd5bc40d22efa3642
BLAKE2b-256 2c7f14d302f20410d07fc348d8fdcc8e7e855293d6cb52251434dcb1567acda8

See more details on using hashes here.

File details

Details for the file cordforge-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: cordforge-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cordforge-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 147c9fdbe2e8ad4941fb8133e52a5aa0dcb288d94dd3baf93ce7f1716a053160
MD5 caad324299b4a0a2b8c131a116680d74
BLAKE2b-256 bf5fb747267192767fd64622678ee7fd84d4d9d8bf6d3953e56179d6c52c06bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page