(Feat): New Features

This commit is contained in:
2025-12-17 14:45:57 +00:00
parent 470e5a13aa
commit 75aa141e07
8 changed files with 169 additions and 6 deletions

24
.dockerignore Normal file
View File

@@ -0,0 +1,24 @@
# Git
.git
.gitignore
# IDE
.vscode
.idea
.qodo
# Documentation
*.md
!README.md
# Local data (will be mounted as volumes)
data/
logs/
# Environment files (will be passed via docker-compose)
.env
.env.*
!.env.example
# Misc
GEM/

4
.gitignore vendored
View File

@@ -36,6 +36,6 @@ build/
config.toml
PORTING_DOCUMENTATION.md
pikanetwork.js
GEM
pikanetwork.js/
GEM/
.qodo

29
Dockerfile Normal file
View File

@@ -0,0 +1,29 @@
# Elly Discord Bot Dockerfile
# ============================
FROM denoland/deno:2.1.4
# Set working directory
WORKDIR /app
# Copy dependency files first for better caching
COPY deno.json deno.lock ./
# Cache dependencies
RUN deno cache --reload npm:discord.js@^14.14.1 npm:@discordjs/rest@^2.2.0 npm:@toml-tools/parser@^1.0.0
# Copy source code
COPY src/ ./src/
COPY pikanetwork.js/ ./pikanetwork.js/
# Copy config (will be overridden by volume mount in production)
COPY config.example.toml ./config.example.toml
# Create data and logs directories
RUN mkdir -p /app/data /app/logs
# Cache the main application
RUN deno cache --unstable-ffi src/index.ts
# Run the bot
CMD ["deno", "run", "--allow-net", "--allow-read", "--allow-write", "--allow-env", "--allow-ffi", "--unstable-ffi", "src/index.ts"]

View File

@@ -0,0 +1,89 @@
# Elly Discord Bot Configuration
# ================================
[bot]
name = "<your bot name>"
prefix = "<your prefix>"
status = "<your status>"
activity_type = "watching" # playing, streaming, listening, watching, competing
[bot.owners]
ids = [
"<your owner id>",
"<your owner id>",
"<your owner id>",
"<your owner id>"
]
[database]
path = "./data/elly.db"
[api]
pika_cache_ttl = 3600000 # 1 hour in ms
pika_request_timeout = 10000 # 10 seconds
[guild]
id = "<your guild id>"
name = "<your guild name>"
[channels]
applications = "applications"
application_logs = "reviewed-applications"
suggestions = "suggestions"
suggestion_logs = "reviewed-suggestions"
guild_updates = "guild-updates"
discord_changelog = "discord-changelog"
inactivity = "inactivity-notices"
development_logs = "development-logs"
donations = "donations"
reminders = "reminders"
[roles]
admin = "Admin"
leader = "Leader"
officer = "Officer"
developer = "Developer"
guild_member = "Guild Member"
champion = "Champion"
away = "Away"
applications_blacklisted = "Applications blacklisted"
suggestions_blacklisted = "Suggestions Blacklisted"
[roles.manageable]
ids = [
"<your role id>",
"<your role id>",
"<your role id>",
"<your role id>",
"<your role id>"
]
[features]
applications = true
suggestions = true
statistics = true
family = true
qotd = true
reminders = true
staff_simulator = true
channel_filtering = true
auto_moderation = false
welcome_system = false
level_system = false
[limits]
champion_max_days = 366
away_max_days = 355
purge_max_messages = 100
reminder_max_duration_days = 365
[colors]
primary = 0x5865F2
success = 0x57F287
warning = 0xFEE75C
error = 0xED4245
info = 0x5865F2
[logging]
level = "info" # debug, info, warn, error
file = "./logs/elly.log"

21
docker-compose.yml Normal file
View File

@@ -0,0 +1,21 @@
# Elly Discord Bot - Docker Compose
# ===================================
services:
elly-bot:
build:
context: .
dockerfile: Dockerfile
container_name: elly-discord-bot
restart: unless-stopped
env_file:
- .env
volumes:
# Persist database and logs
- ./data:/app/data
- ./logs:/app/logs
# Mount config file (create config.toml from config.example.toml)
- ./config.toml:/app/config.toml:ro
# Optional: Set timezone
environment:
- TZ=UTC

View File

@@ -103,7 +103,7 @@ export const blacklistCommand: Command = {
switch (subcommand) {
case 'add':
await handleAdd(interaction, client);
break;
break;https://www.ccavenue.com/https://www.ccavenue.com/
case 'remove':
await handleRemove(interaction, client);
break;

View File

@@ -14,7 +14,7 @@ export const readyEvent: BotEvent = {
async execute(client: EllyClient): Promise<void> {
console.log('');
client.logger.info('═══════════════════════════════════════════════════════');
client.logger.info(' BOT CONNECTED ');
client.logger.info(' BOT CONNECTED ');
client.logger.info('═══════════════════════════════════════════════════════');
client.logger.info(`✓ Logged in as: ${client.user?.tag}`);
client.logger.info(` ├─ User ID: ${client.user?.id}`);

View File

@@ -52,8 +52,8 @@ const logger = createLogger('Main');
async function main(): Promise<void> {
console.log('');
console.log('╔═══════════════════════════════════════════════════════════╗');
console.log('║ 🌸 ELLY DISCORD BOT 🌸 ║');
console.log('║ v1.0.0 - TypeScript ║');
console.log('║ 🌸 ELLY DISCORD BOT 🌸 ║');
console.log('║ v1.0.0 - TypeScript ║');
console.log('╚═══════════════════════════════════════════════════════════╝');
console.log('');