Compare commits
2 commits
rcon_featu
...
main
Author | SHA1 | Date | |
---|---|---|---|
70b205cf8e | |||
8ba3dca22d |
14 changed files with 9 additions and 69 deletions
|
@ -1,5 +1,5 @@
|
||||||
FROM docker.io/alpine:3.19
|
FROM docker.io/alpine:3.21
|
||||||
RUN apk add openjdk17-jre rcon
|
RUN apk add openjdk21-jre
|
||||||
RUN adduser -u 1000 -h /var/server -D execute
|
RUN adduser -u 1000 -h /var/server -D execute
|
||||||
RUN mkdir -p /var/exec
|
RUN mkdir -p /var/exec
|
||||||
|
|
||||||
|
|
15
pms-cli
15
pms-cli
|
@ -8,7 +8,7 @@ readonly TEMPLATEDIR="${ROOTPATH}/.template"
|
||||||
readonly BUILDDIR="$(mktemp -d /tmp/pms-cli.XXXXXX)"
|
readonly BUILDDIR="$(mktemp -d /tmp/pms-cli.XXXXXX)"
|
||||||
readonly CONFIG="/usr/local/noveria/etc/pms-cli/pms-cli.json"
|
readonly CONFIG="/usr/local/noveria/etc/pms-cli/pms-cli.json"
|
||||||
|
|
||||||
for util in ${ROOTPATH}/utils/*.sh; do
|
for util in ${ROOTPATH}/utils/*; do
|
||||||
source ${util}
|
source ${util}
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -23,13 +23,12 @@ operations:
|
||||||
$(basename ${0}) {-v --verbose}
|
$(basename ${0}) {-v --verbose}
|
||||||
$(basename ${0}) {--init} [servername] [network name]
|
$(basename ${0}) {--init} [servername] [network name]
|
||||||
$(basename ${0}) {--datapack} [servername] [datapack dl url]
|
$(basename ${0}) {--datapack} [servername] [datapack dl url]
|
||||||
$(basename ${0}) {--start} [servername] [port] [ip]
|
$(basename ${0}) {--start} [servername] [port] (ip)
|
||||||
$(basename ${0}) {--stop} [servername]
|
$(basename ${0}) {--stop} [servername]
|
||||||
$(basename ${0}) {--restart} [servername] [port] [ip]
|
$(basename ${0}) {--restart} [servername] [port] (ip)
|
||||||
$(basename ${0}) {--attach} [servername]
|
$(basename ${0}) {--attach} [servername]
|
||||||
$(basename ${0}) {--reset} [servername]
|
$(basename ${0}) {--reset} [servername]
|
||||||
$(basename ${0}) {--delete} [servername]
|
$(basename ${0}) {--delete} [servername]"
|
||||||
$(basename ${0}) {--server} [servername] [command]"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function version() {
|
function version() {
|
||||||
|
@ -45,7 +44,7 @@ the terms of the ${LICENSE}"
|
||||||
###
|
###
|
||||||
|
|
||||||
OPT_SHORT="hVv"
|
OPT_SHORT="hVv"
|
||||||
OPT_LONG="help,version,verbose,init:,datapack:,start:,stop:,restart:,attach:,reset:,delete:,server:"
|
OPT_LONG="help,version,verbose,init:,datapack:,start:,stop:,restart:,attach:,reset:,delete:"
|
||||||
|
|
||||||
TEMP=$(getopt -o ${OPT_SHORT} --long ${OPT_LONG} -n $(basename ${0}) -- "$@")
|
TEMP=$(getopt -o ${OPT_SHORT} --long ${OPT_LONG} -n $(basename ${0}) -- "$@")
|
||||||
if [ "$?" != 0 ]; then
|
if [ "$?" != 0 ]; then
|
||||||
|
@ -103,10 +102,6 @@ while true; do
|
||||||
stop "${1}"
|
stop "${1}"
|
||||||
delete "${1}"
|
delete "${1}"
|
||||||
;;
|
;;
|
||||||
--server)
|
|
||||||
shift
|
|
||||||
server "${1}" "${3}" "${4}"
|
|
||||||
;;
|
|
||||||
--)
|
--)
|
||||||
shift
|
shift
|
||||||
break
|
break
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function help() {
|
|
||||||
echo -e "usage: $(basename ${0}) --server $1 <operation>
|
|
||||||
operations:
|
|
||||||
$(basename ${0}) --server $1 broadcast \"[message]\""
|
|
||||||
}
|
|
||||||
|
|
||||||
function restart_announcement() {
|
|
||||||
for count in {10..1}; do
|
|
||||||
broadcast "$1" "Server restarting in $count"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function broadcast() {
|
|
||||||
local dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
|
|
||||||
podman exec -it "$1" rcon -m -H 127.0.0.1 -p 25575 -P $(grep -E "^rcon.password" $dir/data/server.properties | cut -d= -f2) tellraw @a [{\"text\":\"[SYSTEM] \",\"color\":\"red\",\"bold\":true},{\"text\": \"$2\",\"color\":\"light_purple\",\"bold\":false}]
|
|
||||||
}
|
|
|
@ -10,7 +10,6 @@ function init() {
|
||||||
local newdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
|
local newdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
|
||||||
|
|
||||||
mkdir -p "${newdir}/data/world/datapacks"
|
mkdir -p "${newdir}/data/world/datapacks"
|
||||||
echo -e "enable-rcon=true\nrcon.password=" > "${newdir}/data/server.properties"
|
|
||||||
populateConfig "${newdir}/config.json" "${2}"
|
populateConfig "${newdir}/config.json" "${2}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,13 +93,9 @@ function buildImage() {
|
||||||
##
|
##
|
||||||
function startContainer() {
|
function startContainer() {
|
||||||
log d "Starting container '${1}'"
|
log d "Starting container '${1}'"
|
||||||
|
readarray -t additional_ports <<< "$(getLocalConfValue $(getValueByKey 'PODMAN_DIRECTORY')/${1} 'additional_ports[]')"
|
||||||
local dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
|
|
||||||
sed -i "s/^rcon.password=.*/rcon.password=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w12 | head -n1)/" $dir/data/server.properties
|
|
||||||
|
|
||||||
readarray -t additional_ports <<< "$(getLocalConfValue $dir 'additional_ports[]')"
|
|
||||||
[[ ${#additional_ports} -gt 0 ]] && log d "Starting with additional ports: ${additional_ports[@]}"
|
[[ ${#additional_ports} -gt 0 ]] && log d "Starting with additional ports: ${additional_ports[@]}"
|
||||||
podman run --replace --name "${1}" --userns=keep-id:uid=1000 --rm -it -d --network "${5}" -p $([[ -n "${4}" ]] && echo ${4}:)${3}:25565 $([[ ${#additional_ports} -gt 0 ]] && for port in "${additional_ports[@]}"; do echo "-p $([[ -n ${4} ]] && echo ${4}:)${port}:${port}"; done) -v $dir/data:/var/server "${2}" java -Dcom.mojang.eula.agree=true -jar /var/exec/server.jar --nogui --port 25565
|
podman run --replace --name "${1}" --userns=keep-id:uid=1000 --rm -it -d --network "${5}" -p $([[ -n "${4}" ]] && echo ${4}:)${3}:25565 $([[ ${#additional_ports} -gt 0 ]] && for port in "${additional_ports[@]}"; do echo "-p $([[ -n ${4} ]] && echo ${4}:)${port}:${port}"; done) -v $(getValueByKey 'PODMAN_DIRECTORY')/${1}/data:/var/server "${2}" java -Dcom.mojang.eula.agree=true -jar /var/exec/server.jar --nogui --port 25565
|
||||||
[[ $? -eq 0 ]] && log s "Container '${1}' started!"
|
[[ $? -eq 0 ]] && log s "Container '${1}' started!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,10 +107,6 @@ function startContainer() {
|
||||||
function stopContainer() {
|
function stopContainer() {
|
||||||
log d "Stopping container '${1}'"
|
log d "Stopping container '${1}'"
|
||||||
podman container stop --time 100 ${1}
|
podman container stop --time 100 ${1}
|
||||||
|
|
||||||
local dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
|
|
||||||
sed -i "s/^rcon.password=.*/rcon.password=/" $dir/data/server.properties
|
|
||||||
|
|
||||||
log s "Container '${1}' stopped"
|
log s "Container '${1}' stopped"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function server() {
|
|
||||||
for fn_server in ${ROOTPATH}/utils/fn_server/*.sh; do
|
|
||||||
source ${fn_server}
|
|
||||||
done
|
|
||||||
|
|
||||||
local server="$1"
|
|
||||||
|
|
||||||
if [[ "$2" != "" ]]; then
|
|
||||||
case "${2}" in
|
|
||||||
"help")
|
|
||||||
help "$server"
|
|
||||||
;;
|
|
||||||
"broadcast")
|
|
||||||
shift
|
|
||||||
broadcast "$server" "$2"
|
|
||||||
;;
|
|
||||||
"restart")
|
|
||||||
shift
|
|
||||||
restart_announcement "$server"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
help "$server"
|
|
||||||
log e "Unknown subcommand: '$2'"
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
}
|
|
Loading…
Reference in a new issue