Level 3 – Fortgeschritten

Einführung in Chat-Parameter

Bisher haben unsere Chatbefehle einfach nur eine Aktion ausgeführt. Ihre wahre Stärke entfalten sie aber erst, wenn sie Input vom Spieler verarbeiten können. Diesen Input nennen wir Parameter.

Ein Parameter ist alles, was ein Spieler nach dem eigentlichen Befehl in den Chat eingibt.

Beispiel: Befehl mit Parameter
/sayhello Digital Development Division

Die Variable param

In der func-Funktion eines Chatbefehls erhalten wir zwei Argumente: name und param.

Lua: Die 'param'-Variable in Aktion
core.register_chatcommand("sayhello", {
    params = "<text>",
    description = "Gibt eine Nachricht im Chat aus.",
    func = function(name, param)
        -- 'param' enthält den gesamten Text nach /sayhello
        local message = "Spieler " .. name .. " sagt: " .. param
        core.chat_send_all(message)
    end,
})

Umgang mit leeren Parametern

Was passiert, wenn ein Spieler nur /sayhello eingibt? In diesem Fall ist die Variable param eine leere Zeichenkette ("").

Guter Code fängt solche Fälle ab und gibt dem Spieler eine Hilfestellung. Das verhindert Fehler und macht den Mod benutzerfreundlicher.

Lua: Leere Parameter abfangen
core.register_chatcommand("broadcast", {
    params = "<nachricht>",
    description = "Sendet eine Nachricht an alle.",
    func = function(name, param)
        -- Prüfen, ob der Parameter leer ist
        if param == "" then
            -- Eine Fehlermeldung zurückgeben
            return false, "Du musst eine Nachricht eingeben! Beispiel: /broadcast Hallo Welt"
        end

        -- Nur wenn der Parameter nicht leer ist, wird der Code hier ausgeführt
        core.chat_send_all("Wichtige Durchsage: " .. param)
        return true, "Nachricht gesendet."
    end,
})
Wichtige Regel

Prüfe immer, ob ein erwarteter Parameter vielleicht leer sein könnte, und gib dem Benutzer eine klare Rückmeldung. Das nennt man Validierung (Validation).

Zusammenfassung

Nächste Schritte

Jetzt, da du weißt, wie man Text-Parameter liest, lernen wir im nächsten Kapitel, wie man Zahlen verarbeitet.