104 lines
2.5 KiB
Python
104 lines
2.5 KiB
Python
assert node.has_bundle('java')
|
|
|
|
defaults = {
|
|
'backup': {
|
|
'paths': {
|
|
'/var/lib/minecraft',
|
|
},
|
|
}
|
|
}
|
|
|
|
default_properties = {
|
|
'broadcast-rcon-to-ops': True,
|
|
'view-distance': 10,
|
|
'enable-jmx-monitoring': False,
|
|
'server-ip': None,
|
|
'resource-pack-prompt': None,
|
|
'rcon.port': 25251,
|
|
'gamemode': 'survival',
|
|
'server-port': 25250,
|
|
'allow-nether': True,
|
|
'enable-command-block': False,
|
|
'enable-rcon': False,
|
|
'sync-chunk-writes': True,
|
|
'enable-query': False,
|
|
'op-permission-level': 4,
|
|
'prevent-proxy-connections': False,
|
|
'resource-pack': None,
|
|
'entity-broadcast-range-percentage': 100,
|
|
'level-name': 'world',
|
|
'rcon.password': None,
|
|
'player-idle-timeout': 0,
|
|
'motd': 'A Minecraft Server',
|
|
'query.port': 25252,
|
|
'force-gamemode': False,
|
|
'rate-limit': 0,
|
|
'hardcore': False,
|
|
'white-list': False,
|
|
'broadcast-console-to-ops': True,
|
|
'pvp': True,
|
|
'spawn-npcs': True,
|
|
'spawn-animals': True,
|
|
'snooper-enabled': True,
|
|
'difficulty': 'easy',
|
|
'function-permission-level': 2,
|
|
'network-compression-threshold': 256,
|
|
'text-filtering-config': None,
|
|
'require-resource-pack': False,
|
|
'spawn-monsters': True,
|
|
'max-tick-time': 60000,
|
|
'enforce-whitelist': False,
|
|
'use-native-transport': True,
|
|
'max-players': 20,
|
|
'resource-pack-sha1': None,
|
|
'spawn-protection': 0,
|
|
'online-mode': True,
|
|
'enable-status': True,
|
|
'allow-flight': False,
|
|
'max-world-size': 29999984,
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'minecraft/servers',
|
|
)
|
|
def server_properties(metadata):
|
|
servers = {}
|
|
|
|
for name, options in metadata.get('minecraft/servers').items():
|
|
servers[name] = {
|
|
**default_properties,
|
|
}
|
|
|
|
return {
|
|
'minecraft': {
|
|
'servers': servers,
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'systemd/units',
|
|
)
|
|
def server_unitfiles(metadata):
|
|
units = {}
|
|
|
|
for name in metadata.get('minecraft/servers'):
|
|
units[f'minecraft-{name}.service'] = {
|
|
'Unit': {
|
|
'Description': f'minecraft server {name}',
|
|
'After': 'network.target',
|
|
},
|
|
'Service': {
|
|
'User': 'minecraft',
|
|
'WorkingDirectory': f'/var/lib/minecraft/{name}',
|
|
'ExecStart': '/usr/bin/java -Xms1024M -Xmx2560M -jar /opt/minecraft/server.jar nogui',
|
|
'Restart': 'always',
|
|
},
|
|
}
|
|
|
|
return {
|
|
'systemd': {
|
|
'units': units,
|
|
},
|
|
}
|