1
0
Fork 0

minecraft: add CTM server

Change-Id: Ic4590bbab4cdbefe0db05f1026363b11f7973794
master
q3k 2021-07-21 14:40:49 +00:00 committed by q3k
parent 61e93026a9
commit 4afed98e4e
2 changed files with 57 additions and 28 deletions

View File

@ -4,7 +4,7 @@ RUN set -e -x ;\
export DEBIAN_FRONTEND=noninteractive ;\
apt-get -y update ;\
apt-get -y upgrade ;\
apt-get -y install git openjdk-8-jre-headless wget
apt-get -y install git openjdk-8-jre-headless wget unzip
RUN set -e -x ;\
export DEBIAN_FRONTEND=noninteractive ;\
@ -26,7 +26,7 @@ RUN set -e -x ;\
USER minecraft
WORKDIR /home/minecraft
ARG VERSION=1.16.4
ARG VERSION=1.16.5
RUN set -e -x ;\
wget --quiet https://papermc.io/api/v1/paper/${VERSION}/latest/download ;\

View File

@ -7,12 +7,15 @@ local defaultWorldguardConfig = import "worldguard.libsonnet";
"spigot-1.16.1": "registry.k0.hswaw.net/q3k/minecraft:spigot-1.16.1-r2",
"paper-1.16.1": "registry.k0.hswaw.net/q3k/minecraft:paper-1.16.1-r2",
"paper-1.16.4": "registry.k0.hswaw.net/q3k/minecraft:paper-1.16.4-r1",
"paper-1.16.5": "registry.k0.hswaw.net/q3k/minecraft:paper-1.16.5-r2",
},
server(name, version):: {
local server = self,
name:: name,
version:: version,
image:: minecraft.versions[server.version],
worldedit:: true,
overviewer:: true,
metadata:: {
namespace: "minecraft",
@ -70,20 +73,25 @@ local defaultWorldguardConfig = import "worldguard.libsonnet";
worldguardConfig:: defaultWorldguardConfig,
startSteps:: [
] + (if server.worldedit then [
"mkdir -p plugins/WorldGuard",
"cp /home/minecraft/worldedit-*.jar plugins",
"cp /home/minecraft/worldguard-*.jar plugins",
"cp /home/minecraft/config/worldguard_config.yaml plugins/WorldGuard/config.yml",
] else []),
startsh:: |||
#!/usr/bin/env bash
cd /home/minecraft/world
cp /home/minecraft/config/server.properties .
cp /home/minecraft/server.jar .
mkdir -p plugins/WorldGuard
cp /home/minecraft/worldedit-*.jar plugins
cp /home/minecraft/worldguard-*.jar plugins
cp /home/minecraft/config/worldguard_config.yaml plugins/WorldGuard/config.yml
echo "eula=true" > eula.txt
%s
bash /home/minecraft/config/overviewer.sh &
exec java -Xmx4G -Xms4G -jar server.jar
|||,
||| % [std.join("\n", server.startSteps)],
overviewersh:: |||
#!/usr/bin/env bash
@ -102,11 +110,13 @@ local defaultWorldguardConfig = import "worldguard.libsonnet";
data: {
local properties = std.join("\n", ["%s=%s" % [k, std.toString(server.properties[k])] for k in std.objectFields(server.properties)]),
"server.properties": std.base64(properties),
"start.sh": std.base64(server.startsh),
} + (if server.worldedit then {
local worldguardConfig = std.manifestYamlDoc(server.worldguardConfig),
"worldguard_config.yaml": std.base64(worldguardConfig),
"start.sh": std.base64(server.startsh),
} else {} )+ (if server.overviewer then {
"overviewer.sh": std.base64(server.overviewersh),
},
} else {}),
},
worldVolume: kube.PersistentVolumeClaim(server.componentName("world")) {
@ -156,6 +166,17 @@ local defaultWorldguardConfig = import "worldguard.libsonnet";
},
},
},
bridge: kube.Container("bridge") {
image: "registry.k0.hswaw.net/q3k/minecraft-hscloud-bridge:20200518c",
command: [
"/personal/q3k/minecraft/plugin/hscloud/bridge/bridge",
"-plugin", "127.0.0.1:2137",
],
ports_: {
bridge: { containerPort: 8081 },
},
},
} + (if server.overviewer then {
overviewer: kube.Container("overviewer") {
image: "halverneus/static-file-server:v1.8.0",
env_: {
@ -168,17 +189,7 @@ local defaultWorldguardConfig = import "worldguard.libsonnet";
web: { containerPort: 8080 },
},
},
bridge: kube.Container("bridge") {
image: "registry.k0.hswaw.net/q3k/minecraft-hscloud-bridge:20200518c",
command: [
"/personal/q3k/minecraft/plugin/hscloud/bridge/bridge",
"-plugin", "127.0.0.1:2137",
],
ports_: {
bridge: { containerPort: 8081 },
},
},
},
} else {}),
},
},
},
@ -203,16 +214,34 @@ local defaultWorldguardConfig = import "worldguard.libsonnet";
ns: kube.Namespace("minecraft"),
q3k: {
survival: minecraft.server("q3k-survival", "paper-1.16.4") {
"nova-arcana": minecraft.server("q3k-nova-arcana", "paper-1.16.5") {
overviewer: false,
worldedit: false,
properties+: {
motd: "wypierdol z polski kropka pe el",
"enforce-whitelist": true,
},
worldguardConfig+: {
mobs+: {
"block-creeper-block-damage": true,
},
motd: "Nova Arcana V1.1.4",
//"enforce-whitelist": true,
"enable-rcon": "true",
"rcon.password": "dupa.8",
},
startSteps+: [
|||
if [ ! -e world/map-installed.txt ]; then
set -e -x
mkdir -p world
cd world
rm -rf *
wget https://object.ceph-waw3.hswaw.net/q3k-personal/f1a73ad0518a2629a5bed072a7de4e4534a3c89705d6cea2f203a05cccd01634.zip -O map.zip
unzip -o map.zip
mv Untold*/* .
rm -rf Untold*
rm map.zip
touch map-installed.txt
ls -la
cd ..
set +e +x
fi
|||
],
},
},
}