This PR merges the development branch into main, bringing multi-guild support and several fixes.
Changes
Features
Multi-guild support implementation (commit bec06bd):
Per-guild server tracking and embed isolation
Role-based access control per guild ("Game Server User" role)
Multi-guild command handling with guild validation
Updated Discord permission validation per guild
Embed storage migration from single-guild to multi-guild format
Fixes
chore: Remove stray file (commit 9a3122a)
chore: correct errors in README (commit 204cc67): Fixed note from "multiple Pterodactyl domains" to "singular Pterodactyl or Pelican domain with multiple Discord guilds"
Format resource usage denominators left-aligned in embeds (commit f3f7bb9): Changed format_limit() to use left-alignment for cleaner visual formatting
Testing
All 33 Pterodisbot tests pass
All 19 APIcord tests pass
Linting (flake8, isort, black) passes
Deployment Notes
Backwards compatible with existing single-guild deployments
Persistent volume paths unchanged (logs/, embed/)
Docker builds work with existing configurations
Embed locations automatically migrate on first run
## Summary
This PR merges the `development` branch into `main`, bringing multi-guild support and several fixes.
## Changes
### Features
- **Multi-guild support implementation** (commit `bec06bd`):
- Per-guild server tracking and embed isolation
- Role-based access control per guild ("Game Server User" role)
- Multi-guild command handling with guild validation
- Updated Discord permission validation per guild
- Embed storage migration from single-guild to multi-guild format
### Fixes
- **chore: Remove stray file** (commit `9a3122a`)
- **chore: correct errors in README** (commit `204cc67`): Fixed note from "multiple Pterodactyl domains" to "singular Pterodactyl or Pelican domain with multiple Discord guilds"
- **Format resource usage denominators left-aligned in embeds** (commit `f3f7bb9`): Changed format_limit() to use left-alignment for cleaner visual formatting
## Testing
- All 33 Pterodisbot tests pass
- All 19 APIcord tests pass
- Linting (flake8, isort, black) passes
## Deployment Notes
- Backwards compatible with existing single-guild deployments
- Persistent volume paths unchanged (`logs/`, `embed/`)
- Docker builds work with existing configurations
- Embed locations automatically migrate on first run
- Added multi-guild support with comma-separated AllowedGuildIDs config
- Per-guild embed tracking with isolated state
- Per-server action locking to prevent race conditions across guilds
- Cross-guild embed updates after power actions
- Debug logging for embed update triggers
- Fixed resource usage field formatting (brackets now properly closed)
- Updated config.ini.sample, generate_config.py for backward compatibility
- Updated README.md with multi-guild documentation
- Updated tests for multi-guild support
- Changed format_limit() in _add_resource_fields() to use left-alignment (<8) instead of right-alignment (>8)
- Denominators (limits/∞) now align left relative to the '/' separator
- Produces cleaner visual formatting in resource usage section
k.eaven
merged commit 3743d19d9d into main2026-11-03 10:25:34 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
This PR merges the
developmentbranch intomain, bringing multi-guild support and several fixes.Changes
Features
bec06bd):Fixes
9a3122a)204cc67): Fixed note from "multiple Pterodactyl domains" to "singular Pterodactyl or Pelican domain with multiple Discord guilds"f3f7bb9): Changed format_limit() to use left-alignment for cleaner visual formattingTesting
Deployment Notes
logs/,embed/)