mirror of
https://github.com/Myxelium/Lunaris2.0.git
synced 2026-04-09 06:09:39 +00:00
Restructure
This commit is contained in:
15
Bot/Helpers/ClientReadyHandler.cs
Normal file
15
Bot/Helpers/ClientReadyHandler.cs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
using System.Threading.Tasks;
|
||||||
|
using Discord.WebSocket;
|
||||||
|
using Lunaris2.SlashCommand;
|
||||||
|
|
||||||
|
namespace Lunaris2.Helpers
|
||||||
|
{
|
||||||
|
public static class ClientReadyHandler
|
||||||
|
{
|
||||||
|
public static Task Client_Ready(this DiscordSocketClient client)
|
||||||
|
{
|
||||||
|
client.RegisterCommands();
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
12
Bot/Helpers/CommandServiceSetup.cs
Normal file
12
Bot/Helpers/CommandServiceSetup.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
using Discord.Commands;
|
||||||
|
|
||||||
|
namespace Lunaris2.Helpers
|
||||||
|
{
|
||||||
|
public static class CommandServiceSetup
|
||||||
|
{
|
||||||
|
public static CommandService Setup()
|
||||||
|
{
|
||||||
|
return new CommandService();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
17
Bot/Helpers/DiscordSocketClientSetup.cs
Normal file
17
Bot/Helpers/DiscordSocketClientSetup.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using Discord;
|
||||||
|
using Discord.WebSocket;
|
||||||
|
|
||||||
|
namespace Lunaris2.Helpers
|
||||||
|
{
|
||||||
|
public static class DiscordSocketClientSetup
|
||||||
|
{
|
||||||
|
public static DiscordSocketClient Setup()
|
||||||
|
{
|
||||||
|
var config = new DiscordSocketConfig
|
||||||
|
{
|
||||||
|
GatewayIntents = GatewayIntents.All
|
||||||
|
};
|
||||||
|
return new DiscordSocketClient(config);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
13
Bot/Helpers/LogHandler.cs
Normal file
13
Bot/Helpers/LogHandler.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using Discord;
|
||||||
|
|
||||||
|
namespace Lunaris2.Helpers
|
||||||
|
{
|
||||||
|
public static class LogHandler
|
||||||
|
{
|
||||||
|
public static Task Log(LogMessage arg)
|
||||||
|
{
|
||||||
|
Console.WriteLine(arg);
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.9.34701.34
|
VisualStudioVersion = 17.9.34701.34
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lunaris2", "Lunaris2.csproj", "{3A16FD4C-EE50-4B05-9A75-0DDCD93AA615}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lunaris2", "Bot/Lunaris2.csproj", "{3A16FD4C-EE50-4B05-9A75-0DDCD93AA615}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
|||||||
97
application.yml
Normal file
97
application.yml
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
server: # REST and WS server
|
||||||
|
port: 2333
|
||||||
|
address: 0.0.0.0
|
||||||
|
http2:
|
||||||
|
enabled: false # Whether to enable HTTP/2 support
|
||||||
|
plugins:
|
||||||
|
# name: # Name of the plugin
|
||||||
|
# some_key: some_value # Some key-value pair for the plugin
|
||||||
|
# another_key: another_value
|
||||||
|
lavalink:
|
||||||
|
plugins:
|
||||||
|
# - dependency: "com.github.example:example-plugin:1.0.0" # required, the coordinates of your plugin
|
||||||
|
# repository: "https://maven.example.com/releases" # optional, defaults to the Lavalink releases repository by default
|
||||||
|
# snapshot: false # optional, defaults to false, used to tell Lavalink to use the snapshot repository instead of the release repository
|
||||||
|
# pluginsDir: "./plugins" # optional, defaults to "./plugins"
|
||||||
|
# defaultPluginRepository: "https://maven.lavalink.dev/releases" # optional, defaults to the Lavalink release repository
|
||||||
|
# defaultPluginSnapshotRepository: "https://maven.lavalink.dev/snapshots" # optional, defaults to the Lavalink snapshot repository
|
||||||
|
server:
|
||||||
|
password: "youshallnotpass"
|
||||||
|
sources:
|
||||||
|
youtube: true
|
||||||
|
bandcamp: true
|
||||||
|
soundcloud: true
|
||||||
|
twitch: true
|
||||||
|
vimeo: true
|
||||||
|
http: true
|
||||||
|
local: false
|
||||||
|
filters: # All filters are enabled by default
|
||||||
|
volume: true
|
||||||
|
equalizer: true
|
||||||
|
karaoke: true
|
||||||
|
timescale: true
|
||||||
|
tremolo: true
|
||||||
|
vibrato: true
|
||||||
|
distortion: true
|
||||||
|
rotation: true
|
||||||
|
channelMix: true
|
||||||
|
lowPass: true
|
||||||
|
bufferDurationMs: 400 # The duration of the NAS buffer. Higher values fare better against longer GC pauses. Duration <= 0 to disable JDA-NAS. Minimum of 40ms, lower values may introduce pauses.
|
||||||
|
frameBufferDurationMs: 5000 # How many milliseconds of audio to keep buffered
|
||||||
|
opusEncodingQuality: 10 # Opus encoder quality. Valid values range from 0 to 10, where 10 is best quality but is the most expensive on the CPU.
|
||||||
|
resamplingQuality: LOW # Quality of resampling operations. Valid values are LOW, MEDIUM and HIGH, where HIGH uses the most CPU.
|
||||||
|
trackStuckThresholdMs: 10000 # The threshold for how long a track can be stuck. A track is stuck if does not return any audio data.
|
||||||
|
useSeekGhosting: true # Seek ghosting is the effect where whilst a seek is in progress, the audio buffer is read from until empty, or until seek is ready.
|
||||||
|
youtubePlaylistLoadLimit: 6 # Number of pages at 100 each
|
||||||
|
playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds
|
||||||
|
youtubeSearchEnabled: true
|
||||||
|
soundcloudSearchEnabled: true
|
||||||
|
gc-warnings: true
|
||||||
|
#ratelimit:
|
||||||
|
#ipBlocks: ["1.0.0.0/8", "..."] # list of ip blocks
|
||||||
|
#excludedIps: ["...", "..."] # ips which should be explicit excluded from usage by lavalink
|
||||||
|
#strategy: "RotateOnBan" # RotateOnBan | LoadBalance | NanoSwitch | RotatingNanoSwitch
|
||||||
|
#searchTriggersFail: true # Whether a search 429 should trigger marking the ip as failing
|
||||||
|
#retryLimit: -1 # -1 = use default lavaplayer value | 0 = infinity | >0 = retry will happen this numbers times
|
||||||
|
#youtubeConfig: # Required for avoiding all age restrictions by YouTube, some restricted videos still can be played without.
|
||||||
|
#email: "" # Email of Google account
|
||||||
|
#password: "" # Password of Google account
|
||||||
|
#httpConfig: # Useful for blocking bad-actors from ip-grabbing your music node and attacking it, this way only the http proxy will be attacked
|
||||||
|
#proxyHost: "localhost" # Hostname of the proxy, (ip or domain)
|
||||||
|
#proxyPort: 3128 # Proxy port, 3128 is the default for squidProxy
|
||||||
|
#proxyUser: "" # Optional user for basic authentication fields, leave blank if you don't use basic auth
|
||||||
|
#proxyPassword: "" # Password for basic authentication
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
prometheus:
|
||||||
|
enabled: false
|
||||||
|
endpoint: /metrics
|
||||||
|
|
||||||
|
sentry:
|
||||||
|
dsn: ""
|
||||||
|
environment: ""
|
||||||
|
# tags:
|
||||||
|
# some_key: some_value
|
||||||
|
# another_key: another_value
|
||||||
|
|
||||||
|
logging:
|
||||||
|
file:
|
||||||
|
path: ./logs/
|
||||||
|
|
||||||
|
level:
|
||||||
|
root: INFO
|
||||||
|
lavalink: INFO
|
||||||
|
|
||||||
|
request:
|
||||||
|
enabled: true
|
||||||
|
includeClientInfo: true
|
||||||
|
includeHeaders: false
|
||||||
|
includeQueryString: true
|
||||||
|
includePayload: true
|
||||||
|
maxPayloadLength: 10000
|
||||||
|
|
||||||
|
|
||||||
|
logback:
|
||||||
|
rollingpolicy:
|
||||||
|
max-file-size: 1GB
|
||||||
|
max-history: 30
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Debug",
|
|
||||||
"System": "Information",
|
|
||||||
"Microsoft": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Token": "YOUR_BOT_TOKEN"
|
|
||||||
}
|
|
||||||
30
docker-compose.yml
Normal file
30
docker-compose.yml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
services:
|
||||||
|
lavalink:
|
||||||
|
# pin the image version to Lavalink v4
|
||||||
|
image: ghcr.io/lavalink-devs/lavalink:4
|
||||||
|
container_name: lavalink
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
# set Java options here
|
||||||
|
- _JAVA_OPTIONS=-Xmx6G
|
||||||
|
# set lavalink server port
|
||||||
|
- SERVER_PORT=2333
|
||||||
|
# set password for lavalink
|
||||||
|
- LAVALINK_SERVER_PASSWORD=youshallnotpass
|
||||||
|
volumes:
|
||||||
|
# mount application.yml from the same directory or use environment variables
|
||||||
|
- ./application.yml:/opt/Lavalink/application.yml
|
||||||
|
# persist plugins between restarts, make sure to set the correct permissions (user: 322, group: 322)
|
||||||
|
- ./plugins/:/opt/Lavalink/plugins/
|
||||||
|
networks:
|
||||||
|
- lavalink
|
||||||
|
expose:
|
||||||
|
# lavalink exposes port 2333 to connect to for other containers (this is for documentation purposes only)
|
||||||
|
- 2333
|
||||||
|
ports:
|
||||||
|
# you only need this if you want to make your lavalink accessible from outside of containers
|
||||||
|
- "2333:2333"
|
||||||
|
networks:
|
||||||
|
# create a lavalink network you can add other containers to, to give them access to Lavalink
|
||||||
|
lavalink:
|
||||||
|
name: lavalink
|
||||||
BIN
plugins/lavasearch-plugin-1.0.0.jar
Normal file
BIN
plugins/lavasearch-plugin-1.0.0.jar
Normal file
Binary file not shown.
BIN
plugins/skybot-lavalink-plugin-1.6.3.jar
Normal file
BIN
plugins/skybot-lavalink-plugin-1.6.3.jar
Normal file
Binary file not shown.
BIN
plugins/sponsorblock-plugin-3.0.0.jar
Normal file
BIN
plugins/sponsorblock-plugin-3.0.0.jar
Normal file
Binary file not shown.
1
start-services.sh
Normal file
1
start-services.sh
Normal file
@@ -0,0 +1 @@
|
|||||||
|
docker compose up -d
|
||||||
Reference in New Issue
Block a user