MUDCraft: initContainer plugin pattern + PurpurExtras ConfigMap

This commit is contained in:
Will Anderson
2026-03-29 19:07:58 -05:00
parent c7ef04b37e
commit 70e69e1283
2 changed files with 131 additions and 0 deletions
@@ -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
@@ -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