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,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", 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, Bedrock: bconfig.DefaultBedrockConfig, }
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
// Bedrock edition configuration
Bedrock bconfig.BedrockConfig `yaml:"bedrock,omitempty" json:"bedrock,omitempty"`
}
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.