new version
Some checks failed
Some checks failed
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
[
|
||||
{% for ip in minecraft_banned_ips | default([]) %}
|
||||
{
|
||||
"ip": "{{ ip.address }}",
|
||||
"created": "{{ ip.created | default(ansible_date_time.iso8601) }}",
|
||||
"source": "{{ ip.source | default('Server') }}",
|
||||
"expires": "{{ ip.expires | default('forever') }}",
|
||||
"reason": "{{ ip.reason | default('Banned by administrator') }}"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
]
|
@@ -1,13 +0,0 @@
|
||||
[
|
||||
{% for player in minecraft_banned_players | default([]) %}
|
||||
{
|
||||
"uuid": "{{ player.uuid }}",
|
||||
"name": "{{ player.name }}",
|
||||
"created": "{{ player.created | default(ansible_date_time.iso8601) }}",
|
||||
"source": "{{ player.source | default('Server') }}",
|
||||
"expires": "{{ player.expires | default('forever') }}",
|
||||
"reason": "{{ player.reason | default('Banned by administrator') }}"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
]
|
@@ -1,39 +0,0 @@
|
||||
# {{ ansible_managed }}
|
||||
# This is the main configuration file for Bukkit.
|
||||
# Bukkit version: {{ minecraft_version }}
|
||||
|
||||
settings:
|
||||
allow-end: true
|
||||
warn-on-overload: true
|
||||
permissions-file: permissions.yml
|
||||
update-folder: update
|
||||
plugin-profiling: false
|
||||
connection-throttle: 4000
|
||||
query-plugins: true
|
||||
deprecated-verbose: default
|
||||
shutdown-message: Server closed
|
||||
minimum-api: none
|
||||
|
||||
spawn-limits:
|
||||
monsters: 70
|
||||
animals: 10
|
||||
water-animals: 5
|
||||
water-ambient: 20
|
||||
water-underground-creature: 5
|
||||
axolotls: 5
|
||||
ambient: 15
|
||||
|
||||
chunk-gc:
|
||||
period-in-ticks: 600
|
||||
|
||||
ticks-per:
|
||||
animal-spawns: 400
|
||||
monster-spawns: 1
|
||||
water-spawns: 1
|
||||
water-ambient-spawns: 1
|
||||
water-underground-creature-spawns: 1
|
||||
axolotl-spawns: 1
|
||||
ambient-spawns: 1
|
||||
autosave: 6000
|
||||
|
||||
aliases: now-in-commands.yml
|
@@ -1,30 +0,0 @@
|
||||
# {{ ansible_managed }}
|
||||
{{ minecraft_server_dir }}/logs/*.log {
|
||||
daily
|
||||
rotate 14
|
||||
compress
|
||||
delaycompress
|
||||
missingok
|
||||
notifempty
|
||||
create 0644 {{ minecraft_user }} {{ minecraft_group }}
|
||||
sharedscripts
|
||||
postrotate
|
||||
# Demander au serveur de recharger les logs
|
||||
if systemctl is-active --quiet {{ minecraft_service_name }}; then
|
||||
{{ minecraft_tools_dir }}/mcrcon -H localhost -P {{ rcon_port }} -p "{{ rcon_password }}" "say Rotation des logs effectuée" > /dev/null 2>&1 || true
|
||||
fi
|
||||
endscript
|
||||
}
|
||||
|
||||
/var/log/minecraft.log {
|
||||
weekly
|
||||
rotate 4
|
||||
compress
|
||||
delaycompress
|
||||
missingok
|
||||
notifempty
|
||||
create 0644 {{ minecraft_user }} {{ minecraft_group }}
|
||||
postrotate
|
||||
systemctl reload rsyslog > /dev/null 2>&1 || true
|
||||
endscript
|
||||
}
|
@@ -1,64 +0,0 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
# Script de backup intégré pour Minecraft
|
||||
|
||||
BACKUP_DIR="{{ minecraft_backup_dir | default('/opt/minecraft/backups') }}"
|
||||
SERVER_DIR="{{ minecraft_server_dir }}"
|
||||
MCRCON="{{ minecraft_tools_dir }}/mcrcon"
|
||||
RCON_PORT="{{ rcon_port }}"
|
||||
RCON_PASS="{{ rcon_password }}"
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
# Créer le répertoire de backup si nécessaire
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# Fonction pour envoyer des commandes RCON
|
||||
send_command() {
|
||||
$MCRCON -H localhost -P $RCON_PORT -p "$RCON_PASS" "$1" 2>/dev/null
|
||||
}
|
||||
|
||||
# Fonction de backup
|
||||
perform_backup() {
|
||||
echo "[$(date)] Démarrage du backup..."
|
||||
|
||||
# Avertir les joueurs
|
||||
send_command "say Backup automatique dans 10 secondes..."
|
||||
sleep 5
|
||||
send_command "say Backup en cours, lag possible..."
|
||||
|
||||
# Forcer la sauvegarde
|
||||
send_command "save-all flush"
|
||||
sleep 2
|
||||
|
||||
# Désactiver l'auto-save temporairement
|
||||
send_command "save-off"
|
||||
|
||||
# Créer le backup
|
||||
tar -czf "$BACKUP_DIR/minecraft_backup_$DATE.tar.gz" \
|
||||
-C "$(dirname $SERVER_DIR)" \
|
||||
"$(basename $SERVER_DIR)" \
|
||||
--exclude='*.log' \
|
||||
--exclude='logs/*.gz' \
|
||||
--exclude='crash-reports/*'
|
||||
|
||||
# Réactiver l'auto-save
|
||||
send_command "save-on"
|
||||
|
||||
# Informer les joueurs
|
||||
send_command "say Backup terminé!"
|
||||
|
||||
echo "[$(date)] Backup créé: minecraft_backup_$DATE.tar.gz"
|
||||
|
||||
# Nettoyer les vieux backups (garder les 7 derniers)
|
||||
ls -t "$BACKUP_DIR"/minecraft_backup_*.tar.gz 2>/dev/null | tail -n +8 | xargs rm -f
|
||||
}
|
||||
|
||||
# Vérifier si le serveur est actif
|
||||
if systemctl is-active --quiet {{ minecraft_service_name }}; then
|
||||
perform_backup
|
||||
else
|
||||
echo "[$(date)] Serveur inactif, backup sans RCON..."
|
||||
tar -czf "$BACKUP_DIR/minecraft_backup_offline_$DATE.tar.gz" \
|
||||
-C "$(dirname $SERVER_DIR)" \
|
||||
"$(basename $SERVER_DIR)"
|
||||
fi
|
@@ -0,0 +1,13 @@
|
||||
{{ minecraft_server_dir }}/logs/*.log {
|
||||
daily
|
||||
rotate {{ logrotate_config.rotate }}
|
||||
size {{ logrotate_config.size }}
|
||||
{% if logrotate_config.compress %}compress{% endif %}
|
||||
{% if logrotate_config.delaycompress %}delaycompress{% endif %}
|
||||
missingok
|
||||
notifempty
|
||||
create 644 {{ minecraft_user }} {{ minecraft_group }}
|
||||
postrotate
|
||||
systemctl reload minecraft || true
|
||||
endscript
|
||||
}
|
@@ -1,133 +0,0 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
# Script de monitoring pour le serveur Minecraft
|
||||
|
||||
SERVER_DIR="{{ minecraft_server_dir }}"
|
||||
MCRCON="{{ minecraft_tools_dir }}/mcrcon"
|
||||
RCON_PORT="{{ rcon_port }}"
|
||||
RCON_PASS="{{ rcon_password }}"
|
||||
SERVICE_NAME="{{ minecraft_service_name }}"
|
||||
LOG_FILE="/var/log/minecraft-monitor.log"
|
||||
|
||||
# Fonction de log
|
||||
log_message() {
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
# Fonction pour vérifier le statut
|
||||
check_server_status() {
|
||||
if ! systemctl is-active --quiet "$SERVICE_NAME"; then
|
||||
echo "OFFLINE"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Tester RCON
|
||||
if ! $MCRCON -H localhost -P $RCON_PORT -p "$RCON_PASS" "list" &>/dev/null; then
|
||||
echo "RCON_FAILED"
|
||||
return 2
|
||||
fi
|
||||
|
||||
echo "ONLINE"
|
||||
return 0
|
||||
}
|
||||
|
||||
# Fonction pour obtenir les métriques
|
||||
get_metrics() {
|
||||
local status=$(check_server_status)
|
||||
|
||||
if [ "$status" = "ONLINE" ]; then
|
||||
# Nombre de joueurs
|
||||
local players=$($MCRCON -H localhost -P $RCON_PORT -p "$RCON_PASS" "list" 2>/dev/null | grep -oP '\d+(?= of a max)' || echo "0")
|
||||
|
||||
# TPS (si disponible avec un plugin)
|
||||
local tps=$($MCRCON -H localhost -P $RCON_PORT -p "$RCON_PASS" "tps" 2>/dev/null || echo "N/A")
|
||||
|
||||
# Utilisation mémoire du processus
|
||||
local pid=$(systemctl show -p MainPID "$SERVICE_NAME" | cut -d= -f2)
|
||||
local mem="0"
|
||||
if [ "$pid" != "0" ]; then
|
||||
mem=$(ps -o rss= -p "$pid" 2>/dev/null | awk '{printf "%.2f", $1/1024}' || echo "0")
|
||||
fi
|
||||
|
||||
# Utilisation CPU
|
||||
local cpu="0"
|
||||
if [ "$pid" != "0" ]; then
|
||||
cpu=$(ps -o %cpu= -p "$pid" 2>/dev/null | awk '{print $1}' || echo "0")
|
||||
fi
|
||||
|
||||
# Espace disque du serveur
|
||||
local disk=$(du -sh "$SERVER_DIR" 2>/dev/null | cut -f1 || echo "N/A")
|
||||
|
||||
# Affichage JSON pour intégration
|
||||
cat <<EOF
|
||||
{
|
||||
"status": "$status",
|
||||
"players": $players,
|
||||
"tps": "$tps",
|
||||
"memory_mb": $mem,
|
||||
"cpu_percent": $cpu,
|
||||
"disk_usage": "$disk",
|
||||
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
||||
}
|
||||
EOF
|
||||
else
|
||||
cat <<EOF
|
||||
{
|
||||
"status": "$status",
|
||||
"players": 0,
|
||||
"tps": "N/A",
|
||||
"memory_mb": 0,
|
||||
"cpu_percent": 0,
|
||||
"disk_usage": "N/A",
|
||||
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
# Fonction de redémarrage automatique
|
||||
auto_restart_check() {
|
||||
local status=$(check_server_status)
|
||||
|
||||
case "$status" in
|
||||
"OFFLINE")
|
||||
log_message "ALERTE: Serveur hors ligne, tentative de redémarrage..."
|
||||
systemctl restart "$SERVICE_NAME"
|
||||
sleep 30
|
||||
if check_server_status >/dev/null; then
|
||||
log_message "INFO: Serveur redémarré avec succès"
|
||||
else
|
||||
log_message "ERREUR: Échec du redémarrage du serveur"
|
||||
fi
|
||||
;;
|
||||
"RCON_FAILED")
|
||||
log_message "AVERTISSEMENT: RCON ne répond pas, vérification..."
|
||||
# Attendre 60 secondes avant de considérer comme critique
|
||||
sleep 60
|
||||
if [ "$(check_server_status)" = "RCON_FAILED" ]; then
|
||||
log_message "ERREUR: RCON toujours en échec, redémarrage du serveur..."
|
||||
systemctl restart "$SERVICE_NAME"
|
||||
fi
|
||||
;;
|
||||
"ONLINE")
|
||||
# Tout va bien
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Main
|
||||
case "${1:-status}" in
|
||||
status)
|
||||
check_server_status
|
||||
;;
|
||||
metrics)
|
||||
get_metrics
|
||||
;;
|
||||
monitor)
|
||||
auto_restart_check
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {status|metrics|monitor}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
@@ -1,54 +1,17 @@
|
||||
# {{ ansible_managed }}
|
||||
[Unit]
|
||||
Description=Minecraft Server (Spigot {{ minecraft_version }})
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
Description=Minecraft Spigot Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Type=forking
|
||||
User={{ minecraft_user }}
|
||||
Group={{ minecraft_group }}
|
||||
WorkingDirectory={{ minecraft_server_dir }}
|
||||
|
||||
# Start command with optimized JVM flags
|
||||
ExecStart=/usr/bin/java \
|
||||
-Xms{{ minecraft_memory_min }}M \
|
||||
-Xmx{{ minecraft_memory_max }}M \
|
||||
{{ jvm_flags }} \
|
||||
-jar {{ spigot_jar_name }} \
|
||||
--nogui
|
||||
|
||||
# Stop command using mcrcon
|
||||
ExecStop={{ minecraft_tools_dir }}/mcrcon -H localhost -P {{ rcon_port }} -p "{{ rcon_password }}" stop
|
||||
|
||||
# Restart settings
|
||||
ExecStart=/usr/bin/java -Xmx{{ minecraft_max_memory }} -Xms{{ minecraft_min_memory }} -jar spigot.jar nogui
|
||||
ExecStop={{ minecraft_tools_dir }}/mcrcon/mcrcon -H 127.0.0.1 -P {{ minecraft_rcon_port }} -p {{ minecraft_rcon_password | default('changeme') }} stop
|
||||
KillMode=none
|
||||
TimeoutStopSec=120
|
||||
Restart=on-failure
|
||||
RestartSec=10
|
||||
StartLimitInterval=600
|
||||
StartLimitBurst=3
|
||||
|
||||
# Security settings
|
||||
PrivateTmp=yes
|
||||
NoNewPrivileges=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths={{ minecraft_base_dir }}
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelModules=true
|
||||
ProtectControlGroups=true
|
||||
RestrictNamespaces=true
|
||||
RestrictRealtime=true
|
||||
RestrictSUIDSGID=true
|
||||
LockPersonality=true
|
||||
|
||||
# Resource limits
|
||||
LimitNOFILE=100000
|
||||
LimitNPROC=512
|
||||
|
||||
# Logging
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=minecraft
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@@ -1,11 +1,10 @@
|
||||
[
|
||||
{% for op in minecraft_ops %}
|
||||
{% for admin in minecraft_admins | default([]) %}
|
||||
{
|
||||
"uuid": "{{ op.uuid }}",
|
||||
"name": "{{ op.name }}",
|
||||
"level": {{ op.level | default(4) }},
|
||||
"bypassesPlayerLimit": {{ op.bypassesPlayerLimit | default(false) | lower }}
|
||||
"uuid": "{{ admin.uuid }}",
|
||||
"name": "{{ admin.name }}",
|
||||
"level": {{ admin.level | default(4) }},
|
||||
"bypassesPlayerLimit": {{ admin.bypass_limit | default(false) | lower }}
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
]
|
@@ -1,188 +0,0 @@
|
||||
# {{ ansible_managed }}
|
||||
# Paper configuration file - only used if Paper is detected
|
||||
# Version: {{ minecraft_version }}
|
||||
|
||||
verbose: false
|
||||
config-version: 28
|
||||
|
||||
settings:
|
||||
console-has-all-permissions: false
|
||||
region-file-cache-size: 256
|
||||
incoming-packet-spam-threshold: 300
|
||||
max-joins-per-tick: 3
|
||||
track-plugin-scoreboards: false
|
||||
suggest-player-names-when-null-tab-completions: true
|
||||
use-display-name-in-quit-message: false
|
||||
load-permissions-yml-before-plugins: true
|
||||
bungee-online-mode: false
|
||||
unsupported-settings:
|
||||
allow-permanent-block-break-exploits: false
|
||||
allow-piston-duplication: false
|
||||
allow-headless-pistons: false
|
||||
watchdog:
|
||||
early-warning-every: 5000
|
||||
early-warning-delay: 10000
|
||||
spam-limiter:
|
||||
recipe-spam-increment: 1
|
||||
recipe-spam-limit: 20
|
||||
tab-spam-increment: 1
|
||||
tab-spam-limit: 500
|
||||
book-size:
|
||||
page-max: 2560
|
||||
total-multiplier: 0.98
|
||||
async-chunks:
|
||||
enable: true
|
||||
threads: -1
|
||||
velocity-support:
|
||||
enabled: false
|
||||
online-mode: false
|
||||
secret: ''
|
||||
|
||||
world-settings:
|
||||
default:
|
||||
fix-climbing-bypassing-cramming-rule: false
|
||||
max-leash-distance: 10.0
|
||||
show-sign-click-command-failure-msgs-to-player: false
|
||||
piglins-guard-chests: true
|
||||
should-remove-dragon: false
|
||||
max-auto-save-chunks-per-tick: 24
|
||||
baby-zombie-movement-modifier: 0.5
|
||||
optimize-explosions: false
|
||||
disable-teleportation-suffocation-check: false
|
||||
fixed-chunk-inhabited-time: -1
|
||||
use-vanilla-world-scoreboard-name-coloring: false
|
||||
prevent-moving-into-unloaded-chunks: false
|
||||
spawn-limits:
|
||||
monsters: -1
|
||||
animals: -1
|
||||
water-animals: -1
|
||||
water-ambient: -1
|
||||
water-underground-creature: -1
|
||||
axolotls: -1
|
||||
ambient: -1
|
||||
despawn-ranges:
|
||||
monster:
|
||||
soft: 32
|
||||
hard: 128
|
||||
creature:
|
||||
soft: 32
|
||||
hard: 128
|
||||
ambient:
|
||||
soft: 32
|
||||
hard: 128
|
||||
axolotls:
|
||||
soft: 32
|
||||
hard: 128
|
||||
water-creature:
|
||||
soft: 32
|
||||
hard: 128
|
||||
water-ambient:
|
||||
soft: 32
|
||||
hard: 64
|
||||
water-underground-creature:
|
||||
soft: 32
|
||||
hard: 128
|
||||
misc:
|
||||
soft: 32
|
||||
hard: 128
|
||||
frosted-ice:
|
||||
enabled: true
|
||||
delay:
|
||||
min: 20
|
||||
max: 40
|
||||
lootables:
|
||||
auto-replenish: false
|
||||
restrict-player-reloot: true
|
||||
reset-seed-on-fill: true
|
||||
max-refills: -1
|
||||
refresh-min: 12h
|
||||
refresh-max: 2d
|
||||
filter-nbt-data-from-spawn-eggs-and-related: true
|
||||
max-entity-collisions: 8
|
||||
disable-creeper-lingering-effect: false
|
||||
duplicate-uuid-resolver: saferegen
|
||||
duplicate-uuid-saferegen-delete-range: 32
|
||||
per-player-mob-spawns: true
|
||||
experience-merge-max-value: -1
|
||||
prevent-tnt-from-moving-in-water: false
|
||||
falling-block-height-nerf: 0
|
||||
tnt-entity-height-nerf: 0
|
||||
slime-spawn-height:
|
||||
swamp-biome:
|
||||
maximum: 70
|
||||
minimum: 50
|
||||
slime-chunk:
|
||||
maximum: 40
|
||||
portal-search-radius: 128
|
||||
portal-create-radius: 16
|
||||
portal-search-vanilla-dimension-scaling: true
|
||||
enable-treasure-maps: true
|
||||
treasure-maps-find-already-discovered:
|
||||
loot-tables: default
|
||||
villager-trade: false
|
||||
disable-thunder: false
|
||||
disable-ice-and-snow: false
|
||||
disable-explosion-knockback: false
|
||||
keep-spawn-loaded: true
|
||||
keep-spawn-loaded-range: 10
|
||||
auto-save-interval: -1
|
||||
disable-mob-spawner-spawn-egg-transformation: false
|
||||
entities-target-with-follow-range: false
|
||||
zombies-target-turtle-eggs: true
|
||||
zombie-villager-infection-chance: -1.0
|
||||
all-chunks-are-slime-chunks: false
|
||||
mob-spawner-tick-rate: 1
|
||||
light-queue-size: 20
|
||||
grass-spread-tick-rate: 1
|
||||
redstone-implementation: vanilla
|
||||
armor-stands-tick: true
|
||||
water-over-lava-flow-speed: 5
|
||||
use-faster-eigencraft-redstone: false
|
||||
disable-move-event: false
|
||||
container-update-tick-rate: 1
|
||||
non-player-arrow-despawn-rate: -1
|
||||
creative-arrow-despawn-rate: -1
|
||||
skeleton-horse-thunder-spawn-chance: 0.01
|
||||
disable-ice-and-snow: false
|
||||
iron-golems-can-spawn-in-air: false
|
||||
count-all-mobs-for-spawning: false
|
||||
delay-chunk-unloads-by: 10s
|
||||
seed-based-feature-search: true
|
||||
seed-based-feature-search-loads-chunks: true
|
||||
water-flow-speed: 5
|
||||
lava-flow-speed:
|
||||
normal: 30
|
||||
nether: 10
|
||||
fix-items-merging-through-walls: false
|
||||
prevent-lightning-strike-blocks-from-decaying: false
|
||||
squid-spawn-height:
|
||||
minimum: 45
|
||||
maximum: 0
|
||||
disable-pillager-patrols: false
|
||||
game-mechanics:
|
||||
scan-for-legacy-ender-dragon: true
|
||||
disable-chest-cat-detection: false
|
||||
nerf-pigmen-from-nether-portals: false
|
||||
disable-player-crits: false
|
||||
disable-sprint-interruption-on-attack: false
|
||||
shield-blocking-delay: 5
|
||||
disable-end-credits: false
|
||||
disable-relative-projectile-velocity: false
|
||||
disable-mob-spawner-spawn-egg-transformation: false
|
||||
pillager-patrols:
|
||||
spawn-chance: 0.2
|
||||
spawn-delay:
|
||||
per-player: false
|
||||
ticks: 12000
|
||||
start:
|
||||
per-player: false
|
||||
day: 5
|
||||
max-growth-height:
|
||||
cactus: 3
|
||||
reeds: 3
|
||||
bamboo:
|
||||
max: 16
|
||||
min: 11
|
||||
fishing-time-range:
|
||||
minimum: 100
|
||||
maximum: 600
|
@@ -1,54 +0,0 @@
|
||||
# {{ ansible_managed }}
|
||||
# Permissions configuration for Bukkit
|
||||
|
||||
# Default permissions
|
||||
default:
|
||||
default: true
|
||||
permissions:
|
||||
bukkit.command.help: true
|
||||
bukkit.command.list: true
|
||||
bukkit.command.me: true
|
||||
bukkit.command.msg: true
|
||||
bukkit.command.tell: true
|
||||
bukkit.command.trigger: true
|
||||
|
||||
# Moderator permissions
|
||||
moderator:
|
||||
default: false
|
||||
inheritance:
|
||||
- default
|
||||
permissions:
|
||||
bukkit.command.kick: true
|
||||
bukkit.command.ban: true
|
||||
bukkit.command.ban.ip: true
|
||||
bukkit.command.ban.list: true
|
||||
bukkit.command.unban: true
|
||||
bukkit.command.unban.ip: true
|
||||
bukkit.command.pardon: true
|
||||
bukkit.command.pardon.ip: true
|
||||
bukkit.command.whitelist: true
|
||||
bukkit.command.whitelist.add: true
|
||||
bukkit.command.whitelist.remove: true
|
||||
bukkit.command.whitelist.list: true
|
||||
bukkit.command.whitelist.on: true
|
||||
bukkit.command.whitelist.off: true
|
||||
bukkit.command.whitelist.reload: true
|
||||
|
||||
# Admin permissions
|
||||
admin:
|
||||
default: false
|
||||
inheritance:
|
||||
- moderator
|
||||
permissions:
|
||||
bukkit.command.op: true
|
||||
bukkit.command.op.give: true
|
||||
bukkit.command.op.take: true
|
||||
bukkit.command.save: true
|
||||
bukkit.command.save.disable: true
|
||||
bukkit.command.save.enable: true
|
||||
bukkit.command.save.perform: true
|
||||
bukkit.command.stop: true
|
||||
bukkit.command.restart: true
|
||||
bukkit.command.reload: true
|
||||
bukkit.command.version: true
|
||||
bukkit.command.plugins: true
|
@@ -1,66 +1,38 @@
|
||||
# {{ ansible_managed }}
|
||||
# Minecraft server properties - Generated on {{ ansible_date_time.iso8601 }}
|
||||
|
||||
# Server Settings
|
||||
server-port={{ server_port }}
|
||||
server-ip=
|
||||
max-tick-time=60000
|
||||
enable-rcon={{ enable_rcon | lower }}
|
||||
rcon.port={{ rcon_port }}
|
||||
rcon.password={{ rcon_password }}
|
||||
enable-query=false
|
||||
query.port={{ server_port }}
|
||||
|
||||
# Gameplay
|
||||
gamemode={{ gamemode }}
|
||||
difficulty={{ difficulty }}
|
||||
hardcore=false
|
||||
pvp={{ pvp | lower }}
|
||||
enable-command-block={{ enable_command_block | lower }}
|
||||
max-players={{ max_players }}
|
||||
online-mode={{ online_mode | lower }}
|
||||
white-list={{ white_list | lower }}
|
||||
enforce-whitelist={{ white_list | lower }}
|
||||
#Minecraft server properties généré par Ansible
|
||||
generator-settings=
|
||||
op-permission-level=4
|
||||
player-idle-timeout=0
|
||||
prevent-proxy-connections=false
|
||||
hide-online-players=false
|
||||
simulation-distance=10
|
||||
|
||||
# World
|
||||
level-name=world
|
||||
level-seed={{ level_seed }}
|
||||
level-type={{ level_type }}
|
||||
generate-structures={{ generate_structures | lower }}
|
||||
spawn-protection={{ spawn_protection }}
|
||||
max-world-size={{ max_world_size }}
|
||||
max-build-height=319
|
||||
view-distance={{ view_distance }}
|
||||
spawn-animals={{ spawn_animals | lower }}
|
||||
spawn-monsters={{ spawn_monsters | lower }}
|
||||
spawn-npcs={{ spawn_npcs | lower }}
|
||||
allow-nether=true
|
||||
|
||||
# Performance
|
||||
network-compression-threshold=256
|
||||
rate-limit=0
|
||||
sync-chunk-writes=true
|
||||
use-native-transport=true
|
||||
level-name=world
|
||||
enable-query=false
|
||||
allow-flight=false
|
||||
|
||||
# Messages
|
||||
motd={{ server_name }}
|
||||
resource-pack=
|
||||
resource-pack-prompt=
|
||||
resource-pack-sha1=
|
||||
require-resource-pack=false
|
||||
|
||||
# Advanced
|
||||
enable-jmx-monitoring=false
|
||||
enable-status=true
|
||||
entity-broadcast-range-percentage=100
|
||||
announce-player-achievements=true
|
||||
server-port={{ minecraft_port }}
|
||||
max-world-size=29999984
|
||||
level-type=default
|
||||
enable-rcon={{ server_properties['enable-rcon'] }}
|
||||
level-seed=
|
||||
force-gamemode=false
|
||||
function-permission-level=2
|
||||
initial-disabled-packs=
|
||||
initial-enabled-packs=vanilla
|
||||
text-filtering-config=
|
||||
server-ip=
|
||||
max-build-height=256
|
||||
spawn-npcs=true
|
||||
white-list={{ server_properties['white-list'] }}
|
||||
spawn-animals=true
|
||||
hardcore=false
|
||||
snooper-enabled=true
|
||||
resource-pack-sha1=
|
||||
online-mode=true
|
||||
resource-pack=
|
||||
pvp={{ server_properties['pvp'] }}
|
||||
difficulty={{ server_properties['difficulty'] }}
|
||||
enable-command-block=false
|
||||
gamemode={{ server_properties['gamemode'] }}
|
||||
player-idle-timeout=0
|
||||
max-players={{ server_properties['max-players'] }}
|
||||
max-tick-time=60000
|
||||
spawn-monsters=true
|
||||
view-distance=10
|
||||
generate-structures=true
|
||||
spawn-protection={{ server_properties['spawn-protection'] }}
|
||||
motd=Un serveur Minecraft avec Spigot
|
||||
rcon.port={{ minecraft_rcon_port }}
|
||||
rcon.password={{ minecraft_rcon_password | default('changeme') }}
|
@@ -1,130 +0,0 @@
|
||||
# {{ ansible_managed }}
|
||||
# This is the main configuration file for Spigot.
|
||||
# Spigot version: {{ minecraft_version }}
|
||||
|
||||
settings:
|
||||
debug: false
|
||||
save-user-cache-on-stop-only: false
|
||||
bungeecord: false
|
||||
late-bind: false
|
||||
sample-count: 12
|
||||
player-shuffle: 0
|
||||
user-cache-size: 1000
|
||||
moved-wrongly-threshold: 0.0625
|
||||
moved-too-quickly-multiplier: 10.0
|
||||
timeout-time: 60
|
||||
restart-on-crash: true
|
||||
restart-script: {{ minecraft_base_dir }}/scripts/start.sh
|
||||
netty-threads: 4
|
||||
log-villager-deaths: true
|
||||
log-named-deaths: true
|
||||
attribute:
|
||||
maxHealth:
|
||||
max: 2048.0
|
||||
movementSpeed:
|
||||
max: 2048.0
|
||||
attackDamage:
|
||||
max: 2048.0
|
||||
|
||||
messages:
|
||||
whitelist: You are not whitelisted on this server!
|
||||
unknown-command: Unknown command. Type "/help" for help.
|
||||
server-full: The server is full!
|
||||
outdated-client: Outdated client! Please use {0}
|
||||
outdated-server: Outdated server! I'm still on {0}
|
||||
restart: Server is restarting
|
||||
|
||||
commands:
|
||||
replace-commands:
|
||||
- setblock
|
||||
- summon
|
||||
- testforblock
|
||||
- tellraw
|
||||
spam-exclusions:
|
||||
- /skill
|
||||
silent-commandblock-console: false
|
||||
log: true
|
||||
tab-complete: -1
|
||||
send-namespaced: true
|
||||
|
||||
advancements:
|
||||
disable-saving: false
|
||||
disabled:
|
||||
- minecraft:story/disabled
|
||||
|
||||
players:
|
||||
disable-saving: false
|
||||
|
||||
world-settings:
|
||||
default:
|
||||
below-zero-generation-in-existing-chunks: true
|
||||
merge-radius:
|
||||
exp: 3.0
|
||||
item: 2.5
|
||||
growth:
|
||||
cactus-modifier: 100
|
||||
cane-modifier: 100
|
||||
melon-modifier: 100
|
||||
mushroom-modifier: 100
|
||||
pumpkin-modifier: 100
|
||||
sapling-modifier: 100
|
||||
beetroot-modifier: 100
|
||||
carrot-modifier: 100
|
||||
potato-modifier: 100
|
||||
wheat-modifier: 100
|
||||
netherwart-modifier: 100
|
||||
vine-modifier: 100
|
||||
cocoa-modifier: 100
|
||||
bamboo-modifier: 100
|
||||
sweetberry-modifier: 100
|
||||
kelp-modifier: 100
|
||||
entity-activation-range:
|
||||
animals: 32
|
||||
monsters: 32
|
||||
raiders: 48
|
||||
misc: 16
|
||||
tick-inactive-villagers: true
|
||||
entity-tracking-range:
|
||||
players: 48
|
||||
animals: 48
|
||||
monsters: 48
|
||||
misc: 32
|
||||
other: 64
|
||||
ticks-per:
|
||||
hopper-transfer: 8
|
||||
hopper-check: 1
|
||||
hopper-amount: 1
|
||||
save-structure-info: true
|
||||
dragon-death-sound-radius: 0
|
||||
seed-village: 10387312
|
||||
seed-desert: 14357617
|
||||
seed-igloo: 14357618
|
||||
seed-jungle: 14357619
|
||||
seed-swamp: 14357620
|
||||
seed-monument: 10387313
|
||||
seed-shipwreck: 165745295
|
||||
seed-ocean: 14357621
|
||||
seed-outpost: 165745296
|
||||
seed-endcity: 10387313
|
||||
seed-slime: 987234911
|
||||
seed-bastion: 30084232
|
||||
seed-fortress: 30084232
|
||||
seed-mansion: 10387319
|
||||
seed-fossil: 14357921
|
||||
seed-portal: 34222645
|
||||
max-tnt-per-tick: 100
|
||||
enable-zombie-pigmen-portal-spawns: true
|
||||
item-despawn-rate: 6000
|
||||
view-distance: default
|
||||
simulation-distance: default
|
||||
thunder-chance: 100000
|
||||
wither-spawn-sound-radius: 0
|
||||
arrow-despawn-rate: 1200
|
||||
trident-despawn-rate: 1200
|
||||
hanging-tick-frequency: 100
|
||||
zombie-aggressive-towards-villager: true
|
||||
nerf-spawner-mobs: false
|
||||
mob-spawn-range: 8
|
||||
end-portal-sound-radius: 0
|
||||
|
||||
config-version: 12
|
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
|
||||
# Configuration
|
||||
SERVER_DIR="{{ minecraft_server_dir }}"
|
||||
JAR_FILE="{{ spigot_jar_name }}"
|
||||
MIN_RAM="{{ minecraft_memory_min }}M"
|
||||
MAX_RAM="{{ minecraft_memory_max }}M"
|
||||
|
||||
# JVM Flags optimisés pour Minecraft
|
||||
JVM_FLAGS="{{ jvm_flags }}"
|
||||
|
||||
# Aller dans le répertoire du serveur
|
||||
cd "$SERVER_DIR" || exit 1
|
||||
|
||||
# Démarrer le serveur
|
||||
exec java -Xms${MIN_RAM} -Xmx${MAX_RAM} ${JVM_FLAGS} -jar ${JAR_FILE} --nogui
|
@@ -1,39 +0,0 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
|
||||
MCRCON="{{ minecraft_tools_dir }}/mcrcon"
|
||||
RCON_HOST="localhost"
|
||||
RCON_PORT="{{ rcon_port }}"
|
||||
RCON_PASS="{{ rcon_password }}"
|
||||
|
||||
# Fonction pour envoyer des commandes au serveur
|
||||
send_command() {
|
||||
$MCRCON -H $RCON_HOST -P $RCON_PORT -p "$RCON_PASS" "$1"
|
||||
}
|
||||
|
||||
# Avertir les joueurs
|
||||
echo "Avertissement des joueurs..."
|
||||
send_command "say Le serveur va redémarrer dans 60 secondes!"
|
||||
sleep 30
|
||||
|
||||
send_command "say Le serveur va redémarrer dans 30 secondes!"
|
||||
sleep 20
|
||||
|
||||
send_command "say Le serveur va redémarrer dans 10 secondes!"
|
||||
sleep 5
|
||||
|
||||
for i in 5 4 3 2 1; do
|
||||
send_command "say Arrêt dans $i..."
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Sauvegarder le monde
|
||||
echo "Sauvegarde du monde..."
|
||||
send_command "save-all"
|
||||
sleep 5
|
||||
|
||||
# Arrêter le serveur
|
||||
echo "Arrêt du serveur..."
|
||||
send_command "stop"
|
||||
|
||||
echo "Serveur arrêté proprement."
|
@@ -1,9 +0,0 @@
|
||||
[
|
||||
{% for player in minecraft_whitelist | default([]) %}
|
||||
{
|
||||
"uuid": "{{ player.uuid }}",
|
||||
"name": "{{ player.name }}"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
]
|
Reference in New Issue
Block a user