(Feat): New Features
This commit is contained in:
24
.dockerignore
Normal file
24
.dockerignore
Normal 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
4
.gitignore
vendored
@@ -36,6 +36,6 @@ build/
|
||||
config.toml
|
||||
PORTING_DOCUMENTATION.md
|
||||
|
||||
pikanetwork.js
|
||||
GEM
|
||||
pikanetwork.js/
|
||||
GEM/
|
||||
.qodo
|
||||
29
Dockerfile
Normal file
29
Dockerfile
Normal 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"]
|
||||
@@ -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
21
docker-compose.yml
Normal 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
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user