From 70e69e1283da549815561a025eb14bcd87d85903 Mon Sep 17 00:00:00 2001 From: Will Anderson Date: Sun, 29 Mar 2026 19:07:58 -0500 Subject: [PATCH] MUDCraft: initContainer plugin pattern + PurpurExtras ConfigMap --- .../k8s/mudcraft/configmap-purpurextras.yaml | 114 ++++++++++++++++++ servers/legion/k8s/mudcraft/statefulset.yaml | 17 +++ 2 files changed, 131 insertions(+) create mode 100644 servers/legion/k8s/mudcraft/configmap-purpurextras.yaml diff --git a/servers/legion/k8s/mudcraft/configmap-purpurextras.yaml b/servers/legion/k8s/mudcraft/configmap-purpurextras.yaml new file mode 100644 index 0000000..18b3e17 --- /dev/null +++ b/servers/legion/k8s/mudcraft/configmap-purpurextras.yaml @@ -0,0 +1,114 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: mudcraft-purpurextras + namespace: mudcraft +data: + config.yml: | + settings: + debug: false + + modules: + # ── Combat & Class Mechanics ────────────────────────────────────────────── + ShieldSettings: + enabled: true + disable-cooldown: 60 + damage-reduction: 0.85 + + StopDropNRoll: + enabled: true + sneak-count: 5 + chance: 0.75 + + NoFallDamageWhileHavingJumpBoost: + enabled: false + + # ── Dungeon Integrity ───────────────────────────────────────────────────── + LootBlocksProtection: + enabled: true + bypass-permission: purpurextras.lootblocks.bypass + + SpawnersProtection: + enabled: true + bypass-permission: purpurextras.spawners.bypass + protect-from-explosions: true + + SpawnerPlacementPermissions: + enabled: true + + # ── Economy & Crafting ──────────────────────────────────────────────────── + GrindstoneEnchantsBooks: + enabled: true + + FurnaceBurnTime: + enabled: true + multiplier: 1.0 + + # ── World & Movement ────────────────────────────────────────────────────── + RunFasterOnPaths: + enabled: true + multiplier: 1.15 + affected-entities: + - PLAYER + + OpenIronDoorsWithHand: + enabled: true + require-permission: false + + DispenserBlocks: + enabled: true + + LightningTransformsMobs: + enabled: true + transformations: + ZOMBIE: DROWNED + SKELETON: WITHER_SKELETON + CREEPER: CHARGED_CREEPER + + # ── NPC & Mob Behavior ──────────────────────────────────────────────────── + MobNoTarget: + enabled: true + + CancelPetDamageFromOwner: + enabled: true + + ColoredBossBars: + enabled: false + + CreeperSquids: + enabled: false + + # ── Decoration & Building ───────────────────────────────────────────────── + InvisibleItemFrames: + enabled: true + permission: purpurextras.invisibleframes + + LoomMaxLayers: + enabled: true + max-layers: 16 + + # ── QoL ────────────────────────────────────────────────────────────────── + EscapeCommandSlash: + enabled: true + + SleepPercentageMessage: + enabled: true + message: "&e{sleeping}/{total} players sleeping ({percent}%)" + + VoidTotem: + enabled: true + + RaidTotemDrops: + enabled: true + drop-chance: 0.5 + + # ── Disabled ────────────────────────────────────────────────────────────── + UnlockAllRecipes: + enabled: false + + AnvilChangesBlocks: + enabled: false + + RespawnAnchorNeedsCharge: + enabled: false diff --git a/servers/legion/k8s/mudcraft/statefulset.yaml b/servers/legion/k8s/mudcraft/statefulset.yaml index 2481833..9495c71 100644 --- a/servers/legion/k8s/mudcraft/statefulset.yaml +++ b/servers/legion/k8s/mudcraft/statefulset.yaml @@ -18,6 +18,17 @@ spec: app: mudcraft spec: terminationGracePeriodSeconds: 120 + initContainers: + # Copies plugin JARs from the mudcraft/plugins image into the plugins PVC. + # To add/update plugins: update the Dockerfile in mudcraft/mudcraft repo, + # push to main — CI rebuilds the image and the next pod restart picks it up. + - name: install-plugins + image: registry.neuralplatform.ai/mudcraft/plugins:latest + imagePullPolicy: Always + command: ["sh", "-c", "cp -r /plugins/* /target/ && echo 'Plugins installed'"] + volumeMounts: + - name: plugins + mountPath: /target containers: - name: mudcraft image: itzg/minecraft-server:java21 @@ -54,6 +65,9 @@ spec: mountPath: /data/plugins - name: logs mountPath: /data/logs + - name: purpurextras-config + mountPath: /data/plugins/PurpurExtras/config.yml + subPath: config.yml resources: requests: memory: 5Gi @@ -87,3 +101,6 @@ spec: - name: logs persistentVolumeClaim: claimName: mudcraft-logs + - name: purpurextras-config + configMap: + name: mudcraft-purpurextras