From 7e05fed0b8c8b8d1b08d4047fb61f344831e6f05 Mon Sep 17 00:00:00 2001 From: Hri7566 Date: Tue, 23 Jul 2024 05:54:36 -0400 Subject: [PATCH] Document config files --- config/channels.yml | 23 +++++++++++++++++++ config/notifications.yml | 9 ++++++++ config/ratelimits.yml | 48 ++++++++++++++++++++++++++-------------- config/users.yml | 19 ++++++++++++++++ 4 files changed, 83 insertions(+), 16 deletions(-) mode change 100644 => 100755 config/channels.yml mode change 100644 => 100755 config/notifications.yml mode change 100644 => 100755 config/ratelimits.yml mode change 100644 => 100755 config/users.yml diff --git a/config/channels.yml b/config/channels.yml old mode 100644 new mode 100755 index e43cc57..969218b --- a/config/channels.yml +++ b/config/channels.yml @@ -1,6 +1,9 @@ +# Which channels to load on startup. forceLoad: - lobby - test/awkward + +# Default channel settings for lobby channels. lobbySettings: lobby: true chat: true @@ -8,20 +11,40 @@ lobbySettings: visible: true color: "#73b3cc" color2: "#273546" + +# Default channel settings for normal user-created channels. +# Note that this allows for channel settings users can't set, like visible and lobby. defaultSettings: chat: true crownsolo: false color: "#3b5054" color2: "#001014" visible: true + +# Regex patterns for lobby channel names. +# Any channel name that matches any of these patterns will be considered a lobby channel on instantiation. lobbyRegexes: - ^lobby[0-9][0-9]$ - ^lobby[0-9]$ - ^lobby$ - ^lobbyNaN$ - ^test/.+$ + +# The channel to use for the lobby backdoor. lobbyBackdoor: lolwutsecretlobbybackdoor + +# The channel that users get sent to when they are banned from a channel/join a channel they are already banned in/join a channel that is full and not a regular lobby. +# This will not be used for real lobby channels. (channels that start with "lobby" and may have numbers on the end) fullChannel: test/awkward + +# Whether or not to publish channel user limits in the channel list. sendLimit: false + +# Whether or not to send tags to users. +# TODO This likely doesn't belong here sendTags: false + +# Whether to give a user the crown when they join a channel they were already the owner of when they left. +# Reportedly, this is a feature on the original server, but it's not working there. +# This is corrected in MPP.net's server. chownOnRejoin: true diff --git a/config/notifications.yml b/config/notifications.yml old mode 100644 new mode 100755 index 0a8b602..361f27b --- a/config/notifications.yml +++ b/config/notifications.yml @@ -1,4 +1,13 @@ +# Whether to allow HTML in notifications. +# This is a security risk, so only enable this if you trust your admins. allowXSS: true + +# The maximum duration of a notification in milliseconds. maxDuration: 60000 + +# The default duration of a notification in milliseconds, if not specified. defaultDuration: 7000 + +# The target used to send notifications to every socket on the server. +# This is not used for the "target" parameter, instead this is for "targetChannel"/"targetUser". allTarget: all diff --git a/config/ratelimits.yml b/config/ratelimits.yml old mode 100644 new mode 100755 index 60031d8..536d998 --- a/config/ratelimits.yml +++ b/config/ratelimits.yml @@ -1,28 +1,42 @@ +# Difference between rate limits and rate limit chains: +# Rate limits will not allow anything to be sent until the rate limit interval has passed. +# Rate limit chains, on the other hand, will allow messages to be sent until the rate limit chain's limit has been reached. +# This is useful for rate limiting messages that are sent in rapid succession, like note messages. +# This is also the basis for note quota, however that is handled in a separate way due to the way it is implemented. + +# Rate limits for normal users. user: + # Rate limits normal: - a: 1500 - m: 50 - ch: 1000 - kickban: 125 - unban: 125 - t: 7.8125 - +ls: 16.666666666666668 - -ls: 16.666666666666668 - chown: 2000 - hi: 50 - bye: 50 - devices: 50 - admin message: 50 + a: 1500 # Chat messages + m: 50 # Cursor messages + ch: 1000 # Channel join messages + kickban: 125 # Kickban messages + unban: 125 # Unban messages + t: 7.8125 # Ping messages + +ls: 16.666666666666668 # Channel list subscription messages + -ls: 16.666666666666668 # Channel list unsubscription messages + chown: 2000 # Channel ownership messages + hi: 50 # Handshake messages + bye: 50 # Disconnection messages + devices: 50 # MIDI device messages + admin message: 50 # Admin passthrough messages + + # Rate limit chains chains: - userset: + userset: # Username/color update messages interval: 1800000 num: 1000 - chset: + chset: # Channel settings messages interval: 1800000 num: 1024 - n: + n: # Note messages + # TODO is this correct? interval: 1000 num: 512 + +# The other rate limits are like the above messages, but for other types of users. +# Rate limits for users with a crown. crown: normal: a: 600 @@ -48,6 +62,8 @@ crown: n: interval: 1000 num: 512 + +# Rate limits for admins. admin: normal: a: 120 diff --git a/config/users.yml b/config/users.yml old mode 100644 new mode 100755 index 70e8c09..059b9d9 --- a/config/users.yml +++ b/config/users.yml @@ -1,11 +1,30 @@ +# The default username for new users. defaultName: Anonymous + +# The default user flags for new users. defaultFlags: volume: 100 + +# Whether or not to allow users to change their color. +# Brandon's server has this set to false, but multiple users have reported it to be on before 2016. enableColorChanging: false + +# Allows custom data inside note messages. +# This was in the original server, but not in MPP.net's server. +# This only exists for backwards compatibility with scripts like nagalun's drarwing script. enableCustomNoteData: true + +# This is the user data that the server will use to send admin chat messages with. adminParticipant: _id: "0" name: mpp color: "#fff" id: "0" + +# Allows admins to evaluate code through the "eval" message. +# This is a security risk, so only enable this if you trust your admins. enableAdminEval: false + +# The token validation scheme. Valid values are "none", "jwt" and "local". +# This server will still validate existing tokens generated with other schemes if not set to "none". +tokenAuth: none