Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultConfig = Config{ Bind: "0.0.0.0:25565", OnlineMode: true, Auth: Auth{}, OnlineModeKickExistingPlayers: false, Forwarding: Forwarding{ Mode: LegacyForwardingMode, VelocitySecret: "", }, Status: Status{ ShowMaxPlayers: 1000, Motd: defaultMotd(), Favicon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AgJCgs6JBZy0AAAB+lJREFUeNrtmGuMXVUZht/LOvcz7diWklbJaKGCWKXFUiiBQjAEhRSLSCEqIKAiogRTmiriBeSiUUhjMCZe2qQxNE0EUZSCidAgYMBSLBJCDC1taAg4xaq1cz/788feZzqgocCoP2Q/f87JOXvvfOtd73dZGygpKSkpKSkpKSkpKSkpKSkpKSkpKXnzwNd7w+ULD0NEBtmQBFqQBNuICFRYwzc3bf7/E+Cyo+cgAIiEbESWJdl1WSQ5VGvWRwnk/0XgpnvfmAhrv3h+HhgFFeJCBCLw8Wt//B8XIB3ogs8umJMHAOCQvtnYtfP5eRGxVNaxMmdKgqzdWSfbIuuuocHBLa2ednx16WJcd9fvXn9EAQSQyGgBwUCMMbAvAvHfcIAOaBHnl0REY9fO56+itFHSjbI/JHuxrMWyl8r6mq27m+3WKpJ1kvjG2UtevyUtyDqK0t2UNklaLalu63+fAp9bNBdZFogsq0j6OsVVkix7L8WNkh6VLVuLlXyapKbsMUkrR4aGV9caNbRnTkWKPC0kgdpv7e7n2GgH7ant8WgiYomoX8uqUXoIwKm1Rn0wJQMAGu0mBv8xhEZPAxIhOX9W8byR4VHUGjUcf86qyaVApVrB6MgYIC4leaUsS/oLySsprQcwBgRkVW1fIfsGWVVJn29Naf8CwPYUedAjQ8OsNxuHApiHwAwAIwB2AtjaaNX/CgQAiuQM27NIhixQqqaU+mTtA9AfEUMA0JzSRERMB3BUIPoCgQjsiIg/NHuaewDg0TtvxqJlK964A6447nAE0CLwM0mnygbFGzujY19WMhD5bjgZTu6hdLekE4qduDAi1jWntIEseimuIHmBrLfJVuGAAdmbZV1t6yGnNI3kBkkLaE2zRNnDsnbLGiR1EcUHK5WKlbyc5BdkvUdSPXeAB21tln3D6PDIvdV6DQBeVYRXdYDyvHsXyYW5dd1PYoNURafTwS2/fRIAsPKU+eg96C17EVhNcavskPgCQCDCtK4RuaLY0WdlPWW7T9a7JS+RdYukpbJHip3PcoHctXUmKyMZkuBK+jTJb8tqSeqn9ICthuyFsk4kubZar50P4DeTSgHZAHAEyd6i7z9LYgcA9M6chuuXnwzLoPLWiIjbKd7ezfV8B+JIkp+gVNzPj0jaKvsQ2xtkLZI1n+TRo8Mj99QatY85+WRJ62TXJW0leb6kfZ2xzp/rzcZ8ktcUi98B4hJZD1KqyLqU5E0AZgH4EoDfA/j7GxbAuc0PpshCgJcoDiHGOxIDMZfgdACh5InFbRuJflA1kffJNsVNtXptS7GzOyJii6RFsqqkZjsZ1XqtX/aLJLPiOcOSnsuybLA1tQ2S51CcXQi/RvZ9TgaBEZA/BHAugEUAjgMwH8ADkxAgARGaULlJERGAJESWWdK1kpZJHJMUyncaFD+TZdltTumxl17oP3f2nEN6Jc0DeSmIWQAato/tVm5KjbzwVos5iONiklSlVoHtOsljKMFWJvswWSsmtHMCqBffWwCOnJwANgKxp7soWdNJNYAYcTKyTLBlSklWWK7ISnnQqgDAvMXz4pmt2z4gcRWlYwrrTsxvOC+uRBSuA0AS+8UhUqUC2XWK04tYJOmCA6R476RqgJMRgW0SB2Q1Zb+dZB+JJyQByDqUrpP0fVGZk1fSOsO5AJCNbX/cfoKsNZJmSRqguE7SJol7bH9K1umyUaz/XwSgVIzfgpMySmOSQHIUwG1FK504JXVQ9NQD7f5rLILxlKRtebvxQbLOlvWELIyOjIbkJ11JqNaqMxAxOz8cGRLzRUgflTSrsPIaklcC6NgJqZJOG0+viQIExgsrRZAqnuUBWbuKHBeAXwL46cSeHnnezwCQAXh6UqNwqiTUW80XndJ6O3X7/WVO6RxSmjKtF+3eNqq16hSSVyt5vu3udXjh2V1w8ludjPz3tKNSq3ZaU3tQrVdnyn6fnf+n4h6Nf0/dexq2VKlVIWsMwKauQQGcPSHnEcA7AawHcA+ANQAOnpQDsixDZBlk/Uj2SbZOk3WQ5B/IOhOIxyNQp3iKpJOK9naErDpJ9B15GGxvL4oWZF+i5L0A/kZruaT3jhc6KSGimwIDpMaK8fZwSStJPgLgfgB3ALgAwEIAZwEYALARQA+ACwEcUYR/RwB/4mTOAgBw43nvR6okSJoj61uyz7RV3T/Pu7uAp2ytln2LrDapiyWudUoLZK2XfbgnnAEo7bb9sKwzC6tfjyy+Um81EMAMST+XdXxeawAAzwM4EcB2AMcDuBXAgn8T8kjhgpUA+ic1CeaFMN89kNudfBGlU2V9UPZcWQ1JeyU9RvInTmk3xdmSWpSeQAC2Hpd9nqxPyjpKsmTtJLlByS+KfFqSKW4OZHAlgcBuAJdTugTAoUWcOwDsLcJ6GMAyAMsLUWYCGAWwragLGwtnYNIOAICbLz4DKe0/0R13+hI8fv+jDVlJ0miWZUOykZLHT3sUQRAUUa3X8OGrvotf3bqyRYlOaSCyLJvoIjIPpd5uoG/uO/DcMzu743i1iHOsk3U6BMffPnXPbEUdyCJigOTL3htM6jD0Sr53+VmQ07gQ432aQiBQq9cAomhdQgBo9bQg7x+eim6AyDJUm00gAikRlLCvswc9noZqT6uozvGyELvvRI5ddhUeufM7ebcgX/k+BXwNCy8pKSkpKSkpKSkpKSkpKSkpKSkpKXkz8k8RHxEbZN/8lgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wOC0wOVQxMDoxMTo0MyswMDowMN6nNEYAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDgtMDlUMTA6MTE6NDMrMDA6MDCv+oz6AAAAAElFTkSuQmCC", LogPingRequests: false, }, Query: Query{ Enabled: false, Port: 25577, ShowPlugins: false, }, AnnounceForge: false, Servers: map[string]string{}, Try: []string{}, ForcedHosts: map[string][]string{}, FailoverOnUnexpectedServerDisconnect: true, ConnectionTimeout: configutil.Duration(5000 * time.Millisecond), ReadTimeout: configutil.Duration(30000 * time.Millisecond), Quota: Quota{ Connections: QuotaSettings{ Enabled: true, OPS: 5, Burst: 10, MaxEntries: 1000, }, Logins: QuotaSettings{ Enabled: true, OPS: 0.4, Burst: 3, MaxEntries: 1000, }, }, Compression: Compression{ Threshold: 256, Level: -1, }, ProxyProtocol: false, ProxyProtocolBackend: false, ShouldPreventClientProxyConnections: false, BungeePluginChannelEnabled: true, BuiltinCommands: true, RequireBuiltinCommandPermissions: false, AnnounceProxyCommands: true, Debug: false, ShutdownReason: defaultShutdownReason(), ForceKeyAuthentication: true, Lite: liteconfig.DefaultConfig, }
DefaultConfig is a default Config.
Functions ¶
This section is empty.
Types ¶
type Auth ¶ added in v0.34.0
type Auth struct { // SessionServerURL is the base URL for the Mojang session server to authenticate online mode players. // Defaults to https://sessionserver.mojang.com/session/minecraft/hasJoined SessionServerURL *configutil.URL `yaml:"sessionServerUrl"` // TODO support multiple urls configutil.SingleOrMulti[URL] }
Auth is the config for authentication.
type Compression ¶
type Config ¶
type Config struct { Bind string `yaml:"bind"` // The address to listen for connections. OnlineMode bool `yaml:"onlineMode,omitempty" json:"onlineMode,omitempty"` // Whether to enable online mode. Auth Auth `yaml:"auth,omitempty" json:"auth,omitempty"` // Authentication settings. OnlineModeKickExistingPlayers bool `yaml:"onlineModeKickExistingPlayers,omitempty" json:"onlineModeKickExistingPlayers,omitempty"` // Kicks existing players when a premium player with the same name joins. Forwarding Forwarding `yaml:"forwarding,omitempty" json:"forwarding,omitempty"` // Player info forwarding settings. Status Status `yaml:"status,omitempty" json:"status,omitempty"` // Status response settings. Query Query `yaml:"query,omitempty" json:"query,omitempty"` // Query settings. // Whether the proxy should present itself as a // Forge/FML-compatible server. By default, this is disabled. AnnounceForge bool `yaml:"announceForge,omitempty" json:"announceForge,omitempty"` Servers map[string]string `yaml:"servers,omitempty" json:"servers,omitempty"` // name:address Try []string `yaml:"try,omitempty" json:"try,omitempty"` // Try server names order ForcedHosts ForcedHosts `yaml:"forcedHosts,omitempty" json:"forcedHosts,omitempty"` FailoverOnUnexpectedServerDisconnect bool `yaml:"failoverOnUnexpectedServerDisconnect,omitempty" json:"failoverOnUnexpectedServerDisconnect,omitempty"` ConnectionTimeout configutil.Duration `yaml:"connectionTimeout,omitempty" json:"connectionTimeout,omitempty"` // Write timeout ReadTimeout configutil.Duration `yaml:"readTimeout,omitempty" json:"readTimeout,omitempty"` // Read timeout Quota Quota `yaml:"quota,omitempty" json:"quota,omitempty"` // Rate limiting settings Compression Compression `yaml:"compression,omitempty" json:"compression,omitempty"` ProxyProtocol bool `yaml:"proxyProtocol,omitempty" json:"proxyProtocol,omitempty"` // Enable HA-Proxy protocol mode ProxyProtocolBackend bool `yaml:"proxyProtocolBackend" json:"proxyProtocolBackend,omitempty"` // Enable HA-Proxy protocol mode for backend servers ShouldPreventClientProxyConnections bool `yaml:"shouldPreventClientProxyConnections" json:"shouldPreventClientProxyConnections,omitempty"` // Sends player IP to Mojang on login AcceptTransfers bool `yaml:"acceptTransfers,omitempty" json:"acceptTransfers,omitempty"` // Whether to accept transfers from other hosts via transfer packet BungeePluginChannelEnabled bool `yaml:"bungeePluginChannelEnabled,omitempty" json:"bungeePluginChannelEnabled,omitempty"` // Whether to enable BungeeCord plugin messaging BuiltinCommands bool `yaml:"builtinCommands,omitempty" json:"builtinCommands,omitempty"` // Whether to enable builtin commands RequireBuiltinCommandPermissions bool `yaml:"requireBuiltinCommandPermissions,omitempty" json:"requireBuiltinCommandPermissions,omitempty"` // Whether builtin commands require player permissions AnnounceProxyCommands bool `yaml:"announceProxyCommands,omitempty" json:"announceProxyCommands,omitempty"` // Whether to announce proxy commands to players ForceKeyAuthentication bool `yaml:"forceKeyAuthentication,omitempty" json:"forceKeyAuthentication,omitempty"` // Added in 1.19 Debug bool `yaml:"debug,omitempty" json:"debug,omitempty"` // Enable debug mode ShutdownReason *configutil.TextComponent `yaml:"shutdownReason,omitempty" json:"shutdownReason,omitempty"` Lite liteconfig.Config `yaml:"lite,omitempty" json:"lite,omitempty"` // Lite mode settings }
Config is the configuration of the proxy.
type ForcedHosts ¶
type Forwarding ¶
type Forwarding struct { Mode ForwardingMode `yaml:"mode"` VelocitySecret string `yaml:"velocitySecret"` // Used with "velocity" mode BungeeGuardSecret string `yaml:"bungeeGuardSecret"` // Used with "bungeeguard" mode }
type ForwardingMode ¶
type ForwardingMode string
ForwardingMode is a player info forwarding mode.
const ( NoneForwardingMode ForwardingMode = "none" LegacyForwardingMode ForwardingMode = "legacy" // VelocityForwardingMode is a forwarding mode specified by the Velocity java proxy and // supported by PaperSpigot for versions starting at 1.13. VelocityForwardingMode ForwardingMode = "velocity" // BungeeGuardForwardingMode is a forwarding mode used by versions lower than 1.13 BungeeGuardForwardingMode ForwardingMode = "bungeeguard" )
type Quota ¶
type Quota struct { Connections QuotaSettings `yaml:"connections"` // Limits new connections per second, per IP block. Logins QuotaSettings `yaml:"logins"` // Limits logins per second, per IP block. }
Quota is the config for rate limiting.
type QuotaSettings ¶
type QuotaSettings struct { Enabled bool `yaml:"enabled"` // If false, there is no such limiting. OPS float32 `yaml:"ops"` // Allowed operations/events per second, per IP block Burst int `yaml:"burst"` // The maximum events per second, per block; the size of the token bucket MaxEntries int `yaml:"maxEntries"` // Maximum number of IP blocks to keep track of in cache }
type Status ¶
type Status struct { ShowMaxPlayers int `yaml:"showMaxPlayers"` Motd *configutil.TextComponent `yaml:"motd"` Favicon favicon.Favicon `yaml:"favicon"` LogPingRequests bool `yaml:"logPingRequests"` }
Click to show internal directories.
Click to hide internal directories.