MIRAWIKI
ESC
↑ ↓ NavigierenEnter ÖffnenESC Schließen

Jobs

Hinweis: Läuft der Server mit der Diamantbank (economy.mode: diamonds), ist das Jobs-Modul komplett aus.

Jobs verwandeln Minecraft-Aktionen (abbauen, töten, angeln, craften, brauen, verzaubern, züchten ...) in Einkommen: Geld, Job-XP und eine eigene Punkte-Währung. Spieler leveln, schalten Titel, Belohnungen, Tagesquests und einen Job-Shop frei. Aller Fortschritt bleibt über Neustarts erhalten.

Dateien: modules/jobs.yml (Hauptconfig) und modules/jobs/<jobId>.yml (eine Datei pro Job). Die 11 Standard-Jobs werden angelegt, wenn der Ordner modules/jobs/ leer ist; eigene Änderungen werden bei Updates nie überschrieben. Kommt mit einem Update ein neuer Standard-Job hinzu (z. B. digger), legt das Plugin ihn einmalig an; welche Jobs schon angeboten wurden, steht in modules/jobs/.offered-defaults. Gelöschte Dateien und entfernte Aktionen, Titel oder Level-Belohnungen kommen nicht zurück. Wer die mitgelieferten Erweiterungen automatisch nachgezogen haben will, setzt jobs.merge-default-definitions: true (schreibt die Dateien ohne Kommentare neu).

Commands #

Alle /jobs-Unterbefehle brauchen jobs.use (Default true) plus die genannte Permission (alle Default true).

Commands13
CommandSyntaxPermissionBeschreibung
Menü/jobs oder /jobs menujobs.menuHub-GUI: meine Jobs, Browse, Quests, Shop
Durchsuchen/jobs browsejobs.browsePaginierte Job-Liste mit Fortschritt, Klick = Beitritt
Info/jobs info <job>jobs.infoAlle Aktionen, Ziele, Belohnungen, Titel eines Jobs
Beitreten/jobs join <job>jobs.join + jobs.join.<job>Prüft Max-Jobs-Limit und Cooldown
Verlassen/jobs leave <job> / leavealljobs.leaveMit XP-Verlust, falls aktiviert; Level, Titel und Statistik bleiben
Statistik/jobs statsjobs.statsLevel/XP/Einnahmen je Job
Toplisten/jobs top <job> / gtopjobs.topTop 10 pro Job bzw. global
Limit/jobs limitjobs.limitVerbleibendes Zeitraum-Kontingent
Punkte/jobs pointsjobs.pointsJob-Punkte-Stand
Quests/jobs questsjobs.questsTagesquest-GUI mit Fortschrittsbalken
Anzeige/jobs toggle [actionbar|bossbar|off]jobs.toggleEinkommens-Anzeigemodus
Boosts/jobs boostsjobs.boostsAktive Boosts und Gesamt-Multiplikator
Shop/jobs shopjobs.shopJob-Shop (zahlt mit Punkten; passt die Lieferung nicht vollständig ins Inventar, wird nichts abgezogen)

Tipp: jobs.join.<jobId> wird pro Job automatisch mit Default true registriert. Einzelne Jobs sperrt man per LuckPerms mit jobs.join.<jobId>: false; das Browse-Menü prüft dieselbe Permission.

Job verlassen: Beim Verlassen verlierst du den in der Config eingestellten Anteil deiner aktuellen Job-XP (xp-loss.percentage, Standard 30 %). Level, Titel und Gesamtstatistik bleiben erhalten und werden beim erneuten Beitritt wiederhergestellt. Beitritt und Verlassen über das GUI haben dieselbe Abklingzeit (command-cooldowns, Standard 3 s) und dieselben Rechte wie /jobs join und /jobs leave.

Admin-Commands (/jobsa) #

Commands11
CommandSyntaxPermissionBeschreibung
Reload/jobsa reloadjobs.admin.reloadLädt Jobs, Quests, Boosts, Shop neu
Status/jobsa statusjobs.admin.statusStatus der Block-Historien-Provider (Diagnose)
Join/Leave/jobsa join|leave|leaveall <spieler> [job]jobs.admin.manageOhne Limit-Prüfung, ohne XP-Verlust
Feuern/jobsa fire <spieler> <job>jobs.admin.manageMit garantiertem XP-Verlust
Level/jobsa promote|demote <spieler> <job> [level]jobs.admin.manageLevel rauf/runter, XP wird auf 0 gesetzt
XP/jobsa grantxp|removexp <spieler> <job> <menge>jobs.admin.manageXP vergeben/entfernen
Boosts/jobsa boost <job|all> <money|xp|all> <faktor> [dauer]jobs.admin.boostOhne Dauer permanent; boostremove, boostlist
Limits/jobsa resetlimit <spieler> / resetlimitalljobs.admin.limitZeitraum-Zähler zurücksetzen
Punkte/jobsa points <spieler> <set|add|remove> <menge>jobs.admin.pointsPunktestand verwalten
Quest/jobsa skipquest <spieler> <job> <index>jobs.admin.questQuest ohne Belohnung abschließen
Aufräumen/jobsa purgejob <job> confirmjobs.admin.manageEntfernt alle Spieler-Zuweisungen und Daten eines gelöschten oder nicht mehr ladbaren Jobs endgültig

Weitere Permissions #

Permissions6
PermissionDefaultBeschreibung
jobs.max.<n> / jobs.max.unlimitedfalseMehr gleichzeitige Jobs (höchster Wert gilt; unlimited = 50)
jobs.maxlevel.<n>falseHöheres Max-Level, wenn n über dem Config-Wert liegt
jobs.autojoin.<jobId>falseAutomatischer Beitritt beim Server-Join
jobs.boost.<faktor>falsePermission-Boost, z. B. jobs.boost.1.25 (höchster gilt)
jobs.bypass.xplossfalseKein XP-Verlust beim Verlassen
jobs.bypass.placedblock / cropcheck / spamkill / spawner / afk / limit / dynamicpayfalseUmgeht den jeweiligen Exploit-Schutz

Die 11 Standard-Jobs #

Job11
JobFarbeHaupt-Aktionen
minergoldBREAK (Erze, natürliches Gestein, Terrakotta der Tafelberge, Obsidian, Amethyst, Sculk, Zinnober, Schwefel, Ancient Debris)
diggeryellowBREAK (Erde, Gras, Sand, Kies, Ton, Schlamm, Seelensand, Schnee, Eis, Moos)
woodcutterdark_greenBREAK (Stämme, Laub, Riesenpilze, Bienennest, Knarzherz, Harz), STRIP_LOG
farmeryellowBREAK (Feldfrüchte, Blumen, Korallen, Pflanzen), BREED, SHEAR, MILK, SMELT (Kochen), CRAFT (Essen)
hunterredKILL (alle feindlichen Mobs, Bosse; friedliche Tiere mit kleinen Beträgen)
fishermanaquaFISH (Fische, Schätze, Müll)
crafterlight_purpleCRAFT (alle übrigen Rezepte), STONECUT (Steinsäge), SMELT (Glas, Stein, Ziegel, Terrakotta ...)
enchanterdark_purpleENCHANT (Bücher, Werkzeuge, Waffen, Rüstung; Grundwert + pro Angebotslevel)
brewerdark_aquaBREW (pro Trank-Art), CRAFT (Braustand, Kessel, Flaschen, Zutaten)
weaponsmithgrayCRAFT (Waffen, Werkzeuge, Rüstung, Amboss), SMITH (Netherite, Rüstungsbesätze), REPAIR, SMELT (Metalle)
explorergreenEXPLORE (Neuland), TAME, KILL (nur Shulker)

Jeder Job hat 6 Titel-Stufen (Level 1/10/25/50/75/100) und Level-Up-Belohnungen auf denselben Meilensteinen.

Werte #

Jeder Block, jedes Item, jedes Rezept und jeder Mob wurde einzeln bewertet (rund 1.600 Einträge). Ziel auf Job-Level 1: etwa 3.000 Coins und 4.400 Job-XP pro Stunde aktives Spielen, Level 100 nach etwa 150 Stunden, etwa 150 Job-Punkte alle 2 bis 3 Stunden. Darum gilt in allen Standard-Jobs XP = 1,5 × Geld und Punkte = 0,02 × Geld. Beispiele (Level 1): Diamanterz 30, Eisenerz 4, Stein 0,35, Erde 0,30, Eichenstamm 2,0, reifer Weizen 0,8, Zombie 13, Kabeljau 9, Buch auf Stufe 30 verzaubern 12,5.

Was nie zahlt: nur gecraftete oder platzierte Bau- und Deko-Blöcke, Unkraut, das Knochenmehl beliebig erzeugt, Strukturblöcke (Prismarin, Purpur, Netherziegel ...), Haustiere und Reittiere. Rezepte in einer verlustfreien Schleife (Block ↔ Barren, Weizen ↔ Heuballen, Honig, Ton/Schnee platzieren und abbauen) und reines Umfärben zahlen nichts, damit kein Kreislauf Geld erzeugt.

Aktionsarten #

Aktionsart14
AktionsartAuslöserZielSchutz/Besonderheit
BREAKBlock abbauenMaterialPlaced-Block-Check, Crop-Age, AFK-Erkennung
KILLKreatur tötenKreaturSpam-Kill-Schutz, Spawner-Reduktion, kein Selbstmord
FISHAngelngefangenes MaterialZahlt auch Schätze
CRAFTCraftenErgebnis-MaterialShift-Klick zählt die echte Stückzahl
SMELTOfen entnehmenMaterialZählt die entnommene Menge
BREWTrank brauenTrank-Art (STRENGTH, LONG_SWIFTNESS, STRONG_HEALING ...)Letzter Braustand-Nutzer = Brauer; pro Flasche und Brauschritt. Der Schritt zum Wurf- bzw. Verweiltrank zahlt SPLASH_POTION bzw. LINGERING_POTION; fehlt eine Trank-Art, gilt der Flaschen-Eintrag (POTION)
ENCHANTVerzaubernMaterial (BOOK für Bücher)Grundwert + per-level × Angebotslevel (1-30)
REPAIRAmbossErgebnis-MaterialBeide Slots müssen belegt sein; Grundwert + per-level × Levelkosten
STONECUTSteinsägeErgebnis-MaterialWird nach dem Klick mit dem echten Verbrauch abgerechnet, Shift-Klick zählt jedes Stück
SMITHSchmiedetischNetherite-Ergebnis bzw. Besatz-VorlageUpgrades zahlen nach Ergebnis (NETHERITE_SWORD), Besätze nach Vorlage (COAST_ARMOR_TRIM_SMITHING_TEMPLATE)
BREED / SHEAR / TAMEZüchten/Scheren/ZähmenKreatur-
MILKMelkenKreaturCooldown pro Tier
EXPLORELaufen, FliegenALLZahlt alle explore-distance Blöcke Neuland: nur in Chunks, die der Spieler in den letzten explore-revisit-minutes nicht besucht hat (und dort die erste Minute); höchstens explore-max-speed Blöcke pro Sekunde zählen; Teleports zählen nicht
STRIP_LOGHolz entrindenOriginal-MaterialAuch mit Kupferaxt; Bambusblock zählt

ALL ist überall als Wildcard erlaubt und gilt nur, wenn kein genauerer Eintrag passt. Nexo-/Carpentary-Ziele (nexo:<id>, carpentary:<id>) haben Vorrang vor Vanilla-Materialien.

Leveling und Skalierung #

Befehl
xpBenötigt(level)   = base * level + multiplier * level^exponent
effektivesEinkommen = baseMoney * (1 + (level - 1) * level-multiplier)
effektiveXp         = baseXp    * (1 + (level - 1) * level-multiplier * 0.5)

Die XP-Skalierung läuft bewusst mit halber Rate, damit hohe Level das Aufsteigen nicht exponentiell beschleunigen. Überschuss-XP geht bei Level-Ups nie verloren (Mehrfach-Aufstiege möglich); am Max-Level wird keine XP mehr gutgeschrieben.

Pro Job überschreibbar: Jede Job-Datei kann eine eigene leveling-Sektion haben; fehlende Werte (oder -1) nutzen die globale Formel. GUI, /jobs stats und Web-Interface rechnen automatisch mit der Formel des jeweiligen Jobs.

YAML
# in modules/jobs/woodcutter.yml: dieser Job levelt langsamer, verdient mehr
leveling:
  xp-formula:
    base: 15.0
    multiplier: 6.0
    exponent: 2.2
  income-formula:
    level-multiplier: 0.05
    xp-level-multiplier: 0.02

Max-Level-Reihenfolge: Job-eigenes max-level (0 = global) → global-max-level → Permission jobs.maxlevel.<n> (nur wenn höher).

Auszahlung #

Jede Aktion wird für JEDEN aktiven Job abgerechnet, der sie bezahlt (Stacking gewollt; die Standard-Jobs bezahlen keine Aktion doppelt): Level-Skalierung und Boosts wirken auf Geld und XP, danach kappen aktive Zeitraum-Limits. Punkte sind roh: keine Level-Skalierung, keine Boosts, kein Dynamic Pay, keine Limits; nur die AFK-Erkennung kürzt sie mit. Die Anzeige wird gebündelt (batch-interval) als Actionbar oder Bossbar ausgegeben. Handwerk, Amboss, Steinsäge und Schmiedetisch werden erst bezahlt, wenn der Vorgang tatsächlich stattgefunden hat (bei vollem Inventar oder verweigerter Entnahme gibt es nichts; wer im selben Moment etwas anderes im Fenster anklickt, verwirft die Zahlung für diesen Klick; der Amboss zahlt nur, wenn die Level wirklich abgezogen wurden). Beim Brauen zählt das Ergebnis des Brauschritts (z. B. Wurftrank), nicht der Eingangstrank.

Quests: Pro Job und Tag werden quests-per-job Quests aus den echten Aktion/Ziel-Paaren des Jobs generiert; Einträge mit quest: false (seltene Mobs, Füllblöcke) sind ausgenommen. Mit amount-mode: value richtet sich die Menge nach dem Wert des Ziels: so viele Aktionen, wie für einen zufälligen Wert zwischen target-value.min und .max nötig sind (Stein: Hunderte, Warden: einer), gedeckelt durch max-amount. Verzauber-Quests zählen nur Angebote ab Stufe 15. Belohnung = Basiswert × Menge × reward-multiplier (ohne Level-Skalierung), wird bei Abschluss sofort automatisch ausgezahlt. Reset täglich zur konfigurierten Uhrzeit. Quests gehören zum Tag, nicht zur Mitgliedschaft: Wer einen Job verlässt und wieder beitritt, bekommt bis zum täglichen Reset dieselben Quests mit unverändertem Fortschritt zurück.

Boosts: Drei Quellen (Admin per /jobsa boost, Scheduled nach Uhrzeit/Wochentag, Permission jobs.boost.<n>, dort gewinnt der höchste). stacking-mode: multiply multipliziert alle, add addiert die Bonus-Anteile; Deckel ist max-multiplier. Admin-Boosts überleben Reload und Neustart.

Exploit-Schutz #

Selbst platzierte Blöcke zahlen nichts (Historien-Check über CoreProtect). Ausnahme ist echtes Wachstum: Selbst gepflanzte, reife Feldfrüchte zahlen, ebenso Stämme, Pilze oder Fackellilien, die aus einem gepflanzten Setzling, Pilz oder Samen gewachsen sind. Unreife Feldfrüchte zahlen nichts, Spam-Kills am selben Mob stoppen die Zahlung, Spawner-Mobs zahlen nur den konfigurierten Bruchteil (erkannt am gespeicherten Spawn-Grund, auch nach Chunk-Entladen oder Neustart), Tierbabys und gezüchtete, umgewandelte Babys (z. B. infizierte Dorfbewohner-Babys) zahlen beim Töten nichts, Selbstmord zählt nicht, Shift-Klick-Crafting zählt die echte Menge, Melken hat einen Cooldown pro Tier und Teleports geben keine EXPLORE-Distanz. Bezahlte Abbauten werden optional als #jobs-<spieler> in CoreProtect geloggt. Im Kreativ- und Zuschauermodus gibt es kein Job-Einkommen, keine XP, keine Punkte und keinen Quest-Fortschritt (Admin-Schalter exploit-protection.creative-mode-pay).

crop-age-check prüft nur echte Nutzpflanzen (Weizen, Karotten, Kartoffeln, Rote Bete, Netherwarze, Kakao, Süßbeeren, Kannen- und Fackelliliensaat, Stängel). Zuckerrohr, Kaktus, Seetang, Bambus und Chorusblüten zahlen unabhängig vom Alter.

Achtung: Ohne CoreProtect deaktiviert sich das Jobs-Modul standardmäßig selbst (require-history-provider: true), sichtbar nur als Log-Warnung. Wer ohne Historien-Quelle spielt, setzt den Schalter bewusst auf false; dann entscheidet placed-block-failure (deny = sicher, allow = zahlt trotzdem).

CoreProtect: tree-growth und mushroom-growth in der CoreProtect-Config sollten aus sein. Sonst speichert CoreProtect jeden gewachsenen Stamm als "vom Pflanzer platziert", und selbst gepflanzte Bäume zahlen nichts. Bruchstein-, Stein- und Obsidian-Generatoren bleiben über lava-flow/water-flow (Logger #lava, #water) gesperrt.

AFK-Farmen: Die AFK-Erkennung (afk-detection) beobachtet standardmäßig nur KILL und FISH: Mehr als 40 Kills in 3 Minuten im Umkreis von 6 Blöcken (Mobfarm) bzw. mehr als 25 Fänge in 15 Minuten am selben Platz ohne Kameradrehung (AFK-Angelfarm) zahlen nur noch 25 % Geld, XP und Punkte und bringen keinen Quest-Fortschritt. Aktive Jagd und Angeln mit Umsehen zahlen voll, andere Jobs sind nicht betroffen.

Konfiguration (modules/jobs.yml) #

YAML
# Schaltet das Jobs-Modul ein oder aus.
enabled: true

jobs:
  # Gleichzeitige Jobs pro Spieler. Höchste jobs.max.<n>-Permission
  # gewinnt, jobs.max.unlimited = 50.
  max-jobs: 3
  # Spieler mit jobs.autojoin.<jobId> treten beim Join automatisch bei.
  autojoin-enabled: false
  # Level-Deckel für Jobs ohne eigenes max-level.
  global-max-level: 100
  # true = fehlende Aktionen, Titel und Belohnungen der mitgelieferten
  # Standard-Jobs werden in modules/jobs/ nachgetragen (Dateien werden
  # ohne Kommentare neu geschrieben). false = Dateien bleiben unberührt.
  merge-default-definitions: false
  command-cooldowns:
    # Anti-Spam für /jobs join und leave, Sekunden.
    join: 3
    leave: 3
  chat-title:
    # Job-Titel vor dem Chat-Namen (nach dem Team-Prefix).
    # highest = Job mit höchstem Level, first = alphabetisch erster.
    enabled: false
    mode: highest
    format: "<job_color>[<job_title>] "
  actions:
    # Blöcke Neuland pro EXPLORE-Zahlung.
    explore-distance: 100.0
    # Minuten, nach denen ein erkundeter Chunk wieder als Neuland zählt.
    explore-revisit-minutes: 360
    # Höchstens so viele Blöcke pro Sekunde zählen (Elytra, Reittiere).
    explore-max-speed: 10.0
    # Sekunden zwischen bezahlten Melk-Aktionen pro Tier.
    milk-cooldown: 5
  xp-loss:
    # XP-Verlust beim freiwilligen Verlassen. /jobsa fire wendet ihn
    # immer an, jobs.bypass.xploss verhindert ihn.
    enabled: true
    percentage: 0.3
  leveling:
    xp-formula:
      # Benötigte XP = base * level + multiplier * level^exponent.
      base: 10.0
      multiplier: 4.0
      exponent: 2.0
    income-formula:
      # +3% Einkommen pro Level; XP skaliert mit halber Rate.
      level-multiplier: 0.03
    level-up:
      chat-enabled: true
      title-enabled: true
      sound-enabled: true
      sound: "entity.player.levelup"
      sound-volume: 1.0
      sound-pitch: 1.0
      title-fade-in: 10
      title-stay: 40
      title-fade-out: 20
    broadcast:
      # Level-Ups ab min-level serverweit melden.
      enabled: false
      min-level: 10
  limits:
    # Rollierendes Zeitfenster mit Geld-/XP-Obergrenze pro Spieler.
    enabled: false
    max-earnings: 10000.0
    max-xp: 50000.0
    period-duration: 3600
  income-display:
    # Ticks zwischen gebündelten Anzeigen bzw. Bossbar-Dauer.
    batch-interval: 40
    bossbar-duration: 60
  boosts:
    # multiply = Boosts multiplizieren sich, add = Boni addieren sich.
    stacking-mode: multiply
    max-multiplier: 10.0
    scheduled:
      weekday-dawn:
        job: farmer
        category: all
        multiplier: 1.25
        start: "05:00"
        end: "08:00"
        days: [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY]
  quests:
    enabled: true
    quests-per-job: 3
    # value = Menge nach Wert des Ziels (siehe target-value), random =
    # gleichverteilt zwischen min-amount und max-amount.
    amount-mode: value
    target-value:
      min: 250.0
      max: 700.0
    min-amount: 12
    max-amount: 640
    reward-multiplier:
      money: 4.4
      xp: 4.2
      points: 3.4
    # Täglicher Reset (löscht alle Quest-Daten und generiert neu).
    reset-hour: 0
    reset-minute: 0
    creative-style:
      # Flavor-Namen mit <target>-Platzhalter, pro Job oder default.
      enabled: true
      templates:
        default:
          - "Guild contract: <target>"
          - "Rush order: <target>"
        miner:
          - "Crystal vein: <target>"
  dynamic-pay:
    # Angebots-/Nachfrage-Anpassung nach Aktions-Häufigkeit.
    enabled: false
    sensitivity: 0.5
    min-multiplier: 0.5
    max-multiplier: 1.5
  integrations:
    coreprotect:
      # Loggt bezahlte Abbauten als #jobs-<spieler>.
      jobs-tracking: true
      # Zeitfenster der Block-Historie für den Placed-Block-Check.
      lookup-time-seconds: 2592000
    nexo:
      jobs-enabled: true
    carpentary:
      jobs-enabled: true
    betterhud:
      job-info:
        enabled: true
        popup-name: ""
        popup-duration: 60
  shop:
    # Items kosten Job-Punkte; required-job/-level begrenzen den Kauf.
    enabled: true
    title: "<gold>Job Shop"
    items:
      miner_lantern_kit:
        material: TORCH
        amount: 64
        display-name: "<gold>Miner Lantern Kit"
        lore:
          - "<gray>Cheap light for long tunnels."
        cost: 35.0
        required-job: miner
        required-level: 3
  exploit-protection:
    placed-block-check: true
    # true = ohne Historien-Quelle (CoreProtect) deaktiviert sich das
    # Modul selbst.
    require-history-provider: true
    # auto, coreprotect, debug oder disabled.
    placed-block-provider: auto
    # Ohne eindeutige Antwort: deny = nicht zahlen (sicher), allow = zahlen.
    placed-block-failure: deny
    # Nur echte Nutzpflanzen (Weizen, Karotten, Netherwarze ...) zahlen erst
    # ausgewachsen; Zuckerrohr, Kaktus, Bambus usw. zahlen immer.
    crop-age-check: true
    # true = auch Kreativ- und Zuschauermodus verdienen Geld, XP, Punkte
    # und Quest-Fortschritt.
    creative-mode-pay: false
    spam-kill:
      enabled: true
      window: 30
      max-kills: 5
    # Gilt für Mobs aus Spawnern und aus Spawn-Eiern (auch aus Werfern),
    # damit ein per Ei gefangenes Spawner-Mob nicht als voller Kill zählt.
    spawner-mobs:
      enabled: true
      money-multiplier: 0.0
      xp-multiplier: 0.0
    afk-detection:
      # Mehr als action-threshold Aktionen in radius Blöcken innerhalb
      # von window Sekunden: Geld, XP und Punkte nur noch mal multiplier.
      # view-tolerance (Grad, 0 = aus) verlangt zusätzlich eine stillstehende
      # Kamera. action-types: beobachtete Aktionen mit eigenen Werten; ohne
      # die Liste gelten die Werte oben für alle Aktionen.
      enabled: true
      radius: 5
      action-threshold: 50
      window: 120
      multiplier: 0.25
      action-types:
        KILL:
          radius: 6
          action-threshold: 40
          window: 180
        FISH:
          radius: 4
          action-threshold: 25
          window: 900
          view-tolerance: 2.0

Eigene Jobs (modules/jobs/<jobId>.yml) #

Lädt eine Jobdatei nicht (Tippfehler, gelöscht), bleiben die Zuweisungen der Spieler erhalten und werden im Log gemeldet; sobald die Datei wieder lädt, laufen Zahlungen weiter. Endgültig entfernen: /jobsa purgejob <job> confirm (Recht jobs.admin.manage).

YAML
# name ist Pflicht, sonst wird die Datei verworfen. Ungültige Ziele oder
# negative Werte werden übersprungen und geloggt; Namen, die diese
# Server-Version nicht kennt (neuere Minecraft-Version), werden in einer
# Sammelzeile gemeldet. Nach Änderungen: /jobsa reload.
# Limits: 2000 Aktionen, 100 Titel, 200 Belohnungs-Stufen.
name: "Miner"
color: "gold"
short-name: "MIN"
icon: "IRON_PICKAXE"
description: "Mine ores and stones for profit"
# 0 = global-max-level nutzen.
max-level: 0

actions:
  # BREAK/CRAFT/SMELT/STRIP_LOG/STONECUT/SMITH/FISH/ENCHANT/REPAIR erwarten
  # Materialien, KILL/BREED/SHEAR/TAME/MILK Kreaturen, BREW Trank-Arten oder
  # Flaschen-Materialien, ALL ist überall erlaubt.
  BREAK:
    DIAMOND_ORE:
      money: 30.0
      xp: 45.0
      points: 0.6
    ANCIENT_DEBRIS:
      money: 60.0
      xp: 90.0
      points: 1.2
      # Nie als Tagesquest
      quest: false
  ENCHANT:
    BOOK:
      money: 0.5
      xp: 0.75
      points: 0.01
      # Zusätzlich pro Angebotslevel (ENCHANT) bzw. Amboss-Levelkosten (REPAIR)
      per-level:
        money: 0.4
        xp: 0.6
        points: 0.008

titles:
  "1": "Apprentice Miner"
  "25": "Expert Miner"
  "100": "Mythic Deep Delver"

level-up-rewards:
  # Konsolen-Befehle mit {player}, {job}, {jobname}. Befehle mit
  # unerlaubten Zeichen werden verworfen und geloggt.
  "25":
    - "give {player} diamond 3"
  "100":
    - "give {player} netherite_upgrade_smithing_template 1"